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.ImageFamilyViews = NewImageFamilyViewsService(s)
164	s.Images = NewImagesService(s)
165	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
166	s.InstanceGroups = NewInstanceGroupsService(s)
167	s.InstanceTemplates = NewInstanceTemplatesService(s)
168	s.Instances = NewInstancesService(s)
169	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
170	s.InterconnectLocations = NewInterconnectLocationsService(s)
171	s.Interconnects = NewInterconnectsService(s)
172	s.LicenseCodes = NewLicenseCodesService(s)
173	s.Licenses = NewLicensesService(s)
174	s.MachineImages = NewMachineImagesService(s)
175	s.MachineTypes = NewMachineTypesService(s)
176	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
177	s.Networks = NewNetworksService(s)
178	s.NodeGroups = NewNodeGroupsService(s)
179	s.NodeTemplates = NewNodeTemplatesService(s)
180	s.NodeTypes = NewNodeTypesService(s)
181	s.OrganizationSecurityPolicies = NewOrganizationSecurityPoliciesService(s)
182	s.PacketMirrorings = NewPacketMirroringsService(s)
183	s.Projects = NewProjectsService(s)
184	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
185	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
186	s.RegionAutoscalers = NewRegionAutoscalersService(s)
187	s.RegionBackendServices = NewRegionBackendServicesService(s)
188	s.RegionCommitments = NewRegionCommitmentsService(s)
189	s.RegionDiskTypes = NewRegionDiskTypesService(s)
190	s.RegionDisks = NewRegionDisksService(s)
191	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
192	s.RegionHealthChecks = NewRegionHealthChecksService(s)
193	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
194	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
195	s.RegionInstances = NewRegionInstancesService(s)
196	s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s)
197	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
198	s.RegionOperations = NewRegionOperationsService(s)
199	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
200	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
201	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
202	s.RegionUrlMaps = NewRegionUrlMapsService(s)
203	s.Regions = NewRegionsService(s)
204	s.Reservations = NewReservationsService(s)
205	s.ResourcePolicies = NewResourcePoliciesService(s)
206	s.Routers = NewRoutersService(s)
207	s.Routes = NewRoutesService(s)
208	s.SecurityPolicies = NewSecurityPoliciesService(s)
209	s.ServiceAttachments = NewServiceAttachmentsService(s)
210	s.Snapshots = NewSnapshotsService(s)
211	s.SslCertificates = NewSslCertificatesService(s)
212	s.SslPolicies = NewSslPoliciesService(s)
213	s.Subnetworks = NewSubnetworksService(s)
214	s.TargetGrpcProxies = NewTargetGrpcProxiesService(s)
215	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
216	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
217	s.TargetInstances = NewTargetInstancesService(s)
218	s.TargetPools = NewTargetPoolsService(s)
219	s.TargetSslProxies = NewTargetSslProxiesService(s)
220	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
221	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
222	s.UrlMaps = NewUrlMapsService(s)
223	s.VpnGateways = NewVpnGatewaysService(s)
224	s.VpnTunnels = NewVpnTunnelsService(s)
225	s.ZoneOperations = NewZoneOperationsService(s)
226	s.Zones = NewZonesService(s)
227	return s, nil
228}
229
230type Service struct {
231	client    *http.Client
232	BasePath  string // API endpoint base URL
233	UserAgent string // optional additional User-Agent fragment
234
235	AcceleratorTypes *AcceleratorTypesService
236
237	Addresses *AddressesService
238
239	Autoscalers *AutoscalersService
240
241	BackendBuckets *BackendBucketsService
242
243	BackendServices *BackendServicesService
244
245	DiskTypes *DiskTypesService
246
247	Disks *DisksService
248
249	ExternalVpnGateways *ExternalVpnGatewaysService
250
251	FirewallPolicies *FirewallPoliciesService
252
253	Firewalls *FirewallsService
254
255	ForwardingRules *ForwardingRulesService
256
257	GlobalAddresses *GlobalAddressesService
258
259	GlobalForwardingRules *GlobalForwardingRulesService
260
261	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
262
263	GlobalOperations *GlobalOperationsService
264
265	GlobalOrganizationOperations *GlobalOrganizationOperationsService
266
267	GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService
268
269	HealthChecks *HealthChecksService
270
271	HttpHealthChecks *HttpHealthChecksService
272
273	HttpsHealthChecks *HttpsHealthChecksService
274
275	ImageFamilyViews *ImageFamilyViewsService
276
277	Images *ImagesService
278
279	InstanceGroupManagers *InstanceGroupManagersService
280
281	InstanceGroups *InstanceGroupsService
282
283	InstanceTemplates *InstanceTemplatesService
284
285	Instances *InstancesService
286
287	InterconnectAttachments *InterconnectAttachmentsService
288
289	InterconnectLocations *InterconnectLocationsService
290
291	Interconnects *InterconnectsService
292
293	LicenseCodes *LicenseCodesService
294
295	Licenses *LicensesService
296
297	MachineImages *MachineImagesService
298
299	MachineTypes *MachineTypesService
300
301	NetworkEndpointGroups *NetworkEndpointGroupsService
302
303	Networks *NetworksService
304
305	NodeGroups *NodeGroupsService
306
307	NodeTemplates *NodeTemplatesService
308
309	NodeTypes *NodeTypesService
310
311	OrganizationSecurityPolicies *OrganizationSecurityPoliciesService
312
313	PacketMirrorings *PacketMirroringsService
314
315	Projects *ProjectsService
316
317	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService
318
319	PublicDelegatedPrefixes *PublicDelegatedPrefixesService
320
321	RegionAutoscalers *RegionAutoscalersService
322
323	RegionBackendServices *RegionBackendServicesService
324
325	RegionCommitments *RegionCommitmentsService
326
327	RegionDiskTypes *RegionDiskTypesService
328
329	RegionDisks *RegionDisksService
330
331	RegionHealthCheckServices *RegionHealthCheckServicesService
332
333	RegionHealthChecks *RegionHealthChecksService
334
335	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
336
337	RegionInstanceGroups *RegionInstanceGroupsService
338
339	RegionInstances *RegionInstancesService
340
341	RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService
342
343	RegionNotificationEndpoints *RegionNotificationEndpointsService
344
345	RegionOperations *RegionOperationsService
346
347	RegionSslCertificates *RegionSslCertificatesService
348
349	RegionTargetHttpProxies *RegionTargetHttpProxiesService
350
351	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
352
353	RegionUrlMaps *RegionUrlMapsService
354
355	Regions *RegionsService
356
357	Reservations *ReservationsService
358
359	ResourcePolicies *ResourcePoliciesService
360
361	Routers *RoutersService
362
363	Routes *RoutesService
364
365	SecurityPolicies *SecurityPoliciesService
366
367	ServiceAttachments *ServiceAttachmentsService
368
369	Snapshots *SnapshotsService
370
371	SslCertificates *SslCertificatesService
372
373	SslPolicies *SslPoliciesService
374
375	Subnetworks *SubnetworksService
376
377	TargetGrpcProxies *TargetGrpcProxiesService
378
379	TargetHttpProxies *TargetHttpProxiesService
380
381	TargetHttpsProxies *TargetHttpsProxiesService
382
383	TargetInstances *TargetInstancesService
384
385	TargetPools *TargetPoolsService
386
387	TargetSslProxies *TargetSslProxiesService
388
389	TargetTcpProxies *TargetTcpProxiesService
390
391	TargetVpnGateways *TargetVpnGatewaysService
392
393	UrlMaps *UrlMapsService
394
395	VpnGateways *VpnGatewaysService
396
397	VpnTunnels *VpnTunnelsService
398
399	ZoneOperations *ZoneOperationsService
400
401	Zones *ZonesService
402}
403
404func (s *Service) userAgent() string {
405	if s.UserAgent == "" {
406		return googleapi.UserAgent
407	}
408	return googleapi.UserAgent + " " + s.UserAgent
409}
410
411func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
412	rs := &AcceleratorTypesService{s: s}
413	return rs
414}
415
416type AcceleratorTypesService struct {
417	s *Service
418}
419
420func NewAddressesService(s *Service) *AddressesService {
421	rs := &AddressesService{s: s}
422	return rs
423}
424
425type AddressesService struct {
426	s *Service
427}
428
429func NewAutoscalersService(s *Service) *AutoscalersService {
430	rs := &AutoscalersService{s: s}
431	return rs
432}
433
434type AutoscalersService struct {
435	s *Service
436}
437
438func NewBackendBucketsService(s *Service) *BackendBucketsService {
439	rs := &BackendBucketsService{s: s}
440	return rs
441}
442
443type BackendBucketsService struct {
444	s *Service
445}
446
447func NewBackendServicesService(s *Service) *BackendServicesService {
448	rs := &BackendServicesService{s: s}
449	return rs
450}
451
452type BackendServicesService struct {
453	s *Service
454}
455
456func NewDiskTypesService(s *Service) *DiskTypesService {
457	rs := &DiskTypesService{s: s}
458	return rs
459}
460
461type DiskTypesService struct {
462	s *Service
463}
464
465func NewDisksService(s *Service) *DisksService {
466	rs := &DisksService{s: s}
467	return rs
468}
469
470type DisksService struct {
471	s *Service
472}
473
474func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
475	rs := &ExternalVpnGatewaysService{s: s}
476	return rs
477}
478
479type ExternalVpnGatewaysService struct {
480	s *Service
481}
482
483func NewFirewallPoliciesService(s *Service) *FirewallPoliciesService {
484	rs := &FirewallPoliciesService{s: s}
485	return rs
486}
487
488type FirewallPoliciesService struct {
489	s *Service
490}
491
492func NewFirewallsService(s *Service) *FirewallsService {
493	rs := &FirewallsService{s: s}
494	return rs
495}
496
497type FirewallsService struct {
498	s *Service
499}
500
501func NewForwardingRulesService(s *Service) *ForwardingRulesService {
502	rs := &ForwardingRulesService{s: s}
503	return rs
504}
505
506type ForwardingRulesService struct {
507	s *Service
508}
509
510func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
511	rs := &GlobalAddressesService{s: s}
512	return rs
513}
514
515type GlobalAddressesService struct {
516	s *Service
517}
518
519func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
520	rs := &GlobalForwardingRulesService{s: s}
521	return rs
522}
523
524type GlobalForwardingRulesService struct {
525	s *Service
526}
527
528func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
529	rs := &GlobalNetworkEndpointGroupsService{s: s}
530	return rs
531}
532
533type GlobalNetworkEndpointGroupsService struct {
534	s *Service
535}
536
537func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
538	rs := &GlobalOperationsService{s: s}
539	return rs
540}
541
542type GlobalOperationsService struct {
543	s *Service
544}
545
546func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
547	rs := &GlobalOrganizationOperationsService{s: s}
548	return rs
549}
550
551type GlobalOrganizationOperationsService struct {
552	s *Service
553}
554
555func NewGlobalPublicDelegatedPrefixesService(s *Service) *GlobalPublicDelegatedPrefixesService {
556	rs := &GlobalPublicDelegatedPrefixesService{s: s}
557	return rs
558}
559
560type GlobalPublicDelegatedPrefixesService struct {
561	s *Service
562}
563
564func NewHealthChecksService(s *Service) *HealthChecksService {
565	rs := &HealthChecksService{s: s}
566	return rs
567}
568
569type HealthChecksService struct {
570	s *Service
571}
572
573func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
574	rs := &HttpHealthChecksService{s: s}
575	return rs
576}
577
578type HttpHealthChecksService struct {
579	s *Service
580}
581
582func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
583	rs := &HttpsHealthChecksService{s: s}
584	return rs
585}
586
587type HttpsHealthChecksService struct {
588	s *Service
589}
590
591func NewImageFamilyViewsService(s *Service) *ImageFamilyViewsService {
592	rs := &ImageFamilyViewsService{s: s}
593	return rs
594}
595
596type ImageFamilyViewsService struct {
597	s *Service
598}
599
600func NewImagesService(s *Service) *ImagesService {
601	rs := &ImagesService{s: s}
602	return rs
603}
604
605type ImagesService struct {
606	s *Service
607}
608
609func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
610	rs := &InstanceGroupManagersService{s: s}
611	return rs
612}
613
614type InstanceGroupManagersService struct {
615	s *Service
616}
617
618func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
619	rs := &InstanceGroupsService{s: s}
620	return rs
621}
622
623type InstanceGroupsService struct {
624	s *Service
625}
626
627func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
628	rs := &InstanceTemplatesService{s: s}
629	return rs
630}
631
632type InstanceTemplatesService struct {
633	s *Service
634}
635
636func NewInstancesService(s *Service) *InstancesService {
637	rs := &InstancesService{s: s}
638	return rs
639}
640
641type InstancesService struct {
642	s *Service
643}
644
645func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
646	rs := &InterconnectAttachmentsService{s: s}
647	return rs
648}
649
650type InterconnectAttachmentsService struct {
651	s *Service
652}
653
654func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
655	rs := &InterconnectLocationsService{s: s}
656	return rs
657}
658
659type InterconnectLocationsService struct {
660	s *Service
661}
662
663func NewInterconnectsService(s *Service) *InterconnectsService {
664	rs := &InterconnectsService{s: s}
665	return rs
666}
667
668type InterconnectsService struct {
669	s *Service
670}
671
672func NewLicenseCodesService(s *Service) *LicenseCodesService {
673	rs := &LicenseCodesService{s: s}
674	return rs
675}
676
677type LicenseCodesService struct {
678	s *Service
679}
680
681func NewLicensesService(s *Service) *LicensesService {
682	rs := &LicensesService{s: s}
683	return rs
684}
685
686type LicensesService struct {
687	s *Service
688}
689
690func NewMachineImagesService(s *Service) *MachineImagesService {
691	rs := &MachineImagesService{s: s}
692	return rs
693}
694
695type MachineImagesService struct {
696	s *Service
697}
698
699func NewMachineTypesService(s *Service) *MachineTypesService {
700	rs := &MachineTypesService{s: s}
701	return rs
702}
703
704type MachineTypesService struct {
705	s *Service
706}
707
708func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
709	rs := &NetworkEndpointGroupsService{s: s}
710	return rs
711}
712
713type NetworkEndpointGroupsService struct {
714	s *Service
715}
716
717func NewNetworksService(s *Service) *NetworksService {
718	rs := &NetworksService{s: s}
719	return rs
720}
721
722type NetworksService struct {
723	s *Service
724}
725
726func NewNodeGroupsService(s *Service) *NodeGroupsService {
727	rs := &NodeGroupsService{s: s}
728	return rs
729}
730
731type NodeGroupsService struct {
732	s *Service
733}
734
735func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
736	rs := &NodeTemplatesService{s: s}
737	return rs
738}
739
740type NodeTemplatesService struct {
741	s *Service
742}
743
744func NewNodeTypesService(s *Service) *NodeTypesService {
745	rs := &NodeTypesService{s: s}
746	return rs
747}
748
749type NodeTypesService struct {
750	s *Service
751}
752
753func NewOrganizationSecurityPoliciesService(s *Service) *OrganizationSecurityPoliciesService {
754	rs := &OrganizationSecurityPoliciesService{s: s}
755	return rs
756}
757
758type OrganizationSecurityPoliciesService struct {
759	s *Service
760}
761
762func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
763	rs := &PacketMirroringsService{s: s}
764	return rs
765}
766
767type PacketMirroringsService struct {
768	s *Service
769}
770
771func NewProjectsService(s *Service) *ProjectsService {
772	rs := &ProjectsService{s: s}
773	return rs
774}
775
776type ProjectsService struct {
777	s *Service
778}
779
780func NewPublicAdvertisedPrefixesService(s *Service) *PublicAdvertisedPrefixesService {
781	rs := &PublicAdvertisedPrefixesService{s: s}
782	return rs
783}
784
785type PublicAdvertisedPrefixesService struct {
786	s *Service
787}
788
789func NewPublicDelegatedPrefixesService(s *Service) *PublicDelegatedPrefixesService {
790	rs := &PublicDelegatedPrefixesService{s: s}
791	return rs
792}
793
794type PublicDelegatedPrefixesService struct {
795	s *Service
796}
797
798func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
799	rs := &RegionAutoscalersService{s: s}
800	return rs
801}
802
803type RegionAutoscalersService struct {
804	s *Service
805}
806
807func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
808	rs := &RegionBackendServicesService{s: s}
809	return rs
810}
811
812type RegionBackendServicesService struct {
813	s *Service
814}
815
816func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
817	rs := &RegionCommitmentsService{s: s}
818	return rs
819}
820
821type RegionCommitmentsService struct {
822	s *Service
823}
824
825func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
826	rs := &RegionDiskTypesService{s: s}
827	return rs
828}
829
830type RegionDiskTypesService struct {
831	s *Service
832}
833
834func NewRegionDisksService(s *Service) *RegionDisksService {
835	rs := &RegionDisksService{s: s}
836	return rs
837}
838
839type RegionDisksService struct {
840	s *Service
841}
842
843func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
844	rs := &RegionHealthCheckServicesService{s: s}
845	return rs
846}
847
848type RegionHealthCheckServicesService struct {
849	s *Service
850}
851
852func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
853	rs := &RegionHealthChecksService{s: s}
854	return rs
855}
856
857type RegionHealthChecksService struct {
858	s *Service
859}
860
861func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
862	rs := &RegionInstanceGroupManagersService{s: s}
863	return rs
864}
865
866type RegionInstanceGroupManagersService struct {
867	s *Service
868}
869
870func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
871	rs := &RegionInstanceGroupsService{s: s}
872	return rs
873}
874
875type RegionInstanceGroupsService struct {
876	s *Service
877}
878
879func NewRegionInstancesService(s *Service) *RegionInstancesService {
880	rs := &RegionInstancesService{s: s}
881	return rs
882}
883
884type RegionInstancesService struct {
885	s *Service
886}
887
888func NewRegionNetworkEndpointGroupsService(s *Service) *RegionNetworkEndpointGroupsService {
889	rs := &RegionNetworkEndpointGroupsService{s: s}
890	return rs
891}
892
893type RegionNetworkEndpointGroupsService struct {
894	s *Service
895}
896
897func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
898	rs := &RegionNotificationEndpointsService{s: s}
899	return rs
900}
901
902type RegionNotificationEndpointsService struct {
903	s *Service
904}
905
906func NewRegionOperationsService(s *Service) *RegionOperationsService {
907	rs := &RegionOperationsService{s: s}
908	return rs
909}
910
911type RegionOperationsService struct {
912	s *Service
913}
914
915func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
916	rs := &RegionSslCertificatesService{s: s}
917	return rs
918}
919
920type RegionSslCertificatesService struct {
921	s *Service
922}
923
924func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
925	rs := &RegionTargetHttpProxiesService{s: s}
926	return rs
927}
928
929type RegionTargetHttpProxiesService struct {
930	s *Service
931}
932
933func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
934	rs := &RegionTargetHttpsProxiesService{s: s}
935	return rs
936}
937
938type RegionTargetHttpsProxiesService struct {
939	s *Service
940}
941
942func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
943	rs := &RegionUrlMapsService{s: s}
944	return rs
945}
946
947type RegionUrlMapsService struct {
948	s *Service
949}
950
951func NewRegionsService(s *Service) *RegionsService {
952	rs := &RegionsService{s: s}
953	return rs
954}
955
956type RegionsService struct {
957	s *Service
958}
959
960func NewReservationsService(s *Service) *ReservationsService {
961	rs := &ReservationsService{s: s}
962	return rs
963}
964
965type ReservationsService struct {
966	s *Service
967}
968
969func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
970	rs := &ResourcePoliciesService{s: s}
971	return rs
972}
973
974type ResourcePoliciesService struct {
975	s *Service
976}
977
978func NewRoutersService(s *Service) *RoutersService {
979	rs := &RoutersService{s: s}
980	return rs
981}
982
983type RoutersService struct {
984	s *Service
985}
986
987func NewRoutesService(s *Service) *RoutesService {
988	rs := &RoutesService{s: s}
989	return rs
990}
991
992type RoutesService struct {
993	s *Service
994}
995
996func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
997	rs := &SecurityPoliciesService{s: s}
998	return rs
999}
1000
1001type SecurityPoliciesService struct {
1002	s *Service
1003}
1004
1005func NewServiceAttachmentsService(s *Service) *ServiceAttachmentsService {
1006	rs := &ServiceAttachmentsService{s: s}
1007	return rs
1008}
1009
1010type ServiceAttachmentsService struct {
1011	s *Service
1012}
1013
1014func NewSnapshotsService(s *Service) *SnapshotsService {
1015	rs := &SnapshotsService{s: s}
1016	return rs
1017}
1018
1019type SnapshotsService struct {
1020	s *Service
1021}
1022
1023func NewSslCertificatesService(s *Service) *SslCertificatesService {
1024	rs := &SslCertificatesService{s: s}
1025	return rs
1026}
1027
1028type SslCertificatesService struct {
1029	s *Service
1030}
1031
1032func NewSslPoliciesService(s *Service) *SslPoliciesService {
1033	rs := &SslPoliciesService{s: s}
1034	return rs
1035}
1036
1037type SslPoliciesService struct {
1038	s *Service
1039}
1040
1041func NewSubnetworksService(s *Service) *SubnetworksService {
1042	rs := &SubnetworksService{s: s}
1043	return rs
1044}
1045
1046type SubnetworksService struct {
1047	s *Service
1048}
1049
1050func NewTargetGrpcProxiesService(s *Service) *TargetGrpcProxiesService {
1051	rs := &TargetGrpcProxiesService{s: s}
1052	return rs
1053}
1054
1055type TargetGrpcProxiesService struct {
1056	s *Service
1057}
1058
1059func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
1060	rs := &TargetHttpProxiesService{s: s}
1061	return rs
1062}
1063
1064type TargetHttpProxiesService struct {
1065	s *Service
1066}
1067
1068func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
1069	rs := &TargetHttpsProxiesService{s: s}
1070	return rs
1071}
1072
1073type TargetHttpsProxiesService struct {
1074	s *Service
1075}
1076
1077func NewTargetInstancesService(s *Service) *TargetInstancesService {
1078	rs := &TargetInstancesService{s: s}
1079	return rs
1080}
1081
1082type TargetInstancesService struct {
1083	s *Service
1084}
1085
1086func NewTargetPoolsService(s *Service) *TargetPoolsService {
1087	rs := &TargetPoolsService{s: s}
1088	return rs
1089}
1090
1091type TargetPoolsService struct {
1092	s *Service
1093}
1094
1095func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
1096	rs := &TargetSslProxiesService{s: s}
1097	return rs
1098}
1099
1100type TargetSslProxiesService struct {
1101	s *Service
1102}
1103
1104func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
1105	rs := &TargetTcpProxiesService{s: s}
1106	return rs
1107}
1108
1109type TargetTcpProxiesService struct {
1110	s *Service
1111}
1112
1113func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
1114	rs := &TargetVpnGatewaysService{s: s}
1115	return rs
1116}
1117
1118type TargetVpnGatewaysService struct {
1119	s *Service
1120}
1121
1122func NewUrlMapsService(s *Service) *UrlMapsService {
1123	rs := &UrlMapsService{s: s}
1124	return rs
1125}
1126
1127type UrlMapsService struct {
1128	s *Service
1129}
1130
1131func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
1132	rs := &VpnGatewaysService{s: s}
1133	return rs
1134}
1135
1136type VpnGatewaysService struct {
1137	s *Service
1138}
1139
1140func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1141	rs := &VpnTunnelsService{s: s}
1142	return rs
1143}
1144
1145type VpnTunnelsService struct {
1146	s *Service
1147}
1148
1149func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1150	rs := &ZoneOperationsService{s: s}
1151	return rs
1152}
1153
1154type ZoneOperationsService struct {
1155	s *Service
1156}
1157
1158func NewZonesService(s *Service) *ZonesService {
1159	rs := &ZonesService{s: s}
1160	return rs
1161}
1162
1163type ZonesService struct {
1164	s *Service
1165}
1166
1167// AcceleratorConfig: A specification of the type and number of
1168// accelerator cards attached to the instance.
1169type AcceleratorConfig struct {
1170	// AcceleratorCount: The number of the guest accelerator cards exposed
1171	// to this instance.
1172	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1173
1174	// AcceleratorType: Full or partial URL of the accelerator type resource
1175	// to attach to this instance. For example:
1176	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1177	// p100 If you are creating an instance template, specify only the
1178	// accelerator name. See GPUs on Compute Engine for a full list of
1179	// accelerator types.
1180	AcceleratorType string `json:"acceleratorType,omitempty"`
1181
1182	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1183	// unconditionally include in API requests. By default, fields with
1184	// empty values are omitted from API requests. However, any non-pointer,
1185	// non-interface field appearing in ForceSendFields will be sent to the
1186	// server regardless of whether the field is empty or not. This may be
1187	// used to include empty fields in Patch requests.
1188	ForceSendFields []string `json:"-"`
1189
1190	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1191	// include in API requests with the JSON null value. By default, fields
1192	// with empty values are omitted from API requests. However, any field
1193	// with an empty value appearing in NullFields will be sent to the
1194	// server as null. It is an error if a field in this list has a
1195	// non-empty value. This may be used to include null fields in Patch
1196	// requests.
1197	NullFields []string `json:"-"`
1198}
1199
1200func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1201	type NoMethod AcceleratorConfig
1202	raw := NoMethod(*s)
1203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1204}
1205
1206// AcceleratorType: Represents an Accelerator Type resource.
1207//
1208// Google Cloud Platform provides graphics processing units
1209// (accelerators) that you can add to VM instances to improve or
1210// accelerate performance when working with intensive workloads. For
1211// more information, read GPUs on Compute Engine. (== resource_for
1212// {$api_version}.acceleratorTypes ==)
1213type AcceleratorType struct {
1214	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1215	// format.
1216	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1217
1218	// Deprecated -- [Output Only] The deprecation status associated with
1219	// this accelerator type.
1220	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1221
1222	// Description: [Output Only] An optional textual description of the
1223	// resource.
1224	Description string `json:"description,omitempty"`
1225
1226	// Id: [Output Only] The unique identifier for the resource. This
1227	// identifier is defined by the server.
1228	Id uint64 `json:"id,omitempty,string"`
1229
1230	// Kind: [Output Only] The type of the resource. Always
1231	// compute#acceleratorType for accelerator types.
1232	Kind string `json:"kind,omitempty"`
1233
1234	// MaximumCardsPerInstance: [Output Only] Maximum number of accelerator
1235	// cards allowed per instance.
1236	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1237
1238	// Name: [Output Only] Name of the resource.
1239	Name string `json:"name,omitempty"`
1240
1241	// SelfLink: [Output Only] Server-defined, fully qualified URL for this
1242	// resource.
1243	SelfLink string `json:"selfLink,omitempty"`
1244
1245	// Zone: [Output Only] The name of the zone where the accelerator type
1246	// resides, such as us-central1-a. You must specify this field as part
1247	// of the HTTP request URL. It is not settable as a field in the request
1248	// body.
1249	Zone string `json:"zone,omitempty"`
1250
1251	// ServerResponse contains the HTTP response code and headers from the
1252	// server.
1253	googleapi.ServerResponse `json:"-"`
1254
1255	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1256	// to unconditionally include in API requests. By default, fields with
1257	// empty values are omitted from API requests. However, any non-pointer,
1258	// non-interface field appearing in ForceSendFields will be sent to the
1259	// server regardless of whether the field is empty or not. This may be
1260	// used to include empty fields in Patch requests.
1261	ForceSendFields []string `json:"-"`
1262
1263	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1264	// include in API requests with the JSON null value. By default, fields
1265	// with empty values are omitted from API requests. However, any field
1266	// with an empty value appearing in NullFields will be sent to the
1267	// server as null. It is an error if a field in this list has a
1268	// non-empty value. This may be used to include null fields in Patch
1269	// requests.
1270	NullFields []string `json:"-"`
1271}
1272
1273func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1274	type NoMethod AcceleratorType
1275	raw := NoMethod(*s)
1276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1277}
1278
1279type AcceleratorTypeAggregatedList struct {
1280	// Id: [Output Only] Unique identifier for the resource; defined by the
1281	// server.
1282	Id string `json:"id,omitempty"`
1283
1284	// Items: A list of AcceleratorTypesScopedList resources.
1285	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1286
1287	// Kind: [Output Only] Type of resource. Always
1288	// compute#acceleratorTypeAggregatedList for aggregated lists of
1289	// accelerator types.
1290	Kind string `json:"kind,omitempty"`
1291
1292	// NextPageToken: [Output Only] This token allows you to get the next
1293	// page of results for list requests. If the number of results is larger
1294	// than maxResults, use the nextPageToken as a value for the query
1295	// parameter pageToken in the next list request. Subsequent list
1296	// requests will have their own nextPageToken to continue paging through
1297	// the results.
1298	NextPageToken string `json:"nextPageToken,omitempty"`
1299
1300	// SelfLink: [Output Only] Server-defined URL for this resource.
1301	SelfLink string `json:"selfLink,omitempty"`
1302
1303	// Unreachables: [Output Only] Unreachable resources.
1304	Unreachables []string `json:"unreachables,omitempty"`
1305
1306	// Warning: [Output Only] Informational warning message.
1307	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1308
1309	// ServerResponse contains the HTTP response code and headers from the
1310	// server.
1311	googleapi.ServerResponse `json:"-"`
1312
1313	// ForceSendFields is a list of field names (e.g. "Id") to
1314	// unconditionally include in API requests. By default, fields with
1315	// empty values are omitted from API requests. However, any non-pointer,
1316	// non-interface field appearing in ForceSendFields will be sent to the
1317	// server regardless of whether the field is empty or not. This may be
1318	// used to include empty fields in Patch requests.
1319	ForceSendFields []string `json:"-"`
1320
1321	// NullFields is a list of field names (e.g. "Id") to include in API
1322	// requests with the JSON null value. By default, fields with empty
1323	// values are omitted from API requests. However, any field with an
1324	// empty value appearing in NullFields will be sent to the server as
1325	// null. It is an error if a field in this list has a non-empty value.
1326	// This may be used to include null fields in Patch requests.
1327	NullFields []string `json:"-"`
1328}
1329
1330func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1331	type NoMethod AcceleratorTypeAggregatedList
1332	raw := NoMethod(*s)
1333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1334}
1335
1336// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1337// warning message.
1338type AcceleratorTypeAggregatedListWarning struct {
1339	// Code: [Output Only] A warning code, if applicable. For example,
1340	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1341	// the response.
1342	//
1343	// Possible values:
1344	//   "CLEANUP_FAILED"
1345	//   "DEPRECATED_RESOURCE_USED"
1346	//   "DEPRECATED_TYPE_USED"
1347	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1348	//   "EXPERIMENTAL_TYPE_USED"
1349	//   "EXTERNAL_API_WARNING"
1350	//   "FIELD_VALUE_OVERRIDEN"
1351	//   "INJECTED_KERNELS_DEPRECATED"
1352	//   "LARGE_DEPLOYMENT_WARNING"
1353	//   "MISSING_TYPE_DEPENDENCY"
1354	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1355	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1356	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1357	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1358	//   "NEXT_HOP_NOT_RUNNING"
1359	//   "NOT_CRITICAL_ERROR"
1360	//   "NO_RESULTS_ON_PAGE"
1361	//   "PARTIAL_SUCCESS"
1362	//   "REQUIRED_TOS_AGREEMENT"
1363	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1364	//   "RESOURCE_NOT_DELETED"
1365	//   "SCHEMA_VALIDATION_IGNORED"
1366	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1367	//   "UNDECLARED_PROPERTIES"
1368	//   "UNREACHABLE"
1369	Code string `json:"code,omitempty"`
1370
1371	// Data: [Output Only] Metadata about this warning in key: value format.
1372	// For example:
1373	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1374	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1375
1376	// Message: [Output Only] A human-readable description of the warning
1377	// code.
1378	Message string `json:"message,omitempty"`
1379
1380	// ForceSendFields is a list of field names (e.g. "Code") to
1381	// unconditionally include in API requests. By default, fields with
1382	// empty values are omitted from API requests. However, any non-pointer,
1383	// non-interface field appearing in ForceSendFields will be sent to the
1384	// server regardless of whether the field is empty or not. This may be
1385	// used to include empty fields in Patch requests.
1386	ForceSendFields []string `json:"-"`
1387
1388	// NullFields is a list of field names (e.g. "Code") to include in API
1389	// requests with the JSON null value. By default, fields with empty
1390	// values are omitted from API requests. However, any field with an
1391	// empty value appearing in NullFields will be sent to the server as
1392	// null. It is an error if a field in this list has a non-empty value.
1393	// This may be used to include null fields in Patch requests.
1394	NullFields []string `json:"-"`
1395}
1396
1397func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1398	type NoMethod AcceleratorTypeAggregatedListWarning
1399	raw := NoMethod(*s)
1400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1401}
1402
1403type AcceleratorTypeAggregatedListWarningData struct {
1404	// Key: [Output Only] A key that provides more detail on the warning
1405	// being returned. For example, for warnings where there are no results
1406	// in a list request for a particular zone, this key might be scope and
1407	// the key value might be the zone name. Other examples might be a key
1408	// indicating a deprecated resource and a suggested replacement, or a
1409	// warning about invalid network settings (for example, if an instance
1410	// attempts to perform IP forwarding but is not enabled for IP
1411	// forwarding).
1412	Key string `json:"key,omitempty"`
1413
1414	// Value: [Output Only] A warning data value corresponding to the key.
1415	Value string `json:"value,omitempty"`
1416
1417	// ForceSendFields is a list of field names (e.g. "Key") to
1418	// unconditionally include in API requests. By default, fields with
1419	// empty values are omitted from API requests. However, any non-pointer,
1420	// non-interface field appearing in ForceSendFields will be sent to the
1421	// server regardless of whether the field is empty or not. This may be
1422	// used to include empty fields in Patch requests.
1423	ForceSendFields []string `json:"-"`
1424
1425	// NullFields is a list of field names (e.g. "Key") to include in API
1426	// requests with the JSON null value. By default, fields with empty
1427	// values are omitted from API requests. However, any field with an
1428	// empty value appearing in NullFields will be sent to the server as
1429	// null. It is an error if a field in this list has a non-empty value.
1430	// This may be used to include null fields in Patch requests.
1431	NullFields []string `json:"-"`
1432}
1433
1434func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1435	type NoMethod AcceleratorTypeAggregatedListWarningData
1436	raw := NoMethod(*s)
1437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1438}
1439
1440// AcceleratorTypeList: Contains a list of accelerator types.
1441type AcceleratorTypeList struct {
1442	// Id: [Output Only] Unique identifier for the resource; defined by the
1443	// server.
1444	Id string `json:"id,omitempty"`
1445
1446	// Items: A list of AcceleratorType resources.
1447	Items []*AcceleratorType `json:"items,omitempty"`
1448
1449	// Kind: [Output Only] Type of resource. Always
1450	// compute#acceleratorTypeList for lists of accelerator types.
1451	Kind string `json:"kind,omitempty"`
1452
1453	// NextPageToken: [Output Only] This token allows you to get the next
1454	// page of results for list requests. If the number of results is larger
1455	// than maxResults, use the nextPageToken as a value for the query
1456	// parameter pageToken in the next list request. Subsequent list
1457	// requests will have their own nextPageToken to continue paging through
1458	// the results.
1459	NextPageToken string `json:"nextPageToken,omitempty"`
1460
1461	// SelfLink: [Output Only] Server-defined URL for this resource.
1462	SelfLink string `json:"selfLink,omitempty"`
1463
1464	// Warning: [Output Only] Informational warning message.
1465	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1466
1467	// ServerResponse contains the HTTP response code and headers from the
1468	// server.
1469	googleapi.ServerResponse `json:"-"`
1470
1471	// ForceSendFields is a list of field names (e.g. "Id") to
1472	// unconditionally include in API requests. By default, fields with
1473	// empty values are omitted from API requests. However, any non-pointer,
1474	// non-interface field appearing in ForceSendFields will be sent to the
1475	// server regardless of whether the field is empty or not. This may be
1476	// used to include empty fields in Patch requests.
1477	ForceSendFields []string `json:"-"`
1478
1479	// NullFields is a list of field names (e.g. "Id") to include in API
1480	// requests with the JSON null value. By default, fields with empty
1481	// values are omitted from API requests. However, any field with an
1482	// empty value appearing in NullFields will be sent to the server as
1483	// null. It is an error if a field in this list has a non-empty value.
1484	// This may be used to include null fields in Patch requests.
1485	NullFields []string `json:"-"`
1486}
1487
1488func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1489	type NoMethod AcceleratorTypeList
1490	raw := NoMethod(*s)
1491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1492}
1493
1494// AcceleratorTypeListWarning: [Output Only] Informational warning
1495// message.
1496type AcceleratorTypeListWarning struct {
1497	// Code: [Output Only] A warning code, if applicable. For example,
1498	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1499	// the response.
1500	//
1501	// Possible values:
1502	//   "CLEANUP_FAILED"
1503	//   "DEPRECATED_RESOURCE_USED"
1504	//   "DEPRECATED_TYPE_USED"
1505	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1506	//   "EXPERIMENTAL_TYPE_USED"
1507	//   "EXTERNAL_API_WARNING"
1508	//   "FIELD_VALUE_OVERRIDEN"
1509	//   "INJECTED_KERNELS_DEPRECATED"
1510	//   "LARGE_DEPLOYMENT_WARNING"
1511	//   "MISSING_TYPE_DEPENDENCY"
1512	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1513	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1514	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1515	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1516	//   "NEXT_HOP_NOT_RUNNING"
1517	//   "NOT_CRITICAL_ERROR"
1518	//   "NO_RESULTS_ON_PAGE"
1519	//   "PARTIAL_SUCCESS"
1520	//   "REQUIRED_TOS_AGREEMENT"
1521	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1522	//   "RESOURCE_NOT_DELETED"
1523	//   "SCHEMA_VALIDATION_IGNORED"
1524	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1525	//   "UNDECLARED_PROPERTIES"
1526	//   "UNREACHABLE"
1527	Code string `json:"code,omitempty"`
1528
1529	// Data: [Output Only] Metadata about this warning in key: value format.
1530	// For example:
1531	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1532	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1533
1534	// Message: [Output Only] A human-readable description of the warning
1535	// code.
1536	Message string `json:"message,omitempty"`
1537
1538	// ForceSendFields is a list of field names (e.g. "Code") to
1539	// unconditionally include in API requests. By default, fields with
1540	// empty values are omitted from API requests. However, any non-pointer,
1541	// non-interface field appearing in ForceSendFields will be sent to the
1542	// server regardless of whether the field is empty or not. This may be
1543	// used to include empty fields in Patch requests.
1544	ForceSendFields []string `json:"-"`
1545
1546	// NullFields is a list of field names (e.g. "Code") to include in API
1547	// requests with the JSON null value. By default, fields with empty
1548	// values are omitted from API requests. However, any field with an
1549	// empty value appearing in NullFields will be sent to the server as
1550	// null. It is an error if a field in this list has a non-empty value.
1551	// This may be used to include null fields in Patch requests.
1552	NullFields []string `json:"-"`
1553}
1554
1555func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1556	type NoMethod AcceleratorTypeListWarning
1557	raw := NoMethod(*s)
1558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1559}
1560
1561type AcceleratorTypeListWarningData struct {
1562	// Key: [Output Only] A key that provides more detail on the warning
1563	// being returned. For example, for warnings where there are no results
1564	// in a list request for a particular zone, this key might be scope and
1565	// the key value might be the zone name. Other examples might be a key
1566	// indicating a deprecated resource and a suggested replacement, or a
1567	// warning about invalid network settings (for example, if an instance
1568	// attempts to perform IP forwarding but is not enabled for IP
1569	// forwarding).
1570	Key string `json:"key,omitempty"`
1571
1572	// Value: [Output Only] A warning data value corresponding to the key.
1573	Value string `json:"value,omitempty"`
1574
1575	// ForceSendFields is a list of field names (e.g. "Key") to
1576	// unconditionally include in API requests. By default, fields with
1577	// empty values are omitted from API requests. However, any non-pointer,
1578	// non-interface field appearing in ForceSendFields will be sent to the
1579	// server regardless of whether the field is empty or not. This may be
1580	// used to include empty fields in Patch requests.
1581	ForceSendFields []string `json:"-"`
1582
1583	// NullFields is a list of field names (e.g. "Key") to include in API
1584	// requests with the JSON null value. By default, fields with empty
1585	// values are omitted from API requests. However, any field with an
1586	// empty value appearing in NullFields will be sent to the server as
1587	// null. It is an error if a field in this list has a non-empty value.
1588	// This may be used to include null fields in Patch requests.
1589	NullFields []string `json:"-"`
1590}
1591
1592func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1593	type NoMethod AcceleratorTypeListWarningData
1594	raw := NoMethod(*s)
1595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1596}
1597
1598type AcceleratorTypesScopedList struct {
1599	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1600	// in this scope.
1601	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1602
1603	// Warning: [Output Only] An informational warning that appears when the
1604	// accelerator types list is empty.
1605	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1606
1607	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1608	// unconditionally include in API requests. By default, fields with
1609	// empty values are omitted from API requests. However, any non-pointer,
1610	// non-interface field appearing in ForceSendFields will be sent to the
1611	// server regardless of whether the field is empty or not. This may be
1612	// used to include empty fields in Patch requests.
1613	ForceSendFields []string `json:"-"`
1614
1615	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1616	// include in API requests with the JSON null value. By default, fields
1617	// with empty values are omitted from API requests. However, any field
1618	// with an empty value appearing in NullFields will be sent to the
1619	// server as null. It is an error if a field in this list has a
1620	// non-empty value. This may be used to include null fields in Patch
1621	// requests.
1622	NullFields []string `json:"-"`
1623}
1624
1625func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1626	type NoMethod AcceleratorTypesScopedList
1627	raw := NoMethod(*s)
1628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1629}
1630
1631// AcceleratorTypesScopedListWarning: [Output Only] An informational
1632// warning that appears when the accelerator types list is empty.
1633type AcceleratorTypesScopedListWarning struct {
1634	// Code: [Output Only] A warning code, if applicable. For example,
1635	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1636	// the response.
1637	//
1638	// Possible values:
1639	//   "CLEANUP_FAILED"
1640	//   "DEPRECATED_RESOURCE_USED"
1641	//   "DEPRECATED_TYPE_USED"
1642	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1643	//   "EXPERIMENTAL_TYPE_USED"
1644	//   "EXTERNAL_API_WARNING"
1645	//   "FIELD_VALUE_OVERRIDEN"
1646	//   "INJECTED_KERNELS_DEPRECATED"
1647	//   "LARGE_DEPLOYMENT_WARNING"
1648	//   "MISSING_TYPE_DEPENDENCY"
1649	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1650	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1651	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1652	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1653	//   "NEXT_HOP_NOT_RUNNING"
1654	//   "NOT_CRITICAL_ERROR"
1655	//   "NO_RESULTS_ON_PAGE"
1656	//   "PARTIAL_SUCCESS"
1657	//   "REQUIRED_TOS_AGREEMENT"
1658	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1659	//   "RESOURCE_NOT_DELETED"
1660	//   "SCHEMA_VALIDATION_IGNORED"
1661	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1662	//   "UNDECLARED_PROPERTIES"
1663	//   "UNREACHABLE"
1664	Code string `json:"code,omitempty"`
1665
1666	// Data: [Output Only] Metadata about this warning in key: value format.
1667	// For example:
1668	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1669	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1670
1671	// Message: [Output Only] A human-readable description of the warning
1672	// code.
1673	Message string `json:"message,omitempty"`
1674
1675	// ForceSendFields is a list of field names (e.g. "Code") to
1676	// unconditionally include in API requests. By default, fields with
1677	// empty values are omitted from API requests. However, any non-pointer,
1678	// non-interface field appearing in ForceSendFields will be sent to the
1679	// server regardless of whether the field is empty or not. This may be
1680	// used to include empty fields in Patch requests.
1681	ForceSendFields []string `json:"-"`
1682
1683	// NullFields is a list of field names (e.g. "Code") to include in API
1684	// requests with the JSON null value. By default, fields with empty
1685	// values are omitted from API requests. However, any field with an
1686	// empty value appearing in NullFields will be sent to the server as
1687	// null. It is an error if a field in this list has a non-empty value.
1688	// This may be used to include null fields in Patch requests.
1689	NullFields []string `json:"-"`
1690}
1691
1692func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1693	type NoMethod AcceleratorTypesScopedListWarning
1694	raw := NoMethod(*s)
1695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1696}
1697
1698type AcceleratorTypesScopedListWarningData struct {
1699	// Key: [Output Only] A key that provides more detail on the warning
1700	// being returned. For example, for warnings where there are no results
1701	// in a list request for a particular zone, this key might be scope and
1702	// the key value might be the zone name. Other examples might be a key
1703	// indicating a deprecated resource and a suggested replacement, or a
1704	// warning about invalid network settings (for example, if an instance
1705	// attempts to perform IP forwarding but is not enabled for IP
1706	// forwarding).
1707	Key string `json:"key,omitempty"`
1708
1709	// Value: [Output Only] A warning data value corresponding to the key.
1710	Value string `json:"value,omitempty"`
1711
1712	// ForceSendFields is a list of field names (e.g. "Key") to
1713	// unconditionally include in API requests. By default, fields with
1714	// empty values are omitted from API requests. However, any non-pointer,
1715	// non-interface field appearing in ForceSendFields will be sent to the
1716	// server regardless of whether the field is empty or not. This may be
1717	// used to include empty fields in Patch requests.
1718	ForceSendFields []string `json:"-"`
1719
1720	// NullFields is a list of field names (e.g. "Key") to include in API
1721	// requests with the JSON null value. By default, fields with empty
1722	// values are omitted from API requests. However, any field with an
1723	// empty value appearing in NullFields will be sent to the server as
1724	// null. It is an error if a field in this list has a non-empty value.
1725	// This may be used to include null fields in Patch requests.
1726	NullFields []string `json:"-"`
1727}
1728
1729func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1730	type NoMethod AcceleratorTypesScopedListWarningData
1731	raw := NoMethod(*s)
1732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1733}
1734
1735// AccessConfig: An access configuration attached to an instance's
1736// network interface. Only one access config per instance is supported.
1737type AccessConfig struct {
1738	// ExternalIpv6: [Output Only] The first IPv6 address of the external
1739	// IPv6 range associated with this instance, prefix length is stored in
1740	// externalIpv6PrefixLength in ipv6AccessConfig. The field is output
1741	// only, an IPv6 address from a subnetwork associated with the instance
1742	// will be allocated dynamically.
1743	ExternalIpv6 string `json:"externalIpv6,omitempty"`
1744
1745	// ExternalIpv6PrefixLength: [Output Only] The prefix length of the
1746	// external IPv6 range.
1747	ExternalIpv6PrefixLength int64 `json:"externalIpv6PrefixLength,omitempty"`
1748
1749	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1750	// for access configs.
1751	Kind string `json:"kind,omitempty"`
1752
1753	// Name: The name of this access configuration. The default and
1754	// recommended name is External NAT, but you can use any arbitrary
1755	// string, such as My external IP or Network Access.
1756	Name string `json:"name,omitempty"`
1757
1758	// NatIP: An external IP address associated with this instance. Specify
1759	// an unused static external IP address available to the project or
1760	// leave this field undefined to use an IP from a shared ephemeral IP
1761	// address pool. If you specify a static external IP address, it must
1762	// live in the same region as the zone of the instance.
1763	NatIP string `json:"natIP,omitempty"`
1764
1765	// NetworkTier: This signifies the networking tier used for configuring
1766	// this access configuration and can only take the following values:
1767	// PREMIUM, STANDARD.
1768	//
1769	// If an AccessConfig is specified without a valid external IP address,
1770	// an ephemeral IP will be created with this networkTier.
1771	//
1772	// If an AccessConfig with a valid external IP address is specified, it
1773	// must match that of the networkTier associated with the Address
1774	// resource owning that IP.
1775	//
1776	// Possible values:
1777	//   "PREMIUM"
1778	//   "STANDARD"
1779	NetworkTier string `json:"networkTier,omitempty"`
1780
1781	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1782	// You can set this field only if the `setPublicPtr` field is enabled.
1783	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1784
1785	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1786	// created to map the external IP address of the instance to a DNS
1787	// domain name.
1788	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1789
1790	// Type: The type of configuration. The default and only option is
1791	// ONE_TO_ONE_NAT.
1792	//
1793	// Possible values:
1794	//   "DIRECT_IPV6"
1795	//   "ONE_TO_ONE_NAT" (default)
1796	Type string `json:"type,omitempty"`
1797
1798	// ForceSendFields is a list of field names (e.g. "ExternalIpv6") to
1799	// unconditionally include in API requests. By default, fields with
1800	// empty values are omitted from API requests. However, any non-pointer,
1801	// non-interface field appearing in ForceSendFields will be sent to the
1802	// server regardless of whether the field is empty or not. This may be
1803	// used to include empty fields in Patch requests.
1804	ForceSendFields []string `json:"-"`
1805
1806	// NullFields is a list of field names (e.g. "ExternalIpv6") to include
1807	// in API requests with the JSON null value. By default, fields with
1808	// empty values are omitted from API requests. However, any field with
1809	// an empty value appearing in NullFields will be sent to the server as
1810	// null. It is an error if a field in this list has a non-empty value.
1811	// This may be used to include null fields in Patch requests.
1812	NullFields []string `json:"-"`
1813}
1814
1815func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1816	type NoMethod AccessConfig
1817	raw := NoMethod(*s)
1818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1819}
1820
1821// Address: Use global external addresses for GFE-based external HTTP(S)
1822// load balancers in Premium Tier.
1823//
1824// Use global internal addresses for reserved peering network
1825// range.
1826//
1827// Use regional external addresses for the following resources:
1828//
1829// - External IP addresses for VM instances - Regional external
1830// forwarding rules - Cloud NAT external IP addresses - GFE based LBs in
1831// Standard Tier - Network LBs in Premium or Standard Tier - Cloud VPN
1832// gateways (both Classic and HA)
1833//
1834// Use regional internal IP addresses for subnet IP ranges (primary and
1835// secondary). This includes:
1836//
1837// - Internal IP addresses for VM instances - Alias IP ranges of VM
1838// instances (/32 only) - Regional internal forwarding rules - Internal
1839// TCP/UDP load balancer addresses - Internal HTTP(S) load balancer
1840// addresses - Cloud DNS inbound forwarding IP addresses
1841//
1842// For more information, read reserved IP address.
1843//
1844// (== resource_for {$api_version}.addresses ==) (== resource_for
1845// {$api_version}.globalAddresses ==)
1846type Address struct {
1847	// Address: The static IP address represented by this resource.
1848	Address string `json:"address,omitempty"`
1849
1850	// AddressType: The type of address to reserve, either INTERNAL or
1851	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1852	//
1853	// Possible values:
1854	//   "EXTERNAL"
1855	//   "INTERNAL"
1856	//   "UNSPECIFIED_TYPE"
1857	AddressType string `json:"addressType,omitempty"`
1858
1859	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1860	// format.
1861	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1862
1863	// Description: An optional description of this resource. Provide this
1864	// field when you create the resource.
1865	Description string `json:"description,omitempty"`
1866
1867	// Id: [Output Only] The unique identifier for the resource. This
1868	// identifier is defined by the server.
1869	Id uint64 `json:"id,omitempty,string"`
1870
1871	// IpVersion: The IP version that will be used by this address. Valid
1872	// options are IPV4 or IPV6. This can only be specified for a global
1873	// address.
1874	//
1875	// Possible values:
1876	//   "IPV4"
1877	//   "IPV6"
1878	//   "UNSPECIFIED_VERSION"
1879	IpVersion string `json:"ipVersion,omitempty"`
1880
1881	// Kind: [Output Only] Type of the resource. Always compute#address for
1882	// addresses.
1883	Kind string `json:"kind,omitempty"`
1884
1885	// LabelFingerprint: A fingerprint for the labels being applied to this
1886	// Address, which is essentially a hash of the labels set used for
1887	// optimistic locking. The fingerprint is initially generated by Compute
1888	// Engine and changes after every request to modify or update labels.
1889	// You must always provide an up-to-date fingerprint hash in order to
1890	// update or change labels, otherwise the request will fail with error
1891	// 412 conditionNotMet.
1892	//
1893	// To see the latest fingerprint, make a get() request to retrieve an
1894	// Address.
1895	LabelFingerprint string `json:"labelFingerprint,omitempty"`
1896
1897	// Labels: Labels for this resource. These can only be added or modified
1898	// by the setLabels method. Each label key/value pair must comply with
1899	// RFC1035. Label values may be empty.
1900	Labels map[string]string `json:"labels,omitempty"`
1901
1902	// Name: Name of the resource. Provided by the client when the resource
1903	// is created. The name must be 1-63 characters long, and comply with
1904	// RFC1035. Specifically, the name must be 1-63 characters long and
1905	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1906	// character must be a lowercase letter, and all following characters
1907	// (except for the last character) must be a dash, lowercase letter, or
1908	// digit. The last character must be a lowercase letter or digit.
1909	Name string `json:"name,omitempty"`
1910
1911	// Network: The URL of the network in which to reserve the address. This
1912	// field can only be used with INTERNAL type with the VPC_PEERING
1913	// purpose.
1914	Network string `json:"network,omitempty"`
1915
1916	// NetworkTier: This signifies the networking tier used for configuring
1917	// this address and can only take the following values: PREMIUM or
1918	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1919	// forwarding rules can be either Premium or Standard Tier. Standard
1920	// Tier addresses applied to regional forwarding rules can be used with
1921	// any external load balancer. Regional forwarding rules in Premium Tier
1922	// can only be used with a network load balancer.
1923	//
1924	// If this field is not specified, it is assumed to be PREMIUM.
1925	//
1926	// Possible values:
1927	//   "PREMIUM"
1928	//   "STANDARD"
1929	NetworkTier string `json:"networkTier,omitempty"`
1930
1931	// PrefixLength: The prefix length if the resource represents an IP
1932	// range.
1933	PrefixLength int64 `json:"prefixLength,omitempty"`
1934
1935	// Purpose: The purpose of this resource, which can be one of the
1936	// following values:
1937	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1938	// IP ranges, internal load balancers, and similar resources.
1939	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1940	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1941	// networks.
1942	// - `NAT_AUTO` for addresses that are external IP addresses
1943	// automatically reserved for Cloud NAT.
1944	// - `IPSEC_INTERCONNECT` for addresses created from a private IP range
1945	// that are reserved for a VLAN attachment in an IPsec-encrypted Cloud
1946	// Interconnect configuration. These addresses are regional resources.
1947	// Not currently available publicly.
1948	//
1949	// Possible values:
1950	//   "DNS_RESOLVER"
1951	//   "GCE_ENDPOINT"
1952	//   "IPSEC_INTERCONNECT"
1953	//   "NAT_AUTO"
1954	//   "PRIVATE_SERVICE_CONNECT"
1955	//   "SHARED_LOADBALANCER_VIP"
1956	//   "VPC_PEERING"
1957	Purpose string `json:"purpose,omitempty"`
1958
1959	// Region: [Output Only] The URL of the region where a regional address
1960	// resides. For regional addresses, you must specify the region as a
1961	// path parameter in the HTTP request URL. This field is not applicable
1962	// to global addresses.
1963	Region string `json:"region,omitempty"`
1964
1965	// SelfLink: [Output Only] Server-defined URL for the resource.
1966	SelfLink string `json:"selfLink,omitempty"`
1967
1968	// Status: [Output Only] The status of the address, which can be one of
1969	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1970	// currently in the process of being reserved. A RESERVED address is
1971	// currently reserved and available to use. An IN_USE address is
1972	// currently being used by another resource and is not available.
1973	//
1974	// Possible values:
1975	//   "IN_USE"
1976	//   "RESERVED"
1977	//   "RESERVING"
1978	Status string `json:"status,omitempty"`
1979
1980	// Subnetwork: The URL of the subnetwork in which to reserve the
1981	// address. If an IP address is specified, it must be within the
1982	// subnetwork's IP range. This field can only be used with INTERNAL type
1983	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1984	Subnetwork string `json:"subnetwork,omitempty"`
1985
1986	// Users: [Output Only] The URLs of the resources that are using this
1987	// address.
1988	Users []string `json:"users,omitempty"`
1989
1990	// ServerResponse contains the HTTP response code and headers from the
1991	// server.
1992	googleapi.ServerResponse `json:"-"`
1993
1994	// ForceSendFields is a list of field names (e.g. "Address") to
1995	// unconditionally include in API requests. By default, fields with
1996	// empty values are omitted from API requests. However, any non-pointer,
1997	// non-interface field appearing in ForceSendFields will be sent to the
1998	// server regardless of whether the field is empty or not. This may be
1999	// used to include empty fields in Patch requests.
2000	ForceSendFields []string `json:"-"`
2001
2002	// NullFields is a list of field names (e.g. "Address") to include in
2003	// API requests with the JSON null value. By default, fields with empty
2004	// values are omitted from API requests. However, any field with an
2005	// empty value appearing in NullFields will be sent to the server as
2006	// null. It is an error if a field in this list has a non-empty value.
2007	// This may be used to include null fields in Patch requests.
2008	NullFields []string `json:"-"`
2009}
2010
2011func (s *Address) MarshalJSON() ([]byte, error) {
2012	type NoMethod Address
2013	raw := NoMethod(*s)
2014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2015}
2016
2017type AddressAggregatedList struct {
2018	// Id: [Output Only] Unique identifier for the resource; defined by the
2019	// server.
2020	Id string `json:"id,omitempty"`
2021
2022	// Items: A list of AddressesScopedList resources.
2023	Items map[string]AddressesScopedList `json:"items,omitempty"`
2024
2025	// Kind: [Output Only] Type of resource. Always
2026	// compute#addressAggregatedList for aggregated lists of addresses.
2027	Kind string `json:"kind,omitempty"`
2028
2029	// NextPageToken: [Output Only] This token allows you to get the next
2030	// page of results for list requests. If the number of results is larger
2031	// than maxResults, use the nextPageToken as a value for the query
2032	// parameter pageToken in the next list request. Subsequent list
2033	// requests will have their own nextPageToken to continue paging through
2034	// the results.
2035	NextPageToken string `json:"nextPageToken,omitempty"`
2036
2037	// SelfLink: [Output Only] Server-defined URL for this resource.
2038	SelfLink string `json:"selfLink,omitempty"`
2039
2040	// Unreachables: [Output Only] Unreachable resources.
2041	Unreachables []string `json:"unreachables,omitempty"`
2042
2043	// Warning: [Output Only] Informational warning message.
2044	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
2045
2046	// ServerResponse contains the HTTP response code and headers from the
2047	// server.
2048	googleapi.ServerResponse `json:"-"`
2049
2050	// ForceSendFields is a list of field names (e.g. "Id") to
2051	// unconditionally include in API requests. By default, fields with
2052	// empty values are omitted from API requests. However, any non-pointer,
2053	// non-interface field appearing in ForceSendFields will be sent to the
2054	// server regardless of whether the field is empty or not. This may be
2055	// used to include empty fields in Patch requests.
2056	ForceSendFields []string `json:"-"`
2057
2058	// NullFields is a list of field names (e.g. "Id") to include in API
2059	// requests with the JSON null value. By default, fields with empty
2060	// values are omitted from API requests. However, any field with an
2061	// empty value appearing in NullFields will be sent to the server as
2062	// null. It is an error if a field in this list has a non-empty value.
2063	// This may be used to include null fields in Patch requests.
2064	NullFields []string `json:"-"`
2065}
2066
2067func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
2068	type NoMethod AddressAggregatedList
2069	raw := NoMethod(*s)
2070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2071}
2072
2073// AddressAggregatedListWarning: [Output Only] Informational warning
2074// message.
2075type AddressAggregatedListWarning struct {
2076	// Code: [Output Only] A warning code, if applicable. For example,
2077	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2078	// the response.
2079	//
2080	// Possible values:
2081	//   "CLEANUP_FAILED"
2082	//   "DEPRECATED_RESOURCE_USED"
2083	//   "DEPRECATED_TYPE_USED"
2084	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2085	//   "EXPERIMENTAL_TYPE_USED"
2086	//   "EXTERNAL_API_WARNING"
2087	//   "FIELD_VALUE_OVERRIDEN"
2088	//   "INJECTED_KERNELS_DEPRECATED"
2089	//   "LARGE_DEPLOYMENT_WARNING"
2090	//   "MISSING_TYPE_DEPENDENCY"
2091	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2092	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2093	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2094	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2095	//   "NEXT_HOP_NOT_RUNNING"
2096	//   "NOT_CRITICAL_ERROR"
2097	//   "NO_RESULTS_ON_PAGE"
2098	//   "PARTIAL_SUCCESS"
2099	//   "REQUIRED_TOS_AGREEMENT"
2100	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2101	//   "RESOURCE_NOT_DELETED"
2102	//   "SCHEMA_VALIDATION_IGNORED"
2103	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2104	//   "UNDECLARED_PROPERTIES"
2105	//   "UNREACHABLE"
2106	Code string `json:"code,omitempty"`
2107
2108	// Data: [Output Only] Metadata about this warning in key: value format.
2109	// For example:
2110	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2111	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
2112
2113	// Message: [Output Only] A human-readable description of the warning
2114	// code.
2115	Message string `json:"message,omitempty"`
2116
2117	// ForceSendFields is a list of field names (e.g. "Code") to
2118	// unconditionally include in API requests. By default, fields with
2119	// empty values are omitted from API requests. However, any non-pointer,
2120	// non-interface field appearing in ForceSendFields will be sent to the
2121	// server regardless of whether the field is empty or not. This may be
2122	// used to include empty fields in Patch requests.
2123	ForceSendFields []string `json:"-"`
2124
2125	// NullFields is a list of field names (e.g. "Code") to include in API
2126	// requests with the JSON null value. By default, fields with empty
2127	// values are omitted from API requests. However, any field with an
2128	// empty value appearing in NullFields will be sent to the server as
2129	// null. It is an error if a field in this list has a non-empty value.
2130	// This may be used to include null fields in Patch requests.
2131	NullFields []string `json:"-"`
2132}
2133
2134func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
2135	type NoMethod AddressAggregatedListWarning
2136	raw := NoMethod(*s)
2137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2138}
2139
2140type AddressAggregatedListWarningData struct {
2141	// Key: [Output Only] A key that provides more detail on the warning
2142	// being returned. For example, for warnings where there are no results
2143	// in a list request for a particular zone, this key might be scope and
2144	// the key value might be the zone name. Other examples might be a key
2145	// indicating a deprecated resource and a suggested replacement, or a
2146	// warning about invalid network settings (for example, if an instance
2147	// attempts to perform IP forwarding but is not enabled for IP
2148	// forwarding).
2149	Key string `json:"key,omitempty"`
2150
2151	// Value: [Output Only] A warning data value corresponding to the key.
2152	Value string `json:"value,omitempty"`
2153
2154	// ForceSendFields is a list of field names (e.g. "Key") to
2155	// unconditionally include in API requests. By default, fields with
2156	// empty values are omitted from API requests. However, any non-pointer,
2157	// non-interface field appearing in ForceSendFields will be sent to the
2158	// server regardless of whether the field is empty or not. This may be
2159	// used to include empty fields in Patch requests.
2160	ForceSendFields []string `json:"-"`
2161
2162	// NullFields is a list of field names (e.g. "Key") to include in API
2163	// requests with the JSON null value. By default, fields with empty
2164	// values are omitted from API requests. However, any field with an
2165	// empty value appearing in NullFields will be sent to the server as
2166	// null. It is an error if a field in this list has a non-empty value.
2167	// This may be used to include null fields in Patch requests.
2168	NullFields []string `json:"-"`
2169}
2170
2171func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2172	type NoMethod AddressAggregatedListWarningData
2173	raw := NoMethod(*s)
2174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2175}
2176
2177// AddressList: Contains a list of addresses.
2178type AddressList struct {
2179	// Id: [Output Only] Unique identifier for the resource; defined by the
2180	// server.
2181	Id string `json:"id,omitempty"`
2182
2183	// Items: A list of Address resources.
2184	Items []*Address `json:"items,omitempty"`
2185
2186	// Kind: [Output Only] Type of resource. Always compute#addressList for
2187	// lists of addresses.
2188	Kind string `json:"kind,omitempty"`
2189
2190	// NextPageToken: [Output Only] This token allows you to get the next
2191	// page of results for list requests. If the number of results is larger
2192	// than maxResults, use the nextPageToken as a value for the query
2193	// parameter pageToken in the next list request. Subsequent list
2194	// requests will have their own nextPageToken to continue paging through
2195	// the results.
2196	NextPageToken string `json:"nextPageToken,omitempty"`
2197
2198	// SelfLink: [Output Only] Server-defined URL for this resource.
2199	SelfLink string `json:"selfLink,omitempty"`
2200
2201	// Warning: [Output Only] Informational warning message.
2202	Warning *AddressListWarning `json:"warning,omitempty"`
2203
2204	// ServerResponse contains the HTTP response code and headers from the
2205	// server.
2206	googleapi.ServerResponse `json:"-"`
2207
2208	// ForceSendFields is a list of field names (e.g. "Id") to
2209	// unconditionally include in API requests. By default, fields with
2210	// empty values are omitted from API requests. However, any non-pointer,
2211	// non-interface field appearing in ForceSendFields will be sent to the
2212	// server regardless of whether the field is empty or not. This may be
2213	// used to include empty fields in Patch requests.
2214	ForceSendFields []string `json:"-"`
2215
2216	// NullFields is a list of field names (e.g. "Id") to include in API
2217	// requests with the JSON null value. By default, fields with empty
2218	// values are omitted from API requests. However, any field with an
2219	// empty value appearing in NullFields will be sent to the server as
2220	// null. It is an error if a field in this list has a non-empty value.
2221	// This may be used to include null fields in Patch requests.
2222	NullFields []string `json:"-"`
2223}
2224
2225func (s *AddressList) MarshalJSON() ([]byte, error) {
2226	type NoMethod AddressList
2227	raw := NoMethod(*s)
2228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2229}
2230
2231// AddressListWarning: [Output Only] Informational warning message.
2232type AddressListWarning struct {
2233	// Code: [Output Only] A warning code, if applicable. For example,
2234	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2235	// the response.
2236	//
2237	// Possible values:
2238	//   "CLEANUP_FAILED"
2239	//   "DEPRECATED_RESOURCE_USED"
2240	//   "DEPRECATED_TYPE_USED"
2241	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2242	//   "EXPERIMENTAL_TYPE_USED"
2243	//   "EXTERNAL_API_WARNING"
2244	//   "FIELD_VALUE_OVERRIDEN"
2245	//   "INJECTED_KERNELS_DEPRECATED"
2246	//   "LARGE_DEPLOYMENT_WARNING"
2247	//   "MISSING_TYPE_DEPENDENCY"
2248	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2249	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2250	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2251	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2252	//   "NEXT_HOP_NOT_RUNNING"
2253	//   "NOT_CRITICAL_ERROR"
2254	//   "NO_RESULTS_ON_PAGE"
2255	//   "PARTIAL_SUCCESS"
2256	//   "REQUIRED_TOS_AGREEMENT"
2257	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2258	//   "RESOURCE_NOT_DELETED"
2259	//   "SCHEMA_VALIDATION_IGNORED"
2260	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2261	//   "UNDECLARED_PROPERTIES"
2262	//   "UNREACHABLE"
2263	Code string `json:"code,omitempty"`
2264
2265	// Data: [Output Only] Metadata about this warning in key: value format.
2266	// For example:
2267	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2268	Data []*AddressListWarningData `json:"data,omitempty"`
2269
2270	// Message: [Output Only] A human-readable description of the warning
2271	// code.
2272	Message string `json:"message,omitempty"`
2273
2274	// ForceSendFields is a list of field names (e.g. "Code") to
2275	// unconditionally include in API requests. By default, fields with
2276	// empty values are omitted from API requests. However, any non-pointer,
2277	// non-interface field appearing in ForceSendFields will be sent to the
2278	// server regardless of whether the field is empty or not. This may be
2279	// used to include empty fields in Patch requests.
2280	ForceSendFields []string `json:"-"`
2281
2282	// NullFields is a list of field names (e.g. "Code") to include in API
2283	// requests with the JSON null value. By default, fields with empty
2284	// values are omitted from API requests. However, any field with an
2285	// empty value appearing in NullFields will be sent to the server as
2286	// null. It is an error if a field in this list has a non-empty value.
2287	// This may be used to include null fields in Patch requests.
2288	NullFields []string `json:"-"`
2289}
2290
2291func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2292	type NoMethod AddressListWarning
2293	raw := NoMethod(*s)
2294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2295}
2296
2297type AddressListWarningData struct {
2298	// Key: [Output Only] A key that provides more detail on the warning
2299	// being returned. For example, for warnings where there are no results
2300	// in a list request for a particular zone, this key might be scope and
2301	// the key value might be the zone name. Other examples might be a key
2302	// indicating a deprecated resource and a suggested replacement, or a
2303	// warning about invalid network settings (for example, if an instance
2304	// attempts to perform IP forwarding but is not enabled for IP
2305	// forwarding).
2306	Key string `json:"key,omitempty"`
2307
2308	// Value: [Output Only] A warning data value corresponding to the key.
2309	Value string `json:"value,omitempty"`
2310
2311	// ForceSendFields is a list of field names (e.g. "Key") to
2312	// unconditionally include in API requests. By default, fields with
2313	// empty values are omitted from API requests. However, any non-pointer,
2314	// non-interface field appearing in ForceSendFields will be sent to the
2315	// server regardless of whether the field is empty or not. This may be
2316	// used to include empty fields in Patch requests.
2317	ForceSendFields []string `json:"-"`
2318
2319	// NullFields is a list of field names (e.g. "Key") to include in API
2320	// requests with the JSON null value. By default, fields with empty
2321	// values are omitted from API requests. However, any field with an
2322	// empty value appearing in NullFields will be sent to the server as
2323	// null. It is an error if a field in this list has a non-empty value.
2324	// This may be used to include null fields in Patch requests.
2325	NullFields []string `json:"-"`
2326}
2327
2328func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2329	type NoMethod AddressListWarningData
2330	raw := NoMethod(*s)
2331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2332}
2333
2334type AddressesScopedList struct {
2335	// Addresses: [Output Only] A list of addresses contained in this scope.
2336	Addresses []*Address `json:"addresses,omitempty"`
2337
2338	// Warning: [Output Only] Informational warning which replaces the list
2339	// of addresses when the list is empty.
2340	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2341
2342	// ForceSendFields is a list of field names (e.g. "Addresses") to
2343	// unconditionally include in API requests. By default, fields with
2344	// empty values are omitted from API requests. However, any non-pointer,
2345	// non-interface field appearing in ForceSendFields will be sent to the
2346	// server regardless of whether the field is empty or not. This may be
2347	// used to include empty fields in Patch requests.
2348	ForceSendFields []string `json:"-"`
2349
2350	// NullFields is a list of field names (e.g. "Addresses") to include in
2351	// API requests with the JSON null value. By default, fields with empty
2352	// values are omitted from API requests. However, any field with an
2353	// empty value appearing in NullFields will be sent to the server as
2354	// null. It is an error if a field in this list has a non-empty value.
2355	// This may be used to include null fields in Patch requests.
2356	NullFields []string `json:"-"`
2357}
2358
2359func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2360	type NoMethod AddressesScopedList
2361	raw := NoMethod(*s)
2362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2363}
2364
2365// AddressesScopedListWarning: [Output Only] Informational warning which
2366// replaces the list of addresses when the list is empty.
2367type AddressesScopedListWarning struct {
2368	// Code: [Output Only] A warning code, if applicable. For example,
2369	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2370	// the response.
2371	//
2372	// Possible values:
2373	//   "CLEANUP_FAILED"
2374	//   "DEPRECATED_RESOURCE_USED"
2375	//   "DEPRECATED_TYPE_USED"
2376	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2377	//   "EXPERIMENTAL_TYPE_USED"
2378	//   "EXTERNAL_API_WARNING"
2379	//   "FIELD_VALUE_OVERRIDEN"
2380	//   "INJECTED_KERNELS_DEPRECATED"
2381	//   "LARGE_DEPLOYMENT_WARNING"
2382	//   "MISSING_TYPE_DEPENDENCY"
2383	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2384	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2385	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2386	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2387	//   "NEXT_HOP_NOT_RUNNING"
2388	//   "NOT_CRITICAL_ERROR"
2389	//   "NO_RESULTS_ON_PAGE"
2390	//   "PARTIAL_SUCCESS"
2391	//   "REQUIRED_TOS_AGREEMENT"
2392	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2393	//   "RESOURCE_NOT_DELETED"
2394	//   "SCHEMA_VALIDATION_IGNORED"
2395	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2396	//   "UNDECLARED_PROPERTIES"
2397	//   "UNREACHABLE"
2398	Code string `json:"code,omitempty"`
2399
2400	// Data: [Output Only] Metadata about this warning in key: value format.
2401	// For example:
2402	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2403	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2404
2405	// Message: [Output Only] A human-readable description of the warning
2406	// code.
2407	Message string `json:"message,omitempty"`
2408
2409	// ForceSendFields is a list of field names (e.g. "Code") to
2410	// unconditionally include in API requests. By default, fields with
2411	// empty values are omitted from API requests. However, any non-pointer,
2412	// non-interface field appearing in ForceSendFields will be sent to the
2413	// server regardless of whether the field is empty or not. This may be
2414	// used to include empty fields in Patch requests.
2415	ForceSendFields []string `json:"-"`
2416
2417	// NullFields is a list of field names (e.g. "Code") to include in API
2418	// requests with the JSON null value. By default, fields with empty
2419	// values are omitted from API requests. However, any field with an
2420	// empty value appearing in NullFields will be sent to the server as
2421	// null. It is an error if a field in this list has a non-empty value.
2422	// This may be used to include null fields in Patch requests.
2423	NullFields []string `json:"-"`
2424}
2425
2426func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2427	type NoMethod AddressesScopedListWarning
2428	raw := NoMethod(*s)
2429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2430}
2431
2432type AddressesScopedListWarningData struct {
2433	// Key: [Output Only] A key that provides more detail on the warning
2434	// being returned. For example, for warnings where there are no results
2435	// in a list request for a particular zone, this key might be scope and
2436	// the key value might be the zone name. Other examples might be a key
2437	// indicating a deprecated resource and a suggested replacement, or a
2438	// warning about invalid network settings (for example, if an instance
2439	// attempts to perform IP forwarding but is not enabled for IP
2440	// forwarding).
2441	Key string `json:"key,omitempty"`
2442
2443	// Value: [Output Only] A warning data value corresponding to the key.
2444	Value string `json:"value,omitempty"`
2445
2446	// ForceSendFields is a list of field names (e.g. "Key") to
2447	// unconditionally include in API requests. By default, fields with
2448	// empty values are omitted from API requests. However, any non-pointer,
2449	// non-interface field appearing in ForceSendFields will be sent to the
2450	// server regardless of whether the field is empty or not. This may be
2451	// used to include empty fields in Patch requests.
2452	ForceSendFields []string `json:"-"`
2453
2454	// NullFields is a list of field names (e.g. "Key") to include in API
2455	// requests with the JSON null value. By default, fields with empty
2456	// values are omitted from API requests. However, any field with an
2457	// empty value appearing in NullFields will be sent to the server as
2458	// null. It is an error if a field in this list has a non-empty value.
2459	// This may be used to include null fields in Patch requests.
2460	NullFields []string `json:"-"`
2461}
2462
2463func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2464	type NoMethod AddressesScopedListWarningData
2465	raw := NoMethod(*s)
2466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2467}
2468
2469// AdvancedMachineFeatures: Specifies options for controlling advanced
2470// machine features. Options that would traditionally be configured in a
2471// BIOS belong here. Features that require operating system support may
2472// have corresponding entries in the GuestOsFeatures of an Image (e.g.,
2473// whether or not the OS in the Image supports nested virtualization
2474// being enabled or disabled).
2475type AdvancedMachineFeatures struct {
2476	// EnableNestedVirtualization: Whether to enable nested virtualization
2477	// or not (default is false).
2478	EnableNestedVirtualization bool `json:"enableNestedVirtualization,omitempty"`
2479
2480	// ThreadsPerCore: The number of threads per physical core. To disable
2481	// simultaneous multithreading (SMT) set this to 1. If unset, the
2482	// maximum number of threads supported per core by the underlying
2483	// processor is assumed.
2484	ThreadsPerCore int64 `json:"threadsPerCore,omitempty"`
2485
2486	// ForceSendFields is a list of field names (e.g.
2487	// "EnableNestedVirtualization") to unconditionally include in API
2488	// requests. By default, fields with empty values are omitted from API
2489	// requests. However, any non-pointer, non-interface field appearing in
2490	// ForceSendFields will be sent to the server regardless of whether the
2491	// field is empty or not. This may be used to include empty fields in
2492	// Patch requests.
2493	ForceSendFields []string `json:"-"`
2494
2495	// NullFields is a list of field names (e.g.
2496	// "EnableNestedVirtualization") to include in API requests with the
2497	// JSON null value. By default, fields with empty values are omitted
2498	// from API requests. However, any field with an empty value appearing
2499	// in NullFields will be sent to the server as null. It is an error if a
2500	// field in this list has a non-empty value. This may be used to include
2501	// null fields in Patch requests.
2502	NullFields []string `json:"-"`
2503}
2504
2505func (s *AdvancedMachineFeatures) MarshalJSON() ([]byte, error) {
2506	type NoMethod AdvancedMachineFeatures
2507	raw := NoMethod(*s)
2508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2509}
2510
2511// AliasIpRange: An alias IP range attached to an instance's network
2512// interface.
2513type AliasIpRange struct {
2514	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2515	// IP CIDR range must belong to the specified subnetwork and cannot
2516	// contain IP addresses reserved by system or used by other network
2517	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2518	// a netmask (such as /24) or a CIDR-formatted string (such as
2519	// 10.1.2.0/24).
2520	IpCidrRange string `json:"ipCidrRange,omitempty"`
2521
2522	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2523	// which to allocate an IP alias range. If not specified, the primary
2524	// range of the subnetwork is used.
2525	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2526
2527	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2528	// unconditionally include in API requests. By default, fields with
2529	// empty values are omitted from API requests. However, any non-pointer,
2530	// non-interface field appearing in ForceSendFields will be sent to the
2531	// server regardless of whether the field is empty or not. This may be
2532	// used to include empty fields in Patch requests.
2533	ForceSendFields []string `json:"-"`
2534
2535	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2536	// in API requests with the JSON null value. By default, fields with
2537	// empty values are omitted from API requests. However, any field with
2538	// an empty value appearing in NullFields will be sent to the server as
2539	// null. It is an error if a field in this list has a non-empty value.
2540	// This may be used to include null fields in Patch requests.
2541	NullFields []string `json:"-"`
2542}
2543
2544func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2545	type NoMethod AliasIpRange
2546	raw := NoMethod(*s)
2547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2548}
2549
2550type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2551	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2552	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2553
2554	// Interface: Specifies the disk interface to use for attaching this
2555	// disk, which is either SCSI or NVME. The default is SCSI. For
2556	// performance characteristics of SCSI over NVMe, see Local SSD
2557	// performance.
2558	//
2559	// Possible values:
2560	//   "NVME"
2561	//   "SCSI"
2562	Interface string `json:"interface,omitempty"`
2563
2564	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2565	// unconditionally include in API requests. By default, fields with
2566	// empty values are omitted from API requests. However, any non-pointer,
2567	// non-interface field appearing in ForceSendFields will be sent to the
2568	// server regardless of whether the field is empty or not. This may be
2569	// used to include empty fields in Patch requests.
2570	ForceSendFields []string `json:"-"`
2571
2572	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2573	// API requests with the JSON null value. By default, fields with empty
2574	// values are omitted from API requests. However, any field with an
2575	// empty value appearing in NullFields will be sent to the server as
2576	// null. It is an error if a field in this list has a non-empty value.
2577	// This may be used to include null fields in Patch requests.
2578	NullFields []string `json:"-"`
2579}
2580
2581func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2582	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2583	raw := NoMethod(*s)
2584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2585}
2586
2587// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2588// of the SKU instances being reserved. Next ID: 9
2589type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2590	// GuestAccelerators: Specifies accelerator type and count.
2591	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2592
2593	// LocalSsds: Specifies amount of local ssd to reserve with each
2594	// instance. The type of disk is local-ssd.
2595	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2596
2597	// LocationHint: An opaque location hint used to place the allocation
2598	// close to other resources. This field is for use by internal tools
2599	// that use the public API.
2600	LocationHint string `json:"locationHint,omitempty"`
2601
2602	// MachineType: Specifies type of machine (name only) which has fixed
2603	// number of vCPUs and fixed amount of memory. This also includes
2604	// specifying custom machine type following
2605	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2606	MachineType string `json:"machineType,omitempty"`
2607
2608	// MaintenanceFreezeDurationHours: Specifies the number of hours after
2609	// reservation creation where instances using the reservation won't be
2610	// scheduled for maintenance.
2611	MaintenanceFreezeDurationHours int64 `json:"maintenanceFreezeDurationHours,omitempty"`
2612
2613	// MaintenanceInterval: For more information about maintenance
2614	// intervals, see Setting maintenance intervals.
2615	//
2616	// Possible values:
2617	//   "PERIODIC"
2618	MaintenanceInterval string `json:"maintenanceInterval,omitempty"`
2619
2620	// MinCpuPlatform: Minimum cpu platform the reservation.
2621	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2622
2623	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2624	// to unconditionally include in API requests. By default, fields with
2625	// empty values are omitted from API requests. However, any non-pointer,
2626	// non-interface field appearing in ForceSendFields will be sent to the
2627	// server regardless of whether the field is empty or not. This may be
2628	// used to include empty fields in Patch requests.
2629	ForceSendFields []string `json:"-"`
2630
2631	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2632	// include in API requests with the JSON null value. By default, fields
2633	// with empty values are omitted from API requests. However, any field
2634	// with an empty value appearing in NullFields will be sent to the
2635	// server as null. It is an error if a field in this list has a
2636	// non-empty value. This may be used to include null fields in Patch
2637	// requests.
2638	NullFields []string `json:"-"`
2639}
2640
2641func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2642	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2643	raw := NoMethod(*s)
2644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2645}
2646
2647// AllocationSpecificSKUReservation: This reservation type allows to pre
2648// allocate specific instance configuration.
2649type AllocationSpecificSKUReservation struct {
2650	// Count: Specifies the number of resources that are allocated.
2651	Count int64 `json:"count,omitempty,string"`
2652
2653	// InUseCount: [Output Only] Indicates how many instances are in use.
2654	InUseCount int64 `json:"inUseCount,omitempty,string"`
2655
2656	// InstanceProperties: The instance properties for the reservation.
2657	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2658
2659	// ForceSendFields is a list of field names (e.g. "Count") to
2660	// unconditionally include in API requests. By default, fields with
2661	// empty values are omitted from API requests. However, any non-pointer,
2662	// non-interface field appearing in ForceSendFields will be sent to the
2663	// server regardless of whether the field is empty or not. This may be
2664	// used to include empty fields in Patch requests.
2665	ForceSendFields []string `json:"-"`
2666
2667	// NullFields is a list of field names (e.g. "Count") to include in API
2668	// requests with the JSON null value. By default, fields with empty
2669	// values are omitted from API requests. However, any field with an
2670	// empty value appearing in NullFields will be sent to the server as
2671	// null. It is an error if a field in this list has a non-empty value.
2672	// This may be used to include null fields in Patch requests.
2673	NullFields []string `json:"-"`
2674}
2675
2676func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2677	type NoMethod AllocationSpecificSKUReservation
2678	raw := NoMethod(*s)
2679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2680}
2681
2682// AttachedDisk: An instance-attached disk resource.
2683type AttachedDisk struct {
2684	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2685	// instance is deleted (but not when the disk is detached from the
2686	// instance).
2687	AutoDelete bool `json:"autoDelete,omitempty"`
2688
2689	// Boot: Indicates that this is a boot disk. The virtual machine will
2690	// use the first partition of the disk for its root filesystem.
2691	Boot bool `json:"boot,omitempty"`
2692
2693	// DeviceName: Specifies a unique device name of your choice that is
2694	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2695	// system running within the instance. This name can be used to
2696	// reference the device for mounting, resizing, and so on, from within
2697	// the instance.
2698	//
2699	// If not specified, the server chooses a default device name to apply
2700	// to this disk, in the form persistent-disk-x, where x is a number
2701	// assigned by Google Compute Engine. This field is only applicable for
2702	// persistent disks.
2703	DeviceName string `json:"deviceName,omitempty"`
2704
2705	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2706	// customer-supplied encryption key.
2707	//
2708	// If you are creating a new disk, this field encrypts the new disk
2709	// using an encryption key that you provide. If you are attaching an
2710	// existing disk that is already encrypted, this field decrypts the disk
2711	// using the customer-supplied encryption key.
2712	//
2713	// If you encrypt a disk using a customer-supplied key, you must provide
2714	// the same key again when you attempt to use this resource at a later
2715	// time. For example, you must provide the key when you create a
2716	// snapshot or an image from the disk or when you attach the disk to a
2717	// virtual machine instance.
2718	//
2719	// If you do not provide an encryption key, then the disk will be
2720	// encrypted using an automatically generated key and you do not need to
2721	// provide a key to use the disk later.
2722	//
2723	// Instance templates do not store customer-supplied encryption keys, so
2724	// you cannot use your own keys to encrypt disks in a managed instance
2725	// group.
2726	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2727
2728	// DiskSizeGb: The size of the disk in GB.
2729	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2730
2731	// GuestOsFeatures: A list of features to enable on the guest operating
2732	// system. Applicable only for bootable images. Read  Enabling guest
2733	// operating system features to see a list of available options.
2734	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2735
2736	// Index: [Output Only] A zero-based index to this disk, where 0 is
2737	// reserved for the boot disk. If you have many disks attached to an
2738	// instance, each disk would have a unique index number.
2739	Index int64 `json:"index,omitempty"`
2740
2741	// InitializeParams: [Input Only] Specifies the parameters for a new
2742	// disk that will be created alongside the new instance. Use
2743	// initialization parameters to create boot disks or local SSDs attached
2744	// to the new instance.
2745	//
2746	// This property is mutually exclusive with the source property; you can
2747	// only define one or the other, but not both.
2748	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2749
2750	// Interface: Specifies the disk interface to use for attaching this
2751	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2752	// disks must always use SCSI and the request will fail if you attempt
2753	// to attach a persistent disk in any other format than SCSI. Local SSDs
2754	// can use either NVME or SCSI. For performance characteristics of SCSI
2755	// over NVMe, see Local SSD performance.
2756	//
2757	// Possible values:
2758	//   "NVME"
2759	//   "SCSI"
2760	Interface string `json:"interface,omitempty"`
2761
2762	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2763	// for attached disks.
2764	Kind string `json:"kind,omitempty"`
2765
2766	// Licenses: [Output Only] Any valid publicly visible licenses.
2767	Licenses []string `json:"licenses,omitempty"`
2768
2769	// Mode: The mode in which to attach this disk, either READ_WRITE or
2770	// READ_ONLY. If not specified, the default is to attach the disk in
2771	// READ_WRITE mode.
2772	//
2773	// Possible values:
2774	//   "READ_ONLY"
2775	//   "READ_WRITE"
2776	Mode string `json:"mode,omitempty"`
2777
2778	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2779	// stored on disk
2780	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2781
2782	// Source: Specifies a valid partial or full URL to an existing
2783	// Persistent Disk resource. When creating a new instance, one of
2784	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2785	// disks.source is required except for local SSD.
2786	//
2787	// If desired, you can also attach existing non-root persistent disks
2788	// using this property. This field is only applicable for persistent
2789	// disks.
2790	//
2791	// Note that for InstanceTemplate, specify the disk name, not the URL
2792	// for the disk.
2793	Source string `json:"source,omitempty"`
2794
2795	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2796	// If not specified, the default is PERSISTENT.
2797	//
2798	// Possible values:
2799	//   "PERSISTENT"
2800	//   "SCRATCH"
2801	Type string `json:"type,omitempty"`
2802
2803	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2804	// unconditionally include in API requests. By default, fields with
2805	// empty values are omitted from API requests. However, any non-pointer,
2806	// non-interface field appearing in ForceSendFields will be sent to the
2807	// server regardless of whether the field is empty or not. This may be
2808	// used to include empty fields in Patch requests.
2809	ForceSendFields []string `json:"-"`
2810
2811	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2812	// API requests with the JSON null value. By default, fields with empty
2813	// values are omitted from API requests. However, any field with an
2814	// empty value appearing in NullFields will be sent to the server as
2815	// null. It is an error if a field in this list has a non-empty value.
2816	// This may be used to include null fields in Patch requests.
2817	NullFields []string `json:"-"`
2818}
2819
2820func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2821	type NoMethod AttachedDisk
2822	raw := NoMethod(*s)
2823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2824}
2825
2826// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2827// for a new disk that will be created alongside the new instance. Use
2828// initialization parameters to create boot disks or local SSDs attached
2829// to the new instance.
2830//
2831// This property is mutually exclusive with the source property; you can
2832// only define one or the other, but not both.
2833type AttachedDiskInitializeParams struct {
2834	// Description: An optional description. Provide this property when
2835	// creating the disk.
2836	Description string `json:"description,omitempty"`
2837
2838	// DiskName: Specifies the disk name. If not specified, the default is
2839	// to use the name of the instance. If a disk with the same name already
2840	// exists in the given region, the existing disk is attached to the new
2841	// instance and the new disk is not created.
2842	DiskName string `json:"diskName,omitempty"`
2843
2844	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2845	// must be at least 10 GB. If you specify a sourceImage, which is
2846	// required for boot disks, the default size is the size of the
2847	// sourceImage. If you do not specify a sourceImage, the default disk
2848	// size is 500 GB.
2849	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2850
2851	// DiskType: Specifies the disk type to use to create the instance. If
2852	// not specified, the default is pd-standard, specified using the full
2853	// URL. For
2854	// example:
2855	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
2856	//
2857	//
2858	// Other values include pd-ssd and local-ssd. If you define this field,
2859	// you can provide either the full or partial URL. For example, the
2860	// following are valid values:
2861	// -
2862	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2863	//
2864	// - projects/project/zones/zone/diskTypes/diskType
2865	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2866	// is the name of the disk type, not URL.
2867	DiskType string `json:"diskType,omitempty"`
2868
2869	// GuestOsFeatures: A list of features to enable on the guest operating
2870	// system. Applicable only for bootable images. Read  Enabling guest
2871	// operating system features to see a list of available options.
2872	//
2873	// Guest OS features are applied by merging
2874	// initializeParams.guestOsFeatures and disks.guestOsFeatures
2875	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2876
2877	// Labels: Labels to apply to this disk. These can be later modified by
2878	// the disks.setLabels method. This field is only applicable for
2879	// persistent disks.
2880	Labels map[string]string `json:"labels,omitempty"`
2881
2882	// MultiWriter: Indicates whether or not the disk can be read/write
2883	// attached to more than one instance.
2884	MultiWriter bool `json:"multiWriter,omitempty"`
2885
2886	// OnUpdateAction: Specifies which action to take on instance update
2887	// with this disk. Default is to use the existing disk.
2888	//
2889	// Possible values:
2890	//   "RECREATE_DISK"
2891	//   "RECREATE_DISK_IF_SOURCE_CHANGED"
2892	//   "USE_EXISTING_DISK"
2893	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2894
2895	// ProvisionedIops: Indicates how many IOPS must be provisioned for the
2896	// disk.
2897	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
2898
2899	// ResourcePolicies: Resource policies applied to this disk for
2900	// automatic snapshot creations. Specified using the full or partial
2901	// URL. For instance template, specify only the resource policy name.
2902	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2903
2904	// SourceImage: The source image to create this disk. When creating a
2905	// new instance, one of initializeParams.sourceImage or
2906	// initializeParams.sourceSnapshot or disks.source is required except
2907	// for local SSD.
2908	//
2909	// To create a disk with one of the public operating system images,
2910	// specify the image by its family name. For example, specify
2911	// family/debian-9 to use the latest Debian 9
2912	// image:
2913	// projects/debian-cloud/global/images/family/debian-9
2914	//
2915	//
2916	// Alternatively, use a specific version of a public operating system
2917	// image:
2918	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2919	//
2920	//
2921	// To create a disk with a custom image that you created, specify the
2922	// image name in the following
2923	// format:
2924	// global/images/my-custom-image
2925	//
2926	//
2927	// You can also specify a custom image by its image family, which
2928	// returns the latest version of the image in that family. Replace the
2929	// image name with
2930	// family/family-name:
2931	// global/images/family/my-image-family
2932	//
2933	//
2934	// If the source image is deleted later, this field will not be set.
2935	SourceImage string `json:"sourceImage,omitempty"`
2936
2937	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2938	// source image. Required if the source image is protected by a
2939	// customer-supplied encryption key.
2940	//
2941	// Instance templates do not store customer-supplied encryption keys, so
2942	// you cannot create disks for instances in a managed instance group if
2943	// the source images are encrypted with your own keys.
2944	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2945
2946	// SourceSnapshot: The source snapshot to create this disk. When
2947	// creating a new instance, one of initializeParams.sourceSnapshot or
2948	// initializeParams.sourceImage or disks.source is required except for
2949	// local SSD.
2950	//
2951	// To create a disk with a snapshot that you created, specify the
2952	// snapshot name in the following
2953	// format:
2954	// global/snapshots/my-backup
2955	//
2956	//
2957	// If the source snapshot is deleted later, this field will not be set.
2958	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2959
2960	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2961	// the source snapshot.
2962	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2963
2964	// ForceSendFields is a list of field names (e.g. "Description") to
2965	// unconditionally include in API requests. By default, fields with
2966	// empty values are omitted from API requests. However, any non-pointer,
2967	// non-interface field appearing in ForceSendFields will be sent to the
2968	// server regardless of whether the field is empty or not. This may be
2969	// used to include empty fields in Patch requests.
2970	ForceSendFields []string `json:"-"`
2971
2972	// NullFields is a list of field names (e.g. "Description") to include
2973	// in API requests with the JSON null value. By default, fields with
2974	// empty values are omitted from API requests. However, any field with
2975	// an empty value appearing in NullFields will be sent to the server as
2976	// null. It is an error if a field in this list has a non-empty value.
2977	// This may be used to include null fields in Patch requests.
2978	NullFields []string `json:"-"`
2979}
2980
2981func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2982	type NoMethod AttachedDiskInitializeParams
2983	raw := NoMethod(*s)
2984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2985}
2986
2987// AuditConfig: Specifies the audit configuration for a service. The
2988// configuration determines which permission types are logged, and what
2989// identities, if any, are exempted from logging. An AuditConfig must
2990// have one or more AuditLogConfigs.
2991//
2992// If there are AuditConfigs for both `allServices` and a specific
2993// service, the union of the two AuditConfigs is used for that service:
2994// the log_types specified in each AuditConfig are enabled, and the
2995// exempted_members in each AuditLogConfig are exempted.
2996//
2997// Example Policy with multiple AuditConfigs:
2998//
2999// { "audit_configs": [ { "service": "allServices", "audit_log_configs":
3000// [ { "log_type": "DATA_READ", "exempted_members": [
3001// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
3002// "log_type": "ADMIN_READ" } ] }, { "service":
3003// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
3004// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
3005// "user:aliya@example.com" ] } ] } ] }
3006//
3007// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
3008// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
3009// logging, and aliya@example.com from DATA_WRITE logging.
3010type AuditConfig struct {
3011	// AuditLogConfigs: The configuration for logging of each type of
3012	// permission.
3013	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
3014
3015	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
3016
3017	// Service: Specifies a service that will be enabled for audit logging.
3018	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
3019	// `allServices` is a special value that covers all services.
3020	Service string `json:"service,omitempty"`
3021
3022	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
3023	// unconditionally include in API requests. By default, fields with
3024	// empty values are omitted from API requests. However, any non-pointer,
3025	// non-interface field appearing in ForceSendFields will be sent to the
3026	// server regardless of whether the field is empty or not. This may be
3027	// used to include empty fields in Patch requests.
3028	ForceSendFields []string `json:"-"`
3029
3030	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
3031	// include in API requests with the JSON null value. By default, fields
3032	// with empty values are omitted from API requests. However, any field
3033	// with an empty value appearing in NullFields will be sent to the
3034	// server as null. It is an error if a field in this list has a
3035	// non-empty value. This may be used to include null fields in Patch
3036	// requests.
3037	NullFields []string `json:"-"`
3038}
3039
3040func (s *AuditConfig) MarshalJSON() ([]byte, error) {
3041	type NoMethod AuditConfig
3042	raw := NoMethod(*s)
3043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3044}
3045
3046// AuditLogConfig: Provides the configuration for logging a type of
3047// permissions. Example:
3048//
3049// { "audit_log_configs": [ { "log_type": "DATA_READ",
3050// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
3051// "DATA_WRITE" } ] }
3052//
3053// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
3054// jose@example.com from DATA_READ logging.
3055type AuditLogConfig struct {
3056	// ExemptedMembers: Specifies the identities that do not cause logging
3057	// for this type of permission. Follows the same format of
3058	// [Binding.members][].
3059	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
3060
3061	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
3062
3063	// LogType: The log type that this config enables.
3064	//
3065	// Possible values:
3066	//   "ADMIN_READ"
3067	//   "DATA_READ"
3068	//   "DATA_WRITE"
3069	//   "LOG_TYPE_UNSPECIFIED"
3070	LogType string `json:"logType,omitempty"`
3071
3072	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
3073	// unconditionally include in API requests. By default, fields with
3074	// empty values are omitted from API requests. However, any non-pointer,
3075	// non-interface field appearing in ForceSendFields will be sent to the
3076	// server regardless of whether the field is empty or not. This may be
3077	// used to include empty fields in Patch requests.
3078	ForceSendFields []string `json:"-"`
3079
3080	// NullFields is a list of field names (e.g. "ExemptedMembers") to
3081	// include in API requests with the JSON null value. By default, fields
3082	// with empty values are omitted from API requests. However, any field
3083	// with an empty value appearing in NullFields will be sent to the
3084	// server as null. It is an error if a field in this list has a
3085	// non-empty value. This may be used to include null fields in Patch
3086	// requests.
3087	NullFields []string `json:"-"`
3088}
3089
3090func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
3091	type NoMethod AuditLogConfig
3092	raw := NoMethod(*s)
3093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3094}
3095
3096// AuthorizationLoggingOptions: Authorization-related information used
3097// by Cloud Audit Logging.
3098type AuthorizationLoggingOptions struct {
3099	// PermissionType: The type of the permission that was checked.
3100	//
3101	// Possible values:
3102	//   "ADMIN_READ"
3103	//   "ADMIN_WRITE"
3104	//   "DATA_READ"
3105	//   "DATA_WRITE"
3106	//   "PERMISSION_TYPE_UNSPECIFIED"
3107	PermissionType string `json:"permissionType,omitempty"`
3108
3109	// ForceSendFields is a list of field names (e.g. "PermissionType") to
3110	// unconditionally include in API requests. By default, fields with
3111	// empty values are omitted from API requests. However, any non-pointer,
3112	// non-interface field appearing in ForceSendFields will be sent to the
3113	// server regardless of whether the field is empty or not. This may be
3114	// used to include empty fields in Patch requests.
3115	ForceSendFields []string `json:"-"`
3116
3117	// NullFields is a list of field names (e.g. "PermissionType") to
3118	// include in API requests with the JSON null value. By default, fields
3119	// with empty values are omitted from API requests. However, any field
3120	// with an empty value appearing in NullFields will be sent to the
3121	// server as null. It is an error if a field in this list has a
3122	// non-empty value. This may be used to include null fields in Patch
3123	// requests.
3124	NullFields []string `json:"-"`
3125}
3126
3127func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
3128	type NoMethod AuthorizationLoggingOptions
3129	raw := NoMethod(*s)
3130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3131}
3132
3133// Autoscaler: Represents an Autoscaler resource.
3134//
3135// Google Compute Engine has two Autoscaler resources:
3136//
3137// * Zonal (/compute/docs/reference/rest/{$api_version}/autoscalers) *
3138// Regional
3139// (/compute/docs/reference/rest/{$api_version}/regionAutoscalers)
3140//
3141// Use autoscalers to automatically add or delete instances from a
3142// managed instance group according to your defined autoscaling policy.
3143// For more information, read Autoscaling Groups of Instances.
3144//
3145// For zonal managed instance groups resource, use the autoscaler
3146// resource.
3147//
3148// For regional managed instance groups, use the regionAutoscalers
3149// resource. (== resource_for {$api_version}.autoscalers ==) (==
3150// resource_for {$api_version}.regionAutoscalers ==)
3151type Autoscaler struct {
3152	// AutoscalingPolicy: The configuration parameters for the autoscaling
3153	// algorithm. You can define one or more signals for an autoscaler:
3154	// cpuUtilization, customMetricUtilizations, and
3155	// loadBalancingUtilization.
3156	//
3157	// If none of these are specified, the default will be to autoscale
3158	// based on cpuUtilization to 0.6 or 60%.
3159	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
3160
3161	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3162	// format.
3163	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3164
3165	// Description: An optional description of this resource. Provide this
3166	// property when you create the resource.
3167	Description string `json:"description,omitempty"`
3168
3169	// Id: [Output Only] The unique identifier for the resource. This
3170	// identifier is defined by the server.
3171	Id uint64 `json:"id,omitempty,string"`
3172
3173	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
3174	// for autoscalers.
3175	Kind string `json:"kind,omitempty"`
3176
3177	// Name: Name of the resource. Provided by the client when the resource
3178	// is created. The name must be 1-63 characters long, and comply with
3179	// RFC1035. Specifically, the name must be 1-63 characters long and
3180	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3181	// the first character must be a lowercase letter, and all following
3182	// characters must be a dash, lowercase letter, or digit, except the
3183	// last character, which cannot be a dash.
3184	Name string `json:"name,omitempty"`
3185
3186	// RecommendedSize: [Output Only] Target recommended MIG size (number of
3187	// instances) computed by autoscaler. Autoscaler calculates the
3188	// recommended MIG size even when the autoscaling policy mode is
3189	// different from ON. This field is empty when autoscaler is not
3190	// connected to an existing managed instance group or autoscaler did not
3191	// generate its prediction.
3192	RecommendedSize int64 `json:"recommendedSize,omitempty"`
3193
3194	// Region: [Output Only] URL of the region where the instance group
3195	// resides (for autoscalers living in regional scope).
3196	Region string `json:"region,omitempty"`
3197
3198	// ScalingScheduleStatus: [Output Only] Status information of existing
3199	// scaling schedules.
3200	ScalingScheduleStatus map[string]ScalingScheduleStatus `json:"scalingScheduleStatus,omitempty"`
3201
3202	// SelfLink: [Output Only] Server-defined URL for the resource.
3203	SelfLink string `json:"selfLink,omitempty"`
3204
3205	// Status: [Output Only] The status of the autoscaler configuration.
3206	// Current set of possible values:
3207	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
3208	//
3209	// - DELETING: Configuration is being deleted.
3210	// - ACTIVE: Configuration is acknowledged to be effective. Some
3211	// warnings might be present in the statusDetails field.
3212	// - ERROR: Configuration has errors. Actionable for users. Details are
3213	// present in the statusDetails field.  New values might be added in the
3214	// future.
3215	//
3216	// Possible values:
3217	//   "ACTIVE"
3218	//   "DELETING"
3219	//   "ERROR"
3220	//   "PENDING"
3221	Status string `json:"status,omitempty"`
3222
3223	// StatusDetails: [Output Only] Human-readable details about the current
3224	// state of the autoscaler. Read the documentation for Commonly returned
3225	// status messages for examples of status messages you might encounter.
3226	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
3227
3228	// Target: URL of the managed instance group that this autoscaler will
3229	// scale. This field is required when creating an autoscaler.
3230	Target string `json:"target,omitempty"`
3231
3232	// Zone: [Output Only] URL of the zone where the instance group resides
3233	// (for autoscalers living in zonal scope).
3234	Zone string `json:"zone,omitempty"`
3235
3236	// ServerResponse contains the HTTP response code and headers from the
3237	// server.
3238	googleapi.ServerResponse `json:"-"`
3239
3240	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
3241	// to unconditionally include in API requests. By default, fields with
3242	// empty values are omitted from API requests. However, any non-pointer,
3243	// non-interface field appearing in ForceSendFields will be sent to the
3244	// server regardless of whether the field is empty or not. This may be
3245	// used to include empty fields in Patch requests.
3246	ForceSendFields []string `json:"-"`
3247
3248	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
3249	// include in API requests with the JSON null value. By default, fields
3250	// with empty values are omitted from API requests. However, any field
3251	// with an empty value appearing in NullFields will be sent to the
3252	// server as null. It is an error if a field in this list has a
3253	// non-empty value. This may be used to include null fields in Patch
3254	// requests.
3255	NullFields []string `json:"-"`
3256}
3257
3258func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3259	type NoMethod Autoscaler
3260	raw := NoMethod(*s)
3261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3262}
3263
3264type AutoscalerAggregatedList struct {
3265	// Id: [Output Only] Unique identifier for the resource; defined by the
3266	// server.
3267	Id string `json:"id,omitempty"`
3268
3269	// Items: A list of AutoscalersScopedList resources.
3270	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3271
3272	// Kind: [Output Only] Type of resource. Always
3273	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3274	Kind string `json:"kind,omitempty"`
3275
3276	// NextPageToken: [Output Only] This token allows you to get the next
3277	// page of results for list requests. If the number of results is larger
3278	// than maxResults, use the nextPageToken as a value for the query
3279	// parameter pageToken in the next list request. Subsequent list
3280	// requests will have their own nextPageToken to continue paging through
3281	// the results.
3282	NextPageToken string `json:"nextPageToken,omitempty"`
3283
3284	// SelfLink: [Output Only] Server-defined URL for this resource.
3285	SelfLink string `json:"selfLink,omitempty"`
3286
3287	// Unreachables: [Output Only] Unreachable resources.
3288	Unreachables []string `json:"unreachables,omitempty"`
3289
3290	// Warning: [Output Only] Informational warning message.
3291	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3292
3293	// ServerResponse contains the HTTP response code and headers from the
3294	// server.
3295	googleapi.ServerResponse `json:"-"`
3296
3297	// ForceSendFields is a list of field names (e.g. "Id") to
3298	// unconditionally include in API requests. By default, fields with
3299	// empty values are omitted from API requests. However, any non-pointer,
3300	// non-interface field appearing in ForceSendFields will be sent to the
3301	// server regardless of whether the field is empty or not. This may be
3302	// used to include empty fields in Patch requests.
3303	ForceSendFields []string `json:"-"`
3304
3305	// NullFields is a list of field names (e.g. "Id") to include in API
3306	// requests with the JSON null value. By default, fields with empty
3307	// values are omitted from API requests. However, any field with an
3308	// empty value appearing in NullFields will be sent to the server as
3309	// null. It is an error if a field in this list has a non-empty value.
3310	// This may be used to include null fields in Patch requests.
3311	NullFields []string `json:"-"`
3312}
3313
3314func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3315	type NoMethod AutoscalerAggregatedList
3316	raw := NoMethod(*s)
3317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3318}
3319
3320// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3321// message.
3322type AutoscalerAggregatedListWarning struct {
3323	// Code: [Output Only] A warning code, if applicable. For example,
3324	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3325	// the response.
3326	//
3327	// Possible values:
3328	//   "CLEANUP_FAILED"
3329	//   "DEPRECATED_RESOURCE_USED"
3330	//   "DEPRECATED_TYPE_USED"
3331	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3332	//   "EXPERIMENTAL_TYPE_USED"
3333	//   "EXTERNAL_API_WARNING"
3334	//   "FIELD_VALUE_OVERRIDEN"
3335	//   "INJECTED_KERNELS_DEPRECATED"
3336	//   "LARGE_DEPLOYMENT_WARNING"
3337	//   "MISSING_TYPE_DEPENDENCY"
3338	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3339	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3340	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3341	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3342	//   "NEXT_HOP_NOT_RUNNING"
3343	//   "NOT_CRITICAL_ERROR"
3344	//   "NO_RESULTS_ON_PAGE"
3345	//   "PARTIAL_SUCCESS"
3346	//   "REQUIRED_TOS_AGREEMENT"
3347	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3348	//   "RESOURCE_NOT_DELETED"
3349	//   "SCHEMA_VALIDATION_IGNORED"
3350	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3351	//   "UNDECLARED_PROPERTIES"
3352	//   "UNREACHABLE"
3353	Code string `json:"code,omitempty"`
3354
3355	// Data: [Output Only] Metadata about this warning in key: value format.
3356	// For example:
3357	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3358	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3359
3360	// Message: [Output Only] A human-readable description of the warning
3361	// code.
3362	Message string `json:"message,omitempty"`
3363
3364	// ForceSendFields is a list of field names (e.g. "Code") to
3365	// unconditionally include in API requests. By default, fields with
3366	// empty values are omitted from API requests. However, any non-pointer,
3367	// non-interface field appearing in ForceSendFields will be sent to the
3368	// server regardless of whether the field is empty or not. This may be
3369	// used to include empty fields in Patch requests.
3370	ForceSendFields []string `json:"-"`
3371
3372	// NullFields is a list of field names (e.g. "Code") to include in API
3373	// requests with the JSON null value. By default, fields with empty
3374	// values are omitted from API requests. However, any field with an
3375	// empty value appearing in NullFields will be sent to the server as
3376	// null. It is an error if a field in this list has a non-empty value.
3377	// This may be used to include null fields in Patch requests.
3378	NullFields []string `json:"-"`
3379}
3380
3381func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3382	type NoMethod AutoscalerAggregatedListWarning
3383	raw := NoMethod(*s)
3384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3385}
3386
3387type AutoscalerAggregatedListWarningData struct {
3388	// Key: [Output Only] A key that provides more detail on the warning
3389	// being returned. For example, for warnings where there are no results
3390	// in a list request for a particular zone, this key might be scope and
3391	// the key value might be the zone name. Other examples might be a key
3392	// indicating a deprecated resource and a suggested replacement, or a
3393	// warning about invalid network settings (for example, if an instance
3394	// attempts to perform IP forwarding but is not enabled for IP
3395	// forwarding).
3396	Key string `json:"key,omitempty"`
3397
3398	// Value: [Output Only] A warning data value corresponding to the key.
3399	Value string `json:"value,omitempty"`
3400
3401	// ForceSendFields is a list of field names (e.g. "Key") to
3402	// unconditionally include in API requests. By default, fields with
3403	// empty values are omitted from API requests. However, any non-pointer,
3404	// non-interface field appearing in ForceSendFields will be sent to the
3405	// server regardless of whether the field is empty or not. This may be
3406	// used to include empty fields in Patch requests.
3407	ForceSendFields []string `json:"-"`
3408
3409	// NullFields is a list of field names (e.g. "Key") to include in API
3410	// requests with the JSON null value. By default, fields with empty
3411	// values are omitted from API requests. However, any field with an
3412	// empty value appearing in NullFields will be sent to the server as
3413	// null. It is an error if a field in this list has a non-empty value.
3414	// This may be used to include null fields in Patch requests.
3415	NullFields []string `json:"-"`
3416}
3417
3418func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3419	type NoMethod AutoscalerAggregatedListWarningData
3420	raw := NoMethod(*s)
3421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3422}
3423
3424// AutoscalerList: Contains a list of Autoscaler resources.
3425type AutoscalerList struct {
3426	// Id: [Output Only] Unique identifier for the resource; defined by the
3427	// server.
3428	Id string `json:"id,omitempty"`
3429
3430	// Items: A list of Autoscaler resources.
3431	Items []*Autoscaler `json:"items,omitempty"`
3432
3433	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3434	// for lists of autoscalers.
3435	Kind string `json:"kind,omitempty"`
3436
3437	// NextPageToken: [Output Only] This token allows you to get the next
3438	// page of results for list requests. If the number of results is larger
3439	// than maxResults, use the nextPageToken as a value for the query
3440	// parameter pageToken in the next list request. Subsequent list
3441	// requests will have their own nextPageToken to continue paging through
3442	// the results.
3443	NextPageToken string `json:"nextPageToken,omitempty"`
3444
3445	// SelfLink: [Output Only] Server-defined URL for this resource.
3446	SelfLink string `json:"selfLink,omitempty"`
3447
3448	// Warning: [Output Only] Informational warning message.
3449	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3450
3451	// ServerResponse contains the HTTP response code and headers from the
3452	// server.
3453	googleapi.ServerResponse `json:"-"`
3454
3455	// ForceSendFields is a list of field names (e.g. "Id") to
3456	// unconditionally include in API requests. By default, fields with
3457	// empty values are omitted from API requests. However, any non-pointer,
3458	// non-interface field appearing in ForceSendFields will be sent to the
3459	// server regardless of whether the field is empty or not. This may be
3460	// used to include empty fields in Patch requests.
3461	ForceSendFields []string `json:"-"`
3462
3463	// NullFields is a list of field names (e.g. "Id") to include in API
3464	// requests with the JSON null value. By default, fields with empty
3465	// values are omitted from API requests. However, any field with an
3466	// empty value appearing in NullFields will be sent to the server as
3467	// null. It is an error if a field in this list has a non-empty value.
3468	// This may be used to include null fields in Patch requests.
3469	NullFields []string `json:"-"`
3470}
3471
3472func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3473	type NoMethod AutoscalerList
3474	raw := NoMethod(*s)
3475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3476}
3477
3478// AutoscalerListWarning: [Output Only] Informational warning message.
3479type AutoscalerListWarning struct {
3480	// Code: [Output Only] A warning code, if applicable. For example,
3481	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3482	// the response.
3483	//
3484	// Possible values:
3485	//   "CLEANUP_FAILED"
3486	//   "DEPRECATED_RESOURCE_USED"
3487	//   "DEPRECATED_TYPE_USED"
3488	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3489	//   "EXPERIMENTAL_TYPE_USED"
3490	//   "EXTERNAL_API_WARNING"
3491	//   "FIELD_VALUE_OVERRIDEN"
3492	//   "INJECTED_KERNELS_DEPRECATED"
3493	//   "LARGE_DEPLOYMENT_WARNING"
3494	//   "MISSING_TYPE_DEPENDENCY"
3495	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3496	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3497	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3498	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3499	//   "NEXT_HOP_NOT_RUNNING"
3500	//   "NOT_CRITICAL_ERROR"
3501	//   "NO_RESULTS_ON_PAGE"
3502	//   "PARTIAL_SUCCESS"
3503	//   "REQUIRED_TOS_AGREEMENT"
3504	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3505	//   "RESOURCE_NOT_DELETED"
3506	//   "SCHEMA_VALIDATION_IGNORED"
3507	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3508	//   "UNDECLARED_PROPERTIES"
3509	//   "UNREACHABLE"
3510	Code string `json:"code,omitempty"`
3511
3512	// Data: [Output Only] Metadata about this warning in key: value format.
3513	// For example:
3514	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3515	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3516
3517	// Message: [Output Only] A human-readable description of the warning
3518	// code.
3519	Message string `json:"message,omitempty"`
3520
3521	// ForceSendFields is a list of field names (e.g. "Code") to
3522	// unconditionally include in API requests. By default, fields with
3523	// empty values are omitted from API requests. However, any non-pointer,
3524	// non-interface field appearing in ForceSendFields will be sent to the
3525	// server regardless of whether the field is empty or not. This may be
3526	// used to include empty fields in Patch requests.
3527	ForceSendFields []string `json:"-"`
3528
3529	// NullFields is a list of field names (e.g. "Code") to include in API
3530	// requests with the JSON null value. By default, fields with empty
3531	// values are omitted from API requests. However, any field with an
3532	// empty value appearing in NullFields will be sent to the server as
3533	// null. It is an error if a field in this list has a non-empty value.
3534	// This may be used to include null fields in Patch requests.
3535	NullFields []string `json:"-"`
3536}
3537
3538func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3539	type NoMethod AutoscalerListWarning
3540	raw := NoMethod(*s)
3541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3542}
3543
3544type AutoscalerListWarningData struct {
3545	// Key: [Output Only] A key that provides more detail on the warning
3546	// being returned. For example, for warnings where there are no results
3547	// in a list request for a particular zone, this key might be scope and
3548	// the key value might be the zone name. Other examples might be a key
3549	// indicating a deprecated resource and a suggested replacement, or a
3550	// warning about invalid network settings (for example, if an instance
3551	// attempts to perform IP forwarding but is not enabled for IP
3552	// forwarding).
3553	Key string `json:"key,omitempty"`
3554
3555	// Value: [Output Only] A warning data value corresponding to the key.
3556	Value string `json:"value,omitempty"`
3557
3558	// ForceSendFields is a list of field names (e.g. "Key") to
3559	// unconditionally include in API requests. By default, fields with
3560	// empty values are omitted from API requests. However, any non-pointer,
3561	// non-interface field appearing in ForceSendFields will be sent to the
3562	// server regardless of whether the field is empty or not. This may be
3563	// used to include empty fields in Patch requests.
3564	ForceSendFields []string `json:"-"`
3565
3566	// NullFields is a list of field names (e.g. "Key") to include in API
3567	// requests with the JSON null value. By default, fields with empty
3568	// values are omitted from API requests. However, any field with an
3569	// empty value appearing in NullFields will be sent to the server as
3570	// null. It is an error if a field in this list has a non-empty value.
3571	// This may be used to include null fields in Patch requests.
3572	NullFields []string `json:"-"`
3573}
3574
3575func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3576	type NoMethod AutoscalerListWarningData
3577	raw := NoMethod(*s)
3578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3579}
3580
3581type AutoscalerStatusDetails struct {
3582	// Message: The status message.
3583	Message string `json:"message,omitempty"`
3584
3585	// Type: The type of error, warning, or notice returned. Current set of
3586	// possible values:
3587	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3588	// group are unhealthy (not in RUNNING state).
3589	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3590	// attached to the instance group.
3591	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3592	// greater than maxNumReplicas.
3593	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3594	// samples are not exported often enough to be a credible base for
3595	// autoscaling.
3596	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3597	// does not exist or does not have the necessary labels.
3598	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3599	// maxNumReplicas. This means the autoscaler cannot add or remove
3600	// instances from the instance group.
3601	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3602	// receive any data from the custom metric configured for autoscaling.
3603	//
3604	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3605	// configured to scale based on a load balancing signal but the instance
3606	// group has not received any requests from the load balancer.
3607	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3608	// instances in the group won't change automatically. The autoscaling
3609	// configuration is preserved.
3610	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out"
3611	// mode. The autoscaler can add instances but not remove any.
3612	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3613	// autoscaled because it has more than one backend service attached to
3614	// it.
3615	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3616	// the necessary resources, such as CPU or number of instances.
3617	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3618	// autoscalers: there is a resource stockout in the chosen region.
3619	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3620	// not exist.
3621	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3622	// Autoscaling does not work with an HTTP/S load balancer that has been
3623	// configured for maxRate.
3624	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3625	// resource stockout in the chosen zone. For regional autoscalers: in at
3626	// least one of the zones you're using there is a resource stockout.
3627	// New values might be added in the future. Some of the values might not
3628	// be available in all API versions.
3629	//
3630	// Possible values:
3631	//   "ALL_INSTANCES_UNHEALTHY"
3632	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3633	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3634	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3635	//   "CUSTOM_METRIC_INVALID"
3636	//   "MIN_EQUALS_MAX"
3637	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3638	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3639	//   "MODE_OFF"
3640	//   "MODE_ONLY_SCALE_OUT"
3641	//   "MODE_ONLY_UP"
3642	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3643	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3644	//   "REGION_RESOURCE_STOCKOUT"
3645	//   "SCALING_TARGET_DOES_NOT_EXIST"
3646	//   "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX"
3647	//   "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN"
3648	//   "UNKNOWN"
3649	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3650	//   "ZONE_RESOURCE_STOCKOUT"
3651	Type string `json:"type,omitempty"`
3652
3653	// ForceSendFields is a list of field names (e.g. "Message") to
3654	// unconditionally include in API requests. By default, fields with
3655	// empty values are omitted from API requests. However, any non-pointer,
3656	// non-interface field appearing in ForceSendFields will be sent to the
3657	// server regardless of whether the field is empty or not. This may be
3658	// used to include empty fields in Patch requests.
3659	ForceSendFields []string `json:"-"`
3660
3661	// NullFields is a list of field names (e.g. "Message") to include in
3662	// API requests with the JSON null value. By default, fields with empty
3663	// values are omitted from API requests. However, any field with an
3664	// empty value appearing in NullFields will be sent to the server as
3665	// null. It is an error if a field in this list has a non-empty value.
3666	// This may be used to include null fields in Patch requests.
3667	NullFields []string `json:"-"`
3668}
3669
3670func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3671	type NoMethod AutoscalerStatusDetails
3672	raw := NoMethod(*s)
3673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3674}
3675
3676type AutoscalersScopedList struct {
3677	// Autoscalers: [Output Only] A list of autoscalers contained in this
3678	// scope.
3679	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3680
3681	// Warning: [Output Only] Informational warning which replaces the list
3682	// of autoscalers when the list is empty.
3683	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3684
3685	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3686	// unconditionally include in API requests. By default, fields with
3687	// empty values are omitted from API requests. However, any non-pointer,
3688	// non-interface field appearing in ForceSendFields will be sent to the
3689	// server regardless of whether the field is empty or not. This may be
3690	// used to include empty fields in Patch requests.
3691	ForceSendFields []string `json:"-"`
3692
3693	// NullFields is a list of field names (e.g. "Autoscalers") to include
3694	// in API requests with the JSON null value. By default, fields with
3695	// empty values are omitted from API requests. However, any field with
3696	// an empty value appearing in NullFields will be sent to the server as
3697	// null. It is an error if a field in this list has a non-empty value.
3698	// This may be used to include null fields in Patch requests.
3699	NullFields []string `json:"-"`
3700}
3701
3702func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3703	type NoMethod AutoscalersScopedList
3704	raw := NoMethod(*s)
3705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3706}
3707
3708// AutoscalersScopedListWarning: [Output Only] Informational warning
3709// which replaces the list of autoscalers when the list is empty.
3710type AutoscalersScopedListWarning struct {
3711	// Code: [Output Only] A warning code, if applicable. For example,
3712	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3713	// the response.
3714	//
3715	// Possible values:
3716	//   "CLEANUP_FAILED"
3717	//   "DEPRECATED_RESOURCE_USED"
3718	//   "DEPRECATED_TYPE_USED"
3719	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3720	//   "EXPERIMENTAL_TYPE_USED"
3721	//   "EXTERNAL_API_WARNING"
3722	//   "FIELD_VALUE_OVERRIDEN"
3723	//   "INJECTED_KERNELS_DEPRECATED"
3724	//   "LARGE_DEPLOYMENT_WARNING"
3725	//   "MISSING_TYPE_DEPENDENCY"
3726	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3727	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3728	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3729	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3730	//   "NEXT_HOP_NOT_RUNNING"
3731	//   "NOT_CRITICAL_ERROR"
3732	//   "NO_RESULTS_ON_PAGE"
3733	//   "PARTIAL_SUCCESS"
3734	//   "REQUIRED_TOS_AGREEMENT"
3735	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3736	//   "RESOURCE_NOT_DELETED"
3737	//   "SCHEMA_VALIDATION_IGNORED"
3738	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3739	//   "UNDECLARED_PROPERTIES"
3740	//   "UNREACHABLE"
3741	Code string `json:"code,omitempty"`
3742
3743	// Data: [Output Only] Metadata about this warning in key: value format.
3744	// For example:
3745	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3746	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3747
3748	// Message: [Output Only] A human-readable description of the warning
3749	// code.
3750	Message string `json:"message,omitempty"`
3751
3752	// ForceSendFields is a list of field names (e.g. "Code") to
3753	// unconditionally include in API requests. By default, fields with
3754	// empty values are omitted from API requests. However, any non-pointer,
3755	// non-interface field appearing in ForceSendFields will be sent to the
3756	// server regardless of whether the field is empty or not. This may be
3757	// used to include empty fields in Patch requests.
3758	ForceSendFields []string `json:"-"`
3759
3760	// NullFields is a list of field names (e.g. "Code") to include in API
3761	// requests with the JSON null value. By default, fields with empty
3762	// values are omitted from API requests. However, any field with an
3763	// empty value appearing in NullFields will be sent to the server as
3764	// null. It is an error if a field in this list has a non-empty value.
3765	// This may be used to include null fields in Patch requests.
3766	NullFields []string `json:"-"`
3767}
3768
3769func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3770	type NoMethod AutoscalersScopedListWarning
3771	raw := NoMethod(*s)
3772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3773}
3774
3775type AutoscalersScopedListWarningData struct {
3776	// Key: [Output Only] A key that provides more detail on the warning
3777	// being returned. For example, for warnings where there are no results
3778	// in a list request for a particular zone, this key might be scope and
3779	// the key value might be the zone name. Other examples might be a key
3780	// indicating a deprecated resource and a suggested replacement, or a
3781	// warning about invalid network settings (for example, if an instance
3782	// attempts to perform IP forwarding but is not enabled for IP
3783	// forwarding).
3784	Key string `json:"key,omitempty"`
3785
3786	// Value: [Output Only] A warning data value corresponding to the key.
3787	Value string `json:"value,omitempty"`
3788
3789	// ForceSendFields is a list of field names (e.g. "Key") to
3790	// unconditionally include in API requests. By default, fields with
3791	// empty values are omitted from API requests. However, any non-pointer,
3792	// non-interface field appearing in ForceSendFields will be sent to the
3793	// server regardless of whether the field is empty or not. This may be
3794	// used to include empty fields in Patch requests.
3795	ForceSendFields []string `json:"-"`
3796
3797	// NullFields is a list of field names (e.g. "Key") to include in API
3798	// requests with the JSON null value. By default, fields with empty
3799	// values are omitted from API requests. However, any field with an
3800	// empty value appearing in NullFields will be sent to the server as
3801	// null. It is an error if a field in this list has a non-empty value.
3802	// This may be used to include null fields in Patch requests.
3803	NullFields []string `json:"-"`
3804}
3805
3806func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3807	type NoMethod AutoscalersScopedListWarningData
3808	raw := NoMethod(*s)
3809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3810}
3811
3812// AutoscalingPolicy: Cloud Autoscaler policy.
3813type AutoscalingPolicy struct {
3814	// CoolDownPeriodSec: The number of seconds that the autoscaler waits
3815	// before it starts collecting information from a new instance. This
3816	// prevents the autoscaler from collecting information when the instance
3817	// is initializing, during which the collected usage would not be
3818	// reliable. The default time autoscaler waits is 60 seconds.
3819	//
3820	// Virtual machine initialization times might vary because of numerous
3821	// factors. We recommend that you test how long an instance may take to
3822	// initialize. To do this, create an instance and time the startup
3823	// process.
3824	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3825
3826	// CpuUtilization: Defines the CPU utilization policy that allows the
3827	// autoscaler to scale based on the average CPU utilization of a managed
3828	// instance group.
3829	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3830
3831	// CustomMetricUtilizations: Configuration parameters of autoscaling
3832	// based on a custom metric.
3833	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3834
3835	// LoadBalancingUtilization: Configuration parameters of autoscaling
3836	// based on load balancer.
3837	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3838
3839	// MaxNumReplicas: The maximum number of instances that the autoscaler
3840	// can scale out to. This is required when creating or updating an
3841	// autoscaler. The maximum number of replicas must not be lower than
3842	// minimal number of replicas.
3843	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3844
3845	// MinNumReplicas: The minimum number of replicas that the autoscaler
3846	// can scale in to. This cannot be less than 0. If not provided,
3847	// autoscaler chooses a default value depending on maximum number of
3848	// instances allowed.
3849	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3850
3851	// Mode: Defines operating mode for this policy.
3852	//
3853	// Possible values:
3854	//   "OFF"
3855	//   "ON"
3856	//   "ONLY_SCALE_OUT"
3857	//   "ONLY_UP"
3858	Mode string `json:"mode,omitempty"`
3859
3860	ScaleDownControl *AutoscalingPolicyScaleDownControl `json:"scaleDownControl,omitempty"`
3861
3862	ScaleInControl *AutoscalingPolicyScaleInControl `json:"scaleInControl,omitempty"`
3863
3864	// ScalingSchedules: Scaling schedules defined for an autoscaler.
3865	// Multiple schedules can be set on an autoscaler, and they can overlap.
3866	// During overlapping periods the greatest min_required_replicas of all
3867	// scaling schedules is applied. Up to 128 scaling schedules are
3868	// allowed.
3869	ScalingSchedules map[string]AutoscalingPolicyScalingSchedule `json:"scalingSchedules,omitempty"`
3870
3871	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3872	// to unconditionally include in API requests. By default, fields with
3873	// empty values are omitted from API requests. However, any non-pointer,
3874	// non-interface field appearing in ForceSendFields will be sent to the
3875	// server regardless of whether the field is empty or not. This may be
3876	// used to include empty fields in Patch requests.
3877	ForceSendFields []string `json:"-"`
3878
3879	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3880	// include in API requests with the JSON null value. By default, fields
3881	// with empty values are omitted from API requests. However, any field
3882	// with an empty value appearing in NullFields will be sent to the
3883	// server as null. It is an error if a field in this list has a
3884	// non-empty value. This may be used to include null fields in Patch
3885	// requests.
3886	NullFields []string `json:"-"`
3887}
3888
3889func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3890	type NoMethod AutoscalingPolicy
3891	raw := NoMethod(*s)
3892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3893}
3894
3895// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3896type AutoscalingPolicyCpuUtilization struct {
3897	// PredictiveMethod: Indicates whether predictive autoscaling based on
3898	// CPU metric is enabled. Valid values are:
3899	//
3900	// * NONE (default). No predictive method is used. The autoscaler scales
3901	// the group to meet current demand based on real-time metrics. *
3902	// OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability
3903	// by monitoring daily and weekly load patterns and scaling out ahead of
3904	// anticipated demand.
3905	//
3906	// Possible values:
3907	//   "NONE"
3908	//   "OPTIMIZE_AVAILABILITY"
3909	//   "PREDICTIVE_METHOD_UNSPECIFIED"
3910	PredictiveMethod string `json:"predictiveMethod,omitempty"`
3911
3912	// UtilizationTarget: The target CPU utilization that the autoscaler
3913	// maintains. Must be a float value in the range (0, 1]. If not
3914	// specified, the default is 0.6.
3915	//
3916	// If the CPU level is below the target utilization, the autoscaler
3917	// scales in the number of instances until it reaches the minimum number
3918	// of instances you specified or until the average CPU of your instances
3919	// reaches the target utilization.
3920	//
3921	// If the average CPU is above the target utilization, the autoscaler
3922	// scales out until it reaches the maximum number of instances you
3923	// specified or until the average utilization reaches the target
3924	// utilization.
3925	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3926
3927	// ForceSendFields is a list of field names (e.g. "PredictiveMethod") to
3928	// unconditionally include in API requests. By default, fields with
3929	// empty values are omitted from API requests. However, any non-pointer,
3930	// non-interface field appearing in ForceSendFields will be sent to the
3931	// server regardless of whether the field is empty or not. This may be
3932	// used to include empty fields in Patch requests.
3933	ForceSendFields []string `json:"-"`
3934
3935	// NullFields is a list of field names (e.g. "PredictiveMethod") to
3936	// include in API requests with the JSON null value. By default, fields
3937	// with empty values are omitted from API requests. However, any field
3938	// with an empty value appearing in NullFields will be sent to the
3939	// server as null. It is an error if a field in this list has a
3940	// non-empty value. This may be used to include null fields in Patch
3941	// requests.
3942	NullFields []string `json:"-"`
3943}
3944
3945func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3946	type NoMethod AutoscalingPolicyCpuUtilization
3947	raw := NoMethod(*s)
3948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3949}
3950
3951func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3952	type NoMethod AutoscalingPolicyCpuUtilization
3953	var s1 struct {
3954		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3955		*NoMethod
3956	}
3957	s1.NoMethod = (*NoMethod)(s)
3958	if err := json.Unmarshal(data, &s1); err != nil {
3959		return err
3960	}
3961	s.UtilizationTarget = float64(s1.UtilizationTarget)
3962	return nil
3963}
3964
3965// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3966// policy.
3967type AutoscalingPolicyCustomMetricUtilization struct {
3968	// Filter: A filter string, compatible with a Stackdriver Monitoring
3969	// filter string for TimeSeries.list API call. This filter is used to
3970	// select a specific TimeSeries for the purpose of autoscaling and to
3971	// determine whether the metric is exporting per-instance or per-group
3972	// data.
3973	//
3974	// For the filter to be valid for autoscaling purposes, the following
3975	// rules apply:
3976	// - You can only use the AND operator for joining selectors.
3977	// - You can only use direct equality comparison operator (=) without
3978	// any functions for each selector.
3979	// - You can specify the metric in both the filter string and in the
3980	// metric field. However, if specified in both places, the metric must
3981	// be identical.
3982	// - The monitored resource type determines what kind of values are
3983	// expected for the metric. If it is a gce_instance, the autoscaler
3984	// expects the metric to include a separate TimeSeries for each instance
3985	// in a group. In such a case, you cannot filter on resource labels.
3986	// If the resource type is any other value, the autoscaler expects this
3987	// metric to contain values that apply to the entire autoscaled instance
3988	// group and resource label filtering can be performed to point
3989	// autoscaler at the correct TimeSeries to scale upon. This is called a
3990	// per-group metric for the purpose of autoscaling.
3991	//
3992	// If not specified, the type defaults to gce_instance.
3993	//
3994	// Try to provide a filter that is selective enough to pick just one
3995	// TimeSeries for the autoscaled group or for each of the instances (if
3996	// you are using gce_instance resource type). If multiple TimeSeries are
3997	// returned upon the query execution, the autoscaler will sum their
3998	// respective values to obtain its scaling value.
3999	Filter string `json:"filter,omitempty"`
4000
4001	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
4002	// The metric cannot have negative values.
4003	//
4004	// The metric must have a value type of INT64 or DOUBLE.
4005	Metric string `json:"metric,omitempty"`
4006
4007	// SingleInstanceAssignment: If scaling is based on a per-group metric
4008	// value that represents the total amount of work to be done or resource
4009	// usage, set this value to an amount assigned for a single instance of
4010	// the scaled group. Autoscaler keeps the number of instances
4011	// proportional to the value of this metric. The metric itself does not
4012	// change value due to group resizing.
4013	//
4014	// A good metric to use with the target is for example
4015	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
4016	// custom metric exporting the total number of requests coming to your
4017	// instances.
4018	//
4019	// A bad example would be a metric exporting an average or median
4020	// latency, since this value can't include a chunk assignable to a
4021	// single instance, it could be better used with utilization_target
4022	// instead.
4023	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
4024
4025	// UtilizationTarget: The target value of the metric that autoscaler
4026	// maintains. This must be a positive value. A utilization metric scales
4027	// number of virtual machines handling requests to increase or decrease
4028	// proportionally to the metric.
4029	//
4030	// For example, a good metric to use as a utilization_target is
4031	// https://www.googleapis.com/compute/v1/instance/network/received_bytes_count.
4032	// The autoscaler works to keep this value constant for each of the
4033	// instances.
4034	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4035
4036	// UtilizationTargetType: Defines how target utilization value is
4037	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
4038	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
4039	//
4040	// Possible values:
4041	//   "DELTA_PER_MINUTE"
4042	//   "DELTA_PER_SECOND"
4043	//   "GAUGE"
4044	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
4045
4046	// ForceSendFields is a list of field names (e.g. "Filter") to
4047	// unconditionally include in API requests. By default, fields with
4048	// empty values are omitted from API requests. However, any non-pointer,
4049	// non-interface field appearing in ForceSendFields will be sent to the
4050	// server regardless of whether the field is empty or not. This may be
4051	// used to include empty fields in Patch requests.
4052	ForceSendFields []string `json:"-"`
4053
4054	// NullFields is a list of field names (e.g. "Filter") to include in API
4055	// requests with the JSON null value. By default, fields with empty
4056	// values are omitted from API requests. However, any field with an
4057	// empty value appearing in NullFields will be sent to the server as
4058	// null. It is an error if a field in this list has a non-empty value.
4059	// This may be used to include null fields in Patch requests.
4060	NullFields []string `json:"-"`
4061}
4062
4063func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
4064	type NoMethod AutoscalingPolicyCustomMetricUtilization
4065	raw := NoMethod(*s)
4066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4067}
4068
4069func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
4070	type NoMethod AutoscalingPolicyCustomMetricUtilization
4071	var s1 struct {
4072		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
4073		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
4074		*NoMethod
4075	}
4076	s1.NoMethod = (*NoMethod)(s)
4077	if err := json.Unmarshal(data, &s1); err != nil {
4078		return err
4079	}
4080	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
4081	s.UtilizationTarget = float64(s1.UtilizationTarget)
4082	return nil
4083}
4084
4085// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
4086// of autoscaling based on load balancing.
4087type AutoscalingPolicyLoadBalancingUtilization struct {
4088	// UtilizationTarget: Fraction of backend capacity utilization (set in
4089	// HTTP(S) load balancing configuration) that the autoscaler maintains.
4090	// Must be a positive float value. If not defined, the default is 0.8.
4091	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4092
4093	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
4094	// to unconditionally include in API requests. By default, fields with
4095	// empty values are omitted from API requests. However, any non-pointer,
4096	// non-interface field appearing in ForceSendFields will be sent to the
4097	// server regardless of whether the field is empty or not. This may be
4098	// used to include empty fields in Patch requests.
4099	ForceSendFields []string `json:"-"`
4100
4101	// NullFields is a list of field names (e.g. "UtilizationTarget") to
4102	// include in API requests with the JSON null value. By default, fields
4103	// with empty values are omitted from API requests. However, any field
4104	// with an empty value appearing in NullFields will be sent to the
4105	// server as null. It is an error if a field in this list has a
4106	// non-empty value. This may be used to include null fields in Patch
4107	// requests.
4108	NullFields []string `json:"-"`
4109}
4110
4111func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
4112	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4113	raw := NoMethod(*s)
4114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4115}
4116
4117func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
4118	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4119	var s1 struct {
4120		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4121		*NoMethod
4122	}
4123	s1.NoMethod = (*NoMethod)(s)
4124	if err := json.Unmarshal(data, &s1); err != nil {
4125		return err
4126	}
4127	s.UtilizationTarget = float64(s1.UtilizationTarget)
4128	return nil
4129}
4130
4131// AutoscalingPolicyScaleDownControl: Configuration that allows for
4132// slower scale in so that even if Autoscaler recommends an abrupt scale
4133// in of a MIG, it will be throttled as specified by the parameters
4134// below.
4135type AutoscalingPolicyScaleDownControl struct {
4136	// MaxScaledDownReplicas: Maximum allowed number (or %) of VMs that can
4137	// be deducted from the peak recommendation during the window autoscaler
4138	// looks at when computing recommendations. Possibly all these VMs can
4139	// be deleted at once so user service needs to be prepared to lose that
4140	// many VMs in one step.
4141	MaxScaledDownReplicas *FixedOrPercent `json:"maxScaledDownReplicas,omitempty"`
4142
4143	// TimeWindowSec: How far back autoscaling looks when computing
4144	// recommendations to include directives regarding slower scale in, as
4145	// described above.
4146	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4147
4148	// ForceSendFields is a list of field names (e.g.
4149	// "MaxScaledDownReplicas") to unconditionally include in API requests.
4150	// By default, fields with empty values are omitted from API requests.
4151	// However, any non-pointer, non-interface field appearing in
4152	// ForceSendFields will be sent to the server regardless of whether the
4153	// field is empty or not. This may be used to include empty fields in
4154	// Patch requests.
4155	ForceSendFields []string `json:"-"`
4156
4157	// NullFields is a list of field names (e.g. "MaxScaledDownReplicas") to
4158	// include in API requests with the JSON null value. By default, fields
4159	// with empty values are omitted from API requests. However, any field
4160	// with an empty value appearing in NullFields will be sent to the
4161	// server as null. It is an error if a field in this list has a
4162	// non-empty value. This may be used to include null fields in Patch
4163	// requests.
4164	NullFields []string `json:"-"`
4165}
4166
4167func (s *AutoscalingPolicyScaleDownControl) MarshalJSON() ([]byte, error) {
4168	type NoMethod AutoscalingPolicyScaleDownControl
4169	raw := NoMethod(*s)
4170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4171}
4172
4173// AutoscalingPolicyScaleInControl: Configuration that allows for slower
4174// scale in so that even if Autoscaler recommends an abrupt scale in of
4175// a MIG, it will be throttled as specified by the parameters below.
4176type AutoscalingPolicyScaleInControl struct {
4177	// MaxScaledInReplicas: Maximum allowed number (or %) of VMs that can be
4178	// deducted from the peak recommendation during the window autoscaler
4179	// looks at when computing recommendations. Possibly all these VMs can
4180	// be deleted at once so user service needs to be prepared to lose that
4181	// many VMs in one step.
4182	MaxScaledInReplicas *FixedOrPercent `json:"maxScaledInReplicas,omitempty"`
4183
4184	// TimeWindowSec: How far back autoscaling looks when computing
4185	// recommendations to include directives regarding slower scale in, as
4186	// described above.
4187	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4188
4189	// ForceSendFields is a list of field names (e.g. "MaxScaledInReplicas")
4190	// to unconditionally include in API requests. By default, fields with
4191	// empty values are omitted from API requests. However, any non-pointer,
4192	// non-interface field appearing in ForceSendFields will be sent to the
4193	// server regardless of whether the field is empty or not. This may be
4194	// used to include empty fields in Patch requests.
4195	ForceSendFields []string `json:"-"`
4196
4197	// NullFields is a list of field names (e.g. "MaxScaledInReplicas") to
4198	// include in API requests with the JSON null value. By default, fields
4199	// with empty values are omitted from API requests. However, any field
4200	// with an empty value appearing in NullFields will be sent to the
4201	// server as null. It is an error if a field in this list has a
4202	// non-empty value. This may be used to include null fields in Patch
4203	// requests.
4204	NullFields []string `json:"-"`
4205}
4206
4207func (s *AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) {
4208	type NoMethod AutoscalingPolicyScaleInControl
4209	raw := NoMethod(*s)
4210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4211}
4212
4213// AutoscalingPolicyScalingSchedule: Scaling based on user-defined
4214// schedule. The message describes a single scaling schedule. A scaling
4215// schedule changes the minimum number of VM instances an autoscaler can
4216// recommend, which can trigger scaling out.
4217type AutoscalingPolicyScalingSchedule struct {
4218	// Description: A description of a scaling schedule.
4219	Description string `json:"description,omitempty"`
4220
4221	// Disabled: A boolean value that specifies whether a scaling schedule
4222	// can influence autoscaler recommendations. If set to true, then a
4223	// scaling schedule has no effect. This field is optional, and its value
4224	// is false by default.
4225	Disabled bool `json:"disabled,omitempty"`
4226
4227	// DurationSec: The duration of time intervals, in seconds, for which
4228	// this scaling schedule is to run. The minimum allowed value is 300.
4229	// This field is required.
4230	DurationSec int64 `json:"durationSec,omitempty"`
4231
4232	// MinRequiredReplicas: The minimum number of VM instances that the
4233	// autoscaler will recommend in time intervals starting according to
4234	// schedule. This field is required.
4235	MinRequiredReplicas int64 `json:"minRequiredReplicas,omitempty"`
4236
4237	// Schedule: The start timestamps of time intervals when this scaling
4238	// schedule is to provide a scaling signal. This field uses the extended
4239	// cron format (with an optional year field). The expression can
4240	// describe a single timestamp if the optional year is set, in which
4241	// case the scaling schedule runs once. The schedule is interpreted with
4242	// respect to time_zone. This field is required. Note: These timestamps
4243	// only describe when autoscaler starts providing the scaling signal.
4244	// The VMs need additional time to become serving.
4245	Schedule string `json:"schedule,omitempty"`
4246
4247	// TimeZone: The time zone to use when interpreting the schedule. The
4248	// value of this field must be a time zone name from the tz database:
4249	// http://en.wikipedia.org/wiki/Tz_database. This field is assigned a
4250	// default value of ?UTC? if left empty.
4251	TimeZone string `json:"timeZone,omitempty"`
4252
4253	// ForceSendFields is a list of field names (e.g. "Description") to
4254	// unconditionally include in API requests. By default, fields with
4255	// empty values are omitted from API requests. However, any non-pointer,
4256	// non-interface field appearing in ForceSendFields will be sent to the
4257	// server regardless of whether the field is empty or not. This may be
4258	// used to include empty fields in Patch requests.
4259	ForceSendFields []string `json:"-"`
4260
4261	// NullFields is a list of field names (e.g. "Description") to include
4262	// in API requests with the JSON null value. By default, fields with
4263	// empty values are omitted from API requests. However, any field with
4264	// an empty value appearing in NullFields will be sent to the server as
4265	// null. It is an error if a field in this list has a non-empty value.
4266	// This may be used to include null fields in Patch requests.
4267	NullFields []string `json:"-"`
4268}
4269
4270func (s *AutoscalingPolicyScalingSchedule) MarshalJSON() ([]byte, error) {
4271	type NoMethod AutoscalingPolicyScalingSchedule
4272	raw := NoMethod(*s)
4273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4274}
4275
4276// Backend: Message containing information of one individual backend.
4277type Backend struct {
4278	// BalancingMode: Specifies how to determine whether the backend of a
4279	// load balancer can handle additional traffic or is fully loaded. For
4280	// usage guidelines, see  Connection balancing mode.
4281	//
4282	// Possible values:
4283	//   "CONNECTION"
4284	//   "RATE"
4285	//   "UTILIZATION"
4286	BalancingMode string `json:"balancingMode,omitempty"`
4287
4288	// CapacityScaler: A multiplier applied to the backend's target capacity
4289	// of its balancing mode. The default value is 1, which means the group
4290	// serves up to 100% of its configured capacity (depending on
4291	// balancingMode). A setting of 0 means the group is completely drained,
4292	// offering 0% of its available capacity. The valid ranges are 0.0 and
4293	// [0.1,1.0]. You cannot configure a setting larger than 0 and smaller
4294	// than 0.1. You cannot configure a setting of 0 when there is only one
4295	// backend attached to the backend service.
4296	//
4297	// Not supported by:
4298	//
4299	// - Internal TCP/UDP Load Balancing - Network Load Balancing
4300	CapacityScaler float64 `json:"capacityScaler,omitempty"`
4301
4302	// Description: An optional description of this resource. Provide this
4303	// property when you create the resource.
4304	Description string `json:"description,omitempty"`
4305
4306	// Failover: This field designates whether this is a failover backend.
4307	// More than one failover backend can be configured for a given
4308	// BackendService.
4309	Failover bool `json:"failover,omitempty"`
4310
4311	// Group: The fully-qualified URL of an instance group or network
4312	// endpoint group (NEG) resource. The type of backend that a backend
4313	// service supports depends on the backend service's
4314	// loadBalancingScheme.
4315	//
4316	//
4317	// - When the loadBalancingScheme for the backend service is EXTERNAL
4318	// (except Network Load Balancing),  INTERNAL_SELF_MANAGED, or
4319	// INTERNAL_MANAGED , the backend can be either an instance group or a
4320	// NEG. The backends on the backend service must be either all instance
4321	// groups or all NEGs. You cannot mix instance group and NEG backends on
4322	// the same backend service.
4323	//
4324	//
4325	// - When the loadBalancingScheme for the backend service is EXTERNAL
4326	// for Network Load Balancing or INTERNAL for Internal TCP/UDP Load
4327	// Balancing, the backend must be an instance group. NEGs are not
4328	// supported.
4329	//
4330	// For regional services, the backend must be in the same region as the
4331	// backend service.
4332	//
4333	// You must use the fully-qualified URL (starting with
4334	// https://www.googleapis.com/) to specify the instance group or NEG.
4335	// Partial URLs are not supported.
4336	Group string `json:"group,omitempty"`
4337
4338	// MaxConnections: Defines a target maximum number of simultaneous
4339	// connections. For usage guidelines, see Connection balancing mode and
4340	// Utilization balancing mode. Not available if the backend's
4341	// balancingMode is RATE. Not supported by:
4342	//
4343	// - Internal TCP/UDP Load Balancing - Network Load Balancing
4344	MaxConnections int64 `json:"maxConnections,omitempty"`
4345
4346	// MaxConnectionsPerEndpoint: Defines a target maximum number of
4347	// simultaneous connections. For usage guidelines, see Connection
4348	// balancing mode and Utilization balancing mode.
4349	//
4350	// Not available if the backend's balancingMode is RATE. Not supported
4351	// by:
4352	//
4353	// - Internal TCP/UDP Load Balancing - Network Load Balancing.
4354	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
4355
4356	// MaxConnectionsPerInstance: Defines a target maximum number of
4357	// simultaneous connections. For usage guidelines, see Connection
4358	// balancing mode and Utilization balancing mode.
4359	//
4360	// Not available if the backend's balancingMode is RATE. Not supported
4361	// by:
4362	//
4363	// - Internal TCP/UDP Load Balancing - Network Load Balancing.
4364	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4365
4366	// MaxRate: Defines a maximum number of HTTP requests per second (RPS).
4367	// For usage guidelines, see Rate balancing mode and Utilization
4368	// balancing mode.
4369	//
4370	// Not available if the backend's balancingMode is CONNECTION.
4371	MaxRate int64 `json:"maxRate,omitempty"`
4372
4373	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4374	// (RPS). For usage guidelines, see Rate balancing mode and Utilization
4375	// balancing mode.
4376	//
4377	// Not available if the backend's balancingMode is CONNECTION.
4378	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4379
4380	// MaxRatePerInstance: Defines a maximum target for requests per second
4381	// (RPS). For usage guidelines, see Rate balancing mode and Utilization
4382	// balancing mode.
4383	//
4384	// Not available if the backend's balancingMode is CONNECTION.
4385	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4386
4387	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4388
4389	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4390	// unconditionally include in API requests. By default, fields with
4391	// empty values are omitted from API requests. However, any non-pointer,
4392	// non-interface field appearing in ForceSendFields will be sent to the
4393	// server regardless of whether the field is empty or not. This may be
4394	// used to include empty fields in Patch requests.
4395	ForceSendFields []string `json:"-"`
4396
4397	// NullFields is a list of field names (e.g. "BalancingMode") to include
4398	// in API requests with the JSON null value. By default, fields with
4399	// empty values are omitted from API requests. However, any field with
4400	// an empty value appearing in NullFields will be sent to the server as
4401	// null. It is an error if a field in this list has a non-empty value.
4402	// This may be used to include null fields in Patch requests.
4403	NullFields []string `json:"-"`
4404}
4405
4406func (s *Backend) MarshalJSON() ([]byte, error) {
4407	type NoMethod Backend
4408	raw := NoMethod(*s)
4409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4410}
4411
4412func (s *Backend) UnmarshalJSON(data []byte) error {
4413	type NoMethod Backend
4414	var s1 struct {
4415		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4416		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4417		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4418		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4419		*NoMethod
4420	}
4421	s1.NoMethod = (*NoMethod)(s)
4422	if err := json.Unmarshal(data, &s1); err != nil {
4423		return err
4424	}
4425	s.CapacityScaler = float64(s1.CapacityScaler)
4426	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4427	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4428	s.MaxUtilization = float64(s1.MaxUtilization)
4429	return nil
4430}
4431
4432// BackendBucket: Represents a Cloud Storage Bucket resource.
4433//
4434// This Cloud Storage bucket resource is referenced by a URL map of a
4435// load balancer. For more information, read Backend Buckets.
4436type BackendBucket struct {
4437	// BucketName: Cloud Storage bucket name.
4438	BucketName string `json:"bucketName,omitempty"`
4439
4440	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4441	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4442
4443	// CompressionMode: Compress text responses using Brotli or gzip
4444	// compression, based on the client?s Accept-Encoding header.
4445	//
4446	// Possible values:
4447	//   "AUTOMATIC"
4448	//   "DISABLED"
4449	CompressionMode string `json:"compressionMode,omitempty"`
4450
4451	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4452	// format.
4453	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4454
4455	// CustomResponseHeaders: Headers that the HTTP/S load balancer should
4456	// add to proxied responses.
4457	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
4458
4459	// Description: An optional textual description of the resource;
4460	// provided by the client when the resource is created.
4461	Description string `json:"description,omitempty"`
4462
4463	// EdgeSecurityPolicy: [Output Only] The resource URL for the edge
4464	// security policy associated with this backend bucket.
4465	EdgeSecurityPolicy string `json:"edgeSecurityPolicy,omitempty"`
4466
4467	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4468	EnableCdn bool `json:"enableCdn,omitempty"`
4469
4470	// Id: [Output Only] Unique identifier for the resource; defined by the
4471	// server.
4472	Id uint64 `json:"id,omitempty,string"`
4473
4474	// Kind: Type of the resource.
4475	Kind string `json:"kind,omitempty"`
4476
4477	// Name: Name of the resource. Provided by the client when the resource
4478	// is created. The name must be 1-63 characters long, and comply with
4479	// RFC1035. Specifically, the name must be 1-63 characters long and
4480	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4481	// the first character must be a lowercase letter, and all following
4482	// characters must be a dash, lowercase letter, or digit, except the
4483	// last character, which cannot be a dash.
4484	Name string `json:"name,omitempty"`
4485
4486	// SelfLink: [Output Only] Server-defined URL for the resource.
4487	SelfLink string `json:"selfLink,omitempty"`
4488
4489	// ServerResponse contains the HTTP response code and headers from the
4490	// server.
4491	googleapi.ServerResponse `json:"-"`
4492
4493	// ForceSendFields is a list of field names (e.g. "BucketName") to
4494	// unconditionally include in API requests. By default, fields with
4495	// empty values are omitted from API requests. However, any non-pointer,
4496	// non-interface field appearing in ForceSendFields will be sent to the
4497	// server regardless of whether the field is empty or not. This may be
4498	// used to include empty fields in Patch requests.
4499	ForceSendFields []string `json:"-"`
4500
4501	// NullFields is a list of field names (e.g. "BucketName") to include in
4502	// API requests with the JSON null value. By default, fields with empty
4503	// values are omitted from API requests. However, any field with an
4504	// empty value appearing in NullFields will be sent to the server as
4505	// null. It is an error if a field in this list has a non-empty value.
4506	// This may be used to include null fields in Patch requests.
4507	NullFields []string `json:"-"`
4508}
4509
4510func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4511	type NoMethod BackendBucket
4512	raw := NoMethod(*s)
4513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4514}
4515
4516// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4517// for a backend bucket.
4518type BackendBucketCdnPolicy struct {
4519	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
4520	// request headers are matched - e.g. Pragma or Authorization headers.
4521	// Up to 5 headers can be specified. The cache is bypassed for all
4522	// cdnPolicy.cacheMode settings.
4523	BypassCacheOnRequestHeaders []*BackendBucketCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
4524
4525	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
4526	CacheKeyPolicy *BackendBucketCdnPolicyCacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
4527
4528	// CacheMode: Specifies the cache setting for all responses from this
4529	// backend. The possible values are:
4530	//
4531	// USE_ORIGIN_HEADERS Requires the origin to set valid caching headers
4532	// to cache content. Responses without these headers will not be cached
4533	// at Google's edge, and will require a full trip to the origin on every
4534	// request, potentially impacting performance and increasing load on the
4535	// origin server.
4536	//
4537	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
4538	// or "no-cache" directives in Cache-Control response headers. Warning:
4539	// this may result in Cloud CDN caching private, per-user (user
4540	// identifiable) content.
4541	//
4542	// CACHE_ALL_STATIC Automatically cache static content, including common
4543	// image formats, media (video and audio), and web assets (JavaScript
4544	// and CSS). Requests and responses that are marked as uncacheable, as
4545	// well as dynamic content (including HTML), will not be cached.
4546	//
4547	// Possible values:
4548	//   "CACHE_ALL_STATIC"
4549	//   "FORCE_CACHE_ALL"
4550	//   "INVALID_CACHE_MODE"
4551	//   "USE_ORIGIN_HEADERS"
4552	CacheMode string `json:"cacheMode,omitempty"`
4553
4554	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
4555	// TTL. This is used to clamp the max-age (or Expires) value sent to the
4556	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
4557	// default_ttl is used for the response max-age directive, along with a
4558	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
4559	// client_ttl clamps the max-age from the origin (if specified), or else
4560	// sets the response max-age directive to the lesser of the client_ttl
4561	// and default_ttl, and also ensures a "public" cache-control directive
4562	// is present. If a client TTL is not specified, a default value (1
4563	// hour) will be used. The maximum allowed value is 86400s (1 day).
4564	ClientTtl int64 `json:"clientTtl,omitempty"`
4565
4566	// DefaultTtl: Specifies the default TTL for cached content served by
4567	// this origin for responses that do not have an existing valid TTL
4568	// (max-age or s-max-age). Setting a TTL of "0" means "always
4569	// revalidate". The value of defaultTTL cannot be set to a value greater
4570	// than that of maxTTL, but can be equal. When the cacheMode is set to
4571	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
4572	// responses. The maximum allowed value is 31,622,400s (1 year), noting
4573	// that infrequently accessed objects may be evicted from the cache
4574	// before the defined TTL.
4575	DefaultTtl int64 `json:"defaultTtl,omitempty"`
4576
4577	// MaxTtl: Specifies the maximum allowed TTL for cached content served
4578	// by this origin. Cache directives that attempt to set a max-age or
4579	// s-maxage higher than this, or an Expires header more than maxTTL
4580	// seconds in the future will be capped at the value of maxTTL, as if it
4581	// were the value of an s-maxage Cache-Control directive. Headers sent
4582	// to the client will not be modified. Setting a TTL of "0" means
4583	// "always revalidate". The maximum allowed value is 31,622,400s (1
4584	// year), noting that infrequently accessed objects may be evicted from
4585	// the cache before the defined TTL.
4586	MaxTtl int64 `json:"maxTtl,omitempty"`
4587
4588	// NegativeCaching: Negative caching allows per-status code TTLs to be
4589	// set, in order to apply fine-grained caching for common errors or
4590	// redirects. This can reduce the load on your origin and improve
4591	// end-user experience by reducing response latency. When the cache mode
4592	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
4593	// applies to responses with the specified response code that lack any
4594	// Cache-Control, Expires, or Pragma: no-cache directives. When the
4595	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
4596	// responses with the specified response code, and override any caching
4597	// headers. By default, Cloud CDN will apply the following default TTLs
4598	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
4599	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
4600	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
4601	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
4602	// can be overridden in negative_caching_policy.
4603	NegativeCaching bool `json:"negativeCaching,omitempty"`
4604
4605	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
4606	// code. negative_caching must be enabled to configure
4607	// negative_caching_policy. Omitting the policy and leaving
4608	// negative_caching enabled will use Cloud CDN's default cache TTLs.
4609	// Note that when specifying an explicit negative_caching_policy, you
4610	// should take care to specify a cache TTL for all response codes that
4611	// you wish to cache. Cloud CDN will not apply any default negative
4612	// caching when a policy exists.
4613	NegativeCachingPolicy []*BackendBucketCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
4614
4615	// RequestCoalescing: If true then Cloud CDN will combine multiple
4616	// concurrent cache fill requests into a small number of requests to the
4617	// origin.
4618	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
4619
4620	// ServeWhileStale: Serve existing content from the cache (if available)
4621	// when revalidating content with the origin, or when an error is
4622	// encountered when refreshing the cache. This setting defines the
4623	// default "max-stale" duration for any cached responses that do not
4624	// specify a max-stale directive. Stale responses that exceed the TTL
4625	// configured here will not be served. The default limit (max-stale) is
4626	// 86400s (1 day), which will allow stale content to be served up to
4627	// this limit beyond the max-age (or s-max-age) of a cached response.
4628	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
4629	// disable serve-while-stale.
4630	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
4631
4632	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4633	// signed URL request will be considered fresh. After this time period,
4634	// the response will be revalidated before being served. Defaults to 1hr
4635	// (3600s). When serving responses to signed URL requests, Cloud CDN
4636	// will internally behave as though all responses from this backend had
4637	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4638	// existing Cache-Control header. The actual headers served in responses
4639	// will not be altered.
4640	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4641
4642	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4643	// request URLs.
4644	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4645
4646	// ForceSendFields is a list of field names (e.g.
4647	// "BypassCacheOnRequestHeaders") to unconditionally include in API
4648	// requests. By default, fields with empty values are omitted from API
4649	// requests. However, any non-pointer, non-interface field appearing in
4650	// ForceSendFields will be sent to the server regardless of whether the
4651	// field is empty or not. This may be used to include empty fields in
4652	// Patch requests.
4653	ForceSendFields []string `json:"-"`
4654
4655	// NullFields is a list of field names (e.g.
4656	// "BypassCacheOnRequestHeaders") to include in API requests with the
4657	// JSON null value. By default, fields with empty values are omitted
4658	// from API requests. However, any field with an empty value appearing
4659	// in NullFields will be sent to the server as null. It is an error if a
4660	// field in this list has a non-empty value. This may be used to include
4661	// null fields in Patch requests.
4662	NullFields []string `json:"-"`
4663}
4664
4665func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4666	type NoMethod BackendBucketCdnPolicy
4667	raw := NoMethod(*s)
4668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4669}
4670
4671// BackendBucketCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
4672// when the specified request headers are present, e.g. Pragma or
4673// Authorization headers. Values are case insensitive. The presence of
4674// such a header overrides the cache_mode setting.
4675type BackendBucketCdnPolicyBypassCacheOnRequestHeader struct {
4676	// HeaderName: The header field name to match on when bypassing cache.
4677	// Values are case-insensitive.
4678	HeaderName string `json:"headerName,omitempty"`
4679
4680	// ForceSendFields is a list of field names (e.g. "HeaderName") to
4681	// unconditionally include in API requests. By default, fields with
4682	// empty values are omitted from API requests. However, any non-pointer,
4683	// non-interface field appearing in ForceSendFields will be sent to the
4684	// server regardless of whether the field is empty or not. This may be
4685	// used to include empty fields in Patch requests.
4686	ForceSendFields []string `json:"-"`
4687
4688	// NullFields is a list of field names (e.g. "HeaderName") to include in
4689	// API requests with the JSON null value. By default, fields with empty
4690	// values are omitted from API requests. However, any field with an
4691	// empty value appearing in NullFields will be sent to the server as
4692	// null. It is an error if a field in this list has a non-empty value.
4693	// This may be used to include null fields in Patch requests.
4694	NullFields []string `json:"-"`
4695}
4696
4697func (s *BackendBucketCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
4698	type NoMethod BackendBucketCdnPolicyBypassCacheOnRequestHeader
4699	raw := NoMethod(*s)
4700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4701}
4702
4703// BackendBucketCdnPolicyCacheKeyPolicy: Message containing what to
4704// include in the cache key for a request for Cloud CDN.
4705type BackendBucketCdnPolicyCacheKeyPolicy struct {
4706	// IncludeHttpHeaders: Allows HTTP request headers (by name) to be used
4707	// in the cache key.
4708	IncludeHttpHeaders []string `json:"includeHttpHeaders,omitempty"`
4709
4710	// QueryStringWhitelist: Names of query string parameters to include in
4711	// cache keys. All other parameters will be excluded. '&' and '=' will
4712	// be percent encoded and not treated as delimiters.
4713	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
4714
4715	// ForceSendFields is a list of field names (e.g. "IncludeHttpHeaders")
4716	// to unconditionally include in API requests. By default, fields with
4717	// empty values are omitted from API requests. However, any non-pointer,
4718	// non-interface field appearing in ForceSendFields will be sent to the
4719	// server regardless of whether the field is empty or not. This may be
4720	// used to include empty fields in Patch requests.
4721	ForceSendFields []string `json:"-"`
4722
4723	// NullFields is a list of field names (e.g. "IncludeHttpHeaders") to
4724	// include in API requests with the JSON null value. By default, fields
4725	// with empty values are omitted from API requests. However, any field
4726	// with an empty value appearing in NullFields will be sent to the
4727	// server as null. It is an error if a field in this list has a
4728	// non-empty value. This may be used to include null fields in Patch
4729	// requests.
4730	NullFields []string `json:"-"`
4731}
4732
4733func (s *BackendBucketCdnPolicyCacheKeyPolicy) MarshalJSON() ([]byte, error) {
4734	type NoMethod BackendBucketCdnPolicyCacheKeyPolicy
4735	raw := NoMethod(*s)
4736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4737}
4738
4739// BackendBucketCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
4740// response error codes.
4741type BackendBucketCdnPolicyNegativeCachingPolicy struct {
4742	// Code: The HTTP status code to define a TTL against. Only HTTP status
4743	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
4744	// can be specified as values, and you cannot specify a status code more
4745	// than once.
4746	Code int64 `json:"code,omitempty"`
4747
4748	// Ttl: The TTL (in seconds) for which to cache responses with the
4749	// corresponding status code. The maximum allowed value is 1800s (30
4750	// minutes), noting that infrequently accessed objects may be evicted
4751	// from the cache before the defined TTL.
4752	Ttl int64 `json:"ttl,omitempty"`
4753
4754	// ForceSendFields is a list of field names (e.g. "Code") to
4755	// unconditionally include in API requests. By default, fields with
4756	// empty values are omitted from API requests. However, any non-pointer,
4757	// non-interface field appearing in ForceSendFields will be sent to the
4758	// server regardless of whether the field is empty or not. This may be
4759	// used to include empty fields in Patch requests.
4760	ForceSendFields []string `json:"-"`
4761
4762	// NullFields is a list of field names (e.g. "Code") to include in API
4763	// requests with the JSON null value. By default, fields with empty
4764	// values are omitted from API requests. However, any field with an
4765	// empty value appearing in NullFields will be sent to the server as
4766	// null. It is an error if a field in this list has a non-empty value.
4767	// This may be used to include null fields in Patch requests.
4768	NullFields []string `json:"-"`
4769}
4770
4771func (s *BackendBucketCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
4772	type NoMethod BackendBucketCdnPolicyNegativeCachingPolicy
4773	raw := NoMethod(*s)
4774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4775}
4776
4777// BackendBucketList: Contains a list of BackendBucket resources.
4778type BackendBucketList struct {
4779	// Id: [Output Only] Unique identifier for the resource; defined by the
4780	// server.
4781	Id string `json:"id,omitempty"`
4782
4783	// Items: A list of BackendBucket resources.
4784	Items []*BackendBucket `json:"items,omitempty"`
4785
4786	// Kind: Type of resource.
4787	Kind string `json:"kind,omitempty"`
4788
4789	// NextPageToken: [Output Only] This token allows you to get the next
4790	// page of results for list requests. If the number of results is larger
4791	// than maxResults, use the nextPageToken as a value for the query
4792	// parameter pageToken in the next list request. Subsequent list
4793	// requests will have their own nextPageToken to continue paging through
4794	// the results.
4795	NextPageToken string `json:"nextPageToken,omitempty"`
4796
4797	// SelfLink: [Output Only] Server-defined URL for this resource.
4798	SelfLink string `json:"selfLink,omitempty"`
4799
4800	// Warning: [Output Only] Informational warning message.
4801	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4802
4803	// ServerResponse contains the HTTP response code and headers from the
4804	// server.
4805	googleapi.ServerResponse `json:"-"`
4806
4807	// ForceSendFields is a list of field names (e.g. "Id") to
4808	// unconditionally include in API requests. By default, fields with
4809	// empty values are omitted from API requests. However, any non-pointer,
4810	// non-interface field appearing in ForceSendFields will be sent to the
4811	// server regardless of whether the field is empty or not. This may be
4812	// used to include empty fields in Patch requests.
4813	ForceSendFields []string `json:"-"`
4814
4815	// NullFields is a list of field names (e.g. "Id") to include in API
4816	// requests with the JSON null value. By default, fields with empty
4817	// values are omitted from API requests. However, any field with an
4818	// empty value appearing in NullFields will be sent to the server as
4819	// null. It is an error if a field in this list has a non-empty value.
4820	// This may be used to include null fields in Patch requests.
4821	NullFields []string `json:"-"`
4822}
4823
4824func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4825	type NoMethod BackendBucketList
4826	raw := NoMethod(*s)
4827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4828}
4829
4830// BackendBucketListWarning: [Output Only] Informational warning
4831// message.
4832type BackendBucketListWarning struct {
4833	// Code: [Output Only] A warning code, if applicable. For example,
4834	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4835	// the response.
4836	//
4837	// Possible values:
4838	//   "CLEANUP_FAILED"
4839	//   "DEPRECATED_RESOURCE_USED"
4840	//   "DEPRECATED_TYPE_USED"
4841	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4842	//   "EXPERIMENTAL_TYPE_USED"
4843	//   "EXTERNAL_API_WARNING"
4844	//   "FIELD_VALUE_OVERRIDEN"
4845	//   "INJECTED_KERNELS_DEPRECATED"
4846	//   "LARGE_DEPLOYMENT_WARNING"
4847	//   "MISSING_TYPE_DEPENDENCY"
4848	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4849	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4850	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4851	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4852	//   "NEXT_HOP_NOT_RUNNING"
4853	//   "NOT_CRITICAL_ERROR"
4854	//   "NO_RESULTS_ON_PAGE"
4855	//   "PARTIAL_SUCCESS"
4856	//   "REQUIRED_TOS_AGREEMENT"
4857	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4858	//   "RESOURCE_NOT_DELETED"
4859	//   "SCHEMA_VALIDATION_IGNORED"
4860	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4861	//   "UNDECLARED_PROPERTIES"
4862	//   "UNREACHABLE"
4863	Code string `json:"code,omitempty"`
4864
4865	// Data: [Output Only] Metadata about this warning in key: value format.
4866	// For example:
4867	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4868	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4869
4870	// Message: [Output Only] A human-readable description of the warning
4871	// code.
4872	Message string `json:"message,omitempty"`
4873
4874	// ForceSendFields is a list of field names (e.g. "Code") to
4875	// unconditionally include in API requests. By default, fields with
4876	// empty values are omitted from API requests. However, any non-pointer,
4877	// non-interface field appearing in ForceSendFields will be sent to the
4878	// server regardless of whether the field is empty or not. This may be
4879	// used to include empty fields in Patch requests.
4880	ForceSendFields []string `json:"-"`
4881
4882	// NullFields is a list of field names (e.g. "Code") to include in API
4883	// requests with the JSON null value. By default, fields with empty
4884	// values are omitted from API requests. However, any field with an
4885	// empty value appearing in NullFields will be sent to the server as
4886	// null. It is an error if a field in this list has a non-empty value.
4887	// This may be used to include null fields in Patch requests.
4888	NullFields []string `json:"-"`
4889}
4890
4891func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4892	type NoMethod BackendBucketListWarning
4893	raw := NoMethod(*s)
4894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4895}
4896
4897type BackendBucketListWarningData struct {
4898	// Key: [Output Only] A key that provides more detail on the warning
4899	// being returned. For example, for warnings where there are no results
4900	// in a list request for a particular zone, this key might be scope and
4901	// the key value might be the zone name. Other examples might be a key
4902	// indicating a deprecated resource and a suggested replacement, or a
4903	// warning about invalid network settings (for example, if an instance
4904	// attempts to perform IP forwarding but is not enabled for IP
4905	// forwarding).
4906	Key string `json:"key,omitempty"`
4907
4908	// Value: [Output Only] A warning data value corresponding to the key.
4909	Value string `json:"value,omitempty"`
4910
4911	// ForceSendFields is a list of field names (e.g. "Key") to
4912	// unconditionally include in API requests. By default, fields with
4913	// empty values are omitted from API requests. However, any non-pointer,
4914	// non-interface field appearing in ForceSendFields will be sent to the
4915	// server regardless of whether the field is empty or not. This may be
4916	// used to include empty fields in Patch requests.
4917	ForceSendFields []string `json:"-"`
4918
4919	// NullFields is a list of field names (e.g. "Key") to include in API
4920	// requests with the JSON null value. By default, fields with empty
4921	// values are omitted from API requests. However, any field with an
4922	// empty value appearing in NullFields will be sent to the server as
4923	// null. It is an error if a field in this list has a non-empty value.
4924	// This may be used to include null fields in Patch requests.
4925	NullFields []string `json:"-"`
4926}
4927
4928func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4929	type NoMethod BackendBucketListWarningData
4930	raw := NoMethod(*s)
4931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4932}
4933
4934// BackendService: Represents a Backend Service resource.
4935//
4936// A backend service defines how Google Cloud load balancers distribute
4937// traffic. The backend service configuration contains a set of values,
4938// such as the protocol used to connect to backends, various
4939// distribution and session settings, health checks, and timeouts. These
4940// settings provide fine-grained control over how your load balancer
4941// behaves. Most of the settings have default values that allow for easy
4942// configuration if you need to get started quickly.
4943//
4944// Backend services in Google Compute Engine can be either regionally or
4945// globally scoped.
4946//
4947// * Global
4948// (/compute/docs/reference/rest/{$api_version}/backendServices) *
4949// Regional
4950// (/compute/docs/reference/rest/{$api_version}/regionBackendServices)
4951//
4952// For more information, see Backend Services.
4953//
4954// (== resource_for {$api_version}.backendService ==)
4955type BackendService struct {
4956	// AffinityCookieTtlSec: Lifetime of cookies in seconds. Only applicable
4957	// if the loadBalancingScheme is EXTERNAL, INTERNAL_SELF_MANAGED, or
4958	// INTERNAL_MANAGED, the protocol is HTTP or HTTPS, and the
4959	// sessionAffinity is GENERATED_COOKIE, or HTTP_COOKIE.
4960	//
4961	// If set to 0, the cookie is non-persistent and lasts only until the
4962	// end of the browser session (or equivalent). The maximum allowed value
4963	// is one day (86,400).
4964	//
4965	// Not supported when the backend service is referenced by a URL map
4966	// that is bound to target gRPC proxy that has validateForProxyless
4967	// field set to true.
4968	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4969
4970	// Backends: The list of backends that serve this BackendService.
4971	Backends []*Backend `json:"backends,omitempty"`
4972
4973	// CdnPolicy: Cloud CDN configuration for this BackendService. Only
4974	// available for  external HTTP(S) Load Balancing.
4975	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4976
4977	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4978
4979	// CompressionMode: Compress text responses using Brotli or gzip
4980	// compression, based on the client?s Accept-Encoding header.
4981	//
4982	// Possible values:
4983	//   "AUTOMATIC"
4984	//   "DISABLED"
4985	CompressionMode string `json:"compressionMode,omitempty"`
4986
4987	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4988
4989	ConnectionTrackingPolicy *BackendServiceConnectionTrackingPolicy `json:"connectionTrackingPolicy,omitempty"`
4990
4991	// ConsistentHash: Consistent Hash-based load balancing can be used to
4992	// provide soft session affinity based on HTTP headers, cookies or other
4993	// properties. This load balancing policy is applicable only for HTTP
4994	// connections. The affinity to a particular destination host will be
4995	// lost when one or more hosts are added/removed from the destination
4996	// service. This field specifies parameters that control consistent
4997	// hashing. This field is only applicable when localityLbPolicy is set
4998	// to MAGLEV or RING_HASH.
4999	//
5000	// This field is applicable to either:
5001	// - A regional backend service with the service_protocol set to HTTP,
5002	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5003	//
5004	// - A global backend service with the load_balancing_scheme set to
5005	// INTERNAL_SELF_MANAGED.
5006	//
5007	// Not supported when the backend service is referenced by a URL map
5008	// that is bound to target gRPC proxy that has validateForProxyless
5009	// field set to true.
5010	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
5011
5012	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
5013	// format.
5014	CreationTimestamp string `json:"creationTimestamp,omitempty"`
5015
5016	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
5017	// add to proxied requests.
5018	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
5019
5020	// CustomResponseHeaders: Headers that the HTTP/S load balancer should
5021	// add to proxied responses.
5022	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
5023
5024	// Description: An optional description of this resource. Provide this
5025	// property when you create the resource.
5026	Description string `json:"description,omitempty"`
5027
5028	// EdgeSecurityPolicy: [Output Only] The resource URL for the edge
5029	// security policy associated with this backend service.
5030	EdgeSecurityPolicy string `json:"edgeSecurityPolicy,omitempty"`
5031
5032	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
5033	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
5034	// HTTP or HTTPS.
5035	EnableCDN bool `json:"enableCDN,omitempty"`
5036
5037	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
5038	// Balancing and Network Load Balancing. Requires at least one backend
5039	// instance group to be defined as a backup (failover) backend.
5040	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
5041
5042	// Fingerprint: Fingerprint of this resource. A hash of the contents
5043	// stored in this object. This field is used in optimistic locking. This
5044	// field will be ignored when inserting a BackendService. An up-to-date
5045	// fingerprint must be provided in order to update the BackendService,
5046	// otherwise the request will fail with error 412 conditionNotMet.
5047	//
5048	// To see the latest fingerprint, make a get() request to retrieve a
5049	// BackendService.
5050	Fingerprint string `json:"fingerprint,omitempty"`
5051
5052	// HealthChecks: The list of URLs to the healthChecks, httpHealthChecks
5053	// (legacy), or httpsHealthChecks (legacy) resource for health checking
5054	// this backend service. Not all backend services support legacy health
5055	// checks. See  Load balancer guide. Currently, at most one health check
5056	// can be specified for each backend service. Backend services with
5057	// instance group or zonal NEG backends must have a health check.
5058	// Backend services with internet or serverless NEG backends must not
5059	// have a health check.
5060	HealthChecks []string `json:"healthChecks,omitempty"`
5061
5062	// Iap: The configurations for Identity-Aware Proxy on this resource.
5063	// Not available for Internal TCP/UDP Load Balancing and Network Load
5064	// Balancing.
5065	Iap *BackendServiceIAP `json:"iap,omitempty"`
5066
5067	// Id: [Output Only] The unique identifier for the resource. This
5068	// identifier is defined by the server.
5069	Id uint64 `json:"id,omitempty,string"`
5070
5071	// Kind: [Output Only] Type of resource. Always compute#backendService
5072	// for backend services.
5073	Kind string `json:"kind,omitempty"`
5074
5075	// LoadBalancingScheme: Specifies the load balancer type. Choose
5076	// EXTERNAL for external HTTP(S), SSL Proxy, TCP Proxy and Network Load
5077	// Balancing. Choose  INTERNAL for Internal TCP/UDP Load Balancing.
5078	// Choose  INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.
5079	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
5080	// for one type of load balancer cannot be used with another. For more
5081	// information, refer to Choosing a load balancer.
5082	//
5083	// Possible values:
5084	//   "EXTERNAL"
5085	//   "INTERNAL"
5086	//   "INTERNAL_MANAGED"
5087	//   "INTERNAL_SELF_MANAGED"
5088	//   "INVALID_LOAD_BALANCING_SCHEME"
5089	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
5090
5091	// LocalityLbPolicy: The load balancing algorithm used within the scope
5092	// of the locality. The possible values are:
5093	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
5094	// is selected in round robin order. This is the default.
5095	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
5096	// hosts and picks the host which has fewer active requests.
5097	// - RING_HASH: The ring/modulo hash load balancer implements consistent
5098	// hashing to backends. The algorithm has the property that the
5099	// addition/removal of a host from a set of N hosts only affects 1/N of
5100	// the requests.
5101	// - RANDOM: The load balancer selects a random healthy host.
5102	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
5103	// connection metadata, i.e., connections are opened to the same address
5104	// as the destination address of the incoming connection before the
5105	// connection was redirected to the load balancer.
5106	// - MAGLEV: used as a drop in replacement for the ring hash load
5107	// balancer. Maglev is not as stable as ring hash but has faster table
5108	// lookup build times and host selection times. For more information
5109	// about Maglev, see https://ai.google/research/pubs/pub44824
5110	//
5111	// This field is applicable to either:
5112	// - A regional backend service with the service_protocol set to HTTP,
5113	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5114	//
5115	// - A global backend service with the load_balancing_scheme set to
5116	// INTERNAL_SELF_MANAGED.
5117	//
5118	// If sessionAffinity is not NONE, and this field is not set to MAGLEV
5119	// or RING_HASH, session affinity settings will not take effect.
5120	//
5121	// Only the default ROUND_ROBIN policy is supported when the backend
5122	// service is referenced by a URL map that is bound to target gRPC proxy
5123	// that has validateForProxyless field set to true.
5124	//
5125	// Possible values:
5126	//   "INVALID_LB_POLICY"
5127	//   "LEAST_REQUEST"
5128	//   "MAGLEV"
5129	//   "ORIGINAL_DESTINATION"
5130	//   "RANDOM"
5131	//   "RING_HASH"
5132	//   "ROUND_ROBIN"
5133	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
5134
5135	// LogConfig: This field denotes the logging options for the load
5136	// balancer traffic served by this backend service. If logging is
5137	// enabled, logs will be exported to Stackdriver.
5138	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
5139
5140	// MaxStreamDuration: Specifies the default maximum duration (timeout)
5141	// for streams to this service. Duration is computed from the beginning
5142	// of the stream until the response has been completely processed,
5143	// including all retries. A stream that does not complete in this
5144	// duration is closed.
5145	// If not specified, there will be no timeout limit, i.e. the maximum
5146	// duration is infinite.
5147	// This value can be overridden in the PathMatcher configuration of the
5148	// UrlMap that references this backend service.
5149	// This field is only allowed when the loadBalancingScheme of the
5150	// backend service is INTERNAL_SELF_MANAGED.
5151	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
5152
5153	// Name: Name of the resource. Provided by the client when the resource
5154	// is created. The name must be 1-63 characters long, and comply with
5155	// RFC1035. Specifically, the name must be 1-63 characters long and
5156	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
5157	// the first character must be a lowercase letter, and all following
5158	// characters must be a dash, lowercase letter, or digit, except the
5159	// last character, which cannot be a dash.
5160	Name string `json:"name,omitempty"`
5161
5162	// Network: The URL of the network to which this backend service
5163	// belongs. This field can only be specified when the load balancing
5164	// scheme is set to INTERNAL.
5165	Network string `json:"network,omitempty"`
5166
5167	// OutlierDetection: Settings controlling the eviction of unhealthy
5168	// hosts from the load balancing pool for the backend service. If not
5169	// set, this feature is considered disabled.
5170	//
5171	// This field is applicable to either:
5172	// - A regional backend service with the service_protocol set to HTTP,
5173	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5174	//
5175	// - A global backend service with the load_balancing_scheme set to
5176	// INTERNAL_SELF_MANAGED.
5177	//
5178	// Not supported when the backend service is referenced by a URL map
5179	// that is bound to target gRPC proxy that has validateForProxyless
5180	// field set to true.
5181	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
5182
5183	// Port: Deprecated in favor of portName. The TCP port to connect on the
5184	// backend. The default value is 80.
5185	//
5186	// Backend services for Internal TCP/UDP Load Balancing and Network Load
5187	// Balancing require you omit port.
5188	Port int64 `json:"port,omitempty"`
5189
5190	// PortName: A named port on a backend instance group representing the
5191	// port for communication to the backend VMs in that group. Required
5192	// when the loadBalancingScheme is EXTERNAL (except Network Load
5193	// Balancing), INTERNAL_MANAGED, or  INTERNAL_SELF_MANAGED and the
5194	// backends are instance groups. The named port must be defined on each
5195	// backend instance group. This parameter has no meaning if the backends
5196	// are NEGs.
5197	//
5198	//
5199	//
5200	// Backend services for Internal TCP/UDP Load Balancing and Network Load
5201	// Balancing require you omit port_name.
5202	PortName string `json:"portName,omitempty"`
5203
5204	// Protocol: The protocol this BackendService uses to communicate with
5205	// backends.
5206	//
5207	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC.
5208	// depending on the chosen load balancer or Traffic Director
5209	// configuration. Refer to the documentation for the load balancer or
5210	// for Traffic Director for more information.
5211	//
5212	// Must be set to GRPC when the backend service is referenced by a URL
5213	// map that is bound to target gRPC proxy.
5214	//
5215	// Possible values:
5216	//   "GRPC"
5217	//   "HTTP"
5218	//   "HTTP2"
5219	//   "HTTPS"
5220	//   "SSL"
5221	//   "TCP"
5222	//   "UDP"
5223	//   "UNSPECIFIED"
5224	Protocol string `json:"protocol,omitempty"`
5225
5226	// Region: [Output Only] URL of the region where the regional backend
5227	// service resides. This field is not applicable to global backend
5228	// services. You must specify this field as part of the HTTP request
5229	// URL. It is not settable as a field in the request body.
5230	Region string `json:"region,omitempty"`
5231
5232	// SecurityPolicy: [Output Only] The resource URL for the security
5233	// policy associated with this backend service.
5234	SecurityPolicy string `json:"securityPolicy,omitempty"`
5235
5236	// SecuritySettings: This field specifies the security policy that
5237	// applies to this backend service. This field is applicable to either:
5238	//
5239	// - A regional backend service with the service_protocol set to HTTP,
5240	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5241	//
5242	// - A global backend service with the load_balancing_scheme set to
5243	// INTERNAL_SELF_MANAGED.
5244	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
5245
5246	// SelfLink: [Output Only] Server-defined URL for the resource.
5247	SelfLink string `json:"selfLink,omitempty"`
5248
5249	// SessionAffinity: Type of session affinity to use. The default is
5250	// NONE.
5251	//
5252	// When the loadBalancingScheme is EXTERNAL:
5253	//
5254	// * For Network Load Balancing, the possible values are NONE,
5255	// CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other
5256	// load balancers that use loadBalancingScheme=EXTERNAL, the possible
5257	// values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use
5258	// GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
5259	//
5260	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
5261	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
5262	//
5263	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or
5264	// INTERNAL_MANAGED, possible values are NONE, CLIENT_IP,
5265	// GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
5266	//
5267	// Not supported when the backend service is referenced by a URL map
5268	// that is bound to target gRPC proxy that has validateForProxyless
5269	// field set to true.
5270	//
5271	// Possible values:
5272	//   "CLIENT_IP"
5273	//   "CLIENT_IP_NO_DESTINATION"
5274	//   "CLIENT_IP_PORT_PROTO"
5275	//   "CLIENT_IP_PROTO"
5276	//   "GENERATED_COOKIE"
5277	//   "HEADER_FIELD"
5278	//   "HTTP_COOKIE"
5279	//   "NONE"
5280	SessionAffinity string `json:"sessionAffinity,omitempty"`
5281
5282	Subsetting *Subsetting `json:"subsetting,omitempty"`
5283
5284	// TimeoutSec: Not supported when the backend service is referenced by a
5285	// URL map that is bound to target gRPC proxy that has
5286	// validateForProxyless field set to true. Instead, use
5287	// maxStreamDuration.
5288	TimeoutSec int64 `json:"timeoutSec,omitempty"`
5289
5290	// ServerResponse contains the HTTP response code and headers from the
5291	// server.
5292	googleapi.ServerResponse `json:"-"`
5293
5294	// ForceSendFields is a list of field names (e.g.
5295	// "AffinityCookieTtlSec") to unconditionally include in API requests.
5296	// By default, fields with empty values are omitted from API requests.
5297	// However, any non-pointer, non-interface field appearing in
5298	// ForceSendFields will be sent to the server regardless of whether the
5299	// field is empty or not. This may be used to include empty fields in
5300	// Patch requests.
5301	ForceSendFields []string `json:"-"`
5302
5303	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
5304	// include in API requests with the JSON null value. By default, fields
5305	// with empty values are omitted from API requests. However, any field
5306	// with an empty value appearing in NullFields will be sent to the
5307	// server as null. It is an error if a field in this list has a
5308	// non-empty value. This may be used to include null fields in Patch
5309	// requests.
5310	NullFields []string `json:"-"`
5311}
5312
5313func (s *BackendService) MarshalJSON() ([]byte, error) {
5314	type NoMethod BackendService
5315	raw := NoMethod(*s)
5316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5317}
5318
5319// BackendServiceAggregatedList: Contains a list of
5320// BackendServicesScopedList.
5321type BackendServiceAggregatedList struct {
5322	// Id: [Output Only] Unique identifier for the resource; defined by the
5323	// server.
5324	Id string `json:"id,omitempty"`
5325
5326	// Items: A list of BackendServicesScopedList resources.
5327	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
5328
5329	// Kind: Type of resource.
5330	Kind string `json:"kind,omitempty"`
5331
5332	// NextPageToken: [Output Only] This token allows you to get the next
5333	// page of results for list requests. If the number of results is larger
5334	// than maxResults, use the nextPageToken as a value for the query
5335	// parameter pageToken in the next list request. Subsequent list
5336	// requests will have their own nextPageToken to continue paging through
5337	// the results.
5338	NextPageToken string `json:"nextPageToken,omitempty"`
5339
5340	// SelfLink: [Output Only] Server-defined URL for this resource.
5341	SelfLink string `json:"selfLink,omitempty"`
5342
5343	// Unreachables: [Output Only] Unreachable resources.
5344	Unreachables []string `json:"unreachables,omitempty"`
5345
5346	// Warning: [Output Only] Informational warning message.
5347	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
5348
5349	// ServerResponse contains the HTTP response code and headers from the
5350	// server.
5351	googleapi.ServerResponse `json:"-"`
5352
5353	// ForceSendFields is a list of field names (e.g. "Id") to
5354	// unconditionally include in API requests. By default, fields with
5355	// empty values are omitted from API requests. However, any non-pointer,
5356	// non-interface field appearing in ForceSendFields will be sent to the
5357	// server regardless of whether the field is empty or not. This may be
5358	// used to include empty fields in Patch requests.
5359	ForceSendFields []string `json:"-"`
5360
5361	// NullFields is a list of field names (e.g. "Id") to include in API
5362	// requests with the JSON null value. By default, fields with empty
5363	// values are omitted from API requests. However, any field with an
5364	// empty value appearing in NullFields will be sent to the server as
5365	// null. It is an error if a field in this list has a non-empty value.
5366	// This may be used to include null fields in Patch requests.
5367	NullFields []string `json:"-"`
5368}
5369
5370func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
5371	type NoMethod BackendServiceAggregatedList
5372	raw := NoMethod(*s)
5373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5374}
5375
5376// BackendServiceAggregatedListWarning: [Output Only] Informational
5377// warning message.
5378type BackendServiceAggregatedListWarning struct {
5379	// Code: [Output Only] A warning code, if applicable. For example,
5380	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5381	// the response.
5382	//
5383	// Possible values:
5384	//   "CLEANUP_FAILED"
5385	//   "DEPRECATED_RESOURCE_USED"
5386	//   "DEPRECATED_TYPE_USED"
5387	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5388	//   "EXPERIMENTAL_TYPE_USED"
5389	//   "EXTERNAL_API_WARNING"
5390	//   "FIELD_VALUE_OVERRIDEN"
5391	//   "INJECTED_KERNELS_DEPRECATED"
5392	//   "LARGE_DEPLOYMENT_WARNING"
5393	//   "MISSING_TYPE_DEPENDENCY"
5394	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5395	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5396	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5397	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5398	//   "NEXT_HOP_NOT_RUNNING"
5399	//   "NOT_CRITICAL_ERROR"
5400	//   "NO_RESULTS_ON_PAGE"
5401	//   "PARTIAL_SUCCESS"
5402	//   "REQUIRED_TOS_AGREEMENT"
5403	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5404	//   "RESOURCE_NOT_DELETED"
5405	//   "SCHEMA_VALIDATION_IGNORED"
5406	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5407	//   "UNDECLARED_PROPERTIES"
5408	//   "UNREACHABLE"
5409	Code string `json:"code,omitempty"`
5410
5411	// Data: [Output Only] Metadata about this warning in key: value format.
5412	// For example:
5413	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5414	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
5415
5416	// Message: [Output Only] A human-readable description of the warning
5417	// code.
5418	Message string `json:"message,omitempty"`
5419
5420	// ForceSendFields is a list of field names (e.g. "Code") to
5421	// unconditionally include in API requests. By default, fields with
5422	// empty values are omitted from API requests. However, any non-pointer,
5423	// non-interface field appearing in ForceSendFields will be sent to the
5424	// server regardless of whether the field is empty or not. This may be
5425	// used to include empty fields in Patch requests.
5426	ForceSendFields []string `json:"-"`
5427
5428	// NullFields is a list of field names (e.g. "Code") to include in API
5429	// requests with the JSON null value. By default, fields with empty
5430	// values are omitted from API requests. However, any field with an
5431	// empty value appearing in NullFields will be sent to the server as
5432	// null. It is an error if a field in this list has a non-empty value.
5433	// This may be used to include null fields in Patch requests.
5434	NullFields []string `json:"-"`
5435}
5436
5437func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
5438	type NoMethod BackendServiceAggregatedListWarning
5439	raw := NoMethod(*s)
5440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5441}
5442
5443type BackendServiceAggregatedListWarningData struct {
5444	// Key: [Output Only] A key that provides more detail on the warning
5445	// being returned. For example, for warnings where there are no results
5446	// in a list request for a particular zone, this key might be scope and
5447	// the key value might be the zone name. Other examples might be a key
5448	// indicating a deprecated resource and a suggested replacement, or a
5449	// warning about invalid network settings (for example, if an instance
5450	// attempts to perform IP forwarding but is not enabled for IP
5451	// forwarding).
5452	Key string `json:"key,omitempty"`
5453
5454	// Value: [Output Only] A warning data value corresponding to the key.
5455	Value string `json:"value,omitempty"`
5456
5457	// ForceSendFields is a list of field names (e.g. "Key") to
5458	// unconditionally include in API requests. By default, fields with
5459	// empty values are omitted from API requests. However, any non-pointer,
5460	// non-interface field appearing in ForceSendFields will be sent to the
5461	// server regardless of whether the field is empty or not. This may be
5462	// used to include empty fields in Patch requests.
5463	ForceSendFields []string `json:"-"`
5464
5465	// NullFields is a list of field names (e.g. "Key") to include in API
5466	// requests with the JSON null value. By default, fields with empty
5467	// values are omitted from API requests. However, any field with an
5468	// empty value appearing in NullFields will be sent to the server as
5469	// null. It is an error if a field in this list has a non-empty value.
5470	// This may be used to include null fields in Patch requests.
5471	NullFields []string `json:"-"`
5472}
5473
5474func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5475	type NoMethod BackendServiceAggregatedListWarningData
5476	raw := NoMethod(*s)
5477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5478}
5479
5480// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
5481// for a backend service.
5482type BackendServiceCdnPolicy struct {
5483	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
5484	// request headers are matched - e.g. Pragma or Authorization headers.
5485	// Up to 5 headers can be specified. The cache is bypassed for all
5486	// cdnPolicy.cacheMode settings.
5487	BypassCacheOnRequestHeaders []*BackendServiceCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
5488
5489	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
5490	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
5491
5492	// CacheMode: Specifies the cache setting for all responses from this
5493	// backend. The possible values are:
5494	//
5495	// USE_ORIGIN_HEADERS Requires the origin to set valid caching headers
5496	// to cache content. Responses without these headers will not be cached
5497	// at Google's edge, and will require a full trip to the origin on every
5498	// request, potentially impacting performance and increasing load on the
5499	// origin server.
5500	//
5501	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
5502	// or "no-cache" directives in Cache-Control response headers. Warning:
5503	// this may result in Cloud CDN caching private, per-user (user
5504	// identifiable) content.
5505	//
5506	// CACHE_ALL_STATIC Automatically cache static content, including common
5507	// image formats, media (video and audio), and web assets (JavaScript
5508	// and CSS). Requests and responses that are marked as uncacheable, as
5509	// well as dynamic content (including HTML), will not be cached.
5510	//
5511	// Possible values:
5512	//   "CACHE_ALL_STATIC"
5513	//   "FORCE_CACHE_ALL"
5514	//   "INVALID_CACHE_MODE"
5515	//   "USE_ORIGIN_HEADERS"
5516	CacheMode string `json:"cacheMode,omitempty"`
5517
5518	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
5519	// TTL. This is used to clamp the max-age (or Expires) value sent to the
5520	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
5521	// default_ttl is used for the response max-age directive, along with a
5522	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
5523	// client_ttl clamps the max-age from the origin (if specified), or else
5524	// sets the response max-age directive to the lesser of the client_ttl
5525	// and default_ttl, and also ensures a "public" cache-control directive
5526	// is present. If a client TTL is not specified, a default value (1
5527	// hour) will be used. The maximum allowed value is 86400s (1 day).
5528	ClientTtl int64 `json:"clientTtl,omitempty"`
5529
5530	// DefaultTtl: Specifies the default TTL for cached content served by
5531	// this origin for responses that do not have an existing valid TTL
5532	// (max-age or s-max-age). Setting a TTL of "0" means "always
5533	// revalidate". The value of defaultTTL cannot be set to a value greater
5534	// than that of maxTTL, but can be equal. When the cacheMode is set to
5535	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
5536	// responses. The maximum allowed value is 31,622,400s (1 year), noting
5537	// that infrequently accessed objects may be evicted from the cache
5538	// before the defined TTL.
5539	DefaultTtl int64 `json:"defaultTtl,omitempty"`
5540
5541	// MaxTtl: Specifies the maximum allowed TTL for cached content served
5542	// by this origin. Cache directives that attempt to set a max-age or
5543	// s-maxage higher than this, or an Expires header more than maxTTL
5544	// seconds in the future will be capped at the value of maxTTL, as if it
5545	// were the value of an s-maxage Cache-Control directive. Headers sent
5546	// to the client will not be modified. Setting a TTL of "0" means
5547	// "always revalidate". The maximum allowed value is 31,622,400s (1
5548	// year), noting that infrequently accessed objects may be evicted from
5549	// the cache before the defined TTL.
5550	MaxTtl int64 `json:"maxTtl,omitempty"`
5551
5552	// NegativeCaching: Negative caching allows per-status code TTLs to be
5553	// set, in order to apply fine-grained caching for common errors or
5554	// redirects. This can reduce the load on your origin and improve
5555	// end-user experience by reducing response latency. When the cache mode
5556	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
5557	// applies to responses with the specified response code that lack any
5558	// Cache-Control, Expires, or Pragma: no-cache directives. When the
5559	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
5560	// responses with the specified response code, and override any caching
5561	// headers. By default, Cloud CDN will apply the following default TTLs
5562	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
5563	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
5564	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
5565	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
5566	// can be overridden in negative_caching_policy.
5567	NegativeCaching bool `json:"negativeCaching,omitempty"`
5568
5569	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
5570	// code. negative_caching must be enabled to configure
5571	// negative_caching_policy. Omitting the policy and leaving
5572	// negative_caching enabled will use Cloud CDN's default cache TTLs.
5573	// Note that when specifying an explicit negative_caching_policy, you
5574	// should take care to specify a cache TTL for all response codes that
5575	// you wish to cache. Cloud CDN will not apply any default negative
5576	// caching when a policy exists.
5577	NegativeCachingPolicy []*BackendServiceCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
5578
5579	// RequestCoalescing: If true then Cloud CDN will combine multiple
5580	// concurrent cache fill requests into a small number of requests to the
5581	// origin.
5582	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
5583
5584	// ServeWhileStale: Serve existing content from the cache (if available)
5585	// when revalidating content with the origin, or when an error is
5586	// encountered when refreshing the cache. This setting defines the
5587	// default "max-stale" duration for any cached responses that do not
5588	// specify a max-stale directive. Stale responses that exceed the TTL
5589	// configured here will not be served. The default limit (max-stale) is
5590	// 86400s (1 day), which will allow stale content to be served up to
5591	// this limit beyond the max-age (or s-max-age) of a cached response.
5592	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
5593	// disable serve-while-stale.
5594	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
5595
5596	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
5597	// signed URL request will be considered fresh. After this time period,
5598	// the response will be revalidated before being served. Defaults to 1hr
5599	// (3600s). When serving responses to signed URL requests, Cloud CDN
5600	// will internally behave as though all responses from this backend had
5601	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
5602	// existing Cache-Control header. The actual headers served in responses
5603	// will not be altered.
5604	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
5605
5606	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
5607	// request URLs.
5608	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
5609
5610	// ForceSendFields is a list of field names (e.g.
5611	// "BypassCacheOnRequestHeaders") to unconditionally include in API
5612	// requests. By default, fields with empty values are omitted from API
5613	// requests. However, any non-pointer, non-interface field appearing in
5614	// ForceSendFields will be sent to the server regardless of whether the
5615	// field is empty or not. This may be used to include empty fields in
5616	// Patch requests.
5617	ForceSendFields []string `json:"-"`
5618
5619	// NullFields is a list of field names (e.g.
5620	// "BypassCacheOnRequestHeaders") to include in API requests with the
5621	// JSON null value. By default, fields with empty values are omitted
5622	// from API requests. However, any field with an empty value appearing
5623	// in NullFields will be sent to the server as null. It is an error if a
5624	// field in this list has a non-empty value. This may be used to include
5625	// null fields in Patch requests.
5626	NullFields []string `json:"-"`
5627}
5628
5629func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5630	type NoMethod BackendServiceCdnPolicy
5631	raw := NoMethod(*s)
5632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5633}
5634
5635// BackendServiceCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
5636// when the specified request headers are present, e.g. Pragma or
5637// Authorization headers. Values are case insensitive. The presence of
5638// such a header overrides the cache_mode setting.
5639type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct {
5640	// HeaderName: The header field name to match on when bypassing cache.
5641	// Values are case-insensitive.
5642	HeaderName string `json:"headerName,omitempty"`
5643
5644	// ForceSendFields is a list of field names (e.g. "HeaderName") to
5645	// unconditionally include in API requests. By default, fields with
5646	// empty values are omitted from API requests. However, any non-pointer,
5647	// non-interface field appearing in ForceSendFields will be sent to the
5648	// server regardless of whether the field is empty or not. This may be
5649	// used to include empty fields in Patch requests.
5650	ForceSendFields []string `json:"-"`
5651
5652	// NullFields is a list of field names (e.g. "HeaderName") to include in
5653	// API requests with the JSON null value. By default, fields with empty
5654	// values are omitted from API requests. However, any field with an
5655	// empty value appearing in NullFields will be sent to the server as
5656	// null. It is an error if a field in this list has a non-empty value.
5657	// This may be used to include null fields in Patch requests.
5658	NullFields []string `json:"-"`
5659}
5660
5661func (s *BackendServiceCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
5662	type NoMethod BackendServiceCdnPolicyBypassCacheOnRequestHeader
5663	raw := NoMethod(*s)
5664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5665}
5666
5667// BackendServiceCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
5668// response error codes.
5669type BackendServiceCdnPolicyNegativeCachingPolicy struct {
5670	// Code: The HTTP status code to define a TTL against. Only HTTP status
5671	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
5672	// can be specified as values, and you cannot specify a status code more
5673	// than once.
5674	Code int64 `json:"code,omitempty"`
5675
5676	// Ttl: The TTL (in seconds) for which to cache responses with the
5677	// corresponding status code. The maximum allowed value is 1800s (30
5678	// minutes), noting that infrequently accessed objects may be evicted
5679	// from the cache before the defined TTL.
5680	Ttl int64 `json:"ttl,omitempty"`
5681
5682	// ForceSendFields is a list of field names (e.g. "Code") to
5683	// unconditionally include in API requests. By default, fields with
5684	// empty values are omitted from API requests. However, any non-pointer,
5685	// non-interface field appearing in ForceSendFields will be sent to the
5686	// server regardless of whether the field is empty or not. This may be
5687	// used to include empty fields in Patch requests.
5688	ForceSendFields []string `json:"-"`
5689
5690	// NullFields is a list of field names (e.g. "Code") to include in API
5691	// requests with the JSON null value. By default, fields with empty
5692	// values are omitted from API requests. However, any field with an
5693	// empty value appearing in NullFields will be sent to the server as
5694	// null. It is an error if a field in this list has a non-empty value.
5695	// This may be used to include null fields in Patch requests.
5696	NullFields []string `json:"-"`
5697}
5698
5699func (s *BackendServiceCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
5700	type NoMethod BackendServiceCdnPolicyNegativeCachingPolicy
5701	raw := NoMethod(*s)
5702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5703}
5704
5705// BackendServiceConnectionTrackingPolicy: Connection Tracking
5706// configuration for this BackendService.
5707type BackendServiceConnectionTrackingPolicy struct {
5708	// ConnectionPersistenceOnUnhealthyBackends: Specifies connection
5709	// persistence when backends are unhealthy. The default value is
5710	// DEFAULT_FOR_PROTOCOL.
5711	//
5712	// If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on
5713	// unhealthy backends only for connection-oriented protocols (TCP and
5714	// SCTP) and only if the Tracking Mode is PER_CONNECTION (default
5715	// tracking mode) or the Session Affinity is configured for 5-tuple.
5716	// They do not persist for UDP.
5717	//
5718	// If set to NEVER_PERSIST, after a backend becomes unhealthy, the
5719	// existing connections on the unhealthy backend are never persisted on
5720	// the unhealthy backend. They are always diverted to newly selected
5721	// healthy backends (unless all backends are unhealthy).
5722	//
5723	// If set to ALWAYS_PERSIST, existing connections always persist on
5724	// unhealthy backends regardless of protocol and session affinity. It is
5725	// generally not recommended to use this mode overriding the default.
5726	//
5727	// Possible values:
5728	//   "ALWAYS_PERSIST"
5729	//   "DEFAULT_FOR_PROTOCOL"
5730	//   "NEVER_PERSIST"
5731	ConnectionPersistenceOnUnhealthyBackends string `json:"connectionPersistenceOnUnhealthyBackends,omitempty"`
5732
5733	// IdleTimeoutSec: Specifies how long to keep a Connection Tracking
5734	// entry while there is no matching traffic (in seconds).
5735	//
5736	// For L4 ILB the minimum(default) is 10 minutes and maximum is 16
5737	// hours.
5738	//
5739	// For NLB the minimum(default) is 60 seconds and the maximum is 16
5740	// hours.
5741	//
5742	// This field will be supported only if the Connection Tracking key is
5743	// less than 5-tuple.
5744	IdleTimeoutSec int64 `json:"idleTimeoutSec,omitempty"`
5745
5746	// TrackingMode: Specifies the key used for connection tracking. There
5747	// are two options:
5748	//
5749	// PER_CONNECTION: This is the default mode. The Connection Tracking is
5750	// performed as per the Connection Key (default Hash Method) for the
5751	// specific protocol.
5752	//
5753	// PER_SESSION: The Connection Tracking is performed as per the
5754	// configured Session Affinity. It matches the configured Session
5755	// Affinity.
5756	//
5757	// Possible values:
5758	//   "INVALID_TRACKING_MODE"
5759	//   "PER_CONNECTION"
5760	//   "PER_SESSION"
5761	TrackingMode string `json:"trackingMode,omitempty"`
5762
5763	// ForceSendFields is a list of field names (e.g.
5764	// "ConnectionPersistenceOnUnhealthyBackends") to unconditionally
5765	// include in API requests. By default, fields with empty values are
5766	// omitted from API requests. However, any non-pointer, non-interface
5767	// field appearing in ForceSendFields will be sent to the server
5768	// regardless of whether the field is empty or not. This may be used to
5769	// include empty fields in Patch requests.
5770	ForceSendFields []string `json:"-"`
5771
5772	// NullFields is a list of field names (e.g.
5773	// "ConnectionPersistenceOnUnhealthyBackends") to include in API
5774	// requests with the JSON null value. By default, fields with empty
5775	// values are omitted from API requests. However, any field with an
5776	// empty value appearing in NullFields will be sent to the server as
5777	// null. It is an error if a field in this list has a non-empty value.
5778	// This may be used to include null fields in Patch requests.
5779	NullFields []string `json:"-"`
5780}
5781
5782func (s *BackendServiceConnectionTrackingPolicy) MarshalJSON() ([]byte, error) {
5783	type NoMethod BackendServiceConnectionTrackingPolicy
5784	raw := NoMethod(*s)
5785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5786}
5787
5788// BackendServiceFailoverPolicy: Applicable only to Failover for
5789// Internal TCP/UDP Load Balancing and Network Load Balancing. On
5790// failover or failback, this field indicates whether connection
5791// draining will be honored. GCP has a fixed connection draining timeout
5792// of 10 minutes. A setting of true terminates existing TCP connections
5793// to the active pool during failover and failback, immediately draining
5794// traffic. A setting of false allows existing TCP connections to
5795// persist, even on VMs no longer in the active pool, for up to the
5796// duration of the connection draining timeout (10 minutes).
5797type BackendServiceFailoverPolicy struct {
5798	// DisableConnectionDrainOnFailover: This can be set to true only if the
5799	// protocol is TCP.
5800	//
5801	// The default is false.
5802	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5803
5804	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
5805	// TCP/UDP Load Balancing and Network Load Balancing, If set to true,
5806	// connections to the load balancer are dropped when all primary and all
5807	// backup backend VMs are unhealthy.If set to false, connections are
5808	// distributed among all primary VMs when all primary and all backup
5809	// backend VMs are unhealthy. The default is false.
5810	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5811
5812	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
5813	// Balancing and Network Load Balancing. The value of the field must be
5814	// in the range [0, 1]. If the value is 0, the load balancer performs a
5815	// failover when the number of healthy primary VMs equals zero. For all
5816	// other values, the load balancer performs a failover when the total
5817	// number of healthy primary VMs is less than this ratio.
5818	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5819
5820	// ForceSendFields is a list of field names (e.g.
5821	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5822	// requests. By default, fields with empty values are omitted from API
5823	// requests. However, any non-pointer, non-interface field appearing in
5824	// ForceSendFields will be sent to the server regardless of whether the
5825	// field is empty or not. This may be used to include empty fields in
5826	// Patch requests.
5827	ForceSendFields []string `json:"-"`
5828
5829	// NullFields is a list of field names (e.g.
5830	// "DisableConnectionDrainOnFailover") to include in API requests with
5831	// the JSON null value. By default, fields with empty values are omitted
5832	// from API requests. However, any field with an empty value appearing
5833	// in NullFields will be sent to the server as null. It is an error if a
5834	// field in this list has a non-empty value. This may be used to include
5835	// null fields in Patch requests.
5836	NullFields []string `json:"-"`
5837}
5838
5839func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5840	type NoMethod BackendServiceFailoverPolicy
5841	raw := NoMethod(*s)
5842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5843}
5844
5845func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5846	type NoMethod BackendServiceFailoverPolicy
5847	var s1 struct {
5848		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5849		*NoMethod
5850	}
5851	s1.NoMethod = (*NoMethod)(s)
5852	if err := json.Unmarshal(data, &s1); err != nil {
5853		return err
5854	}
5855	s.FailoverRatio = float64(s1.FailoverRatio)
5856	return nil
5857}
5858
5859type BackendServiceGroupHealth struct {
5860	// Annotations: Metadata defined as annotations on the network endpoint
5861	// group.
5862	Annotations map[string]string `json:"annotations,omitempty"`
5863
5864	// HealthStatus: Health state of the backend instances or endpoints in
5865	// requested instance or network endpoint group, determined based on
5866	// configured health checks.
5867	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5868
5869	// Kind: [Output Only] Type of resource. Always
5870	// compute#backendServiceGroupHealth for the health of backend services.
5871	Kind string `json:"kind,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. "Annotations") 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. "Annotations") to include
5886	// in API requests with the JSON null value. By default, fields with
5887	// empty values are omitted from API requests. However, any field with
5888	// an 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 *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5895	type NoMethod BackendServiceGroupHealth
5896	raw := NoMethod(*s)
5897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5898}
5899
5900// BackendServiceIAP: Identity-Aware Proxy
5901type BackendServiceIAP struct {
5902	// Enabled: Whether the serving infrastructure will authenticate and
5903	// authorize all incoming requests. If true, the oauth2ClientId and
5904	// oauth2ClientSecret fields must be non-empty.
5905	Enabled bool `json:"enabled,omitempty"`
5906
5907	// Oauth2ClientId: OAuth2 client ID to use for the authentication flow.
5908	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5909
5910	// Oauth2ClientSecret: OAuth2 client secret to use for the
5911	// authentication flow. For security reasons, this value cannot be
5912	// retrieved via the API. Instead, the SHA-256 hash of the value is
5913	// returned in the oauth2ClientSecretSha256 field.
5914	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5915
5916	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5917	// field oauth2_client_secret above.
5918	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5919
5920	// ForceSendFields is a list of field names (e.g. "Enabled") to
5921	// unconditionally include in API requests. By default, fields with
5922	// empty values are omitted from API requests. However, any non-pointer,
5923	// non-interface field appearing in ForceSendFields will be sent to the
5924	// server regardless of whether the field is empty or not. This may be
5925	// used to include empty fields in Patch requests.
5926	ForceSendFields []string `json:"-"`
5927
5928	// NullFields is a list of field names (e.g. "Enabled") to include in
5929	// API requests with the JSON null value. By default, fields with empty
5930	// values are omitted from API requests. However, any field with an
5931	// empty value appearing in NullFields will be sent to the server as
5932	// null. It is an error if a field in this list has a non-empty value.
5933	// This may be used to include null fields in Patch requests.
5934	NullFields []string `json:"-"`
5935}
5936
5937func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5938	type NoMethod BackendServiceIAP
5939	raw := NoMethod(*s)
5940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5941}
5942
5943// BackendServiceList: Contains a list of BackendService resources.
5944type BackendServiceList struct {
5945	// Id: [Output Only] Unique identifier for the resource; defined by the
5946	// server.
5947	Id string `json:"id,omitempty"`
5948
5949	// Items: A list of BackendService resources.
5950	Items []*BackendService `json:"items,omitempty"`
5951
5952	// Kind: [Output Only] Type of resource. Always
5953	// compute#backendServiceList for lists of backend services.
5954	Kind string `json:"kind,omitempty"`
5955
5956	// NextPageToken: [Output Only] This token allows you to get the next
5957	// page of results for list requests. If the number of results is larger
5958	// than maxResults, use the nextPageToken as a value for the query
5959	// parameter pageToken in the next list request. Subsequent list
5960	// requests will have their own nextPageToken to continue paging through
5961	// the results.
5962	NextPageToken string `json:"nextPageToken,omitempty"`
5963
5964	// SelfLink: [Output Only] Server-defined URL for this resource.
5965	SelfLink string `json:"selfLink,omitempty"`
5966
5967	// Warning: [Output Only] Informational warning message.
5968	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5969
5970	// ServerResponse contains the HTTP response code and headers from the
5971	// server.
5972	googleapi.ServerResponse `json:"-"`
5973
5974	// ForceSendFields is a list of field names (e.g. "Id") to
5975	// unconditionally include in API requests. By default, fields with
5976	// empty values are omitted from API requests. However, any non-pointer,
5977	// non-interface field appearing in ForceSendFields will be sent to the
5978	// server regardless of whether the field is empty or not. This may be
5979	// used to include empty fields in Patch requests.
5980	ForceSendFields []string `json:"-"`
5981
5982	// NullFields is a list of field names (e.g. "Id") to include in API
5983	// requests with the JSON null value. By default, fields with empty
5984	// values are omitted from API requests. However, any field with an
5985	// empty value appearing in NullFields will be sent to the server as
5986	// null. It is an error if a field in this list has a non-empty value.
5987	// This may be used to include null fields in Patch requests.
5988	NullFields []string `json:"-"`
5989}
5990
5991func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5992	type NoMethod BackendServiceList
5993	raw := NoMethod(*s)
5994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5995}
5996
5997// BackendServiceListWarning: [Output Only] Informational warning
5998// message.
5999type BackendServiceListWarning struct {
6000	// Code: [Output Only] A warning code, if applicable. For example,
6001	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6002	// the response.
6003	//
6004	// Possible values:
6005	//   "CLEANUP_FAILED"
6006	//   "DEPRECATED_RESOURCE_USED"
6007	//   "DEPRECATED_TYPE_USED"
6008	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6009	//   "EXPERIMENTAL_TYPE_USED"
6010	//   "EXTERNAL_API_WARNING"
6011	//   "FIELD_VALUE_OVERRIDEN"
6012	//   "INJECTED_KERNELS_DEPRECATED"
6013	//   "LARGE_DEPLOYMENT_WARNING"
6014	//   "MISSING_TYPE_DEPENDENCY"
6015	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6016	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6017	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6018	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6019	//   "NEXT_HOP_NOT_RUNNING"
6020	//   "NOT_CRITICAL_ERROR"
6021	//   "NO_RESULTS_ON_PAGE"
6022	//   "PARTIAL_SUCCESS"
6023	//   "REQUIRED_TOS_AGREEMENT"
6024	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6025	//   "RESOURCE_NOT_DELETED"
6026	//   "SCHEMA_VALIDATION_IGNORED"
6027	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6028	//   "UNDECLARED_PROPERTIES"
6029	//   "UNREACHABLE"
6030	Code string `json:"code,omitempty"`
6031
6032	// Data: [Output Only] Metadata about this warning in key: value format.
6033	// For example:
6034	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6035	Data []*BackendServiceListWarningData `json:"data,omitempty"`
6036
6037	// Message: [Output Only] A human-readable description of the warning
6038	// code.
6039	Message string `json:"message,omitempty"`
6040
6041	// ForceSendFields is a list of field names (e.g. "Code") to
6042	// unconditionally include in API requests. By default, fields with
6043	// empty values are omitted from API requests. However, any non-pointer,
6044	// non-interface field appearing in ForceSendFields will be sent to the
6045	// server regardless of whether the field is empty or not. This may be
6046	// used to include empty fields in Patch requests.
6047	ForceSendFields []string `json:"-"`
6048
6049	// NullFields is a list of field names (e.g. "Code") to include in API
6050	// requests with the JSON null value. By default, fields with empty
6051	// values are omitted from API requests. However, any field with an
6052	// empty value appearing in NullFields will be sent to the server as
6053	// null. It is an error if a field in this list has a non-empty value.
6054	// This may be used to include null fields in Patch requests.
6055	NullFields []string `json:"-"`
6056}
6057
6058func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
6059	type NoMethod BackendServiceListWarning
6060	raw := NoMethod(*s)
6061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6062}
6063
6064type BackendServiceListWarningData struct {
6065	// Key: [Output Only] A key that provides more detail on the warning
6066	// being returned. For example, for warnings where there are no results
6067	// in a list request for a particular zone, this key might be scope and
6068	// the key value might be the zone name. Other examples might be a key
6069	// indicating a deprecated resource and a suggested replacement, or a
6070	// warning about invalid network settings (for example, if an instance
6071	// attempts to perform IP forwarding but is not enabled for IP
6072	// forwarding).
6073	Key string `json:"key,omitempty"`
6074
6075	// Value: [Output Only] A warning data value corresponding to the key.
6076	Value string `json:"value,omitempty"`
6077
6078	// ForceSendFields is a list of field names (e.g. "Key") to
6079	// unconditionally include in API requests. By default, fields with
6080	// empty values are omitted from API requests. However, any non-pointer,
6081	// non-interface field appearing in ForceSendFields will be sent to the
6082	// server regardless of whether the field is empty or not. This may be
6083	// used to include empty fields in Patch requests.
6084	ForceSendFields []string `json:"-"`
6085
6086	// NullFields is a list of field names (e.g. "Key") to include in API
6087	// requests with the JSON null value. By default, fields with empty
6088	// values are omitted from API requests. However, any field with an
6089	// empty value appearing in NullFields will be sent to the server as
6090	// null. It is an error if a field in this list has a non-empty value.
6091	// This may be used to include null fields in Patch requests.
6092	NullFields []string `json:"-"`
6093}
6094
6095func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
6096	type NoMethod BackendServiceListWarningData
6097	raw := NoMethod(*s)
6098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6099}
6100
6101// BackendServiceLogConfig: The available logging options for the load
6102// balancer traffic served by this backend service.
6103type BackendServiceLogConfig struct {
6104	// Enable: This field denotes whether to enable logging for the load
6105	// balancer traffic served by this backend service.
6106	Enable bool `json:"enable,omitempty"`
6107
6108	// SampleRate: This field can only be specified if logging is enabled
6109	// for this backend service. The value of the field must be in [0, 1].
6110	// This configures the sampling rate of requests to the load balancer
6111	// where 1.0 means all logged requests are reported and 0.0 means no
6112	// logged requests are reported. The default value is 1.0.
6113	SampleRate float64 `json:"sampleRate,omitempty"`
6114
6115	// ForceSendFields is a list of field names (e.g. "Enable") to
6116	// unconditionally include in API requests. By default, fields with
6117	// empty values are omitted from API requests. However, any non-pointer,
6118	// non-interface field appearing in ForceSendFields will be sent to the
6119	// server regardless of whether the field is empty or not. This may be
6120	// used to include empty fields in Patch requests.
6121	ForceSendFields []string `json:"-"`
6122
6123	// NullFields is a list of field names (e.g. "Enable") to include in API
6124	// requests with the JSON null value. By default, fields with empty
6125	// values are omitted from API requests. However, any field with an
6126	// empty value appearing in NullFields will be sent to the server as
6127	// null. It is an error if a field in this list has a non-empty value.
6128	// This may be used to include null fields in Patch requests.
6129	NullFields []string `json:"-"`
6130}
6131
6132func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
6133	type NoMethod BackendServiceLogConfig
6134	raw := NoMethod(*s)
6135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6136}
6137
6138func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
6139	type NoMethod BackendServiceLogConfig
6140	var s1 struct {
6141		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
6142		*NoMethod
6143	}
6144	s1.NoMethod = (*NoMethod)(s)
6145	if err := json.Unmarshal(data, &s1); err != nil {
6146		return err
6147	}
6148	s.SampleRate = float64(s1.SampleRate)
6149	return nil
6150}
6151
6152type BackendServiceReference struct {
6153	BackendService string `json:"backendService,omitempty"`
6154
6155	// ForceSendFields is a list of field names (e.g. "BackendService") to
6156	// unconditionally include in API requests. By default, fields with
6157	// empty values are omitted from API requests. However, any non-pointer,
6158	// non-interface field appearing in ForceSendFields will be sent to the
6159	// server regardless of whether the field is empty or not. This may be
6160	// used to include empty fields in Patch requests.
6161	ForceSendFields []string `json:"-"`
6162
6163	// NullFields is a list of field names (e.g. "BackendService") to
6164	// include in API requests with the JSON null value. By default, fields
6165	// with empty values are omitted from API requests. However, any field
6166	// with an empty value appearing in NullFields will be sent to the
6167	// server as null. It is an error if a field in this list has a
6168	// non-empty value. This may be used to include null fields in Patch
6169	// requests.
6170	NullFields []string `json:"-"`
6171}
6172
6173func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
6174	type NoMethod BackendServiceReference
6175	raw := NoMethod(*s)
6176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6177}
6178
6179type BackendServicesScopedList struct {
6180	// BackendServices: A list of BackendServices contained in this scope.
6181	BackendServices []*BackendService `json:"backendServices,omitempty"`
6182
6183	// Warning: Informational warning which replaces the list of backend
6184	// services when the list is empty.
6185	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
6186
6187	// ForceSendFields is a list of field names (e.g. "BackendServices") to
6188	// unconditionally include in API requests. By default, fields with
6189	// empty values are omitted from API requests. However, any non-pointer,
6190	// non-interface field appearing in ForceSendFields will be sent to the
6191	// server regardless of whether the field is empty or not. This may be
6192	// used to include empty fields in Patch requests.
6193	ForceSendFields []string `json:"-"`
6194
6195	// NullFields is a list of field names (e.g. "BackendServices") to
6196	// include in API requests with the JSON null value. By default, fields
6197	// with empty values are omitted from API requests. However, any field
6198	// with an empty value appearing in NullFields will be sent to the
6199	// server as null. It is an error if a field in this list has a
6200	// non-empty value. This may be used to include null fields in Patch
6201	// requests.
6202	NullFields []string `json:"-"`
6203}
6204
6205func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
6206	type NoMethod BackendServicesScopedList
6207	raw := NoMethod(*s)
6208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6209}
6210
6211// BackendServicesScopedListWarning: Informational warning which
6212// replaces the list of backend services when the list is empty.
6213type BackendServicesScopedListWarning struct {
6214	// Code: [Output Only] A warning code, if applicable. For example,
6215	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6216	// the response.
6217	//
6218	// Possible values:
6219	//   "CLEANUP_FAILED"
6220	//   "DEPRECATED_RESOURCE_USED"
6221	//   "DEPRECATED_TYPE_USED"
6222	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6223	//   "EXPERIMENTAL_TYPE_USED"
6224	//   "EXTERNAL_API_WARNING"
6225	//   "FIELD_VALUE_OVERRIDEN"
6226	//   "INJECTED_KERNELS_DEPRECATED"
6227	//   "LARGE_DEPLOYMENT_WARNING"
6228	//   "MISSING_TYPE_DEPENDENCY"
6229	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6230	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6231	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6232	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6233	//   "NEXT_HOP_NOT_RUNNING"
6234	//   "NOT_CRITICAL_ERROR"
6235	//   "NO_RESULTS_ON_PAGE"
6236	//   "PARTIAL_SUCCESS"
6237	//   "REQUIRED_TOS_AGREEMENT"
6238	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6239	//   "RESOURCE_NOT_DELETED"
6240	//   "SCHEMA_VALIDATION_IGNORED"
6241	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6242	//   "UNDECLARED_PROPERTIES"
6243	//   "UNREACHABLE"
6244	Code string `json:"code,omitempty"`
6245
6246	// Data: [Output Only] Metadata about this warning in key: value format.
6247	// For example:
6248	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6249	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
6250
6251	// Message: [Output Only] A human-readable description of the warning
6252	// code.
6253	Message string `json:"message,omitempty"`
6254
6255	// ForceSendFields is a list of field names (e.g. "Code") to
6256	// unconditionally include in API requests. By default, fields with
6257	// empty values are omitted from API requests. However, any non-pointer,
6258	// non-interface field appearing in ForceSendFields will be sent to the
6259	// server regardless of whether the field is empty or not. This may be
6260	// used to include empty fields in Patch requests.
6261	ForceSendFields []string `json:"-"`
6262
6263	// NullFields is a list of field names (e.g. "Code") to include in API
6264	// requests with the JSON null value. By default, fields with empty
6265	// values are omitted from API requests. However, any field with an
6266	// empty value appearing in NullFields will be sent to the server as
6267	// null. It is an error if a field in this list has a non-empty value.
6268	// This may be used to include null fields in Patch requests.
6269	NullFields []string `json:"-"`
6270}
6271
6272func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
6273	type NoMethod BackendServicesScopedListWarning
6274	raw := NoMethod(*s)
6275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6276}
6277
6278type BackendServicesScopedListWarningData struct {
6279	// Key: [Output Only] A key that provides more detail on the warning
6280	// being returned. For example, for warnings where there are no results
6281	// in a list request for a particular zone, this key might be scope and
6282	// the key value might be the zone name. Other examples might be a key
6283	// indicating a deprecated resource and a suggested replacement, or a
6284	// warning about invalid network settings (for example, if an instance
6285	// attempts to perform IP forwarding but is not enabled for IP
6286	// forwarding).
6287	Key string `json:"key,omitempty"`
6288
6289	// Value: [Output Only] A warning data value corresponding to the key.
6290	Value string `json:"value,omitempty"`
6291
6292	// ForceSendFields is a list of field names (e.g. "Key") to
6293	// unconditionally include in API requests. By default, fields with
6294	// empty values are omitted from API requests. However, any non-pointer,
6295	// non-interface field appearing in ForceSendFields will be sent to the
6296	// server regardless of whether the field is empty or not. This may be
6297	// used to include empty fields in Patch requests.
6298	ForceSendFields []string `json:"-"`
6299
6300	// NullFields is a list of field names (e.g. "Key") to include in API
6301	// requests with the JSON null value. By default, fields with empty
6302	// values are omitted from API requests. However, any field with an
6303	// empty value appearing in NullFields will be sent to the server as
6304	// null. It is an error if a field in this list has a non-empty value.
6305	// This may be used to include null fields in Patch requests.
6306	NullFields []string `json:"-"`
6307}
6308
6309func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
6310	type NoMethod BackendServicesScopedListWarningData
6311	raw := NoMethod(*s)
6312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6313}
6314
6315type BfdPacket struct {
6316	// AuthenticationPresent: The Authentication Present bit of the BFD
6317	// packet. This is specified in section 4.1 of RFC5880
6318	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
6319
6320	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
6321	// packet. This is specified in section 4.1 of RFC5880
6322	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
6323
6324	// Demand: The demand bit of the BFD packet. This is specified in
6325	// section 4.1 of RFC5880
6326	Demand bool `json:"demand,omitempty"`
6327
6328	// Diagnostic: The diagnostic code specifies the local system's reason
6329	// for the last change in session state. This allows remote systems to
6330	// determine the reason that the previous session failed, for example.
6331	// These diagnostic codes are specified in section 4.1 of RFC5880
6332	//
6333	// Possible values:
6334	//   "ADMINISTRATIVELY_DOWN"
6335	//   "CONCATENATED_PATH_DOWN"
6336	//   "CONTROL_DETECTION_TIME_EXPIRED"
6337	//   "DIAGNOSTIC_UNSPECIFIED"
6338	//   "ECHO_FUNCTION_FAILED"
6339	//   "FORWARDING_PLANE_RESET"
6340	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
6341	//   "NO_DIAGNOSTIC"
6342	//   "PATH_DOWN"
6343	//   "REVERSE_CONCATENATED_PATH_DOWN"
6344	Diagnostic string `json:"diagnostic,omitempty"`
6345
6346	// Final: The Final bit of the BFD packet. This is specified in section
6347	// 4.1 of RFC5880
6348	Final bool `json:"final,omitempty"`
6349
6350	// Length: The length of the BFD Control packet in bytes. This is
6351	// specified in section 4.1 of RFC5880
6352	Length int64 `json:"length,omitempty"`
6353
6354	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the
6355	// BFD packet. This is specified in section 4.1 of RFC5880
6356	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
6357
6358	// MinRxIntervalMs: The Required Min RX Interval value in the BFD
6359	// packet. This is specified in section 4.1 of RFC5880
6360	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
6361
6362	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet.
6363	// This is specified in section 4.1 of RFC5880
6364	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
6365
6366	// Multiplier: The detection time multiplier of the BFD packet. This is
6367	// specified in section 4.1 of RFC5880
6368	Multiplier int64 `json:"multiplier,omitempty"`
6369
6370	// Multipoint: The multipoint bit of the BFD packet. This is specified
6371	// in section 4.1 of RFC5880
6372	Multipoint bool `json:"multipoint,omitempty"`
6373
6374	// MyDiscriminator: The My Discriminator value in the BFD packet. This
6375	// is specified in section 4.1 of RFC5880
6376	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
6377
6378	// Poll: The Poll bit of the BFD packet. This is specified in section
6379	// 4.1 of RFC5880
6380	Poll bool `json:"poll,omitempty"`
6381
6382	// State: The current BFD session state as seen by the transmitting
6383	// system. These states are specified in section 4.1 of RFC5880
6384	//
6385	// Possible values:
6386	//   "ADMIN_DOWN"
6387	//   "DOWN"
6388	//   "INIT"
6389	//   "STATE_UNSPECIFIED"
6390	//   "UP"
6391	State string `json:"state,omitempty"`
6392
6393	// Version: The version number of the BFD protocol, as specified in
6394	// section 4.1 of RFC5880.
6395	Version int64 `json:"version,omitempty"`
6396
6397	// YourDiscriminator: The Your Discriminator value in the BFD packet.
6398	// This is specified in section 4.1 of RFC5880
6399	YourDiscriminator int64 `json:"yourDiscriminator,omitempty"`
6400
6401	// ForceSendFields is a list of field names (e.g.
6402	// "AuthenticationPresent") to unconditionally include in API requests.
6403	// By default, fields with empty values are omitted from API requests.
6404	// However, any non-pointer, non-interface field appearing in
6405	// ForceSendFields will be sent to the server regardless of whether the
6406	// field is empty or not. This may be used to include empty fields in
6407	// Patch requests.
6408	ForceSendFields []string `json:"-"`
6409
6410	// NullFields is a list of field names (e.g. "AuthenticationPresent") to
6411	// include in API requests with the JSON null value. By default, fields
6412	// with empty values are omitted from API requests. However, any field
6413	// with an empty value appearing in NullFields will be sent to the
6414	// server as null. It is an error if a field in this list has a
6415	// non-empty value. This may be used to include null fields in Patch
6416	// requests.
6417	NullFields []string `json:"-"`
6418}
6419
6420func (s *BfdPacket) MarshalJSON() ([]byte, error) {
6421	type NoMethod BfdPacket
6422	raw := NoMethod(*s)
6423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6424}
6425
6426// BfdStatus: Next free: 15
6427type BfdStatus struct {
6428	// BfdSessionInitializationMode: The BFD session initialization mode for
6429	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
6430	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
6431	// will wait for the peer router to initiate the BFD session for this
6432	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.
6433	//
6434	// Possible values:
6435	//   "ACTIVE"
6436	//   "DISABLED"
6437	//   "PASSIVE"
6438	BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"`
6439
6440	// ConfigUpdateTimestampMicros: Unix timestamp of the most recent config
6441	// update.
6442	ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"`
6443
6444	// ControlPacketCounts: Control packet counts for the current BFD
6445	// session.
6446	ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"`
6447
6448	// ControlPacketIntervals: Inter-packet time interval statistics for
6449	// control packets.
6450	ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"`
6451
6452	// LocalDiagnostic: The diagnostic code specifies the local system's
6453	// reason for the last change in session state. This allows remote
6454	// systems to determine the reason that the previous session failed, for
6455	// example. These diagnostic codes are specified in section 4.1 of
6456	// RFC5880
6457	//
6458	// Possible values:
6459	//   "ADMINISTRATIVELY_DOWN"
6460	//   "CONCATENATED_PATH_DOWN"
6461	//   "CONTROL_DETECTION_TIME_EXPIRED"
6462	//   "DIAGNOSTIC_UNSPECIFIED"
6463	//   "ECHO_FUNCTION_FAILED"
6464	//   "FORWARDING_PLANE_RESET"
6465	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
6466	//   "NO_DIAGNOSTIC"
6467	//   "PATH_DOWN"
6468	//   "REVERSE_CONCATENATED_PATH_DOWN"
6469	LocalDiagnostic string `json:"localDiagnostic,omitempty"`
6470
6471	// LocalState: The current BFD session state as seen by the transmitting
6472	// system. These states are specified in section 4.1 of RFC5880
6473	//
6474	// Possible values:
6475	//   "ADMIN_DOWN"
6476	//   "DOWN"
6477	//   "INIT"
6478	//   "STATE_UNSPECIFIED"
6479	//   "UP"
6480	LocalState string `json:"localState,omitempty"`
6481
6482	// NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for
6483	// control packets.
6484	NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"`
6485
6486	// RxPacket: The most recent Rx control packet for this BFD session.
6487	RxPacket *BfdPacket `json:"rxPacket,omitempty"`
6488
6489	// TxPacket: The most recent Tx control packet for this BFD session.
6490	TxPacket *BfdPacket `json:"txPacket,omitempty"`
6491
6492	// UptimeMs: Session uptime in milliseconds. Value will be 0 if session
6493	// is not up.
6494	UptimeMs int64 `json:"uptimeMs,omitempty,string"`
6495
6496	// ForceSendFields is a list of field names (e.g.
6497	// "BfdSessionInitializationMode") to unconditionally include in API
6498	// requests. By default, fields with empty values are omitted from API
6499	// requests. However, any non-pointer, non-interface field appearing in
6500	// ForceSendFields will be sent to the server regardless of whether the
6501	// field is empty or not. This may be used to include empty fields in
6502	// Patch requests.
6503	ForceSendFields []string `json:"-"`
6504
6505	// NullFields is a list of field names (e.g.
6506	// "BfdSessionInitializationMode") to include in API requests with the
6507	// JSON null value. By default, fields with empty values are omitted
6508	// from API requests. However, any field with an empty value appearing
6509	// in NullFields will be sent to the server as null. It is an error if a
6510	// field in this list has a non-empty value. This may be used to include
6511	// null fields in Patch requests.
6512	NullFields []string `json:"-"`
6513}
6514
6515func (s *BfdStatus) MarshalJSON() ([]byte, error) {
6516	type NoMethod BfdStatus
6517	raw := NoMethod(*s)
6518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6519}
6520
6521type BfdStatusPacketCounts struct {
6522	// NumRx: Number of packets received since the beginning of the current
6523	// BFD session.
6524	NumRx int64 `json:"numRx,omitempty"`
6525
6526	// NumRxRejected: Number of packets received that were rejected because
6527	// of errors since the beginning of the current BFD session.
6528	NumRxRejected int64 `json:"numRxRejected,omitempty"`
6529
6530	// NumRxSuccessful: Number of packets received that were successfully
6531	// processed since the beginning of the current BFD session.
6532	NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"`
6533
6534	// NumTx: Number of packets transmitted since the beginning of the
6535	// current BFD session.
6536	NumTx int64 `json:"numTx,omitempty"`
6537
6538	// ForceSendFields is a list of field names (e.g. "NumRx") to
6539	// unconditionally include in API requests. By default, fields with
6540	// empty values are omitted from API requests. However, any non-pointer,
6541	// non-interface field appearing in ForceSendFields will be sent to the
6542	// server regardless of whether the field is empty or not. This may be
6543	// used to include empty fields in Patch requests.
6544	ForceSendFields []string `json:"-"`
6545
6546	// NullFields is a list of field names (e.g. "NumRx") to include in API
6547	// requests with the JSON null value. By default, fields with empty
6548	// values are omitted from API requests. However, any field with an
6549	// empty value appearing in NullFields will be sent to the server as
6550	// null. It is an error if a field in this list has a non-empty value.
6551	// This may be used to include null fields in Patch requests.
6552	NullFields []string `json:"-"`
6553}
6554
6555func (s *BfdStatusPacketCounts) MarshalJSON() ([]byte, error) {
6556	type NoMethod BfdStatusPacketCounts
6557	raw := NoMethod(*s)
6558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6559}
6560
6561// Binding: Associates `members` with a `role`.
6562type Binding struct {
6563	BindingId string `json:"bindingId,omitempty"`
6564
6565	// Condition: The condition that is associated with this binding.
6566	//
6567	// If the condition evaluates to `true`, then this binding applies to
6568	// the current request.
6569	//
6570	// If the condition evaluates to `false`, then this binding does not
6571	// apply to the current request. However, a different role binding might
6572	// grant the same role to one or more of the members in this
6573	// binding.
6574	//
6575	// To learn which resources support conditions in their IAM policies,
6576	// see the IAM documentation
6577	// (https://cloud.google.com/iam/help/conditions/resource-policies).
6578	Condition *Expr `json:"condition,omitempty"`
6579
6580	// Members: Specifies the identities requesting access for a Cloud
6581	// Platform resource. `members` can have the following values:
6582	//
6583	// * `allUsers`: A special identifier that represents anyone who is on
6584	// the internet; with or without a Google account.
6585	//
6586	// * `allAuthenticatedUsers`: A special identifier that represents
6587	// anyone who is authenticated with a Google account or a service
6588	// account.
6589	//
6590	// * `user:{emailid}`: An email address that represents a specific
6591	// Google account. For example, `alice@example.com` .
6592	//
6593	//
6594	//
6595	// * `serviceAccount:{emailid}`: An email address that represents a
6596	// service account. For example,
6597	// `my-other-app@appspot.gserviceaccount.com`.
6598	//
6599	// * `group:{emailid}`: An email address that represents a Google group.
6600	// For example, `admins@example.com`.
6601	//
6602	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
6603	// unique identifier) representing a user that has been recently
6604	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
6605	// If the user is recovered, this value reverts to `user:{emailid}` and
6606	// the recovered user retains the role in the binding.
6607	//
6608	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
6609	// (plus unique identifier) representing a service account that has been
6610	// recently deleted. For example,
6611	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
6612	// If the service account is undeleted, this value reverts to
6613	// `serviceAccount:{emailid}` and the undeleted service account retains
6614	// the role in the binding.
6615	//
6616	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
6617	// unique identifier) representing a Google group that has been recently
6618	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
6619	// If the group is recovered, this value reverts to `group:{emailid}`
6620	// and the recovered group retains the role in the binding.
6621	//
6622	//
6623	//
6624	// * `domain:{domain}`: The G Suite domain (primary) that represents all
6625	// the users of that domain. For example, `google.com` or `example.com`.
6626	Members []string `json:"members,omitempty"`
6627
6628	// Role: Role that is assigned to `members`. For example,
6629	// `roles/viewer`, `roles/editor`, or `roles/owner`.
6630	Role string `json:"role,omitempty"`
6631
6632	// ForceSendFields is a list of field names (e.g. "BindingId") to
6633	// unconditionally include in API requests. By default, fields with
6634	// empty values are omitted from API requests. However, any non-pointer,
6635	// non-interface field appearing in ForceSendFields will be sent to the
6636	// server regardless of whether the field is empty or not. This may be
6637	// used to include empty fields in Patch requests.
6638	ForceSendFields []string `json:"-"`
6639
6640	// NullFields is a list of field names (e.g. "BindingId") to include in
6641	// API requests with the JSON null value. By default, fields with empty
6642	// values are omitted from API requests. However, any field with an
6643	// empty value appearing in NullFields will be sent to the server as
6644	// null. It is an error if a field in this list has a non-empty value.
6645	// This may be used to include null fields in Patch requests.
6646	NullFields []string `json:"-"`
6647}
6648
6649func (s *Binding) MarshalJSON() ([]byte, error) {
6650	type NoMethod Binding
6651	raw := NoMethod(*s)
6652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6653}
6654
6655// BulkInsertInstanceResource: A transient resource used in
6656// compute.instances.bulkInsert and compute.regionInstances.bulkInsert
6657// and compute.regionInstances.recommendLocations. This resource is not
6658// persisted anywhere, it is used only for processing the requests.
6659type BulkInsertInstanceResource struct {
6660	// Count: The maximum number of instances to create.
6661	Count int64 `json:"count,omitempty,string"`
6662
6663	// InstanceProperties: The instance properties defining the VM instances
6664	// to be created. Required if sourceInstanceTemplate is not provided.
6665	InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"`
6666
6667	// LocationPolicy: Policy for chosing target zone.
6668	LocationPolicy *LocationPolicy `json:"locationPolicy,omitempty"`
6669
6670	// MinCount: The minimum number of instances to create. If no min_count
6671	// is specified then count is used as the default value. If min_count
6672	// instances cannot be created, then no instances will be created and
6673	// instances already created will be deleted.
6674	MinCount int64 `json:"minCount,omitempty,string"`
6675
6676	// NamePattern: The string pattern used for the names of the VMs. Either
6677	// name_pattern or per_instance_properties must be set. The pattern
6678	// should contain one continuous sequence of placeholder hash characters
6679	// (#) with each character corresponding to one digit of the generated
6680	// instance name. Example: name_pattern of inst-#### will generate
6681	// instance names such as inst-0001, inst-0002, ... . If there already
6682	// exist instance(s) whose names match the name pattern in the same
6683	// project and zone, then the generated instance numbers will start
6684	// after the biggest existing number. For example, if there exists an
6685	// instance with name inst-0050, then instance names generated using the
6686	// pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern
6687	// placeholder #...# can contain up to 18 characters.
6688	NamePattern string `json:"namePattern,omitempty"`
6689
6690	// PerInstanceProperties: Per-instance properties to be set on
6691	// individual instances. Keys of this map specify requested instance
6692	// names. Can be empty if name_pattern is used.
6693	PerInstanceProperties map[string]BulkInsertInstanceResourcePerInstanceProperties `json:"perInstanceProperties,omitempty"`
6694
6695	// SourceInstanceTemplate: Specifies the instance template from which to
6696	// create instances. You may combine sourceInstanceTemplate with
6697	// instanceProperties to override specific values from an existing
6698	// instance template. Bulk API follows the semantics of JSON Merge Patch
6699	// described by RFC 7396.
6700	//
6701	// It can be a full or partial URL. For example, the following are all
6702	// valid URLs to an instance template:
6703	// -
6704	// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
6705	//
6706	// - projects/project/global/instanceTemplates/instanceTemplate
6707	// - global/instanceTemplates/instanceTemplate
6708	//
6709	// This field is optional.
6710	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
6711
6712	// ForceSendFields is a list of field names (e.g. "Count") to
6713	// unconditionally include in API requests. By default, fields with
6714	// empty values are omitted from API requests. However, any non-pointer,
6715	// non-interface field appearing in ForceSendFields will be sent to the
6716	// server regardless of whether the field is empty or not. This may be
6717	// used to include empty fields in Patch requests.
6718	ForceSendFields []string `json:"-"`
6719
6720	// NullFields is a list of field names (e.g. "Count") to include in API
6721	// requests with the JSON null value. By default, fields with empty
6722	// values are omitted from API requests. However, any field with an
6723	// empty value appearing in NullFields will be sent to the server as
6724	// null. It is an error if a field in this list has a non-empty value.
6725	// This may be used to include null fields in Patch requests.
6726	NullFields []string `json:"-"`
6727}
6728
6729func (s *BulkInsertInstanceResource) MarshalJSON() ([]byte, error) {
6730	type NoMethod BulkInsertInstanceResource
6731	raw := NoMethod(*s)
6732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6733}
6734
6735// BulkInsertInstanceResourcePerInstanceProperties: Per-instance
6736// properties to be set on individual instances. To be extended in the
6737// future.
6738type BulkInsertInstanceResourcePerInstanceProperties struct {
6739	// Name: This field is only temporary. It will be removed. Do not use
6740	// it.
6741	Name string `json:"name,omitempty"`
6742
6743	// ForceSendFields is a list of field names (e.g. "Name") to
6744	// unconditionally include in API requests. By default, fields with
6745	// empty values are omitted from API requests. However, any non-pointer,
6746	// non-interface field appearing in ForceSendFields will be sent to the
6747	// server regardless of whether the field is empty or not. This may be
6748	// used to include empty fields in Patch requests.
6749	ForceSendFields []string `json:"-"`
6750
6751	// NullFields is a list of field names (e.g. "Name") to include in API
6752	// requests with the JSON null value. By default, fields with empty
6753	// values are omitted from API requests. However, any field with an
6754	// empty value appearing in NullFields will be sent to the server as
6755	// null. It is an error if a field in this list has a non-empty value.
6756	// This may be used to include null fields in Patch requests.
6757	NullFields []string `json:"-"`
6758}
6759
6760func (s *BulkInsertInstanceResourcePerInstanceProperties) MarshalJSON() ([]byte, error) {
6761	type NoMethod BulkInsertInstanceResourcePerInstanceProperties
6762	raw := NoMethod(*s)
6763	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6764}
6765
6766type CacheInvalidationRule struct {
6767	// Host: If set, this invalidation rule will only apply to requests with
6768	// a Host header matching host.
6769	Host string `json:"host,omitempty"`
6770
6771	Path string `json:"path,omitempty"`
6772
6773	// ForceSendFields is a list of field names (e.g. "Host") to
6774	// unconditionally include in API requests. By default, fields with
6775	// empty values are omitted from API requests. However, any non-pointer,
6776	// non-interface field appearing in ForceSendFields will be sent to the
6777	// server regardless of whether the field is empty or not. This may be
6778	// used to include empty fields in Patch requests.
6779	ForceSendFields []string `json:"-"`
6780
6781	// NullFields is a list of field names (e.g. "Host") to include in API
6782	// requests with the JSON null value. By default, fields with empty
6783	// values are omitted from API requests. However, any field with an
6784	// empty value appearing in NullFields will be sent to the server as
6785	// null. It is an error if a field in this list has a non-empty value.
6786	// This may be used to include null fields in Patch requests.
6787	NullFields []string `json:"-"`
6788}
6789
6790func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
6791	type NoMethod CacheInvalidationRule
6792	raw := NoMethod(*s)
6793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6794}
6795
6796// CacheKeyPolicy: Message containing what to include in the cache key
6797// for a request for Cloud CDN.
6798type CacheKeyPolicy struct {
6799	// IncludeHost: If true, requests to different hosts will be cached
6800	// separately.
6801	IncludeHost bool `json:"includeHost,omitempty"`
6802
6803	// IncludeHttpHeaders: Allows HTTP request headers (by name) to be used
6804	// in the cache key.
6805	IncludeHttpHeaders []string `json:"includeHttpHeaders,omitempty"`
6806
6807	// IncludeNamedCookies: Allows HTTP cookies (by name) to be used in the
6808	// cache key. The name=value pair will be used in the cache key Cloud
6809	// CDN generates.
6810	IncludeNamedCookies []string `json:"includeNamedCookies,omitempty"`
6811
6812	// IncludeProtocol: If true, http and https requests will be cached
6813	// separately.
6814	IncludeProtocol bool `json:"includeProtocol,omitempty"`
6815
6816	// IncludeQueryString: If true, include query string parameters in the
6817	// cache key according to query_string_whitelist and
6818	// query_string_blacklist. If neither is set, the entire query string
6819	// will be included. If false, the query string will be excluded from
6820	// the cache key entirely.
6821	IncludeQueryString bool `json:"includeQueryString,omitempty"`
6822
6823	// QueryStringBlacklist: Names of query string parameters to exclude in
6824	// cache keys. All other parameters will be included. Either specify
6825	// query_string_whitelist or query_string_blacklist, not both. '&' and
6826	// '=' will be percent encoded and not treated as delimiters.
6827	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
6828
6829	// QueryStringWhitelist: Names of query string parameters to include in
6830	// cache keys. All other parameters will be excluded. Either specify
6831	// query_string_whitelist or query_string_blacklist, not both. '&' and
6832	// '=' will be percent encoded and not treated as delimiters.
6833	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
6834
6835	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
6836	// unconditionally include in API requests. By default, fields with
6837	// empty values are omitted from API requests. However, any non-pointer,
6838	// non-interface field appearing in ForceSendFields will be sent to the
6839	// server regardless of whether the field is empty or not. This may be
6840	// used to include empty fields in Patch requests.
6841	ForceSendFields []string `json:"-"`
6842
6843	// NullFields is a list of field names (e.g. "IncludeHost") to include
6844	// in API requests with the JSON null value. By default, fields with
6845	// empty values are omitted from API requests. However, any field with
6846	// an empty value appearing in NullFields will be sent to the server as
6847	// null. It is an error if a field in this list has a non-empty value.
6848	// This may be used to include null fields in Patch requests.
6849	NullFields []string `json:"-"`
6850}
6851
6852func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
6853	type NoMethod CacheKeyPolicy
6854	raw := NoMethod(*s)
6855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6856}
6857
6858// CircuitBreakers: Settings controlling the volume of connections to a
6859// backend service.
6860type CircuitBreakers struct {
6861	// ConnectTimeout: The timeout for new network connections to hosts.
6862	ConnectTimeout *Duration `json:"connectTimeout,omitempty"`
6863
6864	// MaxConnections: Not supported when the backend service is referenced
6865	// by a URL map that is bound to target gRPC proxy that has
6866	// validateForProxyless field set to true.
6867	MaxConnections int64 `json:"maxConnections,omitempty"`
6868
6869	// MaxPendingRequests: Not supported when the backend service is
6870	// referenced by a URL map that is bound to target gRPC proxy that has
6871	// validateForProxyless field set to true.
6872	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
6873
6874	// MaxRequests: The maximum number of parallel requests that allowed to
6875	// the backend service. If not specified, there is no limit.
6876	MaxRequests int64 `json:"maxRequests,omitempty"`
6877
6878	// MaxRequestsPerConnection: Not supported when the backend service is
6879	// referenced by a URL map that is bound to target gRPC proxy that has
6880	// validateForProxyless field set to true.
6881	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
6882
6883	// MaxRetries: Not supported when the backend service is referenced by a
6884	// URL map that is bound to target gRPC proxy that has
6885	// validateForProxyless field set to true.
6886	MaxRetries int64 `json:"maxRetries,omitempty"`
6887
6888	// ForceSendFields is a list of field names (e.g. "ConnectTimeout") to
6889	// unconditionally include in API requests. By default, fields with
6890	// empty values are omitted from API requests. However, any non-pointer,
6891	// non-interface field appearing in ForceSendFields will be sent to the
6892	// server regardless of whether the field is empty or not. This may be
6893	// used to include empty fields in Patch requests.
6894	ForceSendFields []string `json:"-"`
6895
6896	// NullFields is a list of field names (e.g. "ConnectTimeout") to
6897	// include in API requests with the JSON null value. By default, fields
6898	// with empty values are omitted from API requests. However, any field
6899	// with an empty value appearing in NullFields will be sent to the
6900	// server as null. It is an error if a field in this list has a
6901	// non-empty value. This may be used to include null fields in Patch
6902	// requests.
6903	NullFields []string `json:"-"`
6904}
6905
6906func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6907	type NoMethod CircuitBreakers
6908	raw := NoMethod(*s)
6909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6910}
6911
6912// Commitment: Represents a regional Commitment resource.
6913//
6914// Creating a commitment resource means that you are purchasing a
6915// committed use contract with an explicit start and end time. You can
6916// create commitments based on vCPUs and memory usage and receive
6917// discounted rates. For full details, read Signing Up for Committed Use
6918// Discounts. (== resource_for {$api_version}.regionCommitments ==)
6919type Commitment struct {
6920	// Category: The category of the commitment. Category MACHINE specifies
6921	// commitments composed of machine resources such as VCPU or MEMORY,
6922	// listed in resources. Category LICENSE specifies commitments composed
6923	// of software licenses, listed in licenseResources. Note that only
6924	// MACHINE commitments should have a Type specified.
6925	//
6926	// Possible values:
6927	//   "CATEGORY_UNSPECIFIED"
6928	//   "LICENSE"
6929	//   "MACHINE"
6930	Category string `json:"category,omitempty"`
6931
6932	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6933	// format.
6934	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6935
6936	// Description: An optional description of this resource. Provide this
6937	// property when you create the resource.
6938	Description string `json:"description,omitempty"`
6939
6940	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6941	// format.
6942	EndTimestamp string `json:"endTimestamp,omitempty"`
6943
6944	// Id: [Output Only] The unique identifier for the resource. This
6945	// identifier is defined by the server.
6946	Id uint64 `json:"id,omitempty,string"`
6947
6948	// Kind: [Output Only] Type of the resource. Always compute#commitment
6949	// for commitments.
6950	Kind string `json:"kind,omitempty"`
6951
6952	// LicenseResource: The license specification required as part of a
6953	// license commitment.
6954	LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"`
6955
6956	// Name: Name of the resource. Provided by the client when the resource
6957	// is created. The name must be 1-63 characters long, and comply with
6958	// RFC1035. Specifically, the name must be 1-63 characters long and
6959	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6960	// the first character must be a lowercase letter, and all following
6961	// characters must be a dash, lowercase letter, or digit, except the
6962	// last character, which cannot be a dash.
6963	Name string `json:"name,omitempty"`
6964
6965	// Plan: The plan for this commitment, which determines duration and
6966	// discount rate. The currently supported plans are TWELVE_MONTH (1
6967	// year), and THIRTY_SIX_MONTH (3 years).
6968	//
6969	// Possible values:
6970	//   "INVALID"
6971	//   "THIRTY_SIX_MONTH"
6972	//   "TWELVE_MONTH"
6973	Plan string `json:"plan,omitempty"`
6974
6975	// Region: [Output Only] URL of the region where this commitment may be
6976	// used.
6977	Region string `json:"region,omitempty"`
6978
6979	// Reservations: List of reservations in this commitment.
6980	Reservations []*Reservation `json:"reservations,omitempty"`
6981
6982	// Resources: A list of commitment amounts for particular resources.
6983	// Note that VCPU and MEMORY resource commitments must occur together.
6984	Resources []*ResourceCommitment `json:"resources,omitempty"`
6985
6986	// SelfLink: [Output Only] Server-defined URL for the resource.
6987	SelfLink string `json:"selfLink,omitempty"`
6988
6989	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6990	// format.
6991	StartTimestamp string `json:"startTimestamp,omitempty"`
6992
6993	// Status: [Output Only] Status of the commitment with regards to
6994	// eventual expiration (each commitment has an end date defined). One of
6995	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6996	//
6997	// Possible values:
6998	//   "ACTIVE"
6999	//   "CREATING"
7000	//   "EXPIRED"
7001	//   "NOT_YET_ACTIVE"
7002	Status string `json:"status,omitempty"`
7003
7004	// StatusMessage: [Output Only] An optional, human-readable explanation
7005	// of the status.
7006	StatusMessage string `json:"statusMessage,omitempty"`
7007
7008	// Type: The type of commitment, which affects the discount rate and the
7009	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
7010	// will only apply to memory optimized machines. Type
7011	// ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to
7012	// accelerator optimized machines.
7013	//
7014	// Possible values:
7015	//   "ACCELERATOR_OPTIMIZED"
7016	//   "COMPUTE_OPTIMIZED"
7017	//   "GENERAL_PURPOSE"
7018	//   "GENERAL_PURPOSE_E2"
7019	//   "GENERAL_PURPOSE_N2"
7020	//   "GENERAL_PURPOSE_N2D"
7021	//   "MEMORY_OPTIMIZED"
7022	//   "TYPE_UNSPECIFIED"
7023	Type string `json:"type,omitempty"`
7024
7025	// ServerResponse contains the HTTP response code and headers from the
7026	// server.
7027	googleapi.ServerResponse `json:"-"`
7028
7029	// ForceSendFields is a list of field names (e.g. "Category") to
7030	// unconditionally include in API requests. By default, fields with
7031	// empty values are omitted from API requests. However, any non-pointer,
7032	// non-interface field appearing in ForceSendFields will be sent to the
7033	// server regardless of whether the field is empty or not. This may be
7034	// used to include empty fields in Patch requests.
7035	ForceSendFields []string `json:"-"`
7036
7037	// NullFields is a list of field names (e.g. "Category") to include in
7038	// API requests with the JSON null value. By default, fields with empty
7039	// values are omitted from API requests. However, any field with an
7040	// empty value appearing in NullFields will be sent to the server as
7041	// null. It is an error if a field in this list has a non-empty value.
7042	// This may be used to include null fields in Patch requests.
7043	NullFields []string `json:"-"`
7044}
7045
7046func (s *Commitment) MarshalJSON() ([]byte, error) {
7047	type NoMethod Commitment
7048	raw := NoMethod(*s)
7049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7050}
7051
7052type CommitmentAggregatedList struct {
7053	// Id: [Output Only] Unique identifier for the resource; defined by the
7054	// server.
7055	Id string `json:"id,omitempty"`
7056
7057	// Items: A list of CommitmentsScopedList resources.
7058	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
7059
7060	// Kind: [Output Only] Type of resource. Always
7061	// compute#commitmentAggregatedList for aggregated lists of commitments.
7062	Kind string `json:"kind,omitempty"`
7063
7064	// NextPageToken: [Output Only] This token allows you to get the next
7065	// page of results for list requests. If the number of results is larger
7066	// than maxResults, use the nextPageToken as a value for the query
7067	// parameter pageToken in the next list request. Subsequent list
7068	// requests will have their own nextPageToken to continue paging through
7069	// the results.
7070	NextPageToken string `json:"nextPageToken,omitempty"`
7071
7072	// SelfLink: [Output Only] Server-defined URL for this resource.
7073	SelfLink string `json:"selfLink,omitempty"`
7074
7075	// Unreachables: [Output Only] Unreachable resources.
7076	Unreachables []string `json:"unreachables,omitempty"`
7077
7078	// Warning: [Output Only] Informational warning message.
7079	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
7080
7081	// ServerResponse contains the HTTP response code and headers from the
7082	// server.
7083	googleapi.ServerResponse `json:"-"`
7084
7085	// ForceSendFields is a list of field names (e.g. "Id") to
7086	// unconditionally include in API requests. By default, fields with
7087	// empty values are omitted from API requests. However, any non-pointer,
7088	// non-interface field appearing in ForceSendFields will be sent to the
7089	// server regardless of whether the field is empty or not. This may be
7090	// used to include empty fields in Patch requests.
7091	ForceSendFields []string `json:"-"`
7092
7093	// NullFields is a list of field names (e.g. "Id") to include in API
7094	// requests with the JSON null value. By default, fields with empty
7095	// values are omitted from API requests. However, any field with an
7096	// empty value appearing in NullFields will be sent to the server as
7097	// null. It is an error if a field in this list has a non-empty value.
7098	// This may be used to include null fields in Patch requests.
7099	NullFields []string `json:"-"`
7100}
7101
7102func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
7103	type NoMethod CommitmentAggregatedList
7104	raw := NoMethod(*s)
7105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7106}
7107
7108// CommitmentAggregatedListWarning: [Output Only] Informational warning
7109// message.
7110type CommitmentAggregatedListWarning struct {
7111	// Code: [Output Only] A warning code, if applicable. For example,
7112	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7113	// the response.
7114	//
7115	// Possible values:
7116	//   "CLEANUP_FAILED"
7117	//   "DEPRECATED_RESOURCE_USED"
7118	//   "DEPRECATED_TYPE_USED"
7119	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7120	//   "EXPERIMENTAL_TYPE_USED"
7121	//   "EXTERNAL_API_WARNING"
7122	//   "FIELD_VALUE_OVERRIDEN"
7123	//   "INJECTED_KERNELS_DEPRECATED"
7124	//   "LARGE_DEPLOYMENT_WARNING"
7125	//   "MISSING_TYPE_DEPENDENCY"
7126	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7127	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7128	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7129	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7130	//   "NEXT_HOP_NOT_RUNNING"
7131	//   "NOT_CRITICAL_ERROR"
7132	//   "NO_RESULTS_ON_PAGE"
7133	//   "PARTIAL_SUCCESS"
7134	//   "REQUIRED_TOS_AGREEMENT"
7135	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7136	//   "RESOURCE_NOT_DELETED"
7137	//   "SCHEMA_VALIDATION_IGNORED"
7138	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7139	//   "UNDECLARED_PROPERTIES"
7140	//   "UNREACHABLE"
7141	Code string `json:"code,omitempty"`
7142
7143	// Data: [Output Only] Metadata about this warning in key: value format.
7144	// For example:
7145	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7146	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
7147
7148	// Message: [Output Only] A human-readable description of the warning
7149	// code.
7150	Message string `json:"message,omitempty"`
7151
7152	// ForceSendFields is a list of field names (e.g. "Code") to
7153	// unconditionally include in API requests. By default, fields with
7154	// empty values are omitted from API requests. However, any non-pointer,
7155	// non-interface field appearing in ForceSendFields will be sent to the
7156	// server regardless of whether the field is empty or not. This may be
7157	// used to include empty fields in Patch requests.
7158	ForceSendFields []string `json:"-"`
7159
7160	// NullFields is a list of field names (e.g. "Code") to include in API
7161	// requests with the JSON null value. By default, fields with empty
7162	// values are omitted from API requests. However, any field with an
7163	// empty value appearing in NullFields will be sent to the server as
7164	// null. It is an error if a field in this list has a non-empty value.
7165	// This may be used to include null fields in Patch requests.
7166	NullFields []string `json:"-"`
7167}
7168
7169func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
7170	type NoMethod CommitmentAggregatedListWarning
7171	raw := NoMethod(*s)
7172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7173}
7174
7175type CommitmentAggregatedListWarningData struct {
7176	// Key: [Output Only] A key that provides more detail on the warning
7177	// being returned. For example, for warnings where there are no results
7178	// in a list request for a particular zone, this key might be scope and
7179	// the key value might be the zone name. Other examples might be a key
7180	// indicating a deprecated resource and a suggested replacement, or a
7181	// warning about invalid network settings (for example, if an instance
7182	// attempts to perform IP forwarding but is not enabled for IP
7183	// forwarding).
7184	Key string `json:"key,omitempty"`
7185
7186	// Value: [Output Only] A warning data value corresponding to the key.
7187	Value string `json:"value,omitempty"`
7188
7189	// ForceSendFields is a list of field names (e.g. "Key") to
7190	// unconditionally include in API requests. By default, fields with
7191	// empty values are omitted from API requests. However, any non-pointer,
7192	// non-interface field appearing in ForceSendFields will be sent to the
7193	// server regardless of whether the field is empty or not. This may be
7194	// used to include empty fields in Patch requests.
7195	ForceSendFields []string `json:"-"`
7196
7197	// NullFields is a list of field names (e.g. "Key") to include in API
7198	// requests with the JSON null value. By default, fields with empty
7199	// values are omitted from API requests. However, any field with an
7200	// empty value appearing in NullFields will be sent to the server as
7201	// null. It is an error if a field in this list has a non-empty value.
7202	// This may be used to include null fields in Patch requests.
7203	NullFields []string `json:"-"`
7204}
7205
7206func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7207	type NoMethod CommitmentAggregatedListWarningData
7208	raw := NoMethod(*s)
7209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7210}
7211
7212// CommitmentList: Contains a list of Commitment resources.
7213type CommitmentList struct {
7214	// Id: [Output Only] Unique identifier for the resource; defined by the
7215	// server.
7216	Id string `json:"id,omitempty"`
7217
7218	// Items: A list of Commitment resources.
7219	Items []*Commitment `json:"items,omitempty"`
7220
7221	// Kind: [Output Only] Type of resource. Always compute#commitmentList
7222	// for lists of commitments.
7223	Kind string `json:"kind,omitempty"`
7224
7225	// NextPageToken: [Output Only] This token allows you to get the next
7226	// page of results for list requests. If the number of results is larger
7227	// than maxResults, use the nextPageToken as a value for the query
7228	// parameter pageToken in the next list request. Subsequent list
7229	// requests will have their own nextPageToken to continue paging through
7230	// the results.
7231	NextPageToken string `json:"nextPageToken,omitempty"`
7232
7233	// SelfLink: [Output Only] Server-defined URL for this resource.
7234	SelfLink string `json:"selfLink,omitempty"`
7235
7236	// Warning: [Output Only] Informational warning message.
7237	Warning *CommitmentListWarning `json:"warning,omitempty"`
7238
7239	// ServerResponse contains the HTTP response code and headers from the
7240	// server.
7241	googleapi.ServerResponse `json:"-"`
7242
7243	// ForceSendFields is a list of field names (e.g. "Id") to
7244	// unconditionally include in API requests. By default, fields with
7245	// empty values are omitted from API requests. However, any non-pointer,
7246	// non-interface field appearing in ForceSendFields will be sent to the
7247	// server regardless of whether the field is empty or not. This may be
7248	// used to include empty fields in Patch requests.
7249	ForceSendFields []string `json:"-"`
7250
7251	// NullFields is a list of field names (e.g. "Id") to include in API
7252	// requests with the JSON null value. By default, fields with empty
7253	// values are omitted from API requests. However, any field with an
7254	// empty value appearing in NullFields will be sent to the server as
7255	// null. It is an error if a field in this list has a non-empty value.
7256	// This may be used to include null fields in Patch requests.
7257	NullFields []string `json:"-"`
7258}
7259
7260func (s *CommitmentList) MarshalJSON() ([]byte, error) {
7261	type NoMethod CommitmentList
7262	raw := NoMethod(*s)
7263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7264}
7265
7266// CommitmentListWarning: [Output Only] Informational warning message.
7267type CommitmentListWarning struct {
7268	// Code: [Output Only] A warning code, if applicable. For example,
7269	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7270	// the response.
7271	//
7272	// Possible values:
7273	//   "CLEANUP_FAILED"
7274	//   "DEPRECATED_RESOURCE_USED"
7275	//   "DEPRECATED_TYPE_USED"
7276	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7277	//   "EXPERIMENTAL_TYPE_USED"
7278	//   "EXTERNAL_API_WARNING"
7279	//   "FIELD_VALUE_OVERRIDEN"
7280	//   "INJECTED_KERNELS_DEPRECATED"
7281	//   "LARGE_DEPLOYMENT_WARNING"
7282	//   "MISSING_TYPE_DEPENDENCY"
7283	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7284	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7285	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7286	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7287	//   "NEXT_HOP_NOT_RUNNING"
7288	//   "NOT_CRITICAL_ERROR"
7289	//   "NO_RESULTS_ON_PAGE"
7290	//   "PARTIAL_SUCCESS"
7291	//   "REQUIRED_TOS_AGREEMENT"
7292	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7293	//   "RESOURCE_NOT_DELETED"
7294	//   "SCHEMA_VALIDATION_IGNORED"
7295	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7296	//   "UNDECLARED_PROPERTIES"
7297	//   "UNREACHABLE"
7298	Code string `json:"code,omitempty"`
7299
7300	// Data: [Output Only] Metadata about this warning in key: value format.
7301	// For example:
7302	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7303	Data []*CommitmentListWarningData `json:"data,omitempty"`
7304
7305	// Message: [Output Only] A human-readable description of the warning
7306	// code.
7307	Message string `json:"message,omitempty"`
7308
7309	// ForceSendFields is a list of field names (e.g. "Code") to
7310	// unconditionally include in API requests. By default, fields with
7311	// empty values are omitted from API requests. However, any non-pointer,
7312	// non-interface field appearing in ForceSendFields will be sent to the
7313	// server regardless of whether the field is empty or not. This may be
7314	// used to include empty fields in Patch requests.
7315	ForceSendFields []string `json:"-"`
7316
7317	// NullFields is a list of field names (e.g. "Code") to include in API
7318	// requests with the JSON null value. By default, fields with empty
7319	// values are omitted from API requests. However, any field with an
7320	// empty value appearing in NullFields will be sent to the server as
7321	// null. It is an error if a field in this list has a non-empty value.
7322	// This may be used to include null fields in Patch requests.
7323	NullFields []string `json:"-"`
7324}
7325
7326func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
7327	type NoMethod CommitmentListWarning
7328	raw := NoMethod(*s)
7329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7330}
7331
7332type CommitmentListWarningData struct {
7333	// Key: [Output Only] A key that provides more detail on the warning
7334	// being returned. For example, for warnings where there are no results
7335	// in a list request for a particular zone, this key might be scope and
7336	// the key value might be the zone name. Other examples might be a key
7337	// indicating a deprecated resource and a suggested replacement, or a
7338	// warning about invalid network settings (for example, if an instance
7339	// attempts to perform IP forwarding but is not enabled for IP
7340	// forwarding).
7341	Key string `json:"key,omitempty"`
7342
7343	// Value: [Output Only] A warning data value corresponding to the key.
7344	Value string `json:"value,omitempty"`
7345
7346	// ForceSendFields is a list of field names (e.g. "Key") to
7347	// unconditionally include in API requests. By default, fields with
7348	// empty values are omitted from API requests. However, any non-pointer,
7349	// non-interface field appearing in ForceSendFields will be sent to the
7350	// server regardless of whether the field is empty or not. This may be
7351	// used to include empty fields in Patch requests.
7352	ForceSendFields []string `json:"-"`
7353
7354	// NullFields is a list of field names (e.g. "Key") to include in API
7355	// requests with the JSON null value. By default, fields with empty
7356	// values are omitted from API requests. However, any field with an
7357	// empty value appearing in NullFields will be sent to the server as
7358	// null. It is an error if a field in this list has a non-empty value.
7359	// This may be used to include null fields in Patch requests.
7360	NullFields []string `json:"-"`
7361}
7362
7363func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
7364	type NoMethod CommitmentListWarningData
7365	raw := NoMethod(*s)
7366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7367}
7368
7369type CommitmentsScopedList struct {
7370	// Commitments: [Output Only] A list of commitments contained in this
7371	// scope.
7372	Commitments []*Commitment `json:"commitments,omitempty"`
7373
7374	// Warning: [Output Only] Informational warning which replaces the list
7375	// of commitments when the list is empty.
7376	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
7377
7378	// ForceSendFields is a list of field names (e.g. "Commitments") to
7379	// unconditionally include in API requests. By default, fields with
7380	// empty values are omitted from API requests. However, any non-pointer,
7381	// non-interface field appearing in ForceSendFields will be sent to the
7382	// server regardless of whether the field is empty or not. This may be
7383	// used to include empty fields in Patch requests.
7384	ForceSendFields []string `json:"-"`
7385
7386	// NullFields is a list of field names (e.g. "Commitments") to include
7387	// in API requests with the JSON null value. By default, fields with
7388	// empty values are omitted from API requests. However, any field with
7389	// an empty value appearing in NullFields will be sent to the server as
7390	// null. It is an error if a field in this list has a non-empty value.
7391	// This may be used to include null fields in Patch requests.
7392	NullFields []string `json:"-"`
7393}
7394
7395func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
7396	type NoMethod CommitmentsScopedList
7397	raw := NoMethod(*s)
7398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7399}
7400
7401// CommitmentsScopedListWarning: [Output Only] Informational warning
7402// which replaces the list of commitments when the list is empty.
7403type CommitmentsScopedListWarning struct {
7404	// Code: [Output Only] A warning code, if applicable. For example,
7405	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7406	// the response.
7407	//
7408	// Possible values:
7409	//   "CLEANUP_FAILED"
7410	//   "DEPRECATED_RESOURCE_USED"
7411	//   "DEPRECATED_TYPE_USED"
7412	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7413	//   "EXPERIMENTAL_TYPE_USED"
7414	//   "EXTERNAL_API_WARNING"
7415	//   "FIELD_VALUE_OVERRIDEN"
7416	//   "INJECTED_KERNELS_DEPRECATED"
7417	//   "LARGE_DEPLOYMENT_WARNING"
7418	//   "MISSING_TYPE_DEPENDENCY"
7419	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7420	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7421	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7422	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7423	//   "NEXT_HOP_NOT_RUNNING"
7424	//   "NOT_CRITICAL_ERROR"
7425	//   "NO_RESULTS_ON_PAGE"
7426	//   "PARTIAL_SUCCESS"
7427	//   "REQUIRED_TOS_AGREEMENT"
7428	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7429	//   "RESOURCE_NOT_DELETED"
7430	//   "SCHEMA_VALIDATION_IGNORED"
7431	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7432	//   "UNDECLARED_PROPERTIES"
7433	//   "UNREACHABLE"
7434	Code string `json:"code,omitempty"`
7435
7436	// Data: [Output Only] Metadata about this warning in key: value format.
7437	// For example:
7438	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7439	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
7440
7441	// Message: [Output Only] A human-readable description of the warning
7442	// code.
7443	Message string `json:"message,omitempty"`
7444
7445	// ForceSendFields is a list of field names (e.g. "Code") to
7446	// unconditionally include in API requests. By default, fields with
7447	// empty values are omitted from API requests. However, any non-pointer,
7448	// non-interface field appearing in ForceSendFields will be sent to the
7449	// server regardless of whether the field is empty or not. This may be
7450	// used to include empty fields in Patch requests.
7451	ForceSendFields []string `json:"-"`
7452
7453	// NullFields is a list of field names (e.g. "Code") to include in API
7454	// requests with the JSON null value. By default, fields with empty
7455	// values are omitted from API requests. However, any field with an
7456	// empty value appearing in NullFields will be sent to the server as
7457	// null. It is an error if a field in this list has a non-empty value.
7458	// This may be used to include null fields in Patch requests.
7459	NullFields []string `json:"-"`
7460}
7461
7462func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
7463	type NoMethod CommitmentsScopedListWarning
7464	raw := NoMethod(*s)
7465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7466}
7467
7468type CommitmentsScopedListWarningData struct {
7469	// Key: [Output Only] A key that provides more detail on the warning
7470	// being returned. For example, for warnings where there are no results
7471	// in a list request for a particular zone, this key might be scope and
7472	// the key value might be the zone name. Other examples might be a key
7473	// indicating a deprecated resource and a suggested replacement, or a
7474	// warning about invalid network settings (for example, if an instance
7475	// attempts to perform IP forwarding but is not enabled for IP
7476	// forwarding).
7477	Key string `json:"key,omitempty"`
7478
7479	// Value: [Output Only] A warning data value corresponding to the key.
7480	Value string `json:"value,omitempty"`
7481
7482	// ForceSendFields is a list of field names (e.g. "Key") to
7483	// unconditionally include in API requests. By default, fields with
7484	// empty values are omitted from API requests. However, any non-pointer,
7485	// non-interface field appearing in ForceSendFields will be sent to the
7486	// server regardless of whether the field is empty or not. This may be
7487	// used to include empty fields in Patch requests.
7488	ForceSendFields []string `json:"-"`
7489
7490	// NullFields is a list of field names (e.g. "Key") to include in API
7491	// requests with the JSON null value. By default, fields with empty
7492	// values are omitted from API requests. However, any field with an
7493	// empty value appearing in NullFields will be sent to the server as
7494	// null. It is an error if a field in this list has a non-empty value.
7495	// This may be used to include null fields in Patch requests.
7496	NullFields []string `json:"-"`
7497}
7498
7499func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
7500	type NoMethod CommitmentsScopedListWarningData
7501	raw := NoMethod(*s)
7502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7503}
7504
7505// Condition: A condition to be met.
7506type Condition struct {
7507	// Iam: Trusted attributes supplied by the IAM system.
7508	//
7509	// Possible values:
7510	//   "APPROVER"
7511	//   "ATTRIBUTION"
7512	//   "AUTHORITY"
7513	//   "CREDENTIALS_TYPE"
7514	//   "CREDS_ASSERTION"
7515	//   "JUSTIFICATION_TYPE"
7516	//   "NO_ATTR"
7517	//   "SECURITY_REALM"
7518	Iam string `json:"iam,omitempty"`
7519
7520	// Op: An operator to apply the subject with.
7521	//
7522	// Possible values:
7523	//   "DISCHARGED"
7524	//   "EQUALS"
7525	//   "IN"
7526	//   "NOT_EQUALS"
7527	//   "NOT_IN"
7528	//   "NO_OP"
7529	Op string `json:"op,omitempty"`
7530
7531	// Svc: Trusted attributes discharged by the service.
7532	Svc string `json:"svc,omitempty"`
7533
7534	// Sys: Trusted attributes supplied by any service that owns resources
7535	// and uses the IAM system for access control.
7536	//
7537	// Possible values:
7538	//   "IP"
7539	//   "NAME"
7540	//   "NO_ATTR"
7541	//   "REGION"
7542	//   "SERVICE"
7543	Sys string `json:"sys,omitempty"`
7544
7545	// Values: The objects of the condition.
7546	Values []string `json:"values,omitempty"`
7547
7548	// ForceSendFields is a list of field names (e.g. "Iam") to
7549	// unconditionally include in API requests. By default, fields with
7550	// empty values are omitted from API requests. However, any non-pointer,
7551	// non-interface field appearing in ForceSendFields will be sent to the
7552	// server regardless of whether the field is empty or not. This may be
7553	// used to include empty fields in Patch requests.
7554	ForceSendFields []string `json:"-"`
7555
7556	// NullFields is a list of field names (e.g. "Iam") to include in API
7557	// requests with the JSON null value. By default, fields with empty
7558	// values are omitted from API requests. However, any field with an
7559	// empty value appearing in NullFields will be sent to the server as
7560	// null. It is an error if a field in this list has a non-empty value.
7561	// This may be used to include null fields in Patch requests.
7562	NullFields []string `json:"-"`
7563}
7564
7565func (s *Condition) MarshalJSON() ([]byte, error) {
7566	type NoMethod Condition
7567	raw := NoMethod(*s)
7568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7569}
7570
7571// ConfidentialInstanceConfig: A set of Confidential Instance options.
7572type ConfidentialInstanceConfig struct {
7573	// EnableConfidentialCompute: Defines whether the instance should have
7574	// confidential compute enabled.
7575	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
7576
7577	// ForceSendFields is a list of field names (e.g.
7578	// "EnableConfidentialCompute") to unconditionally include in API
7579	// requests. By default, fields with empty values are omitted from API
7580	// requests. However, any non-pointer, non-interface field appearing in
7581	// ForceSendFields will be sent to the server regardless of whether the
7582	// field is empty or not. This may be used to include empty fields in
7583	// Patch requests.
7584	ForceSendFields []string `json:"-"`
7585
7586	// NullFields is a list of field names (e.g.
7587	// "EnableConfidentialCompute") to include in API requests with the JSON
7588	// null value. By default, fields with empty values are omitted from API
7589	// requests. However, any field with an empty value appearing in
7590	// NullFields will be sent to the server as null. It is an error if a
7591	// field in this list has a non-empty value. This may be used to include
7592	// null fields in Patch requests.
7593	NullFields []string `json:"-"`
7594}
7595
7596func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
7597	type NoMethod ConfidentialInstanceConfig
7598	raw := NoMethod(*s)
7599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7600}
7601
7602// ConnectionDraining: Message containing connection draining
7603// configuration.
7604type ConnectionDraining struct {
7605	// DrainingTimeoutSec: Configures a duration timeout for existing
7606	// requests on a removed backend instance. For supported load balancers
7607	// and protocols, as described in Enabling connection draining.
7608	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
7609
7610	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
7611	// to unconditionally include in API requests. By default, fields with
7612	// empty values are omitted from API requests. However, any non-pointer,
7613	// non-interface field appearing in ForceSendFields will be sent to the
7614	// server regardless of whether the field is empty or not. This may be
7615	// used to include empty fields in Patch requests.
7616	ForceSendFields []string `json:"-"`
7617
7618	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
7619	// include in API requests with the JSON null value. By default, fields
7620	// with empty values are omitted from API requests. However, any field
7621	// with an empty value appearing in NullFields will be sent to the
7622	// server as null. It is an error if a field in this list has a
7623	// non-empty value. This may be used to include null fields in Patch
7624	// requests.
7625	NullFields []string `json:"-"`
7626}
7627
7628func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
7629	type NoMethod ConnectionDraining
7630	raw := NoMethod(*s)
7631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7632}
7633
7634// ConsistentHashLoadBalancerSettings: This message defines settings for
7635// a consistent hash style load balancer.
7636type ConsistentHashLoadBalancerSettings struct {
7637	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
7638	// cookie that will be used as the hash key for the consistent hash load
7639	// balancer. If the cookie is not present, it will be generated. This
7640	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
7641	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
7642
7643	// HttpHeaderName: The hash based on the value of the specified header
7644	// field. This field is applicable if the sessionAffinity is set to
7645	// HEADER_FIELD.
7646	HttpHeaderName string `json:"httpHeaderName,omitempty"`
7647
7648	// MinimumRingSize: The minimum number of virtual nodes to use for the
7649	// hash ring. Defaults to 1024. Larger ring sizes result in more
7650	// granular load distributions. If the number of hosts in the load
7651	// balancing pool is larger than the ring size, each host will be
7652	// assigned a single virtual node.
7653	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
7654
7655	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
7656	// unconditionally include in API requests. By default, fields with
7657	// empty values are omitted from API requests. However, any non-pointer,
7658	// non-interface field appearing in ForceSendFields will be sent to the
7659	// server regardless of whether the field is empty or not. This may be
7660	// used to include empty fields in Patch requests.
7661	ForceSendFields []string `json:"-"`
7662
7663	// NullFields is a list of field names (e.g. "HttpCookie") to include in
7664	// API requests with the JSON null value. By default, fields with empty
7665	// values are omitted from API requests. However, any field with an
7666	// empty value appearing in NullFields will be sent to the server as
7667	// null. It is an error if a field in this list has a non-empty value.
7668	// This may be used to include null fields in Patch requests.
7669	NullFields []string `json:"-"`
7670}
7671
7672func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
7673	type NoMethod ConsistentHashLoadBalancerSettings
7674	raw := NoMethod(*s)
7675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7676}
7677
7678// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
7679// the HTTP Cookie on which the hash function is based for load
7680// balancing policies that use a consistent hash.
7681type ConsistentHashLoadBalancerSettingsHttpCookie struct {
7682	// Name: Name of the cookie.
7683	Name string `json:"name,omitempty"`
7684
7685	// Path: Path to set for the cookie.
7686	Path string `json:"path,omitempty"`
7687
7688	// Ttl: Lifetime of the cookie.
7689	Ttl *Duration `json:"ttl,omitempty"`
7690
7691	// ForceSendFields is a list of field names (e.g. "Name") to
7692	// unconditionally include in API requests. By default, fields with
7693	// empty values are omitted from API requests. However, any non-pointer,
7694	// non-interface field appearing in ForceSendFields will be sent to the
7695	// server regardless of whether the field is empty or not. This may be
7696	// used to include empty fields in Patch requests.
7697	ForceSendFields []string `json:"-"`
7698
7699	// NullFields is a list of field names (e.g. "Name") to include in API
7700	// requests with the JSON null value. By default, fields with empty
7701	// values are omitted from API requests. However, any field with an
7702	// empty value appearing in NullFields will be sent to the server as
7703	// null. It is an error if a field in this list has a non-empty value.
7704	// This may be used to include null fields in Patch requests.
7705	NullFields []string `json:"-"`
7706}
7707
7708func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
7709	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
7710	raw := NoMethod(*s)
7711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7712}
7713
7714// CorsPolicy: The specification for allowing client side cross-origin
7715// requests. Please see W3C Recommendation for Cross Origin Resource
7716// Sharing
7717type CorsPolicy struct {
7718	// AllowCredentials: In response to a preflight request, setting this to
7719	// true indicates that the actual request can include user credentials.
7720	// This translates to the Access-Control-Allow-Credentials
7721	// header.
7722	// Default is false.
7723	AllowCredentials bool `json:"allowCredentials,omitempty"`
7724
7725	// AllowHeaders: Specifies the content for the
7726	// Access-Control-Allow-Headers header.
7727	AllowHeaders []string `json:"allowHeaders,omitempty"`
7728
7729	// AllowMethods: Specifies the content for the
7730	// Access-Control-Allow-Methods header.
7731	AllowMethods []string `json:"allowMethods,omitempty"`
7732
7733	// AllowOriginRegexes: Specifies the regualar expression patterns that
7734	// match allowed origins. For regular expression grammar please see
7735	// github.com/google/re2/wiki/Syntax
7736	// An origin is allowed if it matches either an item in allowOrigins or
7737	// an item in allowOriginRegexes.
7738	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
7739
7740	// AllowOrigins: Specifies the list of origins that will be allowed to
7741	// do CORS requests.
7742	// An origin is allowed if it matches either an item in allowOrigins or
7743	// an item in allowOriginRegexes.
7744	AllowOrigins []string `json:"allowOrigins,omitempty"`
7745
7746	// Disabled: If true, specifies the CORS policy is disabled. The default
7747	// value of false, which indicates that the CORS policy is in effect.
7748	Disabled bool `json:"disabled,omitempty"`
7749
7750	// ExposeHeaders: Specifies the content for the
7751	// Access-Control-Expose-Headers header.
7752	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
7753
7754	// MaxAge: Specifies how long results of a preflight request can be
7755	// cached in seconds. This translates to the Access-Control-Max-Age
7756	// header.
7757	MaxAge int64 `json:"maxAge,omitempty"`
7758
7759	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
7760	// unconditionally include in API requests. By default, fields with
7761	// empty values are omitted from API requests. However, any non-pointer,
7762	// non-interface field appearing in ForceSendFields will be sent to the
7763	// server regardless of whether the field is empty or not. This may be
7764	// used to include empty fields in Patch requests.
7765	ForceSendFields []string `json:"-"`
7766
7767	// NullFields is a list of field names (e.g. "AllowCredentials") to
7768	// include in API requests with the JSON null value. By default, fields
7769	// with empty values are omitted from API requests. However, any field
7770	// with an empty value appearing in NullFields will be sent to the
7771	// server as null. It is an error if a field in this list has a
7772	// non-empty value. This may be used to include null fields in Patch
7773	// requests.
7774	NullFields []string `json:"-"`
7775}
7776
7777func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
7778	type NoMethod CorsPolicy
7779	raw := NoMethod(*s)
7780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7781}
7782
7783type CustomerEncryptionKey struct {
7784	// KmsKeyName: The name of the encryption key that is stored in Google
7785	// Cloud KMS.
7786	KmsKeyName string `json:"kmsKeyName,omitempty"`
7787
7788	// KmsKeyServiceAccount: The service account being used for the
7789	// encryption request for the given KMS key. If absent, the Compute
7790	// Engine default service account is used.
7791	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
7792
7793	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
7794	// in RFC 4648 base64 to either encrypt or decrypt this resource.
7795	RawKey string `json:"rawKey,omitempty"`
7796
7797	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
7798	// 2048-bit customer-supplied encryption key to either encrypt or
7799	// decrypt this resource.
7800	//
7801	// The key must meet the following requirements before you can provide
7802	// it to Compute Engine:
7803	// - The key is wrapped using a RSA public key certificate provided by
7804	// Google.
7805	// - After being wrapped, the key must be encoded in RFC 4648 base64
7806	// encoding.  Gets the RSA public key certificate provided by Google
7807	// at:
7808	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
7809	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
7810
7811	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
7812	// customer-supplied encryption key that protects this resource.
7813	Sha256 string `json:"sha256,omitempty"`
7814
7815	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
7816	// unconditionally include in API requests. By default, fields with
7817	// empty values are omitted from API requests. However, any non-pointer,
7818	// non-interface field appearing in ForceSendFields will be sent to the
7819	// server regardless of whether the field is empty or not. This may be
7820	// used to include empty fields in Patch requests.
7821	ForceSendFields []string `json:"-"`
7822
7823	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
7824	// API requests with the JSON null value. By default, fields with empty
7825	// values are omitted from API requests. However, any field with an
7826	// empty value appearing in NullFields will be sent to the server as
7827	// null. It is an error if a field in this list has a non-empty value.
7828	// This may be used to include null fields in Patch requests.
7829	NullFields []string `json:"-"`
7830}
7831
7832func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
7833	type NoMethod CustomerEncryptionKey
7834	raw := NoMethod(*s)
7835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7836}
7837
7838type CustomerEncryptionKeyProtectedDisk struct {
7839	// DiskEncryptionKey: Decrypts data associated with the disk with a
7840	// customer-supplied encryption key.
7841	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7842
7843	// Source: Specifies a valid partial or full URL to an existing
7844	// Persistent Disk resource. This field is only applicable for
7845	// persistent disks.
7846	Source string `json:"source,omitempty"`
7847
7848	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
7849	// to unconditionally include in API requests. By default, fields with
7850	// empty values are omitted from API requests. However, any non-pointer,
7851	// non-interface field appearing in ForceSendFields will be sent to the
7852	// server regardless of whether the field is empty or not. This may be
7853	// used to include empty fields in Patch requests.
7854	ForceSendFields []string `json:"-"`
7855
7856	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
7857	// include in API requests with the JSON null value. By default, fields
7858	// with empty values are omitted from API requests. However, any field
7859	// with an empty value appearing in NullFields will be sent to the
7860	// server as null. It is an error if a field in this list has a
7861	// non-empty value. This may be used to include null fields in Patch
7862	// requests.
7863	NullFields []string `json:"-"`
7864}
7865
7866func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
7867	type NoMethod CustomerEncryptionKeyProtectedDisk
7868	raw := NoMethod(*s)
7869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7870}
7871
7872// DeprecationStatus: Deprecation status for a public resource.
7873type DeprecationStatus struct {
7874	// Deleted: An optional RFC3339 timestamp on or after which the state of
7875	// this resource is intended to change to DELETED. This is only
7876	// informational and the status will not change unless the client
7877	// explicitly changes it.
7878	Deleted string `json:"deleted,omitempty"`
7879
7880	// Deprecated -- An optional RFC3339 timestamp on or after which the
7881	// state of this resource is intended to change to DEPRECATED. This is
7882	// only informational and the status will not change unless the client
7883	// explicitly changes it.
7884	Deprecated string `json:"deprecated,omitempty"`
7885
7886	// Obsolete: An optional RFC3339 timestamp on or after which the state
7887	// of this resource is intended to change to OBSOLETE. This is only
7888	// informational and the status will not change unless the client
7889	// explicitly changes it.
7890	Obsolete string `json:"obsolete,omitempty"`
7891
7892	// Replacement: The URL of the suggested replacement for a deprecated
7893	// resource. The suggested replacement resource must be the same kind of
7894	// resource as the deprecated resource.
7895	Replacement string `json:"replacement,omitempty"`
7896
7897	// State: The deprecation state of this resource. This can be ACTIVE,
7898	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
7899	// end of life date for an image, can use ACTIVE. Operations which
7900	// create a new resource using a DEPRECATED resource will return
7901	// successfully, but with a warning indicating the deprecated resource
7902	// and recommending its replacement. Operations which use OBSOLETE or
7903	// DELETED resources will be rejected and result in an error.
7904	//
7905	// Possible values:
7906	//   "ACTIVE"
7907	//   "DELETED"
7908	//   "DEPRECATED"
7909	//   "OBSOLETE"
7910	State string `json:"state,omitempty"`
7911
7912	// ForceSendFields is a list of field names (e.g. "Deleted") to
7913	// unconditionally include in API requests. By default, fields with
7914	// empty values are omitted from API requests. However, any non-pointer,
7915	// non-interface field appearing in ForceSendFields will be sent to the
7916	// server regardless of whether the field is empty or not. This may be
7917	// used to include empty fields in Patch requests.
7918	ForceSendFields []string `json:"-"`
7919
7920	// NullFields is a list of field names (e.g. "Deleted") to include in
7921	// API requests with the JSON null value. By default, fields with empty
7922	// values are omitted from API requests. However, any field with an
7923	// empty value appearing in NullFields will be sent to the server as
7924	// null. It is an error if a field in this list has a non-empty value.
7925	// This may be used to include null fields in Patch requests.
7926	NullFields []string `json:"-"`
7927}
7928
7929func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
7930	type NoMethod DeprecationStatus
7931	raw := NoMethod(*s)
7932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7933}
7934
7935// Disk: Represents a Persistent Disk resource.
7936//
7937// Google Compute Engine has two Disk resources:
7938//
7939// * Zonal (/compute/docs/reference/rest/{$api_version}/disks) *
7940// Regional
7941// (/compute/docs/reference/rest/{$api_version}/regionDisks)
7942//
7943// Persistent disks are required for running your VM instances. Create
7944// both boot and non-boot (data) persistent disks. For more information,
7945// read Persistent Disks. For more storage options, read Storage
7946// options.
7947//
7948// The disks resource represents a zonal persistent disk. For more
7949// information, read Zonal persistent disks.
7950//
7951// The regionDisks resource represents a regional persistent disk. For
7952// more information, read  Regional resources. (== resource_for
7953// {$api_version}.disks ==) (== resource_for {$api_version}.regionDisks
7954// ==)
7955type Disk struct {
7956	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7957	// format.
7958	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7959
7960	// Description: An optional description of this resource. Provide this
7961	// property when you create the resource.
7962	Description string `json:"description,omitempty"`
7963
7964	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7965	// encryption key.
7966	//
7967	// After you encrypt a disk with a customer-supplied key, you must
7968	// provide the same key if you use the disk later (e.g. to create a disk
7969	// snapshot, to create a disk image, to create a machine image, or to
7970	// attach the disk to a virtual machine).
7971	//
7972	// Customer-supplied encryption keys do not protect access to metadata
7973	// of the disk.
7974	//
7975	// If you do not provide an encryption key when creating the disk, then
7976	// the disk will be encrypted using an automatically generated key and
7977	// you do not need to provide a key to use the disk later.
7978	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7979
7980	// EraseWindowsVssSignature: Specifies whether the disk restored from a
7981	// source snapshot should erase Windows specific VSS signature.
7982	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
7983
7984	// GuestOsFeatures: A list of features to enable on the guest operating
7985	// system. Applicable only for bootable images. Read  Enabling guest
7986	// operating system features to see a list of available options.
7987	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7988
7989	// Id: [Output Only] The unique identifier for the resource. This
7990	// identifier is defined by the server.
7991	Id uint64 `json:"id,omitempty,string"`
7992
7993	// Interface: Specifies the disk interface to use for attaching this
7994	// disk, which is either SCSI or NVME. The default is SCSI.
7995	//
7996	// Possible values:
7997	//   "NVME"
7998	//   "SCSI"
7999	//   "UNSPECIFIED"
8000	Interface string `json:"interface,omitempty"`
8001
8002	// Kind: [Output Only] Type of the resource. Always compute#disk for
8003	// disks.
8004	Kind string `json:"kind,omitempty"`
8005
8006	// LabelFingerprint: A fingerprint for the labels being applied to this
8007	// disk, which is essentially a hash of the labels set used for
8008	// optimistic locking. The fingerprint is initially generated by Compute
8009	// Engine and changes after every request to modify or update labels.
8010	// You must always provide an up-to-date fingerprint hash in order to
8011	// update or change labels, otherwise the request will fail with error
8012	// 412 conditionNotMet.
8013	//
8014	// To see the latest fingerprint, make a get() request to retrieve a
8015	// disk.
8016	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8017
8018	// Labels: Labels to apply to this disk. These can be later modified by
8019	// the setLabels method.
8020	Labels map[string]string `json:"labels,omitempty"`
8021
8022	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
8023	// text format.
8024	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
8025
8026	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
8027	// text format.
8028	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
8029
8030	// LicenseCodes: Integer license codes indicating which licenses are
8031	// attached to this disk.
8032	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
8033
8034	// Licenses: A list of publicly visible licenses. Reserved for Google's
8035	// use.
8036	Licenses []string `json:"licenses,omitempty"`
8037
8038	// LocationHint: An opaque location hint used to place the disk close to
8039	// other resources. This field is for use by internal tools that use the
8040	// public API.
8041	LocationHint string `json:"locationHint,omitempty"`
8042
8043	// MultiWriter: Indicates whether or not the disk can be read/write
8044	// attached to more than one instance.
8045	MultiWriter bool `json:"multiWriter,omitempty"`
8046
8047	// Name: Name of the resource. Provided by the client when the resource
8048	// is created. The name must be 1-63 characters long, and comply with
8049	// RFC1035. Specifically, the name must be 1-63 characters long and
8050	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
8051	// the first character must be a lowercase letter, and all following
8052	// characters must be a dash, lowercase letter, or digit, except the
8053	// last character, which cannot be a dash.
8054	Name string `json:"name,omitempty"`
8055
8056	// Options: Internal use only.
8057	Options string `json:"options,omitempty"`
8058
8059	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
8060	// in bytes. If not present in a request, a default value is used. The
8061	// currently supported size is 4096, other sizes may be added in the
8062	// future. If an unsupported value is requested, the error message will
8063	// list the supported values for the caller's project.
8064	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
8065
8066	// ProvisionedIops: Indicates how many IOPS must be provisioned for the
8067	// disk.
8068	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
8069
8070	// Region: [Output Only] URL of the region where the disk resides. Only
8071	// applicable for regional resources. You must specify this field as
8072	// part of the HTTP request URL. It is not settable as a field in the
8073	// request body.
8074	Region string `json:"region,omitempty"`
8075
8076	// ReplicaZones: URLs of the zones where the disk should be replicated
8077	// to. Only applicable for regional resources.
8078	ReplicaZones []string `json:"replicaZones,omitempty"`
8079
8080	// ResourcePolicies: Resource policies applied to this disk for
8081	// automatic snapshot creations.
8082	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8083
8084	// SatisfiesPzs: [Output Only] Reserved for future use.
8085	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
8086
8087	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
8088	// resource.
8089	SelfLink string `json:"selfLink,omitempty"`
8090
8091	// SizeGb: Size, in GB, of the persistent disk. You can specify this
8092	// field when creating a persistent disk using the sourceImage,
8093	// sourceSnapshot, or sourceDisk parameter, or specify it alone to
8094	// create an empty persistent disk.
8095	//
8096	// If you specify this field along with a source, the value of sizeGb
8097	// must not be less than the size of the source. Acceptable values are 1
8098	// to 65536, inclusive.
8099	SizeGb int64 `json:"sizeGb,omitempty,string"`
8100
8101	// SourceDisk: The source disk used to create this disk. You can provide
8102	// this as a partial or full URL to the resource. For example, the
8103	// following are valid values:
8104	// -
8105	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8106	//
8107	// -
8108	// https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk
8109	//
8110	// - projects/project/zones/zone/disks/disk
8111	// - projects/project/regions/region/disks/disk
8112	// - zones/zone/disks/disk
8113	// - regions/region/disks/disk
8114	SourceDisk string `json:"sourceDisk,omitempty"`
8115
8116	// SourceDiskId: [Output Only] The unique ID of the disk used to create
8117	// this disk. This value identifies the exact disk that was used to
8118	// create this persistent disk. For example, if you created the
8119	// persistent disk from a disk that was later deleted and recreated
8120	// under the same name, the source disk ID would identify the exact
8121	// version of the disk that was used.
8122	SourceDiskId string `json:"sourceDiskId,omitempty"`
8123
8124	// SourceImage: The source image used to create this disk. If the source
8125	// image is deleted, this field will not be set.
8126	//
8127	// To create a disk with one of the public operating system images,
8128	// specify the image by its family name. For example, specify
8129	// family/debian-9 to use the latest Debian 9
8130	// image:
8131	// projects/debian-cloud/global/images/family/debian-9
8132	//
8133	//
8134	// Alternatively, use a specific version of a public operating system
8135	// image:
8136	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
8137	//
8138	//
8139	// To create a disk with a custom image that you created, specify the
8140	// image name in the following
8141	// format:
8142	// global/images/my-custom-image
8143	//
8144	//
8145	// You can also specify a custom image by its image family, which
8146	// returns the latest version of the image in that family. Replace the
8147	// image name with
8148	// family/family-name:
8149	// global/images/family/my-image-family
8150	SourceImage string `json:"sourceImage,omitempty"`
8151
8152	// SourceImageEncryptionKey: The customer-supplied encryption key of the
8153	// source image. Required if the source image is protected by a
8154	// customer-supplied encryption key.
8155	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
8156
8157	// SourceImageId: [Output Only] The ID value of the image used to create
8158	// this disk. This value identifies the exact image that was used to
8159	// create this persistent disk. For example, if you created the
8160	// persistent disk from an image that was later deleted and recreated
8161	// under the same name, the source image ID would identify the exact
8162	// version of the image that was used.
8163	SourceImageId string `json:"sourceImageId,omitempty"`
8164
8165	// SourceSnapshot: The source snapshot used to create this disk. You can
8166	// provide this as a partial or full URL to the resource. For example,
8167	// the following are valid values:
8168	// -
8169	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
8170	//
8171	// - projects/project/global/snapshots/snapshot
8172	// - global/snapshots/snapshot
8173	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
8174
8175	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
8176	// the source snapshot. Required if the source snapshot is protected by
8177	// a customer-supplied encryption key.
8178	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
8179
8180	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
8181	// create this disk. This value identifies the exact snapshot that was
8182	// used to create this persistent disk. For example, if you created the
8183	// persistent disk from a snapshot that was later deleted and recreated
8184	// under the same name, the source snapshot ID would identify the exact
8185	// version of the snapshot that was used.
8186	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
8187
8188	// SourceStorageObject: The full Google Cloud Storage URI where the disk
8189	// image is stored. This file must be a gzip-compressed tarball whose
8190	// name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
8191	// Valid URIs may start with gs:// or https://storage.googleapis.com/.
8192	// This flag is not optimized for creating multiple disks from a source
8193	// storage object. To create many disks from a source storage object,
8194	// use gcloud compute images import instead.
8195	SourceStorageObject string `json:"sourceStorageObject,omitempty"`
8196
8197	// Status: [Output Only] The status of disk creation.
8198	// - CREATING: Disk is provisioning.
8199	// - RESTORING: Source data is being copied into the disk.
8200	// - FAILED: Disk creation failed.
8201	// - READY: Disk is ready for use.
8202	// - DELETING: Disk is deleting.
8203	//
8204	// Possible values:
8205	//   "CREATING"
8206	//   "DELETING"
8207	//   "FAILED"
8208	//   "READY"
8209	//   "RESTORING"
8210	Status string `json:"status,omitempty"`
8211
8212	// StorageType: [Deprecated] Storage type of the persistent disk.
8213	//
8214	// Possible values:
8215	//   "HDD"
8216	//   "SSD"
8217	StorageType string `json:"storageType,omitempty"`
8218
8219	// Type: URL of the disk type resource describing which disk type to use
8220	// to create the disk. Provide this when creating the disk. For example:
8221	// projects/project/zones/zone/diskTypes/pd-standard  or pd-ssd
8222	Type string `json:"type,omitempty"`
8223
8224	// Users: [Output Only] Links to the users of the disk (attached
8225	// instances) in form: projects/project/zones/zone/instances/instance
8226	Users []string `json:"users,omitempty"`
8227
8228	// Zone: [Output Only] URL of the zone where the disk resides. You must
8229	// specify this field as part of the HTTP request URL. It is not
8230	// settable as a field in the request body.
8231	Zone string `json:"zone,omitempty"`
8232
8233	// ServerResponse contains the HTTP response code and headers from the
8234	// server.
8235	googleapi.ServerResponse `json:"-"`
8236
8237	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8238	// to unconditionally include in API requests. By default, fields with
8239	// empty values are omitted from API requests. However, any non-pointer,
8240	// non-interface field appearing in ForceSendFields will be sent to the
8241	// server regardless of whether the field is empty or not. This may be
8242	// used to include empty fields in Patch requests.
8243	ForceSendFields []string `json:"-"`
8244
8245	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8246	// include in API requests with the JSON null value. By default, fields
8247	// with empty values are omitted from API requests. However, any field
8248	// with an empty value appearing in NullFields will be sent to the
8249	// server as null. It is an error if a field in this list has a
8250	// non-empty value. This may be used to include null fields in Patch
8251	// requests.
8252	NullFields []string `json:"-"`
8253}
8254
8255func (s *Disk) MarshalJSON() ([]byte, error) {
8256	type NoMethod Disk
8257	raw := NoMethod(*s)
8258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8259}
8260
8261type DiskAggregatedList struct {
8262	// Id: [Output Only] Unique identifier for the resource; defined by the
8263	// server.
8264	Id string `json:"id,omitempty"`
8265
8266	// Items: A list of DisksScopedList resources.
8267	Items map[string]DisksScopedList `json:"items,omitempty"`
8268
8269	// Kind: [Output Only] Type of resource. Always
8270	// compute#diskAggregatedList for aggregated lists of persistent disks.
8271	Kind string `json:"kind,omitempty"`
8272
8273	// NextPageToken: [Output Only] This token allows you to get the next
8274	// page of results for list requests. If the number of results is larger
8275	// than maxResults, use the nextPageToken as a value for the query
8276	// parameter pageToken in the next list request. Subsequent list
8277	// requests will have their own nextPageToken to continue paging through
8278	// the results.
8279	NextPageToken string `json:"nextPageToken,omitempty"`
8280
8281	// SelfLink: [Output Only] Server-defined URL for this resource.
8282	SelfLink string `json:"selfLink,omitempty"`
8283
8284	// Unreachables: [Output Only] Unreachable resources.
8285	Unreachables []string `json:"unreachables,omitempty"`
8286
8287	// Warning: [Output Only] Informational warning message.
8288	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
8289
8290	// ServerResponse contains the HTTP response code and headers from the
8291	// server.
8292	googleapi.ServerResponse `json:"-"`
8293
8294	// ForceSendFields is a list of field names (e.g. "Id") to
8295	// unconditionally include in API requests. By default, fields with
8296	// empty values are omitted from API requests. However, any non-pointer,
8297	// non-interface field appearing in ForceSendFields will be sent to the
8298	// server regardless of whether the field is empty or not. This may be
8299	// used to include empty fields in Patch requests.
8300	ForceSendFields []string `json:"-"`
8301
8302	// NullFields is a list of field names (e.g. "Id") to include in API
8303	// requests with the JSON null value. By default, fields with empty
8304	// values are omitted from API requests. However, any field with an
8305	// empty value appearing in NullFields will be sent to the server as
8306	// null. It is an error if a field in this list has a non-empty value.
8307	// This may be used to include null fields in Patch requests.
8308	NullFields []string `json:"-"`
8309}
8310
8311func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
8312	type NoMethod DiskAggregatedList
8313	raw := NoMethod(*s)
8314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8315}
8316
8317// DiskAggregatedListWarning: [Output Only] Informational warning
8318// message.
8319type DiskAggregatedListWarning struct {
8320	// Code: [Output Only] A warning code, if applicable. For example,
8321	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8322	// the response.
8323	//
8324	// Possible values:
8325	//   "CLEANUP_FAILED"
8326	//   "DEPRECATED_RESOURCE_USED"
8327	//   "DEPRECATED_TYPE_USED"
8328	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8329	//   "EXPERIMENTAL_TYPE_USED"
8330	//   "EXTERNAL_API_WARNING"
8331	//   "FIELD_VALUE_OVERRIDEN"
8332	//   "INJECTED_KERNELS_DEPRECATED"
8333	//   "LARGE_DEPLOYMENT_WARNING"
8334	//   "MISSING_TYPE_DEPENDENCY"
8335	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8336	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8337	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8338	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8339	//   "NEXT_HOP_NOT_RUNNING"
8340	//   "NOT_CRITICAL_ERROR"
8341	//   "NO_RESULTS_ON_PAGE"
8342	//   "PARTIAL_SUCCESS"
8343	//   "REQUIRED_TOS_AGREEMENT"
8344	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8345	//   "RESOURCE_NOT_DELETED"
8346	//   "SCHEMA_VALIDATION_IGNORED"
8347	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8348	//   "UNDECLARED_PROPERTIES"
8349	//   "UNREACHABLE"
8350	Code string `json:"code,omitempty"`
8351
8352	// Data: [Output Only] Metadata about this warning in key: value format.
8353	// For example:
8354	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8355	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
8356
8357	// Message: [Output Only] A human-readable description of the warning
8358	// code.
8359	Message string `json:"message,omitempty"`
8360
8361	// ForceSendFields is a list of field names (e.g. "Code") to
8362	// unconditionally include in API requests. By default, fields with
8363	// empty values are omitted from API requests. However, any non-pointer,
8364	// non-interface field appearing in ForceSendFields will be sent to the
8365	// server regardless of whether the field is empty or not. This may be
8366	// used to include empty fields in Patch requests.
8367	ForceSendFields []string `json:"-"`
8368
8369	// NullFields is a list of field names (e.g. "Code") to include in API
8370	// requests with the JSON null value. By default, fields with empty
8371	// values are omitted from API requests. However, any field with an
8372	// empty value appearing in NullFields will be sent to the server as
8373	// null. It is an error if a field in this list has a non-empty value.
8374	// This may be used to include null fields in Patch requests.
8375	NullFields []string `json:"-"`
8376}
8377
8378func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
8379	type NoMethod DiskAggregatedListWarning
8380	raw := NoMethod(*s)
8381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8382}
8383
8384type DiskAggregatedListWarningData struct {
8385	// Key: [Output Only] A key that provides more detail on the warning
8386	// being returned. For example, for warnings where there are no results
8387	// in a list request for a particular zone, this key might be scope and
8388	// the key value might be the zone name. Other examples might be a key
8389	// indicating a deprecated resource and a suggested replacement, or a
8390	// warning about invalid network settings (for example, if an instance
8391	// attempts to perform IP forwarding but is not enabled for IP
8392	// forwarding).
8393	Key string `json:"key,omitempty"`
8394
8395	// Value: [Output Only] A warning data value corresponding to the key.
8396	Value string `json:"value,omitempty"`
8397
8398	// ForceSendFields is a list of field names (e.g. "Key") to
8399	// unconditionally include in API requests. By default, fields with
8400	// empty values are omitted from API requests. However, any non-pointer,
8401	// non-interface field appearing in ForceSendFields will be sent to the
8402	// server regardless of whether the field is empty or not. This may be
8403	// used to include empty fields in Patch requests.
8404	ForceSendFields []string `json:"-"`
8405
8406	// NullFields is a list of field names (e.g. "Key") to include in API
8407	// requests with the JSON null value. By default, fields with empty
8408	// values are omitted from API requests. However, any field with an
8409	// empty value appearing in NullFields will be sent to the server as
8410	// null. It is an error if a field in this list has a non-empty value.
8411	// This may be used to include null fields in Patch requests.
8412	NullFields []string `json:"-"`
8413}
8414
8415func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8416	type NoMethod DiskAggregatedListWarningData
8417	raw := NoMethod(*s)
8418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8419}
8420
8421// DiskInstantiationConfig: A specification of the desired way to
8422// instantiate a disk in the instance template when its created from a
8423// source instance.
8424type DiskInstantiationConfig struct {
8425	// AutoDelete: Specifies whether the disk will be auto-deleted when the
8426	// instance is deleted (but not when the disk is detached from the
8427	// instance).
8428	AutoDelete bool `json:"autoDelete,omitempty"`
8429
8430	// CustomImage: The custom source image to be used to restore this disk
8431	// when instantiating this instance template.
8432	CustomImage string `json:"customImage,omitempty"`
8433
8434	// DeviceName: Specifies the device name of the disk to which the
8435	// configurations apply to.
8436	DeviceName string `json:"deviceName,omitempty"`
8437
8438	// InstantiateFrom: Specifies whether to include the disk and what image
8439	// to use. Possible values are:
8440	// - source-image: to use the same image that was used to create the
8441	// source instance's corresponding disk. Applicable to the boot disk and
8442	// additional read-write disks.
8443	// - source-image-family: to use the same image family that was used to
8444	// create the source instance's corresponding disk. Applicable to the
8445	// boot disk and additional read-write disks.
8446	// - custom-image: to use a user-provided image url for disk creation.
8447	// Applicable to the boot disk and additional read-write disks.
8448	// - attach-read-only: to attach a read-only disk. Applicable to
8449	// read-only disks.
8450	// - do-not-include: to exclude a disk from the template. Applicable to
8451	// additional read-write disks, local SSDs, and read-only disks.
8452	//
8453	// Possible values:
8454	//   "ATTACH_READ_ONLY"
8455	//   "BLANK"
8456	//   "CUSTOM_IMAGE"
8457	//   "DEFAULT"
8458	//   "DO_NOT_INCLUDE"
8459	//   "SOURCE_IMAGE"
8460	//   "SOURCE_IMAGE_FAMILY"
8461	InstantiateFrom string `json:"instantiateFrom,omitempty"`
8462
8463	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
8464	// unconditionally include in API requests. By default, fields with
8465	// empty values are omitted from API requests. However, any non-pointer,
8466	// non-interface field appearing in ForceSendFields will be sent to the
8467	// server regardless of whether the field is empty or not. This may be
8468	// used to include empty fields in Patch requests.
8469	ForceSendFields []string `json:"-"`
8470
8471	// NullFields is a list of field names (e.g. "AutoDelete") to include in
8472	// API requests with the JSON null value. By default, fields with empty
8473	// values are omitted from API requests. However, any field with an
8474	// empty value appearing in NullFields will be sent to the server as
8475	// null. It is an error if a field in this list has a non-empty value.
8476	// This may be used to include null fields in Patch requests.
8477	NullFields []string `json:"-"`
8478}
8479
8480func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
8481	type NoMethod DiskInstantiationConfig
8482	raw := NoMethod(*s)
8483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8484}
8485
8486// DiskList: A list of Disk resources.
8487type DiskList struct {
8488	// Id: [Output Only] Unique identifier for the resource; defined by the
8489	// server.
8490	Id string `json:"id,omitempty"`
8491
8492	// Items: A list of Disk resources.
8493	Items []*Disk `json:"items,omitempty"`
8494
8495	// Kind: [Output Only] Type of resource. Always compute#diskList for
8496	// lists of disks.
8497	Kind string `json:"kind,omitempty"`
8498
8499	// NextPageToken: [Output Only] This token allows you to get the next
8500	// page of results for list requests. If the number of results is larger
8501	// than maxResults, use the nextPageToken as a value for the query
8502	// parameter pageToken in the next list request. Subsequent list
8503	// requests will have their own nextPageToken to continue paging through
8504	// the results.
8505	NextPageToken string `json:"nextPageToken,omitempty"`
8506
8507	// SelfLink: [Output Only] Server-defined URL for this resource.
8508	SelfLink string `json:"selfLink,omitempty"`
8509
8510	// Warning: [Output Only] Informational warning message.
8511	Warning *DiskListWarning `json:"warning,omitempty"`
8512
8513	// ServerResponse contains the HTTP response code and headers from the
8514	// server.
8515	googleapi.ServerResponse `json:"-"`
8516
8517	// ForceSendFields is a list of field names (e.g. "Id") to
8518	// unconditionally include in API requests. By default, fields with
8519	// empty values are omitted from API requests. However, any non-pointer,
8520	// non-interface field appearing in ForceSendFields will be sent to the
8521	// server regardless of whether the field is empty or not. This may be
8522	// used to include empty fields in Patch requests.
8523	ForceSendFields []string `json:"-"`
8524
8525	// NullFields is a list of field names (e.g. "Id") to include in API
8526	// requests with the JSON null value. By default, fields with empty
8527	// values are omitted from API requests. However, any field with an
8528	// empty value appearing in NullFields will be sent to the server as
8529	// null. It is an error if a field in this list has a non-empty value.
8530	// This may be used to include null fields in Patch requests.
8531	NullFields []string `json:"-"`
8532}
8533
8534func (s *DiskList) MarshalJSON() ([]byte, error) {
8535	type NoMethod DiskList
8536	raw := NoMethod(*s)
8537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8538}
8539
8540// DiskListWarning: [Output Only] Informational warning message.
8541type DiskListWarning struct {
8542	// Code: [Output Only] A warning code, if applicable. For example,
8543	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8544	// the response.
8545	//
8546	// Possible values:
8547	//   "CLEANUP_FAILED"
8548	//   "DEPRECATED_RESOURCE_USED"
8549	//   "DEPRECATED_TYPE_USED"
8550	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8551	//   "EXPERIMENTAL_TYPE_USED"
8552	//   "EXTERNAL_API_WARNING"
8553	//   "FIELD_VALUE_OVERRIDEN"
8554	//   "INJECTED_KERNELS_DEPRECATED"
8555	//   "LARGE_DEPLOYMENT_WARNING"
8556	//   "MISSING_TYPE_DEPENDENCY"
8557	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8558	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8559	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8560	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8561	//   "NEXT_HOP_NOT_RUNNING"
8562	//   "NOT_CRITICAL_ERROR"
8563	//   "NO_RESULTS_ON_PAGE"
8564	//   "PARTIAL_SUCCESS"
8565	//   "REQUIRED_TOS_AGREEMENT"
8566	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8567	//   "RESOURCE_NOT_DELETED"
8568	//   "SCHEMA_VALIDATION_IGNORED"
8569	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8570	//   "UNDECLARED_PROPERTIES"
8571	//   "UNREACHABLE"
8572	Code string `json:"code,omitempty"`
8573
8574	// Data: [Output Only] Metadata about this warning in key: value format.
8575	// For example:
8576	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8577	Data []*DiskListWarningData `json:"data,omitempty"`
8578
8579	// Message: [Output Only] A human-readable description of the warning
8580	// code.
8581	Message string `json:"message,omitempty"`
8582
8583	// ForceSendFields is a list of field names (e.g. "Code") to
8584	// unconditionally include in API requests. By default, fields with
8585	// empty values are omitted from API requests. However, any non-pointer,
8586	// non-interface field appearing in ForceSendFields will be sent to the
8587	// server regardless of whether the field is empty or not. This may be
8588	// used to include empty fields in Patch requests.
8589	ForceSendFields []string `json:"-"`
8590
8591	// NullFields is a list of field names (e.g. "Code") to include in API
8592	// requests with the JSON null value. By default, fields with empty
8593	// values are omitted from API requests. However, any field with an
8594	// empty value appearing in NullFields will be sent to the server as
8595	// null. It is an error if a field in this list has a non-empty value.
8596	// This may be used to include null fields in Patch requests.
8597	NullFields []string `json:"-"`
8598}
8599
8600func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
8601	type NoMethod DiskListWarning
8602	raw := NoMethod(*s)
8603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8604}
8605
8606type DiskListWarningData struct {
8607	// Key: [Output Only] A key that provides more detail on the warning
8608	// being returned. For example, for warnings where there are no results
8609	// in a list request for a particular zone, this key might be scope and
8610	// the key value might be the zone name. Other examples might be a key
8611	// indicating a deprecated resource and a suggested replacement, or a
8612	// warning about invalid network settings (for example, if an instance
8613	// attempts to perform IP forwarding but is not enabled for IP
8614	// forwarding).
8615	Key string `json:"key,omitempty"`
8616
8617	// Value: [Output Only] A warning data value corresponding to the key.
8618	Value string `json:"value,omitempty"`
8619
8620	// ForceSendFields is a list of field names (e.g. "Key") to
8621	// unconditionally include in API requests. By default, fields with
8622	// empty values are omitted from API requests. However, any non-pointer,
8623	// non-interface field appearing in ForceSendFields will be sent to the
8624	// server regardless of whether the field is empty or not. This may be
8625	// used to include empty fields in Patch requests.
8626	ForceSendFields []string `json:"-"`
8627
8628	// NullFields is a list of field names (e.g. "Key") to include in API
8629	// requests with the JSON null value. By default, fields with empty
8630	// values are omitted from API requests. However, any field with an
8631	// empty value appearing in NullFields will be sent to the server as
8632	// null. It is an error if a field in this list has a non-empty value.
8633	// This may be used to include null fields in Patch requests.
8634	NullFields []string `json:"-"`
8635}
8636
8637func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
8638	type NoMethod DiskListWarningData
8639	raw := NoMethod(*s)
8640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8641}
8642
8643type DiskMoveRequest struct {
8644	// DestinationZone: The URL of the destination zone to move the disk.
8645	// This can be a full or partial URL. For example, the following are all
8646	// valid URLs to a zone:
8647	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
8648	//
8649	// - projects/project/zones/zone
8650	// - zones/zone
8651	DestinationZone string `json:"destinationZone,omitempty"`
8652
8653	// TargetDisk: The URL of the target disk to move. This can be a full or
8654	// partial URL. For example, the following are all valid URLs to a disk:
8655	//
8656	// -
8657	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8658	//
8659	// - projects/project/zones/zone/disks/disk
8660	// - zones/zone/disks/disk
8661	TargetDisk string `json:"targetDisk,omitempty"`
8662
8663	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
8664	// unconditionally include in API requests. By default, fields with
8665	// empty values are omitted from API requests. However, any non-pointer,
8666	// non-interface field appearing in ForceSendFields will be sent to the
8667	// server regardless of whether the field is empty or not. This may be
8668	// used to include empty fields in Patch requests.
8669	ForceSendFields []string `json:"-"`
8670
8671	// NullFields is a list of field names (e.g. "DestinationZone") to
8672	// include in API requests with the JSON null value. By default, fields
8673	// with empty values are omitted from API requests. However, any field
8674	// with an empty value appearing in NullFields will be sent to the
8675	// server as null. It is an error if a field in this list has a
8676	// non-empty value. This may be used to include null fields in Patch
8677	// requests.
8678	NullFields []string `json:"-"`
8679}
8680
8681func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
8682	type NoMethod DiskMoveRequest
8683	raw := NoMethod(*s)
8684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8685}
8686
8687// DiskType: Represents a Disk Type resource.
8688//
8689// Google Compute Engine has two Disk Type resources:
8690//
8691// * Regional
8692// (/compute/docs/reference/rest/{$api_version}/regionDiskTypes) * Zonal
8693// (/compute/docs/reference/rest/{$api_version}/diskTypes)
8694//
8695// You can choose from a variety of disk types based on your needs. For
8696// more information, read Storage options.
8697//
8698// The diskTypes resource represents disk types for a zonal persistent
8699// disk. For more information, read Zonal persistent disks.
8700//
8701// The regionDiskTypes resource represents disk types for a regional
8702// persistent disk. For more information, read Regional persistent
8703// disks. (== resource_for {$api_version}.diskTypes ==) (== resource_for
8704// {$api_version}.regionDiskTypes ==)
8705type DiskType struct {
8706	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8707	// format.
8708	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8709
8710	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
8711	// GB.
8712	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
8713
8714	// Deprecated -- [Output Only] The deprecation status associated with
8715	// this disk type.
8716	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8717
8718	// Description: [Output Only] An optional description of this resource.
8719	Description string `json:"description,omitempty"`
8720
8721	// Id: [Output Only] The unique identifier for the resource. This
8722	// identifier is defined by the server.
8723	Id uint64 `json:"id,omitempty,string"`
8724
8725	// Kind: [Output Only] Type of the resource. Always compute#diskType for
8726	// disk types.
8727	Kind string `json:"kind,omitempty"`
8728
8729	// Name: [Output Only] Name of the resource.
8730	Name string `json:"name,omitempty"`
8731
8732	// Region: [Output Only] URL of the region where the disk type resides.
8733	// Only applicable for regional resources. You must specify this field
8734	// as part of the HTTP request URL. It is not settable as a field in the
8735	// request body.
8736	Region string `json:"region,omitempty"`
8737
8738	// SelfLink: [Output Only] Server-defined URL for the resource.
8739	SelfLink string `json:"selfLink,omitempty"`
8740
8741	// ValidDiskSize: [Output Only] An optional textual description of the
8742	// valid disk size, such as "10GB-10TB".
8743	ValidDiskSize string `json:"validDiskSize,omitempty"`
8744
8745	// Zone: [Output Only] URL of the zone where the disk type resides. You
8746	// must specify this field as part of the HTTP request URL. It is not
8747	// settable as a field in the request body.
8748	Zone string `json:"zone,omitempty"`
8749
8750	// ServerResponse contains the HTTP response code and headers from the
8751	// server.
8752	googleapi.ServerResponse `json:"-"`
8753
8754	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8755	// to unconditionally include in API requests. By default, fields with
8756	// empty values are omitted from API requests. However, any non-pointer,
8757	// non-interface field appearing in ForceSendFields will be sent to the
8758	// server regardless of whether the field is empty or not. This may be
8759	// used to include empty fields in Patch requests.
8760	ForceSendFields []string `json:"-"`
8761
8762	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8763	// include in API requests with the JSON null value. By default, fields
8764	// with empty values are omitted from API requests. However, any field
8765	// with an empty value appearing in NullFields will be sent to the
8766	// server as null. It is an error if a field in this list has a
8767	// non-empty value. This may be used to include null fields in Patch
8768	// requests.
8769	NullFields []string `json:"-"`
8770}
8771
8772func (s *DiskType) MarshalJSON() ([]byte, error) {
8773	type NoMethod DiskType
8774	raw := NoMethod(*s)
8775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8776}
8777
8778type DiskTypeAggregatedList struct {
8779	// Id: [Output Only] Unique identifier for the resource; defined by the
8780	// server.
8781	Id string `json:"id,omitempty"`
8782
8783	// Items: A list of DiskTypesScopedList resources.
8784	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
8785
8786	// Kind: [Output Only] Type of resource. Always
8787	// compute#diskTypeAggregatedList.
8788	Kind string `json:"kind,omitempty"`
8789
8790	// NextPageToken: [Output Only] This token allows you to get the next
8791	// page of results for list requests. If the number of results is larger
8792	// than maxResults, use the nextPageToken as a value for the query
8793	// parameter pageToken in the next list request. Subsequent list
8794	// requests will have their own nextPageToken to continue paging through
8795	// the results.
8796	NextPageToken string `json:"nextPageToken,omitempty"`
8797
8798	// SelfLink: [Output Only] Server-defined URL for this resource.
8799	SelfLink string `json:"selfLink,omitempty"`
8800
8801	// Unreachables: [Output Only] Unreachable resources.
8802	Unreachables []string `json:"unreachables,omitempty"`
8803
8804	// Warning: [Output Only] Informational warning message.
8805	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
8806
8807	// ServerResponse contains the HTTP response code and headers from the
8808	// server.
8809	googleapi.ServerResponse `json:"-"`
8810
8811	// ForceSendFields is a list of field names (e.g. "Id") to
8812	// unconditionally include in API requests. By default, fields with
8813	// empty values are omitted from API requests. However, any non-pointer,
8814	// non-interface field appearing in ForceSendFields will be sent to the
8815	// server regardless of whether the field is empty or not. This may be
8816	// used to include empty fields in Patch requests.
8817	ForceSendFields []string `json:"-"`
8818
8819	// NullFields is a list of field names (e.g. "Id") to include in API
8820	// requests with the JSON null value. By default, fields with empty
8821	// values are omitted from API requests. However, any field with an
8822	// empty value appearing in NullFields will be sent to the server as
8823	// null. It is an error if a field in this list has a non-empty value.
8824	// This may be used to include null fields in Patch requests.
8825	NullFields []string `json:"-"`
8826}
8827
8828func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
8829	type NoMethod DiskTypeAggregatedList
8830	raw := NoMethod(*s)
8831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8832}
8833
8834// DiskTypeAggregatedListWarning: [Output Only] Informational warning
8835// message.
8836type DiskTypeAggregatedListWarning struct {
8837	// Code: [Output Only] A warning code, if applicable. For example,
8838	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8839	// the response.
8840	//
8841	// Possible values:
8842	//   "CLEANUP_FAILED"
8843	//   "DEPRECATED_RESOURCE_USED"
8844	//   "DEPRECATED_TYPE_USED"
8845	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8846	//   "EXPERIMENTAL_TYPE_USED"
8847	//   "EXTERNAL_API_WARNING"
8848	//   "FIELD_VALUE_OVERRIDEN"
8849	//   "INJECTED_KERNELS_DEPRECATED"
8850	//   "LARGE_DEPLOYMENT_WARNING"
8851	//   "MISSING_TYPE_DEPENDENCY"
8852	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8853	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8854	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8855	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8856	//   "NEXT_HOP_NOT_RUNNING"
8857	//   "NOT_CRITICAL_ERROR"
8858	//   "NO_RESULTS_ON_PAGE"
8859	//   "PARTIAL_SUCCESS"
8860	//   "REQUIRED_TOS_AGREEMENT"
8861	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8862	//   "RESOURCE_NOT_DELETED"
8863	//   "SCHEMA_VALIDATION_IGNORED"
8864	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8865	//   "UNDECLARED_PROPERTIES"
8866	//   "UNREACHABLE"
8867	Code string `json:"code,omitempty"`
8868
8869	// Data: [Output Only] Metadata about this warning in key: value format.
8870	// For example:
8871	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8872	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
8873
8874	// Message: [Output Only] A human-readable description of the warning
8875	// code.
8876	Message string `json:"message,omitempty"`
8877
8878	// ForceSendFields is a list of field names (e.g. "Code") to
8879	// unconditionally include in API requests. By default, fields with
8880	// empty values are omitted from API requests. However, any non-pointer,
8881	// non-interface field appearing in ForceSendFields will be sent to the
8882	// server regardless of whether the field is empty or not. This may be
8883	// used to include empty fields in Patch requests.
8884	ForceSendFields []string `json:"-"`
8885
8886	// NullFields is a list of field names (e.g. "Code") to include in API
8887	// requests with the JSON null value. By default, fields with empty
8888	// values are omitted from API requests. However, any field with an
8889	// empty value appearing in NullFields will be sent to the server as
8890	// null. It is an error if a field in this list has a non-empty value.
8891	// This may be used to include null fields in Patch requests.
8892	NullFields []string `json:"-"`
8893}
8894
8895func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
8896	type NoMethod DiskTypeAggregatedListWarning
8897	raw := NoMethod(*s)
8898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8899}
8900
8901type DiskTypeAggregatedListWarningData struct {
8902	// Key: [Output Only] A key that provides more detail on the warning
8903	// being returned. For example, for warnings where there are no results
8904	// in a list request for a particular zone, this key might be scope and
8905	// the key value might be the zone name. Other examples might be a key
8906	// indicating a deprecated resource and a suggested replacement, or a
8907	// warning about invalid network settings (for example, if an instance
8908	// attempts to perform IP forwarding but is not enabled for IP
8909	// forwarding).
8910	Key string `json:"key,omitempty"`
8911
8912	// Value: [Output Only] A warning data value corresponding to the key.
8913	Value string `json:"value,omitempty"`
8914
8915	// ForceSendFields is a list of field names (e.g. "Key") to
8916	// unconditionally include in API requests. By default, fields with
8917	// empty values are omitted from API requests. However, any non-pointer,
8918	// non-interface field appearing in ForceSendFields will be sent to the
8919	// server regardless of whether the field is empty or not. This may be
8920	// used to include empty fields in Patch requests.
8921	ForceSendFields []string `json:"-"`
8922
8923	// NullFields is a list of field names (e.g. "Key") to include in API
8924	// requests with the JSON null value. By default, fields with empty
8925	// values are omitted from API requests. However, any field with an
8926	// empty value appearing in NullFields will be sent to the server as
8927	// null. It is an error if a field in this list has a non-empty value.
8928	// This may be used to include null fields in Patch requests.
8929	NullFields []string `json:"-"`
8930}
8931
8932func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8933	type NoMethod DiskTypeAggregatedListWarningData
8934	raw := NoMethod(*s)
8935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8936}
8937
8938// DiskTypeList: Contains a list of disk types.
8939type DiskTypeList struct {
8940	// Id: [Output Only] Unique identifier for the resource; defined by the
8941	// server.
8942	Id string `json:"id,omitempty"`
8943
8944	// Items: A list of DiskType resources.
8945	Items []*DiskType `json:"items,omitempty"`
8946
8947	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
8948	// disk types.
8949	Kind string `json:"kind,omitempty"`
8950
8951	// NextPageToken: [Output Only] This token allows you to get the next
8952	// page of results for list requests. If the number of results is larger
8953	// than maxResults, use the nextPageToken as a value for the query
8954	// parameter pageToken in the next list request. Subsequent list
8955	// requests will have their own nextPageToken to continue paging through
8956	// the results.
8957	NextPageToken string `json:"nextPageToken,omitempty"`
8958
8959	// SelfLink: [Output Only] Server-defined URL for this resource.
8960	SelfLink string `json:"selfLink,omitempty"`
8961
8962	// Warning: [Output Only] Informational warning message.
8963	Warning *DiskTypeListWarning `json:"warning,omitempty"`
8964
8965	// ServerResponse contains the HTTP response code and headers from the
8966	// server.
8967	googleapi.ServerResponse `json:"-"`
8968
8969	// ForceSendFields is a list of field names (e.g. "Id") to
8970	// unconditionally include in API requests. By default, fields with
8971	// empty values are omitted from API requests. However, any non-pointer,
8972	// non-interface field appearing in ForceSendFields will be sent to the
8973	// server regardless of whether the field is empty or not. This may be
8974	// used to include empty fields in Patch requests.
8975	ForceSendFields []string `json:"-"`
8976
8977	// NullFields is a list of field names (e.g. "Id") to include in API
8978	// requests with the JSON null value. By default, fields with empty
8979	// values are omitted from API requests. However, any field with an
8980	// empty value appearing in NullFields will be sent to the server as
8981	// null. It is an error if a field in this list has a non-empty value.
8982	// This may be used to include null fields in Patch requests.
8983	NullFields []string `json:"-"`
8984}
8985
8986func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8987	type NoMethod DiskTypeList
8988	raw := NoMethod(*s)
8989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8990}
8991
8992// DiskTypeListWarning: [Output Only] Informational warning message.
8993type DiskTypeListWarning struct {
8994	// Code: [Output Only] A warning code, if applicable. For example,
8995	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8996	// the response.
8997	//
8998	// Possible values:
8999	//   "CLEANUP_FAILED"
9000	//   "DEPRECATED_RESOURCE_USED"
9001	//   "DEPRECATED_TYPE_USED"
9002	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9003	//   "EXPERIMENTAL_TYPE_USED"
9004	//   "EXTERNAL_API_WARNING"
9005	//   "FIELD_VALUE_OVERRIDEN"
9006	//   "INJECTED_KERNELS_DEPRECATED"
9007	//   "LARGE_DEPLOYMENT_WARNING"
9008	//   "MISSING_TYPE_DEPENDENCY"
9009	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9010	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9011	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9012	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9013	//   "NEXT_HOP_NOT_RUNNING"
9014	//   "NOT_CRITICAL_ERROR"
9015	//   "NO_RESULTS_ON_PAGE"
9016	//   "PARTIAL_SUCCESS"
9017	//   "REQUIRED_TOS_AGREEMENT"
9018	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9019	//   "RESOURCE_NOT_DELETED"
9020	//   "SCHEMA_VALIDATION_IGNORED"
9021	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9022	//   "UNDECLARED_PROPERTIES"
9023	//   "UNREACHABLE"
9024	Code string `json:"code,omitempty"`
9025
9026	// Data: [Output Only] Metadata about this warning in key: value format.
9027	// For example:
9028	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9029	Data []*DiskTypeListWarningData `json:"data,omitempty"`
9030
9031	// Message: [Output Only] A human-readable description of the warning
9032	// code.
9033	Message string `json:"message,omitempty"`
9034
9035	// ForceSendFields is a list of field names (e.g. "Code") to
9036	// unconditionally include in API requests. By default, fields with
9037	// empty values are omitted from API requests. However, any non-pointer,
9038	// non-interface field appearing in ForceSendFields will be sent to the
9039	// server regardless of whether the field is empty or not. This may be
9040	// used to include empty fields in Patch requests.
9041	ForceSendFields []string `json:"-"`
9042
9043	// NullFields is a list of field names (e.g. "Code") to include in API
9044	// requests with the JSON null value. By default, fields with empty
9045	// values are omitted from API requests. However, any field with an
9046	// empty value appearing in NullFields will be sent to the server as
9047	// null. It is an error if a field in this list has a non-empty value.
9048	// This may be used to include null fields in Patch requests.
9049	NullFields []string `json:"-"`
9050}
9051
9052func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
9053	type NoMethod DiskTypeListWarning
9054	raw := NoMethod(*s)
9055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9056}
9057
9058type DiskTypeListWarningData struct {
9059	// Key: [Output Only] A key that provides more detail on the warning
9060	// being returned. For example, for warnings where there are no results
9061	// in a list request for a particular zone, this key might be scope and
9062	// the key value might be the zone name. Other examples might be a key
9063	// indicating a deprecated resource and a suggested replacement, or a
9064	// warning about invalid network settings (for example, if an instance
9065	// attempts to perform IP forwarding but is not enabled for IP
9066	// forwarding).
9067	Key string `json:"key,omitempty"`
9068
9069	// Value: [Output Only] A warning data value corresponding to the key.
9070	Value string `json:"value,omitempty"`
9071
9072	// ForceSendFields is a list of field names (e.g. "Key") to
9073	// unconditionally include in API requests. By default, fields with
9074	// empty values are omitted from API requests. However, any non-pointer,
9075	// non-interface field appearing in ForceSendFields will be sent to the
9076	// server regardless of whether the field is empty or not. This may be
9077	// used to include empty fields in Patch requests.
9078	ForceSendFields []string `json:"-"`
9079
9080	// NullFields is a list of field names (e.g. "Key") to include in API
9081	// requests with the JSON null value. By default, fields with empty
9082	// values are omitted from API requests. However, any field with an
9083	// empty value appearing in NullFields will be sent to the server as
9084	// null. It is an error if a field in this list has a non-empty value.
9085	// This may be used to include null fields in Patch requests.
9086	NullFields []string `json:"-"`
9087}
9088
9089func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
9090	type NoMethod DiskTypeListWarningData
9091	raw := NoMethod(*s)
9092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9093}
9094
9095type DiskTypesScopedList struct {
9096	// DiskTypes: [Output Only] A list of disk types contained in this
9097	// scope.
9098	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
9099
9100	// Warning: [Output Only] Informational warning which replaces the list
9101	// of disk types when the list is empty.
9102	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
9103
9104	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
9105	// unconditionally include in API requests. By default, fields with
9106	// empty values are omitted from API requests. However, any non-pointer,
9107	// non-interface field appearing in ForceSendFields will be sent to the
9108	// server regardless of whether the field is empty or not. This may be
9109	// used to include empty fields in Patch requests.
9110	ForceSendFields []string `json:"-"`
9111
9112	// NullFields is a list of field names (e.g. "DiskTypes") to include in
9113	// API requests with the JSON null value. By default, fields with empty
9114	// values are omitted from API requests. However, any field with an
9115	// empty value appearing in NullFields will be sent to the server as
9116	// null. It is an error if a field in this list has a non-empty value.
9117	// This may be used to include null fields in Patch requests.
9118	NullFields []string `json:"-"`
9119}
9120
9121func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
9122	type NoMethod DiskTypesScopedList
9123	raw := NoMethod(*s)
9124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9125}
9126
9127// DiskTypesScopedListWarning: [Output Only] Informational warning which
9128// replaces the list of disk types when the list is empty.
9129type DiskTypesScopedListWarning struct {
9130	// Code: [Output Only] A warning code, if applicable. For example,
9131	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9132	// the response.
9133	//
9134	// Possible values:
9135	//   "CLEANUP_FAILED"
9136	//   "DEPRECATED_RESOURCE_USED"
9137	//   "DEPRECATED_TYPE_USED"
9138	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9139	//   "EXPERIMENTAL_TYPE_USED"
9140	//   "EXTERNAL_API_WARNING"
9141	//   "FIELD_VALUE_OVERRIDEN"
9142	//   "INJECTED_KERNELS_DEPRECATED"
9143	//   "LARGE_DEPLOYMENT_WARNING"
9144	//   "MISSING_TYPE_DEPENDENCY"
9145	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9146	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9147	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9148	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9149	//   "NEXT_HOP_NOT_RUNNING"
9150	//   "NOT_CRITICAL_ERROR"
9151	//   "NO_RESULTS_ON_PAGE"
9152	//   "PARTIAL_SUCCESS"
9153	//   "REQUIRED_TOS_AGREEMENT"
9154	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9155	//   "RESOURCE_NOT_DELETED"
9156	//   "SCHEMA_VALIDATION_IGNORED"
9157	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9158	//   "UNDECLARED_PROPERTIES"
9159	//   "UNREACHABLE"
9160	Code string `json:"code,omitempty"`
9161
9162	// Data: [Output Only] Metadata about this warning in key: value format.
9163	// For example:
9164	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9165	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
9166
9167	// Message: [Output Only] A human-readable description of the warning
9168	// code.
9169	Message string `json:"message,omitempty"`
9170
9171	// ForceSendFields is a list of field names (e.g. "Code") to
9172	// unconditionally include in API requests. By default, fields with
9173	// empty values are omitted from API requests. However, any non-pointer,
9174	// non-interface field appearing in ForceSendFields will be sent to the
9175	// server regardless of whether the field is empty or not. This may be
9176	// used to include empty fields in Patch requests.
9177	ForceSendFields []string `json:"-"`
9178
9179	// NullFields is a list of field names (e.g. "Code") to include in API
9180	// requests with the JSON null value. By default, fields with empty
9181	// values are omitted from API requests. However, any field with an
9182	// empty value appearing in NullFields will be sent to the server as
9183	// null. It is an error if a field in this list has a non-empty value.
9184	// This may be used to include null fields in Patch requests.
9185	NullFields []string `json:"-"`
9186}
9187
9188func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
9189	type NoMethod DiskTypesScopedListWarning
9190	raw := NoMethod(*s)
9191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9192}
9193
9194type DiskTypesScopedListWarningData struct {
9195	// Key: [Output Only] A key that provides more detail on the warning
9196	// being returned. For example, for warnings where there are no results
9197	// in a list request for a particular zone, this key might be scope and
9198	// the key value might be the zone name. Other examples might be a key
9199	// indicating a deprecated resource and a suggested replacement, or a
9200	// warning about invalid network settings (for example, if an instance
9201	// attempts to perform IP forwarding but is not enabled for IP
9202	// forwarding).
9203	Key string `json:"key,omitempty"`
9204
9205	// Value: [Output Only] A warning data value corresponding to the key.
9206	Value string `json:"value,omitempty"`
9207
9208	// ForceSendFields is a list of field names (e.g. "Key") to
9209	// unconditionally include in API requests. By default, fields with
9210	// empty values are omitted from API requests. However, any non-pointer,
9211	// non-interface field appearing in ForceSendFields will be sent to the
9212	// server regardless of whether the field is empty or not. This may be
9213	// used to include empty fields in Patch requests.
9214	ForceSendFields []string `json:"-"`
9215
9216	// NullFields is a list of field names (e.g. "Key") to include in API
9217	// requests with the JSON null value. By default, fields with empty
9218	// values are omitted from API requests. However, any field with an
9219	// empty value appearing in NullFields will be sent to the server as
9220	// null. It is an error if a field in this list has a non-empty value.
9221	// This may be used to include null fields in Patch requests.
9222	NullFields []string `json:"-"`
9223}
9224
9225func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
9226	type NoMethod DiskTypesScopedListWarningData
9227	raw := NoMethod(*s)
9228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9229}
9230
9231type DisksAddResourcePoliciesRequest struct {
9232	// ResourcePolicies: Resource policies to be added to this disk.
9233	// Currently you can only specify one policy here.
9234	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
9235
9236	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
9237	// unconditionally include in API requests. By default, fields with
9238	// empty values are omitted from API requests. However, any non-pointer,
9239	// non-interface field appearing in ForceSendFields will be sent to the
9240	// server regardless of whether the field is empty or not. This may be
9241	// used to include empty fields in Patch requests.
9242	ForceSendFields []string `json:"-"`
9243
9244	// NullFields is a list of field names (e.g. "ResourcePolicies") to
9245	// include in API requests with the JSON null value. By default, fields
9246	// with empty values are omitted from API requests. However, any field
9247	// with an empty value appearing in NullFields will be sent to the
9248	// server as null. It is an error if a field in this list has a
9249	// non-empty value. This may be used to include null fields in Patch
9250	// requests.
9251	NullFields []string `json:"-"`
9252}
9253
9254func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
9255	type NoMethod DisksAddResourcePoliciesRequest
9256	raw := NoMethod(*s)
9257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9258}
9259
9260type DisksRemoveResourcePoliciesRequest struct {
9261	// ResourcePolicies: Resource policies to be removed from this disk.
9262	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
9263
9264	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
9265	// unconditionally include in API requests. By default, fields with
9266	// empty values are omitted from API requests. However, any non-pointer,
9267	// non-interface field appearing in ForceSendFields will be sent to the
9268	// server regardless of whether the field is empty or not. This may be
9269	// used to include empty fields in Patch requests.
9270	ForceSendFields []string `json:"-"`
9271
9272	// NullFields is a list of field names (e.g. "ResourcePolicies") to
9273	// include in API requests with the JSON null value. By default, fields
9274	// with empty values are omitted from API requests. However, any field
9275	// with an empty value appearing in NullFields will be sent to the
9276	// server as null. It is an error if a field in this list has a
9277	// non-empty value. This may be used to include null fields in Patch
9278	// requests.
9279	NullFields []string `json:"-"`
9280}
9281
9282func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
9283	type NoMethod DisksRemoveResourcePoliciesRequest
9284	raw := NoMethod(*s)
9285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9286}
9287
9288type DisksResizeRequest struct {
9289	// SizeGb: The new size of the persistent disk, which is specified in
9290	// GB.
9291	SizeGb int64 `json:"sizeGb,omitempty,string"`
9292
9293	// ForceSendFields is a list of field names (e.g. "SizeGb") to
9294	// unconditionally include in API requests. By default, fields with
9295	// empty values are omitted from API requests. However, any non-pointer,
9296	// non-interface field appearing in ForceSendFields will be sent to the
9297	// server regardless of whether the field is empty or not. This may be
9298	// used to include empty fields in Patch requests.
9299	ForceSendFields []string `json:"-"`
9300
9301	// NullFields is a list of field names (e.g. "SizeGb") to include in API
9302	// requests with the JSON null value. By default, fields with empty
9303	// values are omitted from API requests. However, any field with an
9304	// empty value appearing in NullFields will be sent to the server as
9305	// null. It is an error if a field in this list has a non-empty value.
9306	// This may be used to include null fields in Patch requests.
9307	NullFields []string `json:"-"`
9308}
9309
9310func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
9311	type NoMethod DisksResizeRequest
9312	raw := NoMethod(*s)
9313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9314}
9315
9316type DisksScopedList struct {
9317	// Disks: [Output Only] A list of disks contained in this scope.
9318	Disks []*Disk `json:"disks,omitempty"`
9319
9320	// Warning: [Output Only] Informational warning which replaces the list
9321	// of disks when the list is empty.
9322	Warning *DisksScopedListWarning `json:"warning,omitempty"`
9323
9324	// ForceSendFields is a list of field names (e.g. "Disks") to
9325	// unconditionally include in API requests. By default, fields with
9326	// empty values are omitted from API requests. However, any non-pointer,
9327	// non-interface field appearing in ForceSendFields will be sent to the
9328	// server regardless of whether the field is empty or not. This may be
9329	// used to include empty fields in Patch requests.
9330	ForceSendFields []string `json:"-"`
9331
9332	// NullFields is a list of field names (e.g. "Disks") to include in API
9333	// requests with the JSON null value. By default, fields with empty
9334	// values are omitted from API requests. However, any field with an
9335	// empty value appearing in NullFields will be sent to the server as
9336	// null. It is an error if a field in this list has a non-empty value.
9337	// This may be used to include null fields in Patch requests.
9338	NullFields []string `json:"-"`
9339}
9340
9341func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
9342	type NoMethod DisksScopedList
9343	raw := NoMethod(*s)
9344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9345}
9346
9347// DisksScopedListWarning: [Output Only] Informational warning which
9348// replaces the list of disks when the list is empty.
9349type DisksScopedListWarning struct {
9350	// Code: [Output Only] A warning code, if applicable. For example,
9351	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9352	// the response.
9353	//
9354	// Possible values:
9355	//   "CLEANUP_FAILED"
9356	//   "DEPRECATED_RESOURCE_USED"
9357	//   "DEPRECATED_TYPE_USED"
9358	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9359	//   "EXPERIMENTAL_TYPE_USED"
9360	//   "EXTERNAL_API_WARNING"
9361	//   "FIELD_VALUE_OVERRIDEN"
9362	//   "INJECTED_KERNELS_DEPRECATED"
9363	//   "LARGE_DEPLOYMENT_WARNING"
9364	//   "MISSING_TYPE_DEPENDENCY"
9365	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9366	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9367	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9368	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9369	//   "NEXT_HOP_NOT_RUNNING"
9370	//   "NOT_CRITICAL_ERROR"
9371	//   "NO_RESULTS_ON_PAGE"
9372	//   "PARTIAL_SUCCESS"
9373	//   "REQUIRED_TOS_AGREEMENT"
9374	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9375	//   "RESOURCE_NOT_DELETED"
9376	//   "SCHEMA_VALIDATION_IGNORED"
9377	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9378	//   "UNDECLARED_PROPERTIES"
9379	//   "UNREACHABLE"
9380	Code string `json:"code,omitempty"`
9381
9382	// Data: [Output Only] Metadata about this warning in key: value format.
9383	// For example:
9384	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9385	Data []*DisksScopedListWarningData `json:"data,omitempty"`
9386
9387	// Message: [Output Only] A human-readable description of the warning
9388	// code.
9389	Message string `json:"message,omitempty"`
9390
9391	// ForceSendFields is a list of field names (e.g. "Code") to
9392	// unconditionally include in API requests. By default, fields with
9393	// empty values are omitted from API requests. However, any non-pointer,
9394	// non-interface field appearing in ForceSendFields will be sent to the
9395	// server regardless of whether the field is empty or not. This may be
9396	// used to include empty fields in Patch requests.
9397	ForceSendFields []string `json:"-"`
9398
9399	// NullFields is a list of field names (e.g. "Code") to include in API
9400	// requests with the JSON null value. By default, fields with empty
9401	// values are omitted from API requests. However, any field with an
9402	// empty value appearing in NullFields will be sent to the server as
9403	// null. It is an error if a field in this list has a non-empty value.
9404	// This may be used to include null fields in Patch requests.
9405	NullFields []string `json:"-"`
9406}
9407
9408func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
9409	type NoMethod DisksScopedListWarning
9410	raw := NoMethod(*s)
9411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9412}
9413
9414type DisksScopedListWarningData struct {
9415	// Key: [Output Only] A key that provides more detail on the warning
9416	// being returned. For example, for warnings where there are no results
9417	// in a list request for a particular zone, this key might be scope and
9418	// the key value might be the zone name. Other examples might be a key
9419	// indicating a deprecated resource and a suggested replacement, or a
9420	// warning about invalid network settings (for example, if an instance
9421	// attempts to perform IP forwarding but is not enabled for IP
9422	// forwarding).
9423	Key string `json:"key,omitempty"`
9424
9425	// Value: [Output Only] A warning data value corresponding to the key.
9426	Value string `json:"value,omitempty"`
9427
9428	// ForceSendFields is a list of field names (e.g. "Key") to
9429	// unconditionally include in API requests. By default, fields with
9430	// empty values are omitted from API requests. However, any non-pointer,
9431	// non-interface field appearing in ForceSendFields will be sent to the
9432	// server regardless of whether the field is empty or not. This may be
9433	// used to include empty fields in Patch requests.
9434	ForceSendFields []string `json:"-"`
9435
9436	// NullFields is a list of field names (e.g. "Key") to include in API
9437	// requests with the JSON null value. By default, fields with empty
9438	// values are omitted from API requests. However, any field with an
9439	// empty value appearing in NullFields will be sent to the server as
9440	// null. It is an error if a field in this list has a non-empty value.
9441	// This may be used to include null fields in Patch requests.
9442	NullFields []string `json:"-"`
9443}
9444
9445func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
9446	type NoMethod DisksScopedListWarningData
9447	raw := NoMethod(*s)
9448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9449}
9450
9451// DisplayDevice: A set of Display Device options
9452type DisplayDevice struct {
9453	// EnableDisplay: Defines whether the instance has Display enabled.
9454	EnableDisplay bool `json:"enableDisplay,omitempty"`
9455
9456	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
9457	// unconditionally include in API requests. By default, fields with
9458	// empty values are omitted from API requests. However, any non-pointer,
9459	// non-interface field appearing in ForceSendFields will be sent to the
9460	// server regardless of whether the field is empty or not. This may be
9461	// used to include empty fields in Patch requests.
9462	ForceSendFields []string `json:"-"`
9463
9464	// NullFields is a list of field names (e.g. "EnableDisplay") to include
9465	// in API requests with the JSON null value. By default, fields with
9466	// empty values are omitted from API requests. However, any field with
9467	// an empty value appearing in NullFields will be sent to the server as
9468	// null. It is an error if a field in this list has a non-empty value.
9469	// This may be used to include null fields in Patch requests.
9470	NullFields []string `json:"-"`
9471}
9472
9473func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
9474	type NoMethod DisplayDevice
9475	raw := NoMethod(*s)
9476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9477}
9478
9479type DistributionPolicy struct {
9480	// TargetShape: The distribution shape to which the group converges
9481	// either proactively or on resize events (depending on the value set in
9482	// updatePolicy.instanceRedistributionType).
9483	//
9484	// Possible values:
9485	//   "ANY"
9486	//   "BALANCED"
9487	//   "EVEN"
9488	TargetShape string `json:"targetShape,omitempty"`
9489
9490	// Zones: Zones where the regional managed instance group will create
9491	// and manage its instances.
9492	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
9493
9494	// ForceSendFields is a list of field names (e.g. "TargetShape") to
9495	// unconditionally include in API requests. By default, fields with
9496	// empty values are omitted from API requests. However, any non-pointer,
9497	// non-interface field appearing in ForceSendFields will be sent to the
9498	// server regardless of whether the field is empty or not. This may be
9499	// used to include empty fields in Patch requests.
9500	ForceSendFields []string `json:"-"`
9501
9502	// NullFields is a list of field names (e.g. "TargetShape") to include
9503	// in API requests with the JSON null value. By default, fields with
9504	// empty values are omitted from API requests. However, any field with
9505	// an empty value appearing in NullFields will be sent to the server as
9506	// null. It is an error if a field in this list has a non-empty value.
9507	// This may be used to include null fields in Patch requests.
9508	NullFields []string `json:"-"`
9509}
9510
9511func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
9512	type NoMethod DistributionPolicy
9513	raw := NoMethod(*s)
9514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9515}
9516
9517type DistributionPolicyZoneConfiguration struct {
9518	// Zone: The URL of the zone. The zone must exist in the region where
9519	// the managed instance group is located.
9520	Zone string `json:"zone,omitempty"`
9521
9522	// ForceSendFields is a list of field names (e.g. "Zone") to
9523	// unconditionally include in API requests. By default, fields with
9524	// empty values are omitted from API requests. However, any non-pointer,
9525	// non-interface field appearing in ForceSendFields will be sent to the
9526	// server regardless of whether the field is empty or not. This may be
9527	// used to include empty fields in Patch requests.
9528	ForceSendFields []string `json:"-"`
9529
9530	// NullFields is a list of field names (e.g. "Zone") to include in API
9531	// requests with the JSON null value. By default, fields with empty
9532	// values are omitted from API requests. However, any field with an
9533	// empty value appearing in NullFields will be sent to the server as
9534	// null. It is an error if a field in this list has a non-empty value.
9535	// This may be used to include null fields in Patch requests.
9536	NullFields []string `json:"-"`
9537}
9538
9539func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
9540	type NoMethod DistributionPolicyZoneConfiguration
9541	raw := NoMethod(*s)
9542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9543}
9544
9545// Duration: A Duration represents a fixed-length span of time
9546// represented as a count of seconds and fractions of seconds at
9547// nanosecond resolution. It is independent of any calendar and concepts
9548// like "day" or "month". Range is approximately 10,000 years.
9549type Duration struct {
9550	// Nanos: Span of time that's a fraction of a second at nanosecond
9551	// resolution. Durations less than one second are represented with a 0
9552	// `seconds` field and a positive `nanos` field. Must be from 0 to
9553	// 999,999,999 inclusive.
9554	Nanos int64 `json:"nanos,omitempty"`
9555
9556	// Seconds: Span of time at a resolution of a second. Must be from 0 to
9557	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
9558	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
9559	Seconds int64 `json:"seconds,omitempty,string"`
9560
9561	// ForceSendFields is a list of field names (e.g. "Nanos") to
9562	// unconditionally include in API requests. By default, fields with
9563	// empty values are omitted from API requests. However, any non-pointer,
9564	// non-interface field appearing in ForceSendFields will be sent to the
9565	// server regardless of whether the field is empty or not. This may be
9566	// used to include empty fields in Patch requests.
9567	ForceSendFields []string `json:"-"`
9568
9569	// NullFields is a list of field names (e.g. "Nanos") to include in API
9570	// requests with the JSON null value. By default, fields with empty
9571	// values are omitted from API requests. However, any field with an
9572	// empty value appearing in NullFields will be sent to the server as
9573	// null. It is an error if a field in this list has a non-empty value.
9574	// This may be used to include null fields in Patch requests.
9575	NullFields []string `json:"-"`
9576}
9577
9578func (s *Duration) MarshalJSON() ([]byte, error) {
9579	type NoMethod Duration
9580	raw := NoMethod(*s)
9581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9582}
9583
9584type ExchangedPeeringRoute struct {
9585	// DestRange: The destination range of the route.
9586	DestRange string `json:"destRange,omitempty"`
9587
9588	// Imported: True if the peering route has been imported from a peer.
9589	// The actual import happens if the field
9590	// networkPeering.importCustomRoutes is true for this network, and
9591	// networkPeering.exportCustomRoutes is true for the peer network, and
9592	// the import does not result in a route conflict.
9593	Imported bool `json:"imported,omitempty"`
9594
9595	// NextHopRegion: The region of peering route next hop, only applies to
9596	// dynamic routes.
9597	NextHopRegion string `json:"nextHopRegion,omitempty"`
9598
9599	// Priority: The priority of the peering route.
9600	Priority int64 `json:"priority,omitempty"`
9601
9602	// Type: The type of the peering route.
9603	//
9604	// Possible values:
9605	//   "DYNAMIC_PEERING_ROUTE"
9606	//   "STATIC_PEERING_ROUTE"
9607	//   "SUBNET_PEERING_ROUTE"
9608	Type string `json:"type,omitempty"`
9609
9610	// ForceSendFields is a list of field names (e.g. "DestRange") to
9611	// unconditionally include in API requests. By default, fields with
9612	// empty values are omitted from API requests. However, any non-pointer,
9613	// non-interface field appearing in ForceSendFields will be sent to the
9614	// server regardless of whether the field is empty or not. This may be
9615	// used to include empty fields in Patch requests.
9616	ForceSendFields []string `json:"-"`
9617
9618	// NullFields is a list of field names (e.g. "DestRange") to include in
9619	// API requests with the JSON null value. By default, fields with empty
9620	// values are omitted from API requests. However, any field with an
9621	// empty value appearing in NullFields will be sent to the server as
9622	// null. It is an error if a field in this list has a non-empty value.
9623	// This may be used to include null fields in Patch requests.
9624	NullFields []string `json:"-"`
9625}
9626
9627func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
9628	type NoMethod ExchangedPeeringRoute
9629	raw := NoMethod(*s)
9630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9631}
9632
9633type ExchangedPeeringRoutesList struct {
9634	// Id: [Output Only] Unique identifier for the resource; defined by the
9635	// server.
9636	Id string `json:"id,omitempty"`
9637
9638	// Items: A list of ExchangedPeeringRoute resources.
9639	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
9640
9641	// Kind: [Output Only] Type of resource. Always
9642	// compute#exchangedPeeringRoutesList for exchanged peering routes
9643	// lists.
9644	Kind string `json:"kind,omitempty"`
9645
9646	// NextPageToken: [Output Only] This token allows you to get the next
9647	// page of results for list requests. If the number of results is larger
9648	// than maxResults, use the nextPageToken as a value for the query
9649	// parameter pageToken in the next list request. Subsequent list
9650	// requests will have their own nextPageToken to continue paging through
9651	// the results.
9652	NextPageToken string `json:"nextPageToken,omitempty"`
9653
9654	// SelfLink: [Output Only] Server-defined URL for this resource.
9655	SelfLink string `json:"selfLink,omitempty"`
9656
9657	// Warning: [Output Only] Informational warning message.
9658	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
9659
9660	// ServerResponse contains the HTTP response code and headers from the
9661	// server.
9662	googleapi.ServerResponse `json:"-"`
9663
9664	// ForceSendFields is a list of field names (e.g. "Id") to
9665	// unconditionally include in API requests. By default, fields with
9666	// empty values are omitted from API requests. However, any non-pointer,
9667	// non-interface field appearing in ForceSendFields will be sent to the
9668	// server regardless of whether the field is empty or not. This may be
9669	// used to include empty fields in Patch requests.
9670	ForceSendFields []string `json:"-"`
9671
9672	// NullFields is a list of field names (e.g. "Id") to include in API
9673	// requests with the JSON null value. By default, fields with empty
9674	// values are omitted from API requests. However, any field with an
9675	// empty value appearing in NullFields will be sent to the server as
9676	// null. It is an error if a field in this list has a non-empty value.
9677	// This may be used to include null fields in Patch requests.
9678	NullFields []string `json:"-"`
9679}
9680
9681func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
9682	type NoMethod ExchangedPeeringRoutesList
9683	raw := NoMethod(*s)
9684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9685}
9686
9687// ExchangedPeeringRoutesListWarning: [Output Only] Informational
9688// warning message.
9689type ExchangedPeeringRoutesListWarning struct {
9690	// Code: [Output Only] A warning code, if applicable. For example,
9691	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9692	// the response.
9693	//
9694	// Possible values:
9695	//   "CLEANUP_FAILED"
9696	//   "DEPRECATED_RESOURCE_USED"
9697	//   "DEPRECATED_TYPE_USED"
9698	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9699	//   "EXPERIMENTAL_TYPE_USED"
9700	//   "EXTERNAL_API_WARNING"
9701	//   "FIELD_VALUE_OVERRIDEN"
9702	//   "INJECTED_KERNELS_DEPRECATED"
9703	//   "LARGE_DEPLOYMENT_WARNING"
9704	//   "MISSING_TYPE_DEPENDENCY"
9705	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9706	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9707	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9708	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9709	//   "NEXT_HOP_NOT_RUNNING"
9710	//   "NOT_CRITICAL_ERROR"
9711	//   "NO_RESULTS_ON_PAGE"
9712	//   "PARTIAL_SUCCESS"
9713	//   "REQUIRED_TOS_AGREEMENT"
9714	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9715	//   "RESOURCE_NOT_DELETED"
9716	//   "SCHEMA_VALIDATION_IGNORED"
9717	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9718	//   "UNDECLARED_PROPERTIES"
9719	//   "UNREACHABLE"
9720	Code string `json:"code,omitempty"`
9721
9722	// Data: [Output Only] Metadata about this warning in key: value format.
9723	// For example:
9724	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9725	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
9726
9727	// Message: [Output Only] A human-readable description of the warning
9728	// code.
9729	Message string `json:"message,omitempty"`
9730
9731	// ForceSendFields is a list of field names (e.g. "Code") to
9732	// unconditionally include in API requests. By default, fields with
9733	// empty values are omitted from API requests. However, any non-pointer,
9734	// non-interface field appearing in ForceSendFields will be sent to the
9735	// server regardless of whether the field is empty or not. This may be
9736	// used to include empty fields in Patch requests.
9737	ForceSendFields []string `json:"-"`
9738
9739	// NullFields is a list of field names (e.g. "Code") to include in API
9740	// requests with the JSON null value. By default, fields with empty
9741	// values are omitted from API requests. However, any field with an
9742	// empty value appearing in NullFields will be sent to the server as
9743	// null. It is an error if a field in this list has a non-empty value.
9744	// This may be used to include null fields in Patch requests.
9745	NullFields []string `json:"-"`
9746}
9747
9748func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
9749	type NoMethod ExchangedPeeringRoutesListWarning
9750	raw := NoMethod(*s)
9751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9752}
9753
9754type ExchangedPeeringRoutesListWarningData struct {
9755	// Key: [Output Only] A key that provides more detail on the warning
9756	// being returned. For example, for warnings where there are no results
9757	// in a list request for a particular zone, this key might be scope and
9758	// the key value might be the zone name. Other examples might be a key
9759	// indicating a deprecated resource and a suggested replacement, or a
9760	// warning about invalid network settings (for example, if an instance
9761	// attempts to perform IP forwarding but is not enabled for IP
9762	// forwarding).
9763	Key string `json:"key,omitempty"`
9764
9765	// Value: [Output Only] A warning data value corresponding to the key.
9766	Value string `json:"value,omitempty"`
9767
9768	// ForceSendFields is a list of field names (e.g. "Key") to
9769	// unconditionally include in API requests. By default, fields with
9770	// empty values are omitted from API requests. However, any non-pointer,
9771	// non-interface field appearing in ForceSendFields will be sent to the
9772	// server regardless of whether the field is empty or not. This may be
9773	// used to include empty fields in Patch requests.
9774	ForceSendFields []string `json:"-"`
9775
9776	// NullFields is a list of field names (e.g. "Key") to include in API
9777	// requests with the JSON null value. By default, fields with empty
9778	// values are omitted from API requests. However, any field with an
9779	// empty value appearing in NullFields will be sent to the server as
9780	// null. It is an error if a field in this list has a non-empty value.
9781	// This may be used to include null fields in Patch requests.
9782	NullFields []string `json:"-"`
9783}
9784
9785func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
9786	type NoMethod ExchangedPeeringRoutesListWarningData
9787	raw := NoMethod(*s)
9788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9789}
9790
9791// Expr: Represents a textual expression in the Common Expression
9792// Language (CEL) syntax. CEL is a C-like expression language. The
9793// syntax and semantics of CEL are documented at
9794// https://github.com/google/cel-spec.
9795//
9796// Example (Comparison):
9797//
9798// title: "Summary size limit" description: "Determines if a summary is
9799// less than 100 chars" expression: "document.summary.size() <
9800// 100"
9801//
9802// Example (Equality):
9803//
9804// title: "Requestor is owner" description: "Determines if requestor is
9805// the document owner" expression: "document.owner ==
9806// request.auth.claims.email"
9807//
9808// Example (Logic):
9809//
9810// title: "Public documents" description: "Determine whether the
9811// document should be publicly visible" expression: "document.type !=
9812// 'private' && document.type != 'internal'"
9813//
9814// Example (Data Manipulation):
9815//
9816// title: "Notification string" description: "Create a notification
9817// string with a timestamp." expression: "'New message received at ' +
9818// string(document.create_time)"
9819//
9820// The exact variables and functions that may be referenced within an
9821// expression are determined by the service that evaluates it. See the
9822// service documentation for additional information.
9823type Expr struct {
9824	// Description: Optional. Description of the expression. This is a
9825	// longer text which describes the expression, e.g. when hovered over it
9826	// in a UI.
9827	Description string `json:"description,omitempty"`
9828
9829	// Expression: Textual representation of an expression in Common
9830	// Expression Language syntax.
9831	Expression string `json:"expression,omitempty"`
9832
9833	// Location: Optional. String indicating the location of the expression
9834	// for error reporting, e.g. a file name and a position in the file.
9835	Location string `json:"location,omitempty"`
9836
9837	// Title: Optional. Title for the expression, i.e. a short string
9838	// describing its purpose. This can be used e.g. in UIs which allow to
9839	// enter the expression.
9840	Title string `json:"title,omitempty"`
9841
9842	// ForceSendFields is a list of field names (e.g. "Description") to
9843	// unconditionally include in API requests. By default, fields with
9844	// empty values are omitted from API requests. However, any non-pointer,
9845	// non-interface field appearing in ForceSendFields will be sent to the
9846	// server regardless of whether the field is empty or not. This may be
9847	// used to include empty fields in Patch requests.
9848	ForceSendFields []string `json:"-"`
9849
9850	// NullFields is a list of field names (e.g. "Description") to include
9851	// in API requests with the JSON null value. By default, fields with
9852	// empty values are omitted from API requests. However, any field with
9853	// an empty value appearing in NullFields will be sent to the server as
9854	// null. It is an error if a field in this list has a non-empty value.
9855	// This may be used to include null fields in Patch requests.
9856	NullFields []string `json:"-"`
9857}
9858
9859func (s *Expr) MarshalJSON() ([]byte, error) {
9860	type NoMethod Expr
9861	raw := NoMethod(*s)
9862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9863}
9864
9865// ExternalVpnGateway: Represents an external VPN gateway.
9866//
9867// External VPN gateway is the on-premises VPN gateway(s) or another
9868// cloud provider's VPN gateway that connects to your Google Cloud VPN
9869// gateway.
9870//
9871// To create a highly available VPN from Google Cloud Platform to your
9872// VPN gateway or another cloud provider's VPN gateway, you must create
9873// a external VPN gateway resource with information about the other
9874// gateway.
9875//
9876// For more information about using external VPN gateways, see  Creating
9877// an HA VPN gateway and tunnel pair to a peer VPN. (== resource_for
9878// {$api_version}.externalVpnGateways ==)
9879type ExternalVpnGateway struct {
9880	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9881	// format.
9882	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9883
9884	// Description: An optional description of this resource. Provide this
9885	// property when you create the resource.
9886	Description string `json:"description,omitempty"`
9887
9888	// Id: [Output Only] The unique identifier for the resource. This
9889	// identifier is defined by the server.
9890	Id *uint64 `json:"id,omitempty,string"`
9891
9892	// Interfaces: List of interfaces for this external VPN gateway.
9893	//
9894	// If your peer-side gateway is an on-premises gateway and non-AWS cloud
9895	// providers? gateway, at most two interfaces can be provided for an
9896	// external VPN gateway. If your peer side is an AWS virtual private
9897	// gateway, four interfaces should be provided for an external VPN
9898	// gateway.
9899	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
9900
9901	// Kind: [Output Only] Type of the resource. Always
9902	// compute#externalVpnGateway for externalVpnGateways.
9903	Kind string `json:"kind,omitempty"`
9904
9905	// LabelFingerprint: A fingerprint for the labels being applied to this
9906	// ExternalVpnGateway, which is essentially a hash of the labels set
9907	// used for optimistic locking. The fingerprint is initially generated
9908	// by Compute Engine and changes after every request to modify or update
9909	// labels. You must always provide an up-to-date fingerprint hash in
9910	// order to update or change labels, otherwise the request will fail
9911	// with error 412 conditionNotMet.
9912	//
9913	// To see the latest fingerprint, make a get() request to retrieve an
9914	// ExternalVpnGateway.
9915	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9916
9917	// Labels: Labels for this resource. These can only be added or modified
9918	// by the setLabels method. Each label key/value pair must comply with
9919	// RFC1035. Label values may be empty.
9920	Labels map[string]string `json:"labels,omitempty"`
9921
9922	// Name: Name of the resource. Provided by the client when the resource
9923	// is created. The name must be 1-63 characters long, and comply with
9924	// RFC1035. Specifically, the name must be 1-63 characters long and
9925	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9926	// the first character must be a lowercase letter, and all following
9927	// characters must be a dash, lowercase letter, or digit, except the
9928	// last character, which cannot be a dash.
9929	Name string `json:"name,omitempty"`
9930
9931	// RedundancyType: Indicates the user-supplied redundancy type of this
9932	// external VPN gateway.
9933	//
9934	// Possible values:
9935	//   "FOUR_IPS_REDUNDANCY"
9936	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
9937	//   "TWO_IPS_REDUNDANCY"
9938	RedundancyType string `json:"redundancyType,omitempty"`
9939
9940	// SelfLink: [Output Only] Server-defined URL for the resource.
9941	SelfLink string `json:"selfLink,omitempty"`
9942
9943	// ServerResponse contains the HTTP response code and headers from the
9944	// server.
9945	googleapi.ServerResponse `json:"-"`
9946
9947	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
9948	// to unconditionally include in API requests. By default, fields with
9949	// empty values are omitted from API requests. However, any non-pointer,
9950	// non-interface field appearing in ForceSendFields will be sent to the
9951	// server regardless of whether the field is empty or not. This may be
9952	// used to include empty fields in Patch requests.
9953	ForceSendFields []string `json:"-"`
9954
9955	// NullFields is a list of field names (e.g. "CreationTimestamp") to
9956	// include in API requests with the JSON null value. By default, fields
9957	// with empty values are omitted from API requests. However, any field
9958	// with an empty value appearing in NullFields will be sent to the
9959	// server as null. It is an error if a field in this list has a
9960	// non-empty value. This may be used to include null fields in Patch
9961	// requests.
9962	NullFields []string `json:"-"`
9963}
9964
9965func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
9966	type NoMethod ExternalVpnGateway
9967	raw := NoMethod(*s)
9968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9969}
9970
9971// ExternalVpnGatewayInterface: The interface for the external VPN
9972// gateway.
9973type ExternalVpnGatewayInterface struct {
9974	// Id: The numeric ID of this interface. The allowed input values for
9975	// this id for different redundancy types of external VPN gateway:
9976	// - SINGLE_IP_INTERNALLY_REDUNDANT - 0
9977	// - TWO_IPS_REDUNDANCY - 0, 1
9978	// - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
9979	Id int64 `json:"id,omitempty"`
9980
9981	// IpAddress: IP address of the interface in the external VPN gateway.
9982	// Only IPv4 is supported. This IP address can be either from your
9983	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
9984	// be an IP address from Google Compute Engine.
9985	IpAddress string `json:"ipAddress,omitempty"`
9986
9987	// ForceSendFields is a list of field names (e.g. "Id") to
9988	// unconditionally include in API requests. By default, fields with
9989	// empty values are omitted from API requests. However, any non-pointer,
9990	// non-interface field appearing in ForceSendFields will be sent to the
9991	// server regardless of whether the field is empty or not. This may be
9992	// used to include empty fields in Patch requests.
9993	ForceSendFields []string `json:"-"`
9994
9995	// NullFields is a list of field names (e.g. "Id") to include in API
9996	// requests with the JSON null value. By default, fields with empty
9997	// values are omitted from API requests. However, any field with an
9998	// empty value appearing in NullFields will be sent to the server as
9999	// null. It is an error if a field in this list has a non-empty value.
10000	// This may be used to include null fields in Patch requests.
10001	NullFields []string `json:"-"`
10002}
10003
10004func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
10005	type NoMethod ExternalVpnGatewayInterface
10006	raw := NoMethod(*s)
10007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10008}
10009
10010// ExternalVpnGatewayList: Response to the list request, and contains a
10011// list of externalVpnGateways.
10012type ExternalVpnGatewayList struct {
10013	Etag string `json:"etag,omitempty"`
10014
10015	// Id: [Output Only] Unique identifier for the resource; defined by the
10016	// server.
10017	Id string `json:"id,omitempty"`
10018
10019	// Items: A list of ExternalVpnGateway resources.
10020	Items []*ExternalVpnGateway `json:"items,omitempty"`
10021
10022	// Kind: [Output Only] Type of resource. Always
10023	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
10024	Kind string `json:"kind,omitempty"`
10025
10026	// NextPageToken: [Output Only] This token allows you to get the next
10027	// page of results for list requests. If the number of results is larger
10028	// than maxResults, use the nextPageToken as a value for the query
10029	// parameter pageToken in the next list request. Subsequent list
10030	// requests will have their own nextPageToken to continue paging through
10031	// the results.
10032	NextPageToken string `json:"nextPageToken,omitempty"`
10033
10034	// SelfLink: [Output Only] Server-defined URL for this resource.
10035	SelfLink string `json:"selfLink,omitempty"`
10036
10037	// Warning: [Output Only] Informational warning message.
10038	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
10039
10040	// ServerResponse contains the HTTP response code and headers from the
10041	// server.
10042	googleapi.ServerResponse `json:"-"`
10043
10044	// ForceSendFields is a list of field names (e.g. "Etag") to
10045	// unconditionally include in API requests. By default, fields with
10046	// empty values are omitted from API requests. However, any non-pointer,
10047	// non-interface field appearing in ForceSendFields will be sent to the
10048	// server regardless of whether the field is empty or not. This may be
10049	// used to include empty fields in Patch requests.
10050	ForceSendFields []string `json:"-"`
10051
10052	// NullFields is a list of field names (e.g. "Etag") to include in API
10053	// requests with the JSON null value. By default, fields with empty
10054	// values are omitted from API requests. However, any field with an
10055	// empty value appearing in NullFields will be sent to the server as
10056	// null. It is an error if a field in this list has a non-empty value.
10057	// This may be used to include null fields in Patch requests.
10058	NullFields []string `json:"-"`
10059}
10060
10061func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
10062	type NoMethod ExternalVpnGatewayList
10063	raw := NoMethod(*s)
10064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10065}
10066
10067// ExternalVpnGatewayListWarning: [Output Only] Informational warning
10068// message.
10069type ExternalVpnGatewayListWarning struct {
10070	// Code: [Output Only] A warning code, if applicable. For example,
10071	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10072	// the response.
10073	//
10074	// Possible values:
10075	//   "CLEANUP_FAILED"
10076	//   "DEPRECATED_RESOURCE_USED"
10077	//   "DEPRECATED_TYPE_USED"
10078	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10079	//   "EXPERIMENTAL_TYPE_USED"
10080	//   "EXTERNAL_API_WARNING"
10081	//   "FIELD_VALUE_OVERRIDEN"
10082	//   "INJECTED_KERNELS_DEPRECATED"
10083	//   "LARGE_DEPLOYMENT_WARNING"
10084	//   "MISSING_TYPE_DEPENDENCY"
10085	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10086	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10087	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10088	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10089	//   "NEXT_HOP_NOT_RUNNING"
10090	//   "NOT_CRITICAL_ERROR"
10091	//   "NO_RESULTS_ON_PAGE"
10092	//   "PARTIAL_SUCCESS"
10093	//   "REQUIRED_TOS_AGREEMENT"
10094	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10095	//   "RESOURCE_NOT_DELETED"
10096	//   "SCHEMA_VALIDATION_IGNORED"
10097	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10098	//   "UNDECLARED_PROPERTIES"
10099	//   "UNREACHABLE"
10100	Code string `json:"code,omitempty"`
10101
10102	// Data: [Output Only] Metadata about this warning in key: value format.
10103	// For example:
10104	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10105	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
10106
10107	// Message: [Output Only] A human-readable description of the warning
10108	// code.
10109	Message string `json:"message,omitempty"`
10110
10111	// ForceSendFields is a list of field names (e.g. "Code") to
10112	// unconditionally include in API requests. By default, fields with
10113	// empty values are omitted from API requests. However, any non-pointer,
10114	// non-interface field appearing in ForceSendFields will be sent to the
10115	// server regardless of whether the field is empty or not. This may be
10116	// used to include empty fields in Patch requests.
10117	ForceSendFields []string `json:"-"`
10118
10119	// NullFields is a list of field names (e.g. "Code") to include in API
10120	// requests with the JSON null value. By default, fields with empty
10121	// values are omitted from API requests. However, any field with an
10122	// empty value appearing in NullFields will be sent to the server as
10123	// null. It is an error if a field in this list has a non-empty value.
10124	// This may be used to include null fields in Patch requests.
10125	NullFields []string `json:"-"`
10126}
10127
10128func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
10129	type NoMethod ExternalVpnGatewayListWarning
10130	raw := NoMethod(*s)
10131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10132}
10133
10134type ExternalVpnGatewayListWarningData struct {
10135	// Key: [Output Only] A key that provides more detail on the warning
10136	// being returned. For example, for warnings where there are no results
10137	// in a list request for a particular zone, this key might be scope and
10138	// the key value might be the zone name. Other examples might be a key
10139	// indicating a deprecated resource and a suggested replacement, or a
10140	// warning about invalid network settings (for example, if an instance
10141	// attempts to perform IP forwarding but is not enabled for IP
10142	// forwarding).
10143	Key string `json:"key,omitempty"`
10144
10145	// Value: [Output Only] A warning data value corresponding to the key.
10146	Value string `json:"value,omitempty"`
10147
10148	// ForceSendFields is a list of field names (e.g. "Key") to
10149	// unconditionally include in API requests. By default, fields with
10150	// empty values are omitted from API requests. However, any non-pointer,
10151	// non-interface field appearing in ForceSendFields will be sent to the
10152	// server regardless of whether the field is empty or not. This may be
10153	// used to include empty fields in Patch requests.
10154	ForceSendFields []string `json:"-"`
10155
10156	// NullFields is a list of field names (e.g. "Key") to include in API
10157	// requests with the JSON null value. By default, fields with empty
10158	// values are omitted from API requests. However, any field with an
10159	// empty value appearing in NullFields will be sent to the server as
10160	// null. It is an error if a field in this list has a non-empty value.
10161	// This may be used to include null fields in Patch requests.
10162	NullFields []string `json:"-"`
10163}
10164
10165func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
10166	type NoMethod ExternalVpnGatewayListWarningData
10167	raw := NoMethod(*s)
10168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10169}
10170
10171type FileContentBuffer struct {
10172	// Content: The raw content in the secure keys file.
10173	Content string `json:"content,omitempty"`
10174
10175	// FileType: The file type of source file.
10176	//
10177	// Possible values:
10178	//   "BIN"
10179	//   "UNDEFINED"
10180	//   "X509"
10181	FileType string `json:"fileType,omitempty"`
10182
10183	// ForceSendFields is a list of field names (e.g. "Content") to
10184	// unconditionally include in API requests. By default, fields with
10185	// empty values are omitted from API requests. However, any non-pointer,
10186	// non-interface field appearing in ForceSendFields will be sent to the
10187	// server regardless of whether the field is empty or not. This may be
10188	// used to include empty fields in Patch requests.
10189	ForceSendFields []string `json:"-"`
10190
10191	// NullFields is a list of field names (e.g. "Content") to include in
10192	// API requests with the JSON null value. By default, fields with empty
10193	// values are omitted from API requests. However, any field with an
10194	// empty value appearing in NullFields will be sent to the server as
10195	// null. It is an error if a field in this list has a non-empty value.
10196	// This may be used to include null fields in Patch requests.
10197	NullFields []string `json:"-"`
10198}
10199
10200func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
10201	type NoMethod FileContentBuffer
10202	raw := NoMethod(*s)
10203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10204}
10205
10206// Firewall: Represents a Firewall Rule resource.
10207//
10208// Firewall rules allow or deny ingress traffic to, and egress traffic
10209// from your instances. For more information, read Firewall rules.
10210type Firewall struct {
10211	// Allowed: The list of ALLOW rules specified by this firewall. Each
10212	// rule specifies a protocol and port-range tuple that describes a
10213	// permitted connection.
10214	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
10215
10216	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10217	// format.
10218	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10219
10220	// Denied: The list of DENY rules specified by this firewall. Each rule
10221	// specifies a protocol and port-range tuple that describes a denied
10222	// connection.
10223	Denied []*FirewallDenied `json:"denied,omitempty"`
10224
10225	// Description: An optional description of this resource. Provide this
10226	// field when you create the resource.
10227	Description string `json:"description,omitempty"`
10228
10229	// DestinationRanges: If destination ranges are specified, the firewall
10230	// rule applies only to traffic that has destination IP address in these
10231	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
10232	// supported.
10233	DestinationRanges []string `json:"destinationRanges,omitempty"`
10234
10235	// Direction: Direction of traffic to which this firewall applies,
10236	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
10237	// traffic, you cannot specify the destinationRanges field, and for
10238	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
10239	// fields.
10240	//
10241	// Possible values:
10242	//   "EGRESS"
10243	//   "INGRESS"
10244	Direction string `json:"direction,omitempty"`
10245
10246	// Disabled: Denotes whether the firewall rule is disabled. When set to
10247	// true, the firewall rule is not enforced and the network behaves as if
10248	// it did not exist. If this is unspecified, the firewall rule will be
10249	// enabled.
10250	Disabled bool `json:"disabled,omitempty"`
10251
10252	// EnableLogging: Deprecated in favor of enable in LogConfig. This field
10253	// denotes whether to enable logging for a particular firewall rule. If
10254	// logging is enabled, logs will be exported t Cloud Logging.
10255	EnableLogging bool `json:"enableLogging,omitempty"`
10256
10257	// Id: [Output Only] The unique identifier for the resource. This
10258	// identifier is defined by the server.
10259	Id uint64 `json:"id,omitempty,string"`
10260
10261	// Kind: [Output Only] Type of the resource. Always compute#firewall for
10262	// firewall rules.
10263	Kind string `json:"kind,omitempty"`
10264
10265	// LogConfig: This field denotes the logging options for a particular
10266	// firewall rule. If logging is enabled, logs will be exported to Cloud
10267	// Logging.
10268	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
10269
10270	// Name: Name of the resource; provided by the client when the resource
10271	// is created. The name must be 1-63 characters long, and comply with
10272	// RFC1035. Specifically, the name must be 1-63 characters long and
10273	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
10274	// character must be a lowercase letter, and all following characters
10275	// (except for the last character) must be a dash, lowercase letter, or
10276	// digit. The last character must be a lowercase letter or digit.
10277	Name string `json:"name,omitempty"`
10278
10279	// Network: URL of the network resource for this firewall rule. If not
10280	// specified when creating a firewall rule, the default network is
10281	// used:
10282	// global/networks/default
10283	// If you choose to specify this field, you can specify the network as a
10284	// full or partial URL. For example, the following are all valid URLs:
10285	//
10286	// -
10287	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
10288	//
10289	// - projects/myproject/global/networks/my-network
10290	// - global/networks/default
10291	Network string `json:"network,omitempty"`
10292
10293	// Priority: Priority for this rule. This is an integer between `0` and
10294	// `65535`, both inclusive. The default value is `1000`. Relative
10295	// priorities determine which rule takes effect if multiple rules apply.
10296	// Lower values indicate higher priority. For example, a rule with
10297	// priority `0` has higher precedence than a rule with priority `1`.
10298	// DENY rules take precedence over ALLOW rules if they have equal
10299	// priority. Note that VPC networks have implied rules with a priority
10300	// of `65535`. To avoid conflicts with the implied rules, use a priority
10301	// number less than `65535`.
10302	Priority int64 `json:"priority,omitempty"`
10303
10304	// SelfLink: [Output Only] Server-defined URL for the resource.
10305	SelfLink string `json:"selfLink,omitempty"`
10306
10307	// SourceRanges: If source ranges are specified, the firewall rule
10308	// applies only to traffic that has a source IP address in these ranges.
10309	// These ranges must be expressed in CIDR format. One or both of
10310	// sourceRanges and sourceTags may be set. If both fields are set, the
10311	// rule applies to traffic that has a source IP address within
10312	// sourceRanges OR a source IP from a resource with a matching tag
10313	// listed in the sourceTags field. The connection does not need to match
10314	// both fields for the rule to apply. Only IPv4 is supported.
10315	SourceRanges []string `json:"sourceRanges,omitempty"`
10316
10317	// SourceServiceAccounts: If source service accounts are specified, the
10318	// firewall rules apply only to traffic originating from an instance
10319	// with a service account in this list. Source service accounts cannot
10320	// be used to control traffic to an instance's external IP address
10321	// because service accounts are associated with an instance, not an IP
10322	// address. sourceRanges can be set at the same time as
10323	// sourceServiceAccounts. If both are set, the firewall applies to
10324	// traffic that has a source IP address within the sourceRanges OR a
10325	// source IP that belongs to an instance with service account listed in
10326	// sourceServiceAccount. The connection does not need to match both
10327	// fields for the firewall to apply. sourceServiceAccounts cannot be
10328	// used at the same time as sourceTags or targetTags.
10329	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
10330
10331	// SourceTags: If source tags are specified, the firewall rule applies
10332	// only to traffic with source IPs that match the primary network
10333	// interfaces of VM instances that have the tag and are in the same VPC
10334	// network. Source tags cannot be used to control traffic to an
10335	// instance's external IP address, it only applies to traffic between
10336	// instances in the same virtual network. Because tags are associated
10337	// with instances, not IP addresses. One or both of sourceRanges and
10338	// sourceTags may be set. If both fields are set, the firewall applies
10339	// to traffic that has a source IP address within sourceRanges OR a
10340	// source IP from a resource with a matching tag listed in the
10341	// sourceTags field. The connection does not need to match both fields
10342	// for the firewall to apply.
10343	SourceTags []string `json:"sourceTags,omitempty"`
10344
10345	// TargetServiceAccounts: A list of service accounts indicating sets of
10346	// instances located in the network that may make network connections as
10347	// specified in allowed[]. targetServiceAccounts cannot be used at the
10348	// same time as targetTags or sourceTags. If neither
10349	// targetServiceAccounts nor targetTags are specified, the firewall rule
10350	// applies to all instances on the specified network.
10351	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
10352
10353	// TargetTags: A list of tags that controls which instances the firewall
10354	// rule applies to. If targetTags are specified, then the firewall rule
10355	// applies only to instances in the VPC network that have one of those
10356	// tags. If no targetTags are specified, the firewall rule applies to
10357	// all instances on the specified network.
10358	TargetTags []string `json:"targetTags,omitempty"`
10359
10360	// ServerResponse contains the HTTP response code and headers from the
10361	// server.
10362	googleapi.ServerResponse `json:"-"`
10363
10364	// ForceSendFields is a list of field names (e.g. "Allowed") to
10365	// unconditionally include in API requests. By default, fields with
10366	// empty values are omitted from API requests. However, any non-pointer,
10367	// non-interface field appearing in ForceSendFields will be sent to the
10368	// server regardless of whether the field is empty or not. This may be
10369	// used to include empty fields in Patch requests.
10370	ForceSendFields []string `json:"-"`
10371
10372	// NullFields is a list of field names (e.g. "Allowed") to include in
10373	// API requests with the JSON null value. By default, fields with empty
10374	// values are omitted from API requests. However, any field with an
10375	// empty value appearing in NullFields will be sent to the server as
10376	// null. It is an error if a field in this list has a non-empty value.
10377	// This may be used to include null fields in Patch requests.
10378	NullFields []string `json:"-"`
10379}
10380
10381func (s *Firewall) MarshalJSON() ([]byte, error) {
10382	type NoMethod Firewall
10383	raw := NoMethod(*s)
10384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10385}
10386
10387type FirewallAllowed struct {
10388	// IPProtocol: The IP protocol to which this rule applies. The protocol
10389	// type is required when creating a firewall rule. This value can either
10390	// be one of the following well known protocol strings (tcp, udp, icmp,
10391	// esp, ah, ipip, sctp) or the IP protocol number.
10392	IPProtocol string `json:"IPProtocol,omitempty"`
10393
10394	// Ports: An optional list of ports to which this rule applies. This
10395	// field is only applicable for the UDP or TCP protocol. Each entry must
10396	// be either an integer or a range. If not specified, this rule applies
10397	// to connections through any port.
10398	//
10399	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
10400	Ports []string `json:"ports,omitempty"`
10401
10402	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10403	// unconditionally include in API requests. By default, fields with
10404	// empty values are omitted from API requests. However, any non-pointer,
10405	// non-interface field appearing in ForceSendFields will be sent to the
10406	// server regardless of whether the field is empty or not. This may be
10407	// used to include empty fields in Patch requests.
10408	ForceSendFields []string `json:"-"`
10409
10410	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10411	// API requests with the JSON null value. By default, fields with empty
10412	// values are omitted from API requests. However, any field with an
10413	// empty value appearing in NullFields will be sent to the server as
10414	// null. It is an error if a field in this list has a non-empty value.
10415	// This may be used to include null fields in Patch requests.
10416	NullFields []string `json:"-"`
10417}
10418
10419func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
10420	type NoMethod FirewallAllowed
10421	raw := NoMethod(*s)
10422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10423}
10424
10425type FirewallDenied struct {
10426	// IPProtocol: The IP protocol to which this rule applies. The protocol
10427	// type is required when creating a firewall rule. This value can either
10428	// be one of the following well known protocol strings (tcp, udp, icmp,
10429	// esp, ah, ipip, sctp) or the IP protocol number.
10430	IPProtocol string `json:"IPProtocol,omitempty"`
10431
10432	// Ports: An optional list of ports to which this rule applies. This
10433	// field is only applicable for the UDP or TCP protocol. Each entry must
10434	// be either an integer or a range. If not specified, this rule applies
10435	// to connections through any port.
10436	//
10437	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
10438	Ports []string `json:"ports,omitempty"`
10439
10440	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10441	// unconditionally include in API requests. By default, fields with
10442	// empty values are omitted from API requests. However, any non-pointer,
10443	// non-interface field appearing in ForceSendFields will be sent to the
10444	// server regardless of whether the field is empty or not. This may be
10445	// used to include empty fields in Patch requests.
10446	ForceSendFields []string `json:"-"`
10447
10448	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10449	// API requests with the JSON null value. By default, fields with empty
10450	// values are omitted from API requests. However, any field with an
10451	// empty value appearing in NullFields will be sent to the server as
10452	// null. It is an error if a field in this list has a non-empty value.
10453	// This may be used to include null fields in Patch requests.
10454	NullFields []string `json:"-"`
10455}
10456
10457func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
10458	type NoMethod FirewallDenied
10459	raw := NoMethod(*s)
10460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10461}
10462
10463// FirewallList: Contains a list of firewalls.
10464type FirewallList struct {
10465	// Id: [Output Only] Unique identifier for the resource; defined by the
10466	// server.
10467	Id string `json:"id,omitempty"`
10468
10469	// Items: A list of Firewall resources.
10470	Items []*Firewall `json:"items,omitempty"`
10471
10472	// Kind: [Output Only] Type of resource. Always compute#firewallList for
10473	// lists of firewalls.
10474	Kind string `json:"kind,omitempty"`
10475
10476	// NextPageToken: [Output Only] This token allows you to get the next
10477	// page of results for list requests. If the number of results is larger
10478	// than maxResults, use the nextPageToken as a value for the query
10479	// parameter pageToken in the next list request. Subsequent list
10480	// requests will have their own nextPageToken to continue paging through
10481	// the results.
10482	NextPageToken string `json:"nextPageToken,omitempty"`
10483
10484	// SelfLink: [Output Only] Server-defined URL for this resource.
10485	SelfLink string `json:"selfLink,omitempty"`
10486
10487	// Warning: [Output Only] Informational warning message.
10488	Warning *FirewallListWarning `json:"warning,omitempty"`
10489
10490	// ServerResponse contains the HTTP response code and headers from the
10491	// server.
10492	googleapi.ServerResponse `json:"-"`
10493
10494	// ForceSendFields is a list of field names (e.g. "Id") to
10495	// unconditionally include in API requests. By default, fields with
10496	// empty values are omitted from API requests. However, any non-pointer,
10497	// non-interface field appearing in ForceSendFields will be sent to the
10498	// server regardless of whether the field is empty or not. This may be
10499	// used to include empty fields in Patch requests.
10500	ForceSendFields []string `json:"-"`
10501
10502	// NullFields is a list of field names (e.g. "Id") to include in API
10503	// requests with the JSON null value. By default, fields with empty
10504	// values are omitted from API requests. However, any field with an
10505	// empty value appearing in NullFields will be sent to the server as
10506	// null. It is an error if a field in this list has a non-empty value.
10507	// This may be used to include null fields in Patch requests.
10508	NullFields []string `json:"-"`
10509}
10510
10511func (s *FirewallList) MarshalJSON() ([]byte, error) {
10512	type NoMethod FirewallList
10513	raw := NoMethod(*s)
10514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10515}
10516
10517// FirewallListWarning: [Output Only] Informational warning message.
10518type FirewallListWarning struct {
10519	// Code: [Output Only] A warning code, if applicable. For example,
10520	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10521	// the response.
10522	//
10523	// Possible values:
10524	//   "CLEANUP_FAILED"
10525	//   "DEPRECATED_RESOURCE_USED"
10526	//   "DEPRECATED_TYPE_USED"
10527	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10528	//   "EXPERIMENTAL_TYPE_USED"
10529	//   "EXTERNAL_API_WARNING"
10530	//   "FIELD_VALUE_OVERRIDEN"
10531	//   "INJECTED_KERNELS_DEPRECATED"
10532	//   "LARGE_DEPLOYMENT_WARNING"
10533	//   "MISSING_TYPE_DEPENDENCY"
10534	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10535	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10536	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10537	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10538	//   "NEXT_HOP_NOT_RUNNING"
10539	//   "NOT_CRITICAL_ERROR"
10540	//   "NO_RESULTS_ON_PAGE"
10541	//   "PARTIAL_SUCCESS"
10542	//   "REQUIRED_TOS_AGREEMENT"
10543	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10544	//   "RESOURCE_NOT_DELETED"
10545	//   "SCHEMA_VALIDATION_IGNORED"
10546	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10547	//   "UNDECLARED_PROPERTIES"
10548	//   "UNREACHABLE"
10549	Code string `json:"code,omitempty"`
10550
10551	// Data: [Output Only] Metadata about this warning in key: value format.
10552	// For example:
10553	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10554	Data []*FirewallListWarningData `json:"data,omitempty"`
10555
10556	// Message: [Output Only] A human-readable description of the warning
10557	// code.
10558	Message string `json:"message,omitempty"`
10559
10560	// ForceSendFields is a list of field names (e.g. "Code") to
10561	// unconditionally include in API requests. By default, fields with
10562	// empty values are omitted from API requests. However, any non-pointer,
10563	// non-interface field appearing in ForceSendFields will be sent to the
10564	// server regardless of whether the field is empty or not. This may be
10565	// used to include empty fields in Patch requests.
10566	ForceSendFields []string `json:"-"`
10567
10568	// NullFields is a list of field names (e.g. "Code") to include in API
10569	// requests with the JSON null value. By default, fields with empty
10570	// values are omitted from API requests. However, any field with an
10571	// empty value appearing in NullFields will be sent to the server as
10572	// null. It is an error if a field in this list has a non-empty value.
10573	// This may be used to include null fields in Patch requests.
10574	NullFields []string `json:"-"`
10575}
10576
10577func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
10578	type NoMethod FirewallListWarning
10579	raw := NoMethod(*s)
10580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10581}
10582
10583type FirewallListWarningData struct {
10584	// Key: [Output Only] A key that provides more detail on the warning
10585	// being returned. For example, for warnings where there are no results
10586	// in a list request for a particular zone, this key might be scope and
10587	// the key value might be the zone name. Other examples might be a key
10588	// indicating a deprecated resource and a suggested replacement, or a
10589	// warning about invalid network settings (for example, if an instance
10590	// attempts to perform IP forwarding but is not enabled for IP
10591	// forwarding).
10592	Key string `json:"key,omitempty"`
10593
10594	// Value: [Output Only] A warning data value corresponding to the key.
10595	Value string `json:"value,omitempty"`
10596
10597	// ForceSendFields is a list of field names (e.g. "Key") to
10598	// unconditionally include in API requests. By default, fields with
10599	// empty values are omitted from API requests. However, any non-pointer,
10600	// non-interface field appearing in ForceSendFields will be sent to the
10601	// server regardless of whether the field is empty or not. This may be
10602	// used to include empty fields in Patch requests.
10603	ForceSendFields []string `json:"-"`
10604
10605	// NullFields is a list of field names (e.g. "Key") to include in API
10606	// requests with the JSON null value. By default, fields with empty
10607	// values are omitted from API requests. However, any field with an
10608	// empty value appearing in NullFields will be sent to the server as
10609	// null. It is an error if a field in this list has a non-empty value.
10610	// This may be used to include null fields in Patch requests.
10611	NullFields []string `json:"-"`
10612}
10613
10614func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
10615	type NoMethod FirewallListWarningData
10616	raw := NoMethod(*s)
10617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10618}
10619
10620// FirewallLogConfig: The available logging options for a firewall rule.
10621type FirewallLogConfig struct {
10622	// Enable: This field denotes whether to enable logging for a particular
10623	// firewall rule.
10624	Enable bool `json:"enable,omitempty"`
10625
10626	// Metadata: This field can only be specified for a particular firewall
10627	// rule if logging is enabled for that rule. This field denotes whether
10628	// to include or exclude metadata for firewall logs.
10629	//
10630	// Possible values:
10631	//   "EXCLUDE_ALL_METADATA"
10632	//   "INCLUDE_ALL_METADATA"
10633	Metadata string `json:"metadata,omitempty"`
10634
10635	// ForceSendFields is a list of field names (e.g. "Enable") to
10636	// unconditionally include in API requests. By default, fields with
10637	// empty values are omitted from API requests. However, any non-pointer,
10638	// non-interface field appearing in ForceSendFields will be sent to the
10639	// server regardless of whether the field is empty or not. This may be
10640	// used to include empty fields in Patch requests.
10641	ForceSendFields []string `json:"-"`
10642
10643	// NullFields is a list of field names (e.g. "Enable") to include in API
10644	// requests with the JSON null value. By default, fields with empty
10645	// values are omitted from API requests. However, any field with an
10646	// empty value appearing in NullFields will be sent to the server as
10647	// null. It is an error if a field in this list has a non-empty value.
10648	// This may be used to include null fields in Patch requests.
10649	NullFields []string `json:"-"`
10650}
10651
10652func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
10653	type NoMethod FirewallLogConfig
10654	raw := NoMethod(*s)
10655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10656}
10657
10658type FirewallPoliciesListAssociationsResponse struct {
10659	// Associations: A list of associations.
10660	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10661
10662	// Kind: [Output Only] Type of firewallPolicy associations. Always
10663	// compute#FirewallPoliciesListAssociations for lists of firewallPolicy
10664	// associations.
10665	Kind string `json:"kind,omitempty"`
10666
10667	// ServerResponse contains the HTTP response code and headers from the
10668	// server.
10669	googleapi.ServerResponse `json:"-"`
10670
10671	// ForceSendFields is a list of field names (e.g. "Associations") to
10672	// unconditionally include in API requests. By default, fields with
10673	// empty values are omitted from API requests. However, any non-pointer,
10674	// non-interface field appearing in ForceSendFields will be sent to the
10675	// server regardless of whether the field is empty or not. This may be
10676	// used to include empty fields in Patch requests.
10677	ForceSendFields []string `json:"-"`
10678
10679	// NullFields is a list of field names (e.g. "Associations") to include
10680	// in API requests with the JSON null value. By default, fields with
10681	// empty values are omitted from API requests. However, any field with
10682	// an empty value appearing in NullFields will be sent to the server as
10683	// null. It is an error if a field in this list has a non-empty value.
10684	// This may be used to include null fields in Patch requests.
10685	NullFields []string `json:"-"`
10686}
10687
10688func (s *FirewallPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
10689	type NoMethod FirewallPoliciesListAssociationsResponse
10690	raw := NoMethod(*s)
10691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10692}
10693
10694// FirewallPolicy: Represents a Firewall Policy resource. (==
10695// resource_for {$api_version}.firewallPolicies ==)
10696type FirewallPolicy struct {
10697	// Associations: A list of associations that belong to this firewall
10698	// policy.
10699	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10700
10701	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10702	// format.
10703	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10704
10705	// Description: An optional description of this resource. Provide this
10706	// property when you create the resource.
10707	Description string `json:"description,omitempty"`
10708
10709	// DisplayName: Depreacted, please use short name instead. User-provided
10710	// name of the Organization firewall plicy. The name should be unique in
10711	// the organization in which the firewall policy is created. The name
10712	// must be 1-63 characters long, and comply with RFC1035. Specifically,
10713	// the name must be 1-63 characters long and match the regular
10714	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
10715	// character must be a lowercase letter, and all following characters
10716	// must be a dash, lowercase letter, or digit, except the last
10717	// character, which cannot be a dash.
10718	DisplayName string `json:"displayName,omitempty"`
10719
10720	// Fingerprint: Specifies a fingerprint for this resource, which is
10721	// essentially a hash of the metadata's contents and used for optimistic
10722	// locking. The fingerprint is initially generated by Compute Engine and
10723	// changes after every request to modify or update metadata. You must
10724	// always provide an up-to-date fingerprint hash in order to update or
10725	// change metadata, otherwise the request will fail with error 412
10726	// conditionNotMet.
10727	//
10728	// To see the latest fingerprint, make get() request to the firewall
10729	// policy.
10730	Fingerprint string `json:"fingerprint,omitempty"`
10731
10732	// Id: [Output Only] The unique identifier for the resource. This
10733	// identifier is defined by the server.
10734	Id uint64 `json:"id,omitempty,string"`
10735
10736	// Kind: [Output only] Type of the resource. Always
10737	// compute#firewallPolicyfor firewall policies
10738	Kind string `json:"kind,omitempty"`
10739
10740	// Name: [Output Only] Name of the resource. It is a numeric ID
10741	// allocated by GCP which uniquely identifies the Firewall Policy.
10742	Name string `json:"name,omitempty"`
10743
10744	// Parent: [Output Only] The parent of the firewall policy.
10745	Parent string `json:"parent,omitempty"`
10746
10747	// RuleTupleCount: [Output Only] Total count of all firewall policy rule
10748	// tuples. A firewall policy can not exceed a set number of tuples.
10749	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
10750
10751	// Rules: A list of rules that belong to this policy. There must always
10752	// be a default rule (rule with priority 2147483647 and match "*"). If
10753	// no rules are provided when creating a firewall policy, a default rule
10754	// with action "allow" will be added.
10755	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
10756
10757	// SelfLink: [Output Only] Server-defined URL for the resource.
10758	SelfLink string `json:"selfLink,omitempty"`
10759
10760	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
10761	// with the resource id.
10762	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
10763
10764	// ShortName: User-provided name of the Organization firewall plicy. The
10765	// name should be unique in the organization in which the firewall
10766	// policy is created. The name must be 1-63 characters long, and comply
10767	// with RFC1035. Specifically, the name must be 1-63 characters long and
10768	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10769	// the first character must be a lowercase letter, and all following
10770	// characters must be a dash, lowercase letter, or digit, except the
10771	// last character, which cannot be a dash.
10772	ShortName string `json:"shortName,omitempty"`
10773
10774	// ServerResponse contains the HTTP response code and headers from the
10775	// server.
10776	googleapi.ServerResponse `json:"-"`
10777
10778	// ForceSendFields is a list of field names (e.g. "Associations") to
10779	// unconditionally include in API requests. By default, fields with
10780	// empty values are omitted from API requests. However, any non-pointer,
10781	// non-interface field appearing in ForceSendFields will be sent to the
10782	// server regardless of whether the field is empty or not. This may be
10783	// used to include empty fields in Patch requests.
10784	ForceSendFields []string `json:"-"`
10785
10786	// NullFields is a list of field names (e.g. "Associations") to include
10787	// in API requests with the JSON null value. By default, fields with
10788	// empty values are omitted from API requests. However, any field with
10789	// an empty value appearing in NullFields will be sent to the server as
10790	// null. It is an error if a field in this list has a non-empty value.
10791	// This may be used to include null fields in Patch requests.
10792	NullFields []string `json:"-"`
10793}
10794
10795func (s *FirewallPolicy) MarshalJSON() ([]byte, error) {
10796	type NoMethod FirewallPolicy
10797	raw := NoMethod(*s)
10798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10799}
10800
10801type FirewallPolicyAssociation struct {
10802	// AttachmentTarget: The target that the firewall policy is attached to.
10803	AttachmentTarget string `json:"attachmentTarget,omitempty"`
10804
10805	// DisplayName: [Output Only] Deprecated, please use short name instead.
10806	// The display name of the firewall policy of the association.
10807	DisplayName string `json:"displayName,omitempty"`
10808
10809	// FirewallPolicyId: [Output Only] The firewall policy ID of the
10810	// association.
10811	FirewallPolicyId string `json:"firewallPolicyId,omitempty"`
10812
10813	// Name: The name for an association.
10814	Name string `json:"name,omitempty"`
10815
10816	// ShortName: [Output Only] The short name of the firewall policy of the
10817	// association.
10818	ShortName string `json:"shortName,omitempty"`
10819
10820	// ServerResponse contains the HTTP response code and headers from the
10821	// server.
10822	googleapi.ServerResponse `json:"-"`
10823
10824	// ForceSendFields is a list of field names (e.g. "AttachmentTarget") to
10825	// unconditionally include in API requests. By default, fields with
10826	// empty values are omitted from API requests. However, any non-pointer,
10827	// non-interface field appearing in ForceSendFields will be sent to the
10828	// server regardless of whether the field is empty or not. This may be
10829	// used to include empty fields in Patch requests.
10830	ForceSendFields []string `json:"-"`
10831
10832	// NullFields is a list of field names (e.g. "AttachmentTarget") to
10833	// include in API requests with the JSON null value. By default, fields
10834	// with empty values are omitted from API requests. However, any field
10835	// with an empty value appearing in NullFields will be sent to the
10836	// server as null. It is an error if a field in this list has a
10837	// non-empty value. This may be used to include null fields in Patch
10838	// requests.
10839	NullFields []string `json:"-"`
10840}
10841
10842func (s *FirewallPolicyAssociation) MarshalJSON() ([]byte, error) {
10843	type NoMethod FirewallPolicyAssociation
10844	raw := NoMethod(*s)
10845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10846}
10847
10848type FirewallPolicyList struct {
10849	// Id: [Output Only] Unique identifier for the resource; defined by the
10850	// server.
10851	Id string `json:"id,omitempty"`
10852
10853	// Items: A list of FirewallPolicy resources.
10854	Items []*FirewallPolicy `json:"items,omitempty"`
10855
10856	// Kind: [Output Only] Type of resource. Always
10857	// compute#firewallPolicyList for listsof FirewallPolicies
10858	Kind string `json:"kind,omitempty"`
10859
10860	// NextPageToken: [Output Only] This token allows you to get the next
10861	// page of results for list requests. If the number of results is larger
10862	// than maxResults, use the nextPageToken as a value for the query
10863	// parameter pageToken in the next list request. Subsequent list
10864	// requests will have their own nextPageToken to continue paging through
10865	// the results.
10866	NextPageToken string `json:"nextPageToken,omitempty"`
10867
10868	// Warning: [Output Only] Informational warning message.
10869	Warning *FirewallPolicyListWarning `json:"warning,omitempty"`
10870
10871	// ServerResponse contains the HTTP response code and headers from the
10872	// server.
10873	googleapi.ServerResponse `json:"-"`
10874
10875	// ForceSendFields is a list of field names (e.g. "Id") to
10876	// unconditionally include in API requests. By default, fields with
10877	// empty values are omitted from API requests. However, any non-pointer,
10878	// non-interface field appearing in ForceSendFields will be sent to the
10879	// server regardless of whether the field is empty or not. This may be
10880	// used to include empty fields in Patch requests.
10881	ForceSendFields []string `json:"-"`
10882
10883	// NullFields is a list of field names (e.g. "Id") to include in API
10884	// requests with the JSON null value. By default, fields with empty
10885	// values are omitted from API requests. However, any field with an
10886	// empty value appearing in NullFields will be sent to the server as
10887	// null. It is an error if a field in this list has a non-empty value.
10888	// This may be used to include null fields in Patch requests.
10889	NullFields []string `json:"-"`
10890}
10891
10892func (s *FirewallPolicyList) MarshalJSON() ([]byte, error) {
10893	type NoMethod FirewallPolicyList
10894	raw := NoMethod(*s)
10895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10896}
10897
10898// FirewallPolicyListWarning: [Output Only] Informational warning
10899// message.
10900type FirewallPolicyListWarning struct {
10901	// Code: [Output Only] A warning code, if applicable. For example,
10902	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10903	// the response.
10904	//
10905	// Possible values:
10906	//   "CLEANUP_FAILED"
10907	//   "DEPRECATED_RESOURCE_USED"
10908	//   "DEPRECATED_TYPE_USED"
10909	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10910	//   "EXPERIMENTAL_TYPE_USED"
10911	//   "EXTERNAL_API_WARNING"
10912	//   "FIELD_VALUE_OVERRIDEN"
10913	//   "INJECTED_KERNELS_DEPRECATED"
10914	//   "LARGE_DEPLOYMENT_WARNING"
10915	//   "MISSING_TYPE_DEPENDENCY"
10916	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10917	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10918	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10919	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10920	//   "NEXT_HOP_NOT_RUNNING"
10921	//   "NOT_CRITICAL_ERROR"
10922	//   "NO_RESULTS_ON_PAGE"
10923	//   "PARTIAL_SUCCESS"
10924	//   "REQUIRED_TOS_AGREEMENT"
10925	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10926	//   "RESOURCE_NOT_DELETED"
10927	//   "SCHEMA_VALIDATION_IGNORED"
10928	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10929	//   "UNDECLARED_PROPERTIES"
10930	//   "UNREACHABLE"
10931	Code string `json:"code,omitempty"`
10932
10933	// Data: [Output Only] Metadata about this warning in key: value format.
10934	// For example:
10935	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10936	Data []*FirewallPolicyListWarningData `json:"data,omitempty"`
10937
10938	// Message: [Output Only] A human-readable description of the warning
10939	// code.
10940	Message string `json:"message,omitempty"`
10941
10942	// ForceSendFields is a list of field names (e.g. "Code") to
10943	// unconditionally include in API requests. By default, fields with
10944	// empty values are omitted from API requests. However, any non-pointer,
10945	// non-interface field appearing in ForceSendFields will be sent to the
10946	// server regardless of whether the field is empty or not. This may be
10947	// used to include empty fields in Patch requests.
10948	ForceSendFields []string `json:"-"`
10949
10950	// NullFields is a list of field names (e.g. "Code") to include in API
10951	// requests with the JSON null value. By default, fields with empty
10952	// values are omitted from API requests. However, any field with an
10953	// empty value appearing in NullFields will be sent to the server as
10954	// null. It is an error if a field in this list has a non-empty value.
10955	// This may be used to include null fields in Patch requests.
10956	NullFields []string `json:"-"`
10957}
10958
10959func (s *FirewallPolicyListWarning) MarshalJSON() ([]byte, error) {
10960	type NoMethod FirewallPolicyListWarning
10961	raw := NoMethod(*s)
10962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10963}
10964
10965type FirewallPolicyListWarningData struct {
10966	// Key: [Output Only] A key that provides more detail on the warning
10967	// being returned. For example, for warnings where there are no results
10968	// in a list request for a particular zone, this key might be scope and
10969	// the key value might be the zone name. Other examples might be a key
10970	// indicating a deprecated resource and a suggested replacement, or a
10971	// warning about invalid network settings (for example, if an instance
10972	// attempts to perform IP forwarding but is not enabled for IP
10973	// forwarding).
10974	Key string `json:"key,omitempty"`
10975
10976	// Value: [Output Only] A warning data value corresponding to the key.
10977	Value string `json:"value,omitempty"`
10978
10979	// ForceSendFields is a list of field names (e.g. "Key") to
10980	// unconditionally include in API requests. By default, fields with
10981	// empty values are omitted from API requests. However, any non-pointer,
10982	// non-interface field appearing in ForceSendFields will be sent to the
10983	// server regardless of whether the field is empty or not. This may be
10984	// used to include empty fields in Patch requests.
10985	ForceSendFields []string `json:"-"`
10986
10987	// NullFields is a list of field names (e.g. "Key") to include in API
10988	// requests with the JSON null value. By default, fields with empty
10989	// values are omitted from API requests. However, any field with an
10990	// empty value appearing in NullFields will be sent to the server as
10991	// null. It is an error if a field in this list has a non-empty value.
10992	// This may be used to include null fields in Patch requests.
10993	NullFields []string `json:"-"`
10994}
10995
10996func (s *FirewallPolicyListWarningData) MarshalJSON() ([]byte, error) {
10997	type NoMethod FirewallPolicyListWarningData
10998	raw := NoMethod(*s)
10999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11000}
11001
11002// FirewallPolicyRule: Represents a rule that describes one or more
11003// match conditions along with the action to be taken when traffic
11004// matches this condition (allow or deny).
11005type FirewallPolicyRule struct {
11006	// Action: The Action to perform when the client connection triggers the
11007	// rule. Can currently be either "allow" or "deny()" where valid values
11008	// for status are 403, 404, and 502.
11009	Action string `json:"action,omitempty"`
11010
11011	// Description: An optional description for this resource.
11012	Description string `json:"description,omitempty"`
11013
11014	// Direction: The direction in which this rule applies.
11015	//
11016	// Possible values:
11017	//   "EGRESS"
11018	//   "INGRESS"
11019	Direction string `json:"direction,omitempty"`
11020
11021	// Disabled: Denotes whether the firewall policy rule is disabled. When
11022	// set to true, the firewall policy rule is not enforced and traffic
11023	// behaves as if it did not exist. If this is unspecified, the firewall
11024	// policy rule will be enabled.
11025	Disabled bool `json:"disabled,omitempty"`
11026
11027	// EnableLogging: Denotes whether to enable logging for a particular
11028	// rule. If logging is enabled, logs will be exported to the configured
11029	// export destination in Stackdriver. Logs may be exported to BigQuery
11030	// or Pub/Sub. Note: you cannot enable logging on "goto_next" rules.
11031	EnableLogging bool `json:"enableLogging,omitempty"`
11032
11033	// Kind: [Output only] Type of the resource. Always
11034	// compute#firewallPolicyRule for firewall policy rules
11035	Kind string `json:"kind,omitempty"`
11036
11037	// Match: A match condition that incoming traffic is evaluated against.
11038	// If it evaluates to true, the corresponding 'action' is enforced.
11039	Match *FirewallPolicyRuleMatcher `json:"match,omitempty"`
11040
11041	// Priority: An integer indicating the priority of a rule in the list.
11042	// The priority must be a positive value between 0 and 2147483647. Rules
11043	// are evaluated from highest to lowest priority where 0 is the highest
11044	// priority and 2147483647 is the lowest prority.
11045	Priority int64 `json:"priority,omitempty"`
11046
11047	// RuleTupleCount: [Output Only] Calculation of the complexity of a
11048	// single firewall policy rule.
11049	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
11050
11051	// TargetResources: A list of network resource URLs to which this rule
11052	// applies. This field allows you to control which network's VMs get
11053	// this rule. If this field is left blank, all VMs within the
11054	// organization will receive the rule.
11055	TargetResources []string `json:"targetResources,omitempty"`
11056
11057	// TargetServiceAccounts: A list of service accounts indicating the sets
11058	// of instances that are applied with this rule.
11059	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
11060
11061	// ServerResponse contains the HTTP response code and headers from the
11062	// server.
11063	googleapi.ServerResponse `json:"-"`
11064
11065	// ForceSendFields is a list of field names (e.g. "Action") to
11066	// unconditionally include in API requests. By default, fields with
11067	// empty values are omitted from API requests. However, any non-pointer,
11068	// non-interface field appearing in ForceSendFields will be sent to the
11069	// server regardless of whether the field is empty or not. This may be
11070	// used to include empty fields in Patch requests.
11071	ForceSendFields []string `json:"-"`
11072
11073	// NullFields is a list of field names (e.g. "Action") to include in API
11074	// requests with the JSON null value. By default, fields with empty
11075	// values are omitted from API requests. However, any field with an
11076	// empty value appearing in NullFields will be sent to the server as
11077	// null. It is an error if a field in this list has a non-empty value.
11078	// This may be used to include null fields in Patch requests.
11079	NullFields []string `json:"-"`
11080}
11081
11082func (s *FirewallPolicyRule) MarshalJSON() ([]byte, error) {
11083	type NoMethod FirewallPolicyRule
11084	raw := NoMethod(*s)
11085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11086}
11087
11088// FirewallPolicyRuleMatcher: Represents a match condition that incoming
11089// traffic is evaluated against. Exactly one field must be specified.
11090type FirewallPolicyRuleMatcher struct {
11091	// DestIpRanges: CIDR IP address range. Maximum number of destination
11092	// CIDR IP ranges allowed is 256.
11093	DestIpRanges []string `json:"destIpRanges,omitempty"`
11094
11095	// Layer4Configs: Pairs of IP protocols and ports that the rule should
11096	// match.
11097	Layer4Configs []*FirewallPolicyRuleMatcherLayer4Config `json:"layer4Configs,omitempty"`
11098
11099	// SrcIpRanges: CIDR IP address range. Maximum number of source CIDR IP
11100	// ranges allowed is 256.
11101	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
11102
11103	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
11104	// unconditionally include in API requests. By default, fields with
11105	// empty values are omitted from API requests. However, any non-pointer,
11106	// non-interface field appearing in ForceSendFields will be sent to the
11107	// server regardless of whether the field is empty or not. This may be
11108	// used to include empty fields in Patch requests.
11109	ForceSendFields []string `json:"-"`
11110
11111	// NullFields is a list of field names (e.g. "DestIpRanges") to include
11112	// in API requests with the JSON null value. By default, fields with
11113	// empty values are omitted from API requests. However, any field with
11114	// an empty value appearing in NullFields will be sent to the server as
11115	// null. It is an error if a field in this list has a non-empty value.
11116	// This may be used to include null fields in Patch requests.
11117	NullFields []string `json:"-"`
11118}
11119
11120func (s *FirewallPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
11121	type NoMethod FirewallPolicyRuleMatcher
11122	raw := NoMethod(*s)
11123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11124}
11125
11126type FirewallPolicyRuleMatcherLayer4Config struct {
11127	// IpProtocol: The IP protocol to which this rule applies. The protocol
11128	// type is required when creating a firewall rule. This value can either
11129	// be one of the following well known protocol strings (tcp, udp, icmp,
11130	// esp, ah, ipip, sctp), or the IP protocol number.
11131	IpProtocol string `json:"ipProtocol,omitempty"`
11132
11133	// Ports: An optional list of ports to which this rule applies. This
11134	// field is only applicable for UDP or TCP protocol. Each entry must be
11135	// either an integer or a range. If not specified, this rule applies to
11136	// connections through any port.
11137	//
11138	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
11139	Ports []string `json:"ports,omitempty"`
11140
11141	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
11142	// unconditionally include in API requests. By default, fields with
11143	// empty values are omitted from API requests. However, any non-pointer,
11144	// non-interface field appearing in ForceSendFields will be sent to the
11145	// server regardless of whether the field is empty or not. This may be
11146	// used to include empty fields in Patch requests.
11147	ForceSendFields []string `json:"-"`
11148
11149	// NullFields is a list of field names (e.g. "IpProtocol") to include in
11150	// API requests with the JSON null value. By default, fields with empty
11151	// values are omitted from API requests. However, any field with an
11152	// empty value appearing in NullFields will be sent to the server as
11153	// null. It is an error if a field in this list has a non-empty value.
11154	// This may be used to include null fields in Patch requests.
11155	NullFields []string `json:"-"`
11156}
11157
11158func (s *FirewallPolicyRuleMatcherLayer4Config) MarshalJSON() ([]byte, error) {
11159	type NoMethod FirewallPolicyRuleMatcherLayer4Config
11160	raw := NoMethod(*s)
11161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11162}
11163
11164// FixedOrPercent: Encapsulates numeric value that can be either
11165// absolute or relative.
11166type FixedOrPercent struct {
11167	// Calculated: [Output Only] Absolute value of VM instances calculated
11168	// based on the specific mode.
11169	//
11170	//
11171	// - If the value is fixed, then the calculated value is equal to the
11172	// fixed value.
11173	// - If the value is a percent, then the calculated value is percent/100
11174	// * targetSize. For example, the calculated value of a 80% of a managed
11175	// instance group with 150 instances would be (80/100 * 150) = 120 VM
11176	// instances. If there is a remainder, the number is rounded.
11177	Calculated int64 `json:"calculated,omitempty"`
11178
11179	// Fixed: Specifies a fixed number of VM instances. This must be a
11180	// positive integer.
11181	Fixed int64 `json:"fixed,omitempty"`
11182
11183	// Percent: Specifies a percentage of instances between 0 to 100%,
11184	// inclusive. For example, specify 80 for 80%.
11185	Percent int64 `json:"percent,omitempty"`
11186
11187	// ForceSendFields is a list of field names (e.g. "Calculated") to
11188	// unconditionally include in API requests. By default, fields with
11189	// empty values are omitted from API requests. However, any non-pointer,
11190	// non-interface field appearing in ForceSendFields will be sent to the
11191	// server regardless of whether the field is empty or not. This may be
11192	// used to include empty fields in Patch requests.
11193	ForceSendFields []string `json:"-"`
11194
11195	// NullFields is a list of field names (e.g. "Calculated") to include in
11196	// API requests with the JSON null value. By default, fields with empty
11197	// values are omitted from API requests. However, any field with an
11198	// empty value appearing in NullFields will be sent to the server as
11199	// null. It is an error if a field in this list has a non-empty value.
11200	// This may be used to include null fields in Patch requests.
11201	NullFields []string `json:"-"`
11202}
11203
11204func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
11205	type NoMethod FixedOrPercent
11206	raw := NoMethod(*s)
11207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11208}
11209
11210// ForwardingRule: Represents a Forwarding Rule resource.
11211//
11212// Forwarding rule resources in GCP can be either regional or global in
11213// scope:
11214//
11215// * Global
11216// (/compute/docs/reference/rest/{$api_version}/globalForwardingRules) *
11217// Regional
11218// (/compute/docs/reference/rest/{$api_version}/forwardingRules)
11219//
11220// A forwarding rule and its corresponding IP address represent the
11221// frontend configuration of a Google Cloud Platform load balancer.
11222// Forwarding rules can also reference target instances and Cloud VPN
11223// Classic gateways (targetVpnGateway).
11224//
11225// For more information, read Forwarding rule concepts and Using
11226// protocol forwarding.
11227//
11228// (== resource_for {$api_version}.forwardingRules ==) (== resource_for
11229// {$api_version}.globalForwardingRules ==) (== resource_for
11230// {$api_version}.regionForwardingRules ==)
11231type ForwardingRule struct {
11232	// IPAddress: IP address that this forwarding rule serves. When a client
11233	// sends traffic to this IP address, the forwarding rule directs the
11234	// traffic to the target that you specify in the forwarding rule.
11235	//
11236	// If you don't specify a reserved IP address, an ephemeral IP address
11237	// is assigned. Methods for specifying an IP address:
11238	//
11239	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
11240	// https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name
11241	// * Partial URL or by name, as in:
11242	// - projects/project_id/regions/region/addresses/address-name
11243	// - regions/region/addresses/address-name
11244	// - global/addresses/address-name
11245	// - address-name
11246	//
11247	// The loadBalancingScheme and the forwarding rule's target determine
11248	// the type of IP address that you can use. For detailed information,
11249	// refer to IP address specifications
11250	// (/load-balancing/docs/forwarding-rule-concepts#ip_address_specificatio
11251	// ns).
11252	//
11253	// Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
11254	// validateForProxyless field set to true.
11255	//
11256	// For Private Service Connect forwarding rules that forward traffic to
11257	// Google APIs, IP address must be provided.
11258	IPAddress string `json:"IPAddress,omitempty"`
11259
11260	// IPProtocol: The IP protocol to which this rule applies.
11261	//
11262	// For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP,
11263	// ICMP and L3_DEFAULT.
11264	//
11265	// The valid IP protocols are different for different load balancing
11266	// products:
11267	// - Internal TCP/UDP Load Balancing: The load balancing scheme is
11268	// INTERNAL, and one of TCP, UDP or L3_DEFAULT is valid.
11269	// - Traffic Director: The load balancing scheme is
11270	// INTERNAL_SELF_MANAGED, and only TCP is valid.
11271	// - Internal HTTP(S) Load Balancing: The load balancing scheme is
11272	// INTERNAL_MANAGED, and only TCP is valid.
11273	// - HTTP(S), SSL Proxy, and TCP Proxy Load Balancing: The load
11274	// balancing scheme is EXTERNAL and only TCP is valid.
11275	// - Network Load Balancing: The load balancing scheme is EXTERNAL, and
11276	// one of TCP, UDP or L3_DEFAULT is valid.
11277	//
11278	// Possible values:
11279	//   "AH"
11280	//   "ESP"
11281	//   "ICMP"
11282	//   "L3_DEFAULT"
11283	//   "SCTP"
11284	//   "TCP"
11285	//   "UDP"
11286	IPProtocol string `json:"IPProtocol,omitempty"`
11287
11288	// AllPorts: This field is used along with the backend_service field for
11289	// Internal TCP/UDP Load Balancing or Network Load Balancing, or with
11290	// the target field for internal and external TargetInstance.
11291	//
11292	// You can only use one of ports and port_range, or allPorts. The three
11293	// are mutually exclusive.
11294	//
11295	// For TCP, UDP and SCTP traffic, packets addressed to any ports will be
11296	// forwarded to the target or backendService.
11297	AllPorts bool `json:"allPorts,omitempty"`
11298
11299	// AllowGlobalAccess: This field is used along with the backend_service
11300	// field for internal load balancing or with the target field for
11301	// internal TargetInstance. If the field is set to TRUE, clients can
11302	// access ILB from all regions. Otherwise only allows access from
11303	// clients in the same region as the internal load balancer.
11304	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
11305
11306	// BackendService: Identifies the backend service to which the
11307	// forwarding rule sends traffic. Required for Internal TCP/UDP Load
11308	// Balancing and Network Load Balancing; must be omitted for all other
11309	// load balancer types.
11310	BackendService string `json:"backendService,omitempty"`
11311
11312	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11313	// format.
11314	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11315
11316	// Description: An optional description of this resource. Provide this
11317	// property when you create the resource.
11318	Description string `json:"description,omitempty"`
11319
11320	// Fingerprint: Fingerprint of this resource. A hash of the contents
11321	// stored in this object. This field is used in optimistic locking. This
11322	// field will be ignored when inserting a ForwardingRule. Include the
11323	// fingerprint in patch request to ensure that you do not overwrite
11324	// changes that were applied from another concurrent request.
11325	//
11326	// To see the latest fingerprint, make a get() request to retrieve a
11327	// ForwardingRule.
11328	Fingerprint string `json:"fingerprint,omitempty"`
11329
11330	// Id: [Output Only] The unique identifier for the resource. This
11331	// identifier is defined by the server.
11332	Id uint64 `json:"id,omitempty,string"`
11333
11334	// IpVersion: The IP Version that will be used by this forwarding rule.
11335	// Valid options are IPV4 or IPV6. This can only be specified for an
11336	// external global forwarding rule.
11337	//
11338	// Possible values:
11339	//   "IPV4"
11340	//   "IPV6"
11341	//   "UNSPECIFIED_VERSION"
11342	IpVersion string `json:"ipVersion,omitempty"`
11343
11344	// IsMirroringCollector: Indicates whether or not this load balancer can
11345	// be used as a collector for packet mirroring. To prevent mirroring
11346	// loops, instances behind this load balancer will not have their
11347	// traffic mirrored even if a PacketMirroring rule applies to them. This
11348	// can only be set to true for load balancers that have their
11349	// loadBalancingScheme set to INTERNAL.
11350	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
11351
11352	// Kind: [Output Only] Type of the resource. Always
11353	// compute#forwardingRule for Forwarding Rule resources.
11354	Kind string `json:"kind,omitempty"`
11355
11356	// LabelFingerprint: A fingerprint for the labels being applied to this
11357	// resource, which is essentially a hash of the labels set used for
11358	// optimistic locking. The fingerprint is initially generated by Compute
11359	// Engine and changes after every request to modify or update labels.
11360	// You must always provide an up-to-date fingerprint hash in order to
11361	// update or change labels, otherwise the request will fail with error
11362	// 412 conditionNotMet.
11363	//
11364	// To see the latest fingerprint, make a get() request to retrieve a
11365	// ForwardingRule.
11366	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11367
11368	// Labels: Labels for this resource. These can only be added or modified
11369	// by the setLabels method. Each label key/value pair must comply with
11370	// RFC1035. Label values may be empty.
11371	Labels map[string]string `json:"labels,omitempty"`
11372
11373	// LoadBalancingScheme: Specifies the forwarding rule type.
11374	//
11375	//
11376	// - EXTERNAL is used for:
11377	// - Classic Cloud VPN gateways
11378	// - Protocol forwarding to VMs from an external IP address
11379	// - HTTP(S), SSL Proxy, TCP Proxy, and Network Load Balancing
11380	// - INTERNAL is used for:
11381	// - Protocol forwarding to VMs from an internal IP address
11382	// - Internal TCP/UDP Load Balancing
11383	// - INTERNAL_MANAGED is used for:
11384	// - Internal HTTP(S) Load Balancing
11385	// - INTERNAL_SELF_MANAGED is used for:
11386	// - Traffic Director
11387	//
11388	// For more information about forwarding rules, refer to Forwarding rule
11389	// concepts.
11390	//
11391	// Possible values:
11392	//   "EXTERNAL"
11393	//   "INTERNAL"
11394	//   "INTERNAL_MANAGED"
11395	//   "INTERNAL_SELF_MANAGED"
11396	//   "INVALID"
11397	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
11398
11399	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
11400	// restrict routing configuration to a limited set of xDS compliant
11401	// clients. In their xDS requests to Loadbalancer, xDS clients present
11402	// node metadata. When there is a match, the relevant configuration is
11403	// made available to those proxies. Otherwise, all the resources (e.g.
11404	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule will not be
11405	// visible to those proxies.
11406	// For each metadataFilter in this list, if its filterMatchCriteria is
11407	// set to MATCH_ANY, at least one of the filterLabels must match the
11408	// corresponding label provided in the metadata. If its
11409	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
11410	// must match with corresponding labels provided in the metadata. If
11411	// multiple metadataFilters are specified, all of them need to be
11412	// satisfied in order to be considered a match.
11413	// metadataFilters specified here will be applifed before those
11414	// specified in the UrlMap that this ForwardingRule
11415	// references.
11416	// metadataFilters only applies to Loadbalancers that have their
11417	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
11418	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
11419
11420	// Name: Name of the resource; provided by the client when the resource
11421	// is created. The name must be 1-63 characters long, and comply with
11422	// RFC1035. Specifically, the name must be 1-63 characters long and
11423	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11424	// the first character must be a lowercase letter, and all following
11425	// characters must be a dash, lowercase letter, or digit, except the
11426	// last character, which cannot be a dash.
11427	Name string `json:"name,omitempty"`
11428
11429	// Network: This field is not used for external load balancing.
11430	//
11431	// For Internal TCP/UDP Load Balancing, this field identifies the
11432	// network that the load balanced IP should belong to for this
11433	// Forwarding Rule. If this field is not specified, the default network
11434	// will be used.
11435	//
11436	// For Private Service Connect forwarding rules that forward traffic to
11437	// Google APIs, a network must be provided.
11438	Network string `json:"network,omitempty"`
11439
11440	// NetworkTier: This signifies the networking tier used for configuring
11441	// this load balancer and can only take the following values: PREMIUM,
11442	// STANDARD.
11443	//
11444	// For regional ForwardingRule, the valid values are PREMIUM and
11445	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
11446	//
11447	// If this field is not specified, it is assumed to be PREMIUM. If
11448	// IPAddress is specified, this value must be equal to the networkTier
11449	// of the Address.
11450	//
11451	// Possible values:
11452	//   "PREMIUM"
11453	//   "STANDARD"
11454	NetworkTier string `json:"networkTier,omitempty"`
11455
11456	// PortRange: This field can be used only if:
11457	// - Load balancing scheme is one of EXTERNAL,  INTERNAL_SELF_MANAGED or
11458	// INTERNAL_MANAGED
11459	// - IPProtocol is one of TCP, UDP, or SCTP.
11460	//
11461	// Packets addressed to ports in the specified range will be forwarded
11462	// to target or  backend_service.
11463	//
11464	// You can only use one of ports, port_range, or allPorts. The three are
11465	// mutually exclusive.
11466	//
11467	// Forwarding rules with the same [IPAddress, IPProtocol] pair must have
11468	// disjoint ports.
11469	//
11470	// Some types of forwarding target have constraints on the acceptable
11471	// ports:
11472	// - TargetHttpProxy: 80, 8080
11473	// - TargetHttpsProxy: 443
11474	// - TargetGrpcProxy: no constraints
11475	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
11476	// 995, 1688, 1883, 5222
11477	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
11478	// 995, 1688, 1883, 5222
11479	// - TargetVpnGateway: 500, 4500
11480	PortRange string `json:"portRange,omitempty"`
11481
11482	// Ports: The ports field is only supported when the forwarding rule
11483	// references a backend_service directly. Supported load balancing
11484	// products are Internal TCP/UDP Load Balancing and Network Load
11485	// Balancing. Only packets addressed to the specified list of ports are
11486	// forwarded to backends.
11487	//
11488	// You can only use one of ports and port_range, or allPorts. The three
11489	// are mutually exclusive.
11490	//
11491	// You can specify a list of up to five ports, which can be
11492	// non-contiguous.
11493	//
11494	// Forwarding rules with the same [IPAddress, IPProtocol] pair must have
11495	// disjoint ports.
11496	//
11497	// For more information, see Port specifications
11498	// (/load-balancing/docs/forwarding-rule-concepts#port_specifications).
11499	Ports []string `json:"ports,omitempty"`
11500
11501	// PscConnectionId: [Output Only] The PSC connection id of the PSC
11502	// Forwarding Rule.
11503	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
11504
11505	// Possible values:
11506	//   "ACCEPTED"
11507	//   "CLOSED"
11508	//   "PENDING"
11509	//   "REJECTED"
11510	//   "STATUS_UNSPECIFIED"
11511	PscConnectionStatus string `json:"pscConnectionStatus,omitempty"`
11512
11513	// Region: [Output Only] URL of the region where the regional forwarding
11514	// rule resides. This field is not applicable to global forwarding
11515	// rules. You must specify this field as part of the HTTP request URL.
11516	// It is not settable as a field in the request body.
11517	Region string `json:"region,omitempty"`
11518
11519	// SelfLink: [Output Only] Server-defined URL for the resource.
11520	SelfLink string `json:"selfLink,omitempty"`
11521
11522	// ServiceDirectoryRegistrations: Service Directory resources to
11523	// register this forwarding rule with. Currently, only supports a single
11524	// Service Directory resource.
11525	//
11526	// It is only supported for Internal TCP/UDP Load Balancing and Internal
11527	// HTTP(S) Load Balancing.
11528	ServiceDirectoryRegistrations []*ForwardingRuleServiceDirectoryRegistration `json:"serviceDirectoryRegistrations,omitempty"`
11529
11530	// ServiceLabel: An optional prefix to the service name for this
11531	// Forwarding Rule. If specified, the prefix is the first label of the
11532	// fully qualified service name.
11533	//
11534	// The label must be 1-63 characters long, and comply with RFC1035.
11535	// Specifically, the label must be 1-63 characters long and match the
11536	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
11537	// character must be a lowercase letter, and all following characters
11538	// must be a dash, lowercase letter, or digit, except the last
11539	// character, which cannot be a dash.
11540	//
11541	// This field is only used for internal load balancing.
11542	ServiceLabel string `json:"serviceLabel,omitempty"`
11543
11544	// ServiceName: [Output Only] The internal fully qualified service name
11545	// for this Forwarding Rule.
11546	//
11547	// This field is only used for internal load balancing.
11548	ServiceName string `json:"serviceName,omitempty"`
11549
11550	// Subnetwork: This field is only used for internal load balancing.
11551	//
11552	// For internal load balancing, this field identifies the subnetwork
11553	// that the load balanced IP should belong to for this Forwarding
11554	// Rule.
11555	//
11556	// If the network specified is in auto subnet mode, this field is
11557	// optional. However, if the network is in custom subnet mode, a
11558	// subnetwork must be specified.
11559	Subnetwork string `json:"subnetwork,omitempty"`
11560
11561	Target string `json:"target,omitempty"`
11562
11563	// ServerResponse contains the HTTP response code and headers from the
11564	// server.
11565	googleapi.ServerResponse `json:"-"`
11566
11567	// ForceSendFields is a list of field names (e.g. "IPAddress") to
11568	// unconditionally include in API requests. By default, fields with
11569	// empty values are omitted from API requests. However, any non-pointer,
11570	// non-interface field appearing in ForceSendFields will be sent to the
11571	// server regardless of whether the field is empty or not. This may be
11572	// used to include empty fields in Patch requests.
11573	ForceSendFields []string `json:"-"`
11574
11575	// NullFields is a list of field names (e.g. "IPAddress") to include in
11576	// API requests with the JSON null value. By default, fields with empty
11577	// values are omitted from API requests. However, any field with an
11578	// empty value appearing in NullFields will be sent to the server as
11579	// null. It is an error if a field in this list has a non-empty value.
11580	// This may be used to include null fields in Patch requests.
11581	NullFields []string `json:"-"`
11582}
11583
11584func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
11585	type NoMethod ForwardingRule
11586	raw := NoMethod(*s)
11587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11588}
11589
11590type ForwardingRuleAggregatedList struct {
11591	// Id: [Output Only] Unique identifier for the resource; defined by the
11592	// server.
11593	Id string `json:"id,omitempty"`
11594
11595	// Items: A list of ForwardingRulesScopedList resources.
11596	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
11597
11598	// Kind: [Output Only] Type of resource. Always
11599	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
11600	Kind string `json:"kind,omitempty"`
11601
11602	// NextPageToken: [Output Only] This token allows you to get the next
11603	// page of results for list requests. If the number of results is larger
11604	// than maxResults, use the nextPageToken as a value for the query
11605	// parameter pageToken in the next list request. Subsequent list
11606	// requests will have their own nextPageToken to continue paging through
11607	// the results.
11608	NextPageToken string `json:"nextPageToken,omitempty"`
11609
11610	// SelfLink: [Output Only] Server-defined URL for this resource.
11611	SelfLink string `json:"selfLink,omitempty"`
11612
11613	// Unreachables: [Output Only] Unreachable resources.
11614	Unreachables []string `json:"unreachables,omitempty"`
11615
11616	// Warning: [Output Only] Informational warning message.
11617	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
11618
11619	// ServerResponse contains the HTTP response code and headers from the
11620	// server.
11621	googleapi.ServerResponse `json:"-"`
11622
11623	// ForceSendFields is a list of field names (e.g. "Id") to
11624	// unconditionally include in API requests. By default, fields with
11625	// empty values are omitted from API requests. However, any non-pointer,
11626	// non-interface field appearing in ForceSendFields will be sent to the
11627	// server regardless of whether the field is empty or not. This may be
11628	// used to include empty fields in Patch requests.
11629	ForceSendFields []string `json:"-"`
11630
11631	// NullFields is a list of field names (e.g. "Id") to include in API
11632	// requests with the JSON null value. By default, fields with empty
11633	// values are omitted from API requests. However, any field with an
11634	// empty value appearing in NullFields will be sent to the server as
11635	// null. It is an error if a field in this list has a non-empty value.
11636	// This may be used to include null fields in Patch requests.
11637	NullFields []string `json:"-"`
11638}
11639
11640func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
11641	type NoMethod ForwardingRuleAggregatedList
11642	raw := NoMethod(*s)
11643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11644}
11645
11646// ForwardingRuleAggregatedListWarning: [Output Only] Informational
11647// warning message.
11648type ForwardingRuleAggregatedListWarning struct {
11649	// Code: [Output Only] A warning code, if applicable. For example,
11650	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11651	// the response.
11652	//
11653	// Possible values:
11654	//   "CLEANUP_FAILED"
11655	//   "DEPRECATED_RESOURCE_USED"
11656	//   "DEPRECATED_TYPE_USED"
11657	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11658	//   "EXPERIMENTAL_TYPE_USED"
11659	//   "EXTERNAL_API_WARNING"
11660	//   "FIELD_VALUE_OVERRIDEN"
11661	//   "INJECTED_KERNELS_DEPRECATED"
11662	//   "LARGE_DEPLOYMENT_WARNING"
11663	//   "MISSING_TYPE_DEPENDENCY"
11664	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11665	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11666	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11667	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11668	//   "NEXT_HOP_NOT_RUNNING"
11669	//   "NOT_CRITICAL_ERROR"
11670	//   "NO_RESULTS_ON_PAGE"
11671	//   "PARTIAL_SUCCESS"
11672	//   "REQUIRED_TOS_AGREEMENT"
11673	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11674	//   "RESOURCE_NOT_DELETED"
11675	//   "SCHEMA_VALIDATION_IGNORED"
11676	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11677	//   "UNDECLARED_PROPERTIES"
11678	//   "UNREACHABLE"
11679	Code string `json:"code,omitempty"`
11680
11681	// Data: [Output Only] Metadata about this warning in key: value format.
11682	// For example:
11683	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11684	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
11685
11686	// Message: [Output Only] A human-readable description of the warning
11687	// code.
11688	Message string `json:"message,omitempty"`
11689
11690	// ForceSendFields is a list of field names (e.g. "Code") to
11691	// unconditionally include in API requests. By default, fields with
11692	// empty values are omitted from API requests. However, any non-pointer,
11693	// non-interface field appearing in ForceSendFields will be sent to the
11694	// server regardless of whether the field is empty or not. This may be
11695	// used to include empty fields in Patch requests.
11696	ForceSendFields []string `json:"-"`
11697
11698	// NullFields is a list of field names (e.g. "Code") to include in API
11699	// requests with the JSON null value. By default, fields with empty
11700	// values are omitted from API requests. However, any field with an
11701	// empty value appearing in NullFields will be sent to the server as
11702	// null. It is an error if a field in this list has a non-empty value.
11703	// This may be used to include null fields in Patch requests.
11704	NullFields []string `json:"-"`
11705}
11706
11707func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
11708	type NoMethod ForwardingRuleAggregatedListWarning
11709	raw := NoMethod(*s)
11710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11711}
11712
11713type ForwardingRuleAggregatedListWarningData struct {
11714	// Key: [Output Only] A key that provides more detail on the warning
11715	// being returned. For example, for warnings where there are no results
11716	// in a list request for a particular zone, this key might be scope and
11717	// the key value might be the zone name. Other examples might be a key
11718	// indicating a deprecated resource and a suggested replacement, or a
11719	// warning about invalid network settings (for example, if an instance
11720	// attempts to perform IP forwarding but is not enabled for IP
11721	// forwarding).
11722	Key string `json:"key,omitempty"`
11723
11724	// Value: [Output Only] A warning data value corresponding to the key.
11725	Value string `json:"value,omitempty"`
11726
11727	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11745	type NoMethod ForwardingRuleAggregatedListWarningData
11746	raw := NoMethod(*s)
11747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11748}
11749
11750// ForwardingRuleList: Contains a list of ForwardingRule resources.
11751type ForwardingRuleList struct {
11752	// Id: [Output Only] Unique identifier for the resource; defined by the
11753	// server.
11754	Id string `json:"id,omitempty"`
11755
11756	// Items: A list of ForwardingRule resources.
11757	Items []*ForwardingRule `json:"items,omitempty"`
11758
11759	// Kind: Type of resource.
11760	Kind string `json:"kind,omitempty"`
11761
11762	// NextPageToken: [Output Only] This token allows you to get the next
11763	// page of results for list requests. If the number of results is larger
11764	// than maxResults, use the nextPageToken as a value for the query
11765	// parameter pageToken in the next list request. Subsequent list
11766	// requests will have their own nextPageToken to continue paging through
11767	// the results.
11768	NextPageToken string `json:"nextPageToken,omitempty"`
11769
11770	// SelfLink: [Output Only] Server-defined URL for this resource.
11771	SelfLink string `json:"selfLink,omitempty"`
11772
11773	// Warning: [Output Only] Informational warning message.
11774	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
11775
11776	// ServerResponse contains the HTTP response code and headers from the
11777	// server.
11778	googleapi.ServerResponse `json:"-"`
11779
11780	// ForceSendFields is a list of field names (e.g. "Id") to
11781	// unconditionally include in API requests. By default, fields with
11782	// empty values are omitted from API requests. However, any non-pointer,
11783	// non-interface field appearing in ForceSendFields will be sent to the
11784	// server regardless of whether the field is empty or not. This may be
11785	// used to include empty fields in Patch requests.
11786	ForceSendFields []string `json:"-"`
11787
11788	// NullFields is a list of field names (e.g. "Id") to include in API
11789	// requests with the JSON null value. By default, fields with empty
11790	// values are omitted from API requests. However, any field with an
11791	// empty value appearing in NullFields will be sent to the server as
11792	// null. It is an error if a field in this list has a non-empty value.
11793	// This may be used to include null fields in Patch requests.
11794	NullFields []string `json:"-"`
11795}
11796
11797func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
11798	type NoMethod ForwardingRuleList
11799	raw := NoMethod(*s)
11800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11801}
11802
11803// ForwardingRuleListWarning: [Output Only] Informational warning
11804// message.
11805type ForwardingRuleListWarning struct {
11806	// Code: [Output Only] A warning code, if applicable. For example,
11807	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11808	// the response.
11809	//
11810	// Possible values:
11811	//   "CLEANUP_FAILED"
11812	//   "DEPRECATED_RESOURCE_USED"
11813	//   "DEPRECATED_TYPE_USED"
11814	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11815	//   "EXPERIMENTAL_TYPE_USED"
11816	//   "EXTERNAL_API_WARNING"
11817	//   "FIELD_VALUE_OVERRIDEN"
11818	//   "INJECTED_KERNELS_DEPRECATED"
11819	//   "LARGE_DEPLOYMENT_WARNING"
11820	//   "MISSING_TYPE_DEPENDENCY"
11821	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11822	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11823	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11824	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11825	//   "NEXT_HOP_NOT_RUNNING"
11826	//   "NOT_CRITICAL_ERROR"
11827	//   "NO_RESULTS_ON_PAGE"
11828	//   "PARTIAL_SUCCESS"
11829	//   "REQUIRED_TOS_AGREEMENT"
11830	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11831	//   "RESOURCE_NOT_DELETED"
11832	//   "SCHEMA_VALIDATION_IGNORED"
11833	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11834	//   "UNDECLARED_PROPERTIES"
11835	//   "UNREACHABLE"
11836	Code string `json:"code,omitempty"`
11837
11838	// Data: [Output Only] Metadata about this warning in key: value format.
11839	// For example:
11840	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11841	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
11842
11843	// Message: [Output Only] A human-readable description of the warning
11844	// code.
11845	Message string `json:"message,omitempty"`
11846
11847	// ForceSendFields is a list of field names (e.g. "Code") to
11848	// unconditionally include in API requests. By default, fields with
11849	// empty values are omitted from API requests. However, any non-pointer,
11850	// non-interface field appearing in ForceSendFields will be sent to the
11851	// server regardless of whether the field is empty or not. This may be
11852	// used to include empty fields in Patch requests.
11853	ForceSendFields []string `json:"-"`
11854
11855	// NullFields is a list of field names (e.g. "Code") to include in API
11856	// requests with the JSON null value. By default, fields with empty
11857	// values are omitted from API requests. However, any field with an
11858	// empty value appearing in NullFields will be sent to the server as
11859	// null. It is an error if a field in this list has a non-empty value.
11860	// This may be used to include null fields in Patch requests.
11861	NullFields []string `json:"-"`
11862}
11863
11864func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
11865	type NoMethod ForwardingRuleListWarning
11866	raw := NoMethod(*s)
11867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11868}
11869
11870type ForwardingRuleListWarningData struct {
11871	// Key: [Output Only] A key that provides more detail on the warning
11872	// being returned. For example, for warnings where there are no results
11873	// in a list request for a particular zone, this key might be scope and
11874	// the key value might be the zone name. Other examples might be a key
11875	// indicating a deprecated resource and a suggested replacement, or a
11876	// warning about invalid network settings (for example, if an instance
11877	// attempts to perform IP forwarding but is not enabled for IP
11878	// forwarding).
11879	Key string `json:"key,omitempty"`
11880
11881	// Value: [Output Only] A warning data value corresponding to the key.
11882	Value string `json:"value,omitempty"`
11883
11884	// ForceSendFields is a list of field names (e.g. "Key") to
11885	// unconditionally include in API requests. By default, fields with
11886	// empty values are omitted from API requests. However, any non-pointer,
11887	// non-interface field appearing in ForceSendFields will be sent to the
11888	// server regardless of whether the field is empty or not. This may be
11889	// used to include empty fields in Patch requests.
11890	ForceSendFields []string `json:"-"`
11891
11892	// NullFields is a list of field names (e.g. "Key") to include in API
11893	// requests with the JSON null value. By default, fields with empty
11894	// values are omitted from API requests. However, any field with an
11895	// empty value appearing in NullFields will be sent to the server as
11896	// null. It is an error if a field in this list has a non-empty value.
11897	// This may be used to include null fields in Patch requests.
11898	NullFields []string `json:"-"`
11899}
11900
11901func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
11902	type NoMethod ForwardingRuleListWarningData
11903	raw := NoMethod(*s)
11904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11905}
11906
11907type ForwardingRuleReference struct {
11908	ForwardingRule string `json:"forwardingRule,omitempty"`
11909
11910	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
11911	// unconditionally include in API requests. By default, fields with
11912	// empty values are omitted from API requests. However, any non-pointer,
11913	// non-interface field appearing in ForceSendFields will be sent to the
11914	// server regardless of whether the field is empty or not. This may be
11915	// used to include empty fields in Patch requests.
11916	ForceSendFields []string `json:"-"`
11917
11918	// NullFields is a list of field names (e.g. "ForwardingRule") to
11919	// include in API requests with the JSON null value. By default, fields
11920	// with empty values are omitted from API requests. However, any field
11921	// with an empty value appearing in NullFields will be sent to the
11922	// server as null. It is an error if a field in this list has a
11923	// non-empty value. This may be used to include null fields in Patch
11924	// requests.
11925	NullFields []string `json:"-"`
11926}
11927
11928func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
11929	type NoMethod ForwardingRuleReference
11930	raw := NoMethod(*s)
11931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11932}
11933
11934// ForwardingRuleServiceDirectoryRegistration: Describes the
11935// auto-registration of the Forwarding Rule to Service Directory. The
11936// region and project of the Service Directory resource generated from
11937// this registration will be the same as this Forwarding Rule.
11938type ForwardingRuleServiceDirectoryRegistration struct {
11939	// Namespace: Service Directory namespace to register the forwarding
11940	// rule under.
11941	Namespace string `json:"namespace,omitempty"`
11942
11943	// Service: Service Directory service to register the forwarding rule
11944	// under.
11945	Service string `json:"service,omitempty"`
11946
11947	// ServiceDirectoryRegion: [Optional] Service Directory region to
11948	// register this global forwarding rule under. Default to "us-central1".
11949	// Only used for PSC for Google APIs. All PSC for Google APIs Forwarding
11950	// Rules on the same network should use the same Service Directory
11951	// region.
11952	ServiceDirectoryRegion string `json:"serviceDirectoryRegion,omitempty"`
11953
11954	// ForceSendFields is a list of field names (e.g. "Namespace") to
11955	// unconditionally include in API requests. By default, fields with
11956	// empty values are omitted from API requests. However, any non-pointer,
11957	// non-interface field appearing in ForceSendFields will be sent to the
11958	// server regardless of whether the field is empty or not. This may be
11959	// used to include empty fields in Patch requests.
11960	ForceSendFields []string `json:"-"`
11961
11962	// NullFields is a list of field names (e.g. "Namespace") to include in
11963	// API requests with the JSON null value. By default, fields with empty
11964	// values are omitted from API requests. However, any field with an
11965	// empty value appearing in NullFields will be sent to the server as
11966	// null. It is an error if a field in this list has a non-empty value.
11967	// This may be used to include null fields in Patch requests.
11968	NullFields []string `json:"-"`
11969}
11970
11971func (s *ForwardingRuleServiceDirectoryRegistration) MarshalJSON() ([]byte, error) {
11972	type NoMethod ForwardingRuleServiceDirectoryRegistration
11973	raw := NoMethod(*s)
11974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11975}
11976
11977type ForwardingRulesScopedList struct {
11978	// ForwardingRules: A list of forwarding rules contained in this scope.
11979	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
11980
11981	// Warning: Informational warning which replaces the list of forwarding
11982	// rules when the list is empty.
11983	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
11984
11985	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
11986	// unconditionally include in API requests. By default, fields with
11987	// empty values are omitted from API requests. However, any non-pointer,
11988	// non-interface field appearing in ForceSendFields will be sent to the
11989	// server regardless of whether the field is empty or not. This may be
11990	// used to include empty fields in Patch requests.
11991	ForceSendFields []string `json:"-"`
11992
11993	// NullFields is a list of field names (e.g. "ForwardingRules") to
11994	// include in API requests with the JSON null value. By default, fields
11995	// with empty values are omitted from API requests. However, any field
11996	// with an empty value appearing in NullFields will be sent to the
11997	// server as null. It is an error if a field in this list has a
11998	// non-empty value. This may be used to include null fields in Patch
11999	// requests.
12000	NullFields []string `json:"-"`
12001}
12002
12003func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
12004	type NoMethod ForwardingRulesScopedList
12005	raw := NoMethod(*s)
12006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12007}
12008
12009// ForwardingRulesScopedListWarning: Informational warning which
12010// replaces the list of forwarding rules when the list is empty.
12011type ForwardingRulesScopedListWarning struct {
12012	// Code: [Output Only] A warning code, if applicable. For example,
12013	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12014	// the response.
12015	//
12016	// Possible values:
12017	//   "CLEANUP_FAILED"
12018	//   "DEPRECATED_RESOURCE_USED"
12019	//   "DEPRECATED_TYPE_USED"
12020	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12021	//   "EXPERIMENTAL_TYPE_USED"
12022	//   "EXTERNAL_API_WARNING"
12023	//   "FIELD_VALUE_OVERRIDEN"
12024	//   "INJECTED_KERNELS_DEPRECATED"
12025	//   "LARGE_DEPLOYMENT_WARNING"
12026	//   "MISSING_TYPE_DEPENDENCY"
12027	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12028	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12029	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12030	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12031	//   "NEXT_HOP_NOT_RUNNING"
12032	//   "NOT_CRITICAL_ERROR"
12033	//   "NO_RESULTS_ON_PAGE"
12034	//   "PARTIAL_SUCCESS"
12035	//   "REQUIRED_TOS_AGREEMENT"
12036	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12037	//   "RESOURCE_NOT_DELETED"
12038	//   "SCHEMA_VALIDATION_IGNORED"
12039	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12040	//   "UNDECLARED_PROPERTIES"
12041	//   "UNREACHABLE"
12042	Code string `json:"code,omitempty"`
12043
12044	// Data: [Output Only] Metadata about this warning in key: value format.
12045	// For example:
12046	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12047	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
12048
12049	// Message: [Output Only] A human-readable description of the warning
12050	// code.
12051	Message string `json:"message,omitempty"`
12052
12053	// ForceSendFields is a list of field names (e.g. "Code") to
12054	// unconditionally include in API requests. By default, fields with
12055	// empty values are omitted from API requests. However, any non-pointer,
12056	// non-interface field appearing in ForceSendFields will be sent to the
12057	// server regardless of whether the field is empty or not. This may be
12058	// used to include empty fields in Patch requests.
12059	ForceSendFields []string `json:"-"`
12060
12061	// NullFields is a list of field names (e.g. "Code") to include in API
12062	// requests with the JSON null value. By default, fields with empty
12063	// values are omitted from API requests. However, any field with an
12064	// empty value appearing in NullFields will be sent to the server as
12065	// null. It is an error if a field in this list has a non-empty value.
12066	// This may be used to include null fields in Patch requests.
12067	NullFields []string `json:"-"`
12068}
12069
12070func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
12071	type NoMethod ForwardingRulesScopedListWarning
12072	raw := NoMethod(*s)
12073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12074}
12075
12076type ForwardingRulesScopedListWarningData struct {
12077	// Key: [Output Only] A key that provides more detail on the warning
12078	// being returned. For example, for warnings where there are no results
12079	// in a list request for a particular zone, this key might be scope and
12080	// the key value might be the zone name. Other examples might be a key
12081	// indicating a deprecated resource and a suggested replacement, or a
12082	// warning about invalid network settings (for example, if an instance
12083	// attempts to perform IP forwarding but is not enabled for IP
12084	// forwarding).
12085	Key string `json:"key,omitempty"`
12086
12087	// Value: [Output Only] A warning data value corresponding to the key.
12088	Value string `json:"value,omitempty"`
12089
12090	// ForceSendFields is a list of field names (e.g. "Key") to
12091	// unconditionally include in API requests. By default, fields with
12092	// empty values are omitted from API requests. However, any non-pointer,
12093	// non-interface field appearing in ForceSendFields will be sent to the
12094	// server regardless of whether the field is empty or not. This may be
12095	// used to include empty fields in Patch requests.
12096	ForceSendFields []string `json:"-"`
12097
12098	// NullFields is a list of field names (e.g. "Key") to include in API
12099	// requests with the JSON null value. By default, fields with empty
12100	// values are omitted from API requests. However, any field with an
12101	// empty value appearing in NullFields will be sent to the server as
12102	// null. It is an error if a field in this list has a non-empty value.
12103	// This may be used to include null fields in Patch requests.
12104	NullFields []string `json:"-"`
12105}
12106
12107func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
12108	type NoMethod ForwardingRulesScopedListWarningData
12109	raw := NoMethod(*s)
12110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12111}
12112
12113type GRPCHealthCheck struct {
12114	// GrpcServiceName: The gRPC service name for the health check. This
12115	// field is optional. The value of grpc_service_name has the following
12116	// meanings by convention:
12117	// - Empty service_name means the overall status of all services at the
12118	// backend.
12119	// - Non-empty service_name means the health of that gRPC service, as
12120	// defined by the owner of the service.
12121	// The grpc_service_name can only be ASCII.
12122	GrpcServiceName string `json:"grpcServiceName,omitempty"`
12123
12124	// Port: The port number for the health check request. Must be specified
12125	// if port_name and port_specification are not set or if
12126	// port_specification is USE_FIXED_PORT. Valid values are 1 through
12127	// 65535.
12128	Port int64 `json:"port,omitempty"`
12129
12130	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12131	// both port and port_name are defined, port takes precedence. The
12132	// port_name should conform to RFC1035.
12133	PortName string `json:"portName,omitempty"`
12134
12135	// PortSpecification: Specifies how port is selected for health
12136	// checking, can be one of following values:
12137	// USE_FIXED_PORT: The port number in port is used for health
12138	// checking.
12139	// USE_NAMED_PORT: The portName is used for health
12140	// checking.
12141	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12142	// each network endpoint is used for health checking. For other
12143	// backends, the port or named port specified in the Backend Service is
12144	// used for health checking.
12145	//
12146	//
12147	// If not specified, gRPC health check follows behavior specified in
12148	// port and portName fields.
12149	//
12150	// Possible values:
12151	//   "USE_FIXED_PORT"
12152	//   "USE_NAMED_PORT"
12153	//   "USE_SERVING_PORT"
12154	PortSpecification string `json:"portSpecification,omitempty"`
12155
12156	// ForceSendFields is a list of field names (e.g. "GrpcServiceName") to
12157	// unconditionally include in API requests. By default, fields with
12158	// empty values are omitted from API requests. However, any non-pointer,
12159	// non-interface field appearing in ForceSendFields will be sent to the
12160	// server regardless of whether the field is empty or not. This may be
12161	// used to include empty fields in Patch requests.
12162	ForceSendFields []string `json:"-"`
12163
12164	// NullFields is a list of field names (e.g. "GrpcServiceName") to
12165	// include in API requests with the JSON null value. By default, fields
12166	// with empty values are omitted from API requests. However, any field
12167	// with an empty value appearing in NullFields will be sent to the
12168	// server as null. It is an error if a field in this list has a
12169	// non-empty value. This may be used to include null fields in Patch
12170	// requests.
12171	NullFields []string `json:"-"`
12172}
12173
12174func (s *GRPCHealthCheck) MarshalJSON() ([]byte, error) {
12175	type NoMethod GRPCHealthCheck
12176	raw := NoMethod(*s)
12177	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12178}
12179
12180type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
12181	// NetworkEndpoints: The list of network endpoints to be attached.
12182	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
12183
12184	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
12185	// unconditionally include in API requests. By default, fields with
12186	// empty values are omitted from API requests. However, any non-pointer,
12187	// non-interface field appearing in ForceSendFields will be sent to the
12188	// server regardless of whether the field is empty or not. This may be
12189	// used to include empty fields in Patch requests.
12190	ForceSendFields []string `json:"-"`
12191
12192	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
12193	// include in API requests with the JSON null value. By default, fields
12194	// with empty values are omitted from API requests. However, any field
12195	// with an empty value appearing in NullFields will be sent to the
12196	// server as null. It is an error if a field in this list has a
12197	// non-empty value. This may be used to include null fields in Patch
12198	// requests.
12199	NullFields []string `json:"-"`
12200}
12201
12202func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
12203	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
12204	raw := NoMethod(*s)
12205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12206}
12207
12208type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
12209	// NetworkEndpoints: The list of network endpoints to be detached.
12210	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
12211
12212	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
12213	// unconditionally include in API requests. By default, fields with
12214	// empty values are omitted from API requests. However, any non-pointer,
12215	// non-interface field appearing in ForceSendFields will be sent to the
12216	// server regardless of whether the field is empty or not. This may be
12217	// used to include empty fields in Patch requests.
12218	ForceSendFields []string `json:"-"`
12219
12220	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
12221	// include in API requests with the JSON null value. By default, fields
12222	// with empty values are omitted from API requests. However, any field
12223	// with an empty value appearing in NullFields will be sent to the
12224	// server as null. It is an error if a field in this list has a
12225	// non-empty value. This may be used to include null fields in Patch
12226	// requests.
12227	NullFields []string `json:"-"`
12228}
12229
12230func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
12231	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
12232	raw := NoMethod(*s)
12233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12234}
12235
12236type GlobalOrganizationSetPolicyRequest struct {
12237	// Bindings: Flatten Policy to create a backward compatible wire-format.
12238	// Deprecated. Use 'policy' to specify bindings.
12239	Bindings []*Binding `json:"bindings,omitempty"`
12240
12241	// Etag: Flatten Policy to create a backward compatible wire-format.
12242	// Deprecated. Use 'policy' to specify the etag.
12243	Etag string `json:"etag,omitempty"`
12244
12245	// Policy: REQUIRED: The complete policy to be applied to the
12246	// 'resource'. The size of the policy is limited to a few 10s of KB. An
12247	// empty policy is in general a valid policy but certain services (like
12248	// Projects) might reject them.
12249	Policy *Policy `json:"policy,omitempty"`
12250
12251	// ForceSendFields is a list of field names (e.g. "Bindings") to
12252	// unconditionally include in API requests. By default, fields with
12253	// empty values are omitted from API requests. However, any non-pointer,
12254	// non-interface field appearing in ForceSendFields will be sent to the
12255	// server regardless of whether the field is empty or not. This may be
12256	// used to include empty fields in Patch requests.
12257	ForceSendFields []string `json:"-"`
12258
12259	// NullFields is a list of field names (e.g. "Bindings") to include in
12260	// API requests with the JSON null value. By default, fields with empty
12261	// values are omitted from API requests. However, any field with an
12262	// empty value appearing in NullFields will be sent to the server as
12263	// null. It is an error if a field in this list has a non-empty value.
12264	// This may be used to include null fields in Patch requests.
12265	NullFields []string `json:"-"`
12266}
12267
12268func (s *GlobalOrganizationSetPolicyRequest) MarshalJSON() ([]byte, error) {
12269	type NoMethod GlobalOrganizationSetPolicyRequest
12270	raw := NoMethod(*s)
12271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12272}
12273
12274type GlobalSetLabelsRequest struct {
12275	// LabelFingerprint: The fingerprint of the previous set of labels for
12276	// this resource, used to detect conflicts. The fingerprint is initially
12277	// generated by Compute Engine and changes after every request to modify
12278	// or update labels. You must always provide an up-to-date fingerprint
12279	// hash when updating or changing labels, otherwise the request will
12280	// fail with error 412 conditionNotMet. Make a get() request to the
12281	// resource to get the latest fingerprint.
12282	LabelFingerprint string `json:"labelFingerprint,omitempty"`
12283
12284	// Labels: A list of labels to apply for this resource. Each label key &
12285	// value must comply with RFC1035. Specifically, the name must be 1-63
12286	// characters long and match the regular expression
12287	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
12288	// a lowercase letter, and all following characters must be a dash,
12289	// lowercase letter, or digit, except the last character, which cannot
12290	// be a dash. For example, "webserver-frontend": "images". A label value
12291	// can also be empty (e.g. "my-label": "").
12292	Labels map[string]string `json:"labels,omitempty"`
12293
12294	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
12295	// unconditionally include in API requests. By default, fields with
12296	// empty values are omitted from API requests. However, any non-pointer,
12297	// non-interface field appearing in ForceSendFields will be sent to the
12298	// server regardless of whether the field is empty or not. This may be
12299	// used to include empty fields in Patch requests.
12300	ForceSendFields []string `json:"-"`
12301
12302	// NullFields is a list of field names (e.g. "LabelFingerprint") to
12303	// include in API requests with the JSON null value. By default, fields
12304	// with empty values are omitted from API requests. However, any field
12305	// with an empty value appearing in NullFields will be sent to the
12306	// server as null. It is an error if a field in this list has a
12307	// non-empty value. This may be used to include null fields in Patch
12308	// requests.
12309	NullFields []string `json:"-"`
12310}
12311
12312func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
12313	type NoMethod GlobalSetLabelsRequest
12314	raw := NoMethod(*s)
12315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12316}
12317
12318type GlobalSetPolicyRequest struct {
12319	// Bindings: Flatten Policy to create a backward compatible wire-format.
12320	// Deprecated. Use 'policy' to specify bindings.
12321	Bindings []*Binding `json:"bindings,omitempty"`
12322
12323	// Etag: Flatten Policy to create a backward compatible wire-format.
12324	// Deprecated. Use 'policy' to specify the etag.
12325	Etag string `json:"etag,omitempty"`
12326
12327	// Policy: REQUIRED: The complete policy to be applied to the
12328	// 'resource'. The size of the policy is limited to a few 10s of KB. An
12329	// empty policy is in general a valid policy but certain services (like
12330	// Projects) might reject them.
12331	Policy *Policy `json:"policy,omitempty"`
12332
12333	// ForceSendFields is a list of field names (e.g. "Bindings") to
12334	// unconditionally include in API requests. By default, fields with
12335	// empty values are omitted from API requests. However, any non-pointer,
12336	// non-interface field appearing in ForceSendFields will be sent to the
12337	// server regardless of whether the field is empty or not. This may be
12338	// used to include empty fields in Patch requests.
12339	ForceSendFields []string `json:"-"`
12340
12341	// NullFields is a list of field names (e.g. "Bindings") to include in
12342	// API requests with the JSON null value. By default, fields with empty
12343	// values are omitted from API requests. However, any field with an
12344	// empty value appearing in NullFields will be sent to the server as
12345	// null. It is an error if a field in this list has a non-empty value.
12346	// This may be used to include null fields in Patch requests.
12347	NullFields []string `json:"-"`
12348}
12349
12350func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
12351	type NoMethod GlobalSetPolicyRequest
12352	raw := NoMethod(*s)
12353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12354}
12355
12356// GuestAttributes: A guest attributes entry.
12357type GuestAttributes struct {
12358	// Kind: [Output Only] Type of the resource. Always
12359	// compute#guestAttributes for guest attributes entry.
12360	Kind string `json:"kind,omitempty"`
12361
12362	// QueryPath: The path to be queried. This can be the default namespace
12363	// ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
12364	QueryPath string `json:"queryPath,omitempty"`
12365
12366	// QueryValue: [Output Only] The value of the requested queried path.
12367	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
12368
12369	// SelfLink: [Output Only] Server-defined URL for this resource.
12370	SelfLink string `json:"selfLink,omitempty"`
12371
12372	// VariableKey: The key to search for.
12373	VariableKey string `json:"variableKey,omitempty"`
12374
12375	// VariableValue: [Output Only] The value found for the requested key.
12376	VariableValue string `json:"variableValue,omitempty"`
12377
12378	// ServerResponse contains the HTTP response code and headers from the
12379	// server.
12380	googleapi.ServerResponse `json:"-"`
12381
12382	// ForceSendFields is a list of field names (e.g. "Kind") to
12383	// unconditionally include in API requests. By default, fields with
12384	// empty values are omitted from API requests. However, any non-pointer,
12385	// non-interface field appearing in ForceSendFields will be sent to the
12386	// server regardless of whether the field is empty or not. This may be
12387	// used to include empty fields in Patch requests.
12388	ForceSendFields []string `json:"-"`
12389
12390	// NullFields is a list of field names (e.g. "Kind") to include in API
12391	// requests with the JSON null value. By default, fields with empty
12392	// values are omitted from API requests. However, any field with an
12393	// empty value appearing in NullFields will be sent to the server as
12394	// null. It is an error if a field in this list has a non-empty value.
12395	// This may be used to include null fields in Patch requests.
12396	NullFields []string `json:"-"`
12397}
12398
12399func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
12400	type NoMethod GuestAttributes
12401	raw := NoMethod(*s)
12402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12403}
12404
12405// GuestAttributesEntry: A guest attributes namespace/key/value entry.
12406type GuestAttributesEntry struct {
12407	// Key: Key for the guest attribute entry.
12408	Key string `json:"key,omitempty"`
12409
12410	// Namespace: Namespace for the guest attribute entry.
12411	Namespace string `json:"namespace,omitempty"`
12412
12413	// Value: Value for the guest attribute entry.
12414	Value string `json:"value,omitempty"`
12415
12416	// ForceSendFields is a list of field names (e.g. "Key") to
12417	// unconditionally include in API requests. By default, fields with
12418	// empty values are omitted from API requests. However, any non-pointer,
12419	// non-interface field appearing in ForceSendFields will be sent to the
12420	// server regardless of whether the field is empty or not. This may be
12421	// used to include empty fields in Patch requests.
12422	ForceSendFields []string `json:"-"`
12423
12424	// NullFields is a list of field names (e.g. "Key") to include in API
12425	// requests with the JSON null value. By default, fields with empty
12426	// values are omitted from API requests. However, any field with an
12427	// empty value appearing in NullFields will be sent to the server as
12428	// null. It is an error if a field in this list has a non-empty value.
12429	// This may be used to include null fields in Patch requests.
12430	NullFields []string `json:"-"`
12431}
12432
12433func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
12434	type NoMethod GuestAttributesEntry
12435	raw := NoMethod(*s)
12436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12437}
12438
12439// GuestAttributesValue: Array of guest attribute namespace/key/value
12440// tuples.
12441type GuestAttributesValue struct {
12442	Items []*GuestAttributesEntry `json:"items,omitempty"`
12443
12444	// ForceSendFields is a list of field names (e.g. "Items") to
12445	// unconditionally include in API requests. By default, fields with
12446	// empty values are omitted from API requests. However, any non-pointer,
12447	// non-interface field appearing in ForceSendFields will be sent to the
12448	// server regardless of whether the field is empty or not. This may be
12449	// used to include empty fields in Patch requests.
12450	ForceSendFields []string `json:"-"`
12451
12452	// NullFields is a list of field names (e.g. "Items") to include in API
12453	// requests with the JSON null value. By default, fields with empty
12454	// values are omitted from API requests. However, any field with an
12455	// empty value appearing in NullFields will be sent to the server as
12456	// null. It is an error if a field in this list has a non-empty value.
12457	// This may be used to include null fields in Patch requests.
12458	NullFields []string `json:"-"`
12459}
12460
12461func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
12462	type NoMethod GuestAttributesValue
12463	raw := NoMethod(*s)
12464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12465}
12466
12467// GuestOsFeature: Guest OS features.
12468type GuestOsFeature struct {
12469	// Type: The ID of a supported feature. Read  Enabling guest operating
12470	// system features to see a list of available options.
12471	//
12472	// Possible values:
12473	//   "FEATURE_TYPE_UNSPECIFIED"
12474	//   "GVNIC"
12475	//   "MULTI_IP_SUBNET"
12476	//   "SECURE_BOOT"
12477	//   "SEV_CAPABLE"
12478	//   "UEFI_COMPATIBLE"
12479	//   "VIRTIO_SCSI_MULTIQUEUE"
12480	//   "WINDOWS"
12481	Type string `json:"type,omitempty"`
12482
12483	// ForceSendFields is a list of field names (e.g. "Type") to
12484	// unconditionally include in API requests. By default, fields with
12485	// empty values are omitted from API requests. However, any non-pointer,
12486	// non-interface field appearing in ForceSendFields will be sent to the
12487	// server regardless of whether the field is empty or not. This may be
12488	// used to include empty fields in Patch requests.
12489	ForceSendFields []string `json:"-"`
12490
12491	// NullFields is a list of field names (e.g. "Type") to include in API
12492	// requests with the JSON null value. By default, fields with empty
12493	// values are omitted from API requests. However, any field with an
12494	// empty value appearing in NullFields will be sent to the server as
12495	// null. It is an error if a field in this list has a non-empty value.
12496	// This may be used to include null fields in Patch requests.
12497	NullFields []string `json:"-"`
12498}
12499
12500func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
12501	type NoMethod GuestOsFeature
12502	raw := NoMethod(*s)
12503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12504}
12505
12506type HTTP2HealthCheck struct {
12507	// Host: The value of the host header in the HTTP/2 health check
12508	// request. If left empty (default value), the IP on behalf of which
12509	// this health check is performed will be used.
12510	Host string `json:"host,omitempty"`
12511
12512	// Port: The TCP port number for the health check request. The default
12513	// value is 443. Valid values are 1 through 65535.
12514	Port int64 `json:"port,omitempty"`
12515
12516	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12517	// both port and port_name are defined, port takes precedence.
12518	PortName string `json:"portName,omitempty"`
12519
12520	// PortSpecification: Specifies how port is selected for health
12521	// checking, can be one of following values:
12522	// USE_FIXED_PORT: The port number in port is used for health
12523	// checking.
12524	// USE_NAMED_PORT: The portName is used for health
12525	// checking.
12526	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12527	// each network endpoint is used for health checking. For other
12528	// backends, the port or named port specified in the Backend Service is
12529	// used for health checking.
12530	//
12531	//
12532	// If not specified, HTTP2 health check follows behavior specified in
12533	// port and portName fields.
12534	//
12535	// Possible values:
12536	//   "USE_FIXED_PORT"
12537	//   "USE_NAMED_PORT"
12538	//   "USE_SERVING_PORT"
12539	PortSpecification string `json:"portSpecification,omitempty"`
12540
12541	// ProxyHeader: Specifies the type of proxy header to append before
12542	// sending data to the backend, either NONE or PROXY_V1. The default is
12543	// NONE.
12544	//
12545	// Possible values:
12546	//   "NONE"
12547	//   "PROXY_V1"
12548	ProxyHeader string `json:"proxyHeader,omitempty"`
12549
12550	// RequestPath: The request path of the HTTP/2 health check request. The
12551	// default value is /.
12552	RequestPath string `json:"requestPath,omitempty"`
12553
12554	// Response: The string to match anywhere in the first 1024 bytes of the
12555	// response body. If left empty (the default value), the status code
12556	// determines health. The response data can only be ASCII.
12557	Response string `json:"response,omitempty"`
12558
12559	// ForceSendFields is a list of field names (e.g. "Host") to
12560	// unconditionally include in API requests. By default, fields with
12561	// empty values are omitted from API requests. However, any non-pointer,
12562	// non-interface field appearing in ForceSendFields will be sent to the
12563	// server regardless of whether the field is empty or not. This may be
12564	// used to include empty fields in Patch requests.
12565	ForceSendFields []string `json:"-"`
12566
12567	// NullFields is a list of field names (e.g. "Host") to include in API
12568	// requests with the JSON null value. By default, fields with empty
12569	// values are omitted from API requests. However, any field with an
12570	// empty value appearing in NullFields will be sent to the server as
12571	// null. It is an error if a field in this list has a non-empty value.
12572	// This may be used to include null fields in Patch requests.
12573	NullFields []string `json:"-"`
12574}
12575
12576func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
12577	type NoMethod HTTP2HealthCheck
12578	raw := NoMethod(*s)
12579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12580}
12581
12582type HTTPHealthCheck struct {
12583	// Host: The value of the host header in the HTTP health check request.
12584	// If left empty (default value), the IP on behalf of which this health
12585	// check is performed will be used.
12586	Host string `json:"host,omitempty"`
12587
12588	// Port: The TCP port number for the health check request. The default
12589	// value is 80. Valid values are 1 through 65535.
12590	Port int64 `json:"port,omitempty"`
12591
12592	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12593	// both port and port_name are defined, port takes precedence.
12594	PortName string `json:"portName,omitempty"`
12595
12596	// PortSpecification: Specifies how port is selected for health
12597	// checking, can be one of following values:
12598	// USE_FIXED_PORT: The port number in port is used for health
12599	// checking.
12600	// USE_NAMED_PORT: The portName is used for health
12601	// checking.
12602	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12603	// each network endpoint is used for health checking. For other
12604	// backends, the port or named port specified in the Backend Service is
12605	// used for health checking.
12606	//
12607	//
12608	// If not specified, HTTP health check follows behavior specified in
12609	// port and portName fields.
12610	//
12611	// Possible values:
12612	//   "USE_FIXED_PORT"
12613	//   "USE_NAMED_PORT"
12614	//   "USE_SERVING_PORT"
12615	PortSpecification string `json:"portSpecification,omitempty"`
12616
12617	// ProxyHeader: Specifies the type of proxy header to append before
12618	// sending data to the backend, either NONE or PROXY_V1. The default is
12619	// NONE.
12620	//
12621	// Possible values:
12622	//   "NONE"
12623	//   "PROXY_V1"
12624	ProxyHeader string `json:"proxyHeader,omitempty"`
12625
12626	// RequestPath: The request path of the HTTP health check request. The
12627	// default value is /.
12628	RequestPath string `json:"requestPath,omitempty"`
12629
12630	// Response: The string to match anywhere in the first 1024 bytes of the
12631	// response body. If left empty (the default value), the status code
12632	// determines health. The response data can only be ASCII.
12633	Response string `json:"response,omitempty"`
12634
12635	// ForceSendFields is a list of field names (e.g. "Host") to
12636	// unconditionally include in API requests. By default, fields with
12637	// empty values are omitted from API requests. However, any non-pointer,
12638	// non-interface field appearing in ForceSendFields will be sent to the
12639	// server regardless of whether the field is empty or not. This may be
12640	// used to include empty fields in Patch requests.
12641	ForceSendFields []string `json:"-"`
12642
12643	// NullFields is a list of field names (e.g. "Host") to include in API
12644	// requests with the JSON null value. By default, fields with empty
12645	// values are omitted from API requests. However, any field with an
12646	// empty value appearing in NullFields will be sent to the server as
12647	// null. It is an error if a field in this list has a non-empty value.
12648	// This may be used to include null fields in Patch requests.
12649	NullFields []string `json:"-"`
12650}
12651
12652func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
12653	type NoMethod HTTPHealthCheck
12654	raw := NoMethod(*s)
12655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12656}
12657
12658type HTTPSHealthCheck struct {
12659	// Host: The value of the host header in the HTTPS health check request.
12660	// If left empty (default value), the IP on behalf of which this health
12661	// check is performed will be used.
12662	Host string `json:"host,omitempty"`
12663
12664	// Port: The TCP port number for the health check request. The default
12665	// value is 443. Valid values are 1 through 65535.
12666	Port int64 `json:"port,omitempty"`
12667
12668	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12669	// both port and port_name are defined, port takes precedence.
12670	PortName string `json:"portName,omitempty"`
12671
12672	// PortSpecification: Specifies how port is selected for health
12673	// checking, can be one of following values:
12674	// USE_FIXED_PORT: The port number in port is used for health
12675	// checking.
12676	// USE_NAMED_PORT: The portName is used for health
12677	// checking.
12678	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12679	// each network endpoint is used for health checking. For other
12680	// backends, the port or named port specified in the Backend Service is
12681	// used for health checking.
12682	//
12683	//
12684	// If not specified, HTTPS health check follows behavior specified in
12685	// port and portName fields.
12686	//
12687	// Possible values:
12688	//   "USE_FIXED_PORT"
12689	//   "USE_NAMED_PORT"
12690	//   "USE_SERVING_PORT"
12691	PortSpecification string `json:"portSpecification,omitempty"`
12692
12693	// ProxyHeader: Specifies the type of proxy header to append before
12694	// sending data to the backend, either NONE or PROXY_V1. The default is
12695	// NONE.
12696	//
12697	// Possible values:
12698	//   "NONE"
12699	//   "PROXY_V1"
12700	ProxyHeader string `json:"proxyHeader,omitempty"`
12701
12702	// RequestPath: The request path of the HTTPS health check request. The
12703	// default value is /.
12704	RequestPath string `json:"requestPath,omitempty"`
12705
12706	// Response: The string to match anywhere in the first 1024 bytes of the
12707	// response body. If left empty (the default value), the status code
12708	// determines health. The response data can only be ASCII.
12709	Response string `json:"response,omitempty"`
12710
12711	// ForceSendFields is a list of field names (e.g. "Host") to
12712	// unconditionally include in API requests. By default, fields with
12713	// empty values are omitted from API requests. However, any non-pointer,
12714	// non-interface field appearing in ForceSendFields will be sent to the
12715	// server regardless of whether the field is empty or not. This may be
12716	// used to include empty fields in Patch requests.
12717	ForceSendFields []string `json:"-"`
12718
12719	// NullFields is a list of field names (e.g. "Host") to include in API
12720	// requests with the JSON null value. By default, fields with empty
12721	// values are omitted from API requests. However, any field with an
12722	// empty value appearing in NullFields will be sent to the server as
12723	// null. It is an error if a field in this list has a non-empty value.
12724	// This may be used to include null fields in Patch requests.
12725	NullFields []string `json:"-"`
12726}
12727
12728func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
12729	type NoMethod HTTPSHealthCheck
12730	raw := NoMethod(*s)
12731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12732}
12733
12734// HealthCheck: Represents a Health Check resource.
12735//
12736// Google Compute Engine has two Health Check resources:
12737//
12738// * Global (/compute/docs/reference/rest/{$api_version}/healthChecks) *
12739// Regional
12740// (/compute/docs/reference/rest/{$api_version}/regionHealthChecks)
12741//
12742// Internal HTTP(S) load balancers must use regional health checks
12743// (`compute.v1.regionHealthChecks`).
12744//
12745// Traffic Director must use global health checks
12746// (`compute.v1.HealthChecks`).
12747//
12748// Internal TCP/UDP load balancers can use either regional or global
12749// health checks (`compute.v1.regionHealthChecks` or
12750// `compute.v1.HealthChecks`).
12751//
12752// External HTTP(S), TCP proxy, and SSL proxy load balancers as well as
12753// managed instance group auto-healing must use global health checks
12754// (`compute.v1.HealthChecks`).
12755//
12756// Network load balancers must use legacy HTTP health checks
12757// (httpHealthChecks).
12758//
12759// For more information, see Health checks overview.
12760type HealthCheck struct {
12761	// CheckIntervalSec: How often (in seconds) to send a health check. The
12762	// default value is 5 seconds.
12763	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12764
12765	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
12766	// format.
12767	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12768
12769	// Description: An optional description of this resource. Provide this
12770	// property when you create the resource.
12771	Description string `json:"description,omitempty"`
12772
12773	GrpcHealthCheck *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"`
12774
12775	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12776	// after this many consecutive successes. The default value is 2.
12777	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12778
12779	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
12780
12781	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
12782
12783	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
12784
12785	// Id: [Output Only] The unique identifier for the resource. This
12786	// identifier is defined by the server.
12787	Id uint64 `json:"id,omitempty,string"`
12788
12789	// Kind: Type of the resource.
12790	Kind string `json:"kind,omitempty"`
12791
12792	// LogConfig: Configure logging on this health check.
12793	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
12794
12795	// Name: Name of the resource. Provided by the client when the resource
12796	// is created. The name must be 1-63 characters long, and comply with
12797	// RFC1035. For example, a name that is 1-63 characters long, matches
12798	// the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise
12799	// complies with RFC1035. This regular expression describes a name where
12800	// the first character is a lowercase letter, and all following
12801	// characters are a dash, lowercase letter, or digit, except the last
12802	// character, which isn't a dash.
12803	Name string `json:"name,omitempty"`
12804
12805	// Region: [Output Only] Region where the health check resides. Not
12806	// applicable to global health checks.
12807	Region string `json:"region,omitempty"`
12808
12809	// SelfLink: [Output Only] Server-defined URL for the resource.
12810	SelfLink string `json:"selfLink,omitempty"`
12811
12812	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
12813
12814	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
12815
12816	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12817	// The default value is 5 seconds. It is invalid for timeoutSec to have
12818	// greater value than checkIntervalSec.
12819	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12820
12821	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
12822	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
12823	// the protocol-specific health check field must be specified, which
12824	// must match type field.
12825	//
12826	// Possible values:
12827	//   "GRPC"
12828	//   "HTTP"
12829	//   "HTTP2"
12830	//   "HTTPS"
12831	//   "INVALID"
12832	//   "SSL"
12833	//   "TCP"
12834	Type string `json:"type,omitempty"`
12835
12836	// UnhealthyThreshold: A so-far healthy instance will be marked
12837	// unhealthy after this many consecutive failures. The default value is
12838	// 2.
12839	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12840
12841	// ServerResponse contains the HTTP response code and headers from the
12842	// server.
12843	googleapi.ServerResponse `json:"-"`
12844
12845	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") 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. "CheckIntervalSec") to
12854	// include in API requests with the JSON null value. By default, fields
12855	// with empty values are omitted from API requests. However, any field
12856	// with an empty value appearing in NullFields will be sent to the
12857	// server as null. It is an error if a field in this list has a
12858	// non-empty value. This may be used to include null fields in Patch
12859	// requests.
12860	NullFields []string `json:"-"`
12861}
12862
12863func (s *HealthCheck) MarshalJSON() ([]byte, error) {
12864	type NoMethod HealthCheck
12865	raw := NoMethod(*s)
12866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12867}
12868
12869// HealthCheckList: Contains a list of HealthCheck resources.
12870type HealthCheckList struct {
12871	// Id: [Output Only] Unique identifier for the resource; defined by the
12872	// server.
12873	Id string `json:"id,omitempty"`
12874
12875	// Items: A list of HealthCheck resources.
12876	Items []*HealthCheck `json:"items,omitempty"`
12877
12878	// Kind: Type of resource.
12879	Kind string `json:"kind,omitempty"`
12880
12881	// NextPageToken: [Output Only] This token allows you to get the next
12882	// page of results for list requests. If the number of results is larger
12883	// than maxResults, use the nextPageToken as a value for the query
12884	// parameter pageToken in the next list request. Subsequent list
12885	// requests will have their own nextPageToken to continue paging through
12886	// the results.
12887	NextPageToken string `json:"nextPageToken,omitempty"`
12888
12889	// SelfLink: [Output Only] Server-defined URL for this resource.
12890	SelfLink string `json:"selfLink,omitempty"`
12891
12892	// Warning: [Output Only] Informational warning message.
12893	Warning *HealthCheckListWarning `json:"warning,omitempty"`
12894
12895	// ServerResponse contains the HTTP response code and headers from the
12896	// server.
12897	googleapi.ServerResponse `json:"-"`
12898
12899	// ForceSendFields is a list of field names (e.g. "Id") to
12900	// unconditionally include in API requests. By default, fields with
12901	// empty values are omitted from API requests. However, any non-pointer,
12902	// non-interface field appearing in ForceSendFields will be sent to the
12903	// server regardless of whether the field is empty or not. This may be
12904	// used to include empty fields in Patch requests.
12905	ForceSendFields []string `json:"-"`
12906
12907	// NullFields is a list of field names (e.g. "Id") to include in API
12908	// requests with the JSON null value. By default, fields with empty
12909	// values are omitted from API requests. However, any field with an
12910	// empty value appearing in NullFields will be sent to the server as
12911	// null. It is an error if a field in this list has a non-empty value.
12912	// This may be used to include null fields in Patch requests.
12913	NullFields []string `json:"-"`
12914}
12915
12916func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
12917	type NoMethod HealthCheckList
12918	raw := NoMethod(*s)
12919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12920}
12921
12922// HealthCheckListWarning: [Output Only] Informational warning message.
12923type HealthCheckListWarning struct {
12924	// Code: [Output Only] A warning code, if applicable. For example,
12925	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12926	// the response.
12927	//
12928	// Possible values:
12929	//   "CLEANUP_FAILED"
12930	//   "DEPRECATED_RESOURCE_USED"
12931	//   "DEPRECATED_TYPE_USED"
12932	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12933	//   "EXPERIMENTAL_TYPE_USED"
12934	//   "EXTERNAL_API_WARNING"
12935	//   "FIELD_VALUE_OVERRIDEN"
12936	//   "INJECTED_KERNELS_DEPRECATED"
12937	//   "LARGE_DEPLOYMENT_WARNING"
12938	//   "MISSING_TYPE_DEPENDENCY"
12939	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12940	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12941	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12942	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12943	//   "NEXT_HOP_NOT_RUNNING"
12944	//   "NOT_CRITICAL_ERROR"
12945	//   "NO_RESULTS_ON_PAGE"
12946	//   "PARTIAL_SUCCESS"
12947	//   "REQUIRED_TOS_AGREEMENT"
12948	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12949	//   "RESOURCE_NOT_DELETED"
12950	//   "SCHEMA_VALIDATION_IGNORED"
12951	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12952	//   "UNDECLARED_PROPERTIES"
12953	//   "UNREACHABLE"
12954	Code string `json:"code,omitempty"`
12955
12956	// Data: [Output Only] Metadata about this warning in key: value format.
12957	// For example:
12958	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12959	Data []*HealthCheckListWarningData `json:"data,omitempty"`
12960
12961	// Message: [Output Only] A human-readable description of the warning
12962	// code.
12963	Message string `json:"message,omitempty"`
12964
12965	// ForceSendFields is a list of field names (e.g. "Code") to
12966	// unconditionally include in API requests. By default, fields with
12967	// empty values are omitted from API requests. However, any non-pointer,
12968	// non-interface field appearing in ForceSendFields will be sent to the
12969	// server regardless of whether the field is empty or not. This may be
12970	// used to include empty fields in Patch requests.
12971	ForceSendFields []string `json:"-"`
12972
12973	// NullFields is a list of field names (e.g. "Code") to include in API
12974	// requests with the JSON null value. By default, fields with empty
12975	// values are omitted from API requests. However, any field with an
12976	// empty value appearing in NullFields will be sent to the server as
12977	// null. It is an error if a field in this list has a non-empty value.
12978	// This may be used to include null fields in Patch requests.
12979	NullFields []string `json:"-"`
12980}
12981
12982func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
12983	type NoMethod HealthCheckListWarning
12984	raw := NoMethod(*s)
12985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12986}
12987
12988type HealthCheckListWarningData struct {
12989	// Key: [Output Only] A key that provides more detail on the warning
12990	// being returned. For example, for warnings where there are no results
12991	// in a list request for a particular zone, this key might be scope and
12992	// the key value might be the zone name. Other examples might be a key
12993	// indicating a deprecated resource and a suggested replacement, or a
12994	// warning about invalid network settings (for example, if an instance
12995	// attempts to perform IP forwarding but is not enabled for IP
12996	// forwarding).
12997	Key string `json:"key,omitempty"`
12998
12999	// Value: [Output Only] A warning data value corresponding to the key.
13000	Value string `json:"value,omitempty"`
13001
13002	// ForceSendFields is a list of field names (e.g. "Key") to
13003	// unconditionally include in API requests. By default, fields with
13004	// empty values are omitted from API requests. However, any non-pointer,
13005	// non-interface field appearing in ForceSendFields will be sent to the
13006	// server regardless of whether the field is empty or not. This may be
13007	// used to include empty fields in Patch requests.
13008	ForceSendFields []string `json:"-"`
13009
13010	// NullFields is a list of field names (e.g. "Key") to include in API
13011	// requests with the JSON null value. By default, fields with empty
13012	// values are omitted from API requests. However, any field with an
13013	// empty value appearing in NullFields will be sent to the server as
13014	// null. It is an error if a field in this list has a non-empty value.
13015	// This may be used to include null fields in Patch requests.
13016	NullFields []string `json:"-"`
13017}
13018
13019func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13020	type NoMethod HealthCheckListWarningData
13021	raw := NoMethod(*s)
13022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13023}
13024
13025// HealthCheckLogConfig: Configuration of logging on a health check. If
13026// logging is enabled, logs will be exported to Stackdriver.
13027type HealthCheckLogConfig struct {
13028	// Enable: Indicates whether or not to export logs. This is false by
13029	// default, which means no health check logging will be done.
13030	Enable bool `json:"enable,omitempty"`
13031
13032	// ForceSendFields is a list of field names (e.g. "Enable") to
13033	// unconditionally include in API requests. By default, fields with
13034	// empty values are omitted from API requests. However, any non-pointer,
13035	// non-interface field appearing in ForceSendFields will be sent to the
13036	// server regardless of whether the field is empty or not. This may be
13037	// used to include empty fields in Patch requests.
13038	ForceSendFields []string `json:"-"`
13039
13040	// NullFields is a list of field names (e.g. "Enable") to include in API
13041	// requests with the JSON null value. By default, fields with empty
13042	// values are omitted from API requests. However, any field with an
13043	// empty value appearing in NullFields will be sent to the server as
13044	// null. It is an error if a field in this list has a non-empty value.
13045	// This may be used to include null fields in Patch requests.
13046	NullFields []string `json:"-"`
13047}
13048
13049func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
13050	type NoMethod HealthCheckLogConfig
13051	raw := NoMethod(*s)
13052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13053}
13054
13055// HealthCheckReference: A full or valid partial URL to a health check.
13056// For example, the following are valid URLs:
13057// -
13058// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
13059//
13060// - projects/project-id/global/httpHealthChecks/health-check
13061// - global/httpHealthChecks/health-check
13062type HealthCheckReference struct {
13063	HealthCheck string `json:"healthCheck,omitempty"`
13064
13065	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
13066	// unconditionally include in API requests. By default, fields with
13067	// empty values are omitted from API requests. However, any non-pointer,
13068	// non-interface field appearing in ForceSendFields will be sent to the
13069	// server regardless of whether the field is empty or not. This may be
13070	// used to include empty fields in Patch requests.
13071	ForceSendFields []string `json:"-"`
13072
13073	// NullFields is a list of field names (e.g. "HealthCheck") to include
13074	// in API requests with the JSON null value. By default, fields with
13075	// empty values are omitted from API requests. However, any field with
13076	// an empty value appearing in NullFields will be sent to the server as
13077	// null. It is an error if a field in this list has a non-empty value.
13078	// This may be used to include null fields in Patch requests.
13079	NullFields []string `json:"-"`
13080}
13081
13082func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
13083	type NoMethod HealthCheckReference
13084	raw := NoMethod(*s)
13085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13086}
13087
13088// HealthCheckService: Represents a Health-Check as a Service
13089// resource.
13090//
13091// (== resource_for {$api_version}.regionHealthCheckServices ==)
13092type HealthCheckService struct {
13093	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13094	// format.
13095	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13096
13097	// Description: An optional description of this resource. Provide this
13098	// property when you create the resource.
13099	Description string `json:"description,omitempty"`
13100
13101	// Fingerprint: Fingerprint of this resource. A hash of the contents
13102	// stored in this object. This field is used in optimistic locking. This
13103	// field will be ignored when inserting a HealthCheckService. An
13104	// up-to-date fingerprint must be provided in order to patch/update the
13105	// HealthCheckService; Otherwise, the request will fail with error 412
13106	// conditionNotMet. To see the latest fingerprint, make a get() request
13107	// to retrieve the HealthCheckService.
13108	Fingerprint string `json:"fingerprint,omitempty"`
13109
13110	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
13111	// least one HealthCheck, and not more than 10. HealthCheck resources
13112	// must have portSpecification=USE_SERVING_PORT or
13113	// portSpecification=USE_FIXED_PORT. For regional HealthCheckService,
13114	// the HealthCheck must be regional and in the same region. For global
13115	// HealthCheckService, HealthCheck must be global. Mix of regional and
13116	// global HealthChecks is not supported. Multiple regional HealthChecks
13117	// must belong to the same region. Regional HealthChecks must belong to
13118	// the same region as zones of NEGs.
13119	HealthChecks []string `json:"healthChecks,omitempty"`
13120
13121	// HealthStatusAggregationPolicy: Optional. Policy for how the results
13122	// from multiple health checks for the same endpoint are aggregated.
13123	// Defaults to NO_AGGREGATION if unspecified.
13124	// - NO_AGGREGATION. An EndpointHealth message is returned for each
13125	// backend in the health check service.
13126	// - AND. If any backend's health check reports UNHEALTHY, then
13127	// UNHEALTHY is the HealthState of the entire health check service. If
13128	// all backend's are healthy, the HealthState of the health check
13129	// service is HEALTHY. .
13130	//
13131	// Possible values:
13132	//   "AND"
13133	//   "NO_AGGREGATION"
13134	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
13135
13136	// HealthStatusAggregationStrategy: This field is deprecated. Use
13137	// health_status_aggregation_policy instead.
13138	//
13139	// Policy for how the results from multiple health checks for the same
13140	// endpoint are aggregated.
13141	// - NO_AGGREGATION. An EndpointHealth message is returned for each
13142	// backend in the health check service.
13143	// - AND. If any backend's health check reports UNHEALTHY, then
13144	// UNHEALTHY is the HealthState of the entire health check service. If
13145	// all backend's are healthy, the HealthState of the health check
13146	// service is HEALTHY. .
13147	//
13148	// Possible values:
13149	//   "AND"
13150	//   "NO_AGGREGATION"
13151	HealthStatusAggregationStrategy string `json:"healthStatusAggregationStrategy,omitempty"`
13152
13153	// Id: [Output Only] The unique identifier for the resource. This
13154	// identifier is defined by the server.
13155	Id uint64 `json:"id,omitempty,string"`
13156
13157	// Kind: [Output only] Type of the resource. Always
13158	// compute#healthCheckServicefor health check services.
13159	Kind string `json:"kind,omitempty"`
13160
13161	// Name: Name of the resource. The name must be 1-63 characters long,
13162	// and comply with RFC1035. Specifically, the name must be 1-63
13163	// characters long and match the regular expression
13164	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
13165	// a lowercase letter, and all following characters must be a dash,
13166	// lowercase letter, or digit, except the last character, which cannot
13167	// be a dash.
13168	Name string `json:"name,omitempty"`
13169
13170	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
13171	// resources. Must not have more than 100. For regional
13172	// HealthCheckService, NEGs must be in zones in the region of the
13173	// HealthCheckService.
13174	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
13175
13176	// NotificationEndpoints: List of URLs to the NotificationEndpoint
13177	// resources. Must not have more than 10. A list of endpoints for
13178	// receiving notifications of change in health status. For regional
13179	// HealthCheckService, NotificationEndpoint must be regional and in the
13180	// same region. For global HealthCheckService, NotificationEndpoint must
13181	// be global.
13182	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
13183
13184	// Region: [Output Only] URL of the region where the health check
13185	// service resides. This field is not applicable to global health check
13186	// services. You must specify this field as part of the HTTP request
13187	// URL. It is not settable as a field in the request body.
13188	Region string `json:"region,omitempty"`
13189
13190	// SelfLink: [Output Only] Server-defined URL for the resource.
13191	SelfLink string `json:"selfLink,omitempty"`
13192
13193	// ServerResponse contains the HTTP response code and headers from the
13194	// server.
13195	googleapi.ServerResponse `json:"-"`
13196
13197	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
13198	// to unconditionally include in API requests. By default, fields with
13199	// empty values are omitted from API requests. However, any non-pointer,
13200	// non-interface field appearing in ForceSendFields will be sent to the
13201	// server regardless of whether the field is empty or not. This may be
13202	// used to include empty fields in Patch requests.
13203	ForceSendFields []string `json:"-"`
13204
13205	// NullFields is a list of field names (e.g. "CreationTimestamp") to
13206	// include in API requests with the JSON null value. By default, fields
13207	// with empty values are omitted from API requests. However, any field
13208	// with an empty value appearing in NullFields will be sent to the
13209	// server as null. It is an error if a field in this list has a
13210	// non-empty value. This may be used to include null fields in Patch
13211	// requests.
13212	NullFields []string `json:"-"`
13213}
13214
13215func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
13216	type NoMethod HealthCheckService
13217	raw := NoMethod(*s)
13218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13219}
13220
13221// HealthCheckServiceReference: A full or valid partial URL to a health
13222// check service. For example, the following are valid URLs:
13223// -
13224// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
13225//
13226// -
13227// projects/project-id/regions/us-west1/healthCheckServices/health-check-
13228// service
13229// - regions/us-west1/healthCheckServices/health-check-service
13230type HealthCheckServiceReference struct {
13231	HealthCheckService string `json:"healthCheckService,omitempty"`
13232
13233	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
13234	// to 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. "HealthCheckService") to
13242	// include in API requests with the JSON null value. By default, fields
13243	// with empty values are omitted from API requests. However, any field
13244	// with an empty value appearing in NullFields will be sent to the
13245	// server as null. It is an error if a field in this list has a
13246	// non-empty value. This may be used to include null fields in Patch
13247	// requests.
13248	NullFields []string `json:"-"`
13249}
13250
13251func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
13252	type NoMethod HealthCheckServiceReference
13253	raw := NoMethod(*s)
13254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13255}
13256
13257type HealthCheckServicesList struct {
13258	// Id: [Output Only] Unique identifier for the resource; defined by the
13259	// server.
13260	Id string `json:"id,omitempty"`
13261
13262	// Items: A list of HealthCheckService resources.
13263	Items []*HealthCheckService `json:"items,omitempty"`
13264
13265	// Kind: [Output Only] Type of the resource. Always
13266	// compute#healthCheckServicesList for lists of HealthCheckServices.
13267	Kind string `json:"kind,omitempty"`
13268
13269	// NextPageToken: [Output Only] This token allows you to get the next
13270	// page of results for list requests. If the number of results is larger
13271	// than maxResults, use the nextPageToken as a value for the query
13272	// parameter pageToken in the next list request. Subsequent list
13273	// requests will have their own nextPageToken to continue paging through
13274	// the results.
13275	NextPageToken string `json:"nextPageToken,omitempty"`
13276
13277	// SelfLink: [Output Only] Server-defined URL for this resource.
13278	SelfLink string `json:"selfLink,omitempty"`
13279
13280	// Warning: [Output Only] Informational warning message.
13281	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
13282
13283	// ServerResponse contains the HTTP response code and headers from the
13284	// server.
13285	googleapi.ServerResponse `json:"-"`
13286
13287	// ForceSendFields is a list of field names (e.g. "Id") to
13288	// unconditionally include in API requests. By default, fields with
13289	// empty values are omitted from API requests. However, any non-pointer,
13290	// non-interface field appearing in ForceSendFields will be sent to the
13291	// server regardless of whether the field is empty or not. This may be
13292	// used to include empty fields in Patch requests.
13293	ForceSendFields []string `json:"-"`
13294
13295	// NullFields is a list of field names (e.g. "Id") to include in API
13296	// requests with the JSON null value. By default, fields with empty
13297	// values are omitted from API requests. However, any field with an
13298	// empty value appearing in NullFields will be sent to the server as
13299	// null. It is an error if a field in this list has a non-empty value.
13300	// This may be used to include null fields in Patch requests.
13301	NullFields []string `json:"-"`
13302}
13303
13304func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
13305	type NoMethod HealthCheckServicesList
13306	raw := NoMethod(*s)
13307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13308}
13309
13310// HealthCheckServicesListWarning: [Output Only] Informational warning
13311// message.
13312type HealthCheckServicesListWarning struct {
13313	// Code: [Output Only] A warning code, if applicable. For example,
13314	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13315	// the response.
13316	//
13317	// Possible values:
13318	//   "CLEANUP_FAILED"
13319	//   "DEPRECATED_RESOURCE_USED"
13320	//   "DEPRECATED_TYPE_USED"
13321	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13322	//   "EXPERIMENTAL_TYPE_USED"
13323	//   "EXTERNAL_API_WARNING"
13324	//   "FIELD_VALUE_OVERRIDEN"
13325	//   "INJECTED_KERNELS_DEPRECATED"
13326	//   "LARGE_DEPLOYMENT_WARNING"
13327	//   "MISSING_TYPE_DEPENDENCY"
13328	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13329	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13330	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13331	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13332	//   "NEXT_HOP_NOT_RUNNING"
13333	//   "NOT_CRITICAL_ERROR"
13334	//   "NO_RESULTS_ON_PAGE"
13335	//   "PARTIAL_SUCCESS"
13336	//   "REQUIRED_TOS_AGREEMENT"
13337	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13338	//   "RESOURCE_NOT_DELETED"
13339	//   "SCHEMA_VALIDATION_IGNORED"
13340	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13341	//   "UNDECLARED_PROPERTIES"
13342	//   "UNREACHABLE"
13343	Code string `json:"code,omitempty"`
13344
13345	// Data: [Output Only] Metadata about this warning in key: value format.
13346	// For example:
13347	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13348	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
13349
13350	// Message: [Output Only] A human-readable description of the warning
13351	// code.
13352	Message string `json:"message,omitempty"`
13353
13354	// ForceSendFields is a list of field names (e.g. "Code") to
13355	// unconditionally include in API requests. By default, fields with
13356	// empty values are omitted from API requests. However, any non-pointer,
13357	// non-interface field appearing in ForceSendFields will be sent to the
13358	// server regardless of whether the field is empty or not. This may be
13359	// used to include empty fields in Patch requests.
13360	ForceSendFields []string `json:"-"`
13361
13362	// NullFields is a list of field names (e.g. "Code") to include in API
13363	// requests with the JSON null value. By default, fields with empty
13364	// values are omitted from API requests. However, any field with an
13365	// empty value appearing in NullFields will be sent to the server as
13366	// null. It is an error if a field in this list has a non-empty value.
13367	// This may be used to include null fields in Patch requests.
13368	NullFields []string `json:"-"`
13369}
13370
13371func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
13372	type NoMethod HealthCheckServicesListWarning
13373	raw := NoMethod(*s)
13374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13375}
13376
13377type HealthCheckServicesListWarningData struct {
13378	// Key: [Output Only] A key that provides more detail on the warning
13379	// being returned. For example, for warnings where there are no results
13380	// in a list request for a particular zone, this key might be scope and
13381	// the key value might be the zone name. Other examples might be a key
13382	// indicating a deprecated resource and a suggested replacement, or a
13383	// warning about invalid network settings (for example, if an instance
13384	// attempts to perform IP forwarding but is not enabled for IP
13385	// forwarding).
13386	Key string `json:"key,omitempty"`
13387
13388	// Value: [Output Only] A warning data value corresponding to the key.
13389	Value string `json:"value,omitempty"`
13390
13391	// ForceSendFields is a list of field names (e.g. "Key") to
13392	// unconditionally include in API requests. By default, fields with
13393	// empty values are omitted from API requests. However, any non-pointer,
13394	// non-interface field appearing in ForceSendFields will be sent to the
13395	// server regardless of whether the field is empty or not. This may be
13396	// used to include empty fields in Patch requests.
13397	ForceSendFields []string `json:"-"`
13398
13399	// NullFields is a list of field names (e.g. "Key") to include in API
13400	// requests with the JSON null value. By default, fields with empty
13401	// values are omitted from API requests. However, any field with an
13402	// empty value appearing in NullFields will be sent to the server as
13403	// null. It is an error if a field in this list has a non-empty value.
13404	// This may be used to include null fields in Patch requests.
13405	NullFields []string `json:"-"`
13406}
13407
13408func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
13409	type NoMethod HealthCheckServicesListWarningData
13410	raw := NoMethod(*s)
13411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13412}
13413
13414type HealthChecksAggregatedList struct {
13415	// Id: [Output Only] Unique identifier for the resource; defined by the
13416	// server.
13417	Id string `json:"id,omitempty"`
13418
13419	// Items: A list of HealthChecksScopedList resources.
13420	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
13421
13422	// Kind: Type of resource.
13423	Kind string `json:"kind,omitempty"`
13424
13425	// NextPageToken: [Output Only] This token allows you to get the next
13426	// page of results for list requests. If the number of results is larger
13427	// than maxResults, use the nextPageToken as a value for the query
13428	// parameter pageToken in the next list request. Subsequent list
13429	// requests will have their own nextPageToken to continue paging through
13430	// the results.
13431	NextPageToken string `json:"nextPageToken,omitempty"`
13432
13433	// SelfLink: [Output Only] Server-defined URL for this resource.
13434	SelfLink string `json:"selfLink,omitempty"`
13435
13436	// Unreachables: [Output Only] Unreachable resources.
13437	Unreachables []string `json:"unreachables,omitempty"`
13438
13439	// Warning: [Output Only] Informational warning message.
13440	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
13441
13442	// ServerResponse contains the HTTP response code and headers from the
13443	// server.
13444	googleapi.ServerResponse `json:"-"`
13445
13446	// ForceSendFields is a list of field names (e.g. "Id") to
13447	// unconditionally include in API requests. By default, fields with
13448	// empty values are omitted from API requests. However, any non-pointer,
13449	// non-interface field appearing in ForceSendFields will be sent to the
13450	// server regardless of whether the field is empty or not. This may be
13451	// used to include empty fields in Patch requests.
13452	ForceSendFields []string `json:"-"`
13453
13454	// NullFields is a list of field names (e.g. "Id") to include in API
13455	// requests with the JSON null value. By default, fields with empty
13456	// values are omitted from API requests. However, any field with an
13457	// empty value appearing in NullFields will be sent to the server as
13458	// null. It is an error if a field in this list has a non-empty value.
13459	// This may be used to include null fields in Patch requests.
13460	NullFields []string `json:"-"`
13461}
13462
13463func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
13464	type NoMethod HealthChecksAggregatedList
13465	raw := NoMethod(*s)
13466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13467}
13468
13469// HealthChecksAggregatedListWarning: [Output Only] Informational
13470// warning message.
13471type HealthChecksAggregatedListWarning struct {
13472	// Code: [Output Only] A warning code, if applicable. For example,
13473	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13474	// the response.
13475	//
13476	// Possible values:
13477	//   "CLEANUP_FAILED"
13478	//   "DEPRECATED_RESOURCE_USED"
13479	//   "DEPRECATED_TYPE_USED"
13480	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13481	//   "EXPERIMENTAL_TYPE_USED"
13482	//   "EXTERNAL_API_WARNING"
13483	//   "FIELD_VALUE_OVERRIDEN"
13484	//   "INJECTED_KERNELS_DEPRECATED"
13485	//   "LARGE_DEPLOYMENT_WARNING"
13486	//   "MISSING_TYPE_DEPENDENCY"
13487	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13488	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13489	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13490	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13491	//   "NEXT_HOP_NOT_RUNNING"
13492	//   "NOT_CRITICAL_ERROR"
13493	//   "NO_RESULTS_ON_PAGE"
13494	//   "PARTIAL_SUCCESS"
13495	//   "REQUIRED_TOS_AGREEMENT"
13496	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13497	//   "RESOURCE_NOT_DELETED"
13498	//   "SCHEMA_VALIDATION_IGNORED"
13499	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13500	//   "UNDECLARED_PROPERTIES"
13501	//   "UNREACHABLE"
13502	Code string `json:"code,omitempty"`
13503
13504	// Data: [Output Only] Metadata about this warning in key: value format.
13505	// For example:
13506	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13507	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
13508
13509	// Message: [Output Only] A human-readable description of the warning
13510	// code.
13511	Message string `json:"message,omitempty"`
13512
13513	// ForceSendFields is a list of field names (e.g. "Code") to
13514	// unconditionally include in API requests. By default, fields with
13515	// empty values are omitted from API requests. However, any non-pointer,
13516	// non-interface field appearing in ForceSendFields will be sent to the
13517	// server regardless of whether the field is empty or not. This may be
13518	// used to include empty fields in Patch requests.
13519	ForceSendFields []string `json:"-"`
13520
13521	// NullFields is a list of field names (e.g. "Code") to include in API
13522	// requests with the JSON null value. By default, fields with empty
13523	// values are omitted from API requests. However, any field with an
13524	// empty value appearing in NullFields will be sent to the server as
13525	// null. It is an error if a field in this list has a non-empty value.
13526	// This may be used to include null fields in Patch requests.
13527	NullFields []string `json:"-"`
13528}
13529
13530func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
13531	type NoMethod HealthChecksAggregatedListWarning
13532	raw := NoMethod(*s)
13533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13534}
13535
13536type HealthChecksAggregatedListWarningData struct {
13537	// Key: [Output Only] A key that provides more detail on the warning
13538	// being returned. For example, for warnings where there are no results
13539	// in a list request for a particular zone, this key might be scope and
13540	// the key value might be the zone name. Other examples might be a key
13541	// indicating a deprecated resource and a suggested replacement, or a
13542	// warning about invalid network settings (for example, if an instance
13543	// attempts to perform IP forwarding but is not enabled for IP
13544	// forwarding).
13545	Key string `json:"key,omitempty"`
13546
13547	// Value: [Output Only] A warning data value corresponding to the key.
13548	Value string `json:"value,omitempty"`
13549
13550	// ForceSendFields is a list of field names (e.g. "Key") to
13551	// unconditionally include in API requests. By default, fields with
13552	// empty values are omitted from API requests. However, any non-pointer,
13553	// non-interface field appearing in ForceSendFields will be sent to the
13554	// server regardless of whether the field is empty or not. This may be
13555	// used to include empty fields in Patch requests.
13556	ForceSendFields []string `json:"-"`
13557
13558	// NullFields is a list of field names (e.g. "Key") to include in API
13559	// requests with the JSON null value. By default, fields with empty
13560	// values are omitted from API requests. However, any field with an
13561	// empty value appearing in NullFields will be sent to the server as
13562	// null. It is an error if a field in this list has a non-empty value.
13563	// This may be used to include null fields in Patch requests.
13564	NullFields []string `json:"-"`
13565}
13566
13567func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13568	type NoMethod HealthChecksAggregatedListWarningData
13569	raw := NoMethod(*s)
13570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13571}
13572
13573type HealthChecksScopedList struct {
13574	// HealthChecks: A list of HealthChecks contained in this scope.
13575	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
13576
13577	// Warning: Informational warning which replaces the list of backend
13578	// services when the list is empty.
13579	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
13580
13581	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
13582	// unconditionally include in API requests. By default, fields with
13583	// empty values are omitted from API requests. However, any non-pointer,
13584	// non-interface field appearing in ForceSendFields will be sent to the
13585	// server regardless of whether the field is empty or not. This may be
13586	// used to include empty fields in Patch requests.
13587	ForceSendFields []string `json:"-"`
13588
13589	// NullFields is a list of field names (e.g. "HealthChecks") to include
13590	// in API requests with the JSON null value. By default, fields with
13591	// empty values are omitted from API requests. However, any field with
13592	// an empty value appearing in NullFields will be sent to the server as
13593	// null. It is an error if a field in this list has a non-empty value.
13594	// This may be used to include null fields in Patch requests.
13595	NullFields []string `json:"-"`
13596}
13597
13598func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
13599	type NoMethod HealthChecksScopedList
13600	raw := NoMethod(*s)
13601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13602}
13603
13604// HealthChecksScopedListWarning: Informational warning which replaces
13605// the list of backend services when the list is empty.
13606type HealthChecksScopedListWarning struct {
13607	// Code: [Output Only] A warning code, if applicable. For example,
13608	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13609	// the response.
13610	//
13611	// Possible values:
13612	//   "CLEANUP_FAILED"
13613	//   "DEPRECATED_RESOURCE_USED"
13614	//   "DEPRECATED_TYPE_USED"
13615	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13616	//   "EXPERIMENTAL_TYPE_USED"
13617	//   "EXTERNAL_API_WARNING"
13618	//   "FIELD_VALUE_OVERRIDEN"
13619	//   "INJECTED_KERNELS_DEPRECATED"
13620	//   "LARGE_DEPLOYMENT_WARNING"
13621	//   "MISSING_TYPE_DEPENDENCY"
13622	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13623	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13624	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13625	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13626	//   "NEXT_HOP_NOT_RUNNING"
13627	//   "NOT_CRITICAL_ERROR"
13628	//   "NO_RESULTS_ON_PAGE"
13629	//   "PARTIAL_SUCCESS"
13630	//   "REQUIRED_TOS_AGREEMENT"
13631	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13632	//   "RESOURCE_NOT_DELETED"
13633	//   "SCHEMA_VALIDATION_IGNORED"
13634	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13635	//   "UNDECLARED_PROPERTIES"
13636	//   "UNREACHABLE"
13637	Code string `json:"code,omitempty"`
13638
13639	// Data: [Output Only] Metadata about this warning in key: value format.
13640	// For example:
13641	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13642	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
13643
13644	// Message: [Output Only] A human-readable description of the warning
13645	// code.
13646	Message string `json:"message,omitempty"`
13647
13648	// ForceSendFields is a list of field names (e.g. "Code") to
13649	// unconditionally include in API requests. By default, fields with
13650	// empty values are omitted from API requests. However, any non-pointer,
13651	// non-interface field appearing in ForceSendFields will be sent to the
13652	// server regardless of whether the field is empty or not. This may be
13653	// used to include empty fields in Patch requests.
13654	ForceSendFields []string `json:"-"`
13655
13656	// NullFields is a list of field names (e.g. "Code") to include in API
13657	// requests with the JSON null value. By default, fields with empty
13658	// values are omitted from API requests. However, any field with an
13659	// empty value appearing in NullFields will be sent to the server as
13660	// null. It is an error if a field in this list has a non-empty value.
13661	// This may be used to include null fields in Patch requests.
13662	NullFields []string `json:"-"`
13663}
13664
13665func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
13666	type NoMethod HealthChecksScopedListWarning
13667	raw := NoMethod(*s)
13668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13669}
13670
13671type HealthChecksScopedListWarningData struct {
13672	// Key: [Output Only] A key that provides more detail on the warning
13673	// being returned. For example, for warnings where there are no results
13674	// in a list request for a particular zone, this key might be scope and
13675	// the key value might be the zone name. Other examples might be a key
13676	// indicating a deprecated resource and a suggested replacement, or a
13677	// warning about invalid network settings (for example, if an instance
13678	// attempts to perform IP forwarding but is not enabled for IP
13679	// forwarding).
13680	Key string `json:"key,omitempty"`
13681
13682	// Value: [Output Only] A warning data value corresponding to the key.
13683	Value string `json:"value,omitempty"`
13684
13685	// ForceSendFields is a list of field names (e.g. "Key") to
13686	// unconditionally include in API requests. By default, fields with
13687	// empty values are omitted from API requests. However, any non-pointer,
13688	// non-interface field appearing in ForceSendFields will be sent to the
13689	// server regardless of whether the field is empty or not. This may be
13690	// used to include empty fields in Patch requests.
13691	ForceSendFields []string `json:"-"`
13692
13693	// NullFields is a list of field names (e.g. "Key") to include in API
13694	// requests with the JSON null value. By default, fields with empty
13695	// values are omitted from API requests. However, any field with an
13696	// empty value appearing in NullFields will be sent to the server as
13697	// null. It is an error if a field in this list has a non-empty value.
13698	// This may be used to include null fields in Patch requests.
13699	NullFields []string `json:"-"`
13700}
13701
13702func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
13703	type NoMethod HealthChecksScopedListWarningData
13704	raw := NoMethod(*s)
13705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13706}
13707
13708type HealthStatus struct {
13709	// Annotations: Metadata defined as annotations for network endpoint.
13710	Annotations map[string]string `json:"annotations,omitempty"`
13711
13712	// ForwardingRule: URL of the forwarding rule associated with the health
13713	// status of the instance.
13714	ForwardingRule string `json:"forwardingRule,omitempty"`
13715
13716	// ForwardingRuleIp: A forwarding rule IP address assigned to this
13717	// instance.
13718	ForwardingRuleIp string `json:"forwardingRuleIp,omitempty"`
13719
13720	// HealthState: Health state of the instance.
13721	//
13722	// Possible values:
13723	//   "HEALTHY"
13724	//   "UNHEALTHY"
13725	HealthState string `json:"healthState,omitempty"`
13726
13727	// Instance: URL of the instance resource.
13728	Instance string `json:"instance,omitempty"`
13729
13730	// IpAddress: For target pool based Network Load Balancing, it indicates
13731	// the forwarding rule's IP address assigned to this instance. For other
13732	// types of load balancing, the field indicates VM internal ip.
13733	IpAddress string `json:"ipAddress,omitempty"`
13734
13735	// Port: The named port of the instance group, not necessarily the port
13736	// that is health-checked.
13737	Port int64 `json:"port,omitempty"`
13738
13739	Weight string `json:"weight,omitempty"`
13740
13741	// Possible values:
13742	//   "INVALID_WEIGHT"
13743	//   "MISSING_WEIGHT"
13744	//   "UNAVAILABLE_WEIGHT"
13745	//   "WEIGHT_NONE"
13746	WeightError string `json:"weightError,omitempty"`
13747
13748	// ForceSendFields is a list of field names (e.g. "Annotations") to
13749	// unconditionally include in API requests. By default, fields with
13750	// empty values are omitted from API requests. However, any non-pointer,
13751	// non-interface field appearing in ForceSendFields will be sent to the
13752	// server regardless of whether the field is empty or not. This may be
13753	// used to include empty fields in Patch requests.
13754	ForceSendFields []string `json:"-"`
13755
13756	// NullFields is a list of field names (e.g. "Annotations") to include
13757	// in API requests with the JSON null value. By default, fields with
13758	// empty values are omitted from API requests. However, any field with
13759	// an empty value appearing in NullFields will be sent to the server as
13760	// null. It is an error if a field in this list has a non-empty value.
13761	// This may be used to include null fields in Patch requests.
13762	NullFields []string `json:"-"`
13763}
13764
13765func (s *HealthStatus) MarshalJSON() ([]byte, error) {
13766	type NoMethod HealthStatus
13767	raw := NoMethod(*s)
13768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13769}
13770
13771type HealthStatusForNetworkEndpoint struct {
13772	// BackendService: URL of the backend service associated with the health
13773	// state of the network endpoint.
13774	BackendService *BackendServiceReference `json:"backendService,omitempty"`
13775
13776	// ForwardingRule: URL of the forwarding rule associated with the health
13777	// state of the network endpoint.
13778	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
13779
13780	// HealthCheck: URL of the health check associated with the health state
13781	// of the network endpoint.
13782	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
13783
13784	// HealthCheckService: URL of the health check service associated with
13785	// the health state of the network endpoint.
13786	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
13787
13788	// HealthState: Health state of the network endpoint determined based on
13789	// the health checks configured.
13790	//
13791	// Possible values:
13792	//   "DRAINING"
13793	//   "HEALTHY"
13794	//   "UNHEALTHY"
13795	//   "UNKNOWN"
13796	HealthState string `json:"healthState,omitempty"`
13797
13798	// ForceSendFields is a list of field names (e.g. "BackendService") to
13799	// unconditionally include in API requests. By default, fields with
13800	// empty values are omitted from API requests. However, any non-pointer,
13801	// non-interface field appearing in ForceSendFields will be sent to the
13802	// server regardless of whether the field is empty or not. This may be
13803	// used to include empty fields in Patch requests.
13804	ForceSendFields []string `json:"-"`
13805
13806	// NullFields is a list of field names (e.g. "BackendService") to
13807	// include in API requests with the JSON null value. By default, fields
13808	// with empty values are omitted from API requests. However, any field
13809	// with an empty value appearing in NullFields will be sent to the
13810	// server as null. It is an error if a field in this list has a
13811	// non-empty value. This may be used to include null fields in Patch
13812	// requests.
13813	NullFields []string `json:"-"`
13814}
13815
13816func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
13817	type NoMethod HealthStatusForNetworkEndpoint
13818	raw := NoMethod(*s)
13819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13820}
13821
13822// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
13823// use the named PathMatcher to select the BackendService.
13824type HostRule struct {
13825	// Description: An optional description of this resource. Provide this
13826	// property when you create the resource.
13827	Description string `json:"description,omitempty"`
13828
13829	// Hosts: The list of host patterns to match. They must be valid
13830	// hostnames with optional port numbers in the format host:port. *
13831	// matches any string of ([a-z0-9-.]*). In that case, * must be the
13832	// first character and must be followed in the pattern by either - or
13833	// ..
13834	// * based matching is not supported when the URL map is bound to target
13835	// gRPC proxy that has validateForProxyless field set to true.
13836	Hosts []string `json:"hosts,omitempty"`
13837
13838	// PathMatcher: The name of the PathMatcher to use to match the path
13839	// portion of the URL if the hostRule matches the URL's host portion.
13840	PathMatcher string `json:"pathMatcher,omitempty"`
13841
13842	// ForceSendFields is a list of field names (e.g. "Description") to
13843	// unconditionally include in API requests. By default, fields with
13844	// empty values are omitted from API requests. However, any non-pointer,
13845	// non-interface field appearing in ForceSendFields will be sent to the
13846	// server regardless of whether the field is empty or not. This may be
13847	// used to include empty fields in Patch requests.
13848	ForceSendFields []string `json:"-"`
13849
13850	// NullFields is a list of field names (e.g. "Description") to include
13851	// in API requests with the JSON null value. By default, fields with
13852	// empty values are omitted from API requests. However, any field with
13853	// an empty value appearing in NullFields will be sent to the server as
13854	// null. It is an error if a field in this list has a non-empty value.
13855	// This may be used to include null fields in Patch requests.
13856	NullFields []string `json:"-"`
13857}
13858
13859func (s *HostRule) MarshalJSON() ([]byte, error) {
13860	type NoMethod HostRule
13861	raw := NoMethod(*s)
13862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13863}
13864
13865// HttpFaultAbort: Specification for how requests are aborted as part of
13866// fault injection.
13867type HttpFaultAbort struct {
13868	// HttpStatus: The HTTP status code used to abort the request.
13869	// The value must be between 200 and 599 inclusive.
13870	// For gRPC protocol, the gRPC status code is mapped to HTTP status code
13871	// according to this  mapping table. HTTP status 200 is mapped to gRPC
13872	// status UNKNOWN. Injecting an OK status is currently not supported by
13873	// Traffic Director.
13874	HttpStatus int64 `json:"httpStatus,omitempty"`
13875
13876	// Percentage: The percentage of traffic
13877	// (connections/operations/requests) which will be aborted as part of
13878	// fault injection.
13879	// The value must be between 0.0 and 100.0 inclusive.
13880	Percentage float64 `json:"percentage,omitempty"`
13881
13882	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
13883	// unconditionally include in API requests. By default, fields with
13884	// empty values are omitted from API requests. However, any non-pointer,
13885	// non-interface field appearing in ForceSendFields will be sent to the
13886	// server regardless of whether the field is empty or not. This may be
13887	// used to include empty fields in Patch requests.
13888	ForceSendFields []string `json:"-"`
13889
13890	// NullFields is a list of field names (e.g. "HttpStatus") to include in
13891	// API requests with the JSON null value. By default, fields with empty
13892	// values are omitted from API requests. However, any field with an
13893	// empty value appearing in NullFields will be sent to the server as
13894	// null. It is an error if a field in this list has a non-empty value.
13895	// This may be used to include null fields in Patch requests.
13896	NullFields []string `json:"-"`
13897}
13898
13899func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
13900	type NoMethod HttpFaultAbort
13901	raw := NoMethod(*s)
13902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13903}
13904
13905func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
13906	type NoMethod HttpFaultAbort
13907	var s1 struct {
13908		Percentage gensupport.JSONFloat64 `json:"percentage"`
13909		*NoMethod
13910	}
13911	s1.NoMethod = (*NoMethod)(s)
13912	if err := json.Unmarshal(data, &s1); err != nil {
13913		return err
13914	}
13915	s.Percentage = float64(s1.Percentage)
13916	return nil
13917}
13918
13919// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
13920// forwarding the request to the backend service as part of fault
13921// injection.
13922type HttpFaultDelay struct {
13923	// FixedDelay: Specifies the value of the fixed delay interval.
13924	FixedDelay *Duration `json:"fixedDelay,omitempty"`
13925
13926	// Percentage: The percentage of traffic
13927	// (connections/operations/requests) on which delay will be introduced
13928	// as part of fault injection.
13929	// The value must be between 0.0 and 100.0 inclusive.
13930	Percentage float64 `json:"percentage,omitempty"`
13931
13932	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
13933	// unconditionally include in API requests. By default, fields with
13934	// empty values are omitted from API requests. However, any non-pointer,
13935	// non-interface field appearing in ForceSendFields will be sent to the
13936	// server regardless of whether the field is empty or not. This may be
13937	// used to include empty fields in Patch requests.
13938	ForceSendFields []string `json:"-"`
13939
13940	// NullFields is a list of field names (e.g. "FixedDelay") to include in
13941	// API requests with the JSON null value. By default, fields with empty
13942	// values are omitted from API requests. However, any field with an
13943	// empty value appearing in NullFields will be sent to the server as
13944	// null. It is an error if a field in this list has a non-empty value.
13945	// This may be used to include null fields in Patch requests.
13946	NullFields []string `json:"-"`
13947}
13948
13949func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
13950	type NoMethod HttpFaultDelay
13951	raw := NoMethod(*s)
13952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13953}
13954
13955func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
13956	type NoMethod HttpFaultDelay
13957	var s1 struct {
13958		Percentage gensupport.JSONFloat64 `json:"percentage"`
13959		*NoMethod
13960	}
13961	s1.NoMethod = (*NoMethod)(s)
13962	if err := json.Unmarshal(data, &s1); err != nil {
13963		return err
13964	}
13965	s.Percentage = float64(s1.Percentage)
13966	return nil
13967}
13968
13969// HttpFaultInjection: The specification for fault injection introduced
13970// into traffic to test the resiliency of clients to backend service
13971// failure. As part of fault injection, when clients send requests to a
13972// backend service, delays can be introduced by Loadbalancer on a
13973// percentage of requests before sending those request to the backend
13974// service. Similarly requests from clients can be aborted by the
13975// Loadbalancer for a percentage of requests.
13976type HttpFaultInjection struct {
13977	// Abort: The specification for how client requests are aborted as part
13978	// of fault injection.
13979	Abort *HttpFaultAbort `json:"abort,omitempty"`
13980
13981	// Delay: The specification for how client requests are delayed as part
13982	// of fault injection, before being sent to a backend service.
13983	Delay *HttpFaultDelay `json:"delay,omitempty"`
13984
13985	// ForceSendFields is a list of field names (e.g. "Abort") to
13986	// unconditionally include in API requests. By default, fields with
13987	// empty values are omitted from API requests. However, any non-pointer,
13988	// non-interface field appearing in ForceSendFields will be sent to the
13989	// server regardless of whether the field is empty or not. This may be
13990	// used to include empty fields in Patch requests.
13991	ForceSendFields []string `json:"-"`
13992
13993	// NullFields is a list of field names (e.g. "Abort") to include in API
13994	// requests with the JSON null value. By default, fields with empty
13995	// values are omitted from API requests. However, any field with an
13996	// empty value appearing in NullFields will be sent to the server as
13997	// null. It is an error if a field in this list has a non-empty value.
13998	// This may be used to include null fields in Patch requests.
13999	NullFields []string `json:"-"`
14000}
14001
14002func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
14003	type NoMethod HttpFaultInjection
14004	raw := NoMethod(*s)
14005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14006}
14007
14008// HttpFilterConfig: HttpFilterConfiguration supplies additional
14009// contextual settings for networkservices.HttpFilter resources enabled
14010// by Traffic Director.
14011type HttpFilterConfig struct {
14012	// Config: The configuration needed to enable the
14013	// networkservices.HttpFilter resource. The configuration must be YAML
14014	// formatted and only contain fields defined in the protobuf identified
14015	// in configTypeUrl
14016	Config string `json:"config,omitempty"`
14017
14018	// ConfigTypeUrl: The fully qualified versioned proto3 type url of the
14019	// protobuf that the filter expects for its contextual settings, for
14020	// example: type.googleapis.com/google.protobuf.Struct
14021	ConfigTypeUrl string `json:"configTypeUrl,omitempty"`
14022
14023	// FilterName: Name of the networkservices.HttpFilter resource this
14024	// configuration belongs to. This name must be known to the xDS client.
14025	// Example: envoy.wasm
14026	FilterName string `json:"filterName,omitempty"`
14027
14028	// ForceSendFields is a list of field names (e.g. "Config") to
14029	// unconditionally include in API requests. By default, fields with
14030	// empty values are omitted from API requests. However, any non-pointer,
14031	// non-interface field appearing in ForceSendFields will be sent to the
14032	// server regardless of whether the field is empty or not. This may be
14033	// used to include empty fields in Patch requests.
14034	ForceSendFields []string `json:"-"`
14035
14036	// NullFields is a list of field names (e.g. "Config") to include in API
14037	// requests with the JSON null value. By default, fields with empty
14038	// values are omitted from API requests. However, any field with an
14039	// empty value appearing in NullFields will be sent to the server as
14040	// null. It is an error if a field in this list has a non-empty value.
14041	// This may be used to include null fields in Patch requests.
14042	NullFields []string `json:"-"`
14043}
14044
14045func (s *HttpFilterConfig) MarshalJSON() ([]byte, error) {
14046	type NoMethod HttpFilterConfig
14047	raw := NoMethod(*s)
14048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14049}
14050
14051// HttpHeaderAction: The request and response header transformations
14052// that take effect before the request is passed along to the selected
14053// backendService.
14054type HttpHeaderAction struct {
14055	// RequestHeadersToAdd: Headers to add to a matching request prior to
14056	// forwarding the request to the backendService.
14057	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
14058
14059	// RequestHeadersToRemove: A list of header names for headers that need
14060	// to be removed from the request prior to forwarding the request to the
14061	// backendService.
14062	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
14063
14064	// ResponseHeadersToAdd: Headers to add the response prior to sending
14065	// the response back to the client.
14066	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
14067
14068	// ResponseHeadersToRemove: A list of header names for headers that need
14069	// to be removed from the response prior to sending the response back to
14070	// the client.
14071	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
14072
14073	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
14074	// to unconditionally include in API requests. By default, fields with
14075	// empty values are omitted from API requests. However, any non-pointer,
14076	// non-interface field appearing in ForceSendFields will be sent to the
14077	// server regardless of whether the field is empty or not. This may be
14078	// used to include empty fields in Patch requests.
14079	ForceSendFields []string `json:"-"`
14080
14081	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
14082	// include in API requests with the JSON null value. By default, fields
14083	// with empty values are omitted from API requests. However, any field
14084	// with an empty value appearing in NullFields will be sent to the
14085	// server as null. It is an error if a field in this list has a
14086	// non-empty value. This may be used to include null fields in Patch
14087	// requests.
14088	NullFields []string `json:"-"`
14089}
14090
14091func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
14092	type NoMethod HttpHeaderAction
14093	raw := NoMethod(*s)
14094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14095}
14096
14097// HttpHeaderMatch: matchRule criteria for request header matches.
14098type HttpHeaderMatch struct {
14099	// ExactMatch: The value should exactly match contents of
14100	// exactMatch.
14101	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14102	// presentMatch or rangeMatch must be set.
14103	ExactMatch string `json:"exactMatch,omitempty"`
14104
14105	// HeaderName: The name of the HTTP header to match.
14106	// For matching against the HTTP request's authority, use a headerMatch
14107	// with the header name ":authority".
14108	// For matching a request's method, use the headerName ":method".
14109	// When the URL map is bound to target gRPC proxy that has
14110	// validateForProxyless field set to true, only non-binary
14111	// user-specified custom metadata and the `content-type` header are
14112	// supported. The following transport-level headers cannot be used in
14113	// header matching rules: `:authority`, `:method`, `:path`, `:scheme`,
14114	// `user-agent`, `accept-encoding`, `content-encoding`,
14115	// `grpc-accept-encoding`, `grpc-encoding`,
14116	// `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and
14117	// `grpc-trace-bin.
14118	HeaderName string `json:"headerName,omitempty"`
14119
14120	// InvertMatch: If set to false, the headerMatch is considered a match
14121	// if the match criteria above are met. If set to true, the headerMatch
14122	// is considered a match if the match criteria above are NOT met.
14123	// The default setting is false.
14124	InvertMatch bool `json:"invertMatch,omitempty"`
14125
14126	// PrefixMatch: The value of the header must start with the contents of
14127	// prefixMatch.
14128	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14129	// presentMatch or rangeMatch must be set.
14130	PrefixMatch string `json:"prefixMatch,omitempty"`
14131
14132	// PresentMatch: A header with the contents of headerName must exist.
14133	// The match takes place whether or not the request's header has a
14134	// value.
14135	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14136	// presentMatch or rangeMatch must be set.
14137	PresentMatch bool `json:"presentMatch,omitempty"`
14138
14139	// RangeMatch: The header value must be an integer and its value must be
14140	// in the range specified in rangeMatch. If the header does not contain
14141	// an integer, number or is empty, the match fails.
14142	// For example for a range [-5, 0]
14143	// - -3 will match.
14144	// - 0 will not match.
14145	// - 0.25 will not match.
14146	// - -3someString will not match.
14147	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14148	// presentMatch or rangeMatch must be set.
14149	// Note that rangeMatch is not supported for Loadbalancers that have
14150	// their loadBalancingScheme set to EXTERNAL.
14151	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
14152
14153	// RegexMatch: The value of the header must match the regular expression
14154	// specified in regexMatch. For regular expression grammar, please see:
14155	// github.com/google/re2/wiki/Syntax
14156	// For matching against a port specified in the HTTP request, use a
14157	// headerMatch with headerName set to PORT and a regular expression that
14158	// satisfies the RFC2616 Host header's port specifier.
14159	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14160	// presentMatch or rangeMatch must be set.
14161	// Note that regexMatch only applies to Loadbalancers that have their
14162	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14163	RegexMatch string `json:"regexMatch,omitempty"`
14164
14165	// SuffixMatch: The value of the header must end with the contents of
14166	// suffixMatch.
14167	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14168	// presentMatch or rangeMatch must be set.
14169	SuffixMatch string `json:"suffixMatch,omitempty"`
14170
14171	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
14172	// unconditionally include in API requests. By default, fields with
14173	// empty values are omitted from API requests. However, any non-pointer,
14174	// non-interface field appearing in ForceSendFields will be sent to the
14175	// server regardless of whether the field is empty or not. This may be
14176	// used to include empty fields in Patch requests.
14177	ForceSendFields []string `json:"-"`
14178
14179	// NullFields is a list of field names (e.g. "ExactMatch") to include in
14180	// API requests with the JSON null value. By default, fields with empty
14181	// values are omitted from API requests. However, any field with an
14182	// empty value appearing in NullFields will be sent to the server as
14183	// null. It is an error if a field in this list has a non-empty value.
14184	// This may be used to include null fields in Patch requests.
14185	NullFields []string `json:"-"`
14186}
14187
14188func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
14189	type NoMethod HttpHeaderMatch
14190	raw := NoMethod(*s)
14191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14192}
14193
14194// HttpHeaderOption: Specification determining how headers are added to
14195// requests or responses.
14196type HttpHeaderOption struct {
14197	// HeaderName: The name of the header.
14198	HeaderName string `json:"headerName,omitempty"`
14199
14200	// HeaderValue: The value of the header to add.
14201	HeaderValue string `json:"headerValue,omitempty"`
14202
14203	// Replace: If false, headerValue is appended to any values that already
14204	// exist for the header. If true, headerValue is set for the header,
14205	// discarding any values that were set for that header.
14206	// The default value is false.
14207	Replace bool `json:"replace,omitempty"`
14208
14209	// ForceSendFields is a list of field names (e.g. "HeaderName") to
14210	// unconditionally include in API requests. By default, fields with
14211	// empty values are omitted from API requests. However, any non-pointer,
14212	// non-interface field appearing in ForceSendFields will be sent to the
14213	// server regardless of whether the field is empty or not. This may be
14214	// used to include empty fields in Patch requests.
14215	ForceSendFields []string `json:"-"`
14216
14217	// NullFields is a list of field names (e.g. "HeaderName") to include in
14218	// API requests with the JSON null value. By default, fields with empty
14219	// values are omitted from API requests. However, any field with an
14220	// empty value appearing in NullFields will be sent to the server as
14221	// null. It is an error if a field in this list has a non-empty value.
14222	// This may be used to include null fields in Patch requests.
14223	NullFields []string `json:"-"`
14224}
14225
14226func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
14227	type NoMethod HttpHeaderOption
14228	raw := NoMethod(*s)
14229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14230}
14231
14232// HttpHealthCheck: Represents a legacy HTTP Health Check
14233// resource.
14234//
14235// Legacy health checks are required by network load balancers. For more
14236// information, read Health Check Concepts.
14237type HttpHealthCheck struct {
14238	// CheckIntervalSec: How often (in seconds) to send a health check. The
14239	// default value is 5 seconds.
14240	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
14241
14242	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14243	// format.
14244	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14245
14246	// Description: An optional description of this resource. Provide this
14247	// property when you create the resource.
14248	Description string `json:"description,omitempty"`
14249
14250	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
14251	// after this many consecutive successes. The default value is 2.
14252	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
14253
14254	// Host: The value of the host header in the HTTP health check request.
14255	// If left empty (default value), the public IP on behalf of which this
14256	// health check is performed will be used.
14257	Host string `json:"host,omitempty"`
14258
14259	// Id: [Output Only] The unique identifier for the resource. This
14260	// identifier is defined by the server.
14261	Id uint64 `json:"id,omitempty,string"`
14262
14263	// Kind: [Output Only] Type of the resource. Always
14264	// compute#httpHealthCheck for HTTP health checks.
14265	Kind string `json:"kind,omitempty"`
14266
14267	// Name: Name of the resource. Provided by the client when the resource
14268	// is created. The name must be 1-63 characters long, and comply with
14269	// RFC1035. Specifically, the name must be 1-63 characters long and
14270	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14271	// the first character must be a lowercase letter, and all following
14272	// characters must be a dash, lowercase letter, or digit, except the
14273	// last character, which cannot be a dash.
14274	Name string `json:"name,omitempty"`
14275
14276	// Port: The TCP port number for the HTTP health check request. The
14277	// default value is 80.
14278	Port int64 `json:"port,omitempty"`
14279
14280	// RequestPath: The request path of the HTTP health check request. The
14281	// default value is /. This field does not support query parameters.
14282	RequestPath string `json:"requestPath,omitempty"`
14283
14284	// SelfLink: [Output Only] Server-defined URL for the resource.
14285	SelfLink string `json:"selfLink,omitempty"`
14286
14287	// TimeoutSec: How long (in seconds) to wait before claiming failure.
14288	// The default value is 5 seconds. It is invalid for timeoutSec to have
14289	// greater value than checkIntervalSec.
14290	TimeoutSec int64 `json:"timeoutSec,omitempty"`
14291
14292	// UnhealthyThreshold: A so-far healthy instance will be marked
14293	// unhealthy after this many consecutive failures. The default value is
14294	// 2.
14295	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
14296
14297	// ServerResponse contains the HTTP response code and headers from the
14298	// server.
14299	googleapi.ServerResponse `json:"-"`
14300
14301	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
14302	// unconditionally include in API requests. By default, fields with
14303	// empty values are omitted from API requests. However, any non-pointer,
14304	// non-interface field appearing in ForceSendFields will be sent to the
14305	// server regardless of whether the field is empty or not. This may be
14306	// used to include empty fields in Patch requests.
14307	ForceSendFields []string `json:"-"`
14308
14309	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
14310	// include in API requests with the JSON null value. By default, fields
14311	// with empty values are omitted from API requests. However, any field
14312	// with an empty value appearing in NullFields will be sent to the
14313	// server as null. It is an error if a field in this list has a
14314	// non-empty value. This may be used to include null fields in Patch
14315	// requests.
14316	NullFields []string `json:"-"`
14317}
14318
14319func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
14320	type NoMethod HttpHealthCheck
14321	raw := NoMethod(*s)
14322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14323}
14324
14325// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
14326type HttpHealthCheckList struct {
14327	// Id: [Output Only] Unique identifier for the resource; defined by the
14328	// server.
14329	Id string `json:"id,omitempty"`
14330
14331	// Items: A list of HttpHealthCheck resources.
14332	Items []*HttpHealthCheck `json:"items,omitempty"`
14333
14334	// Kind: Type of resource.
14335	Kind string `json:"kind,omitempty"`
14336
14337	// NextPageToken: [Output Only] This token allows you to get the next
14338	// page of results for list requests. If the number of results is larger
14339	// than maxResults, use the nextPageToken as a value for the query
14340	// parameter pageToken in the next list request. Subsequent list
14341	// requests will have their own nextPageToken to continue paging through
14342	// the results.
14343	NextPageToken string `json:"nextPageToken,omitempty"`
14344
14345	// SelfLink: [Output Only] Server-defined URL for this resource.
14346	SelfLink string `json:"selfLink,omitempty"`
14347
14348	// Warning: [Output Only] Informational warning message.
14349	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
14350
14351	// ServerResponse contains the HTTP response code and headers from the
14352	// server.
14353	googleapi.ServerResponse `json:"-"`
14354
14355	// ForceSendFields is a list of field names (e.g. "Id") to
14356	// unconditionally include in API requests. By default, fields with
14357	// empty values are omitted from API requests. However, any non-pointer,
14358	// non-interface field appearing in ForceSendFields will be sent to the
14359	// server regardless of whether the field is empty or not. This may be
14360	// used to include empty fields in Patch requests.
14361	ForceSendFields []string `json:"-"`
14362
14363	// NullFields is a list of field names (e.g. "Id") to include in API
14364	// requests with the JSON null value. By default, fields with empty
14365	// values are omitted from API requests. However, any field with an
14366	// empty value appearing in NullFields will be sent to the server as
14367	// null. It is an error if a field in this list has a non-empty value.
14368	// This may be used to include null fields in Patch requests.
14369	NullFields []string `json:"-"`
14370}
14371
14372func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
14373	type NoMethod HttpHealthCheckList
14374	raw := NoMethod(*s)
14375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14376}
14377
14378// HttpHealthCheckListWarning: [Output Only] Informational warning
14379// message.
14380type HttpHealthCheckListWarning struct {
14381	// Code: [Output Only] A warning code, if applicable. For example,
14382	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14383	// the response.
14384	//
14385	// Possible values:
14386	//   "CLEANUP_FAILED"
14387	//   "DEPRECATED_RESOURCE_USED"
14388	//   "DEPRECATED_TYPE_USED"
14389	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14390	//   "EXPERIMENTAL_TYPE_USED"
14391	//   "EXTERNAL_API_WARNING"
14392	//   "FIELD_VALUE_OVERRIDEN"
14393	//   "INJECTED_KERNELS_DEPRECATED"
14394	//   "LARGE_DEPLOYMENT_WARNING"
14395	//   "MISSING_TYPE_DEPENDENCY"
14396	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14397	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14398	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14399	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14400	//   "NEXT_HOP_NOT_RUNNING"
14401	//   "NOT_CRITICAL_ERROR"
14402	//   "NO_RESULTS_ON_PAGE"
14403	//   "PARTIAL_SUCCESS"
14404	//   "REQUIRED_TOS_AGREEMENT"
14405	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14406	//   "RESOURCE_NOT_DELETED"
14407	//   "SCHEMA_VALIDATION_IGNORED"
14408	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14409	//   "UNDECLARED_PROPERTIES"
14410	//   "UNREACHABLE"
14411	Code string `json:"code,omitempty"`
14412
14413	// Data: [Output Only] Metadata about this warning in key: value format.
14414	// For example:
14415	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14416	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
14417
14418	// Message: [Output Only] A human-readable description of the warning
14419	// code.
14420	Message string `json:"message,omitempty"`
14421
14422	// ForceSendFields is a list of field names (e.g. "Code") to
14423	// unconditionally include in API requests. By default, fields with
14424	// empty values are omitted from API requests. However, any non-pointer,
14425	// non-interface field appearing in ForceSendFields will be sent to the
14426	// server regardless of whether the field is empty or not. This may be
14427	// used to include empty fields in Patch requests.
14428	ForceSendFields []string `json:"-"`
14429
14430	// NullFields is a list of field names (e.g. "Code") to include in API
14431	// requests with the JSON null value. By default, fields with empty
14432	// values are omitted from API requests. However, any field with an
14433	// empty value appearing in NullFields will be sent to the server as
14434	// null. It is an error if a field in this list has a non-empty value.
14435	// This may be used to include null fields in Patch requests.
14436	NullFields []string `json:"-"`
14437}
14438
14439func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
14440	type NoMethod HttpHealthCheckListWarning
14441	raw := NoMethod(*s)
14442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14443}
14444
14445type HttpHealthCheckListWarningData struct {
14446	// Key: [Output Only] A key that provides more detail on the warning
14447	// being returned. For example, for warnings where there are no results
14448	// in a list request for a particular zone, this key might be scope and
14449	// the key value might be the zone name. Other examples might be a key
14450	// indicating a deprecated resource and a suggested replacement, or a
14451	// warning about invalid network settings (for example, if an instance
14452	// attempts to perform IP forwarding but is not enabled for IP
14453	// forwarding).
14454	Key string `json:"key,omitempty"`
14455
14456	// Value: [Output Only] A warning data value corresponding to the key.
14457	Value string `json:"value,omitempty"`
14458
14459	// ForceSendFields is a list of field names (e.g. "Key") to
14460	// unconditionally include in API requests. By default, fields with
14461	// empty values are omitted from API requests. However, any non-pointer,
14462	// non-interface field appearing in ForceSendFields will be sent to the
14463	// server regardless of whether the field is empty or not. This may be
14464	// used to include empty fields in Patch requests.
14465	ForceSendFields []string `json:"-"`
14466
14467	// NullFields is a list of field names (e.g. "Key") to include in API
14468	// requests with the JSON null value. By default, fields with empty
14469	// values are omitted from API requests. However, any field with an
14470	// empty value appearing in NullFields will be sent to the server as
14471	// null. It is an error if a field in this list has a non-empty value.
14472	// This may be used to include null fields in Patch requests.
14473	NullFields []string `json:"-"`
14474}
14475
14476func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
14477	type NoMethod HttpHealthCheckListWarningData
14478	raw := NoMethod(*s)
14479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14480}
14481
14482// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
14483// query parameter.
14484type HttpQueryParameterMatch struct {
14485	// ExactMatch: The queryParameterMatch matches if the value of the
14486	// parameter exactly matches the contents of exactMatch.
14487	// Only one of presentMatch, exactMatch or regexMatch must be set.
14488	ExactMatch string `json:"exactMatch,omitempty"`
14489
14490	// Name: The name of the query parameter to match. The query parameter
14491	// must exist in the request, in the absence of which the request match
14492	// fails.
14493	Name string `json:"name,omitempty"`
14494
14495	// PresentMatch: Specifies that the queryParameterMatch matches if the
14496	// request contains the query parameter, irrespective of whether the
14497	// parameter has a value or not.
14498	// Only one of presentMatch, exactMatch or regexMatch must be set.
14499	PresentMatch bool `json:"presentMatch,omitempty"`
14500
14501	// RegexMatch: The queryParameterMatch matches if the value of the
14502	// parameter matches the regular expression specified by regexMatch. For
14503	// the regular expression grammar, please see
14504	// github.com/google/re2/wiki/Syntax
14505	// Only one of presentMatch, exactMatch or regexMatch must be set.
14506	// Note that regexMatch only applies when the loadBalancingScheme is set
14507	// to INTERNAL_SELF_MANAGED.
14508	RegexMatch string `json:"regexMatch,omitempty"`
14509
14510	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
14511	// unconditionally include in API requests. By default, fields with
14512	// empty values are omitted from API requests. However, any non-pointer,
14513	// non-interface field appearing in ForceSendFields will be sent to the
14514	// server regardless of whether the field is empty or not. This may be
14515	// used to include empty fields in Patch requests.
14516	ForceSendFields []string `json:"-"`
14517
14518	// NullFields is a list of field names (e.g. "ExactMatch") to include in
14519	// API requests with the JSON null value. By default, fields with empty
14520	// values are omitted from API requests. However, any field with an
14521	// empty value appearing in NullFields will be sent to the server as
14522	// null. It is an error if a field in this list has a non-empty value.
14523	// This may be used to include null fields in Patch requests.
14524	NullFields []string `json:"-"`
14525}
14526
14527func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
14528	type NoMethod HttpQueryParameterMatch
14529	raw := NoMethod(*s)
14530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14531}
14532
14533// HttpRedirectAction: Specifies settings for an HTTP redirect.
14534type HttpRedirectAction struct {
14535	// HostRedirect: The host that will be used in the redirect response
14536	// instead of the one that was supplied in the request.
14537	// The value must be between 1 and 255 characters.
14538	HostRedirect string `json:"hostRedirect,omitempty"`
14539
14540	// HttpsRedirect: If set to true, the URL scheme in the redirected
14541	// request is set to https. If set to false, the URL scheme of the
14542	// redirected request will remain the same as that of the request.
14543	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
14544	// this true for TargetHttpsProxy is not permitted.
14545	// The default is set to false.
14546	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
14547
14548	// PathRedirect: The path that will be used in the redirect response
14549	// instead of the one that was supplied in the request.
14550	// pathRedirect cannot be supplied together with prefixRedirect. Supply
14551	// one alone or neither. If neither is supplied, the path of the
14552	// original request will be used for the redirect.
14553	// The value must be between 1 and 1024 characters.
14554	PathRedirect string `json:"pathRedirect,omitempty"`
14555
14556	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
14557	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
14558	// before redirecting the request.
14559	// prefixRedirect cannot be supplied together with pathRedirect. Supply
14560	// one alone or neither. If neither is supplied, the path of the
14561	// original request will be used for the redirect.
14562	// The value must be between 1 and 1024 characters.
14563	PrefixRedirect string `json:"prefixRedirect,omitempty"`
14564
14565	// RedirectResponseCode: The HTTP Status code to use for this
14566	// RedirectAction.
14567	// Supported values are:
14568	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
14569	// corresponds to 301.
14570	// - FOUND, which corresponds to 302.
14571	// - SEE_OTHER which corresponds to 303.
14572	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
14573	// request method will be retained.
14574	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
14575	// request method will be retained.
14576	//
14577	// Possible values:
14578	//   "FOUND"
14579	//   "MOVED_PERMANENTLY_DEFAULT"
14580	//   "PERMANENT_REDIRECT"
14581	//   "SEE_OTHER"
14582	//   "TEMPORARY_REDIRECT"
14583	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
14584
14585	// StripQuery: If set to true, any accompanying query portion of the
14586	// original URL is removed prior to redirecting the request. If set to
14587	// false, the query portion of the original URL is retained.
14588	// The default is set to false.
14589	StripQuery bool `json:"stripQuery,omitempty"`
14590
14591	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
14592	// unconditionally include in API requests. By default, fields with
14593	// empty values are omitted from API requests. However, any non-pointer,
14594	// non-interface field appearing in ForceSendFields will be sent to the
14595	// server regardless of whether the field is empty or not. This may be
14596	// used to include empty fields in Patch requests.
14597	ForceSendFields []string `json:"-"`
14598
14599	// NullFields is a list of field names (e.g. "HostRedirect") to include
14600	// in API requests with the JSON null value. By default, fields with
14601	// empty values are omitted from API requests. However, any field with
14602	// an empty value appearing in NullFields will be sent to the server as
14603	// null. It is an error if a field in this list has a non-empty value.
14604	// This may be used to include null fields in Patch requests.
14605	NullFields []string `json:"-"`
14606}
14607
14608func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
14609	type NoMethod HttpRedirectAction
14610	raw := NoMethod(*s)
14611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14612}
14613
14614// HttpRetryPolicy: The retry policy associates with HttpRouteRule
14615type HttpRetryPolicy struct {
14616	// NumRetries: Specifies the allowed number retries. This number must be
14617	// > 0. If not specified, defaults to 1.
14618	NumRetries int64 `json:"numRetries,omitempty"`
14619
14620	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
14621	// If not specified, will use the timeout set in HttpRouteAction. If
14622	// timeout in HttpRouteAction is not set, will use the largest timeout
14623	// among all backend services associated with the route.
14624	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
14625
14626	// RetryConditions: Specifies one or more conditions when this retry
14627	// rule applies. Valid values are:
14628	// - 5xx: Loadbalancer will attempt a retry if the backend service
14629	// responds with any 5xx response code, or if the backend service does
14630	// not respond at all, example: disconnects, reset, read timeout,
14631	// connection failure, and refused streams.
14632	// - gateway-error: Similar to 5xx, but only applies to response codes
14633	// 502, 503 or 504.
14634	// -
14635	// - connect-failure: Loadbalancer will retry on failures connecting to
14636	// backend services, for example due to connection timeouts.
14637	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
14638	// codes. Currently the only retriable error supported is 409.
14639	// - refused-stream:Loadbalancer will retry if the backend service
14640	// resets the stream with a REFUSED_STREAM error code. This reset type
14641	// indicates that it is safe to retry.
14642	// - cancelledLoadbalancer will retry if the gRPC status code in the
14643	// response header is set to cancelled
14644	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
14645	// in the response header is set to deadline-exceeded
14646	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
14647	// in the response header is set to resource-exhausted
14648	// - unavailable: Loadbalancer will retry if the gRPC status code in the
14649	// response header is set to unavailable
14650	RetryConditions []string `json:"retryConditions,omitempty"`
14651
14652	// ForceSendFields is a list of field names (e.g. "NumRetries") to
14653	// unconditionally include in API requests. By default, fields with
14654	// empty values are omitted from API requests. However, any non-pointer,
14655	// non-interface field appearing in ForceSendFields will be sent to the
14656	// server regardless of whether the field is empty or not. This may be
14657	// used to include empty fields in Patch requests.
14658	ForceSendFields []string `json:"-"`
14659
14660	// NullFields is a list of field names (e.g. "NumRetries") to include in
14661	// API requests with the JSON null value. By default, fields with empty
14662	// values are omitted from API requests. However, any field with an
14663	// empty value appearing in NullFields will be sent to the server as
14664	// null. It is an error if a field in this list has a non-empty value.
14665	// This may be used to include null fields in Patch requests.
14666	NullFields []string `json:"-"`
14667}
14668
14669func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
14670	type NoMethod HttpRetryPolicy
14671	raw := NoMethod(*s)
14672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14673}
14674
14675type HttpRouteAction struct {
14676	// CorsPolicy: The specification for allowing client side cross-origin
14677	// requests. Please see W3C Recommendation for Cross Origin Resource
14678	// Sharing
14679	// Not supported when the URL map is bound to target gRPC proxy.
14680	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
14681
14682	// FaultInjectionPolicy: The specification for fault injection
14683	// introduced into traffic to test the resiliency of clients to backend
14684	// service failure. As part of fault injection, when clients send
14685	// requests to a backend service, delays can be introduced by
14686	// Loadbalancer on a percentage of requests before sending those request
14687	// to the backend service. Similarly requests from clients can be
14688	// aborted by the Loadbalancer for a percentage of requests. For the
14689	// requests impacted by fault injection,
14690	// timeout and retry_policy will be ignored by clients that are
14691	// configured with a fault_injection_policy.
14692	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
14693
14694	// MaxStreamDuration: Specifies the maximum duration (timeout) for
14695	// streams on the selected route. Unlike the timeout field where the
14696	// timeout duration starts from the time the request has been fully
14697	// processed (i.e. end-of-stream), the duration in this field is
14698	// computed from the beginning of the stream until the response has been
14699	// completely processed, including all retries. A stream that does not
14700	// complete in this duration is closed.
14701	// If not specified, will use the largest maxStreamDuration among all
14702	// backend services associated with the route.
14703	// This field is only allowed if the Url map is used with backend
14704	// services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14705	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
14706
14707	// RequestMirrorPolicy: Specifies the policy on how requests intended
14708	// for the route's backends are shadowed to a separate mirrored backend
14709	// service. Loadbalancer does not wait for responses from the shadow
14710	// service. Prior to sending traffic to the shadow service, the host /
14711	// authority header is suffixed with -shadow.
14712	// Not supported when the URL map is bound to target gRPC proxy that has
14713	// validateForProxyless field set to true.
14714	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
14715
14716	// RetryPolicy: Specifies the retry policy associated with this
14717	// route.
14718	// Not supported when the URL map is bound to target gRPC proxy that has
14719	// validateForProxyless field set to true.
14720	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
14721
14722	// Timeout: Specifies the timeout for the selected route. Timeout is
14723	// computed from the time the request has been fully processed (i.e.
14724	// end-of-stream) up until the response has been completely processed.
14725	// Timeout includes all retries.
14726	// If not specified, will use the largest timeout among all backend
14727	// services associated with the route.
14728	// Not supported when the URL map is bound to target gRPC proxy that has
14729	// validateForProxyless field set to true.
14730	Timeout *Duration `json:"timeout,omitempty"`
14731
14732	// UrlRewrite: The spec to modify the URL of the request, prior to
14733	// forwarding the request to the matched service.
14734	// urlRewrite is the only action supported in UrlMaps for external
14735	// HTTP(S) load balancers.
14736	// Not supported when the URL map is bound to target gRPC proxy that has
14737	// validateForProxyless field set to true.
14738	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
14739
14740	// WeightedBackendServices: A list of weighted backend services to send
14741	// traffic to when a route match occurs. The weights determine the
14742	// fraction of traffic that flows to their corresponding backend
14743	// service. If all traffic needs to go to a single backend service,
14744	// there must be one  weightedBackendService with weight set to a
14745	// non-zero number.
14746	// Once a backendService is identified and before forwarding the request
14747	// to the backend service, advanced routing actions such as URL rewrites
14748	// and header transformations are applied depending on additional
14749	// settings specified in this HttpRouteAction.
14750	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
14751
14752	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
14753	// unconditionally include in API requests. By default, fields with
14754	// empty values are omitted from API requests. However, any non-pointer,
14755	// non-interface field appearing in ForceSendFields will be sent to the
14756	// server regardless of whether the field is empty or not. This may be
14757	// used to include empty fields in Patch requests.
14758	ForceSendFields []string `json:"-"`
14759
14760	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
14761	// API requests with the JSON null value. By default, fields with empty
14762	// values are omitted from API requests. However, any field with an
14763	// empty value appearing in NullFields will be sent to the server as
14764	// null. It is an error if a field in this list has a non-empty value.
14765	// This may be used to include null fields in Patch requests.
14766	NullFields []string `json:"-"`
14767}
14768
14769func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
14770	type NoMethod HttpRouteAction
14771	raw := NoMethod(*s)
14772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14773}
14774
14775// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
14776// request and the corresponding routing action that load balancing
14777// proxies will perform.
14778type HttpRouteRule struct {
14779	// Description: The short description conveying the intent of this
14780	// routeRule.
14781	// The description can have a maximum length of 1024 characters.
14782	Description string `json:"description,omitempty"`
14783
14784	// HeaderAction: Specifies changes to request and response headers that
14785	// need to take effect for the selected backendService.
14786	// The headerAction specified here are applied before the matching
14787	// pathMatchers[].headerAction and after
14788	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
14789	// ServiceWeightAction[].headerAction
14790	// Note that headerAction is not supported for Loadbalancers that have
14791	// their loadBalancingScheme set to EXTERNAL.
14792	// Not supported when the URL map is bound to target gRPC proxy that has
14793	// validateForProxyless field set to true.
14794	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
14795
14796	// HttpFilterConfigs: Outbound route specific configuration for
14797	// networkservices.HttpFilter resources enabled by Traffic Director.
14798	// httpFilterConfigs only applies for Loadbalancers with
14799	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule
14800	// for more details.
14801	// Not supported when the URL map is bound to target gRPC proxy that has
14802	// validateForProxyless field set to true.
14803	HttpFilterConfigs []*HttpFilterConfig `json:"httpFilterConfigs,omitempty"`
14804
14805	// HttpFilterMetadata: Outbound route specific metadata supplied to
14806	// networkservices.HttpFilter resources enabled by Traffic Director.
14807	// httpFilterMetadata only applies for Loadbalancers with
14808	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule
14809	// for more details.
14810	// The only configTypeUrl supported is
14811	// type.googleapis.com/google.protobuf.Struct
14812	// Not supported when the URL map is bound to target gRPC proxy that has
14813	// validateForProxyless field set to true.
14814	HttpFilterMetadata []*HttpFilterConfig `json:"httpFilterMetadata,omitempty"`
14815
14816	// MatchRules: The list of criteria for matching attributes of a request
14817	// to this routeRule. This list has OR semantics: the request matches
14818	// this routeRule when any of the matchRules are satisfied. However
14819	// predicates within a given matchRule have AND semantics. All
14820	// predicates within a matchRule must match for the request to match the
14821	// rule.
14822	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
14823
14824	// Priority: For routeRules within a given pathMatcher, priority
14825	// determines the order in which load balancer will interpret
14826	// routeRules. RouteRules are evaluated in order of priority, from the
14827	// lowest to highest number. The priority of a rule decreases as its
14828	// number increases (1, 2, 3, N+1). The first rule that matches the
14829	// request is applied.
14830	// You cannot configure two or more routeRules with the same priority.
14831	// Priority for each rule must be set to a number between 0 and
14832	// 2147483647 inclusive.
14833	// Priority numbers can have gaps, which enable you to add or remove
14834	// rules in the future without affecting the rest of the rules. For
14835	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
14836	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
14837	// and 13 to 15 in the future without any impact on existing rules.
14838	Priority int64 `json:"priority,omitempty"`
14839
14840	// RouteAction: In response to a matching matchRule, the load balancer
14841	// performs advanced routing actions like URL rewrites, header
14842	// transformations, etc. prior to forwarding the request to the selected
14843	// backend. If  routeAction specifies any  weightedBackendServices,
14844	// service must not be set. Conversely if service is set, routeAction
14845	// cannot contain any  weightedBackendServices.
14846	// Only one of urlRedirect, service or
14847	// routeAction.weightedBackendService must be set.
14848	// UrlMaps for external HTTP(S) load balancers support only the
14849	// urlRewrite action within a routeRule's routeAction.
14850	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
14851
14852	// Service: The full or partial URL of the backend service resource to
14853	// which traffic is directed if this rule is matched. If routeAction is
14854	// additionally specified, advanced routing actions like URL Rewrites,
14855	// etc. take effect prior to sending the request to the backend.
14856	// However, if service is specified, routeAction cannot contain any
14857	// weightedBackendService s. Conversely, if routeAction specifies any
14858	// weightedBackendServices, service must not be specified.
14859	// Only one of urlRedirect, service or
14860	// routeAction.weightedBackendService must be set.
14861	Service string `json:"service,omitempty"`
14862
14863	// UrlRedirect: When this rule is matched, the request is redirected to
14864	// a URL specified by urlRedirect.
14865	// If urlRedirect is specified, service or routeAction must not be
14866	// set.
14867	// Not supported when the URL map is bound to target gRPC proxy.
14868	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
14869
14870	// ForceSendFields is a list of field names (e.g. "Description") to
14871	// unconditionally include in API requests. By default, fields with
14872	// empty values are omitted from API requests. However, any non-pointer,
14873	// non-interface field appearing in ForceSendFields will be sent to the
14874	// server regardless of whether the field is empty or not. This may be
14875	// used to include empty fields in Patch requests.
14876	ForceSendFields []string `json:"-"`
14877
14878	// NullFields is a list of field names (e.g. "Description") to include
14879	// in API requests with the JSON null value. By default, fields with
14880	// empty values are omitted from API requests. However, any field with
14881	// an empty value appearing in NullFields will be sent to the server as
14882	// null. It is an error if a field in this list has a non-empty value.
14883	// This may be used to include null fields in Patch requests.
14884	NullFields []string `json:"-"`
14885}
14886
14887func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
14888	type NoMethod HttpRouteRule
14889	raw := NoMethod(*s)
14890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14891}
14892
14893// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
14894// for matching requests to an HttpRouteRule. All specified criteria
14895// must be satisfied for a match to occur.
14896type HttpRouteRuleMatch struct {
14897	// FullPathMatch: For satisfying the matchRule condition, the path of
14898	// the request must exactly match the value specified in fullPathMatch
14899	// after removing any query parameters and anchor that may be part of
14900	// the original URL.
14901	// fullPathMatch must be between 1 and 1024 characters.
14902	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14903	// specified.
14904	FullPathMatch string `json:"fullPathMatch,omitempty"`
14905
14906	// HeaderMatches: Specifies a list of header match criteria, all of
14907	// which must match corresponding headers in the request.
14908	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
14909
14910	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
14911	// case sensitive.
14912	// The default value is false.
14913	// ignoreCase must not be used with regexMatch.
14914	// Not supported when the URL map is bound to target gRPC proxy.
14915	IgnoreCase bool `json:"ignoreCase,omitempty"`
14916
14917	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
14918	// restrict routing configuration to a limited set of xDS compliant
14919	// clients. In their xDS requests to Loadbalancer, xDS clients present
14920	// node metadata. When there is a match, the relevant routing
14921	// configuration is made available to those proxies.
14922	// For each metadataFilter in this list, if its filterMatchCriteria is
14923	// set to MATCH_ANY, at least one of the filterLabels must match the
14924	// corresponding label provided in the metadata. If its
14925	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
14926	// must match with corresponding labels provided in the metadata. If
14927	// multiple metadataFilters are specified, all of them need to be
14928	// satisfied in order to be considered a match.
14929	// metadataFilters specified here will be applied after those specified
14930	// in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
14931	// belongs to.
14932	// metadataFilters only applies to Loadbalancers that have their
14933	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14934	// Not supported when the URL map is bound to target gRPC proxy that has
14935	// validateForProxyless field set to true.
14936	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
14937
14938	// PrefixMatch: For satisfying the matchRule condition, the request's
14939	// path must begin with the specified prefixMatch. prefixMatch must
14940	// begin with a /.
14941	// The value must be between 1 and 1024 characters.
14942	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14943	// specified.
14944	PrefixMatch string `json:"prefixMatch,omitempty"`
14945
14946	// QueryParameterMatches: Specifies a list of query parameter match
14947	// criteria, all of which must match corresponding query parameters in
14948	// the request.
14949	// Not supported when the URL map is bound to target gRPC proxy.
14950	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
14951
14952	// RegexMatch: For satisfying the matchRule condition, the path of the
14953	// request must satisfy the regular expression specified in regexMatch
14954	// after removing any query parameters and anchor supplied with the
14955	// original URL. For regular expression grammar please see
14956	// github.com/google/re2/wiki/Syntax
14957	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14958	// specified.
14959	// Note that regexMatch only applies to Loadbalancers that have their
14960	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14961	RegexMatch string `json:"regexMatch,omitempty"`
14962
14963	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
14964	// unconditionally include in API requests. By default, fields with
14965	// empty values are omitted from API requests. However, any non-pointer,
14966	// non-interface field appearing in ForceSendFields will be sent to the
14967	// server regardless of whether the field is empty or not. This may be
14968	// used to include empty fields in Patch requests.
14969	ForceSendFields []string `json:"-"`
14970
14971	// NullFields is a list of field names (e.g. "FullPathMatch") to include
14972	// in API requests with the JSON null value. By default, fields with
14973	// empty values are omitted from API requests. However, any field with
14974	// an empty value appearing in NullFields will be sent to the server as
14975	// null. It is an error if a field in this list has a non-empty value.
14976	// This may be used to include null fields in Patch requests.
14977	NullFields []string `json:"-"`
14978}
14979
14980func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
14981	type NoMethod HttpRouteRuleMatch
14982	raw := NoMethod(*s)
14983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14984}
14985
14986// HttpsHealthCheck: Represents a legacy HTTPS Health Check
14987// resource.
14988//
14989// Legacy health checks are required by network load balancers. For more
14990// information, read Health Check Concepts.
14991type HttpsHealthCheck struct {
14992	// CheckIntervalSec: How often (in seconds) to send a health check. The
14993	// default value is 5 seconds.
14994	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
14995
14996	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14997	// format.
14998	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14999
15000	// Description: An optional description of this resource. Provide this
15001	// property when you create the resource.
15002	Description string `json:"description,omitempty"`
15003
15004	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
15005	// after this many consecutive successes. The default value is 2.
15006	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
15007
15008	// Host: The value of the host header in the HTTPS health check request.
15009	// If left empty (default value), the public IP on behalf of which this
15010	// health check is performed will be used.
15011	Host string `json:"host,omitempty"`
15012
15013	// Id: [Output Only] The unique identifier for the resource. This
15014	// identifier is defined by the server.
15015	Id uint64 `json:"id,omitempty,string"`
15016
15017	// Kind: Type of the resource.
15018	Kind string `json:"kind,omitempty"`
15019
15020	// Name: Name of the resource. Provided by the client when the resource
15021	// is created. The name must be 1-63 characters long, and comply with
15022	// RFC1035. Specifically, the name must be 1-63 characters long and
15023	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
15024	// the first character must be a lowercase letter, and all following
15025	// characters must be a dash, lowercase letter, or digit, except the
15026	// last character, which cannot be a dash.
15027	Name string `json:"name,omitempty"`
15028
15029	// Port: The TCP port number for the HTTPS health check request. The
15030	// default value is 443.
15031	Port int64 `json:"port,omitempty"`
15032
15033	// RequestPath: The request path of the HTTPS health check request. The
15034	// default value is "/".
15035	RequestPath string `json:"requestPath,omitempty"`
15036
15037	// SelfLink: [Output Only] Server-defined URL for the resource.
15038	SelfLink string `json:"selfLink,omitempty"`
15039
15040	// TimeoutSec: How long (in seconds) to wait before claiming failure.
15041	// The default value is 5 seconds. It is invalid for timeoutSec to have
15042	// a greater value than checkIntervalSec.
15043	TimeoutSec int64 `json:"timeoutSec,omitempty"`
15044
15045	// UnhealthyThreshold: A so-far healthy instance will be marked
15046	// unhealthy after this many consecutive failures. The default value is
15047	// 2.
15048	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
15049
15050	// ServerResponse contains the HTTP response code and headers from the
15051	// server.
15052	googleapi.ServerResponse `json:"-"`
15053
15054	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
15055	// unconditionally include in API requests. By default, fields with
15056	// empty values are omitted from API requests. However, any non-pointer,
15057	// non-interface field appearing in ForceSendFields will be sent to the
15058	// server regardless of whether the field is empty or not. This may be
15059	// used to include empty fields in Patch requests.
15060	ForceSendFields []string `json:"-"`
15061
15062	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
15063	// include in API requests with the JSON null value. By default, fields
15064	// with empty values are omitted from API requests. However, any field
15065	// with an empty value appearing in NullFields will be sent to the
15066	// server as null. It is an error if a field in this list has a
15067	// non-empty value. This may be used to include null fields in Patch
15068	// requests.
15069	NullFields []string `json:"-"`
15070}
15071
15072func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
15073	type NoMethod HttpsHealthCheck
15074	raw := NoMethod(*s)
15075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15076}
15077
15078// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
15079type HttpsHealthCheckList struct {
15080	// Id: [Output Only] Unique identifier for the resource; defined by the
15081	// server.
15082	Id string `json:"id,omitempty"`
15083
15084	// Items: A list of HttpsHealthCheck resources.
15085	Items []*HttpsHealthCheck `json:"items,omitempty"`
15086
15087	// Kind: Type of resource.
15088	Kind string `json:"kind,omitempty"`
15089
15090	// NextPageToken: [Output Only] This token allows you to get the next
15091	// page of results for list requests. If the number of results is larger
15092	// than maxResults, use the nextPageToken as a value for the query
15093	// parameter pageToken in the next list request. Subsequent list
15094	// requests will have their own nextPageToken to continue paging through
15095	// the results.
15096	NextPageToken string `json:"nextPageToken,omitempty"`
15097
15098	// SelfLink: [Output Only] Server-defined URL for this resource.
15099	SelfLink string `json:"selfLink,omitempty"`
15100
15101	// Warning: [Output Only] Informational warning message.
15102	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
15103
15104	// ServerResponse contains the HTTP response code and headers from the
15105	// server.
15106	googleapi.ServerResponse `json:"-"`
15107
15108	// ForceSendFields is a list of field names (e.g. "Id") to
15109	// unconditionally include in API requests. By default, fields with
15110	// empty values are omitted from API requests. However, any non-pointer,
15111	// non-interface field appearing in ForceSendFields will be sent to the
15112	// server regardless of whether the field is empty or not. This may be
15113	// used to include empty fields in Patch requests.
15114	ForceSendFields []string `json:"-"`
15115
15116	// NullFields is a list of field names (e.g. "Id") to include in API
15117	// requests with the JSON null value. By default, fields with empty
15118	// values are omitted from API requests. However, any field with an
15119	// empty value appearing in NullFields will be sent to the server as
15120	// null. It is an error if a field in this list has a non-empty value.
15121	// This may be used to include null fields in Patch requests.
15122	NullFields []string `json:"-"`
15123}
15124
15125func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
15126	type NoMethod HttpsHealthCheckList
15127	raw := NoMethod(*s)
15128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15129}
15130
15131// HttpsHealthCheckListWarning: [Output Only] Informational warning
15132// message.
15133type HttpsHealthCheckListWarning struct {
15134	// Code: [Output Only] A warning code, if applicable. For example,
15135	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15136	// the response.
15137	//
15138	// Possible values:
15139	//   "CLEANUP_FAILED"
15140	//   "DEPRECATED_RESOURCE_USED"
15141	//   "DEPRECATED_TYPE_USED"
15142	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15143	//   "EXPERIMENTAL_TYPE_USED"
15144	//   "EXTERNAL_API_WARNING"
15145	//   "FIELD_VALUE_OVERRIDEN"
15146	//   "INJECTED_KERNELS_DEPRECATED"
15147	//   "LARGE_DEPLOYMENT_WARNING"
15148	//   "MISSING_TYPE_DEPENDENCY"
15149	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15150	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15151	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15152	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15153	//   "NEXT_HOP_NOT_RUNNING"
15154	//   "NOT_CRITICAL_ERROR"
15155	//   "NO_RESULTS_ON_PAGE"
15156	//   "PARTIAL_SUCCESS"
15157	//   "REQUIRED_TOS_AGREEMENT"
15158	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15159	//   "RESOURCE_NOT_DELETED"
15160	//   "SCHEMA_VALIDATION_IGNORED"
15161	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15162	//   "UNDECLARED_PROPERTIES"
15163	//   "UNREACHABLE"
15164	Code string `json:"code,omitempty"`
15165
15166	// Data: [Output Only] Metadata about this warning in key: value format.
15167	// For example:
15168	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15169	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
15170
15171	// Message: [Output Only] A human-readable description of the warning
15172	// code.
15173	Message string `json:"message,omitempty"`
15174
15175	// ForceSendFields is a list of field names (e.g. "Code") to
15176	// unconditionally include in API requests. By default, fields with
15177	// empty values are omitted from API requests. However, any non-pointer,
15178	// non-interface field appearing in ForceSendFields will be sent to the
15179	// server regardless of whether the field is empty or not. This may be
15180	// used to include empty fields in Patch requests.
15181	ForceSendFields []string `json:"-"`
15182
15183	// NullFields is a list of field names (e.g. "Code") to include in API
15184	// requests with the JSON null value. By default, fields with empty
15185	// values are omitted from API requests. However, any field with an
15186	// empty value appearing in NullFields will be sent to the server as
15187	// null. It is an error if a field in this list has a non-empty value.
15188	// This may be used to include null fields in Patch requests.
15189	NullFields []string `json:"-"`
15190}
15191
15192func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
15193	type NoMethod HttpsHealthCheckListWarning
15194	raw := NoMethod(*s)
15195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15196}
15197
15198type HttpsHealthCheckListWarningData struct {
15199	// Key: [Output Only] A key that provides more detail on the warning
15200	// being returned. For example, for warnings where there are no results
15201	// in a list request for a particular zone, this key might be scope and
15202	// the key value might be the zone name. Other examples might be a key
15203	// indicating a deprecated resource and a suggested replacement, or a
15204	// warning about invalid network settings (for example, if an instance
15205	// attempts to perform IP forwarding but is not enabled for IP
15206	// forwarding).
15207	Key string `json:"key,omitempty"`
15208
15209	// Value: [Output Only] A warning data value corresponding to the key.
15210	Value string `json:"value,omitempty"`
15211
15212	// ForceSendFields is a list of field names (e.g. "Key") to
15213	// unconditionally include in API requests. By default, fields with
15214	// empty values are omitted from API requests. However, any non-pointer,
15215	// non-interface field appearing in ForceSendFields will be sent to the
15216	// server regardless of whether the field is empty or not. This may be
15217	// used to include empty fields in Patch requests.
15218	ForceSendFields []string `json:"-"`
15219
15220	// NullFields is a list of field names (e.g. "Key") to include in API
15221	// requests with the JSON null value. By default, fields with empty
15222	// values are omitted from API requests. However, any field with an
15223	// empty value appearing in NullFields will be sent to the server as
15224	// null. It is an error if a field in this list has a non-empty value.
15225	// This may be used to include null fields in Patch requests.
15226	NullFields []string `json:"-"`
15227}
15228
15229func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
15230	type NoMethod HttpsHealthCheckListWarningData
15231	raw := NoMethod(*s)
15232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15233}
15234
15235// Image: Represents an Image resource.
15236//
15237// You can use images to create boot disks for your VM instances. For
15238// more information, read Images. (== resource_for {$api_version}.images
15239// ==)
15240type Image struct {
15241	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
15242	// Cloud Storage (in bytes).
15243	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
15244
15245	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15246	// format.
15247	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15248
15249	// Deprecated -- The deprecation status associated with this image.
15250	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
15251
15252	// Description: An optional description of this resource. Provide this
15253	// property when you create the resource.
15254	Description string `json:"description,omitempty"`
15255
15256	// DiskSizeGb: Size of the image when restored onto a persistent disk
15257	// (in GB).
15258	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
15259
15260	// Family: The name of the image family to which this image belongs. You
15261	// can create disks by specifying an image family instead of a specific
15262	// image name. The image family always returns its latest image that is
15263	// not deprecated. The name of the image family must comply with
15264	// RFC1035.
15265	Family string `json:"family,omitempty"`
15266
15267	// GuestOsFeatures: A list of features to enable on the guest operating
15268	// system. Applicable only for bootable images. Read  Enabling guest
15269	// operating system features to see a list of available options.
15270	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
15271
15272	// Id: [Output Only] The unique identifier for the resource. This
15273	// identifier is defined by the server.
15274	Id uint64 `json:"id,omitempty,string"`
15275
15276	// ImageEncryptionKey: Encrypts the image using a customer-supplied
15277	// encryption key.
15278	//
15279	// After you encrypt an image with a customer-supplied key, you must
15280	// provide the same key if you use the image later (e.g. to create a
15281	// disk from the image).
15282	//
15283	// Customer-supplied encryption keys do not protect access to metadata
15284	// of the disk.
15285	//
15286	// If you do not provide an encryption key when creating the image, then
15287	// the disk will be encrypted using an automatically generated key and
15288	// you do not need to provide a key to use the image later.
15289	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
15290
15291	// Kind: [Output Only] Type of the resource. Always compute#image for
15292	// images.
15293	Kind string `json:"kind,omitempty"`
15294
15295	// LabelFingerprint: A fingerprint for the labels being applied to this
15296	// image, which is essentially a hash of the labels used for optimistic
15297	// locking. The fingerprint is initially generated by Compute Engine and
15298	// changes after every request to modify or update labels. You must
15299	// always provide an up-to-date fingerprint hash in order to update or
15300	// change labels, otherwise the request will fail with error 412
15301	// conditionNotMet.
15302	//
15303	// To see the latest fingerprint, make a get() request to retrieve an
15304	// image.
15305	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15306
15307	// Labels: Labels to apply to this image. These can be later modified by
15308	// the setLabels method.
15309	Labels map[string]string `json:"labels,omitempty"`
15310
15311	// LicenseCodes: Integer license codes indicating which licenses are
15312	// attached to this image.
15313	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
15314
15315	// Licenses: Any applicable license URI.
15316	Licenses []string `json:"licenses,omitempty"`
15317
15318	// Name: Name of the resource; provided by the client when the resource
15319	// is created. The name must be 1-63 characters long, and comply with
15320	// RFC1035. Specifically, the name must be 1-63 characters long and
15321	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
15322	// the first character must be a lowercase letter, and all following
15323	// characters must be a dash, lowercase letter, or digit, except the
15324	// last character, which cannot be a dash.
15325	Name string `json:"name,omitempty"`
15326
15327	// RawDisk: The parameters of the raw disk image.
15328	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
15329
15330	// SatisfiesPzs: [Output Only] Reserved for future use.
15331	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15332
15333	// SelfLink: [Output Only] Server-defined URL for the resource.
15334	SelfLink string `json:"selfLink,omitempty"`
15335
15336	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
15337	// instance.
15338	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
15339
15340	// SourceDisk: URL of the source disk used to create this image. For
15341	// example, the following are valid values:
15342	// -
15343	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
15344	//
15345	// - projects/project/zones/zone/disks/disk
15346	// - zones/zone/disks/disk
15347	//
15348	// In order to create an image, you must provide the full or partial URL
15349	// of one of the following:
15350	// - The rawDisk.source URL
15351	// - The sourceDisk URL
15352	// - The sourceImage URL
15353	// - The sourceSnapshot URL
15354	SourceDisk string `json:"sourceDisk,omitempty"`
15355
15356	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
15357	// source disk. Required if the source disk is protected by a
15358	// customer-supplied encryption key.
15359	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
15360
15361	// SourceDiskId: [Output Only] The ID value of the disk used to create
15362	// this image. This value may be used to determine whether the image was
15363	// taken from the current or a previous instance of a given disk name.
15364	SourceDiskId string `json:"sourceDiskId,omitempty"`
15365
15366	// SourceImage: URL of the source image used to create this image.
15367	//
15368	// In order to create an image, you must provide the full or partial URL
15369	// of one of the following:
15370	// - The rawDisk.source URL
15371	// - The sourceDisk URL
15372	// - The sourceImage URL
15373	// - The sourceSnapshot URL
15374	SourceImage string `json:"sourceImage,omitempty"`
15375
15376	// SourceImageEncryptionKey: The customer-supplied encryption key of the
15377	// source image. Required if the source image is protected by a
15378	// customer-supplied encryption key.
15379	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
15380
15381	// SourceImageId: [Output Only] The ID value of the image used to create
15382	// this image. This value may be used to determine whether the image was
15383	// taken from the current or a previous instance of a given image name.
15384	SourceImageId string `json:"sourceImageId,omitempty"`
15385
15386	// SourceSnapshot: URL of the source snapshot used to create this
15387	// image.
15388	//
15389	// In order to create an image, you must provide the full or partial URL
15390	// of one of the following:
15391	// - The rawDisk.source URL
15392	// - The sourceDisk URL
15393	// - The sourceImage URL
15394	// - The sourceSnapshot URL
15395	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
15396
15397	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
15398	// the source snapshot. Required if the source snapshot is protected by
15399	// a customer-supplied encryption key.
15400	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
15401
15402	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
15403	// create this image. This value may be used to determine whether the
15404	// snapshot was taken from the current or a previous instance of a given
15405	// snapshot name.
15406	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
15407
15408	// SourceType: The type of the image used to create this disk. The
15409	// default and only value is RAW
15410	//
15411	// Possible values:
15412	//   "RAW" (default)
15413	SourceType string `json:"sourceType,omitempty"`
15414
15415	// Status: [Output Only] The status of the image. An image can be used
15416	// to create other resources, such as instances, only after the image
15417	// has been successfully created and the status is set to READY.
15418	// Possible values are FAILED, PENDING, or READY.
15419	//
15420	// Possible values:
15421	//   "DELETING"
15422	//   "FAILED"
15423	//   "PENDING"
15424	//   "READY"
15425	Status string `json:"status,omitempty"`
15426
15427	// StorageLocations: Cloud Storage bucket storage location of the image
15428	// (regional or multi-regional).
15429	StorageLocations []string `json:"storageLocations,omitempty"`
15430
15431	// ServerResponse contains the HTTP response code and headers from the
15432	// server.
15433	googleapi.ServerResponse `json:"-"`
15434
15435	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
15436	// unconditionally include in API requests. By default, fields with
15437	// empty values are omitted from API requests. However, any non-pointer,
15438	// non-interface field appearing in ForceSendFields will be sent to the
15439	// server regardless of whether the field is empty or not. This may be
15440	// used to include empty fields in Patch requests.
15441	ForceSendFields []string `json:"-"`
15442
15443	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
15444	// include in API requests with the JSON null value. By default, fields
15445	// with empty values are omitted from API requests. However, any field
15446	// with an empty value appearing in NullFields will be sent to the
15447	// server as null. It is an error if a field in this list has a
15448	// non-empty value. This may be used to include null fields in Patch
15449	// requests.
15450	NullFields []string `json:"-"`
15451}
15452
15453func (s *Image) MarshalJSON() ([]byte, error) {
15454	type NoMethod Image
15455	raw := NoMethod(*s)
15456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15457}
15458
15459// ImageRawDisk: The parameters of the raw disk image.
15460type ImageRawDisk struct {
15461	// ContainerType: The format used to encode and transmit the block
15462	// device, which should be TAR. This is just a container and
15463	// transmission format and not a runtime format. Provided by the client
15464	// when the disk image is created.
15465	//
15466	// Possible values:
15467	//   "TAR"
15468	ContainerType string `json:"containerType,omitempty"`
15469
15470	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
15471	// checksum of the disk image before unpackaging provided by the client
15472	// when the disk image is created.
15473	Sha1Checksum string `json:"sha1Checksum,omitempty"`
15474
15475	// Source: The full Google Cloud Storage URL where the disk image is
15476	// stored.
15477	//
15478	// In order to create an image, you must provide the full or partial URL
15479	// of one of the following:
15480	// - The rawDisk.source URL
15481	// - The sourceDisk URL
15482	// - The sourceImage URL
15483	// - The sourceSnapshot URL
15484	Source string `json:"source,omitempty"`
15485
15486	// ForceSendFields is a list of field names (e.g. "ContainerType") to
15487	// unconditionally include in API requests. By default, fields with
15488	// empty values are omitted from API requests. However, any non-pointer,
15489	// non-interface field appearing in ForceSendFields will be sent to the
15490	// server regardless of whether the field is empty or not. This may be
15491	// used to include empty fields in Patch requests.
15492	ForceSendFields []string `json:"-"`
15493
15494	// NullFields is a list of field names (e.g. "ContainerType") to include
15495	// in API requests with the JSON null value. By default, fields with
15496	// empty values are omitted from API requests. However, any field with
15497	// an empty value appearing in NullFields will be sent to the server as
15498	// null. It is an error if a field in this list has a non-empty value.
15499	// This may be used to include null fields in Patch requests.
15500	NullFields []string `json:"-"`
15501}
15502
15503func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
15504	type NoMethod ImageRawDisk
15505	raw := NoMethod(*s)
15506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15507}
15508
15509type ImageFamilyView struct {
15510	// Image: The latest image that is part of the specified image family in
15511	// the requested location, and that is not deprecated.
15512	Image *Image `json:"image,omitempty"`
15513
15514	// ServerResponse contains the HTTP response code and headers from the
15515	// server.
15516	googleapi.ServerResponse `json:"-"`
15517
15518	// ForceSendFields is a list of field names (e.g. "Image") to
15519	// unconditionally include in API requests. By default, fields with
15520	// empty values are omitted from API requests. However, any non-pointer,
15521	// non-interface field appearing in ForceSendFields will be sent to the
15522	// server regardless of whether the field is empty or not. This may be
15523	// used to include empty fields in Patch requests.
15524	ForceSendFields []string `json:"-"`
15525
15526	// NullFields is a list of field names (e.g. "Image") to include in API
15527	// requests with the JSON null value. By default, fields with empty
15528	// values are omitted from API requests. However, any field with an
15529	// empty value appearing in NullFields will be sent to the server as
15530	// null. It is an error if a field in this list has a non-empty value.
15531	// This may be used to include null fields in Patch requests.
15532	NullFields []string `json:"-"`
15533}
15534
15535func (s *ImageFamilyView) MarshalJSON() ([]byte, error) {
15536	type NoMethod ImageFamilyView
15537	raw := NoMethod(*s)
15538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15539}
15540
15541// ImageList: Contains a list of images.
15542type ImageList struct {
15543	// Id: [Output Only] Unique identifier for the resource; defined by the
15544	// server.
15545	Id string `json:"id,omitempty"`
15546
15547	// Items: A list of Image resources.
15548	Items []*Image `json:"items,omitempty"`
15549
15550	// Kind: Type of resource.
15551	Kind string `json:"kind,omitempty"`
15552
15553	// NextPageToken: [Output Only] This token allows you to get the next
15554	// page of results for list requests. If the number of results is larger
15555	// than maxResults, use the nextPageToken as a value for the query
15556	// parameter pageToken in the next list request. Subsequent list
15557	// requests will have their own nextPageToken to continue paging through
15558	// the results.
15559	NextPageToken string `json:"nextPageToken,omitempty"`
15560
15561	// SelfLink: [Output Only] Server-defined URL for this resource.
15562	SelfLink string `json:"selfLink,omitempty"`
15563
15564	// Warning: [Output Only] Informational warning message.
15565	Warning *ImageListWarning `json:"warning,omitempty"`
15566
15567	// ServerResponse contains the HTTP response code and headers from the
15568	// server.
15569	googleapi.ServerResponse `json:"-"`
15570
15571	// ForceSendFields is a list of field names (e.g. "Id") to
15572	// unconditionally include in API requests. By default, fields with
15573	// empty values are omitted from API requests. However, any non-pointer,
15574	// non-interface field appearing in ForceSendFields will be sent to the
15575	// server regardless of whether the field is empty or not. This may be
15576	// used to include empty fields in Patch requests.
15577	ForceSendFields []string `json:"-"`
15578
15579	// NullFields is a list of field names (e.g. "Id") to include in API
15580	// requests with the JSON null value. By default, fields with empty
15581	// values are omitted from API requests. However, any field with an
15582	// empty value appearing in NullFields will be sent to the server as
15583	// null. It is an error if a field in this list has a non-empty value.
15584	// This may be used to include null fields in Patch requests.
15585	NullFields []string `json:"-"`
15586}
15587
15588func (s *ImageList) MarshalJSON() ([]byte, error) {
15589	type NoMethod ImageList
15590	raw := NoMethod(*s)
15591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15592}
15593
15594// ImageListWarning: [Output Only] Informational warning message.
15595type ImageListWarning struct {
15596	// Code: [Output Only] A warning code, if applicable. For example,
15597	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15598	// the response.
15599	//
15600	// Possible values:
15601	//   "CLEANUP_FAILED"
15602	//   "DEPRECATED_RESOURCE_USED"
15603	//   "DEPRECATED_TYPE_USED"
15604	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15605	//   "EXPERIMENTAL_TYPE_USED"
15606	//   "EXTERNAL_API_WARNING"
15607	//   "FIELD_VALUE_OVERRIDEN"
15608	//   "INJECTED_KERNELS_DEPRECATED"
15609	//   "LARGE_DEPLOYMENT_WARNING"
15610	//   "MISSING_TYPE_DEPENDENCY"
15611	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15612	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15613	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15614	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15615	//   "NEXT_HOP_NOT_RUNNING"
15616	//   "NOT_CRITICAL_ERROR"
15617	//   "NO_RESULTS_ON_PAGE"
15618	//   "PARTIAL_SUCCESS"
15619	//   "REQUIRED_TOS_AGREEMENT"
15620	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15621	//   "RESOURCE_NOT_DELETED"
15622	//   "SCHEMA_VALIDATION_IGNORED"
15623	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15624	//   "UNDECLARED_PROPERTIES"
15625	//   "UNREACHABLE"
15626	Code string `json:"code,omitempty"`
15627
15628	// Data: [Output Only] Metadata about this warning in key: value format.
15629	// For example:
15630	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15631	Data []*ImageListWarningData `json:"data,omitempty"`
15632
15633	// Message: [Output Only] A human-readable description of the warning
15634	// code.
15635	Message string `json:"message,omitempty"`
15636
15637	// ForceSendFields is a list of field names (e.g. "Code") to
15638	// unconditionally include in API requests. By default, fields with
15639	// empty values are omitted from API requests. However, any non-pointer,
15640	// non-interface field appearing in ForceSendFields will be sent to the
15641	// server regardless of whether the field is empty or not. This may be
15642	// used to include empty fields in Patch requests.
15643	ForceSendFields []string `json:"-"`
15644
15645	// NullFields is a list of field names (e.g. "Code") to include in API
15646	// requests with the JSON null value. By default, fields with empty
15647	// values are omitted from API requests. However, any field with an
15648	// empty value appearing in NullFields will be sent to the server as
15649	// null. It is an error if a field in this list has a non-empty value.
15650	// This may be used to include null fields in Patch requests.
15651	NullFields []string `json:"-"`
15652}
15653
15654func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
15655	type NoMethod ImageListWarning
15656	raw := NoMethod(*s)
15657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15658}
15659
15660type ImageListWarningData struct {
15661	// Key: [Output Only] A key that provides more detail on the warning
15662	// being returned. For example, for warnings where there are no results
15663	// in a list request for a particular zone, this key might be scope and
15664	// the key value might be the zone name. Other examples might be a key
15665	// indicating a deprecated resource and a suggested replacement, or a
15666	// warning about invalid network settings (for example, if an instance
15667	// attempts to perform IP forwarding but is not enabled for IP
15668	// forwarding).
15669	Key string `json:"key,omitempty"`
15670
15671	// Value: [Output Only] A warning data value corresponding to the key.
15672	Value string `json:"value,omitempty"`
15673
15674	// ForceSendFields is a list of field names (e.g. "Key") to
15675	// unconditionally include in API requests. By default, fields with
15676	// empty values are omitted from API requests. However, any non-pointer,
15677	// non-interface field appearing in ForceSendFields will be sent to the
15678	// server regardless of whether the field is empty or not. This may be
15679	// used to include empty fields in Patch requests.
15680	ForceSendFields []string `json:"-"`
15681
15682	// NullFields is a list of field names (e.g. "Key") to include in API
15683	// requests with the JSON null value. By default, fields with empty
15684	// values are omitted from API requests. However, any field with an
15685	// empty value appearing in NullFields will be sent to the server as
15686	// null. It is an error if a field in this list has a non-empty value.
15687	// This may be used to include null fields in Patch requests.
15688	NullFields []string `json:"-"`
15689}
15690
15691func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
15692	type NoMethod ImageListWarningData
15693	raw := NoMethod(*s)
15694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15695}
15696
15697// InitialStateConfig: Initial State for shielded instance, these are
15698// public keys which are safe to store in public
15699type InitialStateConfig struct {
15700	// Dbs: The Key Database (db).
15701	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
15702
15703	// Dbxs: The forbidden key database (dbx).
15704	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
15705
15706	// Keks: The Key Exchange Key (KEK).
15707	Keks []*FileContentBuffer `json:"keks,omitempty"`
15708
15709	// Pk: The Platform Key (PK).
15710	Pk *FileContentBuffer `json:"pk,omitempty"`
15711
15712	// ForceSendFields is a list of field names (e.g. "Dbs") to
15713	// unconditionally include in API requests. By default, fields with
15714	// empty values are omitted from API requests. However, any non-pointer,
15715	// non-interface field appearing in ForceSendFields will be sent to the
15716	// server regardless of whether the field is empty or not. This may be
15717	// used to include empty fields in Patch requests.
15718	ForceSendFields []string `json:"-"`
15719
15720	// NullFields is a list of field names (e.g. "Dbs") to include in API
15721	// requests with the JSON null value. By default, fields with empty
15722	// values are omitted from API requests. However, any field with an
15723	// empty value appearing in NullFields will be sent to the server as
15724	// null. It is an error if a field in this list has a non-empty value.
15725	// This may be used to include null fields in Patch requests.
15726	NullFields []string `json:"-"`
15727}
15728
15729func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
15730	type NoMethod InitialStateConfig
15731	raw := NoMethod(*s)
15732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15733}
15734
15735// Instance: Represents an Instance resource.
15736//
15737// An instance is a virtual machine that is hosted on Google Cloud
15738// Platform. For more information, read Virtual Machine Instances. (==
15739// resource_for {$api_version}.instances ==)
15740type Instance struct {
15741	// AdvancedMachineFeatures: Controls for advanced machine-related
15742	// behavior features.
15743	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
15744
15745	// CanIpForward: Allows this instance to send and receive packets with
15746	// non-matching destination or source IPs. This is required if you plan
15747	// to use this instance to forward routes. For more information, see
15748	// Enabling IP Forwarding.
15749	CanIpForward bool `json:"canIpForward,omitempty"`
15750
15751	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
15752
15753	// CpuPlatform: [Output Only] The CPU platform used by this instance.
15754	CpuPlatform string `json:"cpuPlatform,omitempty"`
15755
15756	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15757	// format.
15758	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15759
15760	// DeletionProtection: Whether the resource should be protected against
15761	// deletion.
15762	DeletionProtection bool `json:"deletionProtection,omitempty"`
15763
15764	// Description: An optional description of this resource. Provide this
15765	// property when you create the resource.
15766	Description string `json:"description,omitempty"`
15767
15768	// Disks: Array of disks associated with this instance. Persistent disks
15769	// must be created before you can assign them.
15770	Disks []*AttachedDisk `json:"disks,omitempty"`
15771
15772	// DisplayDevice: Enables display device for the instance.
15773	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
15774
15775	// EraseWindowsVssSignature: Specifies whether the disks restored from
15776	// source snapshots or source machine image should erase Windows
15777	// specific VSS signature.
15778	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
15779
15780	// Fingerprint: Specifies a fingerprint for this resource, which is
15781	// essentially a hash of the instance's contents and used for optimistic
15782	// locking. The fingerprint is initially generated by Compute Engine and
15783	// changes after every request to modify or update the instance. You
15784	// must always provide an up-to-date fingerprint hash in order to update
15785	// the instance.
15786	//
15787	// To see the latest fingerprint, make get() request to the instance.
15788	Fingerprint string `json:"fingerprint,omitempty"`
15789
15790	// GuestAccelerators: A list of the type and count of accelerator cards
15791	// attached to the instance.
15792	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
15793
15794	// Hostname: Specifies the hostname of the instance. The specified
15795	// hostname must be RFC1035 compliant. If hostname is not specified, the
15796	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
15797	// using the global DNS, and
15798	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
15799	Hostname string `json:"hostname,omitempty"`
15800
15801	// Id: [Output Only] The unique identifier for the resource. This
15802	// identifier is defined by the server.
15803	Id uint64 `json:"id,omitempty,string"`
15804
15805	// Kind: [Output Only] Type of the resource. Always compute#instance for
15806	// instances.
15807	Kind string `json:"kind,omitempty"`
15808
15809	// LabelFingerprint: A fingerprint for this request, which is
15810	// essentially a hash of the label's contents and used for optimistic
15811	// locking. The fingerprint is initially generated by Compute Engine and
15812	// changes after every request to modify or update labels. You must
15813	// always provide an up-to-date fingerprint hash in order to update or
15814	// change labels.
15815	//
15816	// To see the latest fingerprint, make get() request to the instance.
15817	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15818
15819	// Labels: Labels to apply to this instance. These can be later modified
15820	// by the setLabels method.
15821	Labels map[string]string `json:"labels,omitempty"`
15822
15823	// LastStartTimestamp: [Output Only] Last start timestamp in RFC3339
15824	// text format.
15825	LastStartTimestamp string `json:"lastStartTimestamp,omitempty"`
15826
15827	// LastStopTimestamp: [Output Only] Last stop timestamp in RFC3339 text
15828	// format.
15829	LastStopTimestamp string `json:"lastStopTimestamp,omitempty"`
15830
15831	// LastSuspendedTimestamp: [Output Only] Last suspended timestamp in
15832	// RFC3339 text format.
15833	LastSuspendedTimestamp string `json:"lastSuspendedTimestamp,omitempty"`
15834
15835	// MachineType: Full or partial URL of the machine type resource to use
15836	// for this instance, in the format:
15837	// zones/zone/machineTypes/machine-type. This is provided by the client
15838	// when the instance is created. For example, the following is a valid
15839	// partial url to a predefined machine
15840	// type:
15841	// zones/us-central1-f/machineTypes/n1-standard-1
15842	//
15843	//
15844	// To create a custom machine type, provide a URL to a machine type in
15845	// the following format, where CPUS is 1 or an even number up to 32 (2,
15846	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
15847	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
15848	// 5 GB of memory is 5120
15849	// MB):
15850	// zones/zone/machineTypes/custom-CPUS-MEMORY
15851	//
15852	//
15853	// For example: zones/us-central1-f/machineTypes/custom-4-5120
15854	//
15855	// For a full list of restrictions, read the Specifications for custom
15856	// machine types.
15857	MachineType string `json:"machineType,omitempty"`
15858
15859	// Metadata: The metadata key/value pairs assigned to this instance.
15860	// This includes custom metadata and predefined keys.
15861	Metadata *Metadata `json:"metadata,omitempty"`
15862
15863	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
15864	// Applicable values are the friendly names of CPU platforms, such as
15865	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
15866	// Bridge".
15867	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
15868
15869	// Name: The name of the resource, provided by the client when initially
15870	// creating the resource. The resource name must be 1-63 characters
15871	// long, and comply with RFC1035. Specifically, the name must be 1-63
15872	// characters long and match the regular expression
15873	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
15874	// a lowercase letter, and all following characters must be a dash,
15875	// lowercase letter, or digit, except the last character, which cannot
15876	// be a dash.
15877	Name string `json:"name,omitempty"`
15878
15879	// NetworkInterfaces: An array of network configurations for this
15880	// instance. These specify how interfaces are configured to interact
15881	// with other network services, such as connecting to the internet.
15882	// Multiple interfaces are supported per instance.
15883	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
15884
15885	NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"`
15886
15887	// PostKeyRevocationActionType: PostKeyRevocationActionType of the
15888	// instance.
15889	//
15890	// Possible values:
15891	//   "NOOP"
15892	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED"
15893	//   "SHUTDOWN"
15894	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
15895
15896	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
15897	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
15898	//
15899	// Possible values:
15900	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
15901	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
15902	//   "INHERIT_FROM_SUBNETWORK"
15903	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
15904
15905	// ReservationAffinity: Specifies the reservations that this instance
15906	// can consume from.
15907	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
15908
15909	// ResourcePolicies: Resource policies applied to this instance.
15910	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
15911
15912	// SatisfiesPzs: [Output Only] Reserved for future use.
15913	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15914
15915	// Scheduling: Sets the scheduling options for this instance.
15916	Scheduling *Scheduling `json:"scheduling,omitempty"`
15917
15918	// SelfLink: [Output Only] Server-defined URL for this resource.
15919	SelfLink string `json:"selfLink,omitempty"`
15920
15921	// ServiceAccounts: A list of service accounts, with their specified
15922	// scopes, authorized for this instance. Only one service account per VM
15923	// instance is supported.
15924	//
15925	// Service accounts generate access tokens that can be accessed through
15926	// the metadata server and used to authenticate applications on the
15927	// instance. See Service Accounts for more information.
15928	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
15929
15930	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
15931
15932	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
15933
15934	// ShieldedVmConfig: Deprecating, please use shielded_instance_config.
15935	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
15936
15937	// ShieldedVmIntegrityPolicy: Deprecating, please use
15938	// shielded_instance_integrity_policy.
15939	ShieldedVmIntegrityPolicy *ShieldedVmIntegrityPolicy `json:"shieldedVmIntegrityPolicy,omitempty"`
15940
15941	// SourceMachineImage: Source machine image
15942	SourceMachineImage string `json:"sourceMachineImage,omitempty"`
15943
15944	// SourceMachineImageEncryptionKey: Source machine image encryption key
15945	// when creating an instance from a machine image.
15946	SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"`
15947
15948	// StartRestricted: [Output Only] Whether a VM has been restricted for
15949	// start because Compute Engine has detected suspicious activity.
15950	StartRestricted bool `json:"startRestricted,omitempty"`
15951
15952	// Status: [Output Only] The status of the instance. One of the
15953	// following values: PROVISIONING, STAGING, RUNNING, STOPPING,
15954	// SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more
15955	// information about the status of the instance, see  Instance life
15956	// cycle.
15957	//
15958	// Possible values:
15959	//   "DEPROVISIONING"
15960	//   "PROVISIONING"
15961	//   "REPAIRING"
15962	//   "RUNNING"
15963	//   "STAGING"
15964	//   "STOPPED"
15965	//   "STOPPING"
15966	//   "SUSPENDED"
15967	//   "SUSPENDING"
15968	//   "TERMINATED"
15969	Status string `json:"status,omitempty"`
15970
15971	// StatusMessage: [Output Only] An optional, human-readable explanation
15972	// of the status.
15973	StatusMessage string `json:"statusMessage,omitempty"`
15974
15975	// Tags: Tags to apply to this instance. Tags are used to identify valid
15976	// sources or targets for network firewalls and are specified by the
15977	// client during instance creation. The tags can be later modified by
15978	// the setTags method. Each tag within the list must comply with
15979	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
15980	Tags *Tags `json:"tags,omitempty"`
15981
15982	// Zone: [Output Only] URL of the zone where the instance resides. You
15983	// must specify this field as part of the HTTP request URL. It is not
15984	// settable as a field in the request body.
15985	Zone string `json:"zone,omitempty"`
15986
15987	// ServerResponse contains the HTTP response code and headers from the
15988	// server.
15989	googleapi.ServerResponse `json:"-"`
15990
15991	// ForceSendFields is a list of field names (e.g.
15992	// "AdvancedMachineFeatures") to unconditionally include in API
15993	// requests. By default, fields with empty values are omitted from API
15994	// requests. However, any non-pointer, non-interface field appearing in
15995	// ForceSendFields will be sent to the server regardless of whether the
15996	// field is empty or not. This may be used to include empty fields in
15997	// Patch requests.
15998	ForceSendFields []string `json:"-"`
15999
16000	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
16001	// to include in API requests with the JSON null value. By default,
16002	// fields with empty values are omitted from API requests. However, any
16003	// field with an empty value appearing in NullFields will be sent to the
16004	// server as null. It is an error if a field in this list has a
16005	// non-empty value. This may be used to include null fields in Patch
16006	// requests.
16007	NullFields []string `json:"-"`
16008}
16009
16010func (s *Instance) MarshalJSON() ([]byte, error) {
16011	type NoMethod Instance
16012	raw := NoMethod(*s)
16013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16014}
16015
16016type InstanceAggregatedList struct {
16017	// Id: [Output Only] Unique identifier for the resource; defined by the
16018	// server.
16019	Id string `json:"id,omitempty"`
16020
16021	// Items: An object that contains a list of instances scoped by zone.
16022	Items map[string]InstancesScopedList `json:"items,omitempty"`
16023
16024	// Kind: [Output Only] Type of resource. Always
16025	// compute#instanceAggregatedList for aggregated lists of Instance
16026	// resources.
16027	Kind string `json:"kind,omitempty"`
16028
16029	// NextPageToken: [Output Only] This token allows you to get the next
16030	// page of results for list requests. If the number of results is larger
16031	// than maxResults, use the nextPageToken as a value for the query
16032	// parameter pageToken in the next list request. Subsequent list
16033	// requests will have their own nextPageToken to continue paging through
16034	// the results.
16035	NextPageToken string `json:"nextPageToken,omitempty"`
16036
16037	// SelfLink: [Output Only] Server-defined URL for this resource.
16038	SelfLink string `json:"selfLink,omitempty"`
16039
16040	// Unreachables: [Output Only] Unreachable resources.
16041	Unreachables []string `json:"unreachables,omitempty"`
16042
16043	// Warning: [Output Only] Informational warning message.
16044	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
16045
16046	// ServerResponse contains the HTTP response code and headers from the
16047	// server.
16048	googleapi.ServerResponse `json:"-"`
16049
16050	// ForceSendFields is a list of field names (e.g. "Id") to
16051	// unconditionally include in API requests. By default, fields with
16052	// empty values are omitted from API requests. However, any non-pointer,
16053	// non-interface field appearing in ForceSendFields will be sent to the
16054	// server regardless of whether the field is empty or not. This may be
16055	// used to include empty fields in Patch requests.
16056	ForceSendFields []string `json:"-"`
16057
16058	// NullFields is a list of field names (e.g. "Id") to include in API
16059	// requests with the JSON null value. By default, fields with empty
16060	// values are omitted from API requests. However, any field with an
16061	// empty value appearing in NullFields will be sent to the server as
16062	// null. It is an error if a field in this list has a non-empty value.
16063	// This may be used to include null fields in Patch requests.
16064	NullFields []string `json:"-"`
16065}
16066
16067func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
16068	type NoMethod InstanceAggregatedList
16069	raw := NoMethod(*s)
16070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16071}
16072
16073// InstanceAggregatedListWarning: [Output Only] Informational warning
16074// message.
16075type InstanceAggregatedListWarning struct {
16076	// Code: [Output Only] A warning code, if applicable. For example,
16077	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16078	// the response.
16079	//
16080	// Possible values:
16081	//   "CLEANUP_FAILED"
16082	//   "DEPRECATED_RESOURCE_USED"
16083	//   "DEPRECATED_TYPE_USED"
16084	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16085	//   "EXPERIMENTAL_TYPE_USED"
16086	//   "EXTERNAL_API_WARNING"
16087	//   "FIELD_VALUE_OVERRIDEN"
16088	//   "INJECTED_KERNELS_DEPRECATED"
16089	//   "LARGE_DEPLOYMENT_WARNING"
16090	//   "MISSING_TYPE_DEPENDENCY"
16091	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16092	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16093	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16094	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16095	//   "NEXT_HOP_NOT_RUNNING"
16096	//   "NOT_CRITICAL_ERROR"
16097	//   "NO_RESULTS_ON_PAGE"
16098	//   "PARTIAL_SUCCESS"
16099	//   "REQUIRED_TOS_AGREEMENT"
16100	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16101	//   "RESOURCE_NOT_DELETED"
16102	//   "SCHEMA_VALIDATION_IGNORED"
16103	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16104	//   "UNDECLARED_PROPERTIES"
16105	//   "UNREACHABLE"
16106	Code string `json:"code,omitempty"`
16107
16108	// Data: [Output Only] Metadata about this warning in key: value format.
16109	// For example:
16110	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16111	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
16112
16113	// Message: [Output Only] A human-readable description of the warning
16114	// code.
16115	Message string `json:"message,omitempty"`
16116
16117	// ForceSendFields is a list of field names (e.g. "Code") to
16118	// unconditionally include in API requests. By default, fields with
16119	// empty values are omitted from API requests. However, any non-pointer,
16120	// non-interface field appearing in ForceSendFields will be sent to the
16121	// server regardless of whether the field is empty or not. This may be
16122	// used to include empty fields in Patch requests.
16123	ForceSendFields []string `json:"-"`
16124
16125	// NullFields is a list of field names (e.g. "Code") to include in API
16126	// requests with the JSON null value. By default, fields with empty
16127	// values are omitted from API requests. However, any field with an
16128	// empty value appearing in NullFields will be sent to the server as
16129	// null. It is an error if a field in this list has a non-empty value.
16130	// This may be used to include null fields in Patch requests.
16131	NullFields []string `json:"-"`
16132}
16133
16134func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
16135	type NoMethod InstanceAggregatedListWarning
16136	raw := NoMethod(*s)
16137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16138}
16139
16140type InstanceAggregatedListWarningData struct {
16141	// Key: [Output Only] A key that provides more detail on the warning
16142	// being returned. For example, for warnings where there are no results
16143	// in a list request for a particular zone, this key might be scope and
16144	// the key value might be the zone name. Other examples might be a key
16145	// indicating a deprecated resource and a suggested replacement, or a
16146	// warning about invalid network settings (for example, if an instance
16147	// attempts to perform IP forwarding but is not enabled for IP
16148	// forwarding).
16149	Key string `json:"key,omitempty"`
16150
16151	// Value: [Output Only] A warning data value corresponding to the key.
16152	Value string `json:"value,omitempty"`
16153
16154	// ForceSendFields is a list of field names (e.g. "Key") to
16155	// unconditionally include in API requests. By default, fields with
16156	// empty values are omitted from API requests. However, any non-pointer,
16157	// non-interface field appearing in ForceSendFields will be sent to the
16158	// server regardless of whether the field is empty or not. This may be
16159	// used to include empty fields in Patch requests.
16160	ForceSendFields []string `json:"-"`
16161
16162	// NullFields is a list of field names (e.g. "Key") to include in API
16163	// requests with the JSON null value. By default, fields with empty
16164	// values are omitted from API requests. However, any field with an
16165	// empty value appearing in NullFields will be sent to the server as
16166	// null. It is an error if a field in this list has a non-empty value.
16167	// This may be used to include null fields in Patch requests.
16168	NullFields []string `json:"-"`
16169}
16170
16171func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16172	type NoMethod InstanceAggregatedListWarningData
16173	raw := NoMethod(*s)
16174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16175}
16176
16177// InstanceGroup: Represents an Instance Group resource.
16178//
16179// Instance Groups can be used to configure a target for load
16180// balancing.
16181//
16182// Instance groups can either be managed or unmanaged.
16183//
16184// To create  managed instance groups, use the instanceGroupManager or
16185// regionInstanceGroupManager resource instead.
16186//
16187// Use zonal unmanaged instance groups if you need to apply load
16188// balancing to groups of heterogeneous instances or if you need to
16189// manage the instances yourself. You cannot create regional unmanaged
16190// instance groups.
16191//
16192// For more information, read Instance groups.
16193//
16194// (== resource_for {$api_version}.instanceGroups ==) (== resource_for
16195// {$api_version}.regionInstanceGroups ==)
16196type InstanceGroup struct {
16197	// CreationTimestamp: [Output Only] The creation timestamp for this
16198	// instance group in RFC3339 text format.
16199	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16200
16201	// Description: An optional description of this resource. Provide this
16202	// property when you create the resource.
16203	Description string `json:"description,omitempty"`
16204
16205	// Fingerprint: [Output Only] The fingerprint of the named ports. The
16206	// system uses this fingerprint to detect conflicts when multiple users
16207	// change the named ports concurrently.
16208	Fingerprint string `json:"fingerprint,omitempty"`
16209
16210	// Id: [Output Only] A unique identifier for this instance group,
16211	// generated by the server.
16212	Id uint64 `json:"id,omitempty,string"`
16213
16214	// Kind: [Output Only] The resource type, which is always
16215	// compute#instanceGroup for instance groups.
16216	Kind string `json:"kind,omitempty"`
16217
16218	// Name: The name of the instance group. The name must be 1-63
16219	// characters long, and comply with RFC1035.
16220	Name string `json:"name,omitempty"`
16221
16222	// NamedPorts: Assigns a name to a port number. For example: {name:
16223	// "http", port: 80}
16224	//
16225	// This allows the system to reference ports by the assigned name
16226	// instead of a port number. Named ports can also contain multiple
16227	// ports. For example: [{name: "http", port: 80},{name: "http", port:
16228	// 8080}]
16229	//
16230	// Named ports apply to all instances in this instance group.
16231	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16232
16233	// Network: [Output Only] The URL of the network to which all instances
16234	// in the instance group belong. If your instance has multiple network
16235	// interfaces, then the network and subnetwork fields only refer to the
16236	// network and subnet used by your primary interface (nic0).
16237	Network string `json:"network,omitempty"`
16238
16239	// Region: [Output Only] The URL of the region where the instance group
16240	// is located (for regional resources).
16241	Region string `json:"region,omitempty"`
16242
16243	// SelfLink: [Output Only] The URL for this instance group. The server
16244	// generates this URL.
16245	SelfLink string `json:"selfLink,omitempty"`
16246
16247	// Size: [Output Only] The total number of instances in the instance
16248	// group.
16249	Size int64 `json:"size,omitempty"`
16250
16251	// Subnetwork: [Output Only] The URL of the subnetwork to which all
16252	// instances in the instance group belong. If your instance has multiple
16253	// network interfaces, then the network and subnetwork fields only refer
16254	// to the network and subnet used by your primary interface (nic0).
16255	Subnetwork string `json:"subnetwork,omitempty"`
16256
16257	// Zone: [Output Only] The URL of the zone where the instance group is
16258	// located (for zonal resources).
16259	Zone string `json:"zone,omitempty"`
16260
16261	// ServerResponse contains the HTTP response code and headers from the
16262	// server.
16263	googleapi.ServerResponse `json:"-"`
16264
16265	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
16266	// to unconditionally include in API requests. By default, fields with
16267	// empty values are omitted from API requests. However, any non-pointer,
16268	// non-interface field appearing in ForceSendFields will be sent to the
16269	// server regardless of whether the field is empty or not. This may be
16270	// used to include empty fields in Patch requests.
16271	ForceSendFields []string `json:"-"`
16272
16273	// NullFields is a list of field names (e.g. "CreationTimestamp") to
16274	// include in API requests with the JSON null value. By default, fields
16275	// with empty values are omitted from API requests. However, any field
16276	// with an empty value appearing in NullFields will be sent to the
16277	// server as null. It is an error if a field in this list has a
16278	// non-empty value. This may be used to include null fields in Patch
16279	// requests.
16280	NullFields []string `json:"-"`
16281}
16282
16283func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
16284	type NoMethod InstanceGroup
16285	raw := NoMethod(*s)
16286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16287}
16288
16289type InstanceGroupAggregatedList struct {
16290	// Id: [Output Only] Unique identifier for the resource; defined by the
16291	// server.
16292	Id string `json:"id,omitempty"`
16293
16294	// Items: A list of InstanceGroupsScopedList resources.
16295	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
16296
16297	// Kind: [Output Only] The resource type, which is always
16298	// compute#instanceGroupAggregatedList for aggregated lists of instance
16299	// groups.
16300	Kind string `json:"kind,omitempty"`
16301
16302	// NextPageToken: [Output Only] This token allows you to get the next
16303	// page of results for list requests. If the number of results is larger
16304	// than maxResults, use the nextPageToken as a value for the query
16305	// parameter pageToken in the next list request. Subsequent list
16306	// requests will have their own nextPageToken to continue paging through
16307	// the results.
16308	NextPageToken string `json:"nextPageToken,omitempty"`
16309
16310	// SelfLink: [Output Only] Server-defined URL for this resource.
16311	SelfLink string `json:"selfLink,omitempty"`
16312
16313	// Unreachables: [Output Only] Unreachable resources.
16314	Unreachables []string `json:"unreachables,omitempty"`
16315
16316	// Warning: [Output Only] Informational warning message.
16317	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
16318
16319	// ServerResponse contains the HTTP response code and headers from the
16320	// server.
16321	googleapi.ServerResponse `json:"-"`
16322
16323	// ForceSendFields is a list of field names (e.g. "Id") to
16324	// unconditionally include in API requests. By default, fields with
16325	// empty values are omitted from API requests. However, any non-pointer,
16326	// non-interface field appearing in ForceSendFields will be sent to the
16327	// server regardless of whether the field is empty or not. This may be
16328	// used to include empty fields in Patch requests.
16329	ForceSendFields []string `json:"-"`
16330
16331	// NullFields is a list of field names (e.g. "Id") to include in API
16332	// requests with the JSON null value. By default, fields with empty
16333	// values are omitted from API requests. However, any field with an
16334	// empty value appearing in NullFields will be sent to the server as
16335	// null. It is an error if a field in this list has a non-empty value.
16336	// This may be used to include null fields in Patch requests.
16337	NullFields []string `json:"-"`
16338}
16339
16340func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
16341	type NoMethod InstanceGroupAggregatedList
16342	raw := NoMethod(*s)
16343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16344}
16345
16346// InstanceGroupAggregatedListWarning: [Output Only] Informational
16347// warning message.
16348type InstanceGroupAggregatedListWarning struct {
16349	// Code: [Output Only] A warning code, if applicable. For example,
16350	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16351	// the response.
16352	//
16353	// Possible values:
16354	//   "CLEANUP_FAILED"
16355	//   "DEPRECATED_RESOURCE_USED"
16356	//   "DEPRECATED_TYPE_USED"
16357	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16358	//   "EXPERIMENTAL_TYPE_USED"
16359	//   "EXTERNAL_API_WARNING"
16360	//   "FIELD_VALUE_OVERRIDEN"
16361	//   "INJECTED_KERNELS_DEPRECATED"
16362	//   "LARGE_DEPLOYMENT_WARNING"
16363	//   "MISSING_TYPE_DEPENDENCY"
16364	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16365	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16366	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16367	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16368	//   "NEXT_HOP_NOT_RUNNING"
16369	//   "NOT_CRITICAL_ERROR"
16370	//   "NO_RESULTS_ON_PAGE"
16371	//   "PARTIAL_SUCCESS"
16372	//   "REQUIRED_TOS_AGREEMENT"
16373	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16374	//   "RESOURCE_NOT_DELETED"
16375	//   "SCHEMA_VALIDATION_IGNORED"
16376	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16377	//   "UNDECLARED_PROPERTIES"
16378	//   "UNREACHABLE"
16379	Code string `json:"code,omitempty"`
16380
16381	// Data: [Output Only] Metadata about this warning in key: value format.
16382	// For example:
16383	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16384	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
16385
16386	// Message: [Output Only] A human-readable description of the warning
16387	// code.
16388	Message string `json:"message,omitempty"`
16389
16390	// ForceSendFields is a list of field names (e.g. "Code") to
16391	// unconditionally include in API requests. By default, fields with
16392	// empty values are omitted from API requests. However, any non-pointer,
16393	// non-interface field appearing in ForceSendFields will be sent to the
16394	// server regardless of whether the field is empty or not. This may be
16395	// used to include empty fields in Patch requests.
16396	ForceSendFields []string `json:"-"`
16397
16398	// NullFields is a list of field names (e.g. "Code") to include in API
16399	// requests with the JSON null value. By default, fields with empty
16400	// values are omitted from API requests. However, any field with an
16401	// empty value appearing in NullFields will be sent to the server as
16402	// null. It is an error if a field in this list has a non-empty value.
16403	// This may be used to include null fields in Patch requests.
16404	NullFields []string `json:"-"`
16405}
16406
16407func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
16408	type NoMethod InstanceGroupAggregatedListWarning
16409	raw := NoMethod(*s)
16410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16411}
16412
16413type InstanceGroupAggregatedListWarningData struct {
16414	// Key: [Output Only] A key that provides more detail on the warning
16415	// being returned. For example, for warnings where there are no results
16416	// in a list request for a particular zone, this key might be scope and
16417	// the key value might be the zone name. Other examples might be a key
16418	// indicating a deprecated resource and a suggested replacement, or a
16419	// warning about invalid network settings (for example, if an instance
16420	// attempts to perform IP forwarding but is not enabled for IP
16421	// forwarding).
16422	Key string `json:"key,omitempty"`
16423
16424	// Value: [Output Only] A warning data value corresponding to the key.
16425	Value string `json:"value,omitempty"`
16426
16427	// ForceSendFields is a list of field names (e.g. "Key") to
16428	// unconditionally include in API requests. By default, fields with
16429	// empty values are omitted from API requests. However, any non-pointer,
16430	// non-interface field appearing in ForceSendFields will be sent to the
16431	// server regardless of whether the field is empty or not. This may be
16432	// used to include empty fields in Patch requests.
16433	ForceSendFields []string `json:"-"`
16434
16435	// NullFields is a list of field names (e.g. "Key") to include in API
16436	// requests with the JSON null value. By default, fields with empty
16437	// values are omitted from API requests. However, any field with an
16438	// empty value appearing in NullFields will be sent to the server as
16439	// null. It is an error if a field in this list has a non-empty value.
16440	// This may be used to include null fields in Patch requests.
16441	NullFields []string `json:"-"`
16442}
16443
16444func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16445	type NoMethod InstanceGroupAggregatedListWarningData
16446	raw := NoMethod(*s)
16447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16448}
16449
16450// InstanceGroupList: A list of InstanceGroup resources.
16451type InstanceGroupList struct {
16452	// Id: [Output Only] Unique identifier for the resource; defined by the
16453	// server.
16454	Id string `json:"id,omitempty"`
16455
16456	// Items: A list of InstanceGroup resources.
16457	Items []*InstanceGroup `json:"items,omitempty"`
16458
16459	// Kind: [Output Only] The resource type, which is always
16460	// compute#instanceGroupList for instance group lists.
16461	Kind string `json:"kind,omitempty"`
16462
16463	// NextPageToken: [Output Only] This token allows you to get the next
16464	// page of results for list requests. If the number of results is larger
16465	// than maxResults, use the nextPageToken as a value for the query
16466	// parameter pageToken in the next list request. Subsequent list
16467	// requests will have their own nextPageToken to continue paging through
16468	// the results.
16469	NextPageToken string `json:"nextPageToken,omitempty"`
16470
16471	// SelfLink: [Output Only] Server-defined URL for this resource.
16472	SelfLink string `json:"selfLink,omitempty"`
16473
16474	// Warning: [Output Only] Informational warning message.
16475	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
16476
16477	// ServerResponse contains the HTTP response code and headers from the
16478	// server.
16479	googleapi.ServerResponse `json:"-"`
16480
16481	// ForceSendFields is a list of field names (e.g. "Id") to
16482	// unconditionally include in API requests. By default, fields with
16483	// empty values are omitted from API requests. However, any non-pointer,
16484	// non-interface field appearing in ForceSendFields will be sent to the
16485	// server regardless of whether the field is empty or not. This may be
16486	// used to include empty fields in Patch requests.
16487	ForceSendFields []string `json:"-"`
16488
16489	// NullFields is a list of field names (e.g. "Id") to include in API
16490	// requests with the JSON null value. By default, fields with empty
16491	// values are omitted from API requests. However, any field with an
16492	// empty value appearing in NullFields will be sent to the server as
16493	// null. It is an error if a field in this list has a non-empty value.
16494	// This may be used to include null fields in Patch requests.
16495	NullFields []string `json:"-"`
16496}
16497
16498func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
16499	type NoMethod InstanceGroupList
16500	raw := NoMethod(*s)
16501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16502}
16503
16504// InstanceGroupListWarning: [Output Only] Informational warning
16505// message.
16506type InstanceGroupListWarning struct {
16507	// Code: [Output Only] A warning code, if applicable. For example,
16508	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16509	// the response.
16510	//
16511	// Possible values:
16512	//   "CLEANUP_FAILED"
16513	//   "DEPRECATED_RESOURCE_USED"
16514	//   "DEPRECATED_TYPE_USED"
16515	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16516	//   "EXPERIMENTAL_TYPE_USED"
16517	//   "EXTERNAL_API_WARNING"
16518	//   "FIELD_VALUE_OVERRIDEN"
16519	//   "INJECTED_KERNELS_DEPRECATED"
16520	//   "LARGE_DEPLOYMENT_WARNING"
16521	//   "MISSING_TYPE_DEPENDENCY"
16522	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16523	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16524	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16525	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16526	//   "NEXT_HOP_NOT_RUNNING"
16527	//   "NOT_CRITICAL_ERROR"
16528	//   "NO_RESULTS_ON_PAGE"
16529	//   "PARTIAL_SUCCESS"
16530	//   "REQUIRED_TOS_AGREEMENT"
16531	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16532	//   "RESOURCE_NOT_DELETED"
16533	//   "SCHEMA_VALIDATION_IGNORED"
16534	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16535	//   "UNDECLARED_PROPERTIES"
16536	//   "UNREACHABLE"
16537	Code string `json:"code,omitempty"`
16538
16539	// Data: [Output Only] Metadata about this warning in key: value format.
16540	// For example:
16541	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16542	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
16543
16544	// Message: [Output Only] A human-readable description of the warning
16545	// code.
16546	Message string `json:"message,omitempty"`
16547
16548	// ForceSendFields is a list of field names (e.g. "Code") to
16549	// unconditionally include in API requests. By default, fields with
16550	// empty values are omitted from API requests. However, any non-pointer,
16551	// non-interface field appearing in ForceSendFields will be sent to the
16552	// server regardless of whether the field is empty or not. This may be
16553	// used to include empty fields in Patch requests.
16554	ForceSendFields []string `json:"-"`
16555
16556	// NullFields is a list of field names (e.g. "Code") to include in API
16557	// requests with the JSON null value. By default, fields with empty
16558	// values are omitted from API requests. However, any field with an
16559	// empty value appearing in NullFields will be sent to the server as
16560	// null. It is an error if a field in this list has a non-empty value.
16561	// This may be used to include null fields in Patch requests.
16562	NullFields []string `json:"-"`
16563}
16564
16565func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
16566	type NoMethod InstanceGroupListWarning
16567	raw := NoMethod(*s)
16568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16569}
16570
16571type InstanceGroupListWarningData struct {
16572	// Key: [Output Only] A key that provides more detail on the warning
16573	// being returned. For example, for warnings where there are no results
16574	// in a list request for a particular zone, this key might be scope and
16575	// the key value might be the zone name. Other examples might be a key
16576	// indicating a deprecated resource and a suggested replacement, or a
16577	// warning about invalid network settings (for example, if an instance
16578	// attempts to perform IP forwarding but is not enabled for IP
16579	// forwarding).
16580	Key string `json:"key,omitempty"`
16581
16582	// Value: [Output Only] A warning data value corresponding to the key.
16583	Value string `json:"value,omitempty"`
16584
16585	// ForceSendFields is a list of field names (e.g. "Key") to
16586	// unconditionally include in API requests. By default, fields with
16587	// empty values are omitted from API requests. However, any non-pointer,
16588	// non-interface field appearing in ForceSendFields will be sent to the
16589	// server regardless of whether the field is empty or not. This may be
16590	// used to include empty fields in Patch requests.
16591	ForceSendFields []string `json:"-"`
16592
16593	// NullFields is a list of field names (e.g. "Key") to include in API
16594	// requests with the JSON null value. By default, fields with empty
16595	// values are omitted from API requests. However, any field with an
16596	// empty value appearing in NullFields will be sent to the server as
16597	// null. It is an error if a field in this list has a non-empty value.
16598	// This may be used to include null fields in Patch requests.
16599	NullFields []string `json:"-"`
16600}
16601
16602func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
16603	type NoMethod InstanceGroupListWarningData
16604	raw := NoMethod(*s)
16605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16606}
16607
16608// InstanceGroupManager: Whether the instance is a standby. Properties
16609// of a standby instance comparing to the regular instance:
16610// ======================================================================
16611// === | regular | standby
16612// ======================================================================
16613// === managed by IGM? | yes | yes added to the IG? | yes | yes counts
16614// towards IGM's target size? | yes | no taken into account by
16615// Autoscaler? | yes | no receives traffic from LB? | yes | no
16616// ======================================================================
16617// ===
16618//
16619// Represents a Managed Instance Group resource.
16620//
16621// An instance group is a collection of VM instances that you can manage
16622// as a single entity. For more information, read Instance groups.
16623//
16624// For zonal Managed Instance Group, use the instanceGroupManagers
16625// resource.
16626//
16627// For regional Managed Instance Group, use the
16628// regionInstanceGroupManagers resource. (== resource_for
16629// {$api_version}.instanceGroupManagers ==) (== resource_for
16630// {$api_version}.regionInstanceGroupManagers ==)
16631type InstanceGroupManager struct {
16632	// AutoHealingPolicies: The autohealing policy for this managed instance
16633	// group. You can specify only one value.
16634	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
16635
16636	// BaseInstanceName: The base instance name to use for instances in this
16637	// group. The value must be 1-58 characters long. Instances are named by
16638	// appending a hyphen and a random four-character string to the base
16639	// instance name. The base instance name must comply with RFC1035.
16640	BaseInstanceName string `json:"baseInstanceName,omitempty"`
16641
16642	// CreationTimestamp: [Output Only] The creation timestamp for this
16643	// managed instance group in RFC3339 text format.
16644	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16645
16646	// CurrentActions: [Output Only] The list of instance actions and the
16647	// number of instances in this managed instance group that are scheduled
16648	// for each of those actions.
16649	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
16650
16651	// Description: An optional description of this resource. Provide this
16652	// property when you create the resource.
16653	Description string `json:"description,omitempty"`
16654
16655	// DistributionPolicy: Policy specifying the intended distribution of
16656	// managed instances across zones in a regional managed instance group.
16657	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
16658
16659	// FailoverAction: The action to perform in case of zone failure. Only
16660	// one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
16661	//
16662	// Possible values:
16663	//   "NO_FAILOVER"
16664	//   "UNKNOWN"
16665	FailoverAction string `json:"failoverAction,omitempty"`
16666
16667	// Fingerprint: Fingerprint of this resource. This field may be used in
16668	// optimistic locking. It will be ignored when inserting an
16669	// InstanceGroupManager. An up-to-date fingerprint must be provided in
16670	// order to update the InstanceGroupManager, otherwise the request will
16671	// fail with error 412 conditionNotMet.
16672	//
16673	// To see the latest fingerprint, make a get() request to retrieve an
16674	// InstanceGroupManager.
16675	Fingerprint string `json:"fingerprint,omitempty"`
16676
16677	// Id: [Output Only] A unique identifier for this resource type. The
16678	// server generates this identifier.
16679	Id uint64 `json:"id,omitempty,string"`
16680
16681	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
16682	InstanceGroup string `json:"instanceGroup,omitempty"`
16683
16684	// InstanceTemplate: The URL of the instance template that is specified
16685	// for this managed instance group. The group uses this template to
16686	// create all new instances in the managed instance group. The templates
16687	// for existing instances in the group do not change unless you run
16688	// recreateInstances, run applyUpdatesToInstances, or set the group's
16689	// updatePolicy.type to PROACTIVE.
16690	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16691
16692	// Kind: [Output Only] The resource type, which is always
16693	// compute#instanceGroupManager for managed instance groups.
16694	Kind string `json:"kind,omitempty"`
16695
16696	// Name: The name of the managed instance group. The name must be 1-63
16697	// characters long, and comply with RFC1035.
16698	Name string `json:"name,omitempty"`
16699
16700	// NamedPorts: Named ports configured for the Instance Groups
16701	// complementary to this Instance Group Manager.
16702	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16703
16704	// Region: [Output Only] The URL of the region where the managed
16705	// instance group resides (for regional resources).
16706	Region string `json:"region,omitempty"`
16707
16708	// SelfLink: [Output Only] The URL for this managed instance group. The
16709	// server defines this URL.
16710	SelfLink string `json:"selfLink,omitempty"`
16711
16712	// ServiceAccount: The service account to be used as credentials for all
16713	// operations performed by the managed instance group on instances. The
16714	// service accounts needs all permissions required to create and delete
16715	// instances. By default, the service account
16716	// {projectNumber}@cloudservices.gserviceaccount.com is used.
16717	ServiceAccount string `json:"serviceAccount,omitempty"`
16718
16719	// StatefulPolicy: Stateful configuration for this Instanced Group
16720	// Manager
16721	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
16722
16723	// Status: [Output Only] The status of this managed instance group.
16724	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
16725
16726	// TargetPools: The URLs for all TargetPool resources to which instances
16727	// in the instanceGroup field are added. The target pools automatically
16728	// apply to all of the instances in the managed instance group.
16729	TargetPools []string `json:"targetPools,omitempty"`
16730
16731	// TargetSize: The target number of running instances for this managed
16732	// instance group. You can reduce this number by using the
16733	// instanceGroupManager deleteInstances or abandonInstances methods.
16734	// Resizing the group also changes this number.
16735	TargetSize int64 `json:"targetSize,omitempty"`
16736
16737	// UpdatePolicy: The update policy for this managed instance group.
16738	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
16739
16740	// Versions: Specifies the instance templates used by this managed
16741	// instance group to create instances.
16742	//
16743	// Each version is defined by an instanceTemplate and a name. Every
16744	// version can appear at most once per instance group. This field
16745	// overrides the top-level instanceTemplate field. Read more about the
16746	// relationships between these fields. Exactly one version must leave
16747	// the targetSize field unset. That version will be applied to all
16748	// remaining instances. For more information, read about canary updates.
16749	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
16750
16751	// Zone: [Output Only] The URL of a zone where the managed instance
16752	// group is located (for zonal resources).
16753	Zone string `json:"zone,omitempty"`
16754
16755	// ServerResponse contains the HTTP response code and headers from the
16756	// server.
16757	googleapi.ServerResponse `json:"-"`
16758
16759	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
16760	// to unconditionally include in API requests. By default, fields with
16761	// empty values are omitted from API requests. However, any non-pointer,
16762	// non-interface field appearing in ForceSendFields will be sent to the
16763	// server regardless of whether the field is empty or not. This may be
16764	// used to include empty fields in Patch requests.
16765	ForceSendFields []string `json:"-"`
16766
16767	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
16768	// include in API requests with the JSON null value. By default, fields
16769	// with empty values are omitted from API requests. However, any field
16770	// with an empty value appearing in NullFields will be sent to the
16771	// server as null. It is an error if a field in this list has a
16772	// non-empty value. This may be used to include null fields in Patch
16773	// requests.
16774	NullFields []string `json:"-"`
16775}
16776
16777func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
16778	type NoMethod InstanceGroupManager
16779	raw := NoMethod(*s)
16780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16781}
16782
16783type InstanceGroupManagerActionsSummary struct {
16784	// Abandoning: [Output Only] The total number of instances in the
16785	// managed instance group that are scheduled to be abandoned. Abandoning
16786	// an instance removes it from the managed instance group without
16787	// deleting it.
16788	Abandoning int64 `json:"abandoning,omitempty"`
16789
16790	// Creating: [Output Only] The number of instances in the managed
16791	// instance group that are scheduled to be created or are currently
16792	// being created. If the group fails to create any of these instances,
16793	// it tries again until it creates the instance successfully.
16794	//
16795	// If you have disabled creation retries, this field will not be
16796	// populated; instead, the creatingWithoutRetries field will be
16797	// populated.
16798	Creating int64 `json:"creating,omitempty"`
16799
16800	// CreatingWithoutRetries: [Output Only] The number of instances that
16801	// the managed instance group will attempt to create. The group attempts
16802	// to create each instance only once. If the group fails to create any
16803	// of these instances, it decreases the group's targetSize value
16804	// accordingly.
16805	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
16806
16807	// Deleting: [Output Only] The number of instances in the managed
16808	// instance group that are scheduled to be deleted or are currently
16809	// being deleted.
16810	Deleting int64 `json:"deleting,omitempty"`
16811
16812	// None: [Output Only] The number of instances in the managed instance
16813	// group that are running and have no scheduled actions.
16814	None int64 `json:"none,omitempty"`
16815
16816	// Recreating: [Output Only] The number of instances in the managed
16817	// instance group that are scheduled to be recreated or are currently
16818	// being being recreated. Recreating an instance deletes the existing
16819	// root persistent disk and creates a new disk from the image that is
16820	// defined in the instance template.
16821	Recreating int64 `json:"recreating,omitempty"`
16822
16823	// Refreshing: [Output Only] The number of instances in the managed
16824	// instance group that are being reconfigured with properties that do
16825	// not require a restart or a recreate action. For example, setting or
16826	// removing target pools for the instance.
16827	Refreshing int64 `json:"refreshing,omitempty"`
16828
16829	// Restarting: [Output Only] The number of instances in the managed
16830	// instance group that are scheduled to be restarted or are currently
16831	// being restarted.
16832	Restarting int64 `json:"restarting,omitempty"`
16833
16834	// Verifying: [Output Only] The number of instances in the managed
16835	// instance group that are being verified. See the
16836	// managedInstances[].currentAction property in the listManagedInstances
16837	// method documentation.
16838	Verifying int64 `json:"verifying,omitempty"`
16839
16840	// ForceSendFields is a list of field names (e.g. "Abandoning") to
16841	// unconditionally include in API requests. By default, fields with
16842	// empty values are omitted from API requests. However, any non-pointer,
16843	// non-interface field appearing in ForceSendFields will be sent to the
16844	// server regardless of whether the field is empty or not. This may be
16845	// used to include empty fields in Patch requests.
16846	ForceSendFields []string `json:"-"`
16847
16848	// NullFields is a list of field names (e.g. "Abandoning") to include in
16849	// API requests with the JSON null value. By default, fields with empty
16850	// values are omitted from API requests. However, any field with an
16851	// empty value appearing in NullFields will be sent to the server as
16852	// null. It is an error if a field in this list has a non-empty value.
16853	// This may be used to include null fields in Patch requests.
16854	NullFields []string `json:"-"`
16855}
16856
16857func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
16858	type NoMethod InstanceGroupManagerActionsSummary
16859	raw := NoMethod(*s)
16860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16861}
16862
16863type InstanceGroupManagerAggregatedList struct {
16864	// Id: [Output Only] Unique identifier for the resource; defined by the
16865	// server.
16866	Id string `json:"id,omitempty"`
16867
16868	// Items: A list of InstanceGroupManagersScopedList resources.
16869	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
16870
16871	// Kind: [Output Only] The resource type, which is always
16872	// compute#instanceGroupManagerAggregatedList for an aggregated list of
16873	// managed instance groups.
16874	Kind string `json:"kind,omitempty"`
16875
16876	// NextPageToken: [Output Only] This token allows you to get the next
16877	// page of results for list requests. If the number of results is larger
16878	// than maxResults, use the nextPageToken as a value for the query
16879	// parameter pageToken in the next list request. Subsequent list
16880	// requests will have their own nextPageToken to continue paging through
16881	// the results.
16882	NextPageToken string `json:"nextPageToken,omitempty"`
16883
16884	// SelfLink: [Output Only] Server-defined URL for this resource.
16885	SelfLink string `json:"selfLink,omitempty"`
16886
16887	// Unreachables: [Output Only] Unreachable resources.
16888	Unreachables []string `json:"unreachables,omitempty"`
16889
16890	// Warning: [Output Only] Informational warning message.
16891	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
16892
16893	// ServerResponse contains the HTTP response code and headers from the
16894	// server.
16895	googleapi.ServerResponse `json:"-"`
16896
16897	// ForceSendFields is a list of field names (e.g. "Id") to
16898	// unconditionally include in API requests. By default, fields with
16899	// empty values are omitted from API requests. However, any non-pointer,
16900	// non-interface field appearing in ForceSendFields will be sent to the
16901	// server regardless of whether the field is empty or not. This may be
16902	// used to include empty fields in Patch requests.
16903	ForceSendFields []string `json:"-"`
16904
16905	// NullFields is a list of field names (e.g. "Id") to include in API
16906	// requests with the JSON null value. By default, fields with empty
16907	// values are omitted from API requests. However, any field with an
16908	// empty value appearing in NullFields will be sent to the server as
16909	// null. It is an error if a field in this list has a non-empty value.
16910	// This may be used to include null fields in Patch requests.
16911	NullFields []string `json:"-"`
16912}
16913
16914func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
16915	type NoMethod InstanceGroupManagerAggregatedList
16916	raw := NoMethod(*s)
16917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16918}
16919
16920// InstanceGroupManagerAggregatedListWarning: [Output Only]
16921// Informational warning message.
16922type InstanceGroupManagerAggregatedListWarning struct {
16923	// Code: [Output Only] A warning code, if applicable. For example,
16924	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16925	// the response.
16926	//
16927	// Possible values:
16928	//   "CLEANUP_FAILED"
16929	//   "DEPRECATED_RESOURCE_USED"
16930	//   "DEPRECATED_TYPE_USED"
16931	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16932	//   "EXPERIMENTAL_TYPE_USED"
16933	//   "EXTERNAL_API_WARNING"
16934	//   "FIELD_VALUE_OVERRIDEN"
16935	//   "INJECTED_KERNELS_DEPRECATED"
16936	//   "LARGE_DEPLOYMENT_WARNING"
16937	//   "MISSING_TYPE_DEPENDENCY"
16938	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16939	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16940	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16941	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16942	//   "NEXT_HOP_NOT_RUNNING"
16943	//   "NOT_CRITICAL_ERROR"
16944	//   "NO_RESULTS_ON_PAGE"
16945	//   "PARTIAL_SUCCESS"
16946	//   "REQUIRED_TOS_AGREEMENT"
16947	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16948	//   "RESOURCE_NOT_DELETED"
16949	//   "SCHEMA_VALIDATION_IGNORED"
16950	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16951	//   "UNDECLARED_PROPERTIES"
16952	//   "UNREACHABLE"
16953	Code string `json:"code,omitempty"`
16954
16955	// Data: [Output Only] Metadata about this warning in key: value format.
16956	// For example:
16957	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16958	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
16959
16960	// Message: [Output Only] A human-readable description of the warning
16961	// code.
16962	Message string `json:"message,omitempty"`
16963
16964	// ForceSendFields is a list of field names (e.g. "Code") to
16965	// unconditionally include in API requests. By default, fields with
16966	// empty values are omitted from API requests. However, any non-pointer,
16967	// non-interface field appearing in ForceSendFields will be sent to the
16968	// server regardless of whether the field is empty or not. This may be
16969	// used to include empty fields in Patch requests.
16970	ForceSendFields []string `json:"-"`
16971
16972	// NullFields is a list of field names (e.g. "Code") to include in API
16973	// requests with the JSON null value. By default, fields with empty
16974	// values are omitted from API requests. However, any field with an
16975	// empty value appearing in NullFields will be sent to the server as
16976	// null. It is an error if a field in this list has a non-empty value.
16977	// This may be used to include null fields in Patch requests.
16978	NullFields []string `json:"-"`
16979}
16980
16981func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
16982	type NoMethod InstanceGroupManagerAggregatedListWarning
16983	raw := NoMethod(*s)
16984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16985}
16986
16987type InstanceGroupManagerAggregatedListWarningData struct {
16988	// Key: [Output Only] A key that provides more detail on the warning
16989	// being returned. For example, for warnings where there are no results
16990	// in a list request for a particular zone, this key might be scope and
16991	// the key value might be the zone name. Other examples might be a key
16992	// indicating a deprecated resource and a suggested replacement, or a
16993	// warning about invalid network settings (for example, if an instance
16994	// attempts to perform IP forwarding but is not enabled for IP
16995	// forwarding).
16996	Key string `json:"key,omitempty"`
16997
16998	// Value: [Output Only] A warning data value corresponding to the key.
16999	Value string `json:"value,omitempty"`
17000
17001	// ForceSendFields is a list of field names (e.g. "Key") to
17002	// unconditionally include in API requests. By default, fields with
17003	// empty values are omitted from API requests. However, any non-pointer,
17004	// non-interface field appearing in ForceSendFields will be sent to the
17005	// server regardless of whether the field is empty or not. This may be
17006	// used to include empty fields in Patch requests.
17007	ForceSendFields []string `json:"-"`
17008
17009	// NullFields is a list of field names (e.g. "Key") to include in API
17010	// requests with the JSON null value. By default, fields with empty
17011	// values are omitted from API requests. However, any field with an
17012	// empty value appearing in NullFields will be sent to the server as
17013	// null. It is an error if a field in this list has a non-empty value.
17014	// This may be used to include null fields in Patch requests.
17015	NullFields []string `json:"-"`
17016}
17017
17018func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
17019	type NoMethod InstanceGroupManagerAggregatedListWarningData
17020	raw := NoMethod(*s)
17021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17022}
17023
17024type InstanceGroupManagerAutoHealingPolicy struct {
17025	// HealthCheck: The URL for the health check that signals autohealing.
17026	HealthCheck string `json:"healthCheck,omitempty"`
17027
17028	// InitialDelaySec: The number of seconds that the managed instance
17029	// group waits before it applies autohealing policies to new instances
17030	// or recently recreated instances. This initial delay allows instances
17031	// to initialize and run their startup scripts before the instance group
17032	// determines that they are UNHEALTHY. This prevents the managed
17033	// instance group from recreating its instances prematurely. This value
17034	// must be from range [0, 3600].
17035	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
17036
17037	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
17038	// unconditionally include in API requests. By default, fields with
17039	// empty values are omitted from API requests. However, any non-pointer,
17040	// non-interface field appearing in ForceSendFields will be sent to the
17041	// server regardless of whether the field is empty or not. This may be
17042	// used to include empty fields in Patch requests.
17043	ForceSendFields []string `json:"-"`
17044
17045	// NullFields is a list of field names (e.g. "HealthCheck") to include
17046	// in API requests with the JSON null value. By default, fields with
17047	// empty values are omitted from API requests. However, any field with
17048	// an empty value appearing in NullFields will be sent to the server as
17049	// null. It is an error if a field in this list has a non-empty value.
17050	// This may be used to include null fields in Patch requests.
17051	NullFields []string `json:"-"`
17052}
17053
17054func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
17055	type NoMethod InstanceGroupManagerAutoHealingPolicy
17056	raw := NoMethod(*s)
17057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17058}
17059
17060// InstanceGroupManagerList: [Output Only] A list of managed instance
17061// groups.
17062type InstanceGroupManagerList struct {
17063	// Id: [Output Only] Unique identifier for the resource; defined by the
17064	// server.
17065	Id string `json:"id,omitempty"`
17066
17067	// Items: A list of InstanceGroupManager resources.
17068	Items []*InstanceGroupManager `json:"items,omitempty"`
17069
17070	// Kind: [Output Only] The resource type, which is always
17071	// compute#instanceGroupManagerList for a list of managed instance
17072	// groups.
17073	Kind string `json:"kind,omitempty"`
17074
17075	// NextPageToken: [Output Only] This token allows you to get the next
17076	// page of results for list requests. If the number of results is larger
17077	// than maxResults, use the nextPageToken as a value for the query
17078	// parameter pageToken in the next list request. Subsequent list
17079	// requests will have their own nextPageToken to continue paging through
17080	// the results.
17081	NextPageToken string `json:"nextPageToken,omitempty"`
17082
17083	// SelfLink: [Output Only] Server-defined URL for this resource.
17084	SelfLink string `json:"selfLink,omitempty"`
17085
17086	// Warning: [Output Only] Informational warning message.
17087	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
17088
17089	// ServerResponse contains the HTTP response code and headers from the
17090	// server.
17091	googleapi.ServerResponse `json:"-"`
17092
17093	// ForceSendFields is a list of field names (e.g. "Id") to
17094	// unconditionally include in API requests. By default, fields with
17095	// empty values are omitted from API requests. However, any non-pointer,
17096	// non-interface field appearing in ForceSendFields will be sent to the
17097	// server regardless of whether the field is empty or not. This may be
17098	// used to include empty fields in Patch requests.
17099	ForceSendFields []string `json:"-"`
17100
17101	// NullFields is a list of field names (e.g. "Id") to include in API
17102	// requests with the JSON null value. By default, fields with empty
17103	// values are omitted from API requests. However, any field with an
17104	// empty value appearing in NullFields will be sent to the server as
17105	// null. It is an error if a field in this list has a non-empty value.
17106	// This may be used to include null fields in Patch requests.
17107	NullFields []string `json:"-"`
17108}
17109
17110func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
17111	type NoMethod InstanceGroupManagerList
17112	raw := NoMethod(*s)
17113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17114}
17115
17116// InstanceGroupManagerListWarning: [Output Only] Informational warning
17117// message.
17118type InstanceGroupManagerListWarning struct {
17119	// Code: [Output Only] A warning code, if applicable. For example,
17120	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17121	// the response.
17122	//
17123	// Possible values:
17124	//   "CLEANUP_FAILED"
17125	//   "DEPRECATED_RESOURCE_USED"
17126	//   "DEPRECATED_TYPE_USED"
17127	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17128	//   "EXPERIMENTAL_TYPE_USED"
17129	//   "EXTERNAL_API_WARNING"
17130	//   "FIELD_VALUE_OVERRIDEN"
17131	//   "INJECTED_KERNELS_DEPRECATED"
17132	//   "LARGE_DEPLOYMENT_WARNING"
17133	//   "MISSING_TYPE_DEPENDENCY"
17134	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17135	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17136	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17137	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17138	//   "NEXT_HOP_NOT_RUNNING"
17139	//   "NOT_CRITICAL_ERROR"
17140	//   "NO_RESULTS_ON_PAGE"
17141	//   "PARTIAL_SUCCESS"
17142	//   "REQUIRED_TOS_AGREEMENT"
17143	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17144	//   "RESOURCE_NOT_DELETED"
17145	//   "SCHEMA_VALIDATION_IGNORED"
17146	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17147	//   "UNDECLARED_PROPERTIES"
17148	//   "UNREACHABLE"
17149	Code string `json:"code,omitempty"`
17150
17151	// Data: [Output Only] Metadata about this warning in key: value format.
17152	// For example:
17153	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17154	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
17155
17156	// Message: [Output Only] A human-readable description of the warning
17157	// code.
17158	Message string `json:"message,omitempty"`
17159
17160	// ForceSendFields is a list of field names (e.g. "Code") to
17161	// unconditionally include in API requests. By default, fields with
17162	// empty values are omitted from API requests. However, any non-pointer,
17163	// non-interface field appearing in ForceSendFields will be sent to the
17164	// server regardless of whether the field is empty or not. This may be
17165	// used to include empty fields in Patch requests.
17166	ForceSendFields []string `json:"-"`
17167
17168	// NullFields is a list of field names (e.g. "Code") to include in API
17169	// requests with the JSON null value. By default, fields with empty
17170	// values are omitted from API requests. However, any field with an
17171	// empty value appearing in NullFields will be sent to the server as
17172	// null. It is an error if a field in this list has a non-empty value.
17173	// This may be used to include null fields in Patch requests.
17174	NullFields []string `json:"-"`
17175}
17176
17177func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
17178	type NoMethod InstanceGroupManagerListWarning
17179	raw := NoMethod(*s)
17180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17181}
17182
17183type InstanceGroupManagerListWarningData struct {
17184	// Key: [Output Only] A key that provides more detail on the warning
17185	// being returned. For example, for warnings where there are no results
17186	// in a list request for a particular zone, this key might be scope and
17187	// the key value might be the zone name. Other examples might be a key
17188	// indicating a deprecated resource and a suggested replacement, or a
17189	// warning about invalid network settings (for example, if an instance
17190	// attempts to perform IP forwarding but is not enabled for IP
17191	// forwarding).
17192	Key string `json:"key,omitempty"`
17193
17194	// Value: [Output Only] A warning data value corresponding to the key.
17195	Value string `json:"value,omitempty"`
17196
17197	// ForceSendFields is a list of field names (e.g. "Key") to
17198	// unconditionally include in API requests. By default, fields with
17199	// empty values are omitted from API requests. However, any non-pointer,
17200	// non-interface field appearing in ForceSendFields will be sent to the
17201	// server regardless of whether the field is empty or not. This may be
17202	// used to include empty fields in Patch requests.
17203	ForceSendFields []string `json:"-"`
17204
17205	// NullFields is a list of field names (e.g. "Key") to include in API
17206	// requests with the JSON null value. By default, fields with empty
17207	// values are omitted from API requests. However, any field with an
17208	// empty value appearing in NullFields will be sent to the server as
17209	// null. It is an error if a field in this list has a non-empty value.
17210	// This may be used to include null fields in Patch requests.
17211	NullFields []string `json:"-"`
17212}
17213
17214func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
17215	type NoMethod InstanceGroupManagerListWarningData
17216	raw := NoMethod(*s)
17217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17218}
17219
17220type InstanceGroupManagerStatus struct {
17221	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
17222	// instance group manager.
17223	Autoscaler string `json:"autoscaler,omitempty"`
17224
17225	// IsStable: [Output Only] A bit indicating whether the managed instance
17226	// group is in a stable state. A stable state means that: none of the
17227	// instances in the managed instance group is currently undergoing any
17228	// type of change (for example, creation, restart, or deletion); no
17229	// future changes are scheduled for instances in the managed instance
17230	// group; and the managed instance group itself is not being modified.
17231	IsStable bool `json:"isStable,omitempty"`
17232
17233	// Stateful: [Output Only] Stateful status of the given Instance Group
17234	// Manager.
17235	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
17236
17237	// VersionTarget: [Output Only] A status of consistency of Instances'
17238	// versions with their target version specified by version field on
17239	// Instance Group Manager.
17240	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
17241
17242	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
17243	// unconditionally include in API requests. By default, fields with
17244	// empty values are omitted from API requests. However, any non-pointer,
17245	// non-interface field appearing in ForceSendFields will be sent to the
17246	// server regardless of whether the field is empty or not. This may be
17247	// used to include empty fields in Patch requests.
17248	ForceSendFields []string `json:"-"`
17249
17250	// NullFields is a list of field names (e.g. "Autoscaler") to include in
17251	// API requests with the JSON null value. By default, fields with empty
17252	// values are omitted from API requests. However, any field with an
17253	// empty value appearing in NullFields will be sent to the server as
17254	// null. It is an error if a field in this list has a non-empty value.
17255	// This may be used to include null fields in Patch requests.
17256	NullFields []string `json:"-"`
17257}
17258
17259func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
17260	type NoMethod InstanceGroupManagerStatus
17261	raw := NoMethod(*s)
17262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17263}
17264
17265type InstanceGroupManagerStatusStateful struct {
17266	// HasStatefulConfig: [Output Only] A bit indicating whether the managed
17267	// instance group has stateful configuration, that is, if you have
17268	// configured any items in a stateful policy or in per-instance configs.
17269	// The group might report that it has no stateful config even when there
17270	// is still some preserved state on a managed instance, for example, if
17271	// you have deleted all PICs but not yet applied those deletions.
17272	HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"`
17273
17274	// IsStateful: [Output Only] A bit indicating whether the managed
17275	// instance group has stateful configuration, that is, if you have
17276	// configured any items in a stateful policy or in per-instance configs.
17277	// The group might report that it has no stateful config even when there
17278	// is still some preserved state on a managed instance, for example, if
17279	// you have deleted all PICs but not yet applied those deletions. This
17280	// field is deprecated in favor of has_stateful_config.
17281	IsStateful bool `json:"isStateful,omitempty"`
17282
17283	// PerInstanceConfigs: [Output Only] Status of per-instance configs on
17284	// the instance.
17285	PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"`
17286
17287	// ForceSendFields is a list of field names (e.g. "HasStatefulConfig")
17288	// to unconditionally include in API requests. By default, fields with
17289	// empty values are omitted from API requests. However, any non-pointer,
17290	// non-interface field appearing in ForceSendFields will be sent to the
17291	// server regardless of whether the field is empty or not. This may be
17292	// used to include empty fields in Patch requests.
17293	ForceSendFields []string `json:"-"`
17294
17295	// NullFields is a list of field names (e.g. "HasStatefulConfig") to
17296	// include in API requests with the JSON null value. By default, fields
17297	// with empty values are omitted from API requests. However, any field
17298	// with an empty value appearing in NullFields will be sent to the
17299	// server as null. It is an error if a field in this list has a
17300	// non-empty value. This may be used to include null fields in Patch
17301	// requests.
17302	NullFields []string `json:"-"`
17303}
17304
17305func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
17306	type NoMethod InstanceGroupManagerStatusStateful
17307	raw := NoMethod(*s)
17308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17309}
17310
17311type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct {
17312	// AllEffective: A bit indicating if all of the group's per-instance
17313	// configs (listed in the output of a listPerInstanceConfigs API call)
17314	// have status EFFECTIVE or there are no per-instance-configs.
17315	AllEffective bool `json:"allEffective,omitempty"`
17316
17317	// ForceSendFields is a list of field names (e.g. "AllEffective") to
17318	// unconditionally include in API requests. By default, fields with
17319	// empty values are omitted from API requests. However, any non-pointer,
17320	// non-interface field appearing in ForceSendFields will be sent to the
17321	// server regardless of whether the field is empty or not. This may be
17322	// used to include empty fields in Patch requests.
17323	ForceSendFields []string `json:"-"`
17324
17325	// NullFields is a list of field names (e.g. "AllEffective") to include
17326	// in API requests with the JSON null value. By default, fields with
17327	// empty values are omitted from API requests. However, any field with
17328	// an empty value appearing in NullFields will be sent to the server as
17329	// null. It is an error if a field in this list has a non-empty value.
17330	// This may be used to include null fields in Patch requests.
17331	NullFields []string `json:"-"`
17332}
17333
17334func (s *InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) {
17335	type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs
17336	raw := NoMethod(*s)
17337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17338}
17339
17340type InstanceGroupManagerStatusVersionTarget struct {
17341	// IsReached: [Output Only] A bit indicating whether version target has
17342	// been reached in this managed instance group, i.e. all instances are
17343	// in their target version. Instances' target version are specified by
17344	// version field on Instance Group Manager.
17345	IsReached bool `json:"isReached,omitempty"`
17346
17347	// ForceSendFields is a list of field names (e.g. "IsReached") to
17348	// unconditionally include in API requests. By default, fields with
17349	// empty values are omitted from API requests. However, any non-pointer,
17350	// non-interface field appearing in ForceSendFields will be sent to the
17351	// server regardless of whether the field is empty or not. This may be
17352	// used to include empty fields in Patch requests.
17353	ForceSendFields []string `json:"-"`
17354
17355	// NullFields is a list of field names (e.g. "IsReached") to include in
17356	// API requests with the JSON null value. By default, fields with empty
17357	// values are omitted from API requests. However, any field with an
17358	// empty value appearing in NullFields will be sent to the server as
17359	// null. It is an error if a field in this list has a non-empty value.
17360	// This may be used to include null fields in Patch requests.
17361	NullFields []string `json:"-"`
17362}
17363
17364func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
17365	type NoMethod InstanceGroupManagerStatusVersionTarget
17366	raw := NoMethod(*s)
17367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17368}
17369
17370type InstanceGroupManagerUpdatePolicy struct {
17371	// InstanceRedistributionType: The  instance redistribution policy for
17372	// regional managed instance groups. Valid values are:
17373	// - PROACTIVE (default): The group attempts to maintain an even
17374	// distribution of VM instances across zones in the region.
17375	// - NONE: For non-autoscaled groups, proactive redistribution is
17376	// disabled.
17377	//
17378	// Possible values:
17379	//   "NONE"
17380	//   "PROACTIVE"
17381	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
17382
17383	// MaxSurge: The maximum number of instances that can be created above
17384	// the specified targetSize during the update process. This value can be
17385	// either a fixed number or, if the group has 10 or more instances, a
17386	// percentage. If you set a percentage, the number of instances is
17387	// rounded if necessary. The default value for maxSurge is a fixed value
17388	// equal to the number of zones in which the managed instance group
17389	// operates.
17390	//
17391	// At least one of either maxSurge or maxUnavailable must be greater
17392	// than 0. Learn more about maxSurge.
17393	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
17394
17395	// MaxUnavailable: The maximum number of instances that can be
17396	// unavailable during the update process. An instance is considered
17397	// available if all of the following conditions are satisfied:
17398	//
17399	//
17400	// - The instance's status is RUNNING.
17401	// - If there is a health check on the instance group, the instance's
17402	// health check status must be HEALTHY at least once. If there is no
17403	// health check on the group, then the instance only needs to have a
17404	// status of RUNNING to be considered available.  This value can be
17405	// either a fixed number or, if the group has 10 or more instances, a
17406	// percentage. If you set a percentage, the number of instances is
17407	// rounded if necessary. The default value for maxUnavailable is a fixed
17408	// value equal to the number of zones in which the managed instance
17409	// group operates.
17410	//
17411	// At least one of either maxSurge or maxUnavailable must be greater
17412	// than 0. Learn more about maxUnavailable.
17413	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
17414
17415	// MinReadySec: Minimum number of seconds to wait for after a newly
17416	// created instance becomes available. This value must be from range [0,
17417	// 3600].
17418	MinReadySec int64 `json:"minReadySec,omitempty"`
17419
17420	// MinimalAction: Minimal action to be taken on an instance. You can
17421	// specify either RESTART to restart existing instances or REPLACE to
17422	// delete and create new instances from the target template. If you
17423	// specify a RESTART, the Updater will attempt to perform that action
17424	// only. However, if the Updater determines that the minimal action you
17425	// specify is not enough to perform the update, it might perform a more
17426	// disruptive action.
17427	//
17428	// Possible values:
17429	//   "NONE"
17430	//   "REFRESH"
17431	//   "REPLACE"
17432	//   "RESTART"
17433	MinimalAction string `json:"minimalAction,omitempty"`
17434
17435	// MostDisruptiveAllowedAction: Most disruptive action that is allowed
17436	// to be taken on an instance. You can specify either NONE to forbid any
17437	// actions, REFRESH to allow actions that do not need instance restart,
17438	// RESTART to allow actions that can be applied without instance
17439	// replacing or REPLACE to allow all possible actions. If the Updater
17440	// determines that the minimal update action needed is more disruptive
17441	// than most disruptive allowed action you specify it will not perform
17442	// the update at all.
17443	//
17444	// Possible values:
17445	//   "NONE"
17446	//   "REFRESH"
17447	//   "REPLACE"
17448	//   "RESTART"
17449	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
17450
17451	// ReplacementMethod: What action should be used to replace instances.
17452	// See minimal_action.REPLACE
17453	//
17454	// Possible values:
17455	//   "RECREATE"
17456	//   "SUBSTITUTE"
17457	ReplacementMethod string `json:"replacementMethod,omitempty"`
17458
17459	// Type: The type of update process. You can specify either PROACTIVE so
17460	// that the instance group manager proactively executes actions in order
17461	// to bring instances to their target versions or OPPORTUNISTIC so that
17462	// no action is proactively executed but the update will be performed as
17463	// part of other actions (for example, resizes or recreateInstances
17464	// calls).
17465	//
17466	// Possible values:
17467	//   "OPPORTUNISTIC"
17468	//   "PROACTIVE"
17469	Type string `json:"type,omitempty"`
17470
17471	// ForceSendFields is a list of field names (e.g.
17472	// "InstanceRedistributionType") to unconditionally include in API
17473	// requests. By default, fields with empty values are omitted from API
17474	// requests. However, any non-pointer, non-interface field appearing in
17475	// ForceSendFields will be sent to the server regardless of whether the
17476	// field is empty or not. This may be used to include empty fields in
17477	// Patch requests.
17478	ForceSendFields []string `json:"-"`
17479
17480	// NullFields is a list of field names (e.g.
17481	// "InstanceRedistributionType") to include in API requests with the
17482	// JSON null value. By default, fields with empty values are omitted
17483	// from API requests. However, any field with an empty value appearing
17484	// in NullFields will be sent to the server as null. It is an error if a
17485	// field in this list has a non-empty value. This may be used to include
17486	// null fields in Patch requests.
17487	NullFields []string `json:"-"`
17488}
17489
17490func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
17491	type NoMethod InstanceGroupManagerUpdatePolicy
17492	raw := NoMethod(*s)
17493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17494}
17495
17496type InstanceGroupManagerVersion struct {
17497	// InstanceTemplate: The URL of the instance template that is specified
17498	// for this managed instance group. The group uses this template to
17499	// create new instances in the managed instance group until the
17500	// `targetSize` for this version is reached. The templates for existing
17501	// instances in the group do not change unless you run
17502	// recreateInstances, run applyUpdatesToInstances, or set the group's
17503	// updatePolicy.type to PROACTIVE; in those cases, existing instances
17504	// are updated until the `targetSize` for this version is reached.
17505	InstanceTemplate string `json:"instanceTemplate,omitempty"`
17506
17507	// Name: Name of the version. Unique among all versions in the scope of
17508	// this managed instance group.
17509	Name string `json:"name,omitempty"`
17510
17511	// TargetSize: Specifies the intended number of instances to be created
17512	// from the instanceTemplate. The final number of instances created from
17513	// the template will be equal to:
17514	// - If expressed as a fixed number, the minimum of either
17515	// targetSize.fixed or instanceGroupManager.targetSize is used.
17516	// - if expressed as a percent, the targetSize would be
17517	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
17518	// is a remainder, the number is rounded.  If unset, this version will
17519	// update any remaining instances not updated by another version. Read
17520	// Starting a canary update for more information.
17521	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
17522
17523	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
17524	// unconditionally include in API requests. By default, fields with
17525	// empty values are omitted from API requests. However, any non-pointer,
17526	// non-interface field appearing in ForceSendFields will be sent to the
17527	// server regardless of whether the field is empty or not. This may be
17528	// used to include empty fields in Patch requests.
17529	ForceSendFields []string `json:"-"`
17530
17531	// NullFields is a list of field names (e.g. "InstanceTemplate") to
17532	// include in API requests with the JSON null value. By default, fields
17533	// with empty values are omitted from API requests. However, any field
17534	// with an empty value appearing in NullFields will be sent to the
17535	// server as null. It is an error if a field in this list has a
17536	// non-empty value. This may be used to include null fields in Patch
17537	// requests.
17538	NullFields []string `json:"-"`
17539}
17540
17541func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
17542	type NoMethod InstanceGroupManagerVersion
17543	raw := NoMethod(*s)
17544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17545}
17546
17547type InstanceGroupManagersAbandonInstancesRequest struct {
17548	// Instances: The URLs of one or more instances to abandon. This can be
17549	// a full URL or a partial URL, such as
17550	// zones/[ZONE]/instances/[INSTANCE_NAME].
17551	Instances []string `json:"instances,omitempty"`
17552
17553	// ForceSendFields is a list of field names (e.g. "Instances") to
17554	// unconditionally include in API requests. By default, fields with
17555	// empty values are omitted from API requests. However, any non-pointer,
17556	// non-interface field appearing in ForceSendFields will be sent to the
17557	// server regardless of whether the field is empty or not. This may be
17558	// used to include empty fields in Patch requests.
17559	ForceSendFields []string `json:"-"`
17560
17561	// NullFields is a list of field names (e.g. "Instances") to include in
17562	// API requests with the JSON null value. By default, fields with empty
17563	// values are omitted from API requests. However, any field with an
17564	// empty value appearing in NullFields will be sent to the server as
17565	// null. It is an error if a field in this list has a non-empty value.
17566	// This may be used to include null fields in Patch requests.
17567	NullFields []string `json:"-"`
17568}
17569
17570func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
17571	type NoMethod InstanceGroupManagersAbandonInstancesRequest
17572	raw := NoMethod(*s)
17573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17574}
17575
17576// InstanceGroupManagersApplyUpdatesRequest:
17577// InstanceGroupManagers.applyUpdatesToInstances
17578type InstanceGroupManagersApplyUpdatesRequest struct {
17579	// AllInstances: Flag to update all instances instead of specified list
17580	// of ?instances?. If the flag is set to true then the instances may not
17581	// be specified in the request.
17582	AllInstances bool `json:"allInstances,omitempty"`
17583
17584	// Instances: The list of URLs of one or more instances for which you
17585	// want to apply updates. Each URL can be a full URL or a partial URL,
17586	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
17587	Instances []string `json:"instances,omitempty"`
17588
17589	// MinimalAction: The minimal action that you want to perform on each
17590	// instance during the update:
17591	// - REPLACE: At minimum, delete the instance and create it again.
17592	// - RESTART: Stop the instance and start it again.
17593	// - REFRESH: Do not stop the instance.
17594	// - NONE: Do not disrupt the instance at all.  By default, the minimum
17595	// action is NONE. If your update requires a more disruptive action than
17596	// you set with this flag, the necessary action is performed to execute
17597	// the update.
17598	//
17599	// Possible values:
17600	//   "NONE"
17601	//   "REFRESH"
17602	//   "REPLACE"
17603	//   "RESTART"
17604	MinimalAction string `json:"minimalAction,omitempty"`
17605
17606	// MostDisruptiveAllowedAction: The most disruptive action that you want
17607	// to perform on each instance during the update:
17608	// - REPLACE: Delete the instance and create it again.
17609	// - RESTART: Stop the instance and start it again.
17610	// - REFRESH: Do not stop the instance.
17611	// - NONE: Do not disrupt the instance at all.  By default, the most
17612	// disruptive allowed action is REPLACE. If your update requires a more
17613	// disruptive action than you set with this flag, the update request
17614	// will fail.
17615	//
17616	// Possible values:
17617	//   "NONE"
17618	//   "REFRESH"
17619	//   "REPLACE"
17620	//   "RESTART"
17621	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
17622
17623	// ForceSendFields is a list of field names (e.g. "AllInstances") to
17624	// unconditionally include in API requests. By default, fields with
17625	// empty values are omitted from API requests. However, any non-pointer,
17626	// non-interface field appearing in ForceSendFields will be sent to the
17627	// server regardless of whether the field is empty or not. This may be
17628	// used to include empty fields in Patch requests.
17629	ForceSendFields []string `json:"-"`
17630
17631	// NullFields is a list of field names (e.g. "AllInstances") to include
17632	// in API requests with the JSON null value. By default, fields with
17633	// empty values are omitted from API requests. However, any field with
17634	// an empty value appearing in NullFields will be sent to the server as
17635	// null. It is an error if a field in this list has a non-empty value.
17636	// This may be used to include null fields in Patch requests.
17637	NullFields []string `json:"-"`
17638}
17639
17640func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
17641	type NoMethod InstanceGroupManagersApplyUpdatesRequest
17642	raw := NoMethod(*s)
17643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17644}
17645
17646// InstanceGroupManagersCreateInstancesRequest:
17647// InstanceGroupManagers.createInstances
17648type InstanceGroupManagersCreateInstancesRequest struct {
17649	// Instances: [Required] List of specifications of per-instance configs.
17650	Instances []*PerInstanceConfig `json:"instances,omitempty"`
17651
17652	// ForceSendFields is a list of field names (e.g. "Instances") to
17653	// unconditionally include in API requests. By default, fields with
17654	// empty values are omitted from API requests. However, any non-pointer,
17655	// non-interface field appearing in ForceSendFields will be sent to the
17656	// server regardless of whether the field is empty or not. This may be
17657	// used to include empty fields in Patch requests.
17658	ForceSendFields []string `json:"-"`
17659
17660	// NullFields is a list of field names (e.g. "Instances") to include in
17661	// API requests with the JSON null value. By default, fields with empty
17662	// values are omitted from API requests. However, any field with an
17663	// empty value appearing in NullFields will be sent to the server as
17664	// null. It is an error if a field in this list has a non-empty value.
17665	// This may be used to include null fields in Patch requests.
17666	NullFields []string `json:"-"`
17667}
17668
17669func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
17670	type NoMethod InstanceGroupManagersCreateInstancesRequest
17671	raw := NoMethod(*s)
17672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17673}
17674
17675type InstanceGroupManagersDeleteInstancesRequest struct {
17676	// Instances: The URLs of one or more instances to delete. This can be a
17677	// full URL or a partial URL, such as
17678	// zones/[ZONE]/instances/[INSTANCE_NAME].
17679	Instances []string `json:"instances,omitempty"`
17680
17681	// ForceSendFields is a list of field names (e.g. "Instances") to
17682	// unconditionally include in API requests. By default, fields with
17683	// empty values are omitted from API requests. However, any non-pointer,
17684	// non-interface field appearing in ForceSendFields will be sent to the
17685	// server regardless of whether the field is empty or not. This may be
17686	// used to include empty fields in Patch requests.
17687	ForceSendFields []string `json:"-"`
17688
17689	// NullFields is a list of field names (e.g. "Instances") to include in
17690	// API requests with the JSON null value. By default, fields with empty
17691	// values are omitted from API requests. However, any field with an
17692	// empty value appearing in NullFields will be sent to the server as
17693	// null. It is an error if a field in this list has a non-empty value.
17694	// This may be used to include null fields in Patch requests.
17695	NullFields []string `json:"-"`
17696}
17697
17698func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
17699	type NoMethod InstanceGroupManagersDeleteInstancesRequest
17700	raw := NoMethod(*s)
17701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17702}
17703
17704// InstanceGroupManagersDeletePerInstanceConfigsReq:
17705// InstanceGroupManagers.deletePerInstanceConfigs
17706type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
17707	// Names: The list of instance names for which we want to delete
17708	// per-instance configs on this managed instance group.
17709	Names []string `json:"names,omitempty"`
17710
17711	// ForceSendFields is a list of field names (e.g. "Names") to
17712	// unconditionally include in API requests. By default, fields with
17713	// empty values are omitted from API requests. However, any non-pointer,
17714	// non-interface field appearing in ForceSendFields will be sent to the
17715	// server regardless of whether the field is empty or not. This may be
17716	// used to include empty fields in Patch requests.
17717	ForceSendFields []string `json:"-"`
17718
17719	// NullFields is a list of field names (e.g. "Names") to include in API
17720	// requests with the JSON null value. By default, fields with empty
17721	// values are omitted from API requests. However, any field with an
17722	// empty value appearing in NullFields will be sent to the server as
17723	// null. It is an error if a field in this list has a non-empty value.
17724	// This may be used to include null fields in Patch requests.
17725	NullFields []string `json:"-"`
17726}
17727
17728func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17729	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
17730	raw := NoMethod(*s)
17731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17732}
17733
17734type InstanceGroupManagersListErrorsResponse struct {
17735	// Items: [Output Only] The list of errors of the managed instance
17736	// group.
17737	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
17738
17739	// NextPageToken: [Output Only] This token allows you to get the next
17740	// page of results for list requests. If the number of results is larger
17741	// than maxResults, use the nextPageToken as a value for the query
17742	// parameter pageToken in the next list request. Subsequent list
17743	// requests will have their own nextPageToken to continue paging through
17744	// the results.
17745	NextPageToken string `json:"nextPageToken,omitempty"`
17746
17747	// ServerResponse contains the HTTP response code and headers from the
17748	// server.
17749	googleapi.ServerResponse `json:"-"`
17750
17751	// ForceSendFields is a list of field names (e.g. "Items") to
17752	// unconditionally include in API requests. By default, fields with
17753	// empty values are omitted from API requests. However, any non-pointer,
17754	// non-interface field appearing in ForceSendFields will be sent to the
17755	// server regardless of whether the field is empty or not. This may be
17756	// used to include empty fields in Patch requests.
17757	ForceSendFields []string `json:"-"`
17758
17759	// NullFields is a list of field names (e.g. "Items") to include in API
17760	// requests with the JSON null value. By default, fields with empty
17761	// values are omitted from API requests. However, any field with an
17762	// empty value appearing in NullFields will be sent to the server as
17763	// null. It is an error if a field in this list has a non-empty value.
17764	// This may be used to include null fields in Patch requests.
17765	NullFields []string `json:"-"`
17766}
17767
17768func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
17769	type NoMethod InstanceGroupManagersListErrorsResponse
17770	raw := NoMethod(*s)
17771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17772}
17773
17774type InstanceGroupManagersListManagedInstancesResponse struct {
17775	// ManagedInstances: [Output Only] The list of instances in the managed
17776	// instance group.
17777	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
17778
17779	// NextPageToken: [Output Only] This token allows you to get the next
17780	// page of results for list requests. If the number of results is larger
17781	// than maxResults, use the nextPageToken as a value for the query
17782	// parameter pageToken in the next list request. Subsequent list
17783	// requests will have their own nextPageToken to continue paging through
17784	// the results.
17785	NextPageToken string `json:"nextPageToken,omitempty"`
17786
17787	// ServerResponse contains the HTTP response code and headers from the
17788	// server.
17789	googleapi.ServerResponse `json:"-"`
17790
17791	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
17792	// unconditionally include in API requests. By default, fields with
17793	// empty values are omitted from API requests. However, any non-pointer,
17794	// non-interface field appearing in ForceSendFields will be sent to the
17795	// server regardless of whether the field is empty or not. This may be
17796	// used to include empty fields in Patch requests.
17797	ForceSendFields []string `json:"-"`
17798
17799	// NullFields is a list of field names (e.g. "ManagedInstances") to
17800	// include in API requests with the JSON null value. By default, fields
17801	// with empty values are omitted from API requests. However, any field
17802	// with an empty value appearing in NullFields will be sent to the
17803	// server as null. It is an error if a field in this list has a
17804	// non-empty value. This may be used to include null fields in Patch
17805	// requests.
17806	NullFields []string `json:"-"`
17807}
17808
17809func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
17810	type NoMethod InstanceGroupManagersListManagedInstancesResponse
17811	raw := NoMethod(*s)
17812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17813}
17814
17815type InstanceGroupManagersListPerInstanceConfigsResp struct {
17816	// Items: [Output Only] The list of PerInstanceConfig.
17817	Items []*PerInstanceConfig `json:"items,omitempty"`
17818
17819	// NextPageToken: [Output Only] This token allows you to get the next
17820	// page of results for list requests. If the number of results is larger
17821	// than maxResults, use the nextPageToken as a value for the query
17822	// parameter pageToken in the next list request. Subsequent list
17823	// requests will have their own nextPageToken to continue paging through
17824	// the results.
17825	NextPageToken string `json:"nextPageToken,omitempty"`
17826
17827	// Warning: [Output Only] Informational warning message.
17828	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
17829
17830	// ServerResponse contains the HTTP response code and headers from the
17831	// server.
17832	googleapi.ServerResponse `json:"-"`
17833
17834	// ForceSendFields is a list of field names (e.g. "Items") to
17835	// unconditionally include in API requests. By default, fields with
17836	// empty values are omitted from API requests. However, any non-pointer,
17837	// non-interface field appearing in ForceSendFields will be sent to the
17838	// server regardless of whether the field is empty or not. This may be
17839	// used to include empty fields in Patch requests.
17840	ForceSendFields []string `json:"-"`
17841
17842	// NullFields is a list of field names (e.g. "Items") to include in API
17843	// requests with the JSON null value. By default, fields with empty
17844	// values are omitted from API requests. However, any field with an
17845	// empty value appearing in NullFields will be sent to the server as
17846	// null. It is an error if a field in this list has a non-empty value.
17847	// This may be used to include null fields in Patch requests.
17848	NullFields []string `json:"-"`
17849}
17850
17851func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
17852	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
17853	raw := NoMethod(*s)
17854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17855}
17856
17857// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
17858// Informational warning message.
17859type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
17860	// Code: [Output Only] A warning code, if applicable. For example,
17861	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17862	// the response.
17863	//
17864	// Possible values:
17865	//   "CLEANUP_FAILED"
17866	//   "DEPRECATED_RESOURCE_USED"
17867	//   "DEPRECATED_TYPE_USED"
17868	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17869	//   "EXPERIMENTAL_TYPE_USED"
17870	//   "EXTERNAL_API_WARNING"
17871	//   "FIELD_VALUE_OVERRIDEN"
17872	//   "INJECTED_KERNELS_DEPRECATED"
17873	//   "LARGE_DEPLOYMENT_WARNING"
17874	//   "MISSING_TYPE_DEPENDENCY"
17875	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17876	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17877	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17878	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17879	//   "NEXT_HOP_NOT_RUNNING"
17880	//   "NOT_CRITICAL_ERROR"
17881	//   "NO_RESULTS_ON_PAGE"
17882	//   "PARTIAL_SUCCESS"
17883	//   "REQUIRED_TOS_AGREEMENT"
17884	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17885	//   "RESOURCE_NOT_DELETED"
17886	//   "SCHEMA_VALIDATION_IGNORED"
17887	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17888	//   "UNDECLARED_PROPERTIES"
17889	//   "UNREACHABLE"
17890	Code string `json:"code,omitempty"`
17891
17892	// Data: [Output Only] Metadata about this warning in key: value format.
17893	// For example:
17894	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17895	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
17896
17897	// Message: [Output Only] A human-readable description of the warning
17898	// code.
17899	Message string `json:"message,omitempty"`
17900
17901	// ForceSendFields is a list of field names (e.g. "Code") to
17902	// unconditionally include in API requests. By default, fields with
17903	// empty values are omitted from API requests. However, any non-pointer,
17904	// non-interface field appearing in ForceSendFields will be sent to the
17905	// server regardless of whether the field is empty or not. This may be
17906	// used to include empty fields in Patch requests.
17907	ForceSendFields []string `json:"-"`
17908
17909	// NullFields is a list of field names (e.g. "Code") to include in API
17910	// requests with the JSON null value. By default, fields with empty
17911	// values are omitted from API requests. However, any field with an
17912	// empty value appearing in NullFields will be sent to the server as
17913	// null. It is an error if a field in this list has a non-empty value.
17914	// This may be used to include null fields in Patch requests.
17915	NullFields []string `json:"-"`
17916}
17917
17918func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
17919	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
17920	raw := NoMethod(*s)
17921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17922}
17923
17924type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
17925	// Key: [Output Only] A key that provides more detail on the warning
17926	// being returned. For example, for warnings where there are no results
17927	// in a list request for a particular zone, this key might be scope and
17928	// the key value might be the zone name. Other examples might be a key
17929	// indicating a deprecated resource and a suggested replacement, or a
17930	// warning about invalid network settings (for example, if an instance
17931	// attempts to perform IP forwarding but is not enabled for IP
17932	// forwarding).
17933	Key string `json:"key,omitempty"`
17934
17935	// Value: [Output Only] A warning data value corresponding to the key.
17936	Value string `json:"value,omitempty"`
17937
17938	// ForceSendFields is a list of field names (e.g. "Key") to
17939	// unconditionally include in API requests. By default, fields with
17940	// empty values are omitted from API requests. However, any non-pointer,
17941	// non-interface field appearing in ForceSendFields will be sent to the
17942	// server regardless of whether the field is empty or not. This may be
17943	// used to include empty fields in Patch requests.
17944	ForceSendFields []string `json:"-"`
17945
17946	// NullFields is a list of field names (e.g. "Key") to include in API
17947	// requests with the JSON null value. By default, fields with empty
17948	// values are omitted from API requests. However, any field with an
17949	// empty value appearing in NullFields will be sent to the server as
17950	// null. It is an error if a field in this list has a non-empty value.
17951	// This may be used to include null fields in Patch requests.
17952	NullFields []string `json:"-"`
17953}
17954
17955func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
17956	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
17957	raw := NoMethod(*s)
17958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17959}
17960
17961// InstanceGroupManagersPatchPerInstanceConfigsReq:
17962// InstanceGroupManagers.patchPerInstanceConfigs
17963type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
17964	// PerInstanceConfigs: The list of per-instance configs to insert or
17965	// patch on this managed instance group.
17966	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
17967
17968	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
17969	// to unconditionally include in API requests. By default, fields with
17970	// empty values are omitted from API requests. However, any non-pointer,
17971	// non-interface field appearing in ForceSendFields will be sent to the
17972	// server regardless of whether the field is empty or not. This may be
17973	// used to include empty fields in Patch requests.
17974	ForceSendFields []string `json:"-"`
17975
17976	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
17977	// include in API requests with the JSON null value. By default, fields
17978	// with empty values are omitted from API requests. However, any field
17979	// with an empty value appearing in NullFields will be sent to the
17980	// server as null. It is an error if a field in this list has a
17981	// non-empty value. This may be used to include null fields in Patch
17982	// requests.
17983	NullFields []string `json:"-"`
17984}
17985
17986func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17987	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
17988	raw := NoMethod(*s)
17989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17990}
17991
17992type InstanceGroupManagersRecreateInstancesRequest struct {
17993	// Instances: The URLs of one or more instances to recreate. This can be
17994	// a full URL or a partial URL, such as
17995	// zones/[ZONE]/instances/[INSTANCE_NAME].
17996	Instances []string `json:"instances,omitempty"`
17997
17998	// ForceSendFields is a list of field names (e.g. "Instances") to
17999	// unconditionally include in API requests. By default, fields with
18000	// empty values are omitted from API requests. However, any non-pointer,
18001	// non-interface field appearing in ForceSendFields will be sent to the
18002	// server regardless of whether the field is empty or not. This may be
18003	// used to include empty fields in Patch requests.
18004	ForceSendFields []string `json:"-"`
18005
18006	// NullFields is a list of field names (e.g. "Instances") to include in
18007	// API requests with the JSON null value. By default, fields with empty
18008	// values are omitted from API requests. However, any field with an
18009	// empty value appearing in NullFields will be sent to the server as
18010	// null. It is an error if a field in this list has a non-empty value.
18011	// This may be used to include null fields in Patch requests.
18012	NullFields []string `json:"-"`
18013}
18014
18015func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
18016	type NoMethod InstanceGroupManagersRecreateInstancesRequest
18017	raw := NoMethod(*s)
18018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18019}
18020
18021type InstanceGroupManagersResizeAdvancedRequest struct {
18022	// NoCreationRetries: If this flag is true, the managed instance group
18023	// attempts to create all instances initiated by this resize request
18024	// only once. If there is an error during creation, the managed instance
18025	// group does not retry create this instance, and we will decrease the
18026	// targetSize of the request instead. If the flag is false, the group
18027	// attempts to recreate each instance continuously until it
18028	// succeeds.
18029	//
18030	// This flag matters only in the first attempt of creation of an
18031	// instance. After an instance is successfully created while this flag
18032	// is enabled, the instance behaves the same way as all the other
18033	// instances created with a regular resize request. In particular, if a
18034	// running instance dies unexpectedly at a later time and needs to be
18035	// recreated, this mode does not affect the recreation behavior in that
18036	// scenario.
18037	//
18038	// This flag is applicable only to the current resize request. It does
18039	// not influence other resize requests in any way.
18040	//
18041	// You can see which instances is being creating in which mode by
18042	// calling the get or listManagedInstances API.
18043	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
18044
18045	// TargetSize: The number of running instances that the managed instance
18046	// group should maintain at any given time. The group automatically adds
18047	// or removes instances to maintain the number of instances specified by
18048	// this parameter.
18049	TargetSize int64 `json:"targetSize,omitempty"`
18050
18051	// ForceSendFields is a list of field names (e.g. "NoCreationRetries")
18052	// to unconditionally include in API requests. By default, fields with
18053	// empty values are omitted from API requests. However, any non-pointer,
18054	// non-interface field appearing in ForceSendFields will be sent to the
18055	// server regardless of whether the field is empty or not. This may be
18056	// used to include empty fields in Patch requests.
18057	ForceSendFields []string `json:"-"`
18058
18059	// NullFields is a list of field names (e.g. "NoCreationRetries") to
18060	// include in API requests with the JSON null value. By default, fields
18061	// with empty values are omitted from API requests. However, any field
18062	// with an empty value appearing in NullFields will be sent to the
18063	// server as null. It is an error if a field in this list has a
18064	// non-empty value. This may be used to include null fields in Patch
18065	// requests.
18066	NullFields []string `json:"-"`
18067}
18068
18069func (s *InstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
18070	type NoMethod InstanceGroupManagersResizeAdvancedRequest
18071	raw := NoMethod(*s)
18072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18073}
18074
18075type InstanceGroupManagersScopedList struct {
18076	// InstanceGroupManagers: [Output Only] The list of managed instance
18077	// groups that are contained in the specified project and zone.
18078	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
18079
18080	// Warning: [Output Only] The warning that replaces the list of managed
18081	// instance groups when the list is empty.
18082	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
18083
18084	// ForceSendFields is a list of field names (e.g.
18085	// "InstanceGroupManagers") to unconditionally include in API requests.
18086	// By default, fields with empty values are omitted from API requests.
18087	// However, any non-pointer, non-interface field appearing in
18088	// ForceSendFields will be sent to the server regardless of whether the
18089	// field is empty or not. This may be used to include empty fields in
18090	// Patch requests.
18091	ForceSendFields []string `json:"-"`
18092
18093	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
18094	// include in API requests with the JSON null value. By default, fields
18095	// with empty values are omitted from API requests. However, any field
18096	// with an empty value appearing in NullFields will be sent to the
18097	// server as null. It is an error if a field in this list has a
18098	// non-empty value. This may be used to include null fields in Patch
18099	// requests.
18100	NullFields []string `json:"-"`
18101}
18102
18103func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
18104	type NoMethod InstanceGroupManagersScopedList
18105	raw := NoMethod(*s)
18106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18107}
18108
18109// InstanceGroupManagersScopedListWarning: [Output Only] The warning
18110// that replaces the list of managed instance groups when the list is
18111// empty.
18112type InstanceGroupManagersScopedListWarning struct {
18113	// Code: [Output Only] A warning code, if applicable. For example,
18114	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18115	// the response.
18116	//
18117	// Possible values:
18118	//   "CLEANUP_FAILED"
18119	//   "DEPRECATED_RESOURCE_USED"
18120	//   "DEPRECATED_TYPE_USED"
18121	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18122	//   "EXPERIMENTAL_TYPE_USED"
18123	//   "EXTERNAL_API_WARNING"
18124	//   "FIELD_VALUE_OVERRIDEN"
18125	//   "INJECTED_KERNELS_DEPRECATED"
18126	//   "LARGE_DEPLOYMENT_WARNING"
18127	//   "MISSING_TYPE_DEPENDENCY"
18128	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18129	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18130	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18131	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18132	//   "NEXT_HOP_NOT_RUNNING"
18133	//   "NOT_CRITICAL_ERROR"
18134	//   "NO_RESULTS_ON_PAGE"
18135	//   "PARTIAL_SUCCESS"
18136	//   "REQUIRED_TOS_AGREEMENT"
18137	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18138	//   "RESOURCE_NOT_DELETED"
18139	//   "SCHEMA_VALIDATION_IGNORED"
18140	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18141	//   "UNDECLARED_PROPERTIES"
18142	//   "UNREACHABLE"
18143	Code string `json:"code,omitempty"`
18144
18145	// Data: [Output Only] Metadata about this warning in key: value format.
18146	// For example:
18147	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18148	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
18149
18150	// Message: [Output Only] A human-readable description of the warning
18151	// code.
18152	Message string `json:"message,omitempty"`
18153
18154	// ForceSendFields is a list of field names (e.g. "Code") to
18155	// unconditionally include in API requests. By default, fields with
18156	// empty values are omitted from API requests. However, any non-pointer,
18157	// non-interface field appearing in ForceSendFields will be sent to the
18158	// server regardless of whether the field is empty or not. This may be
18159	// used to include empty fields in Patch requests.
18160	ForceSendFields []string `json:"-"`
18161
18162	// NullFields is a list of field names (e.g. "Code") to include in API
18163	// requests with the JSON null value. By default, fields with empty
18164	// values are omitted from API requests. However, any field with an
18165	// empty value appearing in NullFields will be sent to the server as
18166	// null. It is an error if a field in this list has a non-empty value.
18167	// This may be used to include null fields in Patch requests.
18168	NullFields []string `json:"-"`
18169}
18170
18171func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
18172	type NoMethod InstanceGroupManagersScopedListWarning
18173	raw := NoMethod(*s)
18174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18175}
18176
18177type InstanceGroupManagersScopedListWarningData struct {
18178	// Key: [Output Only] A key that provides more detail on the warning
18179	// being returned. For example, for warnings where there are no results
18180	// in a list request for a particular zone, this key might be scope and
18181	// the key value might be the zone name. Other examples might be a key
18182	// indicating a deprecated resource and a suggested replacement, or a
18183	// warning about invalid network settings (for example, if an instance
18184	// attempts to perform IP forwarding but is not enabled for IP
18185	// forwarding).
18186	Key string `json:"key,omitempty"`
18187
18188	// Value: [Output Only] A warning data value corresponding to the key.
18189	Value string `json:"value,omitempty"`
18190
18191	// ForceSendFields is a list of field names (e.g. "Key") to
18192	// unconditionally include in API requests. By default, fields with
18193	// empty values are omitted from API requests. However, any non-pointer,
18194	// non-interface field appearing in ForceSendFields will be sent to the
18195	// server regardless of whether the field is empty or not. This may be
18196	// used to include empty fields in Patch requests.
18197	ForceSendFields []string `json:"-"`
18198
18199	// NullFields is a list of field names (e.g. "Key") to include in API
18200	// requests with the JSON null value. By default, fields with empty
18201	// values are omitted from API requests. However, any field with an
18202	// empty value appearing in NullFields will be sent to the server as
18203	// null. It is an error if a field in this list has a non-empty value.
18204	// This may be used to include null fields in Patch requests.
18205	NullFields []string `json:"-"`
18206}
18207
18208func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
18209	type NoMethod InstanceGroupManagersScopedListWarningData
18210	raw := NoMethod(*s)
18211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18212}
18213
18214type InstanceGroupManagersSetAutoHealingRequest struct {
18215	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
18216
18217	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
18218	// to unconditionally include in API requests. By default, fields with
18219	// empty values are omitted from API requests. However, any non-pointer,
18220	// non-interface field appearing in ForceSendFields will be sent to the
18221	// server regardless of whether the field is empty or not. This may be
18222	// used to include empty fields in Patch requests.
18223	ForceSendFields []string `json:"-"`
18224
18225	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
18226	// include in API requests with the JSON null value. By default, fields
18227	// with empty values are omitted from API requests. However, any field
18228	// with an empty value appearing in NullFields will be sent to the
18229	// server as null. It is an error if a field in this list has a
18230	// non-empty value. This may be used to include null fields in Patch
18231	// requests.
18232	NullFields []string `json:"-"`
18233}
18234
18235func (s *InstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
18236	type NoMethod InstanceGroupManagersSetAutoHealingRequest
18237	raw := NoMethod(*s)
18238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18239}
18240
18241type InstanceGroupManagersSetInstanceTemplateRequest struct {
18242	// InstanceTemplate: The URL of the instance template that is specified
18243	// for this managed instance group. The group uses this template to
18244	// create all new instances in the managed instance group. The templates
18245	// for existing instances in the group do not change unless you run
18246	// recreateInstances, run applyUpdatesToInstances, or set the group's
18247	// updatePolicy.type to PROACTIVE.
18248	InstanceTemplate string `json:"instanceTemplate,omitempty"`
18249
18250	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
18251	// unconditionally include in API requests. By default, fields with
18252	// empty values are omitted from API requests. However, any non-pointer,
18253	// non-interface field appearing in ForceSendFields will be sent to the
18254	// server regardless of whether the field is empty or not. This may be
18255	// used to include empty fields in Patch requests.
18256	ForceSendFields []string `json:"-"`
18257
18258	// NullFields is a list of field names (e.g. "InstanceTemplate") to
18259	// include in API requests with the JSON null value. By default, fields
18260	// with empty values are omitted from API requests. However, any field
18261	// with an empty value appearing in NullFields will be sent to the
18262	// server as null. It is an error if a field in this list has a
18263	// non-empty value. This may be used to include null fields in Patch
18264	// requests.
18265	NullFields []string `json:"-"`
18266}
18267
18268func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
18269	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
18270	raw := NoMethod(*s)
18271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18272}
18273
18274type InstanceGroupManagersSetTargetPoolsRequest struct {
18275	// Fingerprint: The fingerprint of the target pools information. Use
18276	// this optional property to prevent conflicts when multiple users
18277	// change the target pools settings concurrently. Obtain the fingerprint
18278	// with the instanceGroupManagers.get method. Then, include the
18279	// fingerprint in your request to ensure that you do not overwrite
18280	// changes that were applied from another concurrent request.
18281	Fingerprint string `json:"fingerprint,omitempty"`
18282
18283	// TargetPools: The list of target pool URLs that instances in this
18284	// managed instance group belong to. The managed instance group applies
18285	// these target pools to all of the instances in the group. Existing
18286	// instances and new instances in the group all receive these target
18287	// pool settings.
18288	TargetPools []string `json:"targetPools,omitempty"`
18289
18290	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
18291	// unconditionally include in API requests. By default, fields with
18292	// empty values are omitted from API requests. However, any non-pointer,
18293	// non-interface field appearing in ForceSendFields will be sent to the
18294	// server regardless of whether the field is empty or not. This may be
18295	// used to include empty fields in Patch requests.
18296	ForceSendFields []string `json:"-"`
18297
18298	// NullFields is a list of field names (e.g. "Fingerprint") to include
18299	// in API requests with the JSON null value. By default, fields with
18300	// empty values are omitted from API requests. However, any field with
18301	// an empty value appearing in NullFields will be sent to the server as
18302	// null. It is an error if a field in this list has a non-empty value.
18303	// This may be used to include null fields in Patch requests.
18304	NullFields []string `json:"-"`
18305}
18306
18307func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
18308	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
18309	raw := NoMethod(*s)
18310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18311}
18312
18313// InstanceGroupManagersUpdatePerInstanceConfigsReq:
18314// InstanceGroupManagers.updatePerInstanceConfigs
18315type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
18316	// PerInstanceConfigs: The list of per-instance configs to insert or
18317	// patch on this managed instance group.
18318	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
18319
18320	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
18321	// to unconditionally include in API requests. By default, fields with
18322	// empty values are omitted from API requests. However, any non-pointer,
18323	// non-interface field appearing in ForceSendFields will be sent to the
18324	// server regardless of whether the field is empty or not. This may be
18325	// used to include empty fields in Patch requests.
18326	ForceSendFields []string `json:"-"`
18327
18328	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
18329	// include in API requests with the JSON null value. By default, fields
18330	// with empty values are omitted from API requests. However, any field
18331	// with an empty value appearing in NullFields will be sent to the
18332	// server as null. It is an error if a field in this list has a
18333	// non-empty value. This may be used to include null fields in Patch
18334	// requests.
18335	NullFields []string `json:"-"`
18336}
18337
18338func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
18339	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
18340	raw := NoMethod(*s)
18341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18342}
18343
18344type InstanceGroupsAddInstancesRequest struct {
18345	// Instances: The list of instances to add to the instance group.
18346	Instances []*InstanceReference `json:"instances,omitempty"`
18347
18348	// ForceSendFields is a list of field names (e.g. "Instances") to
18349	// unconditionally include in API requests. By default, fields with
18350	// empty values are omitted from API requests. However, any non-pointer,
18351	// non-interface field appearing in ForceSendFields will be sent to the
18352	// server regardless of whether the field is empty or not. This may be
18353	// used to include empty fields in Patch requests.
18354	ForceSendFields []string `json:"-"`
18355
18356	// NullFields is a list of field names (e.g. "Instances") to include in
18357	// API requests with the JSON null value. By default, fields with empty
18358	// values are omitted from API requests. However, any field with an
18359	// empty value appearing in NullFields will be sent to the server as
18360	// null. It is an error if a field in this list has a non-empty value.
18361	// This may be used to include null fields in Patch requests.
18362	NullFields []string `json:"-"`
18363}
18364
18365func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
18366	type NoMethod InstanceGroupsAddInstancesRequest
18367	raw := NoMethod(*s)
18368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18369}
18370
18371type InstanceGroupsListInstances struct {
18372	// Id: [Output Only] Unique identifier for the resource; defined by the
18373	// server.
18374	Id string `json:"id,omitempty"`
18375
18376	// Items: A list of InstanceWithNamedPorts resources.
18377	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
18378
18379	// Kind: [Output Only] The resource type, which is always
18380	// compute#instanceGroupsListInstances for the list of instances in the
18381	// specified instance group.
18382	Kind string `json:"kind,omitempty"`
18383
18384	// NextPageToken: [Output Only] This token allows you to get the next
18385	// page of results for list requests. If the number of results is larger
18386	// than maxResults, use the nextPageToken as a value for the query
18387	// parameter pageToken in the next list request. Subsequent list
18388	// requests will have their own nextPageToken to continue paging through
18389	// the results.
18390	NextPageToken string `json:"nextPageToken,omitempty"`
18391
18392	// SelfLink: [Output Only] Server-defined URL for this resource.
18393	SelfLink string `json:"selfLink,omitempty"`
18394
18395	// Warning: [Output Only] Informational warning message.
18396	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
18397
18398	// ServerResponse contains the HTTP response code and headers from the
18399	// server.
18400	googleapi.ServerResponse `json:"-"`
18401
18402	// ForceSendFields is a list of field names (e.g. "Id") to
18403	// unconditionally include in API requests. By default, fields with
18404	// empty values are omitted from API requests. However, any non-pointer,
18405	// non-interface field appearing in ForceSendFields will be sent to the
18406	// server regardless of whether the field is empty or not. This may be
18407	// used to include empty fields in Patch requests.
18408	ForceSendFields []string `json:"-"`
18409
18410	// NullFields is a list of field names (e.g. "Id") to include in API
18411	// requests with the JSON null value. By default, fields with empty
18412	// values are omitted from API requests. However, any field with an
18413	// empty value appearing in NullFields will be sent to the server as
18414	// null. It is an error if a field in this list has a non-empty value.
18415	// This may be used to include null fields in Patch requests.
18416	NullFields []string `json:"-"`
18417}
18418
18419func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
18420	type NoMethod InstanceGroupsListInstances
18421	raw := NoMethod(*s)
18422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18423}
18424
18425// InstanceGroupsListInstancesWarning: [Output Only] Informational
18426// warning message.
18427type InstanceGroupsListInstancesWarning struct {
18428	// Code: [Output Only] A warning code, if applicable. For example,
18429	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18430	// the response.
18431	//
18432	// Possible values:
18433	//   "CLEANUP_FAILED"
18434	//   "DEPRECATED_RESOURCE_USED"
18435	//   "DEPRECATED_TYPE_USED"
18436	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18437	//   "EXPERIMENTAL_TYPE_USED"
18438	//   "EXTERNAL_API_WARNING"
18439	//   "FIELD_VALUE_OVERRIDEN"
18440	//   "INJECTED_KERNELS_DEPRECATED"
18441	//   "LARGE_DEPLOYMENT_WARNING"
18442	//   "MISSING_TYPE_DEPENDENCY"
18443	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18444	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18445	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18446	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18447	//   "NEXT_HOP_NOT_RUNNING"
18448	//   "NOT_CRITICAL_ERROR"
18449	//   "NO_RESULTS_ON_PAGE"
18450	//   "PARTIAL_SUCCESS"
18451	//   "REQUIRED_TOS_AGREEMENT"
18452	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18453	//   "RESOURCE_NOT_DELETED"
18454	//   "SCHEMA_VALIDATION_IGNORED"
18455	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18456	//   "UNDECLARED_PROPERTIES"
18457	//   "UNREACHABLE"
18458	Code string `json:"code,omitempty"`
18459
18460	// Data: [Output Only] Metadata about this warning in key: value format.
18461	// For example:
18462	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18463	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
18464
18465	// Message: [Output Only] A human-readable description of the warning
18466	// code.
18467	Message string `json:"message,omitempty"`
18468
18469	// ForceSendFields is a list of field names (e.g. "Code") to
18470	// unconditionally include in API requests. By default, fields with
18471	// empty values are omitted from API requests. However, any non-pointer,
18472	// non-interface field appearing in ForceSendFields will be sent to the
18473	// server regardless of whether the field is empty or not. This may be
18474	// used to include empty fields in Patch requests.
18475	ForceSendFields []string `json:"-"`
18476
18477	// NullFields is a list of field names (e.g. "Code") to include in API
18478	// requests with the JSON null value. By default, fields with empty
18479	// values are omitted from API requests. However, any field with an
18480	// empty value appearing in NullFields will be sent to the server as
18481	// null. It is an error if a field in this list has a non-empty value.
18482	// This may be used to include null fields in Patch requests.
18483	NullFields []string `json:"-"`
18484}
18485
18486func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
18487	type NoMethod InstanceGroupsListInstancesWarning
18488	raw := NoMethod(*s)
18489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18490}
18491
18492type InstanceGroupsListInstancesWarningData struct {
18493	// Key: [Output Only] A key that provides more detail on the warning
18494	// being returned. For example, for warnings where there are no results
18495	// in a list request for a particular zone, this key might be scope and
18496	// the key value might be the zone name. Other examples might be a key
18497	// indicating a deprecated resource and a suggested replacement, or a
18498	// warning about invalid network settings (for example, if an instance
18499	// attempts to perform IP forwarding but is not enabled for IP
18500	// forwarding).
18501	Key string `json:"key,omitempty"`
18502
18503	// Value: [Output Only] A warning data value corresponding to the key.
18504	Value string `json:"value,omitempty"`
18505
18506	// ForceSendFields is a list of field names (e.g. "Key") to
18507	// unconditionally include in API requests. By default, fields with
18508	// empty values are omitted from API requests. However, any non-pointer,
18509	// non-interface field appearing in ForceSendFields will be sent to the
18510	// server regardless of whether the field is empty or not. This may be
18511	// used to include empty fields in Patch requests.
18512	ForceSendFields []string `json:"-"`
18513
18514	// NullFields is a list of field names (e.g. "Key") to include in API
18515	// requests with the JSON null value. By default, fields with empty
18516	// values are omitted from API requests. However, any field with an
18517	// empty value appearing in NullFields will be sent to the server as
18518	// null. It is an error if a field in this list has a non-empty value.
18519	// This may be used to include null fields in Patch requests.
18520	NullFields []string `json:"-"`
18521}
18522
18523func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
18524	type NoMethod InstanceGroupsListInstancesWarningData
18525	raw := NoMethod(*s)
18526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18527}
18528
18529type InstanceGroupsListInstancesRequest struct {
18530	// InstanceState: A filter for the state of the instances in the
18531	// instance group. Valid options are ALL or RUNNING. If you do not
18532	// specify this parameter the list includes all instances regardless of
18533	// their state.
18534	//
18535	// Possible values:
18536	//   "ALL"
18537	//   "RUNNING"
18538	InstanceState string `json:"instanceState,omitempty"`
18539
18540	// ForceSendFields is a list of field names (e.g. "InstanceState") to
18541	// unconditionally include in API requests. By default, fields with
18542	// empty values are omitted from API requests. However, any non-pointer,
18543	// non-interface field appearing in ForceSendFields will be sent to the
18544	// server regardless of whether the field is empty or not. This may be
18545	// used to include empty fields in Patch requests.
18546	ForceSendFields []string `json:"-"`
18547
18548	// NullFields is a list of field names (e.g. "InstanceState") to include
18549	// in API requests with the JSON null value. By default, fields with
18550	// empty values are omitted from API requests. However, any field with
18551	// an empty value appearing in NullFields will be sent to the server as
18552	// null. It is an error if a field in this list has a non-empty value.
18553	// This may be used to include null fields in Patch requests.
18554	NullFields []string `json:"-"`
18555}
18556
18557func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
18558	type NoMethod InstanceGroupsListInstancesRequest
18559	raw := NoMethod(*s)
18560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18561}
18562
18563type InstanceGroupsRemoveInstancesRequest struct {
18564	// Instances: The list of instances to remove from the instance group.
18565	Instances []*InstanceReference `json:"instances,omitempty"`
18566
18567	// ForceSendFields is a list of field names (e.g. "Instances") to
18568	// unconditionally include in API requests. By default, fields with
18569	// empty values are omitted from API requests. However, any non-pointer,
18570	// non-interface field appearing in ForceSendFields will be sent to the
18571	// server regardless of whether the field is empty or not. This may be
18572	// used to include empty fields in Patch requests.
18573	ForceSendFields []string `json:"-"`
18574
18575	// NullFields is a list of field names (e.g. "Instances") to include in
18576	// API requests with the JSON null value. By default, fields with empty
18577	// values are omitted from API requests. However, any field with an
18578	// empty value appearing in NullFields will be sent to the server as
18579	// null. It is an error if a field in this list has a non-empty value.
18580	// This may be used to include null fields in Patch requests.
18581	NullFields []string `json:"-"`
18582}
18583
18584func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
18585	type NoMethod InstanceGroupsRemoveInstancesRequest
18586	raw := NoMethod(*s)
18587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18588}
18589
18590type InstanceGroupsScopedList struct {
18591	// InstanceGroups: [Output Only] The list of instance groups that are
18592	// contained in this scope.
18593	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
18594
18595	// Warning: [Output Only] An informational warning that replaces the
18596	// list of instance groups when the list is empty.
18597	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
18598
18599	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
18600	// unconditionally include in API requests. By default, fields with
18601	// empty values are omitted from API requests. However, any non-pointer,
18602	// non-interface field appearing in ForceSendFields will be sent to the
18603	// server regardless of whether the field is empty or not. This may be
18604	// used to include empty fields in Patch requests.
18605	ForceSendFields []string `json:"-"`
18606
18607	// NullFields is a list of field names (e.g. "InstanceGroups") to
18608	// include in API requests with the JSON null value. By default, fields
18609	// with empty values are omitted from API requests. However, any field
18610	// with an empty value appearing in NullFields will be sent to the
18611	// server as null. It is an error if a field in this list has a
18612	// non-empty value. This may be used to include null fields in Patch
18613	// requests.
18614	NullFields []string `json:"-"`
18615}
18616
18617func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
18618	type NoMethod InstanceGroupsScopedList
18619	raw := NoMethod(*s)
18620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18621}
18622
18623// InstanceGroupsScopedListWarning: [Output Only] An informational
18624// warning that replaces the list of instance groups when the list is
18625// empty.
18626type InstanceGroupsScopedListWarning struct {
18627	// Code: [Output Only] A warning code, if applicable. For example,
18628	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18629	// the response.
18630	//
18631	// Possible values:
18632	//   "CLEANUP_FAILED"
18633	//   "DEPRECATED_RESOURCE_USED"
18634	//   "DEPRECATED_TYPE_USED"
18635	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18636	//   "EXPERIMENTAL_TYPE_USED"
18637	//   "EXTERNAL_API_WARNING"
18638	//   "FIELD_VALUE_OVERRIDEN"
18639	//   "INJECTED_KERNELS_DEPRECATED"
18640	//   "LARGE_DEPLOYMENT_WARNING"
18641	//   "MISSING_TYPE_DEPENDENCY"
18642	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18643	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18644	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18645	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18646	//   "NEXT_HOP_NOT_RUNNING"
18647	//   "NOT_CRITICAL_ERROR"
18648	//   "NO_RESULTS_ON_PAGE"
18649	//   "PARTIAL_SUCCESS"
18650	//   "REQUIRED_TOS_AGREEMENT"
18651	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18652	//   "RESOURCE_NOT_DELETED"
18653	//   "SCHEMA_VALIDATION_IGNORED"
18654	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18655	//   "UNDECLARED_PROPERTIES"
18656	//   "UNREACHABLE"
18657	Code string `json:"code,omitempty"`
18658
18659	// Data: [Output Only] Metadata about this warning in key: value format.
18660	// For example:
18661	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18662	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
18663
18664	// Message: [Output Only] A human-readable description of the warning
18665	// code.
18666	Message string `json:"message,omitempty"`
18667
18668	// ForceSendFields is a list of field names (e.g. "Code") to
18669	// unconditionally include in API requests. By default, fields with
18670	// empty values are omitted from API requests. However, any non-pointer,
18671	// non-interface field appearing in ForceSendFields will be sent to the
18672	// server regardless of whether the field is empty or not. This may be
18673	// used to include empty fields in Patch requests.
18674	ForceSendFields []string `json:"-"`
18675
18676	// NullFields is a list of field names (e.g. "Code") to include in API
18677	// requests with the JSON null value. By default, fields with empty
18678	// values are omitted from API requests. However, any field with an
18679	// empty value appearing in NullFields will be sent to the server as
18680	// null. It is an error if a field in this list has a non-empty value.
18681	// This may be used to include null fields in Patch requests.
18682	NullFields []string `json:"-"`
18683}
18684
18685func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
18686	type NoMethod InstanceGroupsScopedListWarning
18687	raw := NoMethod(*s)
18688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18689}
18690
18691type InstanceGroupsScopedListWarningData struct {
18692	// Key: [Output Only] A key that provides more detail on the warning
18693	// being returned. For example, for warnings where there are no results
18694	// in a list request for a particular zone, this key might be scope and
18695	// the key value might be the zone name. Other examples might be a key
18696	// indicating a deprecated resource and a suggested replacement, or a
18697	// warning about invalid network settings (for example, if an instance
18698	// attempts to perform IP forwarding but is not enabled for IP
18699	// forwarding).
18700	Key string `json:"key,omitempty"`
18701
18702	// Value: [Output Only] A warning data value corresponding to the key.
18703	Value string `json:"value,omitempty"`
18704
18705	// ForceSendFields is a list of field names (e.g. "Key") to
18706	// unconditionally include in API requests. By default, fields with
18707	// empty values are omitted from API requests. However, any non-pointer,
18708	// non-interface field appearing in ForceSendFields will be sent to the
18709	// server regardless of whether the field is empty or not. This may be
18710	// used to include empty fields in Patch requests.
18711	ForceSendFields []string `json:"-"`
18712
18713	// NullFields is a list of field names (e.g. "Key") to include in API
18714	// requests with the JSON null value. By default, fields with empty
18715	// values are omitted from API requests. However, any field with an
18716	// empty value appearing in NullFields will be sent to the server as
18717	// null. It is an error if a field in this list has a non-empty value.
18718	// This may be used to include null fields in Patch requests.
18719	NullFields []string `json:"-"`
18720}
18721
18722func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
18723	type NoMethod InstanceGroupsScopedListWarningData
18724	raw := NoMethod(*s)
18725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18726}
18727
18728type InstanceGroupsSetNamedPortsRequest struct {
18729	// Fingerprint: The fingerprint of the named ports information for this
18730	// instance group. Use this optional property to prevent conflicts when
18731	// multiple users change the named ports settings concurrently. Obtain
18732	// the fingerprint with the instanceGroups.get method. Then, include the
18733	// fingerprint in your request to ensure that you do not overwrite
18734	// changes that were applied from another concurrent request. A request
18735	// with an incorrect fingerprint will fail with error 412
18736	// conditionNotMet.
18737	Fingerprint string `json:"fingerprint,omitempty"`
18738
18739	// NamedPorts: The list of named ports to set for this instance group.
18740	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
18741
18742	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
18743	// unconditionally include in API requests. By default, fields with
18744	// empty values are omitted from API requests. However, any non-pointer,
18745	// non-interface field appearing in ForceSendFields will be sent to the
18746	// server regardless of whether the field is empty or not. This may be
18747	// used to include empty fields in Patch requests.
18748	ForceSendFields []string `json:"-"`
18749
18750	// NullFields is a list of field names (e.g. "Fingerprint") to include
18751	// in API requests with the JSON null value. By default, fields with
18752	// empty values are omitted from API requests. However, any field with
18753	// an empty value appearing in NullFields will be sent to the server as
18754	// null. It is an error if a field in this list has a non-empty value.
18755	// This may be used to include null fields in Patch requests.
18756	NullFields []string `json:"-"`
18757}
18758
18759func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
18760	type NoMethod InstanceGroupsSetNamedPortsRequest
18761	raw := NoMethod(*s)
18762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18763}
18764
18765// InstanceList: Contains a list of instances.
18766type InstanceList struct {
18767	// Id: [Output Only] Unique identifier for the resource; defined by the
18768	// server.
18769	Id string `json:"id,omitempty"`
18770
18771	// Items: A list of Instance resources.
18772	Items []*Instance `json:"items,omitempty"`
18773
18774	// Kind: [Output Only] Type of resource. Always compute#instanceList for
18775	// lists of Instance resources.
18776	Kind string `json:"kind,omitempty"`
18777
18778	// NextPageToken: [Output Only] This token allows you to get the next
18779	// page of results for list requests. If the number of results is larger
18780	// than maxResults, use the nextPageToken as a value for the query
18781	// parameter pageToken in the next list request. Subsequent list
18782	// requests will have their own nextPageToken to continue paging through
18783	// the results.
18784	NextPageToken string `json:"nextPageToken,omitempty"`
18785
18786	// SelfLink: [Output Only] Server-defined URL for this resource.
18787	SelfLink string `json:"selfLink,omitempty"`
18788
18789	// Warning: [Output Only] Informational warning message.
18790	Warning *InstanceListWarning `json:"warning,omitempty"`
18791
18792	// ServerResponse contains the HTTP response code and headers from the
18793	// server.
18794	googleapi.ServerResponse `json:"-"`
18795
18796	// ForceSendFields is a list of field names (e.g. "Id") to
18797	// unconditionally include in API requests. By default, fields with
18798	// empty values are omitted from API requests. However, any non-pointer,
18799	// non-interface field appearing in ForceSendFields will be sent to the
18800	// server regardless of whether the field is empty or not. This may be
18801	// used to include empty fields in Patch requests.
18802	ForceSendFields []string `json:"-"`
18803
18804	// NullFields is a list of field names (e.g. "Id") to include in API
18805	// requests with the JSON null value. By default, fields with empty
18806	// values are omitted from API requests. However, any field with an
18807	// empty value appearing in NullFields will be sent to the server as
18808	// null. It is an error if a field in this list has a non-empty value.
18809	// This may be used to include null fields in Patch requests.
18810	NullFields []string `json:"-"`
18811}
18812
18813func (s *InstanceList) MarshalJSON() ([]byte, error) {
18814	type NoMethod InstanceList
18815	raw := NoMethod(*s)
18816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18817}
18818
18819// InstanceListWarning: [Output Only] Informational warning message.
18820type InstanceListWarning struct {
18821	// Code: [Output Only] A warning code, if applicable. For example,
18822	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18823	// the response.
18824	//
18825	// Possible values:
18826	//   "CLEANUP_FAILED"
18827	//   "DEPRECATED_RESOURCE_USED"
18828	//   "DEPRECATED_TYPE_USED"
18829	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18830	//   "EXPERIMENTAL_TYPE_USED"
18831	//   "EXTERNAL_API_WARNING"
18832	//   "FIELD_VALUE_OVERRIDEN"
18833	//   "INJECTED_KERNELS_DEPRECATED"
18834	//   "LARGE_DEPLOYMENT_WARNING"
18835	//   "MISSING_TYPE_DEPENDENCY"
18836	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18837	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18838	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18839	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18840	//   "NEXT_HOP_NOT_RUNNING"
18841	//   "NOT_CRITICAL_ERROR"
18842	//   "NO_RESULTS_ON_PAGE"
18843	//   "PARTIAL_SUCCESS"
18844	//   "REQUIRED_TOS_AGREEMENT"
18845	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18846	//   "RESOURCE_NOT_DELETED"
18847	//   "SCHEMA_VALIDATION_IGNORED"
18848	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18849	//   "UNDECLARED_PROPERTIES"
18850	//   "UNREACHABLE"
18851	Code string `json:"code,omitempty"`
18852
18853	// Data: [Output Only] Metadata about this warning in key: value format.
18854	// For example:
18855	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18856	Data []*InstanceListWarningData `json:"data,omitempty"`
18857
18858	// Message: [Output Only] A human-readable description of the warning
18859	// code.
18860	Message string `json:"message,omitempty"`
18861
18862	// ForceSendFields is a list of field names (e.g. "Code") to
18863	// unconditionally include in API requests. By default, fields with
18864	// empty values are omitted from API requests. However, any non-pointer,
18865	// non-interface field appearing in ForceSendFields will be sent to the
18866	// server regardless of whether the field is empty or not. This may be
18867	// used to include empty fields in Patch requests.
18868	ForceSendFields []string `json:"-"`
18869
18870	// NullFields is a list of field names (e.g. "Code") to include in API
18871	// requests with the JSON null value. By default, fields with empty
18872	// values are omitted from API requests. However, any field with an
18873	// empty value appearing in NullFields will be sent to the server as
18874	// null. It is an error if a field in this list has a non-empty value.
18875	// This may be used to include null fields in Patch requests.
18876	NullFields []string `json:"-"`
18877}
18878
18879func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
18880	type NoMethod InstanceListWarning
18881	raw := NoMethod(*s)
18882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18883}
18884
18885type InstanceListWarningData struct {
18886	// Key: [Output Only] A key that provides more detail on the warning
18887	// being returned. For example, for warnings where there are no results
18888	// in a list request for a particular zone, this key might be scope and
18889	// the key value might be the zone name. Other examples might be a key
18890	// indicating a deprecated resource and a suggested replacement, or a
18891	// warning about invalid network settings (for example, if an instance
18892	// attempts to perform IP forwarding but is not enabled for IP
18893	// forwarding).
18894	Key string `json:"key,omitempty"`
18895
18896	// Value: [Output Only] A warning data value corresponding to the key.
18897	Value string `json:"value,omitempty"`
18898
18899	// ForceSendFields is a list of field names (e.g. "Key") to
18900	// unconditionally include in API requests. By default, fields with
18901	// empty values are omitted from API requests. However, any non-pointer,
18902	// non-interface field appearing in ForceSendFields will be sent to the
18903	// server regardless of whether the field is empty or not. This may be
18904	// used to include empty fields in Patch requests.
18905	ForceSendFields []string `json:"-"`
18906
18907	// NullFields is a list of field names (e.g. "Key") to include in API
18908	// requests with the JSON null value. By default, fields with empty
18909	// values are omitted from API requests. However, any field with an
18910	// empty value appearing in NullFields will be sent to the server as
18911	// null. It is an error if a field in this list has a non-empty value.
18912	// This may be used to include null fields in Patch requests.
18913	NullFields []string `json:"-"`
18914}
18915
18916func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
18917	type NoMethod InstanceListWarningData
18918	raw := NoMethod(*s)
18919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18920}
18921
18922// InstanceListReferrers: Contains a list of instance referrers.
18923type InstanceListReferrers struct {
18924	// Id: [Output Only] Unique identifier for the resource; defined by the
18925	// server.
18926	Id string `json:"id,omitempty"`
18927
18928	// Items: A list of Reference resources.
18929	Items []*Reference `json:"items,omitempty"`
18930
18931	// Kind: [Output Only] Type of resource. Always
18932	// compute#instanceListReferrers for lists of Instance referrers.
18933	Kind string `json:"kind,omitempty"`
18934
18935	// NextPageToken: [Output Only] This token allows you to get the next
18936	// page of results for list requests. If the number of results is larger
18937	// than maxResults, use the nextPageToken as a value for the query
18938	// parameter pageToken in the next list request. Subsequent list
18939	// requests will have their own nextPageToken to continue paging through
18940	// the results.
18941	NextPageToken string `json:"nextPageToken,omitempty"`
18942
18943	// SelfLink: [Output Only] Server-defined URL for this resource.
18944	SelfLink string `json:"selfLink,omitempty"`
18945
18946	// Warning: [Output Only] Informational warning message.
18947	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
18948
18949	// ServerResponse contains the HTTP response code and headers from the
18950	// server.
18951	googleapi.ServerResponse `json:"-"`
18952
18953	// ForceSendFields is a list of field names (e.g. "Id") to
18954	// unconditionally include in API requests. By default, fields with
18955	// empty values are omitted from API requests. However, any non-pointer,
18956	// non-interface field appearing in ForceSendFields will be sent to the
18957	// server regardless of whether the field is empty or not. This may be
18958	// used to include empty fields in Patch requests.
18959	ForceSendFields []string `json:"-"`
18960
18961	// NullFields is a list of field names (e.g. "Id") to include in API
18962	// requests with the JSON null value. By default, fields with empty
18963	// values are omitted from API requests. However, any field with an
18964	// empty value appearing in NullFields will be sent to the server as
18965	// null. It is an error if a field in this list has a non-empty value.
18966	// This may be used to include null fields in Patch requests.
18967	NullFields []string `json:"-"`
18968}
18969
18970func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
18971	type NoMethod InstanceListReferrers
18972	raw := NoMethod(*s)
18973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18974}
18975
18976// InstanceListReferrersWarning: [Output Only] Informational warning
18977// message.
18978type InstanceListReferrersWarning struct {
18979	// Code: [Output Only] A warning code, if applicable. For example,
18980	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18981	// the response.
18982	//
18983	// Possible values:
18984	//   "CLEANUP_FAILED"
18985	//   "DEPRECATED_RESOURCE_USED"
18986	//   "DEPRECATED_TYPE_USED"
18987	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18988	//   "EXPERIMENTAL_TYPE_USED"
18989	//   "EXTERNAL_API_WARNING"
18990	//   "FIELD_VALUE_OVERRIDEN"
18991	//   "INJECTED_KERNELS_DEPRECATED"
18992	//   "LARGE_DEPLOYMENT_WARNING"
18993	//   "MISSING_TYPE_DEPENDENCY"
18994	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18995	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18996	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18997	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18998	//   "NEXT_HOP_NOT_RUNNING"
18999	//   "NOT_CRITICAL_ERROR"
19000	//   "NO_RESULTS_ON_PAGE"
19001	//   "PARTIAL_SUCCESS"
19002	//   "REQUIRED_TOS_AGREEMENT"
19003	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19004	//   "RESOURCE_NOT_DELETED"
19005	//   "SCHEMA_VALIDATION_IGNORED"
19006	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19007	//   "UNDECLARED_PROPERTIES"
19008	//   "UNREACHABLE"
19009	Code string `json:"code,omitempty"`
19010
19011	// Data: [Output Only] Metadata about this warning in key: value format.
19012	// For example:
19013	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19014	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
19015
19016	// Message: [Output Only] A human-readable description of the warning
19017	// code.
19018	Message string `json:"message,omitempty"`
19019
19020	// ForceSendFields is a list of field names (e.g. "Code") to
19021	// unconditionally include in API requests. By default, fields with
19022	// empty values are omitted from API requests. However, any non-pointer,
19023	// non-interface field appearing in ForceSendFields will be sent to the
19024	// server regardless of whether the field is empty or not. This may be
19025	// used to include empty fields in Patch requests.
19026	ForceSendFields []string `json:"-"`
19027
19028	// NullFields is a list of field names (e.g. "Code") to include in API
19029	// requests with the JSON null value. By default, fields with empty
19030	// values are omitted from API requests. However, any field with an
19031	// empty value appearing in NullFields will be sent to the server as
19032	// null. It is an error if a field in this list has a non-empty value.
19033	// This may be used to include null fields in Patch requests.
19034	NullFields []string `json:"-"`
19035}
19036
19037func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
19038	type NoMethod InstanceListReferrersWarning
19039	raw := NoMethod(*s)
19040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19041}
19042
19043type InstanceListReferrersWarningData struct {
19044	// Key: [Output Only] A key that provides more detail on the warning
19045	// being returned. For example, for warnings where there are no results
19046	// in a list request for a particular zone, this key might be scope and
19047	// the key value might be the zone name. Other examples might be a key
19048	// indicating a deprecated resource and a suggested replacement, or a
19049	// warning about invalid network settings (for example, if an instance
19050	// attempts to perform IP forwarding but is not enabled for IP
19051	// forwarding).
19052	Key string `json:"key,omitempty"`
19053
19054	// Value: [Output Only] A warning data value corresponding to the key.
19055	Value string `json:"value,omitempty"`
19056
19057	// ForceSendFields is a list of field names (e.g. "Key") to
19058	// unconditionally include in API requests. By default, fields with
19059	// empty values are omitted from API requests. However, any non-pointer,
19060	// non-interface field appearing in ForceSendFields will be sent to the
19061	// server regardless of whether the field is empty or not. This may be
19062	// used to include empty fields in Patch requests.
19063	ForceSendFields []string `json:"-"`
19064
19065	// NullFields is a list of field names (e.g. "Key") to include in API
19066	// requests with the JSON null value. By default, fields with empty
19067	// values are omitted from API requests. However, any field with an
19068	// empty value appearing in NullFields will be sent to the server as
19069	// null. It is an error if a field in this list has a non-empty value.
19070	// This may be used to include null fields in Patch requests.
19071	NullFields []string `json:"-"`
19072}
19073
19074func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
19075	type NoMethod InstanceListReferrersWarningData
19076	raw := NoMethod(*s)
19077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19078}
19079
19080type InstanceManagedByIgmError struct {
19081	// Error: [Output Only] Contents of the error.
19082	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
19083
19084	// InstanceActionDetails: [Output Only] Details of the instance action
19085	// that triggered this error. May be null, if the error was not caused
19086	// by an action on an instance. This field is optional.
19087	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
19088
19089	// Timestamp: [Output Only] The time that this error occurred. This
19090	// value is in RFC3339 text format.
19091	Timestamp string `json:"timestamp,omitempty"`
19092
19093	// ForceSendFields is a list of field names (e.g. "Error") to
19094	// unconditionally include in API requests. By default, fields with
19095	// empty values are omitted from API requests. However, any non-pointer,
19096	// non-interface field appearing in ForceSendFields will be sent to the
19097	// server regardless of whether the field is empty or not. This may be
19098	// used to include empty fields in Patch requests.
19099	ForceSendFields []string `json:"-"`
19100
19101	// NullFields is a list of field names (e.g. "Error") to include in API
19102	// requests with the JSON null value. By default, fields with empty
19103	// values are omitted from API requests. However, any field with an
19104	// empty value appearing in NullFields will be sent to the server as
19105	// null. It is an error if a field in this list has a non-empty value.
19106	// This may be used to include null fields in Patch requests.
19107	NullFields []string `json:"-"`
19108}
19109
19110func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
19111	type NoMethod InstanceManagedByIgmError
19112	raw := NoMethod(*s)
19113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19114}
19115
19116type InstanceManagedByIgmErrorInstanceActionDetails struct {
19117	// Action: [Output Only] Action that managed instance group was
19118	// executing on the instance when the error occurred. Possible values:
19119	//
19120	// Possible values:
19121	//   "ABANDONING"
19122	//   "CREATING"
19123	//   "CREATING_WITHOUT_RETRIES"
19124	//   "DELETING"
19125	//   "NONE"
19126	//   "RECREATING"
19127	//   "REFRESHING"
19128	//   "RESTARTING"
19129	//   "VERIFYING"
19130	Action string `json:"action,omitempty"`
19131
19132	// Instance: [Output Only] The URL of the instance. The URL can be set
19133	// even if the instance has not yet been created.
19134	Instance string `json:"instance,omitempty"`
19135
19136	// Version: [Output Only] Version this instance was created from, or was
19137	// being created from, but the creation failed. Corresponds to one of
19138	// the versions that were set on the Instance Group Manager resource at
19139	// the time this instance was being created.
19140	Version *ManagedInstanceVersion `json:"version,omitempty"`
19141
19142	// ForceSendFields is a list of field names (e.g. "Action") to
19143	// unconditionally include in API requests. By default, fields with
19144	// empty values are omitted from API requests. However, any non-pointer,
19145	// non-interface field appearing in ForceSendFields will be sent to the
19146	// server regardless of whether the field is empty or not. This may be
19147	// used to include empty fields in Patch requests.
19148	ForceSendFields []string `json:"-"`
19149
19150	// NullFields is a list of field names (e.g. "Action") to include in API
19151	// requests with the JSON null value. By default, fields with empty
19152	// values are omitted from API requests. However, any field with an
19153	// empty value appearing in NullFields will be sent to the server as
19154	// null. It is an error if a field in this list has a non-empty value.
19155	// This may be used to include null fields in Patch requests.
19156	NullFields []string `json:"-"`
19157}
19158
19159func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
19160	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
19161	raw := NoMethod(*s)
19162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19163}
19164
19165type InstanceManagedByIgmErrorManagedInstanceError struct {
19166	// Code: [Output Only] Error code.
19167	Code string `json:"code,omitempty"`
19168
19169	// Message: [Output Only] Error message.
19170	Message string `json:"message,omitempty"`
19171
19172	// ForceSendFields is a list of field names (e.g. "Code") to
19173	// unconditionally include in API requests. By default, fields with
19174	// empty values are omitted from API requests. However, any non-pointer,
19175	// non-interface field appearing in ForceSendFields will be sent to the
19176	// server regardless of whether the field is empty or not. This may be
19177	// used to include empty fields in Patch requests.
19178	ForceSendFields []string `json:"-"`
19179
19180	// NullFields is a list of field names (e.g. "Code") to include in API
19181	// requests with the JSON null value. By default, fields with empty
19182	// values are omitted from API requests. However, any field with an
19183	// empty value appearing in NullFields will be sent to the server as
19184	// null. It is an error if a field in this list has a non-empty value.
19185	// This may be used to include null fields in Patch requests.
19186	NullFields []string `json:"-"`
19187}
19188
19189func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
19190	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
19191	raw := NoMethod(*s)
19192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19193}
19194
19195type InstanceMoveRequest struct {
19196	// DestinationZone: The URL of the destination zone to move the
19197	// instance. This can be a full or partial URL. For example, the
19198	// following are all valid URLs to a zone:
19199	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
19200	//
19201	// - projects/project/zones/zone
19202	// - zones/zone
19203	DestinationZone string `json:"destinationZone,omitempty"`
19204
19205	// TargetInstance: The URL of the target instance to move. This can be a
19206	// full or partial URL. For example, the following are all valid URLs to
19207	// an instance:
19208	// -
19209	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
19210	//
19211	// - projects/project/zones/zone/instances/instance
19212	// - zones/zone/instances/instance
19213	TargetInstance string `json:"targetInstance,omitempty"`
19214
19215	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
19216	// unconditionally include in API requests. By default, fields with
19217	// empty values are omitted from API requests. However, any non-pointer,
19218	// non-interface field appearing in ForceSendFields will be sent to the
19219	// server regardless of whether the field is empty or not. This may be
19220	// used to include empty fields in Patch requests.
19221	ForceSendFields []string `json:"-"`
19222
19223	// NullFields is a list of field names (e.g. "DestinationZone") to
19224	// include in API requests with the JSON null value. By default, fields
19225	// with empty values are omitted from API requests. However, any field
19226	// with an empty value appearing in NullFields will be sent to the
19227	// server as null. It is an error if a field in this list has a
19228	// non-empty value. This may be used to include null fields in Patch
19229	// requests.
19230	NullFields []string `json:"-"`
19231}
19232
19233func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
19234	type NoMethod InstanceMoveRequest
19235	raw := NoMethod(*s)
19236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19237}
19238
19239type InstanceProperties struct {
19240	// AdvancedMachineFeatures: Controls for advanced machine-related
19241	// behavior features.
19242	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
19243
19244	// CanIpForward: Enables instances created based on these properties to
19245	// send packets with source IP addresses other than their own and
19246	// receive packets with destination IP addresses other than their own.
19247	// If these instances will be used as an IP gateway or it will be set as
19248	// the next-hop in a Route resource, specify true. If unsure, leave this
19249	// set to false. See the Enable IP forwarding documentation for more
19250	// information.
19251	CanIpForward bool `json:"canIpForward,omitempty"`
19252
19253	// ConfidentialInstanceConfig: Specifies the Confidential Instance
19254	// options.
19255	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
19256
19257	// Description: An optional text description for the instances that are
19258	// created from these properties.
19259	Description string `json:"description,omitempty"`
19260
19261	// Disks: An array of disks that are associated with the instances that
19262	// are created from these properties.
19263	Disks []*AttachedDisk `json:"disks,omitempty"`
19264
19265	// DisplayDevice: Display Device properties to enable support for remote
19266	// display products like: Teradici, VNC and TeamViewer
19267	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
19268
19269	// GuestAccelerators: A list of guest accelerator cards' type and count
19270	// to use for instances created from these properties.
19271	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
19272
19273	// Labels: Labels to apply to instances that are created from these
19274	// properties.
19275	Labels map[string]string `json:"labels,omitempty"`
19276
19277	// MachineType: The machine type to use for instances that are created
19278	// from these properties.
19279	MachineType string `json:"machineType,omitempty"`
19280
19281	// Metadata: The metadata key/value pairs to assign to instances that
19282	// are created from these properties. These pairs can consist of custom
19283	// metadata or predefined keys. See Project and instance metadata for
19284	// more information.
19285	Metadata *Metadata `json:"metadata,omitempty"`
19286
19287	// MinCpuPlatform: Minimum cpu/platform to be used by instances. The
19288	// instance may be scheduled on the specified or newer cpu/platform.
19289	// Applicable values are the friendly names of CPU platforms, such as
19290	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
19291	// Bridge". For more information, read Specifying a Minimum CPU
19292	// Platform.
19293	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
19294
19295	// NetworkInterfaces: An array of network access configurations for this
19296	// interface.
19297	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
19298
19299	NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"`
19300
19301	// PostKeyRevocationActionType: PostKeyRevocationActionType of the
19302	// instance.
19303	//
19304	// Possible values:
19305	//   "NOOP"
19306	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED"
19307	//   "SHUTDOWN"
19308	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
19309
19310	// PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs.
19311	// If not specified, use  INHERIT_FROM_SUBNETWORK as default.
19312	//
19313	// Possible values:
19314	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
19315	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
19316	//   "INHERIT_FROM_SUBNETWORK"
19317	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
19318
19319	// ReservationAffinity: Specifies the reservations that instances can
19320	// consume from.
19321	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
19322
19323	// ResourcePolicies: Resource policies (names, not ULRs) applied to
19324	// instances created from these properties.
19325	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19326
19327	// Scheduling: Specifies the scheduling options for the instances that
19328	// are created from these properties.
19329	Scheduling *Scheduling `json:"scheduling,omitempty"`
19330
19331	// ServiceAccounts: A list of service accounts with specified scopes.
19332	// Access tokens for these service accounts are available to the
19333	// instances that are created from these properties. Use metadata
19334	// queries to obtain the access tokens for these instances.
19335	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
19336
19337	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
19338
19339	// ShieldedVmConfig: Specifies the Shielded VM options for the instances
19340	// that are created from these properties.
19341	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
19342
19343	// Tags: A list of tags to apply to the instances that are created from
19344	// these properties. The tags identify valid sources or targets for
19345	// network firewalls. The setTags method can modify this list of tags.
19346	// Each tag within the list must comply with RFC1035.
19347	Tags *Tags `json:"tags,omitempty"`
19348
19349	// ForceSendFields is a list of field names (e.g.
19350	// "AdvancedMachineFeatures") to unconditionally include in API
19351	// requests. By default, fields with empty values are omitted from API
19352	// requests. However, any non-pointer, non-interface field appearing in
19353	// ForceSendFields will be sent to the server regardless of whether the
19354	// field is empty or not. This may be used to include empty fields in
19355	// Patch requests.
19356	ForceSendFields []string `json:"-"`
19357
19358	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
19359	// to include in API requests with the JSON null value. By default,
19360	// fields with empty values are omitted from API requests. However, any
19361	// field with an empty value appearing in NullFields will be sent to the
19362	// server as null. It is an error if a field in this list has a
19363	// non-empty value. This may be used to include null fields in Patch
19364	// requests.
19365	NullFields []string `json:"-"`
19366}
19367
19368func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
19369	type NoMethod InstanceProperties
19370	raw := NoMethod(*s)
19371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19372}
19373
19374type InstanceReference struct {
19375	// Instance: The URL for a specific instance.
19376	Instance string `json:"instance,omitempty"`
19377
19378	// ForceSendFields is a list of field names (e.g. "Instance") 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. "Instance") to include in
19387	// API 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 *InstanceReference) MarshalJSON() ([]byte, error) {
19396	type NoMethod InstanceReference
19397	raw := NoMethod(*s)
19398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19399}
19400
19401// InstanceTemplate: Represents an Instance Template resource.
19402//
19403// You can use instance templates to create VM instances and managed
19404// instance groups. For more information, read Instance Templates. (==
19405// resource_for {$api_version}.instanceTemplates ==)
19406type InstanceTemplate struct {
19407	// CreationTimestamp: [Output Only] The creation timestamp for this
19408	// instance template in RFC3339 text format.
19409	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19410
19411	// Description: An optional description of this resource. Provide this
19412	// property when you create the resource.
19413	Description string `json:"description,omitempty"`
19414
19415	// Id: [Output Only] A unique identifier for this instance template. The
19416	// server defines this identifier.
19417	Id uint64 `json:"id,omitempty,string"`
19418
19419	// Kind: [Output Only] The resource type, which is always
19420	// compute#instanceTemplate for instance templates.
19421	Kind string `json:"kind,omitempty"`
19422
19423	// Name: Name of the resource; provided by the client when the resource
19424	// is created. The name must be 1-63 characters long, and comply with
19425	// RFC1035. Specifically, the name must be 1-63 characters long and
19426	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19427	// the first character must be a lowercase letter, and all following
19428	// characters must be a dash, lowercase letter, or digit, except the
19429	// last character, which cannot be a dash.
19430	Name string `json:"name,omitempty"`
19431
19432	// Properties: The instance properties for this instance template.
19433	Properties *InstanceProperties `json:"properties,omitempty"`
19434
19435	// SelfLink: [Output Only] The URL for this instance template. The
19436	// server defines this URL.
19437	SelfLink string `json:"selfLink,omitempty"`
19438
19439	// SourceInstance: The source instance used to create the template. You
19440	// can provide this as a partial or full URL to the resource. For
19441	// example, the following are valid values:
19442	// -
19443	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
19444	//
19445	// - projects/project/zones/zone/instances/instance
19446	SourceInstance string `json:"sourceInstance,omitempty"`
19447
19448	// SourceInstanceParams: The source instance params to use to create
19449	// this instance template.
19450	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
19451
19452	// ServerResponse contains the HTTP response code and headers from the
19453	// server.
19454	googleapi.ServerResponse `json:"-"`
19455
19456	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19457	// to unconditionally include in API requests. By default, fields with
19458	// empty values are omitted from API requests. However, any non-pointer,
19459	// non-interface field appearing in ForceSendFields will be sent to the
19460	// server regardless of whether the field is empty or not. This may be
19461	// used to include empty fields in Patch requests.
19462	ForceSendFields []string `json:"-"`
19463
19464	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19465	// include in API requests with the JSON null value. By default, fields
19466	// with empty values are omitted from API requests. However, any field
19467	// with an empty value appearing in NullFields will be sent to the
19468	// server as null. It is an error if a field in this list has a
19469	// non-empty value. This may be used to include null fields in Patch
19470	// requests.
19471	NullFields []string `json:"-"`
19472}
19473
19474func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
19475	type NoMethod InstanceTemplate
19476	raw := NoMethod(*s)
19477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19478}
19479
19480// InstanceTemplateList: A list of instance templates.
19481type InstanceTemplateList struct {
19482	// Id: [Output Only] Unique identifier for the resource; defined by the
19483	// server.
19484	Id string `json:"id,omitempty"`
19485
19486	// Items: A list of InstanceTemplate resources.
19487	Items []*InstanceTemplate `json:"items,omitempty"`
19488
19489	// Kind: [Output Only] The resource type, which is always
19490	// compute#instanceTemplatesListResponse for instance template lists.
19491	Kind string `json:"kind,omitempty"`
19492
19493	// NextPageToken: [Output Only] This token allows you to get the next
19494	// page of results for list requests. If the number of results is larger
19495	// than maxResults, use the nextPageToken as a value for the query
19496	// parameter pageToken in the next list request. Subsequent list
19497	// requests will have their own nextPageToken to continue paging through
19498	// the results.
19499	NextPageToken string `json:"nextPageToken,omitempty"`
19500
19501	// SelfLink: [Output Only] Server-defined URL for this resource.
19502	SelfLink string `json:"selfLink,omitempty"`
19503
19504	// Warning: [Output Only] Informational warning message.
19505	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
19506
19507	// ServerResponse contains the HTTP response code and headers from the
19508	// server.
19509	googleapi.ServerResponse `json:"-"`
19510
19511	// ForceSendFields is a list of field names (e.g. "Id") to
19512	// unconditionally include in API requests. By default, fields with
19513	// empty values are omitted from API requests. However, any non-pointer,
19514	// non-interface field appearing in ForceSendFields will be sent to the
19515	// server regardless of whether the field is empty or not. This may be
19516	// used to include empty fields in Patch requests.
19517	ForceSendFields []string `json:"-"`
19518
19519	// NullFields is a list of field names (e.g. "Id") to include in API
19520	// requests with the JSON null value. By default, fields with empty
19521	// values are omitted from API requests. However, any field with an
19522	// empty value appearing in NullFields will be sent to the server as
19523	// null. It is an error if a field in this list has a non-empty value.
19524	// This may be used to include null fields in Patch requests.
19525	NullFields []string `json:"-"`
19526}
19527
19528func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
19529	type NoMethod InstanceTemplateList
19530	raw := NoMethod(*s)
19531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19532}
19533
19534// InstanceTemplateListWarning: [Output Only] Informational warning
19535// message.
19536type InstanceTemplateListWarning struct {
19537	// Code: [Output Only] A warning code, if applicable. For example,
19538	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19539	// the response.
19540	//
19541	// Possible values:
19542	//   "CLEANUP_FAILED"
19543	//   "DEPRECATED_RESOURCE_USED"
19544	//   "DEPRECATED_TYPE_USED"
19545	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19546	//   "EXPERIMENTAL_TYPE_USED"
19547	//   "EXTERNAL_API_WARNING"
19548	//   "FIELD_VALUE_OVERRIDEN"
19549	//   "INJECTED_KERNELS_DEPRECATED"
19550	//   "LARGE_DEPLOYMENT_WARNING"
19551	//   "MISSING_TYPE_DEPENDENCY"
19552	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19553	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19554	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19555	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19556	//   "NEXT_HOP_NOT_RUNNING"
19557	//   "NOT_CRITICAL_ERROR"
19558	//   "NO_RESULTS_ON_PAGE"
19559	//   "PARTIAL_SUCCESS"
19560	//   "REQUIRED_TOS_AGREEMENT"
19561	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19562	//   "RESOURCE_NOT_DELETED"
19563	//   "SCHEMA_VALIDATION_IGNORED"
19564	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19565	//   "UNDECLARED_PROPERTIES"
19566	//   "UNREACHABLE"
19567	Code string `json:"code,omitempty"`
19568
19569	// Data: [Output Only] Metadata about this warning in key: value format.
19570	// For example:
19571	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19572	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
19573
19574	// Message: [Output Only] A human-readable description of the warning
19575	// code.
19576	Message string `json:"message,omitempty"`
19577
19578	// ForceSendFields is a list of field names (e.g. "Code") to
19579	// unconditionally include in API requests. By default, fields with
19580	// empty values are omitted from API requests. However, any non-pointer,
19581	// non-interface field appearing in ForceSendFields will be sent to the
19582	// server regardless of whether the field is empty or not. This may be
19583	// used to include empty fields in Patch requests.
19584	ForceSendFields []string `json:"-"`
19585
19586	// NullFields is a list of field names (e.g. "Code") to include in API
19587	// requests with the JSON null value. By default, fields with empty
19588	// values are omitted from API requests. However, any field with an
19589	// empty value appearing in NullFields will be sent to the server as
19590	// null. It is an error if a field in this list has a non-empty value.
19591	// This may be used to include null fields in Patch requests.
19592	NullFields []string `json:"-"`
19593}
19594
19595func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
19596	type NoMethod InstanceTemplateListWarning
19597	raw := NoMethod(*s)
19598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19599}
19600
19601type InstanceTemplateListWarningData struct {
19602	// Key: [Output Only] A key that provides more detail on the warning
19603	// being returned. For example, for warnings where there are no results
19604	// in a list request for a particular zone, this key might be scope and
19605	// the key value might be the zone name. Other examples might be a key
19606	// indicating a deprecated resource and a suggested replacement, or a
19607	// warning about invalid network settings (for example, if an instance
19608	// attempts to perform IP forwarding but is not enabled for IP
19609	// forwarding).
19610	Key string `json:"key,omitempty"`
19611
19612	// Value: [Output Only] A warning data value corresponding to the key.
19613	Value string `json:"value,omitempty"`
19614
19615	// ForceSendFields is a list of field names (e.g. "Key") to
19616	// unconditionally include in API requests. By default, fields with
19617	// empty values are omitted from API requests. However, any non-pointer,
19618	// non-interface field appearing in ForceSendFields will be sent to the
19619	// server regardless of whether the field is empty or not. This may be
19620	// used to include empty fields in Patch requests.
19621	ForceSendFields []string `json:"-"`
19622
19623	// NullFields is a list of field names (e.g. "Key") to include in API
19624	// requests with the JSON null value. By default, fields with empty
19625	// values are omitted from API requests. However, any field with an
19626	// empty value appearing in NullFields will be sent to the server as
19627	// null. It is an error if a field in this list has a non-empty value.
19628	// This may be used to include null fields in Patch requests.
19629	NullFields []string `json:"-"`
19630}
19631
19632func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
19633	type NoMethod InstanceTemplateListWarningData
19634	raw := NoMethod(*s)
19635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19636}
19637
19638type InstanceWithNamedPorts struct {
19639	// Instance: [Output Only] The URL of the instance.
19640	Instance string `json:"instance,omitempty"`
19641
19642	// NamedPorts: [Output Only] The named ports that belong to this
19643	// instance group.
19644	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
19645
19646	// Status: [Output Only] The status of the instance.
19647	//
19648	// Possible values:
19649	//   "DEPROVISIONING"
19650	//   "PROVISIONING"
19651	//   "REPAIRING"
19652	//   "RUNNING"
19653	//   "STAGING"
19654	//   "STOPPED"
19655	//   "STOPPING"
19656	//   "SUSPENDED"
19657	//   "SUSPENDING"
19658	//   "TERMINATED"
19659	Status string `json:"status,omitempty"`
19660
19661	// ForceSendFields is a list of field names (e.g. "Instance") to
19662	// unconditionally include in API requests. By default, fields with
19663	// empty values are omitted from API requests. However, any non-pointer,
19664	// non-interface field appearing in ForceSendFields will be sent to the
19665	// server regardless of whether the field is empty or not. This may be
19666	// used to include empty fields in Patch requests.
19667	ForceSendFields []string `json:"-"`
19668
19669	// NullFields is a list of field names (e.g. "Instance") to include in
19670	// API requests with the JSON null value. By default, fields with empty
19671	// values are omitted from API requests. However, any field with an
19672	// empty value appearing in NullFields will be sent to the server as
19673	// null. It is an error if a field in this list has a non-empty value.
19674	// This may be used to include null fields in Patch requests.
19675	NullFields []string `json:"-"`
19676}
19677
19678func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
19679	type NoMethod InstanceWithNamedPorts
19680	raw := NoMethod(*s)
19681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19682}
19683
19684type InstancesAddResourcePoliciesRequest struct {
19685	// ResourcePolicies: Resource policies to be added to this instance.
19686	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19687
19688	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19689	// unconditionally include in API requests. By default, fields with
19690	// empty values are omitted from API requests. However, any non-pointer,
19691	// non-interface field appearing in ForceSendFields will be sent to the
19692	// server regardless of whether the field is empty or not. This may be
19693	// used to include empty fields in Patch requests.
19694	ForceSendFields []string `json:"-"`
19695
19696	// NullFields is a list of field names (e.g. "ResourcePolicies") to
19697	// include in API requests with the JSON null value. By default, fields
19698	// with empty values are omitted from API requests. However, any field
19699	// with an empty value appearing in NullFields will be sent to the
19700	// server as null. It is an error if a field in this list has a
19701	// non-empty value. This may be used to include null fields in Patch
19702	// requests.
19703	NullFields []string `json:"-"`
19704}
19705
19706func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
19707	type NoMethod InstancesAddResourcePoliciesRequest
19708	raw := NoMethod(*s)
19709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19710}
19711
19712type InstancesGetEffectiveFirewallsResponse struct {
19713	// FirewallPolicys: Effective firewalls from firewall policies.
19714	FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
19715
19716	// Firewalls: Effective firewalls on the instance.
19717	Firewalls []*Firewall `json:"firewalls,omitempty"`
19718
19719	// OrganizationFirewalls: Effective firewalls from organization
19720	// policies.
19721	OrganizationFirewalls []*InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
19722
19723	// ServerResponse contains the HTTP response code and headers from the
19724	// server.
19725	googleapi.ServerResponse `json:"-"`
19726
19727	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
19728	// unconditionally include in API requests. By default, fields with
19729	// empty values are omitted from API requests. However, any non-pointer,
19730	// non-interface field appearing in ForceSendFields will be sent to the
19731	// server regardless of whether the field is empty or not. This may be
19732	// used to include empty fields in Patch requests.
19733	ForceSendFields []string `json:"-"`
19734
19735	// NullFields is a list of field names (e.g. "FirewallPolicys") to
19736	// include in API requests with the JSON null value. By default, fields
19737	// with empty values are omitted from API requests. However, any field
19738	// with an empty value appearing in NullFields will be sent to the
19739	// server as null. It is an error if a field in this list has a
19740	// non-empty value. This may be used to include null fields in Patch
19741	// requests.
19742	NullFields []string `json:"-"`
19743}
19744
19745func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
19746	type NoMethod InstancesGetEffectiveFirewallsResponse
19747	raw := NoMethod(*s)
19748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19749}
19750
19751type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
19752	// DisplayName: [Output Only] Deprecated, please use short name instead.
19753	// The display name of the firewall policy.
19754	DisplayName string `json:"displayName,omitempty"`
19755
19756	// Name: [Output Only] The name of the firewall policy.
19757	Name string `json:"name,omitempty"`
19758
19759	// Rules: The rules that apply to the network.
19760	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
19761
19762	// ShortName: [Output Only] The short name of the firewall policy.
19763	ShortName string `json:"shortName,omitempty"`
19764
19765	// Type: [Output Only] The type of the firewall policy.
19766	//
19767	// Possible values:
19768	//   "HIERARCHY"
19769	//   "UNSPECIFIED"
19770	Type string `json:"type,omitempty"`
19771
19772	// ForceSendFields is a list of field names (e.g. "DisplayName") to
19773	// unconditionally include in API requests. By default, fields with
19774	// empty values are omitted from API requests. However, any non-pointer,
19775	// non-interface field appearing in ForceSendFields will be sent to the
19776	// server regardless of whether the field is empty or not. This may be
19777	// used to include empty fields in Patch requests.
19778	ForceSendFields []string `json:"-"`
19779
19780	// NullFields is a list of field names (e.g. "DisplayName") to include
19781	// in API requests with the JSON null value. By default, fields with
19782	// empty values are omitted from API requests. However, any field with
19783	// an empty value appearing in NullFields will be sent to the server as
19784	// null. It is an error if a field in this list has a non-empty value.
19785	// This may be used to include null fields in Patch requests.
19786	NullFields []string `json:"-"`
19787}
19788
19789func (s *InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
19790	type NoMethod InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
19791	raw := NoMethod(*s)
19792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19793}
19794
19795// InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
19796// pruned SecurityPolicy containing ID and any applicable firewall
19797// rules.
19798type InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
19799	// Id: The unique identifier for the security policy. This identifier is
19800	// defined by the server.
19801	Id uint64 `json:"id,omitempty,string"`
19802
19803	// Rules: The rules that apply to the network.
19804	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
19805
19806	// ForceSendFields is a list of field names (e.g. "Id") to
19807	// unconditionally include in API requests. By default, fields with
19808	// empty values are omitted from API requests. However, any non-pointer,
19809	// non-interface field appearing in ForceSendFields will be sent to the
19810	// server regardless of whether the field is empty or not. This may be
19811	// used to include empty fields in Patch requests.
19812	ForceSendFields []string `json:"-"`
19813
19814	// NullFields is a list of field names (e.g. "Id") to include in API
19815	// requests with the JSON null value. By default, fields with empty
19816	// values are omitted from API requests. However, any field with an
19817	// empty value appearing in NullFields will be sent to the server as
19818	// null. It is an error if a field in this list has a non-empty value.
19819	// This may be used to include null fields in Patch requests.
19820	NullFields []string `json:"-"`
19821}
19822
19823func (s *InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
19824	type NoMethod InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
19825	raw := NoMethod(*s)
19826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19827}
19828
19829type InstancesRemoveResourcePoliciesRequest struct {
19830	// ResourcePolicies: Resource policies to be removed from this instance.
19831	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19832
19833	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19834	// unconditionally include in API requests. By default, fields with
19835	// empty values are omitted from API requests. However, any non-pointer,
19836	// non-interface field appearing in ForceSendFields will be sent to the
19837	// server regardless of whether the field is empty or not. This may be
19838	// used to include empty fields in Patch requests.
19839	ForceSendFields []string `json:"-"`
19840
19841	// NullFields is a list of field names (e.g. "ResourcePolicies") to
19842	// include in API requests with the JSON null value. By default, fields
19843	// with empty values are omitted from API requests. However, any field
19844	// with an empty value appearing in NullFields will be sent to the
19845	// server as null. It is an error if a field in this list has a
19846	// non-empty value. This may be used to include null fields in Patch
19847	// requests.
19848	NullFields []string `json:"-"`
19849}
19850
19851func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
19852	type NoMethod InstancesRemoveResourcePoliciesRequest
19853	raw := NoMethod(*s)
19854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19855}
19856
19857type InstancesResumeRequest struct {
19858	// Disks: Array of disks associated with this instance that are
19859	// protected with a customer-supplied encryption key.
19860	//
19861	// In order to resume the instance, the disk url and its corresponding
19862	// key must be provided.
19863	//
19864	// If the disk is not protected with a customer-supplied encryption key
19865	// it should not be specified.
19866	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
19867
19868	// InstanceEncryptionKey: Decrypts data associated with an instance that
19869	// is protected with a customer-supplied encryption key.
19870	//
19871	// If the instance you are starting is protected with a
19872	// customer-supplied encryption key, the correct key must be provided
19873	// otherwise the instance resume will not succeed.
19874	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
19875
19876	// ForceSendFields is a list of field names (e.g. "Disks") to
19877	// unconditionally include in API requests. By default, fields with
19878	// empty values are omitted from API requests. However, any non-pointer,
19879	// non-interface field appearing in ForceSendFields will be sent to the
19880	// server regardless of whether the field is empty or not. This may be
19881	// used to include empty fields in Patch requests.
19882	ForceSendFields []string `json:"-"`
19883
19884	// NullFields is a list of field names (e.g. "Disks") to include in API
19885	// requests with the JSON null value. By default, fields with empty
19886	// values are omitted from API requests. However, any field with an
19887	// empty value appearing in NullFields will be sent to the server as
19888	// null. It is an error if a field in this list has a non-empty value.
19889	// This may be used to include null fields in Patch requests.
19890	NullFields []string `json:"-"`
19891}
19892
19893func (s *InstancesResumeRequest) MarshalJSON() ([]byte, error) {
19894	type NoMethod InstancesResumeRequest
19895	raw := NoMethod(*s)
19896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19897}
19898
19899type InstancesScopedList struct {
19900	// Instances: [Output Only] A list of instances contained in this scope.
19901	Instances []*Instance `json:"instances,omitempty"`
19902
19903	// Warning: [Output Only] Informational warning which replaces the list
19904	// of instances when the list is empty.
19905	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
19906
19907	// ForceSendFields is a list of field names (e.g. "Instances") to
19908	// unconditionally include in API requests. By default, fields with
19909	// empty values are omitted from API requests. However, any non-pointer,
19910	// non-interface field appearing in ForceSendFields will be sent to the
19911	// server regardless of whether the field is empty or not. This may be
19912	// used to include empty fields in Patch requests.
19913	ForceSendFields []string `json:"-"`
19914
19915	// NullFields is a list of field names (e.g. "Instances") to include in
19916	// API requests with the JSON null value. By default, fields with empty
19917	// values are omitted from API requests. However, any field with an
19918	// empty value appearing in NullFields will be sent to the server as
19919	// null. It is an error if a field in this list has a non-empty value.
19920	// This may be used to include null fields in Patch requests.
19921	NullFields []string `json:"-"`
19922}
19923
19924func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
19925	type NoMethod InstancesScopedList
19926	raw := NoMethod(*s)
19927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19928}
19929
19930// InstancesScopedListWarning: [Output Only] Informational warning which
19931// replaces the list of instances when the list is empty.
19932type InstancesScopedListWarning struct {
19933	// Code: [Output Only] A warning code, if applicable. For example,
19934	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19935	// the response.
19936	//
19937	// Possible values:
19938	//   "CLEANUP_FAILED"
19939	//   "DEPRECATED_RESOURCE_USED"
19940	//   "DEPRECATED_TYPE_USED"
19941	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19942	//   "EXPERIMENTAL_TYPE_USED"
19943	//   "EXTERNAL_API_WARNING"
19944	//   "FIELD_VALUE_OVERRIDEN"
19945	//   "INJECTED_KERNELS_DEPRECATED"
19946	//   "LARGE_DEPLOYMENT_WARNING"
19947	//   "MISSING_TYPE_DEPENDENCY"
19948	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19949	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19950	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19951	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19952	//   "NEXT_HOP_NOT_RUNNING"
19953	//   "NOT_CRITICAL_ERROR"
19954	//   "NO_RESULTS_ON_PAGE"
19955	//   "PARTIAL_SUCCESS"
19956	//   "REQUIRED_TOS_AGREEMENT"
19957	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19958	//   "RESOURCE_NOT_DELETED"
19959	//   "SCHEMA_VALIDATION_IGNORED"
19960	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19961	//   "UNDECLARED_PROPERTIES"
19962	//   "UNREACHABLE"
19963	Code string `json:"code,omitempty"`
19964
19965	// Data: [Output Only] Metadata about this warning in key: value format.
19966	// For example:
19967	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19968	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
19969
19970	// Message: [Output Only] A human-readable description of the warning
19971	// code.
19972	Message string `json:"message,omitempty"`
19973
19974	// ForceSendFields is a list of field names (e.g. "Code") to
19975	// unconditionally include in API requests. By default, fields with
19976	// empty values are omitted from API requests. However, any non-pointer,
19977	// non-interface field appearing in ForceSendFields will be sent to the
19978	// server regardless of whether the field is empty or not. This may be
19979	// used to include empty fields in Patch requests.
19980	ForceSendFields []string `json:"-"`
19981
19982	// NullFields is a list of field names (e.g. "Code") to include in API
19983	// requests with the JSON null value. By default, fields with empty
19984	// values are omitted from API requests. However, any field with an
19985	// empty value appearing in NullFields will be sent to the server as
19986	// null. It is an error if a field in this list has a non-empty value.
19987	// This may be used to include null fields in Patch requests.
19988	NullFields []string `json:"-"`
19989}
19990
19991func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
19992	type NoMethod InstancesScopedListWarning
19993	raw := NoMethod(*s)
19994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19995}
19996
19997type InstancesScopedListWarningData struct {
19998	// Key: [Output Only] A key that provides more detail on the warning
19999	// being returned. For example, for warnings where there are no results
20000	// in a list request for a particular zone, this key might be scope and
20001	// the key value might be the zone name. Other examples might be a key
20002	// indicating a deprecated resource and a suggested replacement, or a
20003	// warning about invalid network settings (for example, if an instance
20004	// attempts to perform IP forwarding but is not enabled for IP
20005	// forwarding).
20006	Key string `json:"key,omitempty"`
20007
20008	// Value: [Output Only] A warning data value corresponding to the key.
20009	Value string `json:"value,omitempty"`
20010
20011	// ForceSendFields is a list of field names (e.g. "Key") to
20012	// unconditionally include in API requests. By default, fields with
20013	// empty values are omitted from API requests. However, any non-pointer,
20014	// non-interface field appearing in ForceSendFields will be sent to the
20015	// server regardless of whether the field is empty or not. This may be
20016	// used to include empty fields in Patch requests.
20017	ForceSendFields []string `json:"-"`
20018
20019	// NullFields is a list of field names (e.g. "Key") to include in API
20020	// requests with the JSON null value. By default, fields with empty
20021	// values are omitted from API requests. However, any field with an
20022	// empty value appearing in NullFields will be sent to the server as
20023	// null. It is an error if a field in this list has a non-empty value.
20024	// This may be used to include null fields in Patch requests.
20025	NullFields []string `json:"-"`
20026}
20027
20028func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
20029	type NoMethod InstancesScopedListWarningData
20030	raw := NoMethod(*s)
20031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20032}
20033
20034type InstancesSetLabelsRequest struct {
20035	// LabelFingerprint: Fingerprint of the previous set of labels for this
20036	// resource, used to prevent conflicts. Provide the latest fingerprint
20037	// value when making a request to add or change labels.
20038	LabelFingerprint string `json:"labelFingerprint,omitempty"`
20039
20040	Labels map[string]string `json:"labels,omitempty"`
20041
20042	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
20043	// unconditionally include in API requests. By default, fields with
20044	// empty values are omitted from API requests. However, any non-pointer,
20045	// non-interface field appearing in ForceSendFields will be sent to the
20046	// server regardless of whether the field is empty or not. This may be
20047	// used to include empty fields in Patch requests.
20048	ForceSendFields []string `json:"-"`
20049
20050	// NullFields is a list of field names (e.g. "LabelFingerprint") to
20051	// include in API requests with the JSON null value. By default, fields
20052	// with empty values are omitted from API requests. However, any field
20053	// with an empty value appearing in NullFields will be sent to the
20054	// server as null. It is an error if a field in this list has a
20055	// non-empty value. This may be used to include null fields in Patch
20056	// requests.
20057	NullFields []string `json:"-"`
20058}
20059
20060func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
20061	type NoMethod InstancesSetLabelsRequest
20062	raw := NoMethod(*s)
20063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20064}
20065
20066type InstancesSetMachineResourcesRequest struct {
20067	// GuestAccelerators: A list of the type and count of accelerator cards
20068	// attached to the instance.
20069	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
20070
20071	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
20072	// to unconditionally include in API requests. By default, fields with
20073	// empty values are omitted from API requests. However, any non-pointer,
20074	// non-interface field appearing in ForceSendFields will be sent to the
20075	// server regardless of whether the field is empty or not. This may be
20076	// used to include empty fields in Patch requests.
20077	ForceSendFields []string `json:"-"`
20078
20079	// NullFields is a list of field names (e.g. "GuestAccelerators") to
20080	// include in API requests with the JSON null value. By default, fields
20081	// with empty values are omitted from API requests. However, any field
20082	// with an empty value appearing in NullFields will be sent to the
20083	// server as null. It is an error if a field in this list has a
20084	// non-empty value. This may be used to include null fields in Patch
20085	// requests.
20086	NullFields []string `json:"-"`
20087}
20088
20089func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
20090	type NoMethod InstancesSetMachineResourcesRequest
20091	raw := NoMethod(*s)
20092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20093}
20094
20095type InstancesSetMachineTypeRequest struct {
20096	// MachineType: Full or partial URL of the machine type resource. See
20097	// Machine Types for a full list of machine types. For example:
20098	// zones/us-central1-f/machineTypes/n1-standard-1
20099	MachineType string `json:"machineType,omitempty"`
20100
20101	// ForceSendFields is a list of field names (e.g. "MachineType") to
20102	// unconditionally include in API requests. By default, fields with
20103	// empty values are omitted from API requests. However, any non-pointer,
20104	// non-interface field appearing in ForceSendFields will be sent to the
20105	// server regardless of whether the field is empty or not. This may be
20106	// used to include empty fields in Patch requests.
20107	ForceSendFields []string `json:"-"`
20108
20109	// NullFields is a list of field names (e.g. "MachineType") to include
20110	// in API requests with the JSON null value. By default, fields with
20111	// empty values are omitted from API requests. However, any field with
20112	// an empty value appearing in NullFields will be sent to the server as
20113	// null. It is an error if a field in this list has a non-empty value.
20114	// This may be used to include null fields in Patch requests.
20115	NullFields []string `json:"-"`
20116}
20117
20118func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
20119	type NoMethod InstancesSetMachineTypeRequest
20120	raw := NoMethod(*s)
20121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20122}
20123
20124type InstancesSetMinCpuPlatformRequest struct {
20125	// MinCpuPlatform: Minimum cpu/platform this instance should be started
20126	// at.
20127	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
20128
20129	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
20130	// unconditionally include in API requests. By default, fields with
20131	// empty values are omitted from API requests. However, any non-pointer,
20132	// non-interface field appearing in ForceSendFields will be sent to the
20133	// server regardless of whether the field is empty or not. This may be
20134	// used to include empty fields in Patch requests.
20135	ForceSendFields []string `json:"-"`
20136
20137	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
20138	// include in API requests with the JSON null value. By default, fields
20139	// with empty values are omitted from API requests. However, any field
20140	// with an empty value appearing in NullFields will be sent to the
20141	// server as null. It is an error if a field in this list has a
20142	// non-empty value. This may be used to include null fields in Patch
20143	// requests.
20144	NullFields []string `json:"-"`
20145}
20146
20147func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
20148	type NoMethod InstancesSetMinCpuPlatformRequest
20149	raw := NoMethod(*s)
20150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20151}
20152
20153type InstancesSetNameRequest struct {
20154	// CurrentName: The current name of this resource, used to prevent
20155	// conflicts. Provide the latest name when making a request to change
20156	// name.
20157	CurrentName string `json:"currentName,omitempty"`
20158
20159	// Name: The name to be applied to the instance. Needs to be RFC 1035
20160	// compliant.
20161	Name string `json:"name,omitempty"`
20162
20163	// ForceSendFields is a list of field names (e.g. "CurrentName") to
20164	// unconditionally include in API requests. By default, fields with
20165	// empty values are omitted from API requests. However, any non-pointer,
20166	// non-interface field appearing in ForceSendFields will be sent to the
20167	// server regardless of whether the field is empty or not. This may be
20168	// used to include empty fields in Patch requests.
20169	ForceSendFields []string `json:"-"`
20170
20171	// NullFields is a list of field names (e.g. "CurrentName") to include
20172	// in API requests with the JSON null value. By default, fields with
20173	// empty values are omitted from API requests. However, any field with
20174	// an empty value appearing in NullFields will be sent to the server as
20175	// null. It is an error if a field in this list has a non-empty value.
20176	// This may be used to include null fields in Patch requests.
20177	NullFields []string `json:"-"`
20178}
20179
20180func (s *InstancesSetNameRequest) MarshalJSON() ([]byte, error) {
20181	type NoMethod InstancesSetNameRequest
20182	raw := NoMethod(*s)
20183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20184}
20185
20186type InstancesSetServiceAccountRequest struct {
20187	// Email: Email address of the service account.
20188	Email string `json:"email,omitempty"`
20189
20190	// Scopes: The list of scopes to be made available for this service
20191	// account.
20192	Scopes []string `json:"scopes,omitempty"`
20193
20194	// ForceSendFields is a list of field names (e.g. "Email") to
20195	// unconditionally include in API requests. By default, fields with
20196	// empty values are omitted from API requests. However, any non-pointer,
20197	// non-interface field appearing in ForceSendFields will be sent to the
20198	// server regardless of whether the field is empty or not. This may be
20199	// used to include empty fields in Patch requests.
20200	ForceSendFields []string `json:"-"`
20201
20202	// NullFields is a list of field names (e.g. "Email") to include in API
20203	// requests with the JSON null value. By default, fields with empty
20204	// values are omitted from API requests. However, any field with an
20205	// empty value appearing in NullFields will be sent to the server as
20206	// null. It is an error if a field in this list has a non-empty value.
20207	// This may be used to include null fields in Patch requests.
20208	NullFields []string `json:"-"`
20209}
20210
20211func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
20212	type NoMethod InstancesSetServiceAccountRequest
20213	raw := NoMethod(*s)
20214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20215}
20216
20217type InstancesStartWithEncryptionKeyRequest struct {
20218	// Disks: Array of disks associated with this instance that are
20219	// protected with a customer-supplied encryption key.
20220	//
20221	// In order to start the instance, the disk url and its corresponding
20222	// key must be provided.
20223	//
20224	// If the disk is not protected with a customer-supplied encryption key
20225	// it should not be specified.
20226	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
20227
20228	// ForceSendFields is a list of field names (e.g. "Disks") to
20229	// unconditionally include in API requests. By default, fields with
20230	// empty values are omitted from API requests. However, any non-pointer,
20231	// non-interface field appearing in ForceSendFields will be sent to the
20232	// server regardless of whether the field is empty or not. This may be
20233	// used to include empty fields in Patch requests.
20234	ForceSendFields []string `json:"-"`
20235
20236	// NullFields is a list of field names (e.g. "Disks") to include in API
20237	// requests with the JSON null value. By default, fields with empty
20238	// values are omitted from API requests. However, any field with an
20239	// empty value appearing in NullFields will be sent to the server as
20240	// null. It is an error if a field in this list has a non-empty value.
20241	// This may be used to include null fields in Patch requests.
20242	NullFields []string `json:"-"`
20243}
20244
20245func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
20246	type NoMethod InstancesStartWithEncryptionKeyRequest
20247	raw := NoMethod(*s)
20248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20249}
20250
20251// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
20252// must stay within the specified integer range.
20253type Int64RangeMatch struct {
20254	// RangeEnd: The end of the range (exclusive) in signed long integer
20255	// format.
20256	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
20257
20258	// RangeStart: The start of the range (inclusive) in signed long integer
20259	// format.
20260	RangeStart int64 `json:"rangeStart,omitempty,string"`
20261
20262	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
20263	// unconditionally include in API requests. By default, fields with
20264	// empty values are omitted from API requests. However, any non-pointer,
20265	// non-interface field appearing in ForceSendFields will be sent to the
20266	// server regardless of whether the field is empty or not. This may be
20267	// used to include empty fields in Patch requests.
20268	ForceSendFields []string `json:"-"`
20269
20270	// NullFields is a list of field names (e.g. "RangeEnd") to include in
20271	// API requests with the JSON null value. By default, fields with empty
20272	// values are omitted from API requests. However, any field with an
20273	// empty value appearing in NullFields will be sent to the server as
20274	// null. It is an error if a field in this list has a non-empty value.
20275	// This may be used to include null fields in Patch requests.
20276	NullFields []string `json:"-"`
20277}
20278
20279func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
20280	type NoMethod Int64RangeMatch
20281	raw := NoMethod(*s)
20282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20283}
20284
20285// Interconnect: Represents an Interconnect resource.
20286//
20287// An Interconnect resource is a dedicated connection between the GCP
20288// network and your on-premises network. For more information, read the
20289// Dedicated Interconnect Overview. (== resource_for
20290// {$api_version}.interconnects ==)
20291type Interconnect struct {
20292	// AdminEnabled: Administrative status of the interconnect. When this is
20293	// set to true, the Interconnect is functional and can carry traffic.
20294	// When set to false, no packets can be carried over the interconnect
20295	// and no BGP routes are exchanged over it. By default, the status is
20296	// set to true.
20297	AdminEnabled bool `json:"adminEnabled,omitempty"`
20298
20299	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
20300	// describe the individual circuits in this LAG.
20301	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
20302
20303	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20304	// format.
20305	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20306
20307	// CustomerName: Customer name, to put in the Letter of Authorization as
20308	// the party authorized to request a crossconnect.
20309	CustomerName string `json:"customerName,omitempty"`
20310
20311	// Description: An optional description of this resource. Provide this
20312	// property when you create the resource.
20313	Description string `json:"description,omitempty"`
20314
20315	// ExpectedOutages: [Output Only] A list of outages expected for this
20316	// Interconnect.
20317	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
20318
20319	// GoogleIpAddress: [Output Only] IP address configured on the Google
20320	// side of the Interconnect link. This can be used only for ping tests.
20321	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
20322
20323	// GoogleReferenceId: [Output Only] Google reference ID to be used when
20324	// raising support tickets with Google or otherwise to debug backend
20325	// connectivity issues.
20326	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
20327
20328	// Id: [Output Only] The unique identifier for the resource. This
20329	// identifier is defined by the server.
20330	Id uint64 `json:"id,omitempty,string"`
20331
20332	// InterconnectAttachments: [Output Only] A list of the URLs of all
20333	// InterconnectAttachments configured to use this Interconnect.
20334	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
20335
20336	// InterconnectType: Type of interconnect, which can take one of the
20337	// following values:
20338	// - PARTNER: A partner-managed interconnection shared between customers
20339	// though a partner.
20340	// - DEDICATED: A dedicated physical interconnection with the customer.
20341	// Note that a value IT_PRIVATE has been deprecated in favor of
20342	// DEDICATED.
20343	//
20344	// Possible values:
20345	//   "DEDICATED"
20346	//   "IT_PRIVATE"
20347	//   "PARTNER"
20348	InterconnectType string `json:"interconnectType,omitempty"`
20349
20350	// Kind: [Output Only] Type of the resource. Always compute#interconnect
20351	// for interconnects.
20352	Kind string `json:"kind,omitempty"`
20353
20354	// LabelFingerprint: A fingerprint for the labels being applied to this
20355	// Interconnect, which is essentially a hash of the labels set used for
20356	// optimistic locking. The fingerprint is initially generated by Compute
20357	// Engine and changes after every request to modify or update labels.
20358	// You must always provide an up-to-date fingerprint hash in order to
20359	// update or change labels, otherwise the request will fail with error
20360	// 412 conditionNotMet.
20361	//
20362	// To see the latest fingerprint, make a get() request to retrieve an
20363	// Interconnect.
20364	LabelFingerprint string `json:"labelFingerprint,omitempty"`
20365
20366	// Labels: Labels for this resource. These can only be added or modified
20367	// by the setLabels method. Each label key/value pair must comply with
20368	// RFC1035. Label values may be empty.
20369	Labels map[string]string `json:"labels,omitempty"`
20370
20371	// LinkType: Type of link requested, which can take one of the following
20372	// values:
20373	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
20374	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
20375	// that this field indicates the speed of each of the links in the
20376	// bundle, not the speed of the entire bundle.
20377	//
20378	// Possible values:
20379	//   "LINK_TYPE_ETHERNET_100G_LR"
20380	//   "LINK_TYPE_ETHERNET_10G_LR"
20381	LinkType string `json:"linkType,omitempty"`
20382
20383	// Location: URL of the InterconnectLocation object that represents
20384	// where this connection is to be provisioned.
20385	Location string `json:"location,omitempty"`
20386
20387	// Name: Name of the resource. Provided by the client when the resource
20388	// is created. The name must be 1-63 characters long, and comply with
20389	// RFC1035. Specifically, the name must be 1-63 characters long and
20390	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20391	// the first character must be a lowercase letter, and all following
20392	// characters must be a dash, lowercase letter, or digit, except the
20393	// last character, which cannot be a dash.
20394	Name string `json:"name,omitempty"`
20395
20396	// NocContactEmail: Email address to contact the customer NOC for
20397	// operations and maintenance notifications regarding this Interconnect.
20398	// If specified, this will be used for notifications in addition to all
20399	// other forms described, such as Stackdriver logs alerting and Cloud
20400	// Notifications.
20401	NocContactEmail string `json:"nocContactEmail,omitempty"`
20402
20403	// OperationalStatus: [Output Only] The current status of this
20404	// Interconnect's functionality, which can take one of the following
20405	// values:
20406	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
20407	// use. Attachments may be provisioned on this Interconnect.
20408	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
20409	// attachments may be provisioned on this Interconnect.
20410	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
20411	// maintenance. No attachments may be provisioned or updated on this
20412	// Interconnect.
20413	//
20414	// Possible values:
20415	//   "OS_ACTIVE"
20416	//   "OS_UNPROVISIONED"
20417	OperationalStatus string `json:"operationalStatus,omitempty"`
20418
20419	// PeerIpAddress: [Output Only] IP address configured on the customer
20420	// side of the Interconnect link. The customer should configure this IP
20421	// address during turnup when prompted by Google NOC. This can be used
20422	// only for ping tests.
20423	PeerIpAddress string `json:"peerIpAddress,omitempty"`
20424
20425	// ProvisionedLinkCount: [Output Only] Number of links actually
20426	// provisioned in this interconnect.
20427	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
20428
20429	// RequestedLinkCount: Target number of physical links in the link
20430	// bundle, as requested by the customer.
20431	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
20432
20433	// SelfLink: [Output Only] Server-defined URL for the resource.
20434	SelfLink string `json:"selfLink,omitempty"`
20435
20436	// State: [Output Only] The current state of Interconnect functionality,
20437	// which can take one of the following values:
20438	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
20439	// Attachments may be provisioned on this Interconnect.
20440	// - UNPROVISIONED: The Interconnect has not completed turnup. No
20441	// attachments may be provisioned on this Interconnect.
20442	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
20443	// maintenance. No attachments may be provisioned or updated on this
20444	// Interconnect.
20445	//
20446	// Possible values:
20447	//   "ACTIVE"
20448	//   "UNPROVISIONED"
20449	State string `json:"state,omitempty"`
20450
20451	// ServerResponse contains the HTTP response code and headers from the
20452	// server.
20453	googleapi.ServerResponse `json:"-"`
20454
20455	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
20456	// unconditionally include in API requests. By default, fields with
20457	// empty values are omitted from API requests. However, any non-pointer,
20458	// non-interface field appearing in ForceSendFields will be sent to the
20459	// server regardless of whether the field is empty or not. This may be
20460	// used to include empty fields in Patch requests.
20461	ForceSendFields []string `json:"-"`
20462
20463	// NullFields is a list of field names (e.g. "AdminEnabled") to include
20464	// in API requests with the JSON null value. By default, fields with
20465	// empty values are omitted from API requests. However, any field with
20466	// an empty value appearing in NullFields will be sent to the server as
20467	// null. It is an error if a field in this list has a non-empty value.
20468	// This may be used to include null fields in Patch requests.
20469	NullFields []string `json:"-"`
20470}
20471
20472func (s *Interconnect) MarshalJSON() ([]byte, error) {
20473	type NoMethod Interconnect
20474	raw := NoMethod(*s)
20475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20476}
20477
20478// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
20479// resource.
20480//
20481// You can use Interconnect attachments (VLANS) to connect your Virtual
20482// Private Cloud networks to your on-premises networks through an
20483// Interconnect. For more information, read  Creating VLAN Attachments.
20484// (== resource_for {$api_version}.interconnectAttachments ==)
20485type InterconnectAttachment struct {
20486	// AdminEnabled: Determines whether this Attachment will carry packets.
20487	// Not present for PARTNER_PROVIDER.
20488	AdminEnabled bool `json:"adminEnabled,omitempty"`
20489
20490	// Bandwidth: Provisioned bandwidth capacity for the interconnect
20491	// attachment. For attachments of type DEDICATED, the user can set the
20492	// bandwidth. For attachments of type PARTNER, the Google Partner that
20493	// is operating the interconnect must set the bandwidth. Output only for
20494	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
20495	// take one of the following values:
20496	// - BPS_50M: 50 Mbit/s
20497	// - BPS_100M: 100 Mbit/s
20498	// - BPS_200M: 200 Mbit/s
20499	// - BPS_300M: 300 Mbit/s
20500	// - BPS_400M: 400 Mbit/s
20501	// - BPS_500M: 500 Mbit/s
20502	// - BPS_1G: 1 Gbit/s
20503	// - BPS_2G: 2 Gbit/s
20504	// - BPS_5G: 5 Gbit/s
20505	// - BPS_10G: 10 Gbit/s
20506	// - BPS_20G: 20 Gbit/s
20507	// - BPS_50G: 50 Gbit/s
20508	//
20509	// Possible values:
20510	//   "BPS_100M"
20511	//   "BPS_10G"
20512	//   "BPS_1G"
20513	//   "BPS_200M"
20514	//   "BPS_20G"
20515	//   "BPS_2G"
20516	//   "BPS_300M"
20517	//   "BPS_400M"
20518	//   "BPS_500M"
20519	//   "BPS_50G"
20520	//   "BPS_50M"
20521	//   "BPS_5G"
20522	Bandwidth string `json:"bandwidth,omitempty"`
20523
20524	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
20525	// restrict the allocation of cloudRouterIpAddress and
20526	// customerRouterIpAddress for this attachment. All prefixes must be
20527	// within link-local address space (169.254.0.0/16) and must be /29 or
20528	// shorter (/28, /27, etc). Google will attempt to select an unused /29
20529	// from the supplied candidate prefix(es). The request will fail if all
20530	// possible /29s are in use on Google's edge. If not supplied, Google
20531	// will randomly select an unused /29 from all of link-local space.
20532	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
20533
20534	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
20535	// be configured on Cloud Router Interface for this interconnect
20536	// attachment.
20537	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
20538
20539	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20540	// format.
20541	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20542
20543	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
20544	// to be configured on the customer router subinterface for this
20545	// interconnect attachment.
20546	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
20547
20548	// DataplaneVersion: [Output Only] Dataplane version for this
20549	// InterconnectAttachment.
20550	DataplaneVersion int64 `json:"dataplaneVersion,omitempty"`
20551
20552	// Description: An optional description of this resource.
20553	Description string `json:"description,omitempty"`
20554
20555	// EdgeAvailabilityDomain: Desired availability domain for the
20556	// attachment. Only available for type PARTNER, at creation time, and
20557	// can take one of the following values:
20558	// - AVAILABILITY_DOMAIN_ANY
20559	// - AVAILABILITY_DOMAIN_1
20560	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
20561	// configure a pair of attachments, one per availability domain. The
20562	// selected availability domain will be provided to the Partner via the
20563	// pairing key, so that the provisioned circuit will lie in the
20564	// specified domain. If not specified, the value will default to
20565	// AVAILABILITY_DOMAIN_ANY.
20566	//
20567	// Possible values:
20568	//   "AVAILABILITY_DOMAIN_1"
20569	//   "AVAILABILITY_DOMAIN_2"
20570	//   "AVAILABILITY_DOMAIN_ANY"
20571	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
20572
20573	// Encryption: Indicates the user-supplied encryption option of this
20574	// VLAN attachment (interconnectAttachment). Can only be specified at
20575	// attachment creation for PARTNER or DEDICATED attachments. Possible
20576	// values are:
20577	// - NONE - This is the default value, which means that the VLAN
20578	// attachment carries unencrypted traffic. VMs are able to send traffic
20579	// to, or receive traffic from, such a VLAN attachment.
20580	// - IPSEC - The VLAN attachment carries only encrypted traffic that is
20581	// encrypted by an IPsec device, such as an HA VPN gateway or
20582	// third-party IPsec VPN. VMs cannot directly send traffic to, or
20583	// receive traffic from, such a VLAN attachment. To use IPsec-encrypted
20584	// Cloud Interconnect, the VLAN attachment must be created with this
20585	// option.
20586	// Not currently available publicly.
20587	//
20588	// Possible values:
20589	//   "IPSEC"
20590	//   "NONE"
20591	Encryption string `json:"encryption,omitempty"`
20592
20593	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
20594	// raising support tickets with Google or otherwise to debug backend
20595	// connectivity issues. [Deprecated] This field is not used.
20596	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
20597
20598	// Id: [Output Only] The unique identifier for the resource. This
20599	// identifier is defined by the server.
20600	Id uint64 `json:"id,omitempty,string"`
20601
20602	// Interconnect: URL of the underlying Interconnect object that this
20603	// attachment's traffic will traverse through.
20604	Interconnect string `json:"interconnect,omitempty"`
20605
20606	// IpsecInternalAddresses: List of URL of addresses that have been
20607	// reserved for the VLAN attachment. Used only for the VLAN attachment
20608	// that has the encryption option as IPSEC. The addresses must be
20609	// regional internal IP address ranges. When creating an HA VPN gateway
20610	// over the VLAN attachment, if the attachment is configured to use a
20611	// regional internal IP address, then the VPN gateway's IP address is
20612	// allocated from the IP address range specified here. For example, if
20613	// the HA VPN gateway's interface 0 is paired to this VLAN attachment,
20614	// then a regional internal IP address for the VPN gateway interface 0
20615	// will be allocated from the IP address specified for this VLAN
20616	// attachment. If this field is not specified when creating the VLAN
20617	// attachment, then later on when creating an HA VPN gateway on this
20618	// VLAN attachment, the HA VPN gateway's IP address is allocated from
20619	// the regional external IP address pool.
20620	// Not currently available publicly.
20621	IpsecInternalAddresses []string `json:"ipsecInternalAddresses,omitempty"`
20622
20623	// Kind: [Output Only] Type of the resource. Always
20624	// compute#interconnectAttachment for interconnect attachments.
20625	Kind string `json:"kind,omitempty"`
20626
20627	// LabelFingerprint: A fingerprint for the labels being applied to this
20628	// InterconnectAttachment, which is essentially a hash of the labels set
20629	// used for optimistic locking. The fingerprint is initially generated
20630	// by Compute Engine and changes after every request to modify or update
20631	// labels. You must always provide an up-to-date fingerprint hash in
20632	// order to update or change labels, otherwise the request will fail
20633	// with error 412 conditionNotMet.
20634	//
20635	// To see the latest fingerprint, make a get() request to retrieve an
20636	// InterconnectAttachment.
20637	LabelFingerprint string `json:"labelFingerprint,omitempty"`
20638
20639	// Labels: Labels for this resource. These can only be added or modified
20640	// by the setLabels method. Each label key/value pair must comply with
20641	// RFC1035. Label values may be empty.
20642	Labels map[string]string `json:"labels,omitempty"`
20643
20644	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing
20645	// through this interconnect attachment. Only 1440 and 1500 are allowed.
20646	// If not specified, the value will default to 1440.
20647	Mtu int64 `json:"mtu,omitempty"`
20648
20649	// Name: Name of the resource. Provided by the client when the resource
20650	// is created. The name must be 1-63 characters long, and comply with
20651	// RFC1035. Specifically, the name must be 1-63 characters long and
20652	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20653	// the first character must be a lowercase letter, and all following
20654	// characters must be a dash, lowercase letter, or digit, except the
20655	// last character, which cannot be a dash.
20656	Name string `json:"name,omitempty"`
20657
20658	// OperationalStatus: [Output Only] The current status of whether or not
20659	// this interconnect attachment is functional, which can take one of the
20660	// following values:
20661	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
20662	//
20663	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
20664	// turnup is not complete.
20665	//
20666	// Possible values:
20667	//   "OS_ACTIVE"
20668	//   "OS_UNPROVISIONED"
20669	OperationalStatus string `json:"operationalStatus,omitempty"`
20670
20671	// PairingKey: [Output only for type PARTNER. Input only for
20672	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
20673	// of an PARTNER attachment used to initiate provisioning with a
20674	// selected partner. Of the form "XXXXX/region/domain"
20675	PairingKey string `json:"pairingKey,omitempty"`
20676
20677	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
20678	// Partner if they configured BGP on behalf of the customer. Output only
20679	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
20680	// DEDICATED.
20681	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
20682
20683	// PartnerMetadata: Informational metadata about Partner attachments
20684	// from Partners to display to customers. Output only for for PARTNER
20685	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
20686	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
20687
20688	// PrivateInterconnectInfo: [Output Only] Information specific to an
20689	// InterconnectAttachment. This property is populated if the
20690	// interconnect that this is attached to is of type DEDICATED.
20691	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
20692
20693	// Region: [Output Only] URL of the region where the regional
20694	// interconnect attachment resides. You must specify this field as part
20695	// of the HTTP request URL. It is not settable as a field in the request
20696	// body.
20697	Region string `json:"region,omitempty"`
20698
20699	// Router: URL of the Cloud Router to be used for dynamic routing. This
20700	// router must be in the same region as this InterconnectAttachment. The
20701	// InterconnectAttachment will automatically connect the Interconnect to
20702	// the network & region within which the Cloud Router is configured.
20703	Router string `json:"router,omitempty"`
20704
20705	// SelfLink: [Output Only] Server-defined URL for the resource.
20706	SelfLink string `json:"selfLink,omitempty"`
20707
20708	// State: [Output Only] The current state of this attachment's
20709	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
20710	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
20711	// attachments, while enum values PENDING_PARTNER,
20712	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
20713	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
20714	// take one of the following values:
20715	// - ACTIVE: The attachment has been turned up and is ready to use.
20716	// - UNPROVISIONED: The attachment is not ready to use yet, because
20717	// turnup is not complete.
20718	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
20719	// yet been configured on the Partner side.
20720	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
20721	// provisioning after a PARTNER_PROVIDER attachment was created that
20722	// references it.
20723	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
20724	// waiting for a customer to activate it.
20725	// - DEFUNCT: The attachment was deleted externally and is no longer
20726	// functional. This could be because the associated Interconnect was
20727	// removed, or because the other side of a Partner attachment was
20728	// deleted.
20729	//
20730	// Possible values:
20731	//   "ACTIVE"
20732	//   "DEFUNCT"
20733	//   "PARTNER_REQUEST_RECEIVED"
20734	//   "PENDING_CUSTOMER"
20735	//   "PENDING_PARTNER"
20736	//   "STATE_UNSPECIFIED"
20737	//   "UNPROVISIONED"
20738	State string `json:"state,omitempty"`
20739
20740	// Type: The type of interconnect attachment this is, which can take one
20741	// of the following values:
20742	// - DEDICATED: an attachment to a Dedicated Interconnect.
20743	// - PARTNER: an attachment to a Partner Interconnect, created by the
20744	// customer.
20745	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
20746	// by the partner.
20747	//
20748	// Possible values:
20749	//   "DEDICATED"
20750	//   "PARTNER"
20751	//   "PARTNER_PROVIDER"
20752	Type string `json:"type,omitempty"`
20753
20754	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
20755	// range 2-4094. Only specified at creation time.
20756	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
20757
20758	// ServerResponse contains the HTTP response code and headers from the
20759	// server.
20760	googleapi.ServerResponse `json:"-"`
20761
20762	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
20763	// unconditionally include in API requests. By default, fields with
20764	// empty values are omitted from API requests. However, any non-pointer,
20765	// non-interface field appearing in ForceSendFields will be sent to the
20766	// server regardless of whether the field is empty or not. This may be
20767	// used to include empty fields in Patch requests.
20768	ForceSendFields []string `json:"-"`
20769
20770	// NullFields is a list of field names (e.g. "AdminEnabled") to include
20771	// in API requests with the JSON null value. By default, fields with
20772	// empty values are omitted from API requests. However, any field with
20773	// an empty value appearing in NullFields will be sent to the server as
20774	// null. It is an error if a field in this list has a non-empty value.
20775	// This may be used to include null fields in Patch requests.
20776	NullFields []string `json:"-"`
20777}
20778
20779func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
20780	type NoMethod InterconnectAttachment
20781	raw := NoMethod(*s)
20782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20783}
20784
20785type InterconnectAttachmentAggregatedList struct {
20786	// Id: [Output Only] Unique identifier for the resource; defined by the
20787	// server.
20788	Id string `json:"id,omitempty"`
20789
20790	// Items: A list of InterconnectAttachmentsScopedList resources.
20791	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
20792
20793	// Kind: [Output Only] Type of resource. Always
20794	// compute#interconnectAttachmentAggregatedList for aggregated lists of
20795	// interconnect attachments.
20796	Kind string `json:"kind,omitempty"`
20797
20798	// NextPageToken: [Output Only] This token allows you to get the next
20799	// page of results for list requests. If the number of results is larger
20800	// than maxResults, use the nextPageToken as a value for the query
20801	// parameter pageToken in the next list request. Subsequent list
20802	// requests will have their own nextPageToken to continue paging through
20803	// the results.
20804	NextPageToken string `json:"nextPageToken,omitempty"`
20805
20806	// SelfLink: [Output Only] Server-defined URL for this resource.
20807	SelfLink string `json:"selfLink,omitempty"`
20808
20809	// Unreachables: [Output Only] Unreachable resources.
20810	Unreachables []string `json:"unreachables,omitempty"`
20811
20812	// Warning: [Output Only] Informational warning message.
20813	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
20814
20815	// ServerResponse contains the HTTP response code and headers from the
20816	// server.
20817	googleapi.ServerResponse `json:"-"`
20818
20819	// ForceSendFields is a list of field names (e.g. "Id") to
20820	// unconditionally include in API requests. By default, fields with
20821	// empty values are omitted from API requests. However, any non-pointer,
20822	// non-interface field appearing in ForceSendFields will be sent to the
20823	// server regardless of whether the field is empty or not. This may be
20824	// used to include empty fields in Patch requests.
20825	ForceSendFields []string `json:"-"`
20826
20827	// NullFields is a list of field names (e.g. "Id") to include in API
20828	// requests with the JSON null value. By default, fields with empty
20829	// values are omitted from API requests. However, any field with an
20830	// empty value appearing in NullFields will be sent to the server as
20831	// null. It is an error if a field in this list has a non-empty value.
20832	// This may be used to include null fields in Patch requests.
20833	NullFields []string `json:"-"`
20834}
20835
20836func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
20837	type NoMethod InterconnectAttachmentAggregatedList
20838	raw := NoMethod(*s)
20839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20840}
20841
20842// InterconnectAttachmentAggregatedListWarning: [Output Only]
20843// Informational warning message.
20844type InterconnectAttachmentAggregatedListWarning struct {
20845	// Code: [Output Only] A warning code, if applicable. For example,
20846	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20847	// the response.
20848	//
20849	// Possible values:
20850	//   "CLEANUP_FAILED"
20851	//   "DEPRECATED_RESOURCE_USED"
20852	//   "DEPRECATED_TYPE_USED"
20853	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20854	//   "EXPERIMENTAL_TYPE_USED"
20855	//   "EXTERNAL_API_WARNING"
20856	//   "FIELD_VALUE_OVERRIDEN"
20857	//   "INJECTED_KERNELS_DEPRECATED"
20858	//   "LARGE_DEPLOYMENT_WARNING"
20859	//   "MISSING_TYPE_DEPENDENCY"
20860	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20861	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20862	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20863	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20864	//   "NEXT_HOP_NOT_RUNNING"
20865	//   "NOT_CRITICAL_ERROR"
20866	//   "NO_RESULTS_ON_PAGE"
20867	//   "PARTIAL_SUCCESS"
20868	//   "REQUIRED_TOS_AGREEMENT"
20869	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20870	//   "RESOURCE_NOT_DELETED"
20871	//   "SCHEMA_VALIDATION_IGNORED"
20872	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20873	//   "UNDECLARED_PROPERTIES"
20874	//   "UNREACHABLE"
20875	Code string `json:"code,omitempty"`
20876
20877	// Data: [Output Only] Metadata about this warning in key: value format.
20878	// For example:
20879	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20880	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
20881
20882	// Message: [Output Only] A human-readable description of the warning
20883	// code.
20884	Message string `json:"message,omitempty"`
20885
20886	// ForceSendFields is a list of field names (e.g. "Code") to
20887	// unconditionally include in API requests. By default, fields with
20888	// empty values are omitted from API requests. However, any non-pointer,
20889	// non-interface field appearing in ForceSendFields will be sent to the
20890	// server regardless of whether the field is empty or not. This may be
20891	// used to include empty fields in Patch requests.
20892	ForceSendFields []string `json:"-"`
20893
20894	// NullFields is a list of field names (e.g. "Code") to include in API
20895	// requests with the JSON null value. By default, fields with empty
20896	// values are omitted from API requests. However, any field with an
20897	// empty value appearing in NullFields will be sent to the server as
20898	// null. It is an error if a field in this list has a non-empty value.
20899	// This may be used to include null fields in Patch requests.
20900	NullFields []string `json:"-"`
20901}
20902
20903func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
20904	type NoMethod InterconnectAttachmentAggregatedListWarning
20905	raw := NoMethod(*s)
20906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20907}
20908
20909type InterconnectAttachmentAggregatedListWarningData struct {
20910	// Key: [Output Only] A key that provides more detail on the warning
20911	// being returned. For example, for warnings where there are no results
20912	// in a list request for a particular zone, this key might be scope and
20913	// the key value might be the zone name. Other examples might be a key
20914	// indicating a deprecated resource and a suggested replacement, or a
20915	// warning about invalid network settings (for example, if an instance
20916	// attempts to perform IP forwarding but is not enabled for IP
20917	// forwarding).
20918	Key string `json:"key,omitempty"`
20919
20920	// Value: [Output Only] A warning data value corresponding to the key.
20921	Value string `json:"value,omitempty"`
20922
20923	// ForceSendFields is a list of field names (e.g. "Key") to
20924	// unconditionally include in API requests. By default, fields with
20925	// empty values are omitted from API requests. However, any non-pointer,
20926	// non-interface field appearing in ForceSendFields will be sent to the
20927	// server regardless of whether the field is empty or not. This may be
20928	// used to include empty fields in Patch requests.
20929	ForceSendFields []string `json:"-"`
20930
20931	// NullFields is a list of field names (e.g. "Key") to include in API
20932	// requests with the JSON null value. By default, fields with empty
20933	// values are omitted from API requests. However, any field with an
20934	// empty value appearing in NullFields will be sent to the server as
20935	// null. It is an error if a field in this list has a non-empty value.
20936	// This may be used to include null fields in Patch requests.
20937	NullFields []string `json:"-"`
20938}
20939
20940func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
20941	type NoMethod InterconnectAttachmentAggregatedListWarningData
20942	raw := NoMethod(*s)
20943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20944}
20945
20946// InterconnectAttachmentList: Response to the list request, and
20947// contains a list of interconnect attachments.
20948type InterconnectAttachmentList struct {
20949	// Id: [Output Only] Unique identifier for the resource; defined by the
20950	// server.
20951	Id string `json:"id,omitempty"`
20952
20953	// Items: A list of InterconnectAttachment resources.
20954	Items []*InterconnectAttachment `json:"items,omitempty"`
20955
20956	// Kind: [Output Only] Type of resource. Always
20957	// compute#interconnectAttachmentList for lists of interconnect
20958	// attachments.
20959	Kind string `json:"kind,omitempty"`
20960
20961	// NextPageToken: [Output Only] This token allows you to get the next
20962	// page of results for list requests. If the number of results is larger
20963	// than maxResults, use the nextPageToken as a value for the query
20964	// parameter pageToken in the next list request. Subsequent list
20965	// requests will have their own nextPageToken to continue paging through
20966	// the results.
20967	NextPageToken string `json:"nextPageToken,omitempty"`
20968
20969	// SelfLink: [Output Only] Server-defined URL for this resource.
20970	SelfLink string `json:"selfLink,omitempty"`
20971
20972	// Warning: [Output Only] Informational warning message.
20973	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
20974
20975	// ServerResponse contains the HTTP response code and headers from the
20976	// server.
20977	googleapi.ServerResponse `json:"-"`
20978
20979	// ForceSendFields is a list of field names (e.g. "Id") to
20980	// unconditionally include in API requests. By default, fields with
20981	// empty values are omitted from API requests. However, any non-pointer,
20982	// non-interface field appearing in ForceSendFields will be sent to the
20983	// server regardless of whether the field is empty or not. This may be
20984	// used to include empty fields in Patch requests.
20985	ForceSendFields []string `json:"-"`
20986
20987	// NullFields is a list of field names (e.g. "Id") to include in API
20988	// requests with the JSON null value. By default, fields with empty
20989	// values are omitted from API requests. However, any field with an
20990	// empty value appearing in NullFields will be sent to the server as
20991	// null. It is an error if a field in this list has a non-empty value.
20992	// This may be used to include null fields in Patch requests.
20993	NullFields []string `json:"-"`
20994}
20995
20996func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
20997	type NoMethod InterconnectAttachmentList
20998	raw := NoMethod(*s)
20999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21000}
21001
21002// InterconnectAttachmentListWarning: [Output Only] Informational
21003// warning message.
21004type InterconnectAttachmentListWarning struct {
21005	// Code: [Output Only] A warning code, if applicable. For example,
21006	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21007	// the response.
21008	//
21009	// Possible values:
21010	//   "CLEANUP_FAILED"
21011	//   "DEPRECATED_RESOURCE_USED"
21012	//   "DEPRECATED_TYPE_USED"
21013	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21014	//   "EXPERIMENTAL_TYPE_USED"
21015	//   "EXTERNAL_API_WARNING"
21016	//   "FIELD_VALUE_OVERRIDEN"
21017	//   "INJECTED_KERNELS_DEPRECATED"
21018	//   "LARGE_DEPLOYMENT_WARNING"
21019	//   "MISSING_TYPE_DEPENDENCY"
21020	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21021	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21022	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21023	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21024	//   "NEXT_HOP_NOT_RUNNING"
21025	//   "NOT_CRITICAL_ERROR"
21026	//   "NO_RESULTS_ON_PAGE"
21027	//   "PARTIAL_SUCCESS"
21028	//   "REQUIRED_TOS_AGREEMENT"
21029	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21030	//   "RESOURCE_NOT_DELETED"
21031	//   "SCHEMA_VALIDATION_IGNORED"
21032	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21033	//   "UNDECLARED_PROPERTIES"
21034	//   "UNREACHABLE"
21035	Code string `json:"code,omitempty"`
21036
21037	// Data: [Output Only] Metadata about this warning in key: value format.
21038	// For example:
21039	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21040	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
21041
21042	// Message: [Output Only] A human-readable description of the warning
21043	// code.
21044	Message string `json:"message,omitempty"`
21045
21046	// ForceSendFields is a list of field names (e.g. "Code") to
21047	// unconditionally include in API requests. By default, fields with
21048	// empty values are omitted from API requests. However, any non-pointer,
21049	// non-interface field appearing in ForceSendFields will be sent to the
21050	// server regardless of whether the field is empty or not. This may be
21051	// used to include empty fields in Patch requests.
21052	ForceSendFields []string `json:"-"`
21053
21054	// NullFields is a list of field names (e.g. "Code") to include in API
21055	// requests with the JSON null value. By default, fields with empty
21056	// values are omitted from API requests. However, any field with an
21057	// empty value appearing in NullFields will be sent to the server as
21058	// null. It is an error if a field in this list has a non-empty value.
21059	// This may be used to include null fields in Patch requests.
21060	NullFields []string `json:"-"`
21061}
21062
21063func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
21064	type NoMethod InterconnectAttachmentListWarning
21065	raw := NoMethod(*s)
21066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21067}
21068
21069type InterconnectAttachmentListWarningData struct {
21070	// Key: [Output Only] A key that provides more detail on the warning
21071	// being returned. For example, for warnings where there are no results
21072	// in a list request for a particular zone, this key might be scope and
21073	// the key value might be the zone name. Other examples might be a key
21074	// indicating a deprecated resource and a suggested replacement, or a
21075	// warning about invalid network settings (for example, if an instance
21076	// attempts to perform IP forwarding but is not enabled for IP
21077	// forwarding).
21078	Key string `json:"key,omitempty"`
21079
21080	// Value: [Output Only] A warning data value corresponding to the key.
21081	Value string `json:"value,omitempty"`
21082
21083	// ForceSendFields is a list of field names (e.g. "Key") to
21084	// unconditionally include in API requests. By default, fields with
21085	// empty values are omitted from API requests. However, any non-pointer,
21086	// non-interface field appearing in ForceSendFields will be sent to the
21087	// server regardless of whether the field is empty or not. This may be
21088	// used to include empty fields in Patch requests.
21089	ForceSendFields []string `json:"-"`
21090
21091	// NullFields is a list of field names (e.g. "Key") to include in API
21092	// requests with the JSON null value. By default, fields with empty
21093	// values are omitted from API requests. However, any field with an
21094	// empty value appearing in NullFields will be sent to the server as
21095	// null. It is an error if a field in this list has a non-empty value.
21096	// This may be used to include null fields in Patch requests.
21097	NullFields []string `json:"-"`
21098}
21099
21100func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
21101	type NoMethod InterconnectAttachmentListWarningData
21102	raw := NoMethod(*s)
21103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21104}
21105
21106// InterconnectAttachmentPartnerMetadata: Informational metadata about
21107// Partner attachments from Partners to display to customers. These
21108// fields are propagated from PARTNER_PROVIDER attachments to their
21109// corresponding PARTNER attachments.
21110type InterconnectAttachmentPartnerMetadata struct {
21111	// InterconnectName: Plain text name of the Interconnect this attachment
21112	// is connected to, as displayed in the Partner's portal. For instance
21113	// "Chicago 1". This value may be validated to match approved Partner
21114	// values.
21115	InterconnectName string `json:"interconnectName,omitempty"`
21116
21117	// PartnerName: Plain text name of the Partner providing this
21118	// attachment. This value may be validated to match approved Partner
21119	// values.
21120	PartnerName string `json:"partnerName,omitempty"`
21121
21122	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
21123	// may customise this to be a deep link to the specific resource on the
21124	// Partner portal. This value may be validated to match approved Partner
21125	// values.
21126	PortalUrl string `json:"portalUrl,omitempty"`
21127
21128	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
21129	// unconditionally include in API requests. By default, fields with
21130	// empty values are omitted from API requests. However, any non-pointer,
21131	// non-interface field appearing in ForceSendFields will be sent to the
21132	// server regardless of whether the field is empty or not. This may be
21133	// used to include empty fields in Patch requests.
21134	ForceSendFields []string `json:"-"`
21135
21136	// NullFields is a list of field names (e.g. "InterconnectName") to
21137	// include in API requests with the JSON null value. By default, fields
21138	// with empty values are omitted from API requests. However, any field
21139	// with an empty value appearing in NullFields will be sent to the
21140	// server as null. It is an error if a field in this list has a
21141	// non-empty value. This may be used to include null fields in Patch
21142	// requests.
21143	NullFields []string `json:"-"`
21144}
21145
21146func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
21147	type NoMethod InterconnectAttachmentPartnerMetadata
21148	raw := NoMethod(*s)
21149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21150}
21151
21152// InterconnectAttachmentPrivateInfo: Information for an interconnect
21153// attachment when this belongs to an interconnect of type DEDICATED.
21154type InterconnectAttachmentPrivateInfo struct {
21155	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
21156	// traffic between Google and the customer, going to and from this
21157	// network and region.
21158	Tag8021q int64 `json:"tag8021q,omitempty"`
21159
21160	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
21161	// unconditionally include in API requests. By default, fields with
21162	// empty values are omitted from API requests. However, any non-pointer,
21163	// non-interface field appearing in ForceSendFields will be sent to the
21164	// server regardless of whether the field is empty or not. This may be
21165	// used to include empty fields in Patch requests.
21166	ForceSendFields []string `json:"-"`
21167
21168	// NullFields is a list of field names (e.g. "Tag8021q") to include in
21169	// API requests with the JSON null value. By default, fields with empty
21170	// values are omitted from API requests. However, any field with an
21171	// empty value appearing in NullFields will be sent to the server as
21172	// null. It is an error if a field in this list has a non-empty value.
21173	// This may be used to include null fields in Patch requests.
21174	NullFields []string `json:"-"`
21175}
21176
21177func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
21178	type NoMethod InterconnectAttachmentPrivateInfo
21179	raw := NoMethod(*s)
21180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21181}
21182
21183type InterconnectAttachmentsScopedList struct {
21184	// InterconnectAttachments: A list of interconnect attachments contained
21185	// in this scope.
21186	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
21187
21188	// Warning: Informational warning which replaces the list of addresses
21189	// when the list is empty.
21190	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
21191
21192	// ForceSendFields is a list of field names (e.g.
21193	// "InterconnectAttachments") to unconditionally include in API
21194	// requests. By default, fields with empty values are omitted from API
21195	// requests. However, any non-pointer, non-interface field appearing in
21196	// ForceSendFields will be sent to the server regardless of whether the
21197	// field is empty or not. This may be used to include empty fields in
21198	// Patch requests.
21199	ForceSendFields []string `json:"-"`
21200
21201	// NullFields is a list of field names (e.g. "InterconnectAttachments")
21202	// to include in API requests with the JSON null value. By default,
21203	// fields with empty values are omitted from API requests. However, any
21204	// field with an empty value appearing in NullFields will be sent to the
21205	// server as null. It is an error if a field in this list has a
21206	// non-empty value. This may be used to include null fields in Patch
21207	// requests.
21208	NullFields []string `json:"-"`
21209}
21210
21211func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
21212	type NoMethod InterconnectAttachmentsScopedList
21213	raw := NoMethod(*s)
21214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21215}
21216
21217// InterconnectAttachmentsScopedListWarning: Informational warning which
21218// replaces the list of addresses when the list is empty.
21219type InterconnectAttachmentsScopedListWarning struct {
21220	// Code: [Output Only] A warning code, if applicable. For example,
21221	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21222	// the response.
21223	//
21224	// Possible values:
21225	//   "CLEANUP_FAILED"
21226	//   "DEPRECATED_RESOURCE_USED"
21227	//   "DEPRECATED_TYPE_USED"
21228	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21229	//   "EXPERIMENTAL_TYPE_USED"
21230	//   "EXTERNAL_API_WARNING"
21231	//   "FIELD_VALUE_OVERRIDEN"
21232	//   "INJECTED_KERNELS_DEPRECATED"
21233	//   "LARGE_DEPLOYMENT_WARNING"
21234	//   "MISSING_TYPE_DEPENDENCY"
21235	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21236	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21237	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21238	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21239	//   "NEXT_HOP_NOT_RUNNING"
21240	//   "NOT_CRITICAL_ERROR"
21241	//   "NO_RESULTS_ON_PAGE"
21242	//   "PARTIAL_SUCCESS"
21243	//   "REQUIRED_TOS_AGREEMENT"
21244	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21245	//   "RESOURCE_NOT_DELETED"
21246	//   "SCHEMA_VALIDATION_IGNORED"
21247	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21248	//   "UNDECLARED_PROPERTIES"
21249	//   "UNREACHABLE"
21250	Code string `json:"code,omitempty"`
21251
21252	// Data: [Output Only] Metadata about this warning in key: value format.
21253	// For example:
21254	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21255	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
21256
21257	// Message: [Output Only] A human-readable description of the warning
21258	// code.
21259	Message string `json:"message,omitempty"`
21260
21261	// ForceSendFields is a list of field names (e.g. "Code") to
21262	// unconditionally include in API requests. By default, fields with
21263	// empty values are omitted from API requests. However, any non-pointer,
21264	// non-interface field appearing in ForceSendFields will be sent to the
21265	// server regardless of whether the field is empty or not. This may be
21266	// used to include empty fields in Patch requests.
21267	ForceSendFields []string `json:"-"`
21268
21269	// NullFields is a list of field names (e.g. "Code") to include in API
21270	// requests with the JSON null value. By default, fields with empty
21271	// values are omitted from API requests. However, any field with an
21272	// empty value appearing in NullFields will be sent to the server as
21273	// null. It is an error if a field in this list has a non-empty value.
21274	// This may be used to include null fields in Patch requests.
21275	NullFields []string `json:"-"`
21276}
21277
21278func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
21279	type NoMethod InterconnectAttachmentsScopedListWarning
21280	raw := NoMethod(*s)
21281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21282}
21283
21284type InterconnectAttachmentsScopedListWarningData struct {
21285	// Key: [Output Only] A key that provides more detail on the warning
21286	// being returned. For example, for warnings where there are no results
21287	// in a list request for a particular zone, this key might be scope and
21288	// the key value might be the zone name. Other examples might be a key
21289	// indicating a deprecated resource and a suggested replacement, or a
21290	// warning about invalid network settings (for example, if an instance
21291	// attempts to perform IP forwarding but is not enabled for IP
21292	// forwarding).
21293	Key string `json:"key,omitempty"`
21294
21295	// Value: [Output Only] A warning data value corresponding to the key.
21296	Value string `json:"value,omitempty"`
21297
21298	// ForceSendFields is a list of field names (e.g. "Key") to
21299	// unconditionally include in API requests. By default, fields with
21300	// empty values are omitted from API requests. However, any non-pointer,
21301	// non-interface field appearing in ForceSendFields will be sent to the
21302	// server regardless of whether the field is empty or not. This may be
21303	// used to include empty fields in Patch requests.
21304	ForceSendFields []string `json:"-"`
21305
21306	// NullFields is a list of field names (e.g. "Key") to include in API
21307	// requests with the JSON null value. By default, fields with empty
21308	// values are omitted from API requests. However, any field with an
21309	// empty value appearing in NullFields will be sent to the server as
21310	// null. It is an error if a field in this list has a non-empty value.
21311	// This may be used to include null fields in Patch requests.
21312	NullFields []string `json:"-"`
21313}
21314
21315func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
21316	type NoMethod InterconnectAttachmentsScopedListWarningData
21317	raw := NoMethod(*s)
21318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21319}
21320
21321// InterconnectCircuitInfo: Describes a single physical circuit between
21322// the Customer and Google. CircuitInfo objects are created by Google,
21323// so all fields are output only.
21324type InterconnectCircuitInfo struct {
21325	// CustomerDemarcId: Customer-side demarc ID for this circuit.
21326	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
21327
21328	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
21329	// at circuit turn-up.
21330	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
21331
21332	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
21333	// circuit turn-up and provided by Google to the customer in the LOA.
21334	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
21335
21336	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
21337	// unconditionally include in API requests. By default, fields with
21338	// empty values are omitted from API requests. However, any non-pointer,
21339	// non-interface field appearing in ForceSendFields will be sent to the
21340	// server regardless of whether the field is empty or not. This may be
21341	// used to include empty fields in Patch requests.
21342	ForceSendFields []string `json:"-"`
21343
21344	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
21345	// include in API requests with the JSON null value. By default, fields
21346	// with empty values are omitted from API requests. However, any field
21347	// with an empty value appearing in NullFields will be sent to the
21348	// server as null. It is an error if a field in this list has a
21349	// non-empty value. This may be used to include null fields in Patch
21350	// requests.
21351	NullFields []string `json:"-"`
21352}
21353
21354func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
21355	type NoMethod InterconnectCircuitInfo
21356	raw := NoMethod(*s)
21357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21358}
21359
21360// InterconnectDiagnostics: Diagnostics information about interconnect,
21361// contains detailed and current technical information about Google's
21362// side of the connection.
21363type InterconnectDiagnostics struct {
21364	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
21365	// describing individual neighbors currently seen by the Google router
21366	// in the ARP cache for the Interconnect. This will be empty when the
21367	// Interconnect is not bundled.
21368	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
21369
21370	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
21371	// describing the status for each link on the Interconnect.
21372	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
21373
21374	// MacAddress: The MAC address of the Interconnect's bundle interface.
21375	MacAddress string `json:"macAddress,omitempty"`
21376
21377	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
21378	// unconditionally include in API requests. By default, fields with
21379	// empty values are omitted from API requests. However, any non-pointer,
21380	// non-interface field appearing in ForceSendFields will be sent to the
21381	// server regardless of whether the field is empty or not. This may be
21382	// used to include empty fields in Patch requests.
21383	ForceSendFields []string `json:"-"`
21384
21385	// NullFields is a list of field names (e.g. "ArpCaches") to include in
21386	// API requests with the JSON null value. By default, fields with empty
21387	// values are omitted from API requests. However, any field with an
21388	// empty value appearing in NullFields will be sent to the server as
21389	// null. It is an error if a field in this list has a non-empty value.
21390	// This may be used to include null fields in Patch requests.
21391	NullFields []string `json:"-"`
21392}
21393
21394func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
21395	type NoMethod InterconnectDiagnostics
21396	raw := NoMethod(*s)
21397	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21398}
21399
21400// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
21401// seen on this link
21402type InterconnectDiagnosticsARPEntry struct {
21403	// IpAddress: The IP address of this ARP neighbor.
21404	IpAddress string `json:"ipAddress,omitempty"`
21405
21406	// MacAddress: The MAC address of this ARP neighbor.
21407	MacAddress string `json:"macAddress,omitempty"`
21408
21409	// ForceSendFields is a list of field names (e.g. "IpAddress") to
21410	// unconditionally include in API requests. By default, fields with
21411	// empty values are omitted from API requests. However, any non-pointer,
21412	// non-interface field appearing in ForceSendFields will be sent to the
21413	// server regardless of whether the field is empty or not. This may be
21414	// used to include empty fields in Patch requests.
21415	ForceSendFields []string `json:"-"`
21416
21417	// NullFields is a list of field names (e.g. "IpAddress") to include in
21418	// API requests with the JSON null value. By default, fields with empty
21419	// values are omitted from API requests. However, any field with an
21420	// empty value appearing in NullFields will be sent to the server as
21421	// null. It is an error if a field in this list has a non-empty value.
21422	// This may be used to include null fields in Patch requests.
21423	NullFields []string `json:"-"`
21424}
21425
21426func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
21427	type NoMethod InterconnectDiagnosticsARPEntry
21428	raw := NoMethod(*s)
21429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21430}
21431
21432type InterconnectDiagnosticsLinkLACPStatus struct {
21433	// GoogleSystemId: System ID of the port on Google's side of the LACP
21434	// exchange.
21435	GoogleSystemId string `json:"googleSystemId,omitempty"`
21436
21437	// NeighborSystemId: System ID of the port on the neighbor's side of the
21438	// LACP exchange.
21439	NeighborSystemId string `json:"neighborSystemId,omitempty"`
21440
21441	// State: The state of a LACP link, which can take one of the following
21442	// values:
21443	// - ACTIVE: The link is configured and active within the bundle.
21444	// - DETACHED: The link is not configured within the bundle. This means
21445	// that the rest of the object should be empty.
21446	//
21447	// Possible values:
21448	//   "ACTIVE"
21449	//   "DETACHED"
21450	State string `json:"state,omitempty"`
21451
21452	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
21453	// unconditionally include in API requests. By default, fields with
21454	// empty values are omitted from API requests. However, any non-pointer,
21455	// non-interface field appearing in ForceSendFields will be sent to the
21456	// server regardless of whether the field is empty or not. This may be
21457	// used to include empty fields in Patch requests.
21458	ForceSendFields []string `json:"-"`
21459
21460	// NullFields is a list of field names (e.g. "GoogleSystemId") to
21461	// include in API requests with the JSON null value. By default, fields
21462	// with empty values are omitted from API requests. However, any field
21463	// with an empty value appearing in NullFields will be sent to the
21464	// server as null. It is an error if a field in this list has a
21465	// non-empty value. This may be used to include null fields in Patch
21466	// requests.
21467	NullFields []string `json:"-"`
21468}
21469
21470func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
21471	type NoMethod InterconnectDiagnosticsLinkLACPStatus
21472	raw := NoMethod(*s)
21473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21474}
21475
21476type InterconnectDiagnosticsLinkOpticalPower struct {
21477	// State: The status of the current value when compared to the warning
21478	// and alarm levels for the receiving or transmitting transceiver.
21479	// Possible states include:
21480	// - OK: The value has not crossed a warning threshold.
21481	// - LOW_WARNING: The value has crossed below the low warning threshold.
21482	//
21483	// - HIGH_WARNING: The value has crossed above the high warning
21484	// threshold.
21485	// - LOW_ALARM: The value has crossed below the low alarm threshold.
21486	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
21487	//
21488	// Possible values:
21489	//   "HIGH_ALARM"
21490	//   "HIGH_WARNING"
21491	//   "LOW_ALARM"
21492	//   "LOW_WARNING"
21493	//   "OK"
21494	State string `json:"state,omitempty"`
21495
21496	// Value: Value of the current receiving or transmitting optical power,
21497	// read in dBm. Take a known good optical value, give it a 10% margin
21498	// and trigger warnings relative to that value. In general, a -7dBm
21499	// warning and a -11dBm alarm are good optical value estimates for most
21500	// links.
21501	Value float64 `json:"value,omitempty"`
21502
21503	// ForceSendFields is a list of field names (e.g. "State") to
21504	// unconditionally include in API requests. By default, fields with
21505	// empty values are omitted from API requests. However, any non-pointer,
21506	// non-interface field appearing in ForceSendFields will be sent to the
21507	// server regardless of whether the field is empty or not. This may be
21508	// used to include empty fields in Patch requests.
21509	ForceSendFields []string `json:"-"`
21510
21511	// NullFields is a list of field names (e.g. "State") to include in API
21512	// requests with the JSON null value. By default, fields with empty
21513	// values are omitted from API requests. However, any field with an
21514	// empty value appearing in NullFields will be sent to the server as
21515	// null. It is an error if a field in this list has a non-empty value.
21516	// This may be used to include null fields in Patch requests.
21517	NullFields []string `json:"-"`
21518}
21519
21520func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
21521	type NoMethod InterconnectDiagnosticsLinkOpticalPower
21522	raw := NoMethod(*s)
21523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21524}
21525
21526func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
21527	type NoMethod InterconnectDiagnosticsLinkOpticalPower
21528	var s1 struct {
21529		Value gensupport.JSONFloat64 `json:"value"`
21530		*NoMethod
21531	}
21532	s1.NoMethod = (*NoMethod)(s)
21533	if err := json.Unmarshal(data, &s1); err != nil {
21534		return err
21535	}
21536	s.Value = float64(s1.Value)
21537	return nil
21538}
21539
21540type InterconnectDiagnosticsLinkStatus struct {
21541	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
21542	// describing the ARP neighbor entries seen on this link. This will be
21543	// empty if the link is bundled
21544	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
21545
21546	// CircuitId: The unique ID for this link assigned during turn up by
21547	// Google.
21548	CircuitId string `json:"circuitId,omitempty"`
21549
21550	// GoogleDemarc: The Demarc address assigned by Google and provided in
21551	// the LoA.
21552	GoogleDemarc string `json:"googleDemarc,omitempty"`
21553
21554	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
21555
21556	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
21557	// object, describing the current value and status of the received light
21558	// level.
21559	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
21560
21561	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
21562	// object, describing the current value and status of the transmitted
21563	// light level.
21564	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
21565
21566	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
21567	// unconditionally include in API requests. By default, fields with
21568	// empty values are omitted from API requests. However, any non-pointer,
21569	// non-interface field appearing in ForceSendFields will be sent to the
21570	// server regardless of whether the field is empty or not. This may be
21571	// used to include empty fields in Patch requests.
21572	ForceSendFields []string `json:"-"`
21573
21574	// NullFields is a list of field names (e.g. "ArpCaches") to include in
21575	// API requests with the JSON null value. By default, fields with empty
21576	// values are omitted from API requests. However, any field with an
21577	// empty value appearing in NullFields will be sent to the server as
21578	// null. It is an error if a field in this list has a non-empty value.
21579	// This may be used to include null fields in Patch requests.
21580	NullFields []string `json:"-"`
21581}
21582
21583func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
21584	type NoMethod InterconnectDiagnosticsLinkStatus
21585	raw := NoMethod(*s)
21586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21587}
21588
21589// InterconnectList: Response to the list request, and contains a list
21590// of interconnects.
21591type InterconnectList struct {
21592	// Id: [Output Only] Unique identifier for the resource; defined by the
21593	// server.
21594	Id string `json:"id,omitempty"`
21595
21596	// Items: A list of Interconnect resources.
21597	Items []*Interconnect `json:"items,omitempty"`
21598
21599	// Kind: [Output Only] Type of resource. Always compute#interconnectList
21600	// for lists of interconnects.
21601	Kind string `json:"kind,omitempty"`
21602
21603	// NextPageToken: [Output Only] This token allows you to get the next
21604	// page of results for list requests. If the number of results is larger
21605	// than maxResults, use the nextPageToken as a value for the query
21606	// parameter pageToken in the next list request. Subsequent list
21607	// requests will have their own nextPageToken to continue paging through
21608	// the results.
21609	NextPageToken string `json:"nextPageToken,omitempty"`
21610
21611	// SelfLink: [Output Only] Server-defined URL for this resource.
21612	SelfLink string `json:"selfLink,omitempty"`
21613
21614	// Warning: [Output Only] Informational warning message.
21615	Warning *InterconnectListWarning `json:"warning,omitempty"`
21616
21617	// ServerResponse contains the HTTP response code and headers from the
21618	// server.
21619	googleapi.ServerResponse `json:"-"`
21620
21621	// ForceSendFields is a list of field names (e.g. "Id") to
21622	// unconditionally include in API requests. By default, fields with
21623	// empty values are omitted from API requests. However, any non-pointer,
21624	// non-interface field appearing in ForceSendFields will be sent to the
21625	// server regardless of whether the field is empty or not. This may be
21626	// used to include empty fields in Patch requests.
21627	ForceSendFields []string `json:"-"`
21628
21629	// NullFields is a list of field names (e.g. "Id") to include in API
21630	// requests with the JSON null value. By default, fields with empty
21631	// values are omitted from API requests. However, any field with an
21632	// empty value appearing in NullFields will be sent to the server as
21633	// null. It is an error if a field in this list has a non-empty value.
21634	// This may be used to include null fields in Patch requests.
21635	NullFields []string `json:"-"`
21636}
21637
21638func (s *InterconnectList) MarshalJSON() ([]byte, error) {
21639	type NoMethod InterconnectList
21640	raw := NoMethod(*s)
21641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21642}
21643
21644// InterconnectListWarning: [Output Only] Informational warning message.
21645type InterconnectListWarning struct {
21646	// Code: [Output Only] A warning code, if applicable. For example,
21647	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21648	// the response.
21649	//
21650	// Possible values:
21651	//   "CLEANUP_FAILED"
21652	//   "DEPRECATED_RESOURCE_USED"
21653	//   "DEPRECATED_TYPE_USED"
21654	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21655	//   "EXPERIMENTAL_TYPE_USED"
21656	//   "EXTERNAL_API_WARNING"
21657	//   "FIELD_VALUE_OVERRIDEN"
21658	//   "INJECTED_KERNELS_DEPRECATED"
21659	//   "LARGE_DEPLOYMENT_WARNING"
21660	//   "MISSING_TYPE_DEPENDENCY"
21661	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21662	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21663	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21664	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21665	//   "NEXT_HOP_NOT_RUNNING"
21666	//   "NOT_CRITICAL_ERROR"
21667	//   "NO_RESULTS_ON_PAGE"
21668	//   "PARTIAL_SUCCESS"
21669	//   "REQUIRED_TOS_AGREEMENT"
21670	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21671	//   "RESOURCE_NOT_DELETED"
21672	//   "SCHEMA_VALIDATION_IGNORED"
21673	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21674	//   "UNDECLARED_PROPERTIES"
21675	//   "UNREACHABLE"
21676	Code string `json:"code,omitempty"`
21677
21678	// Data: [Output Only] Metadata about this warning in key: value format.
21679	// For example:
21680	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21681	Data []*InterconnectListWarningData `json:"data,omitempty"`
21682
21683	// Message: [Output Only] A human-readable description of the warning
21684	// code.
21685	Message string `json:"message,omitempty"`
21686
21687	// ForceSendFields is a list of field names (e.g. "Code") to
21688	// unconditionally include in API requests. By default, fields with
21689	// empty values are omitted from API requests. However, any non-pointer,
21690	// non-interface field appearing in ForceSendFields will be sent to the
21691	// server regardless of whether the field is empty or not. This may be
21692	// used to include empty fields in Patch requests.
21693	ForceSendFields []string `json:"-"`
21694
21695	// NullFields is a list of field names (e.g. "Code") to include in API
21696	// requests with the JSON null value. By default, fields with empty
21697	// values are omitted from API requests. However, any field with an
21698	// empty value appearing in NullFields will be sent to the server as
21699	// null. It is an error if a field in this list has a non-empty value.
21700	// This may be used to include null fields in Patch requests.
21701	NullFields []string `json:"-"`
21702}
21703
21704func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
21705	type NoMethod InterconnectListWarning
21706	raw := NoMethod(*s)
21707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21708}
21709
21710type InterconnectListWarningData struct {
21711	// Key: [Output Only] A key that provides more detail on the warning
21712	// being returned. For example, for warnings where there are no results
21713	// in a list request for a particular zone, this key might be scope and
21714	// the key value might be the zone name. Other examples might be a key
21715	// indicating a deprecated resource and a suggested replacement, or a
21716	// warning about invalid network settings (for example, if an instance
21717	// attempts to perform IP forwarding but is not enabled for IP
21718	// forwarding).
21719	Key string `json:"key,omitempty"`
21720
21721	// Value: [Output Only] A warning data value corresponding to the key.
21722	Value string `json:"value,omitempty"`
21723
21724	// ForceSendFields is a list of field names (e.g. "Key") to
21725	// unconditionally include in API requests. By default, fields with
21726	// empty values are omitted from API requests. However, any non-pointer,
21727	// non-interface field appearing in ForceSendFields will be sent to the
21728	// server regardless of whether the field is empty or not. This may be
21729	// used to include empty fields in Patch requests.
21730	ForceSendFields []string `json:"-"`
21731
21732	// NullFields is a list of field names (e.g. "Key") to include in API
21733	// requests with the JSON null value. By default, fields with empty
21734	// values are omitted from API requests. However, any field with an
21735	// empty value appearing in NullFields will be sent to the server as
21736	// null. It is an error if a field in this list has a non-empty value.
21737	// This may be used to include null fields in Patch requests.
21738	NullFields []string `json:"-"`
21739}
21740
21741func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
21742	type NoMethod InterconnectListWarningData
21743	raw := NoMethod(*s)
21744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21745}
21746
21747// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
21748// Location resource.
21749//
21750// You can use this resource to find location details about an
21751// Interconnect attachment (VLAN). For more information about
21752// interconnect attachments, read  Creating VLAN Attachments.
21753type InterconnectLocation struct {
21754	// Address: [Output Only] The postal address of the Point of Presence,
21755	// each line in the address is separated by a newline character.
21756	Address string `json:"address,omitempty"`
21757
21758	// AvailabilityZone: [Output Only] Availability zone for this
21759	// InterconnectLocation. Within a metropolitan area (metro), maintenance
21760	// will not be simultaneously scheduled in more than one availability
21761	// zone. Example: "zone1" or "zone2".
21762	AvailabilityZone string `json:"availabilityZone,omitempty"`
21763
21764	// City: [Output Only] Metropolitan area designator that indicates which
21765	// city an interconnect is located. For example: "Chicago, IL",
21766	// "Amsterdam, Netherlands".
21767	City string `json:"city,omitempty"`
21768
21769	// Continent: [Output Only] Continent for this location, which can take
21770	// one of the following values:
21771	// - AFRICA
21772	// - ASIA_PAC
21773	// - EUROPE
21774	// - NORTH_AMERICA
21775	// - SOUTH_AMERICA
21776	//
21777	// Possible values:
21778	//   "AFRICA"
21779	//   "ASIA_PAC"
21780	//   "C_AFRICA"
21781	//   "C_ASIA_PAC"
21782	//   "C_EUROPE"
21783	//   "C_NORTH_AMERICA"
21784	//   "C_SOUTH_AMERICA"
21785	//   "EUROPE"
21786	//   "NORTH_AMERICA"
21787	//   "SOUTH_AMERICA"
21788	Continent string `json:"continent,omitempty"`
21789
21790	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21791	// format.
21792	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21793
21794	// Description: [Output Only] An optional description of the resource.
21795	Description string `json:"description,omitempty"`
21796
21797	// FacilityProvider: [Output Only] The name of the provider for this
21798	// facility (e.g., EQUINIX).
21799	FacilityProvider string `json:"facilityProvider,omitempty"`
21800
21801	// FacilityProviderFacilityId: [Output Only] A provider-assigned
21802	// Identifier for this facility (e.g., Ashburn-DC1).
21803	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
21804
21805	// Id: [Output Only] The unique identifier for the resource. This
21806	// identifier is defined by the server.
21807	Id uint64 `json:"id,omitempty,string"`
21808
21809	// Kind: [Output Only] Type of the resource. Always
21810	// compute#interconnectLocation for interconnect locations.
21811	Kind string `json:"kind,omitempty"`
21812
21813	// Name: [Output Only] Name of the resource.
21814	Name string `json:"name,omitempty"`
21815
21816	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
21817	// facility (corresponding with a netfac type in peeringdb).
21818	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
21819
21820	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
21821	// objects, that describe parameters pertaining to the relation between
21822	// this InterconnectLocation and various Google Cloud regions.
21823	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
21824
21825	// SelfLink: [Output Only] Server-defined URL for the resource.
21826	SelfLink string `json:"selfLink,omitempty"`
21827
21828	// Status: [Output Only] The status of this InterconnectLocation, which
21829	// can take one of the following values:
21830	// - CLOSED: The InterconnectLocation is closed and is unavailable for
21831	// provisioning new Interconnects.
21832	// - AVAILABLE: The InterconnectLocation is available for provisioning
21833	// new Interconnects.
21834	//
21835	// Possible values:
21836	//   "AVAILABLE"
21837	//   "CLOSED"
21838	Status string `json:"status,omitempty"`
21839
21840	// ServerResponse contains the HTTP response code and headers from the
21841	// server.
21842	googleapi.ServerResponse `json:"-"`
21843
21844	// ForceSendFields is a list of field names (e.g. "Address") to
21845	// unconditionally include in API requests. By default, fields with
21846	// empty values are omitted from API requests. However, any non-pointer,
21847	// non-interface field appearing in ForceSendFields will be sent to the
21848	// server regardless of whether the field is empty or not. This may be
21849	// used to include empty fields in Patch requests.
21850	ForceSendFields []string `json:"-"`
21851
21852	// NullFields is a list of field names (e.g. "Address") to include in
21853	// API requests with the JSON null value. By default, fields with empty
21854	// values are omitted from API requests. However, any field with an
21855	// empty value appearing in NullFields will be sent to the server as
21856	// null. It is an error if a field in this list has a non-empty value.
21857	// This may be used to include null fields in Patch requests.
21858	NullFields []string `json:"-"`
21859}
21860
21861func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
21862	type NoMethod InterconnectLocation
21863	raw := NoMethod(*s)
21864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21865}
21866
21867// InterconnectLocationList: Response to the list request, and contains
21868// a list of interconnect locations.
21869type InterconnectLocationList struct {
21870	// Id: [Output Only] Unique identifier for the resource; defined by the
21871	// server.
21872	Id string `json:"id,omitempty"`
21873
21874	// Items: A list of InterconnectLocation resources.
21875	Items []*InterconnectLocation `json:"items,omitempty"`
21876
21877	// Kind: [Output Only] Type of resource. Always
21878	// compute#interconnectLocationList for lists of interconnect locations.
21879	Kind string `json:"kind,omitempty"`
21880
21881	// NextPageToken: [Output Only] This token allows you to get the next
21882	// page of results for list requests. If the number of results is larger
21883	// than maxResults, use the nextPageToken as a value for the query
21884	// parameter pageToken in the next list request. Subsequent list
21885	// requests will have their own nextPageToken to continue paging through
21886	// the results.
21887	NextPageToken string `json:"nextPageToken,omitempty"`
21888
21889	// SelfLink: [Output Only] Server-defined URL for this resource.
21890	SelfLink string `json:"selfLink,omitempty"`
21891
21892	// Warning: [Output Only] Informational warning message.
21893	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
21894
21895	// ServerResponse contains the HTTP response code and headers from the
21896	// server.
21897	googleapi.ServerResponse `json:"-"`
21898
21899	// ForceSendFields is a list of field names (e.g. "Id") to
21900	// unconditionally include in API requests. By default, fields with
21901	// empty values are omitted from API requests. However, any non-pointer,
21902	// non-interface field appearing in ForceSendFields will be sent to the
21903	// server regardless of whether the field is empty or not. This may be
21904	// used to include empty fields in Patch requests.
21905	ForceSendFields []string `json:"-"`
21906
21907	// NullFields is a list of field names (e.g. "Id") to include in API
21908	// requests with the JSON null value. By default, fields with empty
21909	// values are omitted from API requests. However, any field with an
21910	// empty value appearing in NullFields will be sent to the server as
21911	// null. It is an error if a field in this list has a non-empty value.
21912	// This may be used to include null fields in Patch requests.
21913	NullFields []string `json:"-"`
21914}
21915
21916func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
21917	type NoMethod InterconnectLocationList
21918	raw := NoMethod(*s)
21919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21920}
21921
21922// InterconnectLocationListWarning: [Output Only] Informational warning
21923// message.
21924type InterconnectLocationListWarning struct {
21925	// Code: [Output Only] A warning code, if applicable. For example,
21926	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21927	// the response.
21928	//
21929	// Possible values:
21930	//   "CLEANUP_FAILED"
21931	//   "DEPRECATED_RESOURCE_USED"
21932	//   "DEPRECATED_TYPE_USED"
21933	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21934	//   "EXPERIMENTAL_TYPE_USED"
21935	//   "EXTERNAL_API_WARNING"
21936	//   "FIELD_VALUE_OVERRIDEN"
21937	//   "INJECTED_KERNELS_DEPRECATED"
21938	//   "LARGE_DEPLOYMENT_WARNING"
21939	//   "MISSING_TYPE_DEPENDENCY"
21940	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21941	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21942	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21943	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21944	//   "NEXT_HOP_NOT_RUNNING"
21945	//   "NOT_CRITICAL_ERROR"
21946	//   "NO_RESULTS_ON_PAGE"
21947	//   "PARTIAL_SUCCESS"
21948	//   "REQUIRED_TOS_AGREEMENT"
21949	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21950	//   "RESOURCE_NOT_DELETED"
21951	//   "SCHEMA_VALIDATION_IGNORED"
21952	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21953	//   "UNDECLARED_PROPERTIES"
21954	//   "UNREACHABLE"
21955	Code string `json:"code,omitempty"`
21956
21957	// Data: [Output Only] Metadata about this warning in key: value format.
21958	// For example:
21959	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21960	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
21961
21962	// Message: [Output Only] A human-readable description of the warning
21963	// code.
21964	Message string `json:"message,omitempty"`
21965
21966	// ForceSendFields is a list of field names (e.g. "Code") to
21967	// unconditionally include in API requests. By default, fields with
21968	// empty values are omitted from API requests. However, any non-pointer,
21969	// non-interface field appearing in ForceSendFields will be sent to the
21970	// server regardless of whether the field is empty or not. This may be
21971	// used to include empty fields in Patch requests.
21972	ForceSendFields []string `json:"-"`
21973
21974	// NullFields is a list of field names (e.g. "Code") to include in API
21975	// requests with the JSON null value. By default, fields with empty
21976	// values are omitted from API requests. However, any field with an
21977	// empty value appearing in NullFields will be sent to the server as
21978	// null. It is an error if a field in this list has a non-empty value.
21979	// This may be used to include null fields in Patch requests.
21980	NullFields []string `json:"-"`
21981}
21982
21983func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
21984	type NoMethod InterconnectLocationListWarning
21985	raw := NoMethod(*s)
21986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21987}
21988
21989type InterconnectLocationListWarningData struct {
21990	// Key: [Output Only] A key that provides more detail on the warning
21991	// being returned. For example, for warnings where there are no results
21992	// in a list request for a particular zone, this key might be scope and
21993	// the key value might be the zone name. Other examples might be a key
21994	// indicating a deprecated resource and a suggested replacement, or a
21995	// warning about invalid network settings (for example, if an instance
21996	// attempts to perform IP forwarding but is not enabled for IP
21997	// forwarding).
21998	Key string `json:"key,omitempty"`
21999
22000	// Value: [Output Only] A warning data value corresponding to the key.
22001	Value string `json:"value,omitempty"`
22002
22003	// ForceSendFields is a list of field names (e.g. "Key") to
22004	// unconditionally include in API requests. By default, fields with
22005	// empty values are omitted from API requests. However, any non-pointer,
22006	// non-interface field appearing in ForceSendFields will be sent to the
22007	// server regardless of whether the field is empty or not. This may be
22008	// used to include empty fields in Patch requests.
22009	ForceSendFields []string `json:"-"`
22010
22011	// NullFields is a list of field names (e.g. "Key") to include in API
22012	// requests with the JSON null value. By default, fields with empty
22013	// values are omitted from API requests. However, any field with an
22014	// empty value appearing in NullFields will be sent to the server as
22015	// null. It is an error if a field in this list has a non-empty value.
22016	// This may be used to include null fields in Patch requests.
22017	NullFields []string `json:"-"`
22018}
22019
22020func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
22021	type NoMethod InterconnectLocationListWarningData
22022	raw := NoMethod(*s)
22023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22024}
22025
22026// InterconnectLocationRegionInfo: Information about any potential
22027// InterconnectAttachments between an Interconnect at a specific
22028// InterconnectLocation, and a specific Cloud Region.
22029type InterconnectLocationRegionInfo struct {
22030	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
22031	// InterconnectLocation to a VM in this region.
22032	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
22033
22034	// LocationPresence: Identifies the network presence of this location.
22035	//
22036	// Possible values:
22037	//   "GLOBAL"
22038	//   "LOCAL_REGION"
22039	//   "LP_GLOBAL"
22040	//   "LP_LOCAL_REGION"
22041	LocationPresence string `json:"locationPresence,omitempty"`
22042
22043	// Region: URL for the region of this location.
22044	Region string `json:"region,omitempty"`
22045
22046	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
22047	// unconditionally include in API requests. By default, fields with
22048	// empty values are omitted from API requests. However, any non-pointer,
22049	// non-interface field appearing in ForceSendFields will be sent to the
22050	// server regardless of whether the field is empty or not. This may be
22051	// used to include empty fields in Patch requests.
22052	ForceSendFields []string `json:"-"`
22053
22054	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
22055	// in API requests with the JSON null value. By default, fields with
22056	// empty values are omitted from API requests. However, any field with
22057	// an empty value appearing in NullFields will be sent to the server as
22058	// null. It is an error if a field in this list has a non-empty value.
22059	// This may be used to include null fields in Patch requests.
22060	NullFields []string `json:"-"`
22061}
22062
22063func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
22064	type NoMethod InterconnectLocationRegionInfo
22065	raw := NoMethod(*s)
22066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22067}
22068
22069// InterconnectOutageNotification: Description of a planned outage on
22070// this Interconnect.
22071type InterconnectOutageNotification struct {
22072	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
22073	// Google-side circuit IDs that will be affected.
22074	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
22075
22076	// Description: A description about the purpose of the outage.
22077	Description string `json:"description,omitempty"`
22078
22079	// EndTime: Scheduled end time for the outage (milliseconds since Unix
22080	// epoch).
22081	EndTime int64 `json:"endTime,omitempty,string"`
22082
22083	// IssueType: Form this outage is expected to take, which can take one
22084	// of the following values:
22085	// - OUTAGE: The Interconnect may be completely out of service for some
22086	// or all of the specified window.
22087	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
22088	// whole should remain up, but with reduced bandwidth. Note that the
22089	// versions of this enum prefixed with "IT_" have been deprecated in
22090	// favor of the unprefixed values.
22091	//
22092	// Possible values:
22093	//   "IT_OUTAGE"
22094	//   "IT_PARTIAL_OUTAGE"
22095	//   "OUTAGE"
22096	//   "PARTIAL_OUTAGE"
22097	IssueType string `json:"issueType,omitempty"`
22098
22099	// Name: Unique identifier for this outage notification.
22100	Name string `json:"name,omitempty"`
22101
22102	// Source: The party that generated this notification, which can take
22103	// the following value:
22104	// - GOOGLE: this notification as generated by Google. Note that the
22105	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
22106	//
22107	// Possible values:
22108	//   "GOOGLE"
22109	//   "NSRC_GOOGLE"
22110	Source string `json:"source,omitempty"`
22111
22112	// StartTime: Scheduled start time for the outage (milliseconds since
22113	// Unix epoch).
22114	StartTime int64 `json:"startTime,omitempty,string"`
22115
22116	// State: State of this notification, which can take one of the
22117	// following values:
22118	// - ACTIVE: This outage notification is active. The event could be in
22119	// the past, present, or future. See start_time and end_time for
22120	// scheduling.
22121	// - CANCELLED: The outage associated with this notification was
22122	// cancelled before the outage was due to start.
22123	// - COMPLETED: The outage associated with this notification is
22124	// complete.  Note that the versions of this enum prefixed with "NS_"
22125	// have been deprecated in favor of the unprefixed values.
22126	//
22127	// Possible values:
22128	//   "ACTIVE"
22129	//   "CANCELLED"
22130	//   "COMPLETED"
22131	//   "NS_ACTIVE"
22132	//   "NS_CANCELED"
22133	State string `json:"state,omitempty"`
22134
22135	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
22136	// unconditionally include in API requests. By default, fields with
22137	// empty values are omitted from API requests. However, any non-pointer,
22138	// non-interface field appearing in ForceSendFields will be sent to the
22139	// server regardless of whether the field is empty or not. This may be
22140	// used to include empty fields in Patch requests.
22141	ForceSendFields []string `json:"-"`
22142
22143	// NullFields is a list of field names (e.g. "AffectedCircuits") to
22144	// include in API requests with the JSON null value. By default, fields
22145	// with empty values are omitted from API requests. However, any field
22146	// with an empty value appearing in NullFields will be sent to the
22147	// server as null. It is an error if a field in this list has a
22148	// non-empty value. This may be used to include null fields in Patch
22149	// requests.
22150	NullFields []string `json:"-"`
22151}
22152
22153func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
22154	type NoMethod InterconnectOutageNotification
22155	raw := NoMethod(*s)
22156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22157}
22158
22159// InterconnectsGetDiagnosticsResponse: Response for the
22160// InterconnectsGetDiagnosticsRequest.
22161type InterconnectsGetDiagnosticsResponse struct {
22162	Result *InterconnectDiagnostics `json:"result,omitempty"`
22163
22164	// ServerResponse contains the HTTP response code and headers from the
22165	// server.
22166	googleapi.ServerResponse `json:"-"`
22167
22168	// ForceSendFields is a list of field names (e.g. "Result") to
22169	// unconditionally include in API requests. By default, fields with
22170	// empty values are omitted from API requests. However, any non-pointer,
22171	// non-interface field appearing in ForceSendFields will be sent to the
22172	// server regardless of whether the field is empty or not. This may be
22173	// used to include empty fields in Patch requests.
22174	ForceSendFields []string `json:"-"`
22175
22176	// NullFields is a list of field names (e.g. "Result") to include in API
22177	// requests with the JSON null value. By default, fields with empty
22178	// values are omitted from API requests. However, any field with an
22179	// empty value appearing in NullFields will be sent to the server as
22180	// null. It is an error if a field in this list has a non-empty value.
22181	// This may be used to include null fields in Patch requests.
22182	NullFields []string `json:"-"`
22183}
22184
22185func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
22186	type NoMethod InterconnectsGetDiagnosticsResponse
22187	raw := NoMethod(*s)
22188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22189}
22190
22191// License: Represents a License resource.
22192//
22193// A License represents billing and aggregate usage data for public and
22194// marketplace images.  Caution This resource is intended for use only
22195// by third-party partners who are creating Cloud Marketplace images.
22196// (== resource_for {$api_version}.licenses ==)
22197type License struct {
22198	// ChargesUseFee: [Output Only] Deprecated. This field no longer
22199	// reflects whether a license charges a usage fee.
22200	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
22201
22202	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22203	// format.
22204	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22205
22206	// Description: An optional textual description of the resource;
22207	// provided by the client when the resource is created.
22208	Description string `json:"description,omitempty"`
22209
22210	// Id: [Output Only] The unique identifier for the resource. This
22211	// identifier is defined by the server.
22212	Id uint64 `json:"id,omitempty,string"`
22213
22214	// Kind: [Output Only] Type of resource. Always compute#license for
22215	// licenses.
22216	Kind string `json:"kind,omitempty"`
22217
22218	// LicenseCode: [Output Only] The unique code used to attach this
22219	// license to images, snapshots, and disks.
22220	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
22221
22222	// Name: Name of the resource. The name must be 1-63 characters long and
22223	// comply with RFC1035.
22224	Name string `json:"name,omitempty"`
22225
22226	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
22227
22228	// SelfLink: [Output Only] Server-defined URL for the resource.
22229	SelfLink string `json:"selfLink,omitempty"`
22230
22231	// Transferable: If false, licenses will not be copied from the source
22232	// resource when creating an image from a disk, disk from snapshot, or
22233	// snapshot from disk.
22234	Transferable bool `json:"transferable,omitempty"`
22235
22236	// ServerResponse contains the HTTP response code and headers from the
22237	// server.
22238	googleapi.ServerResponse `json:"-"`
22239
22240	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
22241	// unconditionally include in API requests. By default, fields with
22242	// empty values are omitted from API requests. However, any non-pointer,
22243	// non-interface field appearing in ForceSendFields will be sent to the
22244	// server regardless of whether the field is empty or not. This may be
22245	// used to include empty fields in Patch requests.
22246	ForceSendFields []string `json:"-"`
22247
22248	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
22249	// in API requests with the JSON null value. By default, fields with
22250	// empty values are omitted from API requests. However, any field with
22251	// an empty value appearing in NullFields will be sent to the server as
22252	// null. It is an error if a field in this list has a non-empty value.
22253	// This may be used to include null fields in Patch requests.
22254	NullFields []string `json:"-"`
22255}
22256
22257func (s *License) MarshalJSON() ([]byte, error) {
22258	type NoMethod License
22259	raw := NoMethod(*s)
22260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22261}
22262
22263// LicenseCode: Represents a License Code resource.
22264//
22265// A License Code is a unique identifier used to represent a license
22266// resource.  Caution This resource is intended for use only by
22267// third-party partners who are creating Cloud Marketplace images. (==
22268// resource_for {$api_version}.licenseCodes ==)
22269type LicenseCode struct {
22270	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22271	// format.
22272	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22273
22274	// Description: [Output Only] Description of this License Code.
22275	Description string `json:"description,omitempty"`
22276
22277	// Id: [Output Only] The unique identifier for the resource. This
22278	// identifier is defined by the server.
22279	Id uint64 `json:"id,omitempty,string"`
22280
22281	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
22282	// licenses.
22283	Kind string `json:"kind,omitempty"`
22284
22285	// LicenseAlias: [Output Only] URL and description aliases of Licenses
22286	// with the same License Code.
22287	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
22288
22289	// Name: [Output Only] Name of the resource. The name is 1-20 characters
22290	// long and must be a valid 64 bit integer.
22291	Name string `json:"name,omitempty"`
22292
22293	// SelfLink: [Output Only] Server-defined URL for the resource.
22294	SelfLink string `json:"selfLink,omitempty"`
22295
22296	// State: [Output Only] Current state of this License Code.
22297	//
22298	// Possible values:
22299	//   "DISABLED"
22300	//   "ENABLED"
22301	//   "RESTRICTED"
22302	//   "STATE_UNSPECIFIED"
22303	//   "TERMINATED"
22304	State string `json:"state,omitempty"`
22305
22306	// Transferable: [Output Only] If true, the license will remain attached
22307	// when creating images or snapshots from disks. Otherwise, the license
22308	// is not transferred.
22309	Transferable bool `json:"transferable,omitempty"`
22310
22311	// ServerResponse contains the HTTP response code and headers from the
22312	// server.
22313	googleapi.ServerResponse `json:"-"`
22314
22315	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22316	// to unconditionally include in API requests. By default, fields with
22317	// empty values are omitted from API requests. However, any non-pointer,
22318	// non-interface field appearing in ForceSendFields will be sent to the
22319	// server regardless of whether the field is empty or not. This may be
22320	// used to include empty fields in Patch requests.
22321	ForceSendFields []string `json:"-"`
22322
22323	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22324	// include in API requests with the JSON null value. By default, fields
22325	// with empty values are omitted from API requests. However, any field
22326	// with an empty value appearing in NullFields will be sent to the
22327	// server as null. It is an error if a field in this list has a
22328	// non-empty value. This may be used to include null fields in Patch
22329	// requests.
22330	NullFields []string `json:"-"`
22331}
22332
22333func (s *LicenseCode) MarshalJSON() ([]byte, error) {
22334	type NoMethod LicenseCode
22335	raw := NoMethod(*s)
22336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22337}
22338
22339type LicenseCodeLicenseAlias struct {
22340	// Description: [Output Only] Description of this License Code.
22341	Description string `json:"description,omitempty"`
22342
22343	// SelfLink: [Output Only] URL of license corresponding to this License
22344	// Code.
22345	SelfLink string `json:"selfLink,omitempty"`
22346
22347	// ForceSendFields is a list of field names (e.g. "Description") to
22348	// unconditionally include in API requests. By default, fields with
22349	// empty values are omitted from API requests. However, any non-pointer,
22350	// non-interface field appearing in ForceSendFields will be sent to the
22351	// server regardless of whether the field is empty or not. This may be
22352	// used to include empty fields in Patch requests.
22353	ForceSendFields []string `json:"-"`
22354
22355	// NullFields is a list of field names (e.g. "Description") to include
22356	// in API requests with the JSON null value. By default, fields with
22357	// empty values are omitted from API requests. However, any field with
22358	// an empty value appearing in NullFields will be sent to the server as
22359	// null. It is an error if a field in this list has a non-empty value.
22360	// This may be used to include null fields in Patch requests.
22361	NullFields []string `json:"-"`
22362}
22363
22364func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
22365	type NoMethod LicenseCodeLicenseAlias
22366	raw := NoMethod(*s)
22367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22368}
22369
22370// LicenseResourceCommitment: Commitment for a particular license
22371// resource.
22372type LicenseResourceCommitment struct {
22373	// Amount: The number of licenses purchased.
22374	Amount int64 `json:"amount,omitempty,string"`
22375
22376	// CoresPerLicense: Specifies the core range of the instance for which
22377	// this license applies.
22378	CoresPerLicense string `json:"coresPerLicense,omitempty"`
22379
22380	// License: Any applicable license URI.
22381	License string `json:"license,omitempty"`
22382
22383	// ForceSendFields is a list of field names (e.g. "Amount") to
22384	// unconditionally include in API requests. By default, fields with
22385	// empty values are omitted from API requests. However, any non-pointer,
22386	// non-interface field appearing in ForceSendFields will be sent to the
22387	// server regardless of whether the field is empty or not. This may be
22388	// used to include empty fields in Patch requests.
22389	ForceSendFields []string `json:"-"`
22390
22391	// NullFields is a list of field names (e.g. "Amount") to include in API
22392	// requests with the JSON null value. By default, fields with empty
22393	// values are omitted from API requests. However, any field with an
22394	// empty value appearing in NullFields will be sent to the server as
22395	// null. It is an error if a field in this list has a non-empty value.
22396	// This may be used to include null fields in Patch requests.
22397	NullFields []string `json:"-"`
22398}
22399
22400func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
22401	type NoMethod LicenseResourceCommitment
22402	raw := NoMethod(*s)
22403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22404}
22405
22406type LicenseResourceRequirements struct {
22407	// MinGuestCpuCount: Minimum number of guest cpus required to use the
22408	// Instance. Enforced at Instance creation and Instance start.
22409	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
22410
22411	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
22412	// Instance creation and Instance start.
22413	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
22414
22415	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
22416	// unconditionally include in API requests. By default, fields with
22417	// empty values are omitted from API requests. However, any non-pointer,
22418	// non-interface field appearing in ForceSendFields will be sent to the
22419	// server regardless of whether the field is empty or not. This may be
22420	// used to include empty fields in Patch requests.
22421	ForceSendFields []string `json:"-"`
22422
22423	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
22424	// include in API requests with the JSON null value. By default, fields
22425	// with empty values are omitted from API requests. However, any field
22426	// with an empty value appearing in NullFields will be sent to the
22427	// server as null. It is an error if a field in this list has a
22428	// non-empty value. This may be used to include null fields in Patch
22429	// requests.
22430	NullFields []string `json:"-"`
22431}
22432
22433func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
22434	type NoMethod LicenseResourceRequirements
22435	raw := NoMethod(*s)
22436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22437}
22438
22439type LicensesListResponse struct {
22440	// Id: [Output Only] Unique identifier for the resource; defined by the
22441	// server.
22442	Id string `json:"id,omitempty"`
22443
22444	// Items: A list of License resources.
22445	Items []*License `json:"items,omitempty"`
22446
22447	// NextPageToken: [Output Only] This token allows you to get the next
22448	// page of results for list requests. If the number of results is larger
22449	// than maxResults, use the nextPageToken as a value for the query
22450	// parameter pageToken in the next list request. Subsequent list
22451	// requests will have their own nextPageToken to continue paging through
22452	// the results.
22453	NextPageToken string `json:"nextPageToken,omitempty"`
22454
22455	// SelfLink: [Output Only] Server-defined URL for this resource.
22456	SelfLink string `json:"selfLink,omitempty"`
22457
22458	// Warning: [Output Only] Informational warning message.
22459	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
22460
22461	// ServerResponse contains the HTTP response code and headers from the
22462	// server.
22463	googleapi.ServerResponse `json:"-"`
22464
22465	// ForceSendFields is a list of field names (e.g. "Id") to
22466	// unconditionally include in API requests. By default, fields with
22467	// empty values are omitted from API requests. However, any non-pointer,
22468	// non-interface field appearing in ForceSendFields will be sent to the
22469	// server regardless of whether the field is empty or not. This may be
22470	// used to include empty fields in Patch requests.
22471	ForceSendFields []string `json:"-"`
22472
22473	// NullFields is a list of field names (e.g. "Id") to include in API
22474	// requests with the JSON null value. By default, fields with empty
22475	// values are omitted from API requests. However, any field with an
22476	// empty value appearing in NullFields will be sent to the server as
22477	// null. It is an error if a field in this list has a non-empty value.
22478	// This may be used to include null fields in Patch requests.
22479	NullFields []string `json:"-"`
22480}
22481
22482func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
22483	type NoMethod LicensesListResponse
22484	raw := NoMethod(*s)
22485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22486}
22487
22488// LicensesListResponseWarning: [Output Only] Informational warning
22489// message.
22490type LicensesListResponseWarning struct {
22491	// Code: [Output Only] A warning code, if applicable. For example,
22492	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22493	// the response.
22494	//
22495	// Possible values:
22496	//   "CLEANUP_FAILED"
22497	//   "DEPRECATED_RESOURCE_USED"
22498	//   "DEPRECATED_TYPE_USED"
22499	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22500	//   "EXPERIMENTAL_TYPE_USED"
22501	//   "EXTERNAL_API_WARNING"
22502	//   "FIELD_VALUE_OVERRIDEN"
22503	//   "INJECTED_KERNELS_DEPRECATED"
22504	//   "LARGE_DEPLOYMENT_WARNING"
22505	//   "MISSING_TYPE_DEPENDENCY"
22506	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22507	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22508	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22509	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22510	//   "NEXT_HOP_NOT_RUNNING"
22511	//   "NOT_CRITICAL_ERROR"
22512	//   "NO_RESULTS_ON_PAGE"
22513	//   "PARTIAL_SUCCESS"
22514	//   "REQUIRED_TOS_AGREEMENT"
22515	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22516	//   "RESOURCE_NOT_DELETED"
22517	//   "SCHEMA_VALIDATION_IGNORED"
22518	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22519	//   "UNDECLARED_PROPERTIES"
22520	//   "UNREACHABLE"
22521	Code string `json:"code,omitempty"`
22522
22523	// Data: [Output Only] Metadata about this warning in key: value format.
22524	// For example:
22525	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22526	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
22527
22528	// Message: [Output Only] A human-readable description of the warning
22529	// code.
22530	Message string `json:"message,omitempty"`
22531
22532	// ForceSendFields is a list of field names (e.g. "Code") to
22533	// unconditionally include in API requests. By default, fields with
22534	// empty values are omitted from API requests. However, any non-pointer,
22535	// non-interface field appearing in ForceSendFields will be sent to the
22536	// server regardless of whether the field is empty or not. This may be
22537	// used to include empty fields in Patch requests.
22538	ForceSendFields []string `json:"-"`
22539
22540	// NullFields is a list of field names (e.g. "Code") to include in API
22541	// requests with the JSON null value. By default, fields with empty
22542	// values are omitted from API requests. However, any field with an
22543	// empty value appearing in NullFields will be sent to the server as
22544	// null. It is an error if a field in this list has a non-empty value.
22545	// This may be used to include null fields in Patch requests.
22546	NullFields []string `json:"-"`
22547}
22548
22549func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
22550	type NoMethod LicensesListResponseWarning
22551	raw := NoMethod(*s)
22552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22553}
22554
22555type LicensesListResponseWarningData struct {
22556	// Key: [Output Only] A key that provides more detail on the warning
22557	// being returned. For example, for warnings where there are no results
22558	// in a list request for a particular zone, this key might be scope and
22559	// the key value might be the zone name. Other examples might be a key
22560	// indicating a deprecated resource and a suggested replacement, or a
22561	// warning about invalid network settings (for example, if an instance
22562	// attempts to perform IP forwarding but is not enabled for IP
22563	// forwarding).
22564	Key string `json:"key,omitempty"`
22565
22566	// Value: [Output Only] A warning data value corresponding to the key.
22567	Value string `json:"value,omitempty"`
22568
22569	// ForceSendFields is a list of field names (e.g. "Key") to
22570	// unconditionally include in API requests. By default, fields with
22571	// empty values are omitted from API requests. However, any non-pointer,
22572	// non-interface field appearing in ForceSendFields will be sent to the
22573	// server regardless of whether the field is empty or not. This may be
22574	// used to include empty fields in Patch requests.
22575	ForceSendFields []string `json:"-"`
22576
22577	// NullFields is a list of field names (e.g. "Key") to include in API
22578	// requests with the JSON null value. By default, fields with empty
22579	// values are omitted from API requests. However, any field with an
22580	// empty value appearing in NullFields will be sent to the server as
22581	// null. It is an error if a field in this list has a non-empty value.
22582	// This may be used to include null fields in Patch requests.
22583	NullFields []string `json:"-"`
22584}
22585
22586func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
22587	type NoMethod LicensesListResponseWarningData
22588	raw := NoMethod(*s)
22589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22590}
22591
22592type LocalDisk struct {
22593	// DiskCount: Specifies the number of such disks.
22594	DiskCount int64 `json:"diskCount,omitempty"`
22595
22596	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
22597	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
22598
22599	// DiskType: Specifies the desired disk type on the node. This disk type
22600	// must be a local storage type (e.g.: local-ssd). Note that for
22601	// nodeTemplates, this should be the name of the disk type and not its
22602	// URL.
22603	DiskType string `json:"diskType,omitempty"`
22604
22605	// ForceSendFields is a list of field names (e.g. "DiskCount") to
22606	// unconditionally include in API requests. By default, fields with
22607	// empty values are omitted from API requests. However, any non-pointer,
22608	// non-interface field appearing in ForceSendFields will be sent to the
22609	// server regardless of whether the field is empty or not. This may be
22610	// used to include empty fields in Patch requests.
22611	ForceSendFields []string `json:"-"`
22612
22613	// NullFields is a list of field names (e.g. "DiskCount") to include in
22614	// API requests with the JSON null value. By default, fields with empty
22615	// values are omitted from API requests. However, any field with an
22616	// empty value appearing in NullFields will be sent to the server as
22617	// null. It is an error if a field in this list has a non-empty value.
22618	// This may be used to include null fields in Patch requests.
22619	NullFields []string `json:"-"`
22620}
22621
22622func (s *LocalDisk) MarshalJSON() ([]byte, error) {
22623	type NoMethod LocalDisk
22624	raw := NoMethod(*s)
22625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22626}
22627
22628// LocationPolicy: Configuration for location policy among multiple
22629// possible locations (e.g. preferences for zone selection among zones
22630// in a single region).
22631type LocationPolicy struct {
22632	// Locations: Location configurations mapped by location name. Currently
22633	// only zone names are supported and must be represented as valid
22634	// internal URLs, such as zones/us-central1-a.
22635	Locations map[string]LocationPolicyLocation `json:"locations,omitempty"`
22636
22637	// ForceSendFields is a list of field names (e.g. "Locations") to
22638	// unconditionally include in API requests. By default, fields with
22639	// empty values are omitted from API requests. However, any non-pointer,
22640	// non-interface field appearing in ForceSendFields will be sent to the
22641	// server regardless of whether the field is empty or not. This may be
22642	// used to include empty fields in Patch requests.
22643	ForceSendFields []string `json:"-"`
22644
22645	// NullFields is a list of field names (e.g. "Locations") to include in
22646	// API requests with the JSON null value. By default, fields with empty
22647	// values are omitted from API requests. However, any field with an
22648	// empty value appearing in NullFields will be sent to the server as
22649	// null. It is an error if a field in this list has a non-empty value.
22650	// This may be used to include null fields in Patch requests.
22651	NullFields []string `json:"-"`
22652}
22653
22654func (s *LocationPolicy) MarshalJSON() ([]byte, error) {
22655	type NoMethod LocationPolicy
22656	raw := NoMethod(*s)
22657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22658}
22659
22660type LocationPolicyLocation struct {
22661	// Preference: Preference for a given location: ALLOW or DENY.
22662	//
22663	// Possible values:
22664	//   "ALLOW"
22665	//   "DENY"
22666	//   "PREFERENCE_UNSPECIFIED"
22667	Preference string `json:"preference,omitempty"`
22668
22669	// ForceSendFields is a list of field names (e.g. "Preference") to
22670	// unconditionally include in API requests. By default, fields with
22671	// empty values are omitted from API requests. However, any non-pointer,
22672	// non-interface field appearing in ForceSendFields will be sent to the
22673	// server regardless of whether the field is empty or not. This may be
22674	// used to include empty fields in Patch requests.
22675	ForceSendFields []string `json:"-"`
22676
22677	// NullFields is a list of field names (e.g. "Preference") to include in
22678	// API requests with the JSON null value. By default, fields with empty
22679	// values are omitted from API requests. However, any field with an
22680	// empty value appearing in NullFields will be sent to the server as
22681	// null. It is an error if a field in this list has a non-empty value.
22682	// This may be used to include null fields in Patch requests.
22683	NullFields []string `json:"-"`
22684}
22685
22686func (s *LocationPolicyLocation) MarshalJSON() ([]byte, error) {
22687	type NoMethod LocationPolicyLocation
22688	raw := NoMethod(*s)
22689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22690}
22691
22692// LogConfig: Specifies what kind of log the caller must write
22693type LogConfig struct {
22694	// CloudAudit: Cloud audit options.
22695	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
22696
22697	// Counter: Counter options.
22698	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
22699
22700	// DataAccess: Data access options.
22701	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
22702
22703	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
22704	// unconditionally include in API requests. By default, fields with
22705	// empty values are omitted from API requests. However, any non-pointer,
22706	// non-interface field appearing in ForceSendFields will be sent to the
22707	// server regardless of whether the field is empty or not. This may be
22708	// used to include empty fields in Patch requests.
22709	ForceSendFields []string `json:"-"`
22710
22711	// NullFields is a list of field names (e.g. "CloudAudit") to include in
22712	// API requests with the JSON null value. By default, fields with empty
22713	// values are omitted from API requests. However, any field with an
22714	// empty value appearing in NullFields will be sent to the server as
22715	// null. It is an error if a field in this list has a non-empty value.
22716	// This may be used to include null fields in Patch requests.
22717	NullFields []string `json:"-"`
22718}
22719
22720func (s *LogConfig) MarshalJSON() ([]byte, error) {
22721	type NoMethod LogConfig
22722	raw := NoMethod(*s)
22723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22724}
22725
22726// LogConfigCloudAuditOptions: Write a Cloud Audit log
22727type LogConfigCloudAuditOptions struct {
22728	// AuthorizationLoggingOptions: Information used by the Cloud Audit
22729	// Logging pipeline.
22730	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
22731
22732	// LogName: The log_name to populate in the Cloud Audit Record.
22733	//
22734	// Possible values:
22735	//   "ADMIN_ACTIVITY"
22736	//   "DATA_ACCESS"
22737	//   "UNSPECIFIED_LOG_NAME"
22738	LogName string `json:"logName,omitempty"`
22739
22740	// ForceSendFields is a list of field names (e.g.
22741	// "AuthorizationLoggingOptions") to unconditionally include in API
22742	// requests. By default, fields with empty values are omitted from API
22743	// requests. However, any non-pointer, non-interface field appearing in
22744	// ForceSendFields will be sent to the server regardless of whether the
22745	// field is empty or not. This may be used to include empty fields in
22746	// Patch requests.
22747	ForceSendFields []string `json:"-"`
22748
22749	// NullFields is a list of field names (e.g.
22750	// "AuthorizationLoggingOptions") to include in API requests with the
22751	// JSON null value. By default, fields with empty values are omitted
22752	// from API requests. However, any field with an empty value appearing
22753	// in NullFields will be sent to the server as null. It is an error if a
22754	// field in this list has a non-empty value. This may be used to include
22755	// null fields in Patch requests.
22756	NullFields []string `json:"-"`
22757}
22758
22759func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
22760	type NoMethod LogConfigCloudAuditOptions
22761	raw := NoMethod(*s)
22762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22763}
22764
22765// LogConfigCounterOptions: Increment a streamz counter with the
22766// specified metric and field names.
22767//
22768// Metric names should start with a '/', generally be lowercase-only,
22769// and end in "_count". Field names should not contain an initial slash.
22770// The actual exported metric names will have "/iam/policy"
22771// prepended.
22772//
22773// Field names correspond to IAM request parameters and field values are
22774// their respective values.
22775//
22776// Supported field names: - "authority", which is "[token]" if
22777// IAMContext.token is present, otherwise the value of
22778// IAMContext.authority_selector if present, and otherwise a
22779// representation of IAMContext.principal; or - "iam_principal", a
22780// representation of IAMContext.principal even if a token or authority
22781// selector is present; or - "" (empty string), resulting in a counter
22782// with no fields.
22783//
22784// Examples: counter { metric: "/debug_access_count" field:
22785// "iam_principal" } ==> increment counter
22786// /iam/policy/debug_access_count {iam_principal=[value of
22787// IAMContext.principal]}
22788type LogConfigCounterOptions struct {
22789	// CustomFields: Custom fields.
22790	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
22791
22792	// Field: The field value to attribute.
22793	Field string `json:"field,omitempty"`
22794
22795	// Metric: The metric to update.
22796	Metric string `json:"metric,omitempty"`
22797
22798	// ForceSendFields is a list of field names (e.g. "CustomFields") to
22799	// unconditionally include in API requests. By default, fields with
22800	// empty values are omitted from API requests. However, any non-pointer,
22801	// non-interface field appearing in ForceSendFields will be sent to the
22802	// server regardless of whether the field is empty or not. This may be
22803	// used to include empty fields in Patch requests.
22804	ForceSendFields []string `json:"-"`
22805
22806	// NullFields is a list of field names (e.g. "CustomFields") to include
22807	// in API requests with the JSON null value. By default, fields with
22808	// empty values are omitted from API requests. However, any field with
22809	// an empty value appearing in NullFields will be sent to the server as
22810	// null. It is an error if a field in this list has a non-empty value.
22811	// This may be used to include null fields in Patch requests.
22812	NullFields []string `json:"-"`
22813}
22814
22815func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
22816	type NoMethod LogConfigCounterOptions
22817	raw := NoMethod(*s)
22818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22819}
22820
22821// LogConfigCounterOptionsCustomField: Custom fields. These can be used
22822// to create a counter with arbitrary field/value pairs. See:
22823// go/rpcsp-custom-fields.
22824type LogConfigCounterOptionsCustomField struct {
22825	// Name: Name is the field name.
22826	Name string `json:"name,omitempty"`
22827
22828	// Value: Value is the field value. It is important that in contrast to
22829	// the CounterOptions.field, the value here is a constant that is not
22830	// derived from the IAMContext.
22831	Value string `json:"value,omitempty"`
22832
22833	// ForceSendFields is a list of field names (e.g. "Name") to
22834	// unconditionally include in API requests. By default, fields with
22835	// empty values are omitted from API requests. However, any non-pointer,
22836	// non-interface field appearing in ForceSendFields will be sent to the
22837	// server regardless of whether the field is empty or not. This may be
22838	// used to include empty fields in Patch requests.
22839	ForceSendFields []string `json:"-"`
22840
22841	// NullFields is a list of field names (e.g. "Name") to include in API
22842	// requests with the JSON null value. By default, fields with empty
22843	// values are omitted from API requests. However, any field with an
22844	// empty value appearing in NullFields will be sent to the server as
22845	// null. It is an error if a field in this list has a non-empty value.
22846	// This may be used to include null fields in Patch requests.
22847	NullFields []string `json:"-"`
22848}
22849
22850func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
22851	type NoMethod LogConfigCounterOptionsCustomField
22852	raw := NoMethod(*s)
22853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22854}
22855
22856// LogConfigDataAccessOptions: Write a Data Access (Gin) log
22857type LogConfigDataAccessOptions struct {
22858	// Possible values:
22859	//   "LOG_FAIL_CLOSED"
22860	//   "LOG_MODE_UNSPECIFIED"
22861	LogMode string `json:"logMode,omitempty"`
22862
22863	// ForceSendFields is a list of field names (e.g. "LogMode") to
22864	// unconditionally include in API requests. By default, fields with
22865	// empty values are omitted from API requests. However, any non-pointer,
22866	// non-interface field appearing in ForceSendFields will be sent to the
22867	// server regardless of whether the field is empty or not. This may be
22868	// used to include empty fields in Patch requests.
22869	ForceSendFields []string `json:"-"`
22870
22871	// NullFields is a list of field names (e.g. "LogMode") to include in
22872	// API requests with the JSON null value. By default, fields with empty
22873	// values are omitted from API requests. However, any field with an
22874	// empty value appearing in NullFields will be sent to the server as
22875	// null. It is an error if a field in this list has a non-empty value.
22876	// This may be used to include null fields in Patch requests.
22877	NullFields []string `json:"-"`
22878}
22879
22880func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
22881	type NoMethod LogConfigDataAccessOptions
22882	raw := NoMethod(*s)
22883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22884}
22885
22886// MachineImage: Represents a machine image resource.
22887//
22888// A machine image is a Compute Engine resource that stores all the
22889// configuration, metadata, permissions, and data from one or more disks
22890// required to create a Virtual machine (VM) instance. For more
22891// information, see Machine images. (== resource_for
22892// {$api_version}.machineImages ==)
22893type MachineImage struct {
22894	// CreationTimestamp: [Output Only] The creation timestamp for this
22895	// machine image in RFC3339 text format.
22896	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22897
22898	// Description: An optional description of this resource. Provide this
22899	// property when you create the resource.
22900	Description string `json:"description,omitempty"`
22901
22902	// GuestFlush: [Input Only] Whether to attempt an application consistent
22903	// machine image by informing the OS to prepare for the snapshot
22904	// process. Currently only supported on Windows instances using the
22905	// Volume Shadow Copy Service (VSS).
22906	GuestFlush bool `json:"guestFlush,omitempty"`
22907
22908	// Id: [Output Only] A unique identifier for this machine image. The
22909	// server defines this identifier.
22910	Id uint64 `json:"id,omitempty,string"`
22911
22912	// Kind: [Output Only] The resource type, which is always
22913	// compute#machineImage for machine image.
22914	Kind string `json:"kind,omitempty"`
22915
22916	// MachineImageEncryptionKey: Encrypts the machine image using a
22917	// customer-supplied encryption key.
22918	//
22919	// After you encrypt a machine image using a customer-supplied key, you
22920	// must provide the same key if you use the machine image later. For
22921	// example, you must provide the encryption key when you create an
22922	// instance from the encrypted machine image in a future
22923	// request.
22924	//
22925	// Customer-supplied encryption keys do not protect access to metadata
22926	// of the machine image.
22927	//
22928	// If you do not provide an encryption key when creating the machine
22929	// image, then the machine image will be encrypted using an
22930	// automatically generated key and you do not need to provide a key to
22931	// use the machine image later.
22932	MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"`
22933
22934	// Name: Name of the resource; provided by the client when the resource
22935	// is created. The name must be 1-63 characters long, and comply with
22936	// RFC1035. Specifically, the name must be 1-63 characters long and
22937	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
22938	// the first character must be a lowercase letter, and all following
22939	// characters must be a dash, lowercase letter, or digit, except the
22940	// last character, which cannot be a dash.
22941	Name string `json:"name,omitempty"`
22942
22943	// SatisfiesPzs: [Output Only] Reserved for future use.
22944	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
22945
22946	// SelfLink: [Output Only] The URL for this machine image. The server
22947	// defines this URL.
22948	SelfLink string `json:"selfLink,omitempty"`
22949
22950	// SourceDiskEncryptionKeys: [Input Only] The customer-supplied
22951	// encryption key of the disks attached to the source instance. Required
22952	// if the source disk is protected by a customer-supplied encryption
22953	// key.
22954	SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"`
22955
22956	// SourceInstance: The source instance used to create the machine image.
22957	// You can provide this as a partial or full URL to the resource. For
22958	// example, the following are valid values:
22959	// -
22960	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
22961	//
22962	// - projects/project/zones/zone/instances/instance
22963	SourceInstance string `json:"sourceInstance,omitempty"`
22964
22965	// SourceInstanceProperties: [Output Only] Properties of source
22966	// instance.
22967	SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"`
22968
22969	// Status: [Output Only] The status of the machine image. One of the
22970	// following values: INVALID, CREATING, READY, DELETING, and UPLOADING.
22971	//
22972	// Possible values:
22973	//   "CREATING"
22974	//   "DELETING"
22975	//   "INVALID"
22976	//   "READY"
22977	//   "UPLOADING"
22978	Status string `json:"status,omitempty"`
22979
22980	// StorageLocations: The regional or multi-regional Cloud Storage bucket
22981	// location where the machine image is stored.
22982	StorageLocations []string `json:"storageLocations,omitempty"`
22983
22984	// TotalStorageBytes: [Output Only] Total size of the storage used by
22985	// the machine image.
22986	TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"`
22987
22988	// ServerResponse contains the HTTP response code and headers from the
22989	// server.
22990	googleapi.ServerResponse `json:"-"`
22991
22992	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22993	// to unconditionally include in API requests. By default, fields with
22994	// empty values are omitted from API requests. However, any non-pointer,
22995	// non-interface field appearing in ForceSendFields will be sent to the
22996	// server regardless of whether the field is empty or not. This may be
22997	// used to include empty fields in Patch requests.
22998	ForceSendFields []string `json:"-"`
22999
23000	// NullFields is a list of field names (e.g. "CreationTimestamp") to
23001	// include in API requests with the JSON null value. By default, fields
23002	// with empty values are omitted from API requests. However, any field
23003	// with an empty value appearing in NullFields will be sent to the
23004	// server as null. It is an error if a field in this list has a
23005	// non-empty value. This may be used to include null fields in Patch
23006	// requests.
23007	NullFields []string `json:"-"`
23008}
23009
23010func (s *MachineImage) MarshalJSON() ([]byte, error) {
23011	type NoMethod MachineImage
23012	raw := NoMethod(*s)
23013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23014}
23015
23016// MachineImageList: A list of machine images.
23017type MachineImageList struct {
23018	// Id: [Output Only] Unique identifier for the resource; defined by the
23019	// server.
23020	Id string `json:"id,omitempty"`
23021
23022	// Items: A list of MachineImage resources.
23023	Items []*MachineImage `json:"items,omitempty"`
23024
23025	// Kind: [Output Only] The resource type, which is always
23026	// compute#machineImagesListResponse for machine image lists.
23027	Kind string `json:"kind,omitempty"`
23028
23029	// NextPageToken: [Output Only] This token allows you to get the next
23030	// page of results for list requests. If the number of results is larger
23031	// than maxResults, use the nextPageToken as a value for the query
23032	// parameter pageToken in the next list request. Subsequent list
23033	// requests will have their own nextPageToken to continue paging through
23034	// the results.
23035	NextPageToken string `json:"nextPageToken,omitempty"`
23036
23037	// SelfLink: [Output Only] Server-defined URL for this resource.
23038	SelfLink string `json:"selfLink,omitempty"`
23039
23040	// Warning: [Output Only] Informational warning message.
23041	Warning *MachineImageListWarning `json:"warning,omitempty"`
23042
23043	// ServerResponse contains the HTTP response code and headers from the
23044	// server.
23045	googleapi.ServerResponse `json:"-"`
23046
23047	// ForceSendFields is a list of field names (e.g. "Id") to
23048	// unconditionally include in API requests. By default, fields with
23049	// empty values are omitted from API requests. However, any non-pointer,
23050	// non-interface field appearing in ForceSendFields will be sent to the
23051	// server regardless of whether the field is empty or not. This may be
23052	// used to include empty fields in Patch requests.
23053	ForceSendFields []string `json:"-"`
23054
23055	// NullFields is a list of field names (e.g. "Id") to include in API
23056	// requests with the JSON null value. By default, fields with empty
23057	// values are omitted from API requests. However, any field with an
23058	// empty value appearing in NullFields will be sent to the server as
23059	// null. It is an error if a field in this list has a non-empty value.
23060	// This may be used to include null fields in Patch requests.
23061	NullFields []string `json:"-"`
23062}
23063
23064func (s *MachineImageList) MarshalJSON() ([]byte, error) {
23065	type NoMethod MachineImageList
23066	raw := NoMethod(*s)
23067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23068}
23069
23070// MachineImageListWarning: [Output Only] Informational warning message.
23071type MachineImageListWarning struct {
23072	// Code: [Output Only] A warning code, if applicable. For example,
23073	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23074	// the response.
23075	//
23076	// Possible values:
23077	//   "CLEANUP_FAILED"
23078	//   "DEPRECATED_RESOURCE_USED"
23079	//   "DEPRECATED_TYPE_USED"
23080	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23081	//   "EXPERIMENTAL_TYPE_USED"
23082	//   "EXTERNAL_API_WARNING"
23083	//   "FIELD_VALUE_OVERRIDEN"
23084	//   "INJECTED_KERNELS_DEPRECATED"
23085	//   "LARGE_DEPLOYMENT_WARNING"
23086	//   "MISSING_TYPE_DEPENDENCY"
23087	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23088	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23089	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23090	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23091	//   "NEXT_HOP_NOT_RUNNING"
23092	//   "NOT_CRITICAL_ERROR"
23093	//   "NO_RESULTS_ON_PAGE"
23094	//   "PARTIAL_SUCCESS"
23095	//   "REQUIRED_TOS_AGREEMENT"
23096	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23097	//   "RESOURCE_NOT_DELETED"
23098	//   "SCHEMA_VALIDATION_IGNORED"
23099	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23100	//   "UNDECLARED_PROPERTIES"
23101	//   "UNREACHABLE"
23102	Code string `json:"code,omitempty"`
23103
23104	// Data: [Output Only] Metadata about this warning in key: value format.
23105	// For example:
23106	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23107	Data []*MachineImageListWarningData `json:"data,omitempty"`
23108
23109	// Message: [Output Only] A human-readable description of the warning
23110	// code.
23111	Message string `json:"message,omitempty"`
23112
23113	// ForceSendFields is a list of field names (e.g. "Code") to
23114	// unconditionally include in API requests. By default, fields with
23115	// empty values are omitted from API requests. However, any non-pointer,
23116	// non-interface field appearing in ForceSendFields will be sent to the
23117	// server regardless of whether the field is empty or not. This may be
23118	// used to include empty fields in Patch requests.
23119	ForceSendFields []string `json:"-"`
23120
23121	// NullFields is a list of field names (e.g. "Code") to include in API
23122	// requests with the JSON null value. By default, fields with empty
23123	// values are omitted from API requests. However, any field with an
23124	// empty value appearing in NullFields will be sent to the server as
23125	// null. It is an error if a field in this list has a non-empty value.
23126	// This may be used to include null fields in Patch requests.
23127	NullFields []string `json:"-"`
23128}
23129
23130func (s *MachineImageListWarning) MarshalJSON() ([]byte, error) {
23131	type NoMethod MachineImageListWarning
23132	raw := NoMethod(*s)
23133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23134}
23135
23136type MachineImageListWarningData struct {
23137	// Key: [Output Only] A key that provides more detail on the warning
23138	// being returned. For example, for warnings where there are no results
23139	// in a list request for a particular zone, this key might be scope and
23140	// the key value might be the zone name. Other examples might be a key
23141	// indicating a deprecated resource and a suggested replacement, or a
23142	// warning about invalid network settings (for example, if an instance
23143	// attempts to perform IP forwarding but is not enabled for IP
23144	// forwarding).
23145	Key string `json:"key,omitempty"`
23146
23147	// Value: [Output Only] A warning data value corresponding to the key.
23148	Value string `json:"value,omitempty"`
23149
23150	// ForceSendFields is a list of field names (e.g. "Key") to
23151	// unconditionally include in API requests. By default, fields with
23152	// empty values are omitted from API requests. However, any non-pointer,
23153	// non-interface field appearing in ForceSendFields will be sent to the
23154	// server regardless of whether the field is empty or not. This may be
23155	// used to include empty fields in Patch requests.
23156	ForceSendFields []string `json:"-"`
23157
23158	// NullFields is a list of field names (e.g. "Key") to include in API
23159	// requests with the JSON null value. By default, fields with empty
23160	// values are omitted from API requests. However, any field with an
23161	// empty value appearing in NullFields will be sent to the server as
23162	// null. It is an error if a field in this list has a non-empty value.
23163	// This may be used to include null fields in Patch requests.
23164	NullFields []string `json:"-"`
23165}
23166
23167func (s *MachineImageListWarningData) MarshalJSON() ([]byte, error) {
23168	type NoMethod MachineImageListWarningData
23169	raw := NoMethod(*s)
23170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23171}
23172
23173// MachineType: Represents a Machine Type resource.
23174//
23175// You can use specific machine types for your VM instances based on
23176// performance and pricing requirements. For more information, read
23177// Machine Types. (== resource_for {$api_version}.machineTypes ==)
23178type MachineType struct {
23179	// Accelerators: [Output Only] A list of accelerator configurations
23180	// assigned to this machine type.
23181	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
23182
23183	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23184	// format.
23185	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23186
23187	// Deprecated -- [Output Only] The deprecation status associated with
23188	// this machine type. Only applicable if the machine type is
23189	// unavailable.
23190	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
23191
23192	// Description: [Output Only] An optional textual description of the
23193	// resource.
23194	Description string `json:"description,omitempty"`
23195
23196	// GuestCpus: [Output Only] The number of virtual CPUs that are
23197	// available to the instance.
23198	GuestCpus int64 `json:"guestCpus,omitempty"`
23199
23200	// Id: [Output Only] The unique identifier for the resource. This
23201	// identifier is defined by the server.
23202	Id uint64 `json:"id,omitempty,string"`
23203
23204	// IsSharedCpu: [Output Only] Whether this machine type has a shared
23205	// CPU. See Shared-core machine types for more information.
23206	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
23207
23208	// Kind: [Output Only] The type of the resource. Always
23209	// compute#machineType for machine types.
23210	Kind string `json:"kind,omitempty"`
23211
23212	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
23213	// allowed.
23214	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
23215
23216	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
23217	// disks size (GB) allowed.
23218	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
23219
23220	// MemoryMb: [Output Only] The amount of physical memory available to
23221	// the instance, defined in MB.
23222	MemoryMb int64 `json:"memoryMb,omitempty"`
23223
23224	// Name: [Output Only] Name of the resource.
23225	Name string `json:"name,omitempty"`
23226
23227	// SelfLink: [Output Only] Server-defined URL for the resource.
23228	SelfLink string `json:"selfLink,omitempty"`
23229
23230	// Zone: [Output Only] The name of the zone where the machine type
23231	// resides, such as us-central1-a.
23232	Zone string `json:"zone,omitempty"`
23233
23234	// ServerResponse contains the HTTP response code and headers from the
23235	// server.
23236	googleapi.ServerResponse `json:"-"`
23237
23238	// ForceSendFields is a list of field names (e.g. "Accelerators") to
23239	// unconditionally include in API requests. By default, fields with
23240	// empty values are omitted from API requests. However, any non-pointer,
23241	// non-interface field appearing in ForceSendFields will be sent to the
23242	// server regardless of whether the field is empty or not. This may be
23243	// used to include empty fields in Patch requests.
23244	ForceSendFields []string `json:"-"`
23245
23246	// NullFields is a list of field names (e.g. "Accelerators") to include
23247	// in API requests with the JSON null value. By default, fields with
23248	// empty values are omitted from API requests. However, any field with
23249	// an empty value appearing in NullFields will be sent to the server as
23250	// null. It is an error if a field in this list has a non-empty value.
23251	// This may be used to include null fields in Patch requests.
23252	NullFields []string `json:"-"`
23253}
23254
23255func (s *MachineType) MarshalJSON() ([]byte, error) {
23256	type NoMethod MachineType
23257	raw := NoMethod(*s)
23258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23259}
23260
23261type MachineTypeAccelerators struct {
23262	// GuestAcceleratorCount: Number of accelerator cards exposed to the
23263	// guest.
23264	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
23265
23266	// GuestAcceleratorType: The accelerator type resource name, not a full
23267	// URL, e.g. 'nvidia-tesla-k80'.
23268	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
23269
23270	// ForceSendFields is a list of field names (e.g.
23271	// "GuestAcceleratorCount") to unconditionally include in API requests.
23272	// By default, fields with empty values are omitted from API requests.
23273	// However, any non-pointer, non-interface field appearing in
23274	// ForceSendFields will be sent to the server regardless of whether the
23275	// field is empty or not. This may be used to include empty fields in
23276	// Patch requests.
23277	ForceSendFields []string `json:"-"`
23278
23279	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
23280	// include in API requests with the JSON null value. By default, fields
23281	// with empty values are omitted from API requests. However, any field
23282	// with an empty value appearing in NullFields will be sent to the
23283	// server as null. It is an error if a field in this list has a
23284	// non-empty value. This may be used to include null fields in Patch
23285	// requests.
23286	NullFields []string `json:"-"`
23287}
23288
23289func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
23290	type NoMethod MachineTypeAccelerators
23291	raw := NoMethod(*s)
23292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23293}
23294
23295type MachineTypeAggregatedList struct {
23296	// Id: [Output Only] Unique identifier for the resource; defined by the
23297	// server.
23298	Id string `json:"id,omitempty"`
23299
23300	// Items: A list of MachineTypesScopedList resources.
23301	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
23302
23303	// Kind: [Output Only] Type of resource. Always
23304	// compute#machineTypeAggregatedList for aggregated lists of machine
23305	// types.
23306	Kind string `json:"kind,omitempty"`
23307
23308	// NextPageToken: [Output Only] This token allows you to get the next
23309	// page of results for list requests. If the number of results is larger
23310	// than maxResults, use the nextPageToken as a value for the query
23311	// parameter pageToken in the next list request. Subsequent list
23312	// requests will have their own nextPageToken to continue paging through
23313	// the results.
23314	NextPageToken string `json:"nextPageToken,omitempty"`
23315
23316	// SelfLink: [Output Only] Server-defined URL for this resource.
23317	SelfLink string `json:"selfLink,omitempty"`
23318
23319	// Unreachables: [Output Only] Unreachable resources.
23320	Unreachables []string `json:"unreachables,omitempty"`
23321
23322	// Warning: [Output Only] Informational warning message.
23323	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
23324
23325	// ServerResponse contains the HTTP response code and headers from the
23326	// server.
23327	googleapi.ServerResponse `json:"-"`
23328
23329	// ForceSendFields is a list of field names (e.g. "Id") to
23330	// unconditionally include in API requests. By default, fields with
23331	// empty values are omitted from API requests. However, any non-pointer,
23332	// non-interface field appearing in ForceSendFields will be sent to the
23333	// server regardless of whether the field is empty or not. This may be
23334	// used to include empty fields in Patch requests.
23335	ForceSendFields []string `json:"-"`
23336
23337	// NullFields is a list of field names (e.g. "Id") to include in API
23338	// requests with the JSON null value. By default, fields with empty
23339	// values are omitted from API requests. However, any field with an
23340	// empty value appearing in NullFields will be sent to the server as
23341	// null. It is an error if a field in this list has a non-empty value.
23342	// This may be used to include null fields in Patch requests.
23343	NullFields []string `json:"-"`
23344}
23345
23346func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
23347	type NoMethod MachineTypeAggregatedList
23348	raw := NoMethod(*s)
23349	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23350}
23351
23352// MachineTypeAggregatedListWarning: [Output Only] Informational warning
23353// message.
23354type MachineTypeAggregatedListWarning struct {
23355	// Code: [Output Only] A warning code, if applicable. For example,
23356	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23357	// the response.
23358	//
23359	// Possible values:
23360	//   "CLEANUP_FAILED"
23361	//   "DEPRECATED_RESOURCE_USED"
23362	//   "DEPRECATED_TYPE_USED"
23363	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23364	//   "EXPERIMENTAL_TYPE_USED"
23365	//   "EXTERNAL_API_WARNING"
23366	//   "FIELD_VALUE_OVERRIDEN"
23367	//   "INJECTED_KERNELS_DEPRECATED"
23368	//   "LARGE_DEPLOYMENT_WARNING"
23369	//   "MISSING_TYPE_DEPENDENCY"
23370	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23371	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23372	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23373	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23374	//   "NEXT_HOP_NOT_RUNNING"
23375	//   "NOT_CRITICAL_ERROR"
23376	//   "NO_RESULTS_ON_PAGE"
23377	//   "PARTIAL_SUCCESS"
23378	//   "REQUIRED_TOS_AGREEMENT"
23379	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23380	//   "RESOURCE_NOT_DELETED"
23381	//   "SCHEMA_VALIDATION_IGNORED"
23382	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23383	//   "UNDECLARED_PROPERTIES"
23384	//   "UNREACHABLE"
23385	Code string `json:"code,omitempty"`
23386
23387	// Data: [Output Only] Metadata about this warning in key: value format.
23388	// For example:
23389	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23390	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
23391
23392	// Message: [Output Only] A human-readable description of the warning
23393	// code.
23394	Message string `json:"message,omitempty"`
23395
23396	// ForceSendFields is a list of field names (e.g. "Code") to
23397	// unconditionally include in API requests. By default, fields with
23398	// empty values are omitted from API requests. However, any non-pointer,
23399	// non-interface field appearing in ForceSendFields will be sent to the
23400	// server regardless of whether the field is empty or not. This may be
23401	// used to include empty fields in Patch requests.
23402	ForceSendFields []string `json:"-"`
23403
23404	// NullFields is a list of field names (e.g. "Code") to include in API
23405	// requests with the JSON null value. By default, fields with empty
23406	// values are omitted from API requests. However, any field with an
23407	// empty value appearing in NullFields will be sent to the server as
23408	// null. It is an error if a field in this list has a non-empty value.
23409	// This may be used to include null fields in Patch requests.
23410	NullFields []string `json:"-"`
23411}
23412
23413func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
23414	type NoMethod MachineTypeAggregatedListWarning
23415	raw := NoMethod(*s)
23416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23417}
23418
23419type MachineTypeAggregatedListWarningData struct {
23420	// Key: [Output Only] A key that provides more detail on the warning
23421	// being returned. For example, for warnings where there are no results
23422	// in a list request for a particular zone, this key might be scope and
23423	// the key value might be the zone name. Other examples might be a key
23424	// indicating a deprecated resource and a suggested replacement, or a
23425	// warning about invalid network settings (for example, if an instance
23426	// attempts to perform IP forwarding but is not enabled for IP
23427	// forwarding).
23428	Key string `json:"key,omitempty"`
23429
23430	// Value: [Output Only] A warning data value corresponding to the key.
23431	Value string `json:"value,omitempty"`
23432
23433	// ForceSendFields is a list of field names (e.g. "Key") to
23434	// unconditionally include in API requests. By default, fields with
23435	// empty values are omitted from API requests. However, any non-pointer,
23436	// non-interface field appearing in ForceSendFields will be sent to the
23437	// server regardless of whether the field is empty or not. This may be
23438	// used to include empty fields in Patch requests.
23439	ForceSendFields []string `json:"-"`
23440
23441	// NullFields is a list of field names (e.g. "Key") to include in API
23442	// requests with the JSON null value. By default, fields with empty
23443	// values are omitted from API requests. However, any field with an
23444	// empty value appearing in NullFields will be sent to the server as
23445	// null. It is an error if a field in this list has a non-empty value.
23446	// This may be used to include null fields in Patch requests.
23447	NullFields []string `json:"-"`
23448}
23449
23450func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23451	type NoMethod MachineTypeAggregatedListWarningData
23452	raw := NoMethod(*s)
23453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23454}
23455
23456// MachineTypeList: Contains a list of machine types.
23457type MachineTypeList struct {
23458	// Id: [Output Only] Unique identifier for the resource; defined by the
23459	// server.
23460	Id string `json:"id,omitempty"`
23461
23462	// Items: A list of MachineType resources.
23463	Items []*MachineType `json:"items,omitempty"`
23464
23465	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
23466	// for lists of machine types.
23467	Kind string `json:"kind,omitempty"`
23468
23469	// NextPageToken: [Output Only] This token allows you to get the next
23470	// page of results for list requests. If the number of results is larger
23471	// than maxResults, use the nextPageToken as a value for the query
23472	// parameter pageToken in the next list request. Subsequent list
23473	// requests will have their own nextPageToken to continue paging through
23474	// the results.
23475	NextPageToken string `json:"nextPageToken,omitempty"`
23476
23477	// SelfLink: [Output Only] Server-defined URL for this resource.
23478	SelfLink string `json:"selfLink,omitempty"`
23479
23480	// Warning: [Output Only] Informational warning message.
23481	Warning *MachineTypeListWarning `json:"warning,omitempty"`
23482
23483	// ServerResponse contains the HTTP response code and headers from the
23484	// server.
23485	googleapi.ServerResponse `json:"-"`
23486
23487	// ForceSendFields is a list of field names (e.g. "Id") to
23488	// unconditionally include in API requests. By default, fields with
23489	// empty values are omitted from API requests. However, any non-pointer,
23490	// non-interface field appearing in ForceSendFields will be sent to the
23491	// server regardless of whether the field is empty or not. This may be
23492	// used to include empty fields in Patch requests.
23493	ForceSendFields []string `json:"-"`
23494
23495	// NullFields is a list of field names (e.g. "Id") to include in API
23496	// requests with the JSON null value. By default, fields with empty
23497	// values are omitted from API requests. However, any field with an
23498	// empty value appearing in NullFields will be sent to the server as
23499	// null. It is an error if a field in this list has a non-empty value.
23500	// This may be used to include null fields in Patch requests.
23501	NullFields []string `json:"-"`
23502}
23503
23504func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
23505	type NoMethod MachineTypeList
23506	raw := NoMethod(*s)
23507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23508}
23509
23510// MachineTypeListWarning: [Output Only] Informational warning message.
23511type MachineTypeListWarning struct {
23512	// Code: [Output Only] A warning code, if applicable. For example,
23513	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23514	// the response.
23515	//
23516	// Possible values:
23517	//   "CLEANUP_FAILED"
23518	//   "DEPRECATED_RESOURCE_USED"
23519	//   "DEPRECATED_TYPE_USED"
23520	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23521	//   "EXPERIMENTAL_TYPE_USED"
23522	//   "EXTERNAL_API_WARNING"
23523	//   "FIELD_VALUE_OVERRIDEN"
23524	//   "INJECTED_KERNELS_DEPRECATED"
23525	//   "LARGE_DEPLOYMENT_WARNING"
23526	//   "MISSING_TYPE_DEPENDENCY"
23527	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23528	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23529	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23530	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23531	//   "NEXT_HOP_NOT_RUNNING"
23532	//   "NOT_CRITICAL_ERROR"
23533	//   "NO_RESULTS_ON_PAGE"
23534	//   "PARTIAL_SUCCESS"
23535	//   "REQUIRED_TOS_AGREEMENT"
23536	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23537	//   "RESOURCE_NOT_DELETED"
23538	//   "SCHEMA_VALIDATION_IGNORED"
23539	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23540	//   "UNDECLARED_PROPERTIES"
23541	//   "UNREACHABLE"
23542	Code string `json:"code,omitempty"`
23543
23544	// Data: [Output Only] Metadata about this warning in key: value format.
23545	// For example:
23546	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23547	Data []*MachineTypeListWarningData `json:"data,omitempty"`
23548
23549	// Message: [Output Only] A human-readable description of the warning
23550	// code.
23551	Message string `json:"message,omitempty"`
23552
23553	// ForceSendFields is a list of field names (e.g. "Code") to
23554	// unconditionally include in API requests. By default, fields with
23555	// empty values are omitted from API requests. However, any non-pointer,
23556	// non-interface field appearing in ForceSendFields will be sent to the
23557	// server regardless of whether the field is empty or not. This may be
23558	// used to include empty fields in Patch requests.
23559	ForceSendFields []string `json:"-"`
23560
23561	// NullFields is a list of field names (e.g. "Code") to include in API
23562	// requests with the JSON null value. By default, fields with empty
23563	// values are omitted from API requests. However, any field with an
23564	// empty value appearing in NullFields will be sent to the server as
23565	// null. It is an error if a field in this list has a non-empty value.
23566	// This may be used to include null fields in Patch requests.
23567	NullFields []string `json:"-"`
23568}
23569
23570func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
23571	type NoMethod MachineTypeListWarning
23572	raw := NoMethod(*s)
23573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23574}
23575
23576type MachineTypeListWarningData struct {
23577	// Key: [Output Only] A key that provides more detail on the warning
23578	// being returned. For example, for warnings where there are no results
23579	// in a list request for a particular zone, this key might be scope and
23580	// the key value might be the zone name. Other examples might be a key
23581	// indicating a deprecated resource and a suggested replacement, or a
23582	// warning about invalid network settings (for example, if an instance
23583	// attempts to perform IP forwarding but is not enabled for IP
23584	// forwarding).
23585	Key string `json:"key,omitempty"`
23586
23587	// Value: [Output Only] A warning data value corresponding to the key.
23588	Value string `json:"value,omitempty"`
23589
23590	// ForceSendFields is a list of field names (e.g. "Key") to
23591	// unconditionally include in API requests. By default, fields with
23592	// empty values are omitted from API requests. However, any non-pointer,
23593	// non-interface field appearing in ForceSendFields will be sent to the
23594	// server regardless of whether the field is empty or not. This may be
23595	// used to include empty fields in Patch requests.
23596	ForceSendFields []string `json:"-"`
23597
23598	// NullFields is a list of field names (e.g. "Key") to include in API
23599	// requests with the JSON null value. By default, fields with empty
23600	// values are omitted from API requests. However, any field with an
23601	// empty value appearing in NullFields will be sent to the server as
23602	// null. It is an error if a field in this list has a non-empty value.
23603	// This may be used to include null fields in Patch requests.
23604	NullFields []string `json:"-"`
23605}
23606
23607func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
23608	type NoMethod MachineTypeListWarningData
23609	raw := NoMethod(*s)
23610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23611}
23612
23613type MachineTypesScopedList struct {
23614	// MachineTypes: [Output Only] A list of machine types contained in this
23615	// scope.
23616	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
23617
23618	// Warning: [Output Only] An informational warning that appears when the
23619	// machine types list is empty.
23620	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
23621
23622	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
23623	// unconditionally include in API requests. By default, fields with
23624	// empty values are omitted from API requests. However, any non-pointer,
23625	// non-interface field appearing in ForceSendFields will be sent to the
23626	// server regardless of whether the field is empty or not. This may be
23627	// used to include empty fields in Patch requests.
23628	ForceSendFields []string `json:"-"`
23629
23630	// NullFields is a list of field names (e.g. "MachineTypes") to include
23631	// in API requests with the JSON null value. By default, fields with
23632	// empty values are omitted from API requests. However, any field with
23633	// an empty value appearing in NullFields will be sent to the server as
23634	// null. It is an error if a field in this list has a non-empty value.
23635	// This may be used to include null fields in Patch requests.
23636	NullFields []string `json:"-"`
23637}
23638
23639func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
23640	type NoMethod MachineTypesScopedList
23641	raw := NoMethod(*s)
23642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23643}
23644
23645// MachineTypesScopedListWarning: [Output Only] An informational warning
23646// that appears when the machine types list is empty.
23647type MachineTypesScopedListWarning struct {
23648	// Code: [Output Only] A warning code, if applicable. For example,
23649	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23650	// the response.
23651	//
23652	// Possible values:
23653	//   "CLEANUP_FAILED"
23654	//   "DEPRECATED_RESOURCE_USED"
23655	//   "DEPRECATED_TYPE_USED"
23656	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23657	//   "EXPERIMENTAL_TYPE_USED"
23658	//   "EXTERNAL_API_WARNING"
23659	//   "FIELD_VALUE_OVERRIDEN"
23660	//   "INJECTED_KERNELS_DEPRECATED"
23661	//   "LARGE_DEPLOYMENT_WARNING"
23662	//   "MISSING_TYPE_DEPENDENCY"
23663	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23664	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23665	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23666	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23667	//   "NEXT_HOP_NOT_RUNNING"
23668	//   "NOT_CRITICAL_ERROR"
23669	//   "NO_RESULTS_ON_PAGE"
23670	//   "PARTIAL_SUCCESS"
23671	//   "REQUIRED_TOS_AGREEMENT"
23672	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23673	//   "RESOURCE_NOT_DELETED"
23674	//   "SCHEMA_VALIDATION_IGNORED"
23675	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23676	//   "UNDECLARED_PROPERTIES"
23677	//   "UNREACHABLE"
23678	Code string `json:"code,omitempty"`
23679
23680	// Data: [Output Only] Metadata about this warning in key: value format.
23681	// For example:
23682	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23683	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
23684
23685	// Message: [Output Only] A human-readable description of the warning
23686	// code.
23687	Message string `json:"message,omitempty"`
23688
23689	// ForceSendFields is a list of field names (e.g. "Code") to
23690	// unconditionally include in API requests. By default, fields with
23691	// empty values are omitted from API requests. However, any non-pointer,
23692	// non-interface field appearing in ForceSendFields will be sent to the
23693	// server regardless of whether the field is empty or not. This may be
23694	// used to include empty fields in Patch requests.
23695	ForceSendFields []string `json:"-"`
23696
23697	// NullFields is a list of field names (e.g. "Code") to include in API
23698	// requests with the JSON null value. By default, fields with empty
23699	// values are omitted from API requests. However, any field with an
23700	// empty value appearing in NullFields will be sent to the server as
23701	// null. It is an error if a field in this list has a non-empty value.
23702	// This may be used to include null fields in Patch requests.
23703	NullFields []string `json:"-"`
23704}
23705
23706func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
23707	type NoMethod MachineTypesScopedListWarning
23708	raw := NoMethod(*s)
23709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23710}
23711
23712type MachineTypesScopedListWarningData struct {
23713	// Key: [Output Only] A key that provides more detail on the warning
23714	// being returned. For example, for warnings where there are no results
23715	// in a list request for a particular zone, this key might be scope and
23716	// the key value might be the zone name. Other examples might be a key
23717	// indicating a deprecated resource and a suggested replacement, or a
23718	// warning about invalid network settings (for example, if an instance
23719	// attempts to perform IP forwarding but is not enabled for IP
23720	// forwarding).
23721	Key string `json:"key,omitempty"`
23722
23723	// Value: [Output Only] A warning data value corresponding to the key.
23724	Value string `json:"value,omitempty"`
23725
23726	// ForceSendFields is a list of field names (e.g. "Key") to
23727	// unconditionally include in API requests. By default, fields with
23728	// empty values are omitted from API requests. However, any non-pointer,
23729	// non-interface field appearing in ForceSendFields will be sent to the
23730	// server regardless of whether the field is empty or not. This may be
23731	// used to include empty fields in Patch requests.
23732	ForceSendFields []string `json:"-"`
23733
23734	// NullFields is a list of field names (e.g. "Key") to include in API
23735	// requests with the JSON null value. By default, fields with empty
23736	// values are omitted from API requests. However, any field with an
23737	// empty value appearing in NullFields will be sent to the server as
23738	// null. It is an error if a field in this list has a non-empty value.
23739	// This may be used to include null fields in Patch requests.
23740	NullFields []string `json:"-"`
23741}
23742
23743func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
23744	type NoMethod MachineTypesScopedListWarningData
23745	raw := NoMethod(*s)
23746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23747}
23748
23749// ManagedInstance: A Managed Instance resource.
23750type ManagedInstance struct {
23751	// CurrentAction: [Output Only] The current action that the managed
23752	// instance group has scheduled for the instance. Possible values:
23753	// - NONE The instance is running, and the managed instance group does
23754	// not have any scheduled actions for this instance.
23755	// - CREATING The managed instance group is creating this instance. If
23756	// the group fails to create this instance, it will try again until it
23757	// is successful.
23758	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
23759	// to create this instance only once. If the group fails to create this
23760	// instance, it does not try again and the group's targetSize value is
23761	// decreased instead.
23762	// - RECREATING The managed instance group is recreating this instance.
23763	//
23764	// - DELETING The managed instance group is permanently deleting this
23765	// instance.
23766	// - ABANDONING The managed instance group is abandoning this instance.
23767	// The instance will be removed from the instance group and from any
23768	// target pools that are associated with this group.
23769	// - RESTARTING The managed instance group is restarting the instance.
23770	//
23771	// - REFRESHING The managed instance group is applying configuration
23772	// changes to the instance without stopping it. For example, the group
23773	// can update the target pool list for an instance without stopping that
23774	// instance.
23775	// - VERIFYING The managed instance group has created the instance and
23776	// it is in the process of being verified.
23777	//
23778	// Possible values:
23779	//   "ABANDONING"
23780	//   "CREATING"
23781	//   "CREATING_WITHOUT_RETRIES"
23782	//   "DELETING"
23783	//   "NONE"
23784	//   "RECREATING"
23785	//   "REFRESHING"
23786	//   "RESTARTING"
23787	//   "VERIFYING"
23788	CurrentAction string `json:"currentAction,omitempty"`
23789
23790	// Id: [Output only] The unique identifier for this resource. This field
23791	// is empty when instance does not exist.
23792	Id uint64 `json:"id,omitempty,string"`
23793
23794	// Instance: [Output Only] The URL of the instance. The URL can exist
23795	// even if the instance has not yet been created.
23796	Instance string `json:"instance,omitempty"`
23797
23798	// InstanceHealth: [Output Only] Health state of the instance per
23799	// health-check.
23800	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
23801
23802	// InstanceStatus: [Output Only] The status of the instance. This field
23803	// is empty when the instance does not exist.
23804	//
23805	// Possible values:
23806	//   "DEPROVISIONING"
23807	//   "PROVISIONING"
23808	//   "REPAIRING"
23809	//   "RUNNING"
23810	//   "STAGING"
23811	//   "STOPPED"
23812	//   "STOPPING"
23813	//   "SUSPENDED"
23814	//   "SUSPENDING"
23815	//   "TERMINATED"
23816	InstanceStatus string `json:"instanceStatus,omitempty"`
23817
23818	// LastAttempt: [Output Only] Information about the last attempt to
23819	// create or delete the instance.
23820	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
23821
23822	// PreservedStateFromConfig: [Output Only] Preserved state applied from
23823	// per-instance config for this instance.
23824	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
23825
23826	// PreservedStateFromPolicy: [Output Only] Preserved state generated
23827	// based on stateful policy for this instance.
23828	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
23829
23830	// Version: [Output Only] Intended version of this instance.
23831	Version *ManagedInstanceVersion `json:"version,omitempty"`
23832
23833	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
23834	// unconditionally include in API requests. By default, fields with
23835	// empty values are omitted from API requests. However, any non-pointer,
23836	// non-interface field appearing in ForceSendFields will be sent to the
23837	// server regardless of whether the field is empty or not. This may be
23838	// used to include empty fields in Patch requests.
23839	ForceSendFields []string `json:"-"`
23840
23841	// NullFields is a list of field names (e.g. "CurrentAction") to include
23842	// in API requests with the JSON null value. By default, fields with
23843	// empty values are omitted from API requests. However, any field with
23844	// an empty value appearing in NullFields will be sent to the server as
23845	// null. It is an error if a field in this list has a non-empty value.
23846	// This may be used to include null fields in Patch requests.
23847	NullFields []string `json:"-"`
23848}
23849
23850func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
23851	type NoMethod ManagedInstance
23852	raw := NoMethod(*s)
23853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23854}
23855
23856type ManagedInstanceInstanceHealth struct {
23857	// DetailedHealthState: [Output Only] The current detailed instance
23858	// health state.
23859	//
23860	// Possible values:
23861	//   "DRAINING"
23862	//   "HEALTHY"
23863	//   "TIMEOUT"
23864	//   "UNHEALTHY"
23865	//   "UNKNOWN"
23866	DetailedHealthState string `json:"detailedHealthState,omitempty"`
23867
23868	// HealthCheck: [Output Only] The URL for the health check that verifies
23869	// whether the instance is healthy.
23870	HealthCheck string `json:"healthCheck,omitempty"`
23871
23872	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
23873	// to unconditionally include in API requests. By default, fields with
23874	// empty values are omitted from API requests. However, any non-pointer,
23875	// non-interface field appearing in ForceSendFields will be sent to the
23876	// server regardless of whether the field is empty or not. This may be
23877	// used to include empty fields in Patch requests.
23878	ForceSendFields []string `json:"-"`
23879
23880	// NullFields is a list of field names (e.g. "DetailedHealthState") to
23881	// include in API requests with the JSON null value. By default, fields
23882	// with empty values are omitted from API requests. However, any field
23883	// with an empty value appearing in NullFields will be sent to the
23884	// server as null. It is an error if a field in this list has a
23885	// non-empty value. This may be used to include null fields in Patch
23886	// requests.
23887	NullFields []string `json:"-"`
23888}
23889
23890func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
23891	type NoMethod ManagedInstanceInstanceHealth
23892	raw := NoMethod(*s)
23893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23894}
23895
23896type ManagedInstanceLastAttempt struct {
23897	// Errors: [Output Only] Encountered errors during the last attempt to
23898	// create or delete the instance.
23899	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
23900
23901	// ForceSendFields is a list of field names (e.g. "Errors") to
23902	// unconditionally include in API requests. By default, fields with
23903	// empty values are omitted from API requests. However, any non-pointer,
23904	// non-interface field appearing in ForceSendFields will be sent to the
23905	// server regardless of whether the field is empty or not. This may be
23906	// used to include empty fields in Patch requests.
23907	ForceSendFields []string `json:"-"`
23908
23909	// NullFields is a list of field names (e.g. "Errors") to include in API
23910	// requests with the JSON null value. By default, fields with empty
23911	// values are omitted from API requests. However, any field with an
23912	// empty value appearing in NullFields will be sent to the server as
23913	// null. It is an error if a field in this list has a non-empty value.
23914	// This may be used to include null fields in Patch requests.
23915	NullFields []string `json:"-"`
23916}
23917
23918func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
23919	type NoMethod ManagedInstanceLastAttempt
23920	raw := NoMethod(*s)
23921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23922}
23923
23924// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
23925// during the last attempt to create or delete the instance.
23926type ManagedInstanceLastAttemptErrors struct {
23927	// Errors: [Output Only] The array of errors encountered while
23928	// processing this operation.
23929	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
23930
23931	// ForceSendFields is a list of field names (e.g. "Errors") to
23932	// unconditionally include in API requests. By default, fields with
23933	// empty values are omitted from API requests. However, any non-pointer,
23934	// non-interface field appearing in ForceSendFields will be sent to the
23935	// server regardless of whether the field is empty or not. This may be
23936	// used to include empty fields in Patch requests.
23937	ForceSendFields []string `json:"-"`
23938
23939	// NullFields is a list of field names (e.g. "Errors") to include in API
23940	// requests with the JSON null value. By default, fields with empty
23941	// values are omitted from API requests. However, any field with an
23942	// empty value appearing in NullFields will be sent to the server as
23943	// null. It is an error if a field in this list has a non-empty value.
23944	// This may be used to include null fields in Patch requests.
23945	NullFields []string `json:"-"`
23946}
23947
23948func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
23949	type NoMethod ManagedInstanceLastAttemptErrors
23950	raw := NoMethod(*s)
23951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23952}
23953
23954type ManagedInstanceLastAttemptErrorsErrors struct {
23955	// Code: [Output Only] The error type identifier for this error.
23956	Code string `json:"code,omitempty"`
23957
23958	// Location: [Output Only] Indicates the field in the request that
23959	// caused the error. This property is optional.
23960	Location string `json:"location,omitempty"`
23961
23962	// Message: [Output Only] An optional, human-readable error message.
23963	Message string `json:"message,omitempty"`
23964
23965	// ForceSendFields is a list of field names (e.g. "Code") to
23966	// unconditionally include in API requests. By default, fields with
23967	// empty values are omitted from API requests. However, any non-pointer,
23968	// non-interface field appearing in ForceSendFields will be sent to the
23969	// server regardless of whether the field is empty or not. This may be
23970	// used to include empty fields in Patch requests.
23971	ForceSendFields []string `json:"-"`
23972
23973	// NullFields is a list of field names (e.g. "Code") to include in API
23974	// requests with the JSON null value. By default, fields with empty
23975	// values are omitted from API requests. However, any field with an
23976	// empty value appearing in NullFields will be sent to the server as
23977	// null. It is an error if a field in this list has a non-empty value.
23978	// This may be used to include null fields in Patch requests.
23979	NullFields []string `json:"-"`
23980}
23981
23982func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
23983	type NoMethod ManagedInstanceLastAttemptErrorsErrors
23984	raw := NoMethod(*s)
23985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23986}
23987
23988type ManagedInstanceVersion struct {
23989	// InstanceTemplate: [Output Only] The intended template of the
23990	// instance. This field is empty when current_action is one of {
23991	// DELETING, ABANDONING }.
23992	InstanceTemplate string `json:"instanceTemplate,omitempty"`
23993
23994	// Name: [Output Only] Name of the version.
23995	Name string `json:"name,omitempty"`
23996
23997	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
23998	// unconditionally include in API requests. By default, fields with
23999	// empty values are omitted from API requests. However, any non-pointer,
24000	// non-interface field appearing in ForceSendFields will be sent to the
24001	// server regardless of whether the field is empty or not. This may be
24002	// used to include empty fields in Patch requests.
24003	ForceSendFields []string `json:"-"`
24004
24005	// NullFields is a list of field names (e.g. "InstanceTemplate") to
24006	// include in API requests with the JSON null value. By default, fields
24007	// with empty values are omitted from API requests. However, any field
24008	// with an empty value appearing in NullFields will be sent to the
24009	// server as null. It is an error if a field in this list has a
24010	// non-empty value. This may be used to include null fields in Patch
24011	// requests.
24012	NullFields []string `json:"-"`
24013}
24014
24015func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
24016	type NoMethod ManagedInstanceVersion
24017	raw := NoMethod(*s)
24018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24019}
24020
24021// Metadata: A metadata key/value entry.
24022type Metadata struct {
24023	// Fingerprint: Specifies a fingerprint for this request, which is
24024	// essentially a hash of the metadata's contents and used for optimistic
24025	// locking. The fingerprint is initially generated by Compute Engine and
24026	// changes after every request to modify or update metadata. You must
24027	// always provide an up-to-date fingerprint hash in order to update or
24028	// change metadata, otherwise the request will fail with error 412
24029	// conditionNotMet.
24030	//
24031	// To see the latest fingerprint, make a get() request to retrieve the
24032	// resource.
24033	Fingerprint string `json:"fingerprint,omitempty"`
24034
24035	// Items: Array of key/value pairs. The total size of all keys and
24036	// values must be less than 512 KB.
24037	Items []*MetadataItems `json:"items,omitempty"`
24038
24039	// Kind: [Output Only] Type of the resource. Always compute#metadata for
24040	// metadata.
24041	Kind string `json:"kind,omitempty"`
24042
24043	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
24044	// unconditionally include in API requests. By default, fields with
24045	// empty values are omitted from API requests. However, any non-pointer,
24046	// non-interface field appearing in ForceSendFields will be sent to the
24047	// server regardless of whether the field is empty or not. This may be
24048	// used to include empty fields in Patch requests.
24049	ForceSendFields []string `json:"-"`
24050
24051	// NullFields is a list of field names (e.g. "Fingerprint") to include
24052	// in API requests with the JSON null value. By default, fields with
24053	// empty values are omitted from API requests. However, any field with
24054	// an empty value appearing in NullFields will be sent to the server as
24055	// null. It is an error if a field in this list has a non-empty value.
24056	// This may be used to include null fields in Patch requests.
24057	NullFields []string `json:"-"`
24058}
24059
24060func (s *Metadata) MarshalJSON() ([]byte, error) {
24061	type NoMethod Metadata
24062	raw := NoMethod(*s)
24063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24064}
24065
24066type MetadataItems struct {
24067	// Key: Key for the metadata entry. Keys must conform to the following
24068	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
24069	// reflected as part of a URL in the metadata server. Additionally, to
24070	// avoid ambiguity, keys must not conflict with any other metadata keys
24071	// for the project.
24072	Key string `json:"key,omitempty"`
24073
24074	// Value: Value for the metadata entry. These are free-form strings, and
24075	// only have meaning as interpreted by the image running in the
24076	// instance. The only restriction placed on values is that their size
24077	// must be less than or equal to 262144 bytes (256 KiB).
24078	Value *string `json:"value,omitempty"`
24079
24080	// ForceSendFields is a list of field names (e.g. "Key") to
24081	// unconditionally include in API requests. By default, fields with
24082	// empty values are omitted from API requests. However, any non-pointer,
24083	// non-interface field appearing in ForceSendFields will be sent to the
24084	// server regardless of whether the field is empty or not. This may be
24085	// used to include empty fields in Patch requests.
24086	ForceSendFields []string `json:"-"`
24087
24088	// NullFields is a list of field names (e.g. "Key") to include in API
24089	// requests with the JSON null value. By default, fields with empty
24090	// values are omitted from API requests. However, any field with an
24091	// empty value appearing in NullFields will be sent to the server as
24092	// null. It is an error if a field in this list has a non-empty value.
24093	// This may be used to include null fields in Patch requests.
24094	NullFields []string `json:"-"`
24095}
24096
24097func (s *MetadataItems) MarshalJSON() ([]byte, error) {
24098	type NoMethod MetadataItems
24099	raw := NoMethod(*s)
24100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24101}
24102
24103// MetadataFilter: Opaque filter criteria used by loadbalancers to
24104// restrict routing configuration to a limited set of loadbalancing
24105// proxies. Proxies and sidecars involved in loadbalancing would
24106// typically present metadata to the loadbalancers which need to match
24107// criteria specified here. If a match takes place, the relevant
24108// configuration is made available to those proxies.
24109// For each metadataFilter in this list, if its filterMatchCriteria is
24110// set to MATCH_ANY, at least one of the filterLabels must match the
24111// corresponding label provided in the metadata. If its
24112// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
24113// must match with corresponding labels provided in the metadata.
24114// An example for using metadataFilters would be: if loadbalancing
24115// involves  Envoys, they will only receive routing configuration when
24116// values in metadataFilters match values supplied in <a
24117// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
24118// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
24119// requests to loadbalancers.
24120type MetadataFilter struct {
24121	// FilterLabels: The list of label value pairs that must match labels in
24122	// the provided metadata based on filterMatchCriteria
24123	// This list must not be empty and can have at the most 64 entries.
24124	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
24125
24126	// FilterMatchCriteria: Specifies how individual filterLabel matches
24127	// within the list of filterLabels contribute towards the overall
24128	// metadataFilter match.
24129	// Supported values are:
24130	// - MATCH_ANY: At least one of the filterLabels must have a matching
24131	// label in the provided metadata.
24132	// - MATCH_ALL: All filterLabels must have matching labels in the
24133	// provided metadata.
24134	//
24135	// Possible values:
24136	//   "MATCH_ALL"
24137	//   "MATCH_ANY"
24138	//   "NOT_SET"
24139	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
24140
24141	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
24142	// unconditionally include in API requests. By default, fields with
24143	// empty values are omitted from API requests. However, any non-pointer,
24144	// non-interface field appearing in ForceSendFields will be sent to the
24145	// server regardless of whether the field is empty or not. This may be
24146	// used to include empty fields in Patch requests.
24147	ForceSendFields []string `json:"-"`
24148
24149	// NullFields is a list of field names (e.g. "FilterLabels") to include
24150	// in API requests with the JSON null value. By default, fields with
24151	// empty values are omitted from API requests. However, any field with
24152	// an empty value appearing in NullFields will be sent to the server as
24153	// null. It is an error if a field in this list has a non-empty value.
24154	// This may be used to include null fields in Patch requests.
24155	NullFields []string `json:"-"`
24156}
24157
24158func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
24159	type NoMethod MetadataFilter
24160	raw := NoMethod(*s)
24161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24162}
24163
24164// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
24165// are expected to match corresponding labels presented as metadata to
24166// the loadbalancer.
24167type MetadataFilterLabelMatch struct {
24168	// Name: Name of metadata label.
24169	// The name can have a maximum length of 1024 characters and must be at
24170	// least 1 character long.
24171	Name string `json:"name,omitempty"`
24172
24173	// Value: The value of the label must match the specified value.
24174	// value can have a maximum length of 1024 characters.
24175	Value string `json:"value,omitempty"`
24176
24177	// ForceSendFields is a list of field names (e.g. "Name") to
24178	// unconditionally include in API requests. By default, fields with
24179	// empty values are omitted from API requests. However, any non-pointer,
24180	// non-interface field appearing in ForceSendFields will be sent to the
24181	// server regardless of whether the field is empty or not. This may be
24182	// used to include empty fields in Patch requests.
24183	ForceSendFields []string `json:"-"`
24184
24185	// NullFields is a list of field names (e.g. "Name") to include in API
24186	// requests with the JSON null value. By default, fields with empty
24187	// values are omitted from API requests. However, any field with an
24188	// empty value appearing in NullFields will be sent to the server as
24189	// null. It is an error if a field in this list has a non-empty value.
24190	// This may be used to include null fields in Patch requests.
24191	NullFields []string `json:"-"`
24192}
24193
24194func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
24195	type NoMethod MetadataFilterLabelMatch
24196	raw := NoMethod(*s)
24197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24198}
24199
24200// NamedPort: The named port. For example: .
24201type NamedPort struct {
24202	// Name: The name for this named port. The name must be 1-63 characters
24203	// long, and comply with RFC1035.
24204	Name string `json:"name,omitempty"`
24205
24206	// Port: The port number, which can be a value between 1 and 65535.
24207	Port int64 `json:"port,omitempty"`
24208
24209	// ForceSendFields is a list of field names (e.g. "Name") to
24210	// unconditionally include in API requests. By default, fields with
24211	// empty values are omitted from API requests. However, any non-pointer,
24212	// non-interface field appearing in ForceSendFields will be sent to the
24213	// server regardless of whether the field is empty or not. This may be
24214	// used to include empty fields in Patch requests.
24215	ForceSendFields []string `json:"-"`
24216
24217	// NullFields is a list of field names (e.g. "Name") to include in API
24218	// requests with the JSON null value. By default, fields with empty
24219	// values are omitted from API requests. However, any field with an
24220	// empty value appearing in NullFields will be sent to the server as
24221	// null. It is an error if a field in this list has a non-empty value.
24222	// This may be used to include null fields in Patch requests.
24223	NullFields []string `json:"-"`
24224}
24225
24226func (s *NamedPort) MarshalJSON() ([]byte, error) {
24227	type NoMethod NamedPort
24228	raw := NoMethod(*s)
24229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24230}
24231
24232// Network: Represents a VPC Network resource.
24233//
24234// Networks connect resources to each other and to the internet. For
24235// more information, read Virtual Private Cloud (VPC) Network. (==
24236// resource_for {$api_version}.networks ==)
24237type Network struct {
24238	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
24239	// internal addresses that are legal on this network. This range is a
24240	// CIDR specification, for example: 192.168.0.0/16. Provided by the
24241	// client when the network is created.
24242	IPv4Range string `json:"IPv4Range,omitempty"`
24243
24244	// AutoCreateSubnetworks: Must be set to create a VPC network. If not
24245	// set, a legacy network is created.
24246	//
24247	// When set to true, the VPC network is created in auto mode. When set
24248	// to false, the VPC network is created in custom mode.
24249	//
24250	// An auto mode VPC network starts with one subnet per region. Each
24251	// subnet has a predetermined range as described in Auto mode VPC
24252	// network IP ranges.
24253	//
24254	// For custom mode VPC networks, you can add subnets using the
24255	// subnetworks insert method.
24256	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
24257
24258	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24259	// format.
24260	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24261
24262	// Description: An optional description of this resource. Provide this
24263	// field when you create the resource.
24264	Description string `json:"description,omitempty"`
24265
24266	// GatewayIPv4: [Output Only] The gateway address for default routing
24267	// out of the network, selected by GCP.
24268	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
24269
24270	// Id: [Output Only] The unique identifier for the resource. This
24271	// identifier is defined by the server.
24272	Id uint64 `json:"id,omitempty,string"`
24273
24274	// Kind: [Output Only] Type of the resource. Always compute#network for
24275	// networks.
24276	Kind string `json:"kind,omitempty"`
24277
24278	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this
24279	// field is 1460 and the maximum value is 1500 bytes.
24280	Mtu int64 `json:"mtu,omitempty"`
24281
24282	// Name: Name of the resource. Provided by the client when the resource
24283	// is created. The name must be 1-63 characters long, and comply with
24284	// RFC1035. Specifically, the name must be 1-63 characters long and
24285	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
24286	// character must be a lowercase letter, and all following characters
24287	// (except for the last character) must be a dash, lowercase letter, or
24288	// digit. The last character must be a lowercase letter or digit.
24289	Name string `json:"name,omitempty"`
24290
24291	// Peerings: [Output Only] A list of network peerings for the resource.
24292	Peerings []*NetworkPeering `json:"peerings,omitempty"`
24293
24294	// RoutingConfig: The network-level routing configuration for this
24295	// network. Used by Cloud Router to determine what type of network-wide
24296	// routing behavior to enforce.
24297	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
24298
24299	// SelfLink: [Output Only] Server-defined URL for the resource.
24300	SelfLink string `json:"selfLink,omitempty"`
24301
24302	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
24303	// all subnetworks in this VPC network.
24304	Subnetworks []string `json:"subnetworks,omitempty"`
24305
24306	// ServerResponse contains the HTTP response code and headers from the
24307	// server.
24308	googleapi.ServerResponse `json:"-"`
24309
24310	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
24311	// unconditionally include in API requests. By default, fields with
24312	// empty values are omitted from API requests. However, any non-pointer,
24313	// non-interface field appearing in ForceSendFields will be sent to the
24314	// server regardless of whether the field is empty or not. This may be
24315	// used to include empty fields in Patch requests.
24316	ForceSendFields []string `json:"-"`
24317
24318	// NullFields is a list of field names (e.g. "IPv4Range") to include in
24319	// API requests with the JSON null value. By default, fields with empty
24320	// values are omitted from API requests. However, any field with an
24321	// empty value appearing in NullFields will be sent to the server as
24322	// null. It is an error if a field in this list has a non-empty value.
24323	// This may be used to include null fields in Patch requests.
24324	NullFields []string `json:"-"`
24325}
24326
24327func (s *Network) MarshalJSON() ([]byte, error) {
24328	type NoMethod Network
24329	raw := NoMethod(*s)
24330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24331}
24332
24333// NetworkEndpoint: The network endpoint.
24334type NetworkEndpoint struct {
24335	// Annotations: Metadata defined as annotations on the network endpoint.
24336	Annotations map[string]string `json:"annotations,omitempty"`
24337
24338	// Fqdn: Optional fully qualified domain name of network endpoint. This
24339	// can only be specified when NetworkEndpointGroup.network_endpoint_type
24340	// is NON_GCP_FQDN_PORT.
24341	Fqdn string `json:"fqdn,omitempty"`
24342
24343	// Instance: The name for a specific VM instance that the IP address
24344	// belongs to. This is required for network endpoints of type
24345	// GCE_VM_IP_PORT. The instance must be in the same zone of network
24346	// endpoint group.
24347	//
24348	// The name must be 1-63 characters long, and comply with RFC1035.
24349	Instance string `json:"instance,omitempty"`
24350
24351	// IpAddress: Optional IPv4 address of network endpoint. The IP address
24352	// must belong to a VM in Compute Engine (either the primary IP or as
24353	// part of an aliased IP range). If the IP address is not specified,
24354	// then the primary IP address for the VM instance in the network that
24355	// the network endpoint group belongs to will be used.
24356	IpAddress string `json:"ipAddress,omitempty"`
24357
24358	// Port: Optional port number of network endpoint. If not specified, the
24359	// defaultPort for the network endpoint group will be used.
24360	Port int64 `json:"port,omitempty"`
24361
24362	// ForceSendFields is a list of field names (e.g. "Annotations") to
24363	// unconditionally include in API requests. By default, fields with
24364	// empty values are omitted from API requests. However, any non-pointer,
24365	// non-interface field appearing in ForceSendFields will be sent to the
24366	// server regardless of whether the field is empty or not. This may be
24367	// used to include empty fields in Patch requests.
24368	ForceSendFields []string `json:"-"`
24369
24370	// NullFields is a list of field names (e.g. "Annotations") to include
24371	// in API requests with the JSON null value. By default, fields with
24372	// empty values are omitted from API requests. However, any field with
24373	// an empty value appearing in NullFields will be sent to the server as
24374	// null. It is an error if a field in this list has a non-empty value.
24375	// This may be used to include null fields in Patch requests.
24376	NullFields []string `json:"-"`
24377}
24378
24379func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
24380	type NoMethod NetworkEndpoint
24381	raw := NoMethod(*s)
24382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24383}
24384
24385// NetworkEndpointGroup: Represents a collection of network
24386// endpoints.
24387//
24388// A network endpoint group (NEG) defines how a set of endpoints should
24389// be reached, whether they are reachable, and where they are located.
24390// For more information about using NEGs, see  Setting up external
24391// HTTP(S) Load Balancing with internet NEGs,  Setting up zonal NEGs, or
24392//  Setting up external HTTP(S) Load Balancing with serverless NEGs. (==
24393// resource_for {$api_version}.networkEndpointGroups ==) (==
24394// resource_for {$api_version}.globalNetworkEndpointGroups ==) (==
24395// resource_for {$api_version}.regionNetworkEndpointGroups ==)
24396type NetworkEndpointGroup struct {
24397	// Annotations: Metadata defined as annotations on the network endpoint
24398	// group.
24399	Annotations map[string]string `json:"annotations,omitempty"`
24400
24401	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
24402	// one of cloudRun, appEngine or cloudFunction may be set.
24403	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
24404
24405	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
24406	// Only one of cloudRun, appEngine or cloudFunction may be set.
24407	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
24408
24409	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
24410	// one of cloudRun, appEngine or cloudFunction may be set.
24411	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
24412
24413	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24414	// format.
24415	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24416
24417	// DefaultPort: The default port used if the port number is not
24418	// specified in the network endpoint.
24419	DefaultPort int64 `json:"defaultPort,omitempty"`
24420
24421	// Description: An optional description of this resource. Provide this
24422	// property when you create the resource.
24423	Description string `json:"description,omitempty"`
24424
24425	// Id: [Output Only] The unique identifier for the resource. This
24426	// identifier is defined by the server.
24427	Id uint64 `json:"id,omitempty,string"`
24428
24429	// Kind: [Output Only] Type of the resource. Always
24430	// compute#networkEndpointGroup for network endpoint group.
24431	Kind string `json:"kind,omitempty"`
24432
24433	// LoadBalancer: This field is only valid when the network endpoint
24434	// group is used for load balancing. [Deprecated] This field is
24435	// deprecated.
24436	LoadBalancer *NetworkEndpointGroupLbNetworkEndpointGroup `json:"loadBalancer,omitempty"`
24437
24438	// Name: Name of the resource; provided by the client when the resource
24439	// is created. The name must be 1-63 characters long, and comply with
24440	// RFC1035. Specifically, the name must be 1-63 characters long and
24441	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
24442	// the first character must be a lowercase letter, and all following
24443	// characters must be a dash, lowercase letter, or digit, except the
24444	// last character, which cannot be a dash.
24445	Name string `json:"name,omitempty"`
24446
24447	// Network: The URL of the network to which all network endpoints in the
24448	// NEG belong. Uses "default" project network if unspecified.
24449	Network string `json:"network,omitempty"`
24450
24451	// NetworkEndpointType: Type of network endpoints in this network
24452	// endpoint group. Can be one of GCE_VM_IP_PORT,
24453	// NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, or
24454	// SERVERLESS.
24455	//
24456	// Possible values:
24457	//   "GCE_VM_IP"
24458	//   "GCE_VM_IP_PORT"
24459	//   "INTERNET_FQDN_PORT"
24460	//   "INTERNET_IP_PORT"
24461	//   "NON_GCP_PRIVATE_IP_PORT"
24462	//   "SERVERLESS"
24463	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
24464
24465	// Region: [Output Only] The URL of the region where the network
24466	// endpoint group is located.
24467	Region string `json:"region,omitempty"`
24468
24469	// SelfLink: [Output Only] Server-defined URL for the resource.
24470	SelfLink string `json:"selfLink,omitempty"`
24471
24472	// Size: [Output only] Number of network endpoints in the network
24473	// endpoint group.
24474	Size int64 `json:"size,omitempty"`
24475
24476	// Subnetwork: Optional URL of the subnetwork to which all network
24477	// endpoints in the NEG belong.
24478	Subnetwork string `json:"subnetwork,omitempty"`
24479
24480	// Zone: [Output Only] The URL of the zone where the network endpoint
24481	// group is located.
24482	Zone string `json:"zone,omitempty"`
24483
24484	// ServerResponse contains the HTTP response code and headers from the
24485	// server.
24486	googleapi.ServerResponse `json:"-"`
24487
24488	// ForceSendFields is a list of field names (e.g. "Annotations") to
24489	// unconditionally include in API requests. By default, fields with
24490	// empty values are omitted from API requests. However, any non-pointer,
24491	// non-interface field appearing in ForceSendFields will be sent to the
24492	// server regardless of whether the field is empty or not. This may be
24493	// used to include empty fields in Patch requests.
24494	ForceSendFields []string `json:"-"`
24495
24496	// NullFields is a list of field names (e.g. "Annotations") to include
24497	// in API requests with the JSON null value. By default, fields with
24498	// empty values are omitted from API requests. However, any field with
24499	// an empty value appearing in NullFields will be sent to the server as
24500	// null. It is an error if a field in this list has a non-empty value.
24501	// This may be used to include null fields in Patch requests.
24502	NullFields []string `json:"-"`
24503}
24504
24505func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
24506	type NoMethod NetworkEndpointGroup
24507	raw := NoMethod(*s)
24508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24509}
24510
24511type NetworkEndpointGroupAggregatedList struct {
24512	// Id: [Output Only] Unique identifier for the resource; defined by the
24513	// server.
24514	Id string `json:"id,omitempty"`
24515
24516	// Items: A list of NetworkEndpointGroupsScopedList resources.
24517	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
24518
24519	// Kind: [Output Only] The resource type, which is always
24520	// compute#networkEndpointGroupAggregatedList for aggregated lists of
24521	// network endpoint groups.
24522	Kind string `json:"kind,omitempty"`
24523
24524	// NextPageToken: [Output Only] This token allows you to get the next
24525	// page of results for list requests. If the number of results is larger
24526	// than maxResults, use the nextPageToken as a value for the query
24527	// parameter pageToken in the next list request. Subsequent list
24528	// requests will have their own nextPageToken to continue paging through
24529	// the results.
24530	NextPageToken string `json:"nextPageToken,omitempty"`
24531
24532	// SelfLink: [Output Only] Server-defined URL for this resource.
24533	SelfLink string `json:"selfLink,omitempty"`
24534
24535	// Unreachables: [Output Only] Unreachable resources.
24536	Unreachables []string `json:"unreachables,omitempty"`
24537
24538	// Warning: [Output Only] Informational warning message.
24539	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
24540
24541	// ServerResponse contains the HTTP response code and headers from the
24542	// server.
24543	googleapi.ServerResponse `json:"-"`
24544
24545	// ForceSendFields is a list of field names (e.g. "Id") to
24546	// unconditionally include in API requests. By default, fields with
24547	// empty values are omitted from API requests. However, any non-pointer,
24548	// non-interface field appearing in ForceSendFields will be sent to the
24549	// server regardless of whether the field is empty or not. This may be
24550	// used to include empty fields in Patch requests.
24551	ForceSendFields []string `json:"-"`
24552
24553	// NullFields is a list of field names (e.g. "Id") to include in API
24554	// requests with the JSON null value. By default, fields with empty
24555	// values are omitted from API requests. However, any field with an
24556	// empty value appearing in NullFields will be sent to the server as
24557	// null. It is an error if a field in this list has a non-empty value.
24558	// This may be used to include null fields in Patch requests.
24559	NullFields []string `json:"-"`
24560}
24561
24562func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
24563	type NoMethod NetworkEndpointGroupAggregatedList
24564	raw := NoMethod(*s)
24565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24566}
24567
24568// NetworkEndpointGroupAggregatedListWarning: [Output Only]
24569// Informational warning message.
24570type NetworkEndpointGroupAggregatedListWarning struct {
24571	// Code: [Output Only] A warning code, if applicable. For example,
24572	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24573	// the response.
24574	//
24575	// Possible values:
24576	//   "CLEANUP_FAILED"
24577	//   "DEPRECATED_RESOURCE_USED"
24578	//   "DEPRECATED_TYPE_USED"
24579	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24580	//   "EXPERIMENTAL_TYPE_USED"
24581	//   "EXTERNAL_API_WARNING"
24582	//   "FIELD_VALUE_OVERRIDEN"
24583	//   "INJECTED_KERNELS_DEPRECATED"
24584	//   "LARGE_DEPLOYMENT_WARNING"
24585	//   "MISSING_TYPE_DEPENDENCY"
24586	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24587	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24588	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24589	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24590	//   "NEXT_HOP_NOT_RUNNING"
24591	//   "NOT_CRITICAL_ERROR"
24592	//   "NO_RESULTS_ON_PAGE"
24593	//   "PARTIAL_SUCCESS"
24594	//   "REQUIRED_TOS_AGREEMENT"
24595	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24596	//   "RESOURCE_NOT_DELETED"
24597	//   "SCHEMA_VALIDATION_IGNORED"
24598	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24599	//   "UNDECLARED_PROPERTIES"
24600	//   "UNREACHABLE"
24601	Code string `json:"code,omitempty"`
24602
24603	// Data: [Output Only] Metadata about this warning in key: value format.
24604	// For example:
24605	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24606	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
24607
24608	// Message: [Output Only] A human-readable description of the warning
24609	// code.
24610	Message string `json:"message,omitempty"`
24611
24612	// ForceSendFields is a list of field names (e.g. "Code") to
24613	// unconditionally include in API requests. By default, fields with
24614	// empty values are omitted from API requests. However, any non-pointer,
24615	// non-interface field appearing in ForceSendFields will be sent to the
24616	// server regardless of whether the field is empty or not. This may be
24617	// used to include empty fields in Patch requests.
24618	ForceSendFields []string `json:"-"`
24619
24620	// NullFields is a list of field names (e.g. "Code") to include in API
24621	// requests with the JSON null value. By default, fields with empty
24622	// values are omitted from API requests. However, any field with an
24623	// empty value appearing in NullFields will be sent to the server as
24624	// null. It is an error if a field in this list has a non-empty value.
24625	// This may be used to include null fields in Patch requests.
24626	NullFields []string `json:"-"`
24627}
24628
24629func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
24630	type NoMethod NetworkEndpointGroupAggregatedListWarning
24631	raw := NoMethod(*s)
24632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24633}
24634
24635type NetworkEndpointGroupAggregatedListWarningData struct {
24636	// Key: [Output Only] A key that provides more detail on the warning
24637	// being returned. For example, for warnings where there are no results
24638	// in a list request for a particular zone, this key might be scope and
24639	// the key value might be the zone name. Other examples might be a key
24640	// indicating a deprecated resource and a suggested replacement, or a
24641	// warning about invalid network settings (for example, if an instance
24642	// attempts to perform IP forwarding but is not enabled for IP
24643	// forwarding).
24644	Key string `json:"key,omitempty"`
24645
24646	// Value: [Output Only] A warning data value corresponding to the key.
24647	Value string `json:"value,omitempty"`
24648
24649	// ForceSendFields is a list of field names (e.g. "Key") to
24650	// unconditionally include in API requests. By default, fields with
24651	// empty values are omitted from API requests. However, any non-pointer,
24652	// non-interface field appearing in ForceSendFields will be sent to the
24653	// server regardless of whether the field is empty or not. This may be
24654	// used to include empty fields in Patch requests.
24655	ForceSendFields []string `json:"-"`
24656
24657	// NullFields is a list of field names (e.g. "Key") to include in API
24658	// requests with the JSON null value. By default, fields with empty
24659	// values are omitted from API requests. However, any field with an
24660	// empty value appearing in NullFields will be sent to the server as
24661	// null. It is an error if a field in this list has a non-empty value.
24662	// This may be used to include null fields in Patch requests.
24663	NullFields []string `json:"-"`
24664}
24665
24666func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24667	type NoMethod NetworkEndpointGroupAggregatedListWarningData
24668	raw := NoMethod(*s)
24669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24670}
24671
24672// NetworkEndpointGroupAppEngine: Configuration for an App Engine
24673// network endpoint group (NEG). The service is optional, may be
24674// provided explicitly or in the URL mask. The version is optional and
24675// can only be provided explicitly or in the URL mask when service is
24676// present.
24677//
24678// Note: App Engine service must be in the same project and located in
24679// the same region as the Serverless NEG.
24680type NetworkEndpointGroupAppEngine struct {
24681	// Service: Optional serving service.
24682	//
24683	// The service name is case-sensitive and must be 1-63 characters
24684	// long.
24685	//
24686	// Example value: "default", "my-service".
24687	Service string `json:"service,omitempty"`
24688
24689	// UrlMask: A template to parse service and version fields from a
24690	// request URL. URL mask allows for routing to multiple App Engine
24691	// services without having to create multiple Network Endpoint Groups
24692	// and backend services.
24693	//
24694	// For example, the request URLs "foo1-dot-appname.appspot.com/v1" and
24695	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
24696	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
24697	// mask will parse them to { service = "foo1", version = "v1" } and {
24698	// service = "foo1", version = "v2" } respectively.
24699	UrlMask string `json:"urlMask,omitempty"`
24700
24701	// Version: Optional serving version.
24702	//
24703	// The version name is case-sensitive and must be 1-100 characters
24704	// long.
24705	//
24706	// Example value: "v1", "v2".
24707	Version string `json:"version,omitempty"`
24708
24709	// ForceSendFields is a list of field names (e.g. "Service") to
24710	// unconditionally include in API requests. By default, fields with
24711	// empty values are omitted from API requests. However, any non-pointer,
24712	// non-interface field appearing in ForceSendFields will be sent to the
24713	// server regardless of whether the field is empty or not. This may be
24714	// used to include empty fields in Patch requests.
24715	ForceSendFields []string `json:"-"`
24716
24717	// NullFields is a list of field names (e.g. "Service") to include in
24718	// API requests with the JSON null value. By default, fields with empty
24719	// values are omitted from API requests. However, any field with an
24720	// empty value appearing in NullFields will be sent to the server as
24721	// null. It is an error if a field in this list has a non-empty value.
24722	// This may be used to include null fields in Patch requests.
24723	NullFields []string `json:"-"`
24724}
24725
24726func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
24727	type NoMethod NetworkEndpointGroupAppEngine
24728	raw := NoMethod(*s)
24729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24730}
24731
24732// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
24733// network endpoint group (NEG). The function must be provided
24734// explicitly or in the URL mask.
24735//
24736// Note: Cloud Function must be in the same project and located in the
24737// same region as the Serverless NEG.
24738type NetworkEndpointGroupCloudFunction struct {
24739	// Function: A user-defined name of the Cloud Function.
24740	//
24741	// The function name is case-sensitive and must be 1-63 characters
24742	// long.
24743	//
24744	// Example value: "func1".
24745	Function string `json:"function,omitempty"`
24746
24747	// UrlMask: A template to parse function field from a request URL. URL
24748	// mask allows for routing to multiple Cloud Functions without having to
24749	// create multiple Network Endpoint Groups and backend services.
24750	//
24751	// For example, request URLs "mydomain.com/function1" and
24752	// "mydomain.com/function2" can be backed by the same Serverless NEG
24753	// with URL mask "/". The URL mask will parse them to { function =
24754	// "function1" } and { function = "function2" } respectively.
24755	UrlMask string `json:"urlMask,omitempty"`
24756
24757	// ForceSendFields is a list of field names (e.g. "Function") to
24758	// unconditionally include in API requests. By default, fields with
24759	// empty values are omitted from API requests. However, any non-pointer,
24760	// non-interface field appearing in ForceSendFields will be sent to the
24761	// server regardless of whether the field is empty or not. This may be
24762	// used to include empty fields in Patch requests.
24763	ForceSendFields []string `json:"-"`
24764
24765	// NullFields is a list of field names (e.g. "Function") to include in
24766	// API requests with the JSON null value. By default, fields with empty
24767	// values are omitted from API requests. However, any field with an
24768	// empty value appearing in NullFields will be sent to the server as
24769	// null. It is an error if a field in this list has a non-empty value.
24770	// This may be used to include null fields in Patch requests.
24771	NullFields []string `json:"-"`
24772}
24773
24774func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
24775	type NoMethod NetworkEndpointGroupCloudFunction
24776	raw := NoMethod(*s)
24777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24778}
24779
24780// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
24781// endpoint group (NEG). The service must be provided explicitly or in
24782// the URL mask. The tag is optional, may be provided explicitly or in
24783// the URL mask.
24784//
24785// Note: Cloud Run service must be in the same project and located in
24786// the same region as the Serverless NEG.
24787type NetworkEndpointGroupCloudRun struct {
24788	// Service: Cloud Run service is the main resource of Cloud Run.
24789	//
24790	// The service must be 1-63 characters long, and comply with
24791	// RFC1035.
24792	//
24793	// Example value: "run-service".
24794	Service string `json:"service,omitempty"`
24795
24796	// Tag: Optional Cloud Run tag represents the "named-revision" to
24797	// provide additional fine-grained traffic routing information.
24798	//
24799	// The tag must be 1-63 characters long, and comply with
24800	// RFC1035.
24801	//
24802	// Example value: "revision-0010".
24803	Tag string `json:"tag,omitempty"`
24804
24805	// UrlMask: A template to parse service and tag fields from a request
24806	// URL. URL mask allows for routing to multiple Run services without
24807	// having to create multiple network endpoint groups and backend
24808	// services.
24809	//
24810	// For example, request URLs "foo1.domain.com/bar1" and
24811	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
24812	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
24813	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
24814	// tag="foo2" } respectively.
24815	UrlMask string `json:"urlMask,omitempty"`
24816
24817	// ForceSendFields is a list of field names (e.g. "Service") to
24818	// unconditionally include in API requests. By default, fields with
24819	// empty values are omitted from API requests. However, any non-pointer,
24820	// non-interface field appearing in ForceSendFields will be sent to the
24821	// server regardless of whether the field is empty or not. This may be
24822	// used to include empty fields in Patch requests.
24823	ForceSendFields []string `json:"-"`
24824
24825	// NullFields is a list of field names (e.g. "Service") to include in
24826	// API requests with the JSON null value. By default, fields with empty
24827	// values are omitted from API requests. However, any field with an
24828	// empty value appearing in NullFields will be sent to the server as
24829	// null. It is an error if a field in this list has a non-empty value.
24830	// This may be used to include null fields in Patch requests.
24831	NullFields []string `json:"-"`
24832}
24833
24834func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
24835	type NoMethod NetworkEndpointGroupCloudRun
24836	raw := NoMethod(*s)
24837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24838}
24839
24840// NetworkEndpointGroupLbNetworkEndpointGroup: Load balancing specific
24841// fields for network endpoint group.
24842type NetworkEndpointGroupLbNetworkEndpointGroup struct {
24843	// DefaultPort: The default port used if the port number is not
24844	// specified in the network endpoint. [Deprecated] This field is
24845	// deprecated.
24846	DefaultPort int64 `json:"defaultPort,omitempty"`
24847
24848	// Network: The URL of the network to which all network endpoints in the
24849	// NEG belong. Uses "default" project network if unspecified.
24850	// [Deprecated] This field is deprecated.
24851	Network string `json:"network,omitempty"`
24852
24853	// Subnetwork: Optional URL of the subnetwork to which all network
24854	// endpoints in the NEG belong. [Deprecated] This field is deprecated.
24855	Subnetwork string `json:"subnetwork,omitempty"`
24856
24857	// Zone: [Output Only] The URL of the zone where the network endpoint
24858	// group is located. [Deprecated] This field is deprecated.
24859	Zone string `json:"zone,omitempty"`
24860
24861	// ForceSendFields is a list of field names (e.g. "DefaultPort") to
24862	// unconditionally include in API requests. By default, fields with
24863	// empty values are omitted from API requests. However, any non-pointer,
24864	// non-interface field appearing in ForceSendFields will be sent to the
24865	// server regardless of whether the field is empty or not. This may be
24866	// used to include empty fields in Patch requests.
24867	ForceSendFields []string `json:"-"`
24868
24869	// NullFields is a list of field names (e.g. "DefaultPort") to include
24870	// in API requests with the JSON null value. By default, fields with
24871	// empty values are omitted from API requests. However, any field with
24872	// an empty value appearing in NullFields will be sent to the server as
24873	// null. It is an error if a field in this list has a non-empty value.
24874	// This may be used to include null fields in Patch requests.
24875	NullFields []string `json:"-"`
24876}
24877
24878func (s *NetworkEndpointGroupLbNetworkEndpointGroup) MarshalJSON() ([]byte, error) {
24879	type NoMethod NetworkEndpointGroupLbNetworkEndpointGroup
24880	raw := NoMethod(*s)
24881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24882}
24883
24884type NetworkEndpointGroupList struct {
24885	// Id: [Output Only] Unique identifier for the resource; defined by the
24886	// server.
24887	Id string `json:"id,omitempty"`
24888
24889	// Items: A list of NetworkEndpointGroup resources.
24890	Items []*NetworkEndpointGroup `json:"items,omitempty"`
24891
24892	// Kind: [Output Only] The resource type, which is always
24893	// compute#networkEndpointGroupList for network endpoint group lists.
24894	Kind string `json:"kind,omitempty"`
24895
24896	// NextPageToken: [Output Only] This token allows you to get the next
24897	// page of results for list requests. If the number of results is larger
24898	// than maxResults, use the nextPageToken as a value for the query
24899	// parameter pageToken in the next list request. Subsequent list
24900	// requests will have their own nextPageToken to continue paging through
24901	// the results.
24902	NextPageToken string `json:"nextPageToken,omitempty"`
24903
24904	// SelfLink: [Output Only] Server-defined URL for this resource.
24905	SelfLink string `json:"selfLink,omitempty"`
24906
24907	// Warning: [Output Only] Informational warning message.
24908	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
24909
24910	// ServerResponse contains the HTTP response code and headers from the
24911	// server.
24912	googleapi.ServerResponse `json:"-"`
24913
24914	// ForceSendFields is a list of field names (e.g. "Id") to
24915	// unconditionally include in API requests. By default, fields with
24916	// empty values are omitted from API requests. However, any non-pointer,
24917	// non-interface field appearing in ForceSendFields will be sent to the
24918	// server regardless of whether the field is empty or not. This may be
24919	// used to include empty fields in Patch requests.
24920	ForceSendFields []string `json:"-"`
24921
24922	// NullFields is a list of field names (e.g. "Id") to include in API
24923	// requests with the JSON null value. By default, fields with empty
24924	// values are omitted from API requests. However, any field with an
24925	// empty value appearing in NullFields will be sent to the server as
24926	// null. It is an error if a field in this list has a non-empty value.
24927	// This may be used to include null fields in Patch requests.
24928	NullFields []string `json:"-"`
24929}
24930
24931func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
24932	type NoMethod NetworkEndpointGroupList
24933	raw := NoMethod(*s)
24934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24935}
24936
24937// NetworkEndpointGroupListWarning: [Output Only] Informational warning
24938// message.
24939type NetworkEndpointGroupListWarning struct {
24940	// Code: [Output Only] A warning code, if applicable. For example,
24941	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24942	// the response.
24943	//
24944	// Possible values:
24945	//   "CLEANUP_FAILED"
24946	//   "DEPRECATED_RESOURCE_USED"
24947	//   "DEPRECATED_TYPE_USED"
24948	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24949	//   "EXPERIMENTAL_TYPE_USED"
24950	//   "EXTERNAL_API_WARNING"
24951	//   "FIELD_VALUE_OVERRIDEN"
24952	//   "INJECTED_KERNELS_DEPRECATED"
24953	//   "LARGE_DEPLOYMENT_WARNING"
24954	//   "MISSING_TYPE_DEPENDENCY"
24955	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24956	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24957	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24958	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24959	//   "NEXT_HOP_NOT_RUNNING"
24960	//   "NOT_CRITICAL_ERROR"
24961	//   "NO_RESULTS_ON_PAGE"
24962	//   "PARTIAL_SUCCESS"
24963	//   "REQUIRED_TOS_AGREEMENT"
24964	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24965	//   "RESOURCE_NOT_DELETED"
24966	//   "SCHEMA_VALIDATION_IGNORED"
24967	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24968	//   "UNDECLARED_PROPERTIES"
24969	//   "UNREACHABLE"
24970	Code string `json:"code,omitempty"`
24971
24972	// Data: [Output Only] Metadata about this warning in key: value format.
24973	// For example:
24974	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24975	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
24976
24977	// Message: [Output Only] A human-readable description of the warning
24978	// code.
24979	Message string `json:"message,omitempty"`
24980
24981	// ForceSendFields is a list of field names (e.g. "Code") to
24982	// unconditionally include in API requests. By default, fields with
24983	// empty values are omitted from API requests. However, any non-pointer,
24984	// non-interface field appearing in ForceSendFields will be sent to the
24985	// server regardless of whether the field is empty or not. This may be
24986	// used to include empty fields in Patch requests.
24987	ForceSendFields []string `json:"-"`
24988
24989	// NullFields is a list of field names (e.g. "Code") to include in API
24990	// requests with the JSON null value. By default, fields with empty
24991	// values are omitted from API requests. However, any field with an
24992	// empty value appearing in NullFields will be sent to the server as
24993	// null. It is an error if a field in this list has a non-empty value.
24994	// This may be used to include null fields in Patch requests.
24995	NullFields []string `json:"-"`
24996}
24997
24998func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
24999	type NoMethod NetworkEndpointGroupListWarning
25000	raw := NoMethod(*s)
25001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25002}
25003
25004type NetworkEndpointGroupListWarningData struct {
25005	// Key: [Output Only] A key that provides more detail on the warning
25006	// being returned. For example, for warnings where there are no results
25007	// in a list request for a particular zone, this key might be scope and
25008	// the key value might be the zone name. Other examples might be a key
25009	// indicating a deprecated resource and a suggested replacement, or a
25010	// warning about invalid network settings (for example, if an instance
25011	// attempts to perform IP forwarding but is not enabled for IP
25012	// forwarding).
25013	Key string `json:"key,omitempty"`
25014
25015	// Value: [Output Only] A warning data value corresponding to the key.
25016	Value string `json:"value,omitempty"`
25017
25018	// ForceSendFields is a list of field names (e.g. "Key") to
25019	// unconditionally include in API requests. By default, fields with
25020	// empty values are omitted from API requests. However, any non-pointer,
25021	// non-interface field appearing in ForceSendFields will be sent to the
25022	// server regardless of whether the field is empty or not. This may be
25023	// used to include empty fields in Patch requests.
25024	ForceSendFields []string `json:"-"`
25025
25026	// NullFields is a list of field names (e.g. "Key") to include in API
25027	// requests with the JSON null value. By default, fields with empty
25028	// values are omitted from API requests. However, any field with an
25029	// empty value appearing in NullFields will be sent to the server as
25030	// null. It is an error if a field in this list has a non-empty value.
25031	// This may be used to include null fields in Patch requests.
25032	NullFields []string `json:"-"`
25033}
25034
25035func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
25036	type NoMethod NetworkEndpointGroupListWarningData
25037	raw := NoMethod(*s)
25038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25039}
25040
25041type NetworkEndpointGroupsAttachEndpointsRequest struct {
25042	// NetworkEndpoints: The list of network endpoints to be attached.
25043	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
25044
25045	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
25046	// unconditionally include in API requests. By default, fields with
25047	// empty values are omitted from API requests. However, any non-pointer,
25048	// non-interface field appearing in ForceSendFields will be sent to the
25049	// server regardless of whether the field is empty or not. This may be
25050	// used to include empty fields in Patch requests.
25051	ForceSendFields []string `json:"-"`
25052
25053	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
25054	// include in API requests with the JSON null value. By default, fields
25055	// with empty values are omitted from API requests. However, any field
25056	// with an empty value appearing in NullFields will be sent to the
25057	// server as null. It is an error if a field in this list has a
25058	// non-empty value. This may be used to include null fields in Patch
25059	// requests.
25060	NullFields []string `json:"-"`
25061}
25062
25063func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
25064	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
25065	raw := NoMethod(*s)
25066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25067}
25068
25069type NetworkEndpointGroupsDetachEndpointsRequest struct {
25070	// NetworkEndpoints: The list of network endpoints to be detached.
25071	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
25072
25073	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
25074	// unconditionally include in API requests. By default, fields with
25075	// empty values are omitted from API requests. However, any non-pointer,
25076	// non-interface field appearing in ForceSendFields will be sent to the
25077	// server regardless of whether the field is empty or not. This may be
25078	// used to include empty fields in Patch requests.
25079	ForceSendFields []string `json:"-"`
25080
25081	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
25082	// include in API requests with the JSON null value. By default, fields
25083	// with empty values are omitted from API requests. However, any field
25084	// with an empty value appearing in NullFields will be sent to the
25085	// server as null. It is an error if a field in this list has a
25086	// non-empty value. This may be used to include null fields in Patch
25087	// requests.
25088	NullFields []string `json:"-"`
25089}
25090
25091func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
25092	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
25093	raw := NoMethod(*s)
25094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25095}
25096
25097type NetworkEndpointGroupsListEndpointsRequest struct {
25098	// EndpointFilters: Optional list of endpoints to query. This is a more
25099	// efficient but also limited version of filter parameter. Endpoints in
25100	// the filter must have ip_address and port fields populated, other
25101	// fields are not supported.
25102	EndpointFilters []*NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter `json:"endpointFilters,omitempty"`
25103
25104	// HealthStatus: Optional query parameter for showing the health status
25105	// of each network endpoint. Valid options are SKIP or SHOW. If you
25106	// don't specify this parameter, the health status of network endpoints
25107	// will not be provided.
25108	//
25109	// Possible values:
25110	//   "SHOW"
25111	//   "SKIP"
25112	HealthStatus string `json:"healthStatus,omitempty"`
25113
25114	// ForceSendFields is a list of field names (e.g. "EndpointFilters") to
25115	// unconditionally include in API requests. By default, fields with
25116	// empty values are omitted from API requests. However, any non-pointer,
25117	// non-interface field appearing in ForceSendFields will be sent to the
25118	// server regardless of whether the field is empty or not. This may be
25119	// used to include empty fields in Patch requests.
25120	ForceSendFields []string `json:"-"`
25121
25122	// NullFields is a list of field names (e.g. "EndpointFilters") to
25123	// include in API requests with the JSON null value. By default, fields
25124	// with empty values are omitted from API requests. However, any field
25125	// with an empty value appearing in NullFields will be sent to the
25126	// server as null. It is an error if a field in this list has a
25127	// non-empty value. This may be used to include null fields in Patch
25128	// requests.
25129	NullFields []string `json:"-"`
25130}
25131
25132func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
25133	type NoMethod NetworkEndpointGroupsListEndpointsRequest
25134	raw := NoMethod(*s)
25135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25136}
25137
25138type NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter struct {
25139	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
25140
25141	// ForceSendFields is a list of field names (e.g. "NetworkEndpoint") to
25142	// unconditionally include in API requests. By default, fields with
25143	// empty values are omitted from API requests. However, any non-pointer,
25144	// non-interface field appearing in ForceSendFields will be sent to the
25145	// server regardless of whether the field is empty or not. This may be
25146	// used to include empty fields in Patch requests.
25147	ForceSendFields []string `json:"-"`
25148
25149	// NullFields is a list of field names (e.g. "NetworkEndpoint") to
25150	// include in API requests with the JSON null value. By default, fields
25151	// with empty values are omitted from API requests. However, any field
25152	// with an empty value appearing in NullFields will be sent to the
25153	// server as null. It is an error if a field in this list has a
25154	// non-empty value. This may be used to include null fields in Patch
25155	// requests.
25156	NullFields []string `json:"-"`
25157}
25158
25159func (s *NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter) MarshalJSON() ([]byte, error) {
25160	type NoMethod NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
25161	raw := NoMethod(*s)
25162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25163}
25164
25165type NetworkEndpointGroupsListNetworkEndpoints struct {
25166	// Id: [Output Only] Unique identifier for the resource; defined by the
25167	// server.
25168	Id string `json:"id,omitempty"`
25169
25170	// Items: A list of NetworkEndpointWithHealthStatus resources.
25171	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
25172
25173	// Kind: [Output Only] The resource type, which is always
25174	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
25175	// network endpoints in the specified network endpoint group.
25176	Kind string `json:"kind,omitempty"`
25177
25178	// NextPageToken: [Output Only] This token allows you to get the next
25179	// page of results for list requests. If the number of results is larger
25180	// than maxResults, use the nextPageToken as a value for the query
25181	// parameter pageToken in the next list request. Subsequent list
25182	// requests will have their own nextPageToken to continue paging through
25183	// the results.
25184	NextPageToken string `json:"nextPageToken,omitempty"`
25185
25186	// Warning: [Output Only] Informational warning message.
25187	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
25188
25189	// ServerResponse contains the HTTP response code and headers from the
25190	// server.
25191	googleapi.ServerResponse `json:"-"`
25192
25193	// ForceSendFields is a list of field names (e.g. "Id") to
25194	// unconditionally include in API requests. By default, fields with
25195	// empty values are omitted from API requests. However, any non-pointer,
25196	// non-interface field appearing in ForceSendFields will be sent to the
25197	// server regardless of whether the field is empty or not. This may be
25198	// used to include empty fields in Patch requests.
25199	ForceSendFields []string `json:"-"`
25200
25201	// NullFields is a list of field names (e.g. "Id") to include in API
25202	// requests with the JSON null value. By default, fields with empty
25203	// values are omitted from API requests. However, any field with an
25204	// empty value appearing in NullFields will be sent to the server as
25205	// null. It is an error if a field in this list has a non-empty value.
25206	// This may be used to include null fields in Patch requests.
25207	NullFields []string `json:"-"`
25208}
25209
25210func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
25211	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
25212	raw := NoMethod(*s)
25213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25214}
25215
25216// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
25217// Informational warning message.
25218type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
25219	// Code: [Output Only] A warning code, if applicable. For example,
25220	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25221	// the response.
25222	//
25223	// Possible values:
25224	//   "CLEANUP_FAILED"
25225	//   "DEPRECATED_RESOURCE_USED"
25226	//   "DEPRECATED_TYPE_USED"
25227	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25228	//   "EXPERIMENTAL_TYPE_USED"
25229	//   "EXTERNAL_API_WARNING"
25230	//   "FIELD_VALUE_OVERRIDEN"
25231	//   "INJECTED_KERNELS_DEPRECATED"
25232	//   "LARGE_DEPLOYMENT_WARNING"
25233	//   "MISSING_TYPE_DEPENDENCY"
25234	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25235	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25236	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25237	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25238	//   "NEXT_HOP_NOT_RUNNING"
25239	//   "NOT_CRITICAL_ERROR"
25240	//   "NO_RESULTS_ON_PAGE"
25241	//   "PARTIAL_SUCCESS"
25242	//   "REQUIRED_TOS_AGREEMENT"
25243	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25244	//   "RESOURCE_NOT_DELETED"
25245	//   "SCHEMA_VALIDATION_IGNORED"
25246	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25247	//   "UNDECLARED_PROPERTIES"
25248	//   "UNREACHABLE"
25249	Code string `json:"code,omitempty"`
25250
25251	// Data: [Output Only] Metadata about this warning in key: value format.
25252	// For example:
25253	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25254	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
25255
25256	// Message: [Output Only] A human-readable description of the warning
25257	// code.
25258	Message string `json:"message,omitempty"`
25259
25260	// ForceSendFields is a list of field names (e.g. "Code") to
25261	// unconditionally include in API requests. By default, fields with
25262	// empty values are omitted from API requests. However, any non-pointer,
25263	// non-interface field appearing in ForceSendFields will be sent to the
25264	// server regardless of whether the field is empty or not. This may be
25265	// used to include empty fields in Patch requests.
25266	ForceSendFields []string `json:"-"`
25267
25268	// NullFields is a list of field names (e.g. "Code") to include in API
25269	// requests with the JSON null value. By default, fields with empty
25270	// values are omitted from API requests. However, any field with an
25271	// empty value appearing in NullFields will be sent to the server as
25272	// null. It is an error if a field in this list has a non-empty value.
25273	// This may be used to include null fields in Patch requests.
25274	NullFields []string `json:"-"`
25275}
25276
25277func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
25278	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
25279	raw := NoMethod(*s)
25280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25281}
25282
25283type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
25284	// Key: [Output Only] A key that provides more detail on the warning
25285	// being returned. For example, for warnings where there are no results
25286	// in a list request for a particular zone, this key might be scope and
25287	// the key value might be the zone name. Other examples might be a key
25288	// indicating a deprecated resource and a suggested replacement, or a
25289	// warning about invalid network settings (for example, if an instance
25290	// attempts to perform IP forwarding but is not enabled for IP
25291	// forwarding).
25292	Key string `json:"key,omitempty"`
25293
25294	// Value: [Output Only] A warning data value corresponding to the key.
25295	Value string `json:"value,omitempty"`
25296
25297	// ForceSendFields is a list of field names (e.g. "Key") to
25298	// unconditionally include in API requests. By default, fields with
25299	// empty values are omitted from API requests. However, any non-pointer,
25300	// non-interface field appearing in ForceSendFields will be sent to the
25301	// server regardless of whether the field is empty or not. This may be
25302	// used to include empty fields in Patch requests.
25303	ForceSendFields []string `json:"-"`
25304
25305	// NullFields is a list of field names (e.g. "Key") to include in API
25306	// requests with the JSON null value. By default, fields with empty
25307	// values are omitted from API requests. However, any field with an
25308	// empty value appearing in NullFields will be sent to the server as
25309	// null. It is an error if a field in this list has a non-empty value.
25310	// This may be used to include null fields in Patch requests.
25311	NullFields []string `json:"-"`
25312}
25313
25314func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
25315	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
25316	raw := NoMethod(*s)
25317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25318}
25319
25320type NetworkEndpointGroupsScopedList struct {
25321	// NetworkEndpointGroups: [Output Only] The list of network endpoint
25322	// groups that are contained in this scope.
25323	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
25324
25325	// Warning: [Output Only] An informational warning that replaces the
25326	// list of network endpoint groups when the list is empty.
25327	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
25328
25329	// ForceSendFields is a list of field names (e.g.
25330	// "NetworkEndpointGroups") to unconditionally include in API requests.
25331	// By default, fields with empty values are omitted from API requests.
25332	// However, any non-pointer, non-interface field appearing in
25333	// ForceSendFields will be sent to the server regardless of whether the
25334	// field is empty or not. This may be used to include empty fields in
25335	// Patch requests.
25336	ForceSendFields []string `json:"-"`
25337
25338	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
25339	// include in API requests with the JSON null value. By default, fields
25340	// with empty values are omitted from API requests. However, any field
25341	// with an empty value appearing in NullFields will be sent to the
25342	// server as null. It is an error if a field in this list has a
25343	// non-empty value. This may be used to include null fields in Patch
25344	// requests.
25345	NullFields []string `json:"-"`
25346}
25347
25348func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
25349	type NoMethod NetworkEndpointGroupsScopedList
25350	raw := NoMethod(*s)
25351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25352}
25353
25354// NetworkEndpointGroupsScopedListWarning: [Output Only] An
25355// informational warning that replaces the list of network endpoint
25356// groups when the list is empty.
25357type NetworkEndpointGroupsScopedListWarning struct {
25358	// Code: [Output Only] A warning code, if applicable. For example,
25359	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25360	// the response.
25361	//
25362	// Possible values:
25363	//   "CLEANUP_FAILED"
25364	//   "DEPRECATED_RESOURCE_USED"
25365	//   "DEPRECATED_TYPE_USED"
25366	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25367	//   "EXPERIMENTAL_TYPE_USED"
25368	//   "EXTERNAL_API_WARNING"
25369	//   "FIELD_VALUE_OVERRIDEN"
25370	//   "INJECTED_KERNELS_DEPRECATED"
25371	//   "LARGE_DEPLOYMENT_WARNING"
25372	//   "MISSING_TYPE_DEPENDENCY"
25373	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25374	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25375	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25376	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25377	//   "NEXT_HOP_NOT_RUNNING"
25378	//   "NOT_CRITICAL_ERROR"
25379	//   "NO_RESULTS_ON_PAGE"
25380	//   "PARTIAL_SUCCESS"
25381	//   "REQUIRED_TOS_AGREEMENT"
25382	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25383	//   "RESOURCE_NOT_DELETED"
25384	//   "SCHEMA_VALIDATION_IGNORED"
25385	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25386	//   "UNDECLARED_PROPERTIES"
25387	//   "UNREACHABLE"
25388	Code string `json:"code,omitempty"`
25389
25390	// Data: [Output Only] Metadata about this warning in key: value format.
25391	// For example:
25392	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25393	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
25394
25395	// Message: [Output Only] A human-readable description of the warning
25396	// code.
25397	Message string `json:"message,omitempty"`
25398
25399	// ForceSendFields is a list of field names (e.g. "Code") to
25400	// unconditionally include in API requests. By default, fields with
25401	// empty values are omitted from API requests. However, any non-pointer,
25402	// non-interface field appearing in ForceSendFields will be sent to the
25403	// server regardless of whether the field is empty or not. This may be
25404	// used to include empty fields in Patch requests.
25405	ForceSendFields []string `json:"-"`
25406
25407	// NullFields is a list of field names (e.g. "Code") to include in API
25408	// requests with the JSON null value. By default, fields with empty
25409	// values are omitted from API requests. However, any field with an
25410	// empty value appearing in NullFields will be sent to the server as
25411	// null. It is an error if a field in this list has a non-empty value.
25412	// This may be used to include null fields in Patch requests.
25413	NullFields []string `json:"-"`
25414}
25415
25416func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
25417	type NoMethod NetworkEndpointGroupsScopedListWarning
25418	raw := NoMethod(*s)
25419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25420}
25421
25422type NetworkEndpointGroupsScopedListWarningData struct {
25423	// Key: [Output Only] A key that provides more detail on the warning
25424	// being returned. For example, for warnings where there are no results
25425	// in a list request for a particular zone, this key might be scope and
25426	// the key value might be the zone name. Other examples might be a key
25427	// indicating a deprecated resource and a suggested replacement, or a
25428	// warning about invalid network settings (for example, if an instance
25429	// attempts to perform IP forwarding but is not enabled for IP
25430	// forwarding).
25431	Key string `json:"key,omitempty"`
25432
25433	// Value: [Output Only] A warning data value corresponding to the key.
25434	Value string `json:"value,omitempty"`
25435
25436	// ForceSendFields is a list of field names (e.g. "Key") to
25437	// unconditionally include in API requests. By default, fields with
25438	// empty values are omitted from API requests. However, any non-pointer,
25439	// non-interface field appearing in ForceSendFields will be sent to the
25440	// server regardless of whether the field is empty or not. This may be
25441	// used to include empty fields in Patch requests.
25442	ForceSendFields []string `json:"-"`
25443
25444	// NullFields is a list of field names (e.g. "Key") to include in API
25445	// requests with the JSON null value. By default, fields with empty
25446	// values are omitted from API requests. However, any field with an
25447	// empty value appearing in NullFields will be sent to the server as
25448	// null. It is an error if a field in this list has a non-empty value.
25449	// This may be used to include null fields in Patch requests.
25450	NullFields []string `json:"-"`
25451}
25452
25453func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
25454	type NoMethod NetworkEndpointGroupsScopedListWarningData
25455	raw := NoMethod(*s)
25456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25457}
25458
25459type NetworkEndpointWithHealthStatus struct {
25460	// Healths: [Output only] The health status of network endpoint;
25461	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
25462
25463	// NetworkEndpoint: [Output only] The network endpoint;
25464	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
25465
25466	// ForceSendFields is a list of field names (e.g. "Healths") to
25467	// unconditionally include in API requests. By default, fields with
25468	// empty values are omitted from API requests. However, any non-pointer,
25469	// non-interface field appearing in ForceSendFields will be sent to the
25470	// server regardless of whether the field is empty or not. This may be
25471	// used to include empty fields in Patch requests.
25472	ForceSendFields []string `json:"-"`
25473
25474	// NullFields is a list of field names (e.g. "Healths") to include in
25475	// API requests with the JSON null value. By default, fields with empty
25476	// values are omitted from API requests. However, any field with an
25477	// empty value appearing in NullFields will be sent to the server as
25478	// null. It is an error if a field in this list has a non-empty value.
25479	// This may be used to include null fields in Patch requests.
25480	NullFields []string `json:"-"`
25481}
25482
25483func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
25484	type NoMethod NetworkEndpointWithHealthStatus
25485	raw := NoMethod(*s)
25486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25487}
25488
25489// NetworkInterface: A network interface resource attached to an
25490// instance.
25491type NetworkInterface struct {
25492	// AccessConfigs: An array of configurations for this interface.
25493	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
25494	// there are no accessConfigs specified, then this instance will have no
25495	// external internet access.
25496	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
25497
25498	// AliasIpRanges: An array of alias IP ranges for this network
25499	// interface. You can only specify this field for network interfaces in
25500	// VPC networks.
25501	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
25502
25503	// Fingerprint: Fingerprint hash of contents stored in this network
25504	// interface. This field will be ignored when inserting an Instance or
25505	// adding a NetworkInterface. An up-to-date fingerprint must be provided
25506	// in order to update the NetworkInterface. The request will fail with
25507	// error 400 Bad Request if the fingerprint is not provided, or 412
25508	// Precondition Failed if the fingerprint is out of date.
25509	Fingerprint string `json:"fingerprint,omitempty"`
25510
25511	// Ipv6AccessConfigs: An array of IPv6 access configurations for this
25512	// interface. Currently, only one IPv6 access config, DIRECT_IPV6, is
25513	// supported. If there is no ipv6AccessConfig specified, then this
25514	// instance will have no external IPv6 Internet access.
25515	Ipv6AccessConfigs []*AccessConfig `json:"ipv6AccessConfigs,omitempty"`
25516
25517	// Ipv6AccessType: [Output Only] One of EXTERNAL, INTERNAL to indicate
25518	// whether the IP can be accessed from the Internet. This field is
25519	// always inherited from its subnetwork.
25520	//
25521	// Valid only if stackType is IPV4_IPV6.
25522	//
25523	// Possible values:
25524	//   "EXTERNAL"
25525	//   "UNSPECIFIED_IPV6_ACCESS_TYPE"
25526	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
25527
25528	// Ipv6Address: [Output Only] An IPv6 internal network address for this
25529	// network interface.
25530	Ipv6Address string `json:"ipv6Address,omitempty"`
25531
25532	// Kind: [Output Only] Type of the resource. Always
25533	// compute#networkInterface for network interfaces.
25534	Kind string `json:"kind,omitempty"`
25535
25536	// Name: [Output Only] The name of the network interface, which is
25537	// generated by the server. For network devices, these are eth0, eth1,
25538	// etc.
25539	Name string `json:"name,omitempty"`
25540
25541	// Network: URL of the network resource for this instance. When creating
25542	// an instance, if neither the network nor the subnetwork is specified,
25543	// the default network global/networks/default is used; if the network
25544	// is not specified but the subnetwork is specified, the network is
25545	// inferred.
25546	//
25547	// If you specify this property, you can specify the network as a full
25548	// or partial URL. For example, the following are all valid URLs:
25549	// -
25550	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
25551	//
25552	// - projects/project/global/networks/network
25553	// - global/networks/default
25554	Network string `json:"network,omitempty"`
25555
25556	// NetworkIP: An IPv4 internal IP address to assign to the instance for
25557	// this network interface. If not specified by the user, an unused
25558	// internal IP is assigned by the system.
25559	NetworkIP string `json:"networkIP,omitempty"`
25560
25561	// NicType: The type of vNIC to be used on this interface. This may be
25562	// gVNIC or VirtioNet.
25563	//
25564	// Possible values:
25565	//   "GVNIC"
25566	//   "UNSPECIFIED_NIC_TYPE"
25567	//   "VIRTIO_NET"
25568	NicType string `json:"nicType,omitempty"`
25569
25570	// StackType: The stack type for this network interface to identify
25571	// whether the IPv6 feature is enabled or not. If not specified,
25572	// IPV4_ONLY will be used.
25573	//
25574	// This field can be both set at instance creation and update network
25575	// interface operations.
25576	//
25577	// Possible values:
25578	//   "IPV4_IPV6"
25579	//   "IPV4_ONLY"
25580	//   "UNSPECIFIED_STACK_TYPE"
25581	StackType string `json:"stackType,omitempty"`
25582
25583	// Subnetwork: The URL of the Subnetwork resource for this instance. If
25584	// the network resource is in legacy mode, do not specify this field. If
25585	// the network is in auto subnet mode, specifying the subnetwork is
25586	// optional. If the network is in custom subnet mode, specifying the
25587	// subnetwork is required. If you specify this field, you can specify
25588	// the subnetwork as a full or partial URL. For example, the following
25589	// are all valid URLs:
25590	// -
25591	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
25592	//
25593	// - regions/region/subnetworks/subnetwork
25594	Subnetwork string `json:"subnetwork,omitempty"`
25595
25596	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
25597	// unconditionally include in API requests. By default, fields with
25598	// empty values are omitted from API requests. However, any non-pointer,
25599	// non-interface field appearing in ForceSendFields will be sent to the
25600	// server regardless of whether the field is empty or not. This may be
25601	// used to include empty fields in Patch requests.
25602	ForceSendFields []string `json:"-"`
25603
25604	// NullFields is a list of field names (e.g. "AccessConfigs") to include
25605	// in API requests with the JSON null value. By default, fields with
25606	// empty values are omitted from API requests. However, any field with
25607	// an empty value appearing in NullFields will be sent to the server as
25608	// null. It is an error if a field in this list has a non-empty value.
25609	// This may be used to include null fields in Patch requests.
25610	NullFields []string `json:"-"`
25611}
25612
25613func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
25614	type NoMethod NetworkInterface
25615	raw := NoMethod(*s)
25616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25617}
25618
25619// NetworkList: Contains a list of networks.
25620type NetworkList struct {
25621	// Id: [Output Only] Unique identifier for the resource; defined by the
25622	// server.
25623	Id string `json:"id,omitempty"`
25624
25625	// Items: A list of Network resources.
25626	Items []*Network `json:"items,omitempty"`
25627
25628	// Kind: [Output Only] Type of resource. Always compute#networkList for
25629	// lists of networks.
25630	Kind string `json:"kind,omitempty"`
25631
25632	// NextPageToken: [Output Only] This token allows you to get the next
25633	// page of results for list requests. If the number of results is larger
25634	// than maxResults, use the nextPageToken as a value for the query
25635	// parameter pageToken in the next list request. Subsequent list
25636	// requests will have their own nextPageToken to continue paging through
25637	// the results.
25638	NextPageToken string `json:"nextPageToken,omitempty"`
25639
25640	// SelfLink: [Output Only] Server-defined URL for this resource.
25641	SelfLink string `json:"selfLink,omitempty"`
25642
25643	// Warning: [Output Only] Informational warning message.
25644	Warning *NetworkListWarning `json:"warning,omitempty"`
25645
25646	// ServerResponse contains the HTTP response code and headers from the
25647	// server.
25648	googleapi.ServerResponse `json:"-"`
25649
25650	// ForceSendFields is a list of field names (e.g. "Id") to
25651	// unconditionally include in API requests. By default, fields with
25652	// empty values are omitted from API requests. However, any non-pointer,
25653	// non-interface field appearing in ForceSendFields will be sent to the
25654	// server regardless of whether the field is empty or not. This may be
25655	// used to include empty fields in Patch requests.
25656	ForceSendFields []string `json:"-"`
25657
25658	// NullFields is a list of field names (e.g. "Id") to include in API
25659	// requests with the JSON null value. By default, fields with empty
25660	// values are omitted from API requests. However, any field with an
25661	// empty value appearing in NullFields will be sent to the server as
25662	// null. It is an error if a field in this list has a non-empty value.
25663	// This may be used to include null fields in Patch requests.
25664	NullFields []string `json:"-"`
25665}
25666
25667func (s *NetworkList) MarshalJSON() ([]byte, error) {
25668	type NoMethod NetworkList
25669	raw := NoMethod(*s)
25670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25671}
25672
25673// NetworkListWarning: [Output Only] Informational warning message.
25674type NetworkListWarning struct {
25675	// Code: [Output Only] A warning code, if applicable. For example,
25676	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25677	// the response.
25678	//
25679	// Possible values:
25680	//   "CLEANUP_FAILED"
25681	//   "DEPRECATED_RESOURCE_USED"
25682	//   "DEPRECATED_TYPE_USED"
25683	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25684	//   "EXPERIMENTAL_TYPE_USED"
25685	//   "EXTERNAL_API_WARNING"
25686	//   "FIELD_VALUE_OVERRIDEN"
25687	//   "INJECTED_KERNELS_DEPRECATED"
25688	//   "LARGE_DEPLOYMENT_WARNING"
25689	//   "MISSING_TYPE_DEPENDENCY"
25690	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25691	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25692	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25693	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25694	//   "NEXT_HOP_NOT_RUNNING"
25695	//   "NOT_CRITICAL_ERROR"
25696	//   "NO_RESULTS_ON_PAGE"
25697	//   "PARTIAL_SUCCESS"
25698	//   "REQUIRED_TOS_AGREEMENT"
25699	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25700	//   "RESOURCE_NOT_DELETED"
25701	//   "SCHEMA_VALIDATION_IGNORED"
25702	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25703	//   "UNDECLARED_PROPERTIES"
25704	//   "UNREACHABLE"
25705	Code string `json:"code,omitempty"`
25706
25707	// Data: [Output Only] Metadata about this warning in key: value format.
25708	// For example:
25709	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25710	Data []*NetworkListWarningData `json:"data,omitempty"`
25711
25712	// Message: [Output Only] A human-readable description of the warning
25713	// code.
25714	Message string `json:"message,omitempty"`
25715
25716	// ForceSendFields is a list of field names (e.g. "Code") to
25717	// unconditionally include in API requests. By default, fields with
25718	// empty values are omitted from API requests. However, any non-pointer,
25719	// non-interface field appearing in ForceSendFields will be sent to the
25720	// server regardless of whether the field is empty or not. This may be
25721	// used to include empty fields in Patch requests.
25722	ForceSendFields []string `json:"-"`
25723
25724	// NullFields is a list of field names (e.g. "Code") to include in API
25725	// requests with the JSON null value. By default, fields with empty
25726	// values are omitted from API requests. However, any field with an
25727	// empty value appearing in NullFields will be sent to the server as
25728	// null. It is an error if a field in this list has a non-empty value.
25729	// This may be used to include null fields in Patch requests.
25730	NullFields []string `json:"-"`
25731}
25732
25733func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
25734	type NoMethod NetworkListWarning
25735	raw := NoMethod(*s)
25736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25737}
25738
25739type NetworkListWarningData struct {
25740	// Key: [Output Only] A key that provides more detail on the warning
25741	// being returned. For example, for warnings where there are no results
25742	// in a list request for a particular zone, this key might be scope and
25743	// the key value might be the zone name. Other examples might be a key
25744	// indicating a deprecated resource and a suggested replacement, or a
25745	// warning about invalid network settings (for example, if an instance
25746	// attempts to perform IP forwarding but is not enabled for IP
25747	// forwarding).
25748	Key string `json:"key,omitempty"`
25749
25750	// Value: [Output Only] A warning data value corresponding to the key.
25751	Value string `json:"value,omitempty"`
25752
25753	// ForceSendFields is a list of field names (e.g. "Key") to
25754	// unconditionally include in API requests. By default, fields with
25755	// empty values are omitted from API requests. However, any non-pointer,
25756	// non-interface field appearing in ForceSendFields will be sent to the
25757	// server regardless of whether the field is empty or not. This may be
25758	// used to include empty fields in Patch requests.
25759	ForceSendFields []string `json:"-"`
25760
25761	// NullFields is a list of field names (e.g. "Key") to include in API
25762	// requests with the JSON null value. By default, fields with empty
25763	// values are omitted from API requests. However, any field with an
25764	// empty value appearing in NullFields will be sent to the server as
25765	// null. It is an error if a field in this list has a non-empty value.
25766	// This may be used to include null fields in Patch requests.
25767	NullFields []string `json:"-"`
25768}
25769
25770func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
25771	type NoMethod NetworkListWarningData
25772	raw := NoMethod(*s)
25773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25774}
25775
25776// NetworkPeering: A network peering attached to a network resource. The
25777// message includes the peering name, peer network, peering state, and a
25778// flag indicating whether Google Compute Engine should automatically
25779// create routes for the peering.
25780type NetworkPeering struct {
25781	// AutoCreateRoutes: This field will be deprecated soon. Use the
25782	// exchange_subnet_routes field instead. Indicates whether full mesh
25783	// connectivity is created and managed automatically between peered
25784	// networks. Currently this field should always be true since Google
25785	// Compute Engine will automatically create and manage subnetwork routes
25786	// between two networks when peering state is ACTIVE.
25787	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25788
25789	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
25790	// created and managed automatically between peered networks. Currently
25791	// this field should always be true since Google Compute Engine will
25792	// automatically create and manage subnetwork routes between two
25793	// networks when peering state is ACTIVE.
25794	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
25795
25796	// ExportCustomRoutes: Whether to export the custom routes to peer
25797	// network.
25798	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
25799
25800	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25801	// range are exported. The default value is true, all subnet routes are
25802	// exported. The IPv4 special-use ranges
25803	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
25804	// exported to peers and are not controlled by this field.
25805	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
25806
25807	// ImportCustomRoutes: Whether to import the custom routes from peer
25808	// network.
25809	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
25810
25811	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25812	// range are imported. The default value is false. The IPv4 special-use
25813	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
25814	// always imported from peers and are not controlled by this field.
25815	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
25816
25817	// Name: Name of this peering. Provided by the client when the peering
25818	// is created. The name must comply with RFC1035. Specifically, the name
25819	// must be 1-63 characters long and match regular expression
25820	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
25821	// letter, and all the following characters must be a dash, lowercase
25822	// letter, or digit, except the last character, which cannot be a dash.
25823	Name string `json:"name,omitempty"`
25824
25825	// Network: The URL of the peer network. It can be either full URL or
25826	// partial URL. The peer network may belong to a different project. If
25827	// the partial URL does not contain project, it is assumed that the peer
25828	// network is in the same project as the current network.
25829	Network string `json:"network,omitempty"`
25830
25831	// PeerMtu: Maximum Transmission Unit in bytes.
25832	PeerMtu int64 `json:"peerMtu,omitempty"`
25833
25834	// State: [Output Only] State for the peering, either `ACTIVE` or
25835	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
25836	// configuration in the peer network.
25837	//
25838	// Possible values:
25839	//   "ACTIVE"
25840	//   "INACTIVE"
25841	State string `json:"state,omitempty"`
25842
25843	// StateDetails: [Output Only] Details about the current state of the
25844	// peering.
25845	StateDetails string `json:"stateDetails,omitempty"`
25846
25847	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
25848	// unconditionally include in API requests. By default, fields with
25849	// empty values are omitted from API requests. However, any non-pointer,
25850	// non-interface field appearing in ForceSendFields will be sent to the
25851	// server regardless of whether the field is empty or not. This may be
25852	// used to include empty fields in Patch requests.
25853	ForceSendFields []string `json:"-"`
25854
25855	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
25856	// include in API requests with the JSON null value. By default, fields
25857	// with empty values are omitted from API requests. However, any field
25858	// with an empty value appearing in NullFields will be sent to the
25859	// server as null. It is an error if a field in this list has a
25860	// non-empty value. This may be used to include null fields in Patch
25861	// requests.
25862	NullFields []string `json:"-"`
25863}
25864
25865func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
25866	type NoMethod NetworkPeering
25867	raw := NoMethod(*s)
25868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25869}
25870
25871type NetworkPerformanceConfig struct {
25872	// Possible values:
25873	//   "DEFAULT"
25874	//   "TIER_1"
25875	TotalEgressBandwidthTier string `json:"totalEgressBandwidthTier,omitempty"`
25876
25877	// ForceSendFields is a list of field names (e.g.
25878	// "TotalEgressBandwidthTier") to unconditionally include in API
25879	// requests. By default, fields with empty values are omitted from API
25880	// requests. However, any non-pointer, non-interface field appearing in
25881	// ForceSendFields will be sent to the server regardless of whether the
25882	// field is empty or not. This may be used to include empty fields in
25883	// Patch requests.
25884	ForceSendFields []string `json:"-"`
25885
25886	// NullFields is a list of field names (e.g. "TotalEgressBandwidthTier")
25887	// to include in API requests with the JSON null value. By default,
25888	// fields with empty values are omitted from API requests. However, any
25889	// field with an empty value appearing in NullFields will be sent to the
25890	// server as null. It is an error if a field in this list has a
25891	// non-empty value. This may be used to include null fields in Patch
25892	// requests.
25893	NullFields []string `json:"-"`
25894}
25895
25896func (s *NetworkPerformanceConfig) MarshalJSON() ([]byte, error) {
25897	type NoMethod NetworkPerformanceConfig
25898	raw := NoMethod(*s)
25899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25900}
25901
25902// NetworkRoutingConfig: A routing configuration attached to a network
25903// resource. The message includes the list of routers associated with
25904// the network, and a flag indicating the type of routing behavior to
25905// enforce network-wide.
25906type NetworkRoutingConfig struct {
25907	// RoutingMode: The network-wide routing mode to use. If set to
25908	// REGIONAL, this network's Cloud Routers will only advertise routes
25909	// with subnets of this network in the same region as the router. If set
25910	// to GLOBAL, this network's Cloud Routers will advertise routes with
25911	// all subnets of this network, across regions.
25912	//
25913	// Possible values:
25914	//   "GLOBAL"
25915	//   "REGIONAL"
25916	RoutingMode string `json:"routingMode,omitempty"`
25917
25918	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
25919	// unconditionally include in API requests. By default, fields with
25920	// empty values are omitted from API requests. However, any non-pointer,
25921	// non-interface field appearing in ForceSendFields will be sent to the
25922	// server regardless of whether the field is empty or not. This may be
25923	// used to include empty fields in Patch requests.
25924	ForceSendFields []string `json:"-"`
25925
25926	// NullFields is a list of field names (e.g. "RoutingMode") to include
25927	// in API requests with the JSON null value. By default, fields with
25928	// empty values are omitted from API requests. However, any field with
25929	// an empty value appearing in NullFields will be sent to the server as
25930	// null. It is an error if a field in this list has a non-empty value.
25931	// This may be used to include null fields in Patch requests.
25932	NullFields []string `json:"-"`
25933}
25934
25935func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
25936	type NoMethod NetworkRoutingConfig
25937	raw := NoMethod(*s)
25938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25939}
25940
25941type NetworksAddPeeringRequest struct {
25942	// AutoCreateRoutes: This field will be deprecated soon. Use
25943	// exchange_subnet_routes in network_peering instead. Indicates whether
25944	// full mesh connectivity is created and managed automatically between
25945	// peered networks. Currently this field should always be true since
25946	// Google Compute Engine will automatically create and manage subnetwork
25947	// routes between two networks when peering state is ACTIVE.
25948	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25949
25950	// Name: Name of the peering, which should conform to RFC1035.
25951	Name string `json:"name,omitempty"`
25952
25953	// NetworkPeering: Network peering parameters. In order to specify route
25954	// policies for peering using import and export custom routes, you must
25955	// specify all peering related parameters (name, peer network,
25956	// exchange_subnet_routes) in the network_peering field. The
25957	// corresponding fields in NetworksAddPeeringRequest will be deprecated
25958	// soon.
25959	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
25960
25961	// PeerNetwork: URL of the peer network. It can be either full URL or
25962	// partial URL. The peer network may belong to a different project. If
25963	// the partial URL does not contain project, it is assumed that the peer
25964	// network is in the same project as the current network.
25965	PeerNetwork string `json:"peerNetwork,omitempty"`
25966
25967	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
25968	// unconditionally include in API requests. By default, fields with
25969	// empty values are omitted from API requests. However, any non-pointer,
25970	// non-interface field appearing in ForceSendFields will be sent to the
25971	// server regardless of whether the field is empty or not. This may be
25972	// used to include empty fields in Patch requests.
25973	ForceSendFields []string `json:"-"`
25974
25975	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
25976	// include in API requests with the JSON null value. By default, fields
25977	// with empty values are omitted from API requests. However, any field
25978	// with an empty value appearing in NullFields will be sent to the
25979	// server as null. It is an error if a field in this list has a
25980	// non-empty value. This may be used to include null fields in Patch
25981	// requests.
25982	NullFields []string `json:"-"`
25983}
25984
25985func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
25986	type NoMethod NetworksAddPeeringRequest
25987	raw := NoMethod(*s)
25988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25989}
25990
25991type NetworksGetEffectiveFirewallsResponse struct {
25992	// FirewallPolicys: Effective firewalls from firewall policy.
25993	FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
25994
25995	// Firewalls: Effective firewalls on the network.
25996	Firewalls []*Firewall `json:"firewalls,omitempty"`
25997
25998	// OrganizationFirewalls: Effective firewalls from organization
25999	// policies.
26000	OrganizationFirewalls []*NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
26001
26002	// ServerResponse contains the HTTP response code and headers from the
26003	// server.
26004	googleapi.ServerResponse `json:"-"`
26005
26006	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
26007	// unconditionally include in API requests. By default, fields with
26008	// empty values are omitted from API requests. However, any non-pointer,
26009	// non-interface field appearing in ForceSendFields will be sent to the
26010	// server regardless of whether the field is empty or not. This may be
26011	// used to include empty fields in Patch requests.
26012	ForceSendFields []string `json:"-"`
26013
26014	// NullFields is a list of field names (e.g. "FirewallPolicys") to
26015	// include in API requests with the JSON null value. By default, fields
26016	// with empty values are omitted from API requests. However, any field
26017	// with an empty value appearing in NullFields will be sent to the
26018	// server as null. It is an error if a field in this list has a
26019	// non-empty value. This may be used to include null fields in Patch
26020	// requests.
26021	NullFields []string `json:"-"`
26022}
26023
26024func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
26025	type NoMethod NetworksGetEffectiveFirewallsResponse
26026	raw := NoMethod(*s)
26027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26028}
26029
26030type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
26031	// DisplayName: [Output Only] Deprecated, please use short name instead.
26032	// The display name of the firewall policy.
26033	DisplayName string `json:"displayName,omitempty"`
26034
26035	// Name: [Output Only] The name of the firewall policy.
26036	Name string `json:"name,omitempty"`
26037
26038	// Rules: The rules that apply to the network.
26039	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
26040
26041	// ShortName: [Output Only] The short name of the firewall policy.
26042	ShortName string `json:"shortName,omitempty"`
26043
26044	// Type: [Output Only] The type of the firewall policy.
26045	//
26046	// Possible values:
26047	//   "HIERARCHY"
26048	//   "NETWORK"
26049	//   "UNSPECIFIED"
26050	Type string `json:"type,omitempty"`
26051
26052	// ForceSendFields is a list of field names (e.g. "DisplayName") to
26053	// unconditionally include in API requests. By default, fields with
26054	// empty values are omitted from API requests. However, any non-pointer,
26055	// non-interface field appearing in ForceSendFields will be sent to the
26056	// server regardless of whether the field is empty or not. This may be
26057	// used to include empty fields in Patch requests.
26058	ForceSendFields []string `json:"-"`
26059
26060	// NullFields is a list of field names (e.g. "DisplayName") to include
26061	// in API requests with the JSON null value. By default, fields with
26062	// empty values are omitted from API requests. However, any field with
26063	// an empty value appearing in NullFields will be sent to the server as
26064	// null. It is an error if a field in this list has a non-empty value.
26065	// This may be used to include null fields in Patch requests.
26066	NullFields []string `json:"-"`
26067}
26068
26069func (s *NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
26070	type NoMethod NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
26071	raw := NoMethod(*s)
26072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26073}
26074
26075// NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
26076// pruned SecurityPolicy containing ID and any applicable firewall
26077// rules.
26078type NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
26079	// Id: [Output Only] The unique identifier for the security policy. This
26080	// identifier is defined by the server.
26081	Id uint64 `json:"id,omitempty,string"`
26082
26083	// Rules: The rules that apply to the network.
26084	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
26085
26086	// ForceSendFields is a list of field names (e.g. "Id") to
26087	// unconditionally include in API requests. By default, fields with
26088	// empty values are omitted from API requests. However, any non-pointer,
26089	// non-interface field appearing in ForceSendFields will be sent to the
26090	// server regardless of whether the field is empty or not. This may be
26091	// used to include empty fields in Patch requests.
26092	ForceSendFields []string `json:"-"`
26093
26094	// NullFields is a list of field names (e.g. "Id") to include in API
26095	// requests with the JSON null value. By default, fields with empty
26096	// values are omitted from API requests. However, any field with an
26097	// empty value appearing in NullFields will be sent to the server as
26098	// null. It is an error if a field in this list has a non-empty value.
26099	// This may be used to include null fields in Patch requests.
26100	NullFields []string `json:"-"`
26101}
26102
26103func (s *NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
26104	type NoMethod NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
26105	raw := NoMethod(*s)
26106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26107}
26108
26109type NetworksRemovePeeringRequest struct {
26110	// Name: Name of the peering, which should conform to RFC1035.
26111	Name string `json:"name,omitempty"`
26112
26113	// ForceSendFields is a list of field names (e.g. "Name") to
26114	// unconditionally include in API requests. By default, fields with
26115	// empty values are omitted from API requests. However, any non-pointer,
26116	// non-interface field appearing in ForceSendFields will be sent to the
26117	// server regardless of whether the field is empty or not. This may be
26118	// used to include empty fields in Patch requests.
26119	ForceSendFields []string `json:"-"`
26120
26121	// NullFields is a list of field names (e.g. "Name") to include in API
26122	// requests with the JSON null value. By default, fields with empty
26123	// values are omitted from API requests. However, any field with an
26124	// empty value appearing in NullFields will be sent to the server as
26125	// null. It is an error if a field in this list has a non-empty value.
26126	// This may be used to include null fields in Patch requests.
26127	NullFields []string `json:"-"`
26128}
26129
26130func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
26131	type NoMethod NetworksRemovePeeringRequest
26132	raw := NoMethod(*s)
26133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26134}
26135
26136type NetworksUpdatePeeringRequest struct {
26137	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
26138
26139	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
26140	// unconditionally include in API requests. By default, fields with
26141	// empty values are omitted from API requests. However, any non-pointer,
26142	// non-interface field appearing in ForceSendFields will be sent to the
26143	// server regardless of whether the field is empty or not. This may be
26144	// used to include empty fields in Patch requests.
26145	ForceSendFields []string `json:"-"`
26146
26147	// NullFields is a list of field names (e.g. "NetworkPeering") to
26148	// include in API requests with the JSON null value. By default, fields
26149	// with empty values are omitted from API requests. However, any field
26150	// with an empty value appearing in NullFields will be sent to the
26151	// server as null. It is an error if a field in this list has a
26152	// non-empty value. This may be used to include null fields in Patch
26153	// requests.
26154	NullFields []string `json:"-"`
26155}
26156
26157func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
26158	type NoMethod NetworksUpdatePeeringRequest
26159	raw := NoMethod(*s)
26160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26161}
26162
26163// NodeGroup: Represent a sole-tenant Node Group resource.
26164//
26165// A sole-tenant node is a physical server that is dedicated to hosting
26166// VM instances only for your specific project. Use sole-tenant nodes to
26167// keep your instances physically separated from instances in other
26168// projects, or to group your instances together on the same host
26169// hardware. For more information, read Sole-tenant nodes. (==
26170// resource_for {$api_version}.nodeGroups ==)
26171type NodeGroup struct {
26172	// AutoscalingPolicy: Specifies how autoscaling should behave.
26173	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
26174
26175	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26176	// format.
26177	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26178
26179	// Description: An optional description of this resource. Provide this
26180	// property when you create the resource.
26181	Description string `json:"description,omitempty"`
26182
26183	Fingerprint string `json:"fingerprint,omitempty"`
26184
26185	// Id: [Output Only] The unique identifier for the resource. This
26186	// identifier is defined by the server.
26187	Id uint64 `json:"id,omitempty,string"`
26188
26189	// Kind: [Output Only] The type of the resource. Always
26190	// compute#nodeGroup for node group.
26191	Kind string `json:"kind,omitempty"`
26192
26193	// LocationHint: An opaque location hint used to place the Node close to
26194	// other resources. This field is for use by internal tools that use the
26195	// public API. The location hint here on the NodeGroup overrides any
26196	// location_hint present in the NodeTemplate.
26197	LocationHint string `json:"locationHint,omitempty"`
26198
26199	// MaintenancePolicy: Specifies how to handle instances when a node in
26200	// the group undergoes maintenance. Set to one of: DEFAULT,
26201	// RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is
26202	// DEFAULT. For more information, see  Maintenance policies.
26203	//
26204	// Possible values:
26205	//   "DEFAULT"
26206	//   "MAINTENANCE_POLICY_UNSPECIFIED"
26207	//   "MIGRATE_WITHIN_NODE_GROUP"
26208	//   "RESTART_IN_PLACE"
26209	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
26210
26211	MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"`
26212
26213	// Name: The name of the resource, provided by the client when initially
26214	// creating the resource. The resource name must be 1-63 characters
26215	// long, and comply with RFC1035. Specifically, the name must be 1-63
26216	// characters long and match the regular expression
26217	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
26218	// a lowercase letter, and all following characters must be a dash,
26219	// lowercase letter, or digit, except the last character, which cannot
26220	// be a dash.
26221	Name string `json:"name,omitempty"`
26222
26223	// NodeTemplate: URL of the node template to create the node group from.
26224	NodeTemplate string `json:"nodeTemplate,omitempty"`
26225
26226	// SelfLink: [Output Only] Server-defined URL for the resource.
26227	SelfLink string `json:"selfLink,omitempty"`
26228
26229	// Size: [Output Only] The total number of nodes in the node group.
26230	Size int64 `json:"size,omitempty"`
26231
26232	// Possible values:
26233	//   "CREATING"
26234	//   "DELETING"
26235	//   "INVALID"
26236	//   "READY"
26237	Status string `json:"status,omitempty"`
26238
26239	// Zone: [Output Only] The name of the zone where the node group
26240	// resides, such as us-central1-a.
26241	Zone string `json:"zone,omitempty"`
26242
26243	// ServerResponse contains the HTTP response code and headers from the
26244	// server.
26245	googleapi.ServerResponse `json:"-"`
26246
26247	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
26248	// to unconditionally include in API requests. By default, fields with
26249	// empty values are omitted from API requests. However, any non-pointer,
26250	// non-interface field appearing in ForceSendFields will be sent to the
26251	// server regardless of whether the field is empty or not. This may be
26252	// used to include empty fields in Patch requests.
26253	ForceSendFields []string `json:"-"`
26254
26255	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
26256	// include in API requests with the JSON null value. By default, fields
26257	// with empty values are omitted from API requests. However, any field
26258	// with an empty value appearing in NullFields will be sent to the
26259	// server as null. It is an error if a field in this list has a
26260	// non-empty value. This may be used to include null fields in Patch
26261	// requests.
26262	NullFields []string `json:"-"`
26263}
26264
26265func (s *NodeGroup) MarshalJSON() ([]byte, error) {
26266	type NoMethod NodeGroup
26267	raw := NoMethod(*s)
26268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26269}
26270
26271type NodeGroupAggregatedList struct {
26272	// Id: [Output Only] Unique identifier for the resource; defined by the
26273	// server.
26274	Id string `json:"id,omitempty"`
26275
26276	// Items: A list of NodeGroupsScopedList resources.
26277	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
26278
26279	// Kind: [Output Only] Type of resource.Always
26280	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
26281	Kind string `json:"kind,omitempty"`
26282
26283	// NextPageToken: [Output Only] This token allows you to get the next
26284	// page of results for list requests. If the number of results is larger
26285	// than maxResults, use the nextPageToken as a value for the query
26286	// parameter pageToken in the next list request. Subsequent list
26287	// requests will have their own nextPageToken to continue paging through
26288	// the results.
26289	NextPageToken string `json:"nextPageToken,omitempty"`
26290
26291	// SelfLink: [Output Only] Server-defined URL for this resource.
26292	SelfLink string `json:"selfLink,omitempty"`
26293
26294	// Unreachables: [Output Only] Unreachable resources.
26295	Unreachables []string `json:"unreachables,omitempty"`
26296
26297	// Warning: [Output Only] Informational warning message.
26298	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
26299
26300	// ServerResponse contains the HTTP response code and headers from the
26301	// server.
26302	googleapi.ServerResponse `json:"-"`
26303
26304	// ForceSendFields is a list of field names (e.g. "Id") to
26305	// unconditionally include in API requests. By default, fields with
26306	// empty values are omitted from API requests. However, any non-pointer,
26307	// non-interface field appearing in ForceSendFields will be sent to the
26308	// server regardless of whether the field is empty or not. This may be
26309	// used to include empty fields in Patch requests.
26310	ForceSendFields []string `json:"-"`
26311
26312	// NullFields is a list of field names (e.g. "Id") to include in API
26313	// requests with the JSON null value. By default, fields with empty
26314	// values are omitted from API requests. However, any field with an
26315	// empty value appearing in NullFields will be sent to the server as
26316	// null. It is an error if a field in this list has a non-empty value.
26317	// This may be used to include null fields in Patch requests.
26318	NullFields []string `json:"-"`
26319}
26320
26321func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
26322	type NoMethod NodeGroupAggregatedList
26323	raw := NoMethod(*s)
26324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26325}
26326
26327// NodeGroupAggregatedListWarning: [Output Only] Informational warning
26328// message.
26329type NodeGroupAggregatedListWarning struct {
26330	// Code: [Output Only] A warning code, if applicable. For example,
26331	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26332	// the response.
26333	//
26334	// Possible values:
26335	//   "CLEANUP_FAILED"
26336	//   "DEPRECATED_RESOURCE_USED"
26337	//   "DEPRECATED_TYPE_USED"
26338	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26339	//   "EXPERIMENTAL_TYPE_USED"
26340	//   "EXTERNAL_API_WARNING"
26341	//   "FIELD_VALUE_OVERRIDEN"
26342	//   "INJECTED_KERNELS_DEPRECATED"
26343	//   "LARGE_DEPLOYMENT_WARNING"
26344	//   "MISSING_TYPE_DEPENDENCY"
26345	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26346	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26347	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26348	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26349	//   "NEXT_HOP_NOT_RUNNING"
26350	//   "NOT_CRITICAL_ERROR"
26351	//   "NO_RESULTS_ON_PAGE"
26352	//   "PARTIAL_SUCCESS"
26353	//   "REQUIRED_TOS_AGREEMENT"
26354	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26355	//   "RESOURCE_NOT_DELETED"
26356	//   "SCHEMA_VALIDATION_IGNORED"
26357	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26358	//   "UNDECLARED_PROPERTIES"
26359	//   "UNREACHABLE"
26360	Code string `json:"code,omitempty"`
26361
26362	// Data: [Output Only] Metadata about this warning in key: value format.
26363	// For example:
26364	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26365	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
26366
26367	// Message: [Output Only] A human-readable description of the warning
26368	// code.
26369	Message string `json:"message,omitempty"`
26370
26371	// ForceSendFields is a list of field names (e.g. "Code") to
26372	// unconditionally include in API requests. By default, fields with
26373	// empty values are omitted from API requests. However, any non-pointer,
26374	// non-interface field appearing in ForceSendFields will be sent to the
26375	// server regardless of whether the field is empty or not. This may be
26376	// used to include empty fields in Patch requests.
26377	ForceSendFields []string `json:"-"`
26378
26379	// NullFields is a list of field names (e.g. "Code") to include in API
26380	// requests with the JSON null value. By default, fields with empty
26381	// values are omitted from API requests. However, any field with an
26382	// empty value appearing in NullFields will be sent to the server as
26383	// null. It is an error if a field in this list has a non-empty value.
26384	// This may be used to include null fields in Patch requests.
26385	NullFields []string `json:"-"`
26386}
26387
26388func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
26389	type NoMethod NodeGroupAggregatedListWarning
26390	raw := NoMethod(*s)
26391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26392}
26393
26394type NodeGroupAggregatedListWarningData struct {
26395	// Key: [Output Only] A key that provides more detail on the warning
26396	// being returned. For example, for warnings where there are no results
26397	// in a list request for a particular zone, this key might be scope and
26398	// the key value might be the zone name. Other examples might be a key
26399	// indicating a deprecated resource and a suggested replacement, or a
26400	// warning about invalid network settings (for example, if an instance
26401	// attempts to perform IP forwarding but is not enabled for IP
26402	// forwarding).
26403	Key string `json:"key,omitempty"`
26404
26405	// Value: [Output Only] A warning data value corresponding to the key.
26406	Value string `json:"value,omitempty"`
26407
26408	// ForceSendFields is a list of field names (e.g. "Key") to
26409	// unconditionally include in API requests. By default, fields with
26410	// empty values are omitted from API requests. However, any non-pointer,
26411	// non-interface field appearing in ForceSendFields will be sent to the
26412	// server regardless of whether the field is empty or not. This may be
26413	// used to include empty fields in Patch requests.
26414	ForceSendFields []string `json:"-"`
26415
26416	// NullFields is a list of field names (e.g. "Key") to include in API
26417	// requests with the JSON null value. By default, fields with empty
26418	// values are omitted from API requests. However, any field with an
26419	// empty value appearing in NullFields will be sent to the server as
26420	// null. It is an error if a field in this list has a non-empty value.
26421	// This may be used to include null fields in Patch requests.
26422	NullFields []string `json:"-"`
26423}
26424
26425func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26426	type NoMethod NodeGroupAggregatedListWarningData
26427	raw := NoMethod(*s)
26428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26429}
26430
26431type NodeGroupAutoscalingPolicy struct {
26432	// MaxNodes: The maximum number of nodes that the group should have.
26433	// Must be set if autoscaling is enabled. Maximum value allowed is 100.
26434	MaxNodes int64 `json:"maxNodes,omitempty"`
26435
26436	// MinNodes: The minimum number of nodes that the group should have.
26437	MinNodes int64 `json:"minNodes,omitempty"`
26438
26439	// Mode: The autoscaling mode. Set to one of: ON, OFF, or
26440	// ONLY_SCALE_OUT. For more information, see  Autoscaler modes.
26441	//
26442	// Possible values:
26443	//   "MODE_UNSPECIFIED"
26444	//   "OFF"
26445	//   "ON"
26446	//   "ONLY_SCALE_OUT"
26447	Mode string `json:"mode,omitempty"`
26448
26449	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
26450	// unconditionally include in API requests. By default, fields with
26451	// empty values are omitted from API requests. However, any non-pointer,
26452	// non-interface field appearing in ForceSendFields will be sent to the
26453	// server regardless of whether the field is empty or not. This may be
26454	// used to include empty fields in Patch requests.
26455	ForceSendFields []string `json:"-"`
26456
26457	// NullFields is a list of field names (e.g. "MaxNodes") to include in
26458	// API requests with the JSON null value. By default, fields with empty
26459	// values are omitted from API requests. However, any field with an
26460	// empty value appearing in NullFields will be sent to the server as
26461	// null. It is an error if a field in this list has a non-empty value.
26462	// This may be used to include null fields in Patch requests.
26463	NullFields []string `json:"-"`
26464}
26465
26466func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
26467	type NoMethod NodeGroupAutoscalingPolicy
26468	raw := NoMethod(*s)
26469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26470}
26471
26472// NodeGroupList: Contains a list of nodeGroups.
26473type NodeGroupList struct {
26474	// Id: [Output Only] Unique identifier for the resource; defined by the
26475	// server.
26476	Id string `json:"id,omitempty"`
26477
26478	// Items: A list of NodeGroup resources.
26479	Items []*NodeGroup `json:"items,omitempty"`
26480
26481	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
26482	// lists of node groups.
26483	Kind string `json:"kind,omitempty"`
26484
26485	// NextPageToken: [Output Only] This token allows you to get the next
26486	// page of results for list requests. If the number of results is larger
26487	// than maxResults, use the nextPageToken as a value for the query
26488	// parameter pageToken in the next list request. Subsequent list
26489	// requests will have their own nextPageToken to continue paging through
26490	// the results.
26491	NextPageToken string `json:"nextPageToken,omitempty"`
26492
26493	// SelfLink: [Output Only] Server-defined URL for this resource.
26494	SelfLink string `json:"selfLink,omitempty"`
26495
26496	// Warning: [Output Only] Informational warning message.
26497	Warning *NodeGroupListWarning `json:"warning,omitempty"`
26498
26499	// ServerResponse contains the HTTP response code and headers from the
26500	// server.
26501	googleapi.ServerResponse `json:"-"`
26502
26503	// ForceSendFields is a list of field names (e.g. "Id") to
26504	// unconditionally include in API requests. By default, fields with
26505	// empty values are omitted from API requests. However, any non-pointer,
26506	// non-interface field appearing in ForceSendFields will be sent to the
26507	// server regardless of whether the field is empty or not. This may be
26508	// used to include empty fields in Patch requests.
26509	ForceSendFields []string `json:"-"`
26510
26511	// NullFields is a list of field names (e.g. "Id") to include in API
26512	// requests with the JSON null value. By default, fields with empty
26513	// values are omitted from API requests. However, any field with an
26514	// empty value appearing in NullFields will be sent to the server as
26515	// null. It is an error if a field in this list has a non-empty value.
26516	// This may be used to include null fields in Patch requests.
26517	NullFields []string `json:"-"`
26518}
26519
26520func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
26521	type NoMethod NodeGroupList
26522	raw := NoMethod(*s)
26523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26524}
26525
26526// NodeGroupListWarning: [Output Only] Informational warning message.
26527type NodeGroupListWarning struct {
26528	// Code: [Output Only] A warning code, if applicable. For example,
26529	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26530	// the response.
26531	//
26532	// Possible values:
26533	//   "CLEANUP_FAILED"
26534	//   "DEPRECATED_RESOURCE_USED"
26535	//   "DEPRECATED_TYPE_USED"
26536	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26537	//   "EXPERIMENTAL_TYPE_USED"
26538	//   "EXTERNAL_API_WARNING"
26539	//   "FIELD_VALUE_OVERRIDEN"
26540	//   "INJECTED_KERNELS_DEPRECATED"
26541	//   "LARGE_DEPLOYMENT_WARNING"
26542	//   "MISSING_TYPE_DEPENDENCY"
26543	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26544	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26545	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26546	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26547	//   "NEXT_HOP_NOT_RUNNING"
26548	//   "NOT_CRITICAL_ERROR"
26549	//   "NO_RESULTS_ON_PAGE"
26550	//   "PARTIAL_SUCCESS"
26551	//   "REQUIRED_TOS_AGREEMENT"
26552	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26553	//   "RESOURCE_NOT_DELETED"
26554	//   "SCHEMA_VALIDATION_IGNORED"
26555	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26556	//   "UNDECLARED_PROPERTIES"
26557	//   "UNREACHABLE"
26558	Code string `json:"code,omitempty"`
26559
26560	// Data: [Output Only] Metadata about this warning in key: value format.
26561	// For example:
26562	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26563	Data []*NodeGroupListWarningData `json:"data,omitempty"`
26564
26565	// Message: [Output Only] A human-readable description of the warning
26566	// code.
26567	Message string `json:"message,omitempty"`
26568
26569	// ForceSendFields is a list of field names (e.g. "Code") to
26570	// unconditionally include in API requests. By default, fields with
26571	// empty values are omitted from API requests. However, any non-pointer,
26572	// non-interface field appearing in ForceSendFields will be sent to the
26573	// server regardless of whether the field is empty or not. This may be
26574	// used to include empty fields in Patch requests.
26575	ForceSendFields []string `json:"-"`
26576
26577	// NullFields is a list of field names (e.g. "Code") to include in API
26578	// requests with the JSON null value. By default, fields with empty
26579	// values are omitted from API requests. However, any field with an
26580	// empty value appearing in NullFields will be sent to the server as
26581	// null. It is an error if a field in this list has a non-empty value.
26582	// This may be used to include null fields in Patch requests.
26583	NullFields []string `json:"-"`
26584}
26585
26586func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
26587	type NoMethod NodeGroupListWarning
26588	raw := NoMethod(*s)
26589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26590}
26591
26592type NodeGroupListWarningData struct {
26593	// Key: [Output Only] A key that provides more detail on the warning
26594	// being returned. For example, for warnings where there are no results
26595	// in a list request for a particular zone, this key might be scope and
26596	// the key value might be the zone name. Other examples might be a key
26597	// indicating a deprecated resource and a suggested replacement, or a
26598	// warning about invalid network settings (for example, if an instance
26599	// attempts to perform IP forwarding but is not enabled for IP
26600	// forwarding).
26601	Key string `json:"key,omitempty"`
26602
26603	// Value: [Output Only] A warning data value corresponding to the key.
26604	Value string `json:"value,omitempty"`
26605
26606	// ForceSendFields is a list of field names (e.g. "Key") to
26607	// unconditionally include in API requests. By default, fields with
26608	// empty values are omitted from API requests. However, any non-pointer,
26609	// non-interface field appearing in ForceSendFields will be sent to the
26610	// server regardless of whether the field is empty or not. This may be
26611	// used to include empty fields in Patch requests.
26612	ForceSendFields []string `json:"-"`
26613
26614	// NullFields is a list of field names (e.g. "Key") to include in API
26615	// requests with the JSON null value. By default, fields with empty
26616	// values are omitted from API requests. However, any field with an
26617	// empty value appearing in NullFields will be sent to the server as
26618	// null. It is an error if a field in this list has a non-empty value.
26619	// This may be used to include null fields in Patch requests.
26620	NullFields []string `json:"-"`
26621}
26622
26623func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
26624	type NoMethod NodeGroupListWarningData
26625	raw := NoMethod(*s)
26626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26627}
26628
26629// NodeGroupMaintenanceWindow: Time window specified for daily
26630// maintenance operations. GCE's internal maintenance will be performed
26631// within this window.
26632type NodeGroupMaintenanceWindow struct {
26633	// MaintenanceDuration: [Output only] A predetermined duration for the
26634	// window, automatically chosen to be the smallest possible in the given
26635	// scenario.
26636	MaintenanceDuration *Duration `json:"maintenanceDuration,omitempty"`
26637
26638	// StartTime: Start time of the window. This must be in UTC format that
26639	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
26640	// example, both 13:00-5 and 08:00 are valid.
26641	StartTime string `json:"startTime,omitempty"`
26642
26643	// ForceSendFields is a list of field names (e.g. "MaintenanceDuration")
26644	// to unconditionally include in API requests. By default, fields with
26645	// empty values are omitted from API requests. However, any non-pointer,
26646	// non-interface field appearing in ForceSendFields will be sent to the
26647	// server regardless of whether the field is empty or not. This may be
26648	// used to include empty fields in Patch requests.
26649	ForceSendFields []string `json:"-"`
26650
26651	// NullFields is a list of field names (e.g. "MaintenanceDuration") to
26652	// include in API requests with the JSON null value. By default, fields
26653	// with empty values are omitted from API requests. However, any field
26654	// with an empty value appearing in NullFields will be sent to the
26655	// server as null. It is an error if a field in this list has a
26656	// non-empty value. This may be used to include null fields in Patch
26657	// requests.
26658	NullFields []string `json:"-"`
26659}
26660
26661func (s *NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) {
26662	type NoMethod NodeGroupMaintenanceWindow
26663	raw := NoMethod(*s)
26664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26665}
26666
26667type NodeGroupNode struct {
26668	// Accelerators: Accelerators for this node.
26669	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
26670
26671	// CpuOvercommitType: CPU overcommit.
26672	//
26673	// Possible values:
26674	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
26675	//   "ENABLED"
26676	//   "NONE"
26677	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
26678
26679	// Disks: Local disk configurations.
26680	Disks []*LocalDisk `json:"disks,omitempty"`
26681
26682	// Instances: Instances scheduled on this node.
26683	Instances []string `json:"instances,omitempty"`
26684
26685	// Name: The name of the node.
26686	Name string `json:"name,omitempty"`
26687
26688	// NodeType: The type of this node.
26689	NodeType string `json:"nodeType,omitempty"`
26690
26691	// SatisfiesPzs: [Output Only] Reserved for future use.
26692	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
26693
26694	// ServerBinding: Binding properties for the physical server.
26695	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
26696
26697	// ServerId: Server ID associated with this node.
26698	ServerId string `json:"serverId,omitempty"`
26699
26700	// Possible values:
26701	//   "CREATING"
26702	//   "DELETING"
26703	//   "INVALID"
26704	//   "READY"
26705	//   "REPAIRING"
26706	Status string `json:"status,omitempty"`
26707
26708	// ForceSendFields is a list of field names (e.g. "Accelerators") to
26709	// unconditionally include in API requests. By default, fields with
26710	// empty values are omitted from API requests. However, any non-pointer,
26711	// non-interface field appearing in ForceSendFields will be sent to the
26712	// server regardless of whether the field is empty or not. This may be
26713	// used to include empty fields in Patch requests.
26714	ForceSendFields []string `json:"-"`
26715
26716	// NullFields is a list of field names (e.g. "Accelerators") to include
26717	// in API requests with the JSON null value. By default, fields with
26718	// empty values are omitted from API requests. However, any field with
26719	// an empty value appearing in NullFields will be sent to the server as
26720	// null. It is an error if a field in this list has a non-empty value.
26721	// This may be used to include null fields in Patch requests.
26722	NullFields []string `json:"-"`
26723}
26724
26725func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
26726	type NoMethod NodeGroupNode
26727	raw := NoMethod(*s)
26728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26729}
26730
26731type NodeGroupsAddNodesRequest struct {
26732	// AdditionalNodeCount: Count of additional nodes to be added to the
26733	// node group.
26734	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
26735
26736	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
26737	// to unconditionally include in API requests. By default, fields with
26738	// empty values are omitted from API requests. However, any non-pointer,
26739	// non-interface field appearing in ForceSendFields will be sent to the
26740	// server regardless of whether the field is empty or not. This may be
26741	// used to include empty fields in Patch requests.
26742	ForceSendFields []string `json:"-"`
26743
26744	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
26745	// include in API requests with the JSON null value. By default, fields
26746	// with empty values are omitted from API requests. However, any field
26747	// with an empty value appearing in NullFields will be sent to the
26748	// server as null. It is an error if a field in this list has a
26749	// non-empty value. This may be used to include null fields in Patch
26750	// requests.
26751	NullFields []string `json:"-"`
26752}
26753
26754func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
26755	type NoMethod NodeGroupsAddNodesRequest
26756	raw := NoMethod(*s)
26757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26758}
26759
26760type NodeGroupsDeleteNodesRequest struct {
26761	// Nodes: Names of the nodes to delete.
26762	Nodes []string `json:"nodes,omitempty"`
26763
26764	// ForceSendFields is a list of field names (e.g. "Nodes") to
26765	// unconditionally include in API requests. By default, fields with
26766	// empty values are omitted from API requests. However, any non-pointer,
26767	// non-interface field appearing in ForceSendFields will be sent to the
26768	// server regardless of whether the field is empty or not. This may be
26769	// used to include empty fields in Patch requests.
26770	ForceSendFields []string `json:"-"`
26771
26772	// NullFields is a list of field names (e.g. "Nodes") to include in API
26773	// requests with the JSON null value. By default, fields with empty
26774	// values are omitted from API requests. However, any field with an
26775	// empty value appearing in NullFields will be sent to the server as
26776	// null. It is an error if a field in this list has a non-empty value.
26777	// This may be used to include null fields in Patch requests.
26778	NullFields []string `json:"-"`
26779}
26780
26781func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
26782	type NoMethod NodeGroupsDeleteNodesRequest
26783	raw := NoMethod(*s)
26784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26785}
26786
26787type NodeGroupsListNodes struct {
26788	// Id: [Output Only] Unique identifier for the resource; defined by the
26789	// server.
26790	Id string `json:"id,omitempty"`
26791
26792	// Items: A list of Node resources.
26793	Items []*NodeGroupNode `json:"items,omitempty"`
26794
26795	// Kind: [Output Only] The resource type, which is always
26796	// compute.nodeGroupsListNodes for the list of nodes in the specified
26797	// node group.
26798	Kind string `json:"kind,omitempty"`
26799
26800	// NextPageToken: [Output Only] This token allows you to get the next
26801	// page of results for list requests. If the number of results is larger
26802	// than maxResults, use the nextPageToken as a value for the query
26803	// parameter pageToken in the next list request. Subsequent list
26804	// requests will have their own nextPageToken to continue paging through
26805	// the results.
26806	NextPageToken string `json:"nextPageToken,omitempty"`
26807
26808	// SelfLink: [Output Only] Server-defined URL for this resource.
26809	SelfLink string `json:"selfLink,omitempty"`
26810
26811	// Warning: [Output Only] Informational warning message.
26812	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
26813
26814	// ServerResponse contains the HTTP response code and headers from the
26815	// server.
26816	googleapi.ServerResponse `json:"-"`
26817
26818	// ForceSendFields is a list of field names (e.g. "Id") to
26819	// unconditionally include in API requests. By default, fields with
26820	// empty values are omitted from API requests. However, any non-pointer,
26821	// non-interface field appearing in ForceSendFields will be sent to the
26822	// server regardless of whether the field is empty or not. This may be
26823	// used to include empty fields in Patch requests.
26824	ForceSendFields []string `json:"-"`
26825
26826	// NullFields is a list of field names (e.g. "Id") to include in API
26827	// requests with the JSON null value. By default, fields with empty
26828	// values are omitted from API requests. However, any field with an
26829	// empty value appearing in NullFields will be sent to the server as
26830	// null. It is an error if a field in this list has a non-empty value.
26831	// This may be used to include null fields in Patch requests.
26832	NullFields []string `json:"-"`
26833}
26834
26835func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
26836	type NoMethod NodeGroupsListNodes
26837	raw := NoMethod(*s)
26838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26839}
26840
26841// NodeGroupsListNodesWarning: [Output Only] Informational warning
26842// message.
26843type NodeGroupsListNodesWarning struct {
26844	// Code: [Output Only] A warning code, if applicable. For example,
26845	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26846	// the response.
26847	//
26848	// Possible values:
26849	//   "CLEANUP_FAILED"
26850	//   "DEPRECATED_RESOURCE_USED"
26851	//   "DEPRECATED_TYPE_USED"
26852	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26853	//   "EXPERIMENTAL_TYPE_USED"
26854	//   "EXTERNAL_API_WARNING"
26855	//   "FIELD_VALUE_OVERRIDEN"
26856	//   "INJECTED_KERNELS_DEPRECATED"
26857	//   "LARGE_DEPLOYMENT_WARNING"
26858	//   "MISSING_TYPE_DEPENDENCY"
26859	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26860	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26861	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26862	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26863	//   "NEXT_HOP_NOT_RUNNING"
26864	//   "NOT_CRITICAL_ERROR"
26865	//   "NO_RESULTS_ON_PAGE"
26866	//   "PARTIAL_SUCCESS"
26867	//   "REQUIRED_TOS_AGREEMENT"
26868	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26869	//   "RESOURCE_NOT_DELETED"
26870	//   "SCHEMA_VALIDATION_IGNORED"
26871	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26872	//   "UNDECLARED_PROPERTIES"
26873	//   "UNREACHABLE"
26874	Code string `json:"code,omitempty"`
26875
26876	// Data: [Output Only] Metadata about this warning in key: value format.
26877	// For example:
26878	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26879	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
26880
26881	// Message: [Output Only] A human-readable description of the warning
26882	// code.
26883	Message string `json:"message,omitempty"`
26884
26885	// ForceSendFields is a list of field names (e.g. "Code") to
26886	// unconditionally include in API requests. By default, fields with
26887	// empty values are omitted from API requests. However, any non-pointer,
26888	// non-interface field appearing in ForceSendFields will be sent to the
26889	// server regardless of whether the field is empty or not. This may be
26890	// used to include empty fields in Patch requests.
26891	ForceSendFields []string `json:"-"`
26892
26893	// NullFields is a list of field names (e.g. "Code") to include in API
26894	// requests with the JSON null value. By default, fields with empty
26895	// values are omitted from API requests. However, any field with an
26896	// empty value appearing in NullFields will be sent to the server as
26897	// null. It is an error if a field in this list has a non-empty value.
26898	// This may be used to include null fields in Patch requests.
26899	NullFields []string `json:"-"`
26900}
26901
26902func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
26903	type NoMethod NodeGroupsListNodesWarning
26904	raw := NoMethod(*s)
26905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26906}
26907
26908type NodeGroupsListNodesWarningData struct {
26909	// Key: [Output Only] A key that provides more detail on the warning
26910	// being returned. For example, for warnings where there are no results
26911	// in a list request for a particular zone, this key might be scope and
26912	// the key value might be the zone name. Other examples might be a key
26913	// indicating a deprecated resource and a suggested replacement, or a
26914	// warning about invalid network settings (for example, if an instance
26915	// attempts to perform IP forwarding but is not enabled for IP
26916	// forwarding).
26917	Key string `json:"key,omitempty"`
26918
26919	// Value: [Output Only] A warning data value corresponding to the key.
26920	Value string `json:"value,omitempty"`
26921
26922	// ForceSendFields is a list of field names (e.g. "Key") to
26923	// unconditionally include in API requests. By default, fields with
26924	// empty values are omitted from API requests. However, any non-pointer,
26925	// non-interface field appearing in ForceSendFields will be sent to the
26926	// server regardless of whether the field is empty or not. This may be
26927	// used to include empty fields in Patch requests.
26928	ForceSendFields []string `json:"-"`
26929
26930	// NullFields is a list of field names (e.g. "Key") to include in API
26931	// requests with the JSON null value. By default, fields with empty
26932	// values are omitted from API requests. However, any field with an
26933	// empty value appearing in NullFields will be sent to the server as
26934	// null. It is an error if a field in this list has a non-empty value.
26935	// This may be used to include null fields in Patch requests.
26936	NullFields []string `json:"-"`
26937}
26938
26939func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
26940	type NoMethod NodeGroupsListNodesWarningData
26941	raw := NoMethod(*s)
26942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26943}
26944
26945type NodeGroupsScopedList struct {
26946	// NodeGroups: [Output Only] A list of node groups contained in this
26947	// scope.
26948	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
26949
26950	// Warning: [Output Only] An informational warning that appears when the
26951	// nodeGroup list is empty.
26952	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
26953
26954	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
26955	// unconditionally include in API requests. By default, fields with
26956	// empty values are omitted from API requests. However, any non-pointer,
26957	// non-interface field appearing in ForceSendFields will be sent to the
26958	// server regardless of whether the field is empty or not. This may be
26959	// used to include empty fields in Patch requests.
26960	ForceSendFields []string `json:"-"`
26961
26962	// NullFields is a list of field names (e.g. "NodeGroups") to include in
26963	// API requests with the JSON null value. By default, fields with empty
26964	// values are omitted from API requests. However, any field with an
26965	// empty value appearing in NullFields will be sent to the server as
26966	// null. It is an error if a field in this list has a non-empty value.
26967	// This may be used to include null fields in Patch requests.
26968	NullFields []string `json:"-"`
26969}
26970
26971func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
26972	type NoMethod NodeGroupsScopedList
26973	raw := NoMethod(*s)
26974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26975}
26976
26977// NodeGroupsScopedListWarning: [Output Only] An informational warning
26978// that appears when the nodeGroup list is empty.
26979type NodeGroupsScopedListWarning struct {
26980	// Code: [Output Only] A warning code, if applicable. For example,
26981	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26982	// the response.
26983	//
26984	// Possible values:
26985	//   "CLEANUP_FAILED"
26986	//   "DEPRECATED_RESOURCE_USED"
26987	//   "DEPRECATED_TYPE_USED"
26988	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26989	//   "EXPERIMENTAL_TYPE_USED"
26990	//   "EXTERNAL_API_WARNING"
26991	//   "FIELD_VALUE_OVERRIDEN"
26992	//   "INJECTED_KERNELS_DEPRECATED"
26993	//   "LARGE_DEPLOYMENT_WARNING"
26994	//   "MISSING_TYPE_DEPENDENCY"
26995	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26996	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26997	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26998	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26999	//   "NEXT_HOP_NOT_RUNNING"
27000	//   "NOT_CRITICAL_ERROR"
27001	//   "NO_RESULTS_ON_PAGE"
27002	//   "PARTIAL_SUCCESS"
27003	//   "REQUIRED_TOS_AGREEMENT"
27004	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27005	//   "RESOURCE_NOT_DELETED"
27006	//   "SCHEMA_VALIDATION_IGNORED"
27007	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27008	//   "UNDECLARED_PROPERTIES"
27009	//   "UNREACHABLE"
27010	Code string `json:"code,omitempty"`
27011
27012	// Data: [Output Only] Metadata about this warning in key: value format.
27013	// For example:
27014	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27015	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
27016
27017	// Message: [Output Only] A human-readable description of the warning
27018	// code.
27019	Message string `json:"message,omitempty"`
27020
27021	// ForceSendFields is a list of field names (e.g. "Code") to
27022	// unconditionally include in API requests. By default, fields with
27023	// empty values are omitted from API requests. However, any non-pointer,
27024	// non-interface field appearing in ForceSendFields will be sent to the
27025	// server regardless of whether the field is empty or not. This may be
27026	// used to include empty fields in Patch requests.
27027	ForceSendFields []string `json:"-"`
27028
27029	// NullFields is a list of field names (e.g. "Code") to include in API
27030	// requests with the JSON null value. By default, fields with empty
27031	// values are omitted from API requests. However, any field with an
27032	// empty value appearing in NullFields will be sent to the server as
27033	// null. It is an error if a field in this list has a non-empty value.
27034	// This may be used to include null fields in Patch requests.
27035	NullFields []string `json:"-"`
27036}
27037
27038func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
27039	type NoMethod NodeGroupsScopedListWarning
27040	raw := NoMethod(*s)
27041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27042}
27043
27044type NodeGroupsScopedListWarningData struct {
27045	// Key: [Output Only] A key that provides more detail on the warning
27046	// being returned. For example, for warnings where there are no results
27047	// in a list request for a particular zone, this key might be scope and
27048	// the key value might be the zone name. Other examples might be a key
27049	// indicating a deprecated resource and a suggested replacement, or a
27050	// warning about invalid network settings (for example, if an instance
27051	// attempts to perform IP forwarding but is not enabled for IP
27052	// forwarding).
27053	Key string `json:"key,omitempty"`
27054
27055	// Value: [Output Only] A warning data value corresponding to the key.
27056	Value string `json:"value,omitempty"`
27057
27058	// ForceSendFields is a list of field names (e.g. "Key") to
27059	// unconditionally include in API requests. By default, fields with
27060	// empty values are omitted from API requests. However, any non-pointer,
27061	// non-interface field appearing in ForceSendFields will be sent to the
27062	// server regardless of whether the field is empty or not. This may be
27063	// used to include empty fields in Patch requests.
27064	ForceSendFields []string `json:"-"`
27065
27066	// NullFields is a list of field names (e.g. "Key") to include in API
27067	// requests with the JSON null value. By default, fields with empty
27068	// values are omitted from API requests. However, any field with an
27069	// empty value appearing in NullFields will be sent to the server as
27070	// null. It is an error if a field in this list has a non-empty value.
27071	// This may be used to include null fields in Patch requests.
27072	NullFields []string `json:"-"`
27073}
27074
27075func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
27076	type NoMethod NodeGroupsScopedListWarningData
27077	raw := NoMethod(*s)
27078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27079}
27080
27081type NodeGroupsSetNodeTemplateRequest struct {
27082	// NodeTemplate: Full or partial URL of the node template resource to be
27083	// updated for this node group.
27084	NodeTemplate string `json:"nodeTemplate,omitempty"`
27085
27086	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
27087	// unconditionally include in API requests. By default, fields with
27088	// empty values are omitted from API requests. However, any non-pointer,
27089	// non-interface field appearing in ForceSendFields will be sent to the
27090	// server regardless of whether the field is empty or not. This may be
27091	// used to include empty fields in Patch requests.
27092	ForceSendFields []string `json:"-"`
27093
27094	// NullFields is a list of field names (e.g. "NodeTemplate") to include
27095	// in API requests with the JSON null value. By default, fields with
27096	// empty values are omitted from API requests. However, any field with
27097	// an empty value appearing in NullFields will be sent to the server as
27098	// null. It is an error if a field in this list has a non-empty value.
27099	// This may be used to include null fields in Patch requests.
27100	NullFields []string `json:"-"`
27101}
27102
27103func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
27104	type NoMethod NodeGroupsSetNodeTemplateRequest
27105	raw := NoMethod(*s)
27106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27107}
27108
27109// NodeTemplate: Represent a sole-tenant Node Template resource.
27110//
27111// You can use a template to define properties for nodes in a node
27112// group. For more information, read Creating node groups and instances.
27113// (== resource_for {$api_version}.nodeTemplates ==)
27114type NodeTemplate struct {
27115	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
27116
27117	// CpuOvercommitType: CPU overcommit.
27118	//
27119	// Possible values:
27120	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
27121	//   "ENABLED"
27122	//   "NONE"
27123	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
27124
27125	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27126	// format.
27127	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27128
27129	// Description: An optional description of this resource. Provide this
27130	// property when you create the resource.
27131	Description string `json:"description,omitempty"`
27132
27133	Disks []*LocalDisk `json:"disks,omitempty"`
27134
27135	// Id: [Output Only] The unique identifier for the resource. This
27136	// identifier is defined by the server.
27137	Id uint64 `json:"id,omitempty,string"`
27138
27139	// Kind: [Output Only] The type of the resource. Always
27140	// compute#nodeTemplate for node templates.
27141	Kind string `json:"kind,omitempty"`
27142
27143	// Name: The name of the resource, provided by the client when initially
27144	// creating the resource. The resource name must be 1-63 characters
27145	// long, and comply with RFC1035. Specifically, the name must be 1-63
27146	// characters long and match the regular expression
27147	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
27148	// a lowercase letter, and all following characters must be a dash,
27149	// lowercase letter, or digit, except the last character, which cannot
27150	// be a dash.
27151	Name string `json:"name,omitempty"`
27152
27153	// NodeAffinityLabels: Labels to use for node affinity, which will be
27154	// used in instance scheduling.
27155	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
27156
27157	// NodeType: The node type to use for nodes group that are created from
27158	// this template.
27159	NodeType string `json:"nodeType,omitempty"`
27160
27161	// NodeTypeFlexibility: The flexible properties of the desired node
27162	// type. Node groups that use this node template will create nodes of a
27163	// type that matches these properties.
27164	//
27165	// This field is mutually exclusive with the node_type property; you can
27166	// only define one or the other, but not both.
27167	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
27168
27169	// Region: [Output Only] The name of the region where the node template
27170	// resides, such as us-central1.
27171	Region string `json:"region,omitempty"`
27172
27173	// SelfLink: [Output Only] Server-defined URL for the resource.
27174	SelfLink string `json:"selfLink,omitempty"`
27175
27176	// ServerBinding: Sets the binding properties for the physical server.
27177	// Valid values include:
27178	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
27179	// physical server
27180	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
27181	// server whenever possible
27182	//
27183	// See Sole-tenant node options for more information.
27184	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
27185
27186	// Status: [Output Only] The status of the node template. One of the
27187	// following values: CREATING, READY, and DELETING.
27188	//
27189	// Possible values:
27190	//   "CREATING"
27191	//   "DELETING"
27192	//   "INVALID"
27193	//   "READY"
27194	Status string `json:"status,omitempty"`
27195
27196	// StatusMessage: [Output Only] An optional, human-readable explanation
27197	// of the status.
27198	StatusMessage string `json:"statusMessage,omitempty"`
27199
27200	// ServerResponse contains the HTTP response code and headers from the
27201	// server.
27202	googleapi.ServerResponse `json:"-"`
27203
27204	// ForceSendFields is a list of field names (e.g. "Accelerators") to
27205	// unconditionally include in API requests. By default, fields with
27206	// empty values are omitted from API requests. However, any non-pointer,
27207	// non-interface field appearing in ForceSendFields will be sent to the
27208	// server regardless of whether the field is empty or not. This may be
27209	// used to include empty fields in Patch requests.
27210	ForceSendFields []string `json:"-"`
27211
27212	// NullFields is a list of field names (e.g. "Accelerators") to include
27213	// in API requests with the JSON null value. By default, fields with
27214	// empty values are omitted from API requests. However, any field with
27215	// an empty value appearing in NullFields will be sent to the server as
27216	// null. It is an error if a field in this list has a non-empty value.
27217	// This may be used to include null fields in Patch requests.
27218	NullFields []string `json:"-"`
27219}
27220
27221func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
27222	type NoMethod NodeTemplate
27223	raw := NoMethod(*s)
27224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27225}
27226
27227type NodeTemplateAggregatedList struct {
27228	// Id: [Output Only] Unique identifier for the resource; defined by the
27229	// server.
27230	Id string `json:"id,omitempty"`
27231
27232	// Items: A list of NodeTemplatesScopedList resources.
27233	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
27234
27235	// Kind: [Output Only] Type of resource.Always
27236	// compute#nodeTemplateAggregatedList for aggregated lists of node
27237	// templates.
27238	Kind string `json:"kind,omitempty"`
27239
27240	// NextPageToken: [Output Only] This token allows you to get the next
27241	// page of results for list requests. If the number of results is larger
27242	// than maxResults, use the nextPageToken as a value for the query
27243	// parameter pageToken in the next list request. Subsequent list
27244	// requests will have their own nextPageToken to continue paging through
27245	// the results.
27246	NextPageToken string `json:"nextPageToken,omitempty"`
27247
27248	// SelfLink: [Output Only] Server-defined URL for this resource.
27249	SelfLink string `json:"selfLink,omitempty"`
27250
27251	// Unreachables: [Output Only] Unreachable resources.
27252	Unreachables []string `json:"unreachables,omitempty"`
27253
27254	// Warning: [Output Only] Informational warning message.
27255	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
27256
27257	// ServerResponse contains the HTTP response code and headers from the
27258	// server.
27259	googleapi.ServerResponse `json:"-"`
27260
27261	// ForceSendFields is a list of field names (e.g. "Id") to
27262	// unconditionally include in API requests. By default, fields with
27263	// empty values are omitted from API requests. However, any non-pointer,
27264	// non-interface field appearing in ForceSendFields will be sent to the
27265	// server regardless of whether the field is empty or not. This may be
27266	// used to include empty fields in Patch requests.
27267	ForceSendFields []string `json:"-"`
27268
27269	// NullFields is a list of field names (e.g. "Id") to include in API
27270	// requests with the JSON null value. By default, fields with empty
27271	// values are omitted from API requests. However, any field with an
27272	// empty value appearing in NullFields will be sent to the server as
27273	// null. It is an error if a field in this list has a non-empty value.
27274	// This may be used to include null fields in Patch requests.
27275	NullFields []string `json:"-"`
27276}
27277
27278func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
27279	type NoMethod NodeTemplateAggregatedList
27280	raw := NoMethod(*s)
27281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27282}
27283
27284// NodeTemplateAggregatedListWarning: [Output Only] Informational
27285// warning message.
27286type NodeTemplateAggregatedListWarning struct {
27287	// Code: [Output Only] A warning code, if applicable. For example,
27288	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27289	// the response.
27290	//
27291	// Possible values:
27292	//   "CLEANUP_FAILED"
27293	//   "DEPRECATED_RESOURCE_USED"
27294	//   "DEPRECATED_TYPE_USED"
27295	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27296	//   "EXPERIMENTAL_TYPE_USED"
27297	//   "EXTERNAL_API_WARNING"
27298	//   "FIELD_VALUE_OVERRIDEN"
27299	//   "INJECTED_KERNELS_DEPRECATED"
27300	//   "LARGE_DEPLOYMENT_WARNING"
27301	//   "MISSING_TYPE_DEPENDENCY"
27302	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27303	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27304	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27305	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27306	//   "NEXT_HOP_NOT_RUNNING"
27307	//   "NOT_CRITICAL_ERROR"
27308	//   "NO_RESULTS_ON_PAGE"
27309	//   "PARTIAL_SUCCESS"
27310	//   "REQUIRED_TOS_AGREEMENT"
27311	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27312	//   "RESOURCE_NOT_DELETED"
27313	//   "SCHEMA_VALIDATION_IGNORED"
27314	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27315	//   "UNDECLARED_PROPERTIES"
27316	//   "UNREACHABLE"
27317	Code string `json:"code,omitempty"`
27318
27319	// Data: [Output Only] Metadata about this warning in key: value format.
27320	// For example:
27321	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27322	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
27323
27324	// Message: [Output Only] A human-readable description of the warning
27325	// code.
27326	Message string `json:"message,omitempty"`
27327
27328	// ForceSendFields is a list of field names (e.g. "Code") to
27329	// unconditionally include in API requests. By default, fields with
27330	// empty values are omitted from API requests. However, any non-pointer,
27331	// non-interface field appearing in ForceSendFields will be sent to the
27332	// server regardless of whether the field is empty or not. This may be
27333	// used to include empty fields in Patch requests.
27334	ForceSendFields []string `json:"-"`
27335
27336	// NullFields is a list of field names (e.g. "Code") to include in API
27337	// requests with the JSON null value. By default, fields with empty
27338	// values are omitted from API requests. However, any field with an
27339	// empty value appearing in NullFields will be sent to the server as
27340	// null. It is an error if a field in this list has a non-empty value.
27341	// This may be used to include null fields in Patch requests.
27342	NullFields []string `json:"-"`
27343}
27344
27345func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
27346	type NoMethod NodeTemplateAggregatedListWarning
27347	raw := NoMethod(*s)
27348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27349}
27350
27351type NodeTemplateAggregatedListWarningData struct {
27352	// Key: [Output Only] A key that provides more detail on the warning
27353	// being returned. For example, for warnings where there are no results
27354	// in a list request for a particular zone, this key might be scope and
27355	// the key value might be the zone name. Other examples might be a key
27356	// indicating a deprecated resource and a suggested replacement, or a
27357	// warning about invalid network settings (for example, if an instance
27358	// attempts to perform IP forwarding but is not enabled for IP
27359	// forwarding).
27360	Key string `json:"key,omitempty"`
27361
27362	// Value: [Output Only] A warning data value corresponding to the key.
27363	Value string `json:"value,omitempty"`
27364
27365	// ForceSendFields is a list of field names (e.g. "Key") to
27366	// unconditionally include in API requests. By default, fields with
27367	// empty values are omitted from API requests. However, any non-pointer,
27368	// non-interface field appearing in ForceSendFields will be sent to the
27369	// server regardless of whether the field is empty or not. This may be
27370	// used to include empty fields in Patch requests.
27371	ForceSendFields []string `json:"-"`
27372
27373	// NullFields is a list of field names (e.g. "Key") to include in API
27374	// requests with the JSON null value. By default, fields with empty
27375	// values are omitted from API requests. However, any field with an
27376	// empty value appearing in NullFields will be sent to the server as
27377	// null. It is an error if a field in this list has a non-empty value.
27378	// This may be used to include null fields in Patch requests.
27379	NullFields []string `json:"-"`
27380}
27381
27382func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27383	type NoMethod NodeTemplateAggregatedListWarningData
27384	raw := NoMethod(*s)
27385	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27386}
27387
27388// NodeTemplateList: Contains a list of node templates.
27389type NodeTemplateList struct {
27390	// Id: [Output Only] Unique identifier for the resource; defined by the
27391	// server.
27392	Id string `json:"id,omitempty"`
27393
27394	// Items: A list of NodeTemplate resources.
27395	Items []*NodeTemplate `json:"items,omitempty"`
27396
27397	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
27398	// for lists of node templates.
27399	Kind string `json:"kind,omitempty"`
27400
27401	// NextPageToken: [Output Only] This token allows you to get the next
27402	// page of results for list requests. If the number of results is larger
27403	// than maxResults, use the nextPageToken as a value for the query
27404	// parameter pageToken in the next list request. Subsequent list
27405	// requests will have their own nextPageToken to continue paging through
27406	// the results.
27407	NextPageToken string `json:"nextPageToken,omitempty"`
27408
27409	// SelfLink: [Output Only] Server-defined URL for this resource.
27410	SelfLink string `json:"selfLink,omitempty"`
27411
27412	// Warning: [Output Only] Informational warning message.
27413	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
27414
27415	// ServerResponse contains the HTTP response code and headers from the
27416	// server.
27417	googleapi.ServerResponse `json:"-"`
27418
27419	// ForceSendFields is a list of field names (e.g. "Id") to
27420	// unconditionally include in API requests. By default, fields with
27421	// empty values are omitted from API requests. However, any non-pointer,
27422	// non-interface field appearing in ForceSendFields will be sent to the
27423	// server regardless of whether the field is empty or not. This may be
27424	// used to include empty fields in Patch requests.
27425	ForceSendFields []string `json:"-"`
27426
27427	// NullFields is a list of field names (e.g. "Id") to include in API
27428	// requests with the JSON null value. By default, fields with empty
27429	// values are omitted from API requests. However, any field with an
27430	// empty value appearing in NullFields will be sent to the server as
27431	// null. It is an error if a field in this list has a non-empty value.
27432	// This may be used to include null fields in Patch requests.
27433	NullFields []string `json:"-"`
27434}
27435
27436func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
27437	type NoMethod NodeTemplateList
27438	raw := NoMethod(*s)
27439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27440}
27441
27442// NodeTemplateListWarning: [Output Only] Informational warning message.
27443type NodeTemplateListWarning struct {
27444	// Code: [Output Only] A warning code, if applicable. For example,
27445	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27446	// the response.
27447	//
27448	// Possible values:
27449	//   "CLEANUP_FAILED"
27450	//   "DEPRECATED_RESOURCE_USED"
27451	//   "DEPRECATED_TYPE_USED"
27452	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27453	//   "EXPERIMENTAL_TYPE_USED"
27454	//   "EXTERNAL_API_WARNING"
27455	//   "FIELD_VALUE_OVERRIDEN"
27456	//   "INJECTED_KERNELS_DEPRECATED"
27457	//   "LARGE_DEPLOYMENT_WARNING"
27458	//   "MISSING_TYPE_DEPENDENCY"
27459	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27460	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27461	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27462	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27463	//   "NEXT_HOP_NOT_RUNNING"
27464	//   "NOT_CRITICAL_ERROR"
27465	//   "NO_RESULTS_ON_PAGE"
27466	//   "PARTIAL_SUCCESS"
27467	//   "REQUIRED_TOS_AGREEMENT"
27468	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27469	//   "RESOURCE_NOT_DELETED"
27470	//   "SCHEMA_VALIDATION_IGNORED"
27471	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27472	//   "UNDECLARED_PROPERTIES"
27473	//   "UNREACHABLE"
27474	Code string `json:"code,omitempty"`
27475
27476	// Data: [Output Only] Metadata about this warning in key: value format.
27477	// For example:
27478	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27479	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
27480
27481	// Message: [Output Only] A human-readable description of the warning
27482	// code.
27483	Message string `json:"message,omitempty"`
27484
27485	// ForceSendFields is a list of field names (e.g. "Code") to
27486	// unconditionally include in API requests. By default, fields with
27487	// empty values are omitted from API requests. However, any non-pointer,
27488	// non-interface field appearing in ForceSendFields will be sent to the
27489	// server regardless of whether the field is empty or not. This may be
27490	// used to include empty fields in Patch requests.
27491	ForceSendFields []string `json:"-"`
27492
27493	// NullFields is a list of field names (e.g. "Code") to include in API
27494	// requests with the JSON null value. By default, fields with empty
27495	// values are omitted from API requests. However, any field with an
27496	// empty value appearing in NullFields will be sent to the server as
27497	// null. It is an error if a field in this list has a non-empty value.
27498	// This may be used to include null fields in Patch requests.
27499	NullFields []string `json:"-"`
27500}
27501
27502func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
27503	type NoMethod NodeTemplateListWarning
27504	raw := NoMethod(*s)
27505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27506}
27507
27508type NodeTemplateListWarningData struct {
27509	// Key: [Output Only] A key that provides more detail on the warning
27510	// being returned. For example, for warnings where there are no results
27511	// in a list request for a particular zone, this key might be scope and
27512	// the key value might be the zone name. Other examples might be a key
27513	// indicating a deprecated resource and a suggested replacement, or a
27514	// warning about invalid network settings (for example, if an instance
27515	// attempts to perform IP forwarding but is not enabled for IP
27516	// forwarding).
27517	Key string `json:"key,omitempty"`
27518
27519	// Value: [Output Only] A warning data value corresponding to the key.
27520	Value string `json:"value,omitempty"`
27521
27522	// ForceSendFields is a list of field names (e.g. "Key") to
27523	// unconditionally include in API requests. By default, fields with
27524	// empty values are omitted from API requests. However, any non-pointer,
27525	// non-interface field appearing in ForceSendFields will be sent to the
27526	// server regardless of whether the field is empty or not. This may be
27527	// used to include empty fields in Patch requests.
27528	ForceSendFields []string `json:"-"`
27529
27530	// NullFields is a list of field names (e.g. "Key") to include in API
27531	// requests with the JSON null value. By default, fields with empty
27532	// values are omitted from API requests. However, any field with an
27533	// empty value appearing in NullFields will be sent to the server as
27534	// null. It is an error if a field in this list has a non-empty value.
27535	// This may be used to include null fields in Patch requests.
27536	NullFields []string `json:"-"`
27537}
27538
27539func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
27540	type NoMethod NodeTemplateListWarningData
27541	raw := NoMethod(*s)
27542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27543}
27544
27545type NodeTemplateNodeTypeFlexibility struct {
27546	Cpus string `json:"cpus,omitempty"`
27547
27548	LocalSsd string `json:"localSsd,omitempty"`
27549
27550	Memory string `json:"memory,omitempty"`
27551
27552	// ForceSendFields is a list of field names (e.g. "Cpus") to
27553	// unconditionally include in API requests. By default, fields with
27554	// empty values are omitted from API requests. However, any non-pointer,
27555	// non-interface field appearing in ForceSendFields will be sent to the
27556	// server regardless of whether the field is empty or not. This may be
27557	// used to include empty fields in Patch requests.
27558	ForceSendFields []string `json:"-"`
27559
27560	// NullFields is a list of field names (e.g. "Cpus") to include in API
27561	// requests with the JSON null value. By default, fields with empty
27562	// values are omitted from API requests. However, any field with an
27563	// empty value appearing in NullFields will be sent to the server as
27564	// null. It is an error if a field in this list has a non-empty value.
27565	// This may be used to include null fields in Patch requests.
27566	NullFields []string `json:"-"`
27567}
27568
27569func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
27570	type NoMethod NodeTemplateNodeTypeFlexibility
27571	raw := NoMethod(*s)
27572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27573}
27574
27575type NodeTemplatesScopedList struct {
27576	// NodeTemplates: [Output Only] A list of node templates contained in
27577	// this scope.
27578	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
27579
27580	// Warning: [Output Only] An informational warning that appears when the
27581	// node templates list is empty.
27582	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
27583
27584	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
27585	// unconditionally include in API requests. By default, fields with
27586	// empty values are omitted from API requests. However, any non-pointer,
27587	// non-interface field appearing in ForceSendFields will be sent to the
27588	// server regardless of whether the field is empty or not. This may be
27589	// used to include empty fields in Patch requests.
27590	ForceSendFields []string `json:"-"`
27591
27592	// NullFields is a list of field names (e.g. "NodeTemplates") to include
27593	// in API requests with the JSON null value. By default, fields with
27594	// empty values are omitted from API requests. However, any field with
27595	// an empty value appearing in NullFields will be sent to the server as
27596	// null. It is an error if a field in this list has a non-empty value.
27597	// This may be used to include null fields in Patch requests.
27598	NullFields []string `json:"-"`
27599}
27600
27601func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
27602	type NoMethod NodeTemplatesScopedList
27603	raw := NoMethod(*s)
27604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27605}
27606
27607// NodeTemplatesScopedListWarning: [Output Only] An informational
27608// warning that appears when the node templates list is empty.
27609type NodeTemplatesScopedListWarning struct {
27610	// Code: [Output Only] A warning code, if applicable. For example,
27611	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27612	// the response.
27613	//
27614	// Possible values:
27615	//   "CLEANUP_FAILED"
27616	//   "DEPRECATED_RESOURCE_USED"
27617	//   "DEPRECATED_TYPE_USED"
27618	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27619	//   "EXPERIMENTAL_TYPE_USED"
27620	//   "EXTERNAL_API_WARNING"
27621	//   "FIELD_VALUE_OVERRIDEN"
27622	//   "INJECTED_KERNELS_DEPRECATED"
27623	//   "LARGE_DEPLOYMENT_WARNING"
27624	//   "MISSING_TYPE_DEPENDENCY"
27625	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27626	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27627	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27628	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27629	//   "NEXT_HOP_NOT_RUNNING"
27630	//   "NOT_CRITICAL_ERROR"
27631	//   "NO_RESULTS_ON_PAGE"
27632	//   "PARTIAL_SUCCESS"
27633	//   "REQUIRED_TOS_AGREEMENT"
27634	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27635	//   "RESOURCE_NOT_DELETED"
27636	//   "SCHEMA_VALIDATION_IGNORED"
27637	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27638	//   "UNDECLARED_PROPERTIES"
27639	//   "UNREACHABLE"
27640	Code string `json:"code,omitempty"`
27641
27642	// Data: [Output Only] Metadata about this warning in key: value format.
27643	// For example:
27644	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27645	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
27646
27647	// Message: [Output Only] A human-readable description of the warning
27648	// code.
27649	Message string `json:"message,omitempty"`
27650
27651	// ForceSendFields is a list of field names (e.g. "Code") to
27652	// unconditionally include in API requests. By default, fields with
27653	// empty values are omitted from API requests. However, any non-pointer,
27654	// non-interface field appearing in ForceSendFields will be sent to the
27655	// server regardless of whether the field is empty or not. This may be
27656	// used to include empty fields in Patch requests.
27657	ForceSendFields []string `json:"-"`
27658
27659	// NullFields is a list of field names (e.g. "Code") to include in API
27660	// requests with the JSON null value. By default, fields with empty
27661	// values are omitted from API requests. However, any field with an
27662	// empty value appearing in NullFields will be sent to the server as
27663	// null. It is an error if a field in this list has a non-empty value.
27664	// This may be used to include null fields in Patch requests.
27665	NullFields []string `json:"-"`
27666}
27667
27668func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
27669	type NoMethod NodeTemplatesScopedListWarning
27670	raw := NoMethod(*s)
27671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27672}
27673
27674type NodeTemplatesScopedListWarningData struct {
27675	// Key: [Output Only] A key that provides more detail on the warning
27676	// being returned. For example, for warnings where there are no results
27677	// in a list request for a particular zone, this key might be scope and
27678	// the key value might be the zone name. Other examples might be a key
27679	// indicating a deprecated resource and a suggested replacement, or a
27680	// warning about invalid network settings (for example, if an instance
27681	// attempts to perform IP forwarding but is not enabled for IP
27682	// forwarding).
27683	Key string `json:"key,omitempty"`
27684
27685	// Value: [Output Only] A warning data value corresponding to the key.
27686	Value string `json:"value,omitempty"`
27687
27688	// ForceSendFields is a list of field names (e.g. "Key") to
27689	// unconditionally include in API requests. By default, fields with
27690	// empty values are omitted from API requests. However, any non-pointer,
27691	// non-interface field appearing in ForceSendFields will be sent to the
27692	// server regardless of whether the field is empty or not. This may be
27693	// used to include empty fields in Patch requests.
27694	ForceSendFields []string `json:"-"`
27695
27696	// NullFields is a list of field names (e.g. "Key") to include in API
27697	// requests with the JSON null value. By default, fields with empty
27698	// values are omitted from API requests. However, any field with an
27699	// empty value appearing in NullFields will be sent to the server as
27700	// null. It is an error if a field in this list has a non-empty value.
27701	// This may be used to include null fields in Patch requests.
27702	NullFields []string `json:"-"`
27703}
27704
27705func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
27706	type NoMethod NodeTemplatesScopedListWarningData
27707	raw := NoMethod(*s)
27708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27709}
27710
27711// NodeType: Represent a sole-tenant Node Type resource.
27712//
27713// Each node within a node group must have a node type. A node type
27714// specifies the total amount of cores and memory for that node.
27715// Currently, the only available node type is n1-node-96-624 node type
27716// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
27717// For more information read Node types. (== resource_for
27718// {$api_version}.nodeTypes ==)
27719type NodeType struct {
27720	// CpuPlatform: [Output Only] The CPU platform used by this node type.
27721	CpuPlatform string `json:"cpuPlatform,omitempty"`
27722
27723	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27724	// format.
27725	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27726
27727	// Deprecated -- [Output Only] The deprecation status associated with
27728	// this node type.
27729	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
27730
27731	// Description: [Output Only] An optional textual description of the
27732	// resource.
27733	Description string `json:"description,omitempty"`
27734
27735	// GuestCpus: [Output Only] The number of virtual CPUs that are
27736	// available to the node type.
27737	GuestCpus int64 `json:"guestCpus,omitempty"`
27738
27739	// Id: [Output Only] The unique identifier for the resource. This
27740	// identifier is defined by the server.
27741	Id uint64 `json:"id,omitempty,string"`
27742
27743	// Kind: [Output Only] The type of the resource. Always compute#nodeType
27744	// for node types.
27745	Kind string `json:"kind,omitempty"`
27746
27747	// LocalSsdGb: [Output Only] Local SSD available to the node type,
27748	// defined in GB.
27749	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
27750
27751	// MemoryMb: [Output Only] The amount of physical memory available to
27752	// the node type, defined in MB.
27753	MemoryMb int64 `json:"memoryMb,omitempty"`
27754
27755	// Name: [Output Only] Name of the resource.
27756	Name string `json:"name,omitempty"`
27757
27758	// SelfLink: [Output Only] Server-defined URL for the resource.
27759	SelfLink string `json:"selfLink,omitempty"`
27760
27761	// Zone: [Output Only] The name of the zone where the node type resides,
27762	// such as us-central1-a.
27763	Zone string `json:"zone,omitempty"`
27764
27765	// ServerResponse contains the HTTP response code and headers from the
27766	// server.
27767	googleapi.ServerResponse `json:"-"`
27768
27769	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
27770	// unconditionally include in API requests. By default, fields with
27771	// empty values are omitted from API requests. However, any non-pointer,
27772	// non-interface field appearing in ForceSendFields will be sent to the
27773	// server regardless of whether the field is empty or not. This may be
27774	// used to include empty fields in Patch requests.
27775	ForceSendFields []string `json:"-"`
27776
27777	// NullFields is a list of field names (e.g. "CpuPlatform") to include
27778	// in API requests with the JSON null value. By default, fields with
27779	// empty values are omitted from API requests. However, any field with
27780	// an empty value appearing in NullFields will be sent to the server as
27781	// null. It is an error if a field in this list has a non-empty value.
27782	// This may be used to include null fields in Patch requests.
27783	NullFields []string `json:"-"`
27784}
27785
27786func (s *NodeType) MarshalJSON() ([]byte, error) {
27787	type NoMethod NodeType
27788	raw := NoMethod(*s)
27789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27790}
27791
27792type NodeTypeAggregatedList struct {
27793	// Id: [Output Only] Unique identifier for the resource; defined by the
27794	// server.
27795	Id string `json:"id,omitempty"`
27796
27797	// Items: A list of NodeTypesScopedList resources.
27798	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
27799
27800	// Kind: [Output Only] Type of resource.Always
27801	// compute#nodeTypeAggregatedList for aggregated lists of node types.
27802	Kind string `json:"kind,omitempty"`
27803
27804	// NextPageToken: [Output Only] This token allows you to get the next
27805	// page of results for list requests. If the number of results is larger
27806	// than maxResults, use the nextPageToken as a value for the query
27807	// parameter pageToken in the next list request. Subsequent list
27808	// requests will have their own nextPageToken to continue paging through
27809	// the results.
27810	NextPageToken string `json:"nextPageToken,omitempty"`
27811
27812	// SelfLink: [Output Only] Server-defined URL for this resource.
27813	SelfLink string `json:"selfLink,omitempty"`
27814
27815	// Unreachables: [Output Only] Unreachable resources.
27816	Unreachables []string `json:"unreachables,omitempty"`
27817
27818	// Warning: [Output Only] Informational warning message.
27819	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
27820
27821	// ServerResponse contains the HTTP response code and headers from the
27822	// server.
27823	googleapi.ServerResponse `json:"-"`
27824
27825	// ForceSendFields is a list of field names (e.g. "Id") to
27826	// unconditionally include in API requests. By default, fields with
27827	// empty values are omitted from API requests. However, any non-pointer,
27828	// non-interface field appearing in ForceSendFields will be sent to the
27829	// server regardless of whether the field is empty or not. This may be
27830	// used to include empty fields in Patch requests.
27831	ForceSendFields []string `json:"-"`
27832
27833	// NullFields is a list of field names (e.g. "Id") to include in API
27834	// requests with the JSON null value. By default, fields with empty
27835	// values are omitted from API requests. However, any field with an
27836	// empty value appearing in NullFields will be sent to the server as
27837	// null. It is an error if a field in this list has a non-empty value.
27838	// This may be used to include null fields in Patch requests.
27839	NullFields []string `json:"-"`
27840}
27841
27842func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
27843	type NoMethod NodeTypeAggregatedList
27844	raw := NoMethod(*s)
27845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27846}
27847
27848// NodeTypeAggregatedListWarning: [Output Only] Informational warning
27849// message.
27850type NodeTypeAggregatedListWarning struct {
27851	// Code: [Output Only] A warning code, if applicable. For example,
27852	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27853	// the response.
27854	//
27855	// Possible values:
27856	//   "CLEANUP_FAILED"
27857	//   "DEPRECATED_RESOURCE_USED"
27858	//   "DEPRECATED_TYPE_USED"
27859	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27860	//   "EXPERIMENTAL_TYPE_USED"
27861	//   "EXTERNAL_API_WARNING"
27862	//   "FIELD_VALUE_OVERRIDEN"
27863	//   "INJECTED_KERNELS_DEPRECATED"
27864	//   "LARGE_DEPLOYMENT_WARNING"
27865	//   "MISSING_TYPE_DEPENDENCY"
27866	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27867	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27868	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27869	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27870	//   "NEXT_HOP_NOT_RUNNING"
27871	//   "NOT_CRITICAL_ERROR"
27872	//   "NO_RESULTS_ON_PAGE"
27873	//   "PARTIAL_SUCCESS"
27874	//   "REQUIRED_TOS_AGREEMENT"
27875	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27876	//   "RESOURCE_NOT_DELETED"
27877	//   "SCHEMA_VALIDATION_IGNORED"
27878	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27879	//   "UNDECLARED_PROPERTIES"
27880	//   "UNREACHABLE"
27881	Code string `json:"code,omitempty"`
27882
27883	// Data: [Output Only] Metadata about this warning in key: value format.
27884	// For example:
27885	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27886	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
27887
27888	// Message: [Output Only] A human-readable description of the warning
27889	// code.
27890	Message string `json:"message,omitempty"`
27891
27892	// ForceSendFields is a list of field names (e.g. "Code") to
27893	// unconditionally include in API requests. By default, fields with
27894	// empty values are omitted from API requests. However, any non-pointer,
27895	// non-interface field appearing in ForceSendFields will be sent to the
27896	// server regardless of whether the field is empty or not. This may be
27897	// used to include empty fields in Patch requests.
27898	ForceSendFields []string `json:"-"`
27899
27900	// NullFields is a list of field names (e.g. "Code") to include in API
27901	// requests with the JSON null value. By default, fields with empty
27902	// values are omitted from API requests. However, any field with an
27903	// empty value appearing in NullFields will be sent to the server as
27904	// null. It is an error if a field in this list has a non-empty value.
27905	// This may be used to include null fields in Patch requests.
27906	NullFields []string `json:"-"`
27907}
27908
27909func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
27910	type NoMethod NodeTypeAggregatedListWarning
27911	raw := NoMethod(*s)
27912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27913}
27914
27915type NodeTypeAggregatedListWarningData struct {
27916	// Key: [Output Only] A key that provides more detail on the warning
27917	// being returned. For example, for warnings where there are no results
27918	// in a list request for a particular zone, this key might be scope and
27919	// the key value might be the zone name. Other examples might be a key
27920	// indicating a deprecated resource and a suggested replacement, or a
27921	// warning about invalid network settings (for example, if an instance
27922	// attempts to perform IP forwarding but is not enabled for IP
27923	// forwarding).
27924	Key string `json:"key,omitempty"`
27925
27926	// Value: [Output Only] A warning data value corresponding to the key.
27927	Value string `json:"value,omitempty"`
27928
27929	// ForceSendFields is a list of field names (e.g. "Key") to
27930	// unconditionally include in API requests. By default, fields with
27931	// empty values are omitted from API requests. However, any non-pointer,
27932	// non-interface field appearing in ForceSendFields will be sent to the
27933	// server regardless of whether the field is empty or not. This may be
27934	// used to include empty fields in Patch requests.
27935	ForceSendFields []string `json:"-"`
27936
27937	// NullFields is a list of field names (e.g. "Key") to include in API
27938	// requests with the JSON null value. By default, fields with empty
27939	// values are omitted from API requests. However, any field with an
27940	// empty value appearing in NullFields will be sent to the server as
27941	// null. It is an error if a field in this list has a non-empty value.
27942	// This may be used to include null fields in Patch requests.
27943	NullFields []string `json:"-"`
27944}
27945
27946func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27947	type NoMethod NodeTypeAggregatedListWarningData
27948	raw := NoMethod(*s)
27949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27950}
27951
27952// NodeTypeList: Contains a list of node types.
27953type NodeTypeList struct {
27954	// Id: [Output Only] Unique identifier for the resource; defined by the
27955	// server.
27956	Id string `json:"id,omitempty"`
27957
27958	// Items: A list of NodeType resources.
27959	Items []*NodeType `json:"items,omitempty"`
27960
27961	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
27962	// lists of node types.
27963	Kind string `json:"kind,omitempty"`
27964
27965	// NextPageToken: [Output Only] This token allows you to get the next
27966	// page of results for list requests. If the number of results is larger
27967	// than maxResults, use the nextPageToken as a value for the query
27968	// parameter pageToken in the next list request. Subsequent list
27969	// requests will have their own nextPageToken to continue paging through
27970	// the results.
27971	NextPageToken string `json:"nextPageToken,omitempty"`
27972
27973	// SelfLink: [Output Only] Server-defined URL for this resource.
27974	SelfLink string `json:"selfLink,omitempty"`
27975
27976	// Warning: [Output Only] Informational warning message.
27977	Warning *NodeTypeListWarning `json:"warning,omitempty"`
27978
27979	// ServerResponse contains the HTTP response code and headers from the
27980	// server.
27981	googleapi.ServerResponse `json:"-"`
27982
27983	// ForceSendFields is a list of field names (e.g. "Id") to
27984	// unconditionally include in API requests. By default, fields with
27985	// empty values are omitted from API requests. However, any non-pointer,
27986	// non-interface field appearing in ForceSendFields will be sent to the
27987	// server regardless of whether the field is empty or not. This may be
27988	// used to include empty fields in Patch requests.
27989	ForceSendFields []string `json:"-"`
27990
27991	// NullFields is a list of field names (e.g. "Id") to include in API
27992	// requests with the JSON null value. By default, fields with empty
27993	// values are omitted from API requests. However, any field with an
27994	// empty value appearing in NullFields will be sent to the server as
27995	// null. It is an error if a field in this list has a non-empty value.
27996	// This may be used to include null fields in Patch requests.
27997	NullFields []string `json:"-"`
27998}
27999
28000func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
28001	type NoMethod NodeTypeList
28002	raw := NoMethod(*s)
28003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28004}
28005
28006// NodeTypeListWarning: [Output Only] Informational warning message.
28007type NodeTypeListWarning struct {
28008	// Code: [Output Only] A warning code, if applicable. For example,
28009	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28010	// the response.
28011	//
28012	// Possible values:
28013	//   "CLEANUP_FAILED"
28014	//   "DEPRECATED_RESOURCE_USED"
28015	//   "DEPRECATED_TYPE_USED"
28016	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28017	//   "EXPERIMENTAL_TYPE_USED"
28018	//   "EXTERNAL_API_WARNING"
28019	//   "FIELD_VALUE_OVERRIDEN"
28020	//   "INJECTED_KERNELS_DEPRECATED"
28021	//   "LARGE_DEPLOYMENT_WARNING"
28022	//   "MISSING_TYPE_DEPENDENCY"
28023	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28024	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28025	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28026	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28027	//   "NEXT_HOP_NOT_RUNNING"
28028	//   "NOT_CRITICAL_ERROR"
28029	//   "NO_RESULTS_ON_PAGE"
28030	//   "PARTIAL_SUCCESS"
28031	//   "REQUIRED_TOS_AGREEMENT"
28032	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28033	//   "RESOURCE_NOT_DELETED"
28034	//   "SCHEMA_VALIDATION_IGNORED"
28035	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28036	//   "UNDECLARED_PROPERTIES"
28037	//   "UNREACHABLE"
28038	Code string `json:"code,omitempty"`
28039
28040	// Data: [Output Only] Metadata about this warning in key: value format.
28041	// For example:
28042	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28043	Data []*NodeTypeListWarningData `json:"data,omitempty"`
28044
28045	// Message: [Output Only] A human-readable description of the warning
28046	// code.
28047	Message string `json:"message,omitempty"`
28048
28049	// ForceSendFields is a list of field names (e.g. "Code") to
28050	// unconditionally include in API requests. By default, fields with
28051	// empty values are omitted from API requests. However, any non-pointer,
28052	// non-interface field appearing in ForceSendFields will be sent to the
28053	// server regardless of whether the field is empty or not. This may be
28054	// used to include empty fields in Patch requests.
28055	ForceSendFields []string `json:"-"`
28056
28057	// NullFields is a list of field names (e.g. "Code") to include in API
28058	// requests with the JSON null value. By default, fields with empty
28059	// values are omitted from API requests. However, any field with an
28060	// empty value appearing in NullFields will be sent to the server as
28061	// null. It is an error if a field in this list has a non-empty value.
28062	// This may be used to include null fields in Patch requests.
28063	NullFields []string `json:"-"`
28064}
28065
28066func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
28067	type NoMethod NodeTypeListWarning
28068	raw := NoMethod(*s)
28069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28070}
28071
28072type NodeTypeListWarningData struct {
28073	// Key: [Output Only] A key that provides more detail on the warning
28074	// being returned. For example, for warnings where there are no results
28075	// in a list request for a particular zone, this key might be scope and
28076	// the key value might be the zone name. Other examples might be a key
28077	// indicating a deprecated resource and a suggested replacement, or a
28078	// warning about invalid network settings (for example, if an instance
28079	// attempts to perform IP forwarding but is not enabled for IP
28080	// forwarding).
28081	Key string `json:"key,omitempty"`
28082
28083	// Value: [Output Only] A warning data value corresponding to the key.
28084	Value string `json:"value,omitempty"`
28085
28086	// ForceSendFields is a list of field names (e.g. "Key") to
28087	// unconditionally include in API requests. By default, fields with
28088	// empty values are omitted from API requests. However, any non-pointer,
28089	// non-interface field appearing in ForceSendFields will be sent to the
28090	// server regardless of whether the field is empty or not. This may be
28091	// used to include empty fields in Patch requests.
28092	ForceSendFields []string `json:"-"`
28093
28094	// NullFields is a list of field names (e.g. "Key") to include in API
28095	// requests with the JSON null value. By default, fields with empty
28096	// values are omitted from API requests. However, any field with an
28097	// empty value appearing in NullFields will be sent to the server as
28098	// null. It is an error if a field in this list has a non-empty value.
28099	// This may be used to include null fields in Patch requests.
28100	NullFields []string `json:"-"`
28101}
28102
28103func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
28104	type NoMethod NodeTypeListWarningData
28105	raw := NoMethod(*s)
28106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28107}
28108
28109type NodeTypesScopedList struct {
28110	// NodeTypes: [Output Only] A list of node types contained in this
28111	// scope.
28112	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
28113
28114	// Warning: [Output Only] An informational warning that appears when the
28115	// node types list is empty.
28116	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
28117
28118	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
28119	// unconditionally include in API requests. By default, fields with
28120	// empty values are omitted from API requests. However, any non-pointer,
28121	// non-interface field appearing in ForceSendFields will be sent to the
28122	// server regardless of whether the field is empty or not. This may be
28123	// used to include empty fields in Patch requests.
28124	ForceSendFields []string `json:"-"`
28125
28126	// NullFields is a list of field names (e.g. "NodeTypes") to include in
28127	// API requests with the JSON null value. By default, fields with empty
28128	// values are omitted from API requests. However, any field with an
28129	// empty value appearing in NullFields will be sent to the server as
28130	// null. It is an error if a field in this list has a non-empty value.
28131	// This may be used to include null fields in Patch requests.
28132	NullFields []string `json:"-"`
28133}
28134
28135func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
28136	type NoMethod NodeTypesScopedList
28137	raw := NoMethod(*s)
28138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28139}
28140
28141// NodeTypesScopedListWarning: [Output Only] An informational warning
28142// that appears when the node types list is empty.
28143type NodeTypesScopedListWarning struct {
28144	// Code: [Output Only] A warning code, if applicable. For example,
28145	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28146	// the response.
28147	//
28148	// Possible values:
28149	//   "CLEANUP_FAILED"
28150	//   "DEPRECATED_RESOURCE_USED"
28151	//   "DEPRECATED_TYPE_USED"
28152	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28153	//   "EXPERIMENTAL_TYPE_USED"
28154	//   "EXTERNAL_API_WARNING"
28155	//   "FIELD_VALUE_OVERRIDEN"
28156	//   "INJECTED_KERNELS_DEPRECATED"
28157	//   "LARGE_DEPLOYMENT_WARNING"
28158	//   "MISSING_TYPE_DEPENDENCY"
28159	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28160	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28161	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28162	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28163	//   "NEXT_HOP_NOT_RUNNING"
28164	//   "NOT_CRITICAL_ERROR"
28165	//   "NO_RESULTS_ON_PAGE"
28166	//   "PARTIAL_SUCCESS"
28167	//   "REQUIRED_TOS_AGREEMENT"
28168	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28169	//   "RESOURCE_NOT_DELETED"
28170	//   "SCHEMA_VALIDATION_IGNORED"
28171	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28172	//   "UNDECLARED_PROPERTIES"
28173	//   "UNREACHABLE"
28174	Code string `json:"code,omitempty"`
28175
28176	// Data: [Output Only] Metadata about this warning in key: value format.
28177	// For example:
28178	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28179	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
28180
28181	// Message: [Output Only] A human-readable description of the warning
28182	// code.
28183	Message string `json:"message,omitempty"`
28184
28185	// ForceSendFields is a list of field names (e.g. "Code") to
28186	// unconditionally include in API requests. By default, fields with
28187	// empty values are omitted from API requests. However, any non-pointer,
28188	// non-interface field appearing in ForceSendFields will be sent to the
28189	// server regardless of whether the field is empty or not. This may be
28190	// used to include empty fields in Patch requests.
28191	ForceSendFields []string `json:"-"`
28192
28193	// NullFields is a list of field names (e.g. "Code") to include in API
28194	// requests with the JSON null value. By default, fields with empty
28195	// values are omitted from API requests. However, any field with an
28196	// empty value appearing in NullFields will be sent to the server as
28197	// null. It is an error if a field in this list has a non-empty value.
28198	// This may be used to include null fields in Patch requests.
28199	NullFields []string `json:"-"`
28200}
28201
28202func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
28203	type NoMethod NodeTypesScopedListWarning
28204	raw := NoMethod(*s)
28205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28206}
28207
28208type NodeTypesScopedListWarningData struct {
28209	// Key: [Output Only] A key that provides more detail on the warning
28210	// being returned. For example, for warnings where there are no results
28211	// in a list request for a particular zone, this key might be scope and
28212	// the key value might be the zone name. Other examples might be a key
28213	// indicating a deprecated resource and a suggested replacement, or a
28214	// warning about invalid network settings (for example, if an instance
28215	// attempts to perform IP forwarding but is not enabled for IP
28216	// forwarding).
28217	Key string `json:"key,omitempty"`
28218
28219	// Value: [Output Only] A warning data value corresponding to the key.
28220	Value string `json:"value,omitempty"`
28221
28222	// ForceSendFields is a list of field names (e.g. "Key") to
28223	// unconditionally include in API requests. By default, fields with
28224	// empty values are omitted from API requests. However, any non-pointer,
28225	// non-interface field appearing in ForceSendFields will be sent to the
28226	// server regardless of whether the field is empty or not. This may be
28227	// used to include empty fields in Patch requests.
28228	ForceSendFields []string `json:"-"`
28229
28230	// NullFields is a list of field names (e.g. "Key") to include in API
28231	// requests with the JSON null value. By default, fields with empty
28232	// values are omitted from API requests. However, any field with an
28233	// empty value appearing in NullFields will be sent to the server as
28234	// null. It is an error if a field in this list has a non-empty value.
28235	// This may be used to include null fields in Patch requests.
28236	NullFields []string `json:"-"`
28237}
28238
28239func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
28240	type NoMethod NodeTypesScopedListWarningData
28241	raw := NoMethod(*s)
28242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28243}
28244
28245// NotificationEndpoint: Represents a notification endpoint.
28246//
28247// A notification endpoint resource defines an endpoint to receive
28248// notifications when there are status changes detected by the
28249// associated health check service.
28250//
28251// For more information, see  Health checks overview. (== resource_for
28252// {$api_version}.notificationEndpoint ==) (== resource_for
28253// {$api_version}.regionNotificationEndpoints ==)
28254type NotificationEndpoint struct {
28255	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28256	// format.
28257	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28258
28259	// Description: An optional description of this resource. Provide this
28260	// property when you create the resource.
28261	Description string `json:"description,omitempty"`
28262
28263	// GrpcSettings: Settings of the gRPC notification endpoint including
28264	// the endpoint URL and the retry duration.
28265	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
28266
28267	// Id: [Output Only] A unique identifier for this resource type. The
28268	// server generates this identifier.
28269	Id uint64 `json:"id,omitempty,string"`
28270
28271	// Kind: [Output Only] Type of the resource. Always
28272	// compute#notificationEndpoint for notification endpoints.
28273	Kind string `json:"kind,omitempty"`
28274
28275	// Name: Name of the resource. Provided by the client when the resource
28276	// is created. The name must be 1-63 characters long, and comply with
28277	// RFC1035. Specifically, the name must be 1-63 characters long and
28278	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28279	// the first character must be a lowercase letter, and all following
28280	// characters must be a dash, lowercase letter, or digit, except the
28281	// last character, which cannot be a dash.
28282	Name string `json:"name,omitempty"`
28283
28284	// Region: [Output Only] URL of the region where the notification
28285	// endpoint resides. This field applies only to the regional resource.
28286	// You must specify this field as part of the HTTP request URL. It is
28287	// not settable as a field in the request body.
28288	Region string `json:"region,omitempty"`
28289
28290	// SelfLink: [Output Only] Server-defined URL for the resource.
28291	SelfLink string `json:"selfLink,omitempty"`
28292
28293	// ServerResponse contains the HTTP response code and headers from the
28294	// server.
28295	googleapi.ServerResponse `json:"-"`
28296
28297	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
28298	// to unconditionally include in API requests. By default, fields with
28299	// empty values are omitted from API requests. However, any non-pointer,
28300	// non-interface field appearing in ForceSendFields will be sent to the
28301	// server regardless of whether the field is empty or not. This may be
28302	// used to include empty fields in Patch requests.
28303	ForceSendFields []string `json:"-"`
28304
28305	// NullFields is a list of field names (e.g. "CreationTimestamp") to
28306	// include in API requests with the JSON null value. By default, fields
28307	// with empty values are omitted from API requests. However, any field
28308	// with an empty value appearing in NullFields will be sent to the
28309	// server as null. It is an error if a field in this list has a
28310	// non-empty value. This may be used to include null fields in Patch
28311	// requests.
28312	NullFields []string `json:"-"`
28313}
28314
28315func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
28316	type NoMethod NotificationEndpoint
28317	raw := NoMethod(*s)
28318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28319}
28320
28321// NotificationEndpointGrpcSettings: Represents a gRPC setting that
28322// describes one gRPC notification endpoint and the retry duration
28323// attempting to send notification to this endpoint.
28324type NotificationEndpointGrpcSettings struct {
28325	// Authority: Optional. If specified, this field is used to set the
28326	// authority header by the sender of notifications. See
28327	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
28328	Authority string `json:"authority,omitempty"`
28329
28330	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
28331	// a valid gRPCLB DNS name.
28332	Endpoint string `json:"endpoint,omitempty"`
28333
28334	// PayloadName: Optional. If specified, this field is used to populate
28335	// the "name" field in gRPC requests.
28336	PayloadName string `json:"payloadName,omitempty"`
28337
28338	// ResendInterval: Optional. This field is used to configure how often
28339	// to send a full update of all non-healthy backends. If unspecified,
28340	// full updates are not sent. If specified, must be in the range between
28341	// 600 seconds to 3600 seconds. Nanos are disallowed.
28342	ResendInterval *Duration `json:"resendInterval,omitempty"`
28343
28344	// RetryDurationSec: How much time (in seconds) is spent attempting
28345	// notification retries until a successful response is received. Default
28346	// is 30s. Limit is 20m (1200s). Must be a positive number.
28347	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
28348
28349	// ForceSendFields is a list of field names (e.g. "Authority") to
28350	// unconditionally include in API requests. By default, fields with
28351	// empty values are omitted from API requests. However, any non-pointer,
28352	// non-interface field appearing in ForceSendFields will be sent to the
28353	// server regardless of whether the field is empty or not. This may be
28354	// used to include empty fields in Patch requests.
28355	ForceSendFields []string `json:"-"`
28356
28357	// NullFields is a list of field names (e.g. "Authority") to include in
28358	// API requests with the JSON null value. By default, fields with empty
28359	// values are omitted from API requests. However, any field with an
28360	// empty value appearing in NullFields will be sent to the server as
28361	// null. It is an error if a field in this list has a non-empty value.
28362	// This may be used to include null fields in Patch requests.
28363	NullFields []string `json:"-"`
28364}
28365
28366func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
28367	type NoMethod NotificationEndpointGrpcSettings
28368	raw := NoMethod(*s)
28369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28370}
28371
28372type NotificationEndpointList struct {
28373	// Id: [Output Only] Unique identifier for the resource; defined by the
28374	// server.
28375	Id string `json:"id,omitempty"`
28376
28377	// Items: A list of NotificationEndpoint resources.
28378	Items []*NotificationEndpoint `json:"items,omitempty"`
28379
28380	// Kind: [Output Only] Type of the resource. Always
28381	// compute#notificationEndpoint for notification endpoints.
28382	Kind string `json:"kind,omitempty"`
28383
28384	// NextPageToken: [Output Only] This token allows you to get the next
28385	// page of results for list requests. If the number of results is larger
28386	// than maxResults, use the nextPageToken as a value for the query
28387	// parameter pageToken in the next list request. Subsequent list
28388	// requests will have their own nextPageToken to continue paging through
28389	// the results.
28390	NextPageToken string `json:"nextPageToken,omitempty"`
28391
28392	// SelfLink: [Output Only] Server-defined URL for this resource.
28393	SelfLink string `json:"selfLink,omitempty"`
28394
28395	// Warning: [Output Only] Informational warning message.
28396	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
28397
28398	// ServerResponse contains the HTTP response code and headers from the
28399	// server.
28400	googleapi.ServerResponse `json:"-"`
28401
28402	// ForceSendFields is a list of field names (e.g. "Id") to
28403	// unconditionally include in API requests. By default, fields with
28404	// empty values are omitted from API requests. However, any non-pointer,
28405	// non-interface field appearing in ForceSendFields will be sent to the
28406	// server regardless of whether the field is empty or not. This may be
28407	// used to include empty fields in Patch requests.
28408	ForceSendFields []string `json:"-"`
28409
28410	// NullFields is a list of field names (e.g. "Id") to include in API
28411	// requests with the JSON null value. By default, fields with empty
28412	// values are omitted from API requests. However, any field with an
28413	// empty value appearing in NullFields will be sent to the server as
28414	// null. It is an error if a field in this list has a non-empty value.
28415	// This may be used to include null fields in Patch requests.
28416	NullFields []string `json:"-"`
28417}
28418
28419func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
28420	type NoMethod NotificationEndpointList
28421	raw := NoMethod(*s)
28422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28423}
28424
28425// NotificationEndpointListWarning: [Output Only] Informational warning
28426// message.
28427type NotificationEndpointListWarning struct {
28428	// Code: [Output Only] A warning code, if applicable. For example,
28429	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28430	// the response.
28431	//
28432	// Possible values:
28433	//   "CLEANUP_FAILED"
28434	//   "DEPRECATED_RESOURCE_USED"
28435	//   "DEPRECATED_TYPE_USED"
28436	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28437	//   "EXPERIMENTAL_TYPE_USED"
28438	//   "EXTERNAL_API_WARNING"
28439	//   "FIELD_VALUE_OVERRIDEN"
28440	//   "INJECTED_KERNELS_DEPRECATED"
28441	//   "LARGE_DEPLOYMENT_WARNING"
28442	//   "MISSING_TYPE_DEPENDENCY"
28443	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28444	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28445	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28446	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28447	//   "NEXT_HOP_NOT_RUNNING"
28448	//   "NOT_CRITICAL_ERROR"
28449	//   "NO_RESULTS_ON_PAGE"
28450	//   "PARTIAL_SUCCESS"
28451	//   "REQUIRED_TOS_AGREEMENT"
28452	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28453	//   "RESOURCE_NOT_DELETED"
28454	//   "SCHEMA_VALIDATION_IGNORED"
28455	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28456	//   "UNDECLARED_PROPERTIES"
28457	//   "UNREACHABLE"
28458	Code string `json:"code,omitempty"`
28459
28460	// Data: [Output Only] Metadata about this warning in key: value format.
28461	// For example:
28462	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28463	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
28464
28465	// Message: [Output Only] A human-readable description of the warning
28466	// code.
28467	Message string `json:"message,omitempty"`
28468
28469	// ForceSendFields is a list of field names (e.g. "Code") to
28470	// unconditionally include in API requests. By default, fields with
28471	// empty values are omitted from API requests. However, any non-pointer,
28472	// non-interface field appearing in ForceSendFields will be sent to the
28473	// server regardless of whether the field is empty or not. This may be
28474	// used to include empty fields in Patch requests.
28475	ForceSendFields []string `json:"-"`
28476
28477	// NullFields is a list of field names (e.g. "Code") to include in API
28478	// requests with the JSON null value. By default, fields with empty
28479	// values are omitted from API requests. However, any field with an
28480	// empty value appearing in NullFields will be sent to the server as
28481	// null. It is an error if a field in this list has a non-empty value.
28482	// This may be used to include null fields in Patch requests.
28483	NullFields []string `json:"-"`
28484}
28485
28486func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
28487	type NoMethod NotificationEndpointListWarning
28488	raw := NoMethod(*s)
28489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28490}
28491
28492type NotificationEndpointListWarningData struct {
28493	// Key: [Output Only] A key that provides more detail on the warning
28494	// being returned. For example, for warnings where there are no results
28495	// in a list request for a particular zone, this key might be scope and
28496	// the key value might be the zone name. Other examples might be a key
28497	// indicating a deprecated resource and a suggested replacement, or a
28498	// warning about invalid network settings (for example, if an instance
28499	// attempts to perform IP forwarding but is not enabled for IP
28500	// forwarding).
28501	Key string `json:"key,omitempty"`
28502
28503	// Value: [Output Only] A warning data value corresponding to the key.
28504	Value string `json:"value,omitempty"`
28505
28506	// ForceSendFields is a list of field names (e.g. "Key") to
28507	// unconditionally include in API requests. By default, fields with
28508	// empty values are omitted from API requests. However, any non-pointer,
28509	// non-interface field appearing in ForceSendFields will be sent to the
28510	// server regardless of whether the field is empty or not. This may be
28511	// used to include empty fields in Patch requests.
28512	ForceSendFields []string `json:"-"`
28513
28514	// NullFields is a list of field names (e.g. "Key") to include in API
28515	// requests with the JSON null value. By default, fields with empty
28516	// values are omitted from API requests. However, any field with an
28517	// empty value appearing in NullFields will be sent to the server as
28518	// null. It is an error if a field in this list has a non-empty value.
28519	// This may be used to include null fields in Patch requests.
28520	NullFields []string `json:"-"`
28521}
28522
28523func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
28524	type NoMethod NotificationEndpointListWarningData
28525	raw := NoMethod(*s)
28526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28527}
28528
28529// Operation: Represents an Operation resource.
28530//
28531// Google Compute Engine has three Operation resources:
28532//
28533// * Global
28534// (/compute/docs/reference/rest/{$api_version}/globalOperations) *
28535// Regional
28536// (/compute/docs/reference/rest/{$api_version}/regionOperations) *
28537// Zonal
28538// (/compute/docs/reference/rest/{$api_version}/zoneOperations)
28539//
28540// You can use an operation resource to manage asynchronous API
28541// requests. For more information, read Handling API
28542// responses.
28543//
28544// Operations can be global, regional or zonal.
28545// - For global operations, use the `globalOperations` resource.
28546// - For regional operations, use the `regionOperations` resource.
28547// - For zonal operations, use the `zonalOperations` resource.
28548//
28549// For more information, read  Global, Regional, and Zonal Resources.
28550// (== resource_for {$api_version}.globalOperations ==) (== resource_for
28551// {$api_version}.regionOperations ==) (== resource_for
28552// {$api_version}.zoneOperations ==)
28553type Operation struct {
28554	// ClientOperationId: [Output Only] The value of `requestId` if you
28555	// provided it in the request. Not present otherwise.
28556	ClientOperationId string `json:"clientOperationId,omitempty"`
28557
28558	// CreationTimestamp: [Deprecated] This field is deprecated.
28559	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28560
28561	// Description: [Output Only] A textual description of the operation,
28562	// which is set when the operation is created.
28563	Description string `json:"description,omitempty"`
28564
28565	// EndTime: [Output Only] The time that this operation was completed.
28566	// This value is in RFC3339 text format.
28567	EndTime string `json:"endTime,omitempty"`
28568
28569	// Error: [Output Only] If errors are generated during processing of the
28570	// operation, this field will be populated.
28571	Error *OperationError `json:"error,omitempty"`
28572
28573	// HttpErrorMessage: [Output Only] If the operation fails, this field
28574	// contains the HTTP error message that was returned, such as `NOT
28575	// FOUND`.
28576	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
28577
28578	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
28579	// contains the HTTP error status code that was returned. For example, a
28580	// `404` means the resource was not found.
28581	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
28582
28583	// Id: [Output Only] The unique identifier for the operation. This
28584	// identifier is defined by the server.
28585	Id uint64 `json:"id,omitempty,string"`
28586
28587	// InsertTime: [Output Only] The time that this operation was requested.
28588	// This value is in RFC3339 text format.
28589	InsertTime string `json:"insertTime,omitempty"`
28590
28591	// Kind: [Output Only] Type of the resource. Always `compute#operation`
28592	// for Operation resources.
28593	Kind string `json:"kind,omitempty"`
28594
28595	// Name: [Output Only] Name of the operation.
28596	Name string `json:"name,omitempty"`
28597
28598	// OperationGroupId: [Output Only] An ID that represents a group of
28599	// operations, such as when a group of operations results from a
28600	// `bulkInsert` API request.
28601	OperationGroupId string `json:"operationGroupId,omitempty"`
28602
28603	// OperationType: [Output Only] The type of operation, such as `insert`,
28604	// `update`, or `delete`, and so on.
28605	OperationType string `json:"operationType,omitempty"`
28606
28607	// Progress: [Output Only] An optional progress indicator that ranges
28608	// from 0 to 100. There is no requirement that this be linear or support
28609	// any granularity of operations. This should not be used to guess when
28610	// the operation will be complete. This number should monotonically
28611	// increase as the operation progresses.
28612	Progress int64 `json:"progress,omitempty"`
28613
28614	// Region: [Output Only] The URL of the region where the operation
28615	// resides. Only applicable when performing regional operations.
28616	Region string `json:"region,omitempty"`
28617
28618	// SelfLink: [Output Only] Server-defined URL for the resource.
28619	SelfLink string `json:"selfLink,omitempty"`
28620
28621	// StartTime: [Output Only] The time that this operation was started by
28622	// the server. This value is in RFC3339 text format.
28623	StartTime string `json:"startTime,omitempty"`
28624
28625	// Status: [Output Only] The status of the operation, which can be one
28626	// of the following: `PENDING`, `RUNNING`, or `DONE`.
28627	//
28628	// Possible values:
28629	//   "DONE"
28630	//   "PENDING"
28631	//   "RUNNING"
28632	Status string `json:"status,omitempty"`
28633
28634	// StatusMessage: [Output Only] An optional textual description of the
28635	// current status of the operation.
28636	StatusMessage string `json:"statusMessage,omitempty"`
28637
28638	// TargetId: [Output Only] The unique target ID, which identifies a
28639	// specific incarnation of the target resource.
28640	TargetId uint64 `json:"targetId,omitempty,string"`
28641
28642	// TargetLink: [Output Only] The URL of the resource that the operation
28643	// modifies. For operations related to creating a snapshot, this points
28644	// to the persistent disk that the snapshot was created from.
28645	TargetLink string `json:"targetLink,omitempty"`
28646
28647	// User: [Output Only] User who requested the operation, for example:
28648	// `user@example.com`.
28649	User string `json:"user,omitempty"`
28650
28651	// Warnings: [Output Only] If warning messages are generated during
28652	// processing of the operation, this field will be populated.
28653	Warnings []*OperationWarnings `json:"warnings,omitempty"`
28654
28655	// Zone: [Output Only] The URL of the zone where the operation resides.
28656	// Only applicable when performing per-zone operations.
28657	Zone string `json:"zone,omitempty"`
28658
28659	// ServerResponse contains the HTTP response code and headers from the
28660	// server.
28661	googleapi.ServerResponse `json:"-"`
28662
28663	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
28664	// to unconditionally include in API requests. By default, fields with
28665	// empty values are omitted from API requests. However, any non-pointer,
28666	// non-interface field appearing in ForceSendFields will be sent to the
28667	// server regardless of whether the field is empty or not. This may be
28668	// used to include empty fields in Patch requests.
28669	ForceSendFields []string `json:"-"`
28670
28671	// NullFields is a list of field names (e.g. "ClientOperationId") to
28672	// include in API requests with the JSON null value. By default, fields
28673	// with empty values are omitted from API requests. However, any field
28674	// with an empty value appearing in NullFields will be sent to the
28675	// server as null. It is an error if a field in this list has a
28676	// non-empty value. This may be used to include null fields in Patch
28677	// requests.
28678	NullFields []string `json:"-"`
28679}
28680
28681func (s *Operation) MarshalJSON() ([]byte, error) {
28682	type NoMethod Operation
28683	raw := NoMethod(*s)
28684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28685}
28686
28687// OperationError: [Output Only] If errors are generated during
28688// processing of the operation, this field will be populated.
28689type OperationError struct {
28690	// Errors: [Output Only] The array of errors encountered while
28691	// processing this operation.
28692	Errors []*OperationErrorErrors `json:"errors,omitempty"`
28693
28694	// ForceSendFields is a list of field names (e.g. "Errors") to
28695	// unconditionally include in API requests. By default, fields with
28696	// empty values are omitted from API requests. However, any non-pointer,
28697	// non-interface field appearing in ForceSendFields will be sent to the
28698	// server regardless of whether the field is empty or not. This may be
28699	// used to include empty fields in Patch requests.
28700	ForceSendFields []string `json:"-"`
28701
28702	// NullFields is a list of field names (e.g. "Errors") to include in API
28703	// requests with the JSON null value. By default, fields with empty
28704	// values are omitted from API requests. However, any field with an
28705	// empty value appearing in NullFields will be sent to the server as
28706	// null. It is an error if a field in this list has a non-empty value.
28707	// This may be used to include null fields in Patch requests.
28708	NullFields []string `json:"-"`
28709}
28710
28711func (s *OperationError) MarshalJSON() ([]byte, error) {
28712	type NoMethod OperationError
28713	raw := NoMethod(*s)
28714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28715}
28716
28717type OperationErrorErrors struct {
28718	// Code: [Output Only] The error type identifier for this error.
28719	Code string `json:"code,omitempty"`
28720
28721	// Location: [Output Only] Indicates the field in the request that
28722	// caused the error. This property is optional.
28723	Location string `json:"location,omitempty"`
28724
28725	// Message: [Output Only] An optional, human-readable error message.
28726	Message string `json:"message,omitempty"`
28727
28728	// ForceSendFields is a list of field names (e.g. "Code") to
28729	// unconditionally include in API requests. By default, fields with
28730	// empty values are omitted from API requests. However, any non-pointer,
28731	// non-interface field appearing in ForceSendFields will be sent to the
28732	// server regardless of whether the field is empty or not. This may be
28733	// used to include empty fields in Patch requests.
28734	ForceSendFields []string `json:"-"`
28735
28736	// NullFields is a list of field names (e.g. "Code") to include in API
28737	// requests with the JSON null value. By default, fields with empty
28738	// values are omitted from API requests. However, any field with an
28739	// empty value appearing in NullFields will be sent to the server as
28740	// null. It is an error if a field in this list has a non-empty value.
28741	// This may be used to include null fields in Patch requests.
28742	NullFields []string `json:"-"`
28743}
28744
28745func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
28746	type NoMethod OperationErrorErrors
28747	raw := NoMethod(*s)
28748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28749}
28750
28751type OperationWarnings struct {
28752	// Code: [Output Only] A warning code, if applicable. For example,
28753	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28754	// the response.
28755	//
28756	// Possible values:
28757	//   "CLEANUP_FAILED"
28758	//   "DEPRECATED_RESOURCE_USED"
28759	//   "DEPRECATED_TYPE_USED"
28760	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28761	//   "EXPERIMENTAL_TYPE_USED"
28762	//   "EXTERNAL_API_WARNING"
28763	//   "FIELD_VALUE_OVERRIDEN"
28764	//   "INJECTED_KERNELS_DEPRECATED"
28765	//   "LARGE_DEPLOYMENT_WARNING"
28766	//   "MISSING_TYPE_DEPENDENCY"
28767	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28768	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28769	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28770	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28771	//   "NEXT_HOP_NOT_RUNNING"
28772	//   "NOT_CRITICAL_ERROR"
28773	//   "NO_RESULTS_ON_PAGE"
28774	//   "PARTIAL_SUCCESS"
28775	//   "REQUIRED_TOS_AGREEMENT"
28776	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28777	//   "RESOURCE_NOT_DELETED"
28778	//   "SCHEMA_VALIDATION_IGNORED"
28779	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28780	//   "UNDECLARED_PROPERTIES"
28781	//   "UNREACHABLE"
28782	Code string `json:"code,omitempty"`
28783
28784	// Data: [Output Only] Metadata about this warning in key: value format.
28785	// For example:
28786	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28787	Data []*OperationWarningsData `json:"data,omitempty"`
28788
28789	// Message: [Output Only] A human-readable description of the warning
28790	// code.
28791	Message string `json:"message,omitempty"`
28792
28793	// ForceSendFields is a list of field names (e.g. "Code") to
28794	// unconditionally include in API requests. By default, fields with
28795	// empty values are omitted from API requests. However, any non-pointer,
28796	// non-interface field appearing in ForceSendFields will be sent to the
28797	// server regardless of whether the field is empty or not. This may be
28798	// used to include empty fields in Patch requests.
28799	ForceSendFields []string `json:"-"`
28800
28801	// NullFields is a list of field names (e.g. "Code") to include in API
28802	// requests with the JSON null value. By default, fields with empty
28803	// values are omitted from API requests. However, any field with an
28804	// empty value appearing in NullFields will be sent to the server as
28805	// null. It is an error if a field in this list has a non-empty value.
28806	// This may be used to include null fields in Patch requests.
28807	NullFields []string `json:"-"`
28808}
28809
28810func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
28811	type NoMethod OperationWarnings
28812	raw := NoMethod(*s)
28813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28814}
28815
28816type OperationWarningsData struct {
28817	// Key: [Output Only] A key that provides more detail on the warning
28818	// being returned. For example, for warnings where there are no results
28819	// in a list request for a particular zone, this key might be scope and
28820	// the key value might be the zone name. Other examples might be a key
28821	// indicating a deprecated resource and a suggested replacement, or a
28822	// warning about invalid network settings (for example, if an instance
28823	// attempts to perform IP forwarding but is not enabled for IP
28824	// forwarding).
28825	Key string `json:"key,omitempty"`
28826
28827	// Value: [Output Only] A warning data value corresponding to the key.
28828	Value string `json:"value,omitempty"`
28829
28830	// ForceSendFields is a list of field names (e.g. "Key") to
28831	// unconditionally include in API requests. By default, fields with
28832	// empty values are omitted from API requests. However, any non-pointer,
28833	// non-interface field appearing in ForceSendFields will be sent to the
28834	// server regardless of whether the field is empty or not. This may be
28835	// used to include empty fields in Patch requests.
28836	ForceSendFields []string `json:"-"`
28837
28838	// NullFields is a list of field names (e.g. "Key") to include in API
28839	// requests with the JSON null value. By default, fields with empty
28840	// values are omitted from API requests. However, any field with an
28841	// empty value appearing in NullFields will be sent to the server as
28842	// null. It is an error if a field in this list has a non-empty value.
28843	// This may be used to include null fields in Patch requests.
28844	NullFields []string `json:"-"`
28845}
28846
28847func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
28848	type NoMethod OperationWarningsData
28849	raw := NoMethod(*s)
28850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28851}
28852
28853type OperationAggregatedList struct {
28854	// Id: [Output Only] The unique identifier for the resource. This
28855	// identifier is defined by the server.
28856	Id string `json:"id,omitempty"`
28857
28858	// Items: [Output Only] A map of scoped operation lists.
28859	Items map[string]OperationsScopedList `json:"items,omitempty"`
28860
28861	// Kind: [Output Only] Type of resource. Always
28862	// `compute#operationAggregatedList` for aggregated lists of operations.
28863	Kind string `json:"kind,omitempty"`
28864
28865	// NextPageToken: [Output Only] This token allows you to get the next
28866	// page of results for list requests. If the number of results is larger
28867	// than `maxResults`, use the `nextPageToken` as a value for the query
28868	// parameter `pageToken` in the next list request. Subsequent list
28869	// requests will have their own `nextPageToken` to continue paging
28870	// through the results.
28871	NextPageToken string `json:"nextPageToken,omitempty"`
28872
28873	// SelfLink: [Output Only] Server-defined URL for this resource.
28874	SelfLink string `json:"selfLink,omitempty"`
28875
28876	// Unreachables: [Output Only] Unreachable resources.
28877	Unreachables []string `json:"unreachables,omitempty"`
28878
28879	// Warning: [Output Only] Informational warning message.
28880	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
28881
28882	// ServerResponse contains the HTTP response code and headers from the
28883	// server.
28884	googleapi.ServerResponse `json:"-"`
28885
28886	// ForceSendFields is a list of field names (e.g. "Id") to
28887	// unconditionally include in API requests. By default, fields with
28888	// empty values are omitted from API requests. However, any non-pointer,
28889	// non-interface field appearing in ForceSendFields will be sent to the
28890	// server regardless of whether the field is empty or not. This may be
28891	// used to include empty fields in Patch requests.
28892	ForceSendFields []string `json:"-"`
28893
28894	// NullFields is a list of field names (e.g. "Id") to include in API
28895	// requests with the JSON null value. By default, fields with empty
28896	// values are omitted from API requests. However, any field with an
28897	// empty value appearing in NullFields will be sent to the server as
28898	// null. It is an error if a field in this list has a non-empty value.
28899	// This may be used to include null fields in Patch requests.
28900	NullFields []string `json:"-"`
28901}
28902
28903func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
28904	type NoMethod OperationAggregatedList
28905	raw := NoMethod(*s)
28906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28907}
28908
28909// OperationAggregatedListWarning: [Output Only] Informational warning
28910// message.
28911type OperationAggregatedListWarning struct {
28912	// Code: [Output Only] A warning code, if applicable. For example,
28913	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28914	// the response.
28915	//
28916	// Possible values:
28917	//   "CLEANUP_FAILED"
28918	//   "DEPRECATED_RESOURCE_USED"
28919	//   "DEPRECATED_TYPE_USED"
28920	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28921	//   "EXPERIMENTAL_TYPE_USED"
28922	//   "EXTERNAL_API_WARNING"
28923	//   "FIELD_VALUE_OVERRIDEN"
28924	//   "INJECTED_KERNELS_DEPRECATED"
28925	//   "LARGE_DEPLOYMENT_WARNING"
28926	//   "MISSING_TYPE_DEPENDENCY"
28927	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28928	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28929	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28930	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28931	//   "NEXT_HOP_NOT_RUNNING"
28932	//   "NOT_CRITICAL_ERROR"
28933	//   "NO_RESULTS_ON_PAGE"
28934	//   "PARTIAL_SUCCESS"
28935	//   "REQUIRED_TOS_AGREEMENT"
28936	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28937	//   "RESOURCE_NOT_DELETED"
28938	//   "SCHEMA_VALIDATION_IGNORED"
28939	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28940	//   "UNDECLARED_PROPERTIES"
28941	//   "UNREACHABLE"
28942	Code string `json:"code,omitempty"`
28943
28944	// Data: [Output Only] Metadata about this warning in key: value format.
28945	// For example:
28946	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28947	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
28948
28949	// Message: [Output Only] A human-readable description of the warning
28950	// code.
28951	Message string `json:"message,omitempty"`
28952
28953	// ForceSendFields is a list of field names (e.g. "Code") to
28954	// unconditionally include in API requests. By default, fields with
28955	// empty values are omitted from API requests. However, any non-pointer,
28956	// non-interface field appearing in ForceSendFields will be sent to the
28957	// server regardless of whether the field is empty or not. This may be
28958	// used to include empty fields in Patch requests.
28959	ForceSendFields []string `json:"-"`
28960
28961	// NullFields is a list of field names (e.g. "Code") to include in API
28962	// requests with the JSON null value. By default, fields with empty
28963	// values are omitted from API requests. However, any field with an
28964	// empty value appearing in NullFields will be sent to the server as
28965	// null. It is an error if a field in this list has a non-empty value.
28966	// This may be used to include null fields in Patch requests.
28967	NullFields []string `json:"-"`
28968}
28969
28970func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
28971	type NoMethod OperationAggregatedListWarning
28972	raw := NoMethod(*s)
28973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28974}
28975
28976type OperationAggregatedListWarningData struct {
28977	// Key: [Output Only] A key that provides more detail on the warning
28978	// being returned. For example, for warnings where there are no results
28979	// in a list request for a particular zone, this key might be scope and
28980	// the key value might be the zone name. Other examples might be a key
28981	// indicating a deprecated resource and a suggested replacement, or a
28982	// warning about invalid network settings (for example, if an instance
28983	// attempts to perform IP forwarding but is not enabled for IP
28984	// forwarding).
28985	Key string `json:"key,omitempty"`
28986
28987	// Value: [Output Only] A warning data value corresponding to the key.
28988	Value string `json:"value,omitempty"`
28989
28990	// ForceSendFields is a list of field names (e.g. "Key") to
28991	// unconditionally include in API requests. By default, fields with
28992	// empty values are omitted from API requests. However, any non-pointer,
28993	// non-interface field appearing in ForceSendFields will be sent to the
28994	// server regardless of whether the field is empty or not. This may be
28995	// used to include empty fields in Patch requests.
28996	ForceSendFields []string `json:"-"`
28997
28998	// NullFields is a list of field names (e.g. "Key") to include in API
28999	// requests with the JSON null value. By default, fields with empty
29000	// values are omitted from API requests. However, any field with an
29001	// empty value appearing in NullFields will be sent to the server as
29002	// null. It is an error if a field in this list has a non-empty value.
29003	// This may be used to include null fields in Patch requests.
29004	NullFields []string `json:"-"`
29005}
29006
29007func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29008	type NoMethod OperationAggregatedListWarningData
29009	raw := NoMethod(*s)
29010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29011}
29012
29013// OperationList: Contains a list of Operation resources.
29014type OperationList struct {
29015	// Id: [Output Only] The unique identifier for the resource. This
29016	// identifier is defined by the server.
29017	Id string `json:"id,omitempty"`
29018
29019	// Items: [Output Only] A list of Operation resources.
29020	Items []*Operation `json:"items,omitempty"`
29021
29022	// Kind: [Output Only] Type of resource. Always `compute#operations` for
29023	// Operations resource.
29024	Kind string `json:"kind,omitempty"`
29025
29026	// NextPageToken: [Output Only] This token allows you to get the next
29027	// page of results for list requests. If the number of results is larger
29028	// than `maxResults`, use the `nextPageToken` as a value for the query
29029	// parameter `pageToken` in the next list request. Subsequent list
29030	// requests will have their own `nextPageToken` to continue paging
29031	// through the results.
29032	NextPageToken string `json:"nextPageToken,omitempty"`
29033
29034	// SelfLink: [Output Only] Server-defined URL for this resource.
29035	SelfLink string `json:"selfLink,omitempty"`
29036
29037	// Warning: [Output Only] Informational warning message.
29038	Warning *OperationListWarning `json:"warning,omitempty"`
29039
29040	// ServerResponse contains the HTTP response code and headers from the
29041	// server.
29042	googleapi.ServerResponse `json:"-"`
29043
29044	// ForceSendFields is a list of field names (e.g. "Id") to
29045	// unconditionally include in API requests. By default, fields with
29046	// empty values are omitted from API requests. However, any non-pointer,
29047	// non-interface field appearing in ForceSendFields will be sent to the
29048	// server regardless of whether the field is empty or not. This may be
29049	// used to include empty fields in Patch requests.
29050	ForceSendFields []string `json:"-"`
29051
29052	// NullFields is a list of field names (e.g. "Id") to include in API
29053	// requests with the JSON null value. By default, fields with empty
29054	// values are omitted from API requests. However, any field with an
29055	// empty value appearing in NullFields will be sent to the server as
29056	// null. It is an error if a field in this list has a non-empty value.
29057	// This may be used to include null fields in Patch requests.
29058	NullFields []string `json:"-"`
29059}
29060
29061func (s *OperationList) MarshalJSON() ([]byte, error) {
29062	type NoMethod OperationList
29063	raw := NoMethod(*s)
29064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29065}
29066
29067// OperationListWarning: [Output Only] Informational warning message.
29068type OperationListWarning struct {
29069	// Code: [Output Only] A warning code, if applicable. For example,
29070	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29071	// the response.
29072	//
29073	// Possible values:
29074	//   "CLEANUP_FAILED"
29075	//   "DEPRECATED_RESOURCE_USED"
29076	//   "DEPRECATED_TYPE_USED"
29077	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29078	//   "EXPERIMENTAL_TYPE_USED"
29079	//   "EXTERNAL_API_WARNING"
29080	//   "FIELD_VALUE_OVERRIDEN"
29081	//   "INJECTED_KERNELS_DEPRECATED"
29082	//   "LARGE_DEPLOYMENT_WARNING"
29083	//   "MISSING_TYPE_DEPENDENCY"
29084	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29085	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29086	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29087	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29088	//   "NEXT_HOP_NOT_RUNNING"
29089	//   "NOT_CRITICAL_ERROR"
29090	//   "NO_RESULTS_ON_PAGE"
29091	//   "PARTIAL_SUCCESS"
29092	//   "REQUIRED_TOS_AGREEMENT"
29093	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29094	//   "RESOURCE_NOT_DELETED"
29095	//   "SCHEMA_VALIDATION_IGNORED"
29096	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29097	//   "UNDECLARED_PROPERTIES"
29098	//   "UNREACHABLE"
29099	Code string `json:"code,omitempty"`
29100
29101	// Data: [Output Only] Metadata about this warning in key: value format.
29102	// For example:
29103	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29104	Data []*OperationListWarningData `json:"data,omitempty"`
29105
29106	// Message: [Output Only] A human-readable description of the warning
29107	// code.
29108	Message string `json:"message,omitempty"`
29109
29110	// ForceSendFields is a list of field names (e.g. "Code") to
29111	// unconditionally include in API requests. By default, fields with
29112	// empty values are omitted from API requests. However, any non-pointer,
29113	// non-interface field appearing in ForceSendFields will be sent to the
29114	// server regardless of whether the field is empty or not. This may be
29115	// used to include empty fields in Patch requests.
29116	ForceSendFields []string `json:"-"`
29117
29118	// NullFields is a list of field names (e.g. "Code") to include in API
29119	// requests with the JSON null value. By default, fields with empty
29120	// values are omitted from API requests. However, any field with an
29121	// empty value appearing in NullFields will be sent to the server as
29122	// null. It is an error if a field in this list has a non-empty value.
29123	// This may be used to include null fields in Patch requests.
29124	NullFields []string `json:"-"`
29125}
29126
29127func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
29128	type NoMethod OperationListWarning
29129	raw := NoMethod(*s)
29130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29131}
29132
29133type OperationListWarningData struct {
29134	// Key: [Output Only] A key that provides more detail on the warning
29135	// being returned. For example, for warnings where there are no results
29136	// in a list request for a particular zone, this key might be scope and
29137	// the key value might be the zone name. Other examples might be a key
29138	// indicating a deprecated resource and a suggested replacement, or a
29139	// warning about invalid network settings (for example, if an instance
29140	// attempts to perform IP forwarding but is not enabled for IP
29141	// forwarding).
29142	Key string `json:"key,omitempty"`
29143
29144	// Value: [Output Only] A warning data value corresponding to the key.
29145	Value string `json:"value,omitempty"`
29146
29147	// ForceSendFields is a list of field names (e.g. "Key") to
29148	// unconditionally include in API requests. By default, fields with
29149	// empty values are omitted from API requests. However, any non-pointer,
29150	// non-interface field appearing in ForceSendFields will be sent to the
29151	// server regardless of whether the field is empty or not. This may be
29152	// used to include empty fields in Patch requests.
29153	ForceSendFields []string `json:"-"`
29154
29155	// NullFields is a list of field names (e.g. "Key") to include in API
29156	// requests with the JSON null value. By default, fields with empty
29157	// values are omitted from API requests. However, any field with an
29158	// empty value appearing in NullFields will be sent to the server as
29159	// null. It is an error if a field in this list has a non-empty value.
29160	// This may be used to include null fields in Patch requests.
29161	NullFields []string `json:"-"`
29162}
29163
29164func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
29165	type NoMethod OperationListWarningData
29166	raw := NoMethod(*s)
29167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29168}
29169
29170type OperationsScopedList struct {
29171	// Operations: [Output Only] A list of operations contained in this
29172	// scope.
29173	Operations []*Operation `json:"operations,omitempty"`
29174
29175	// Warning: [Output Only] Informational warning which replaces the list
29176	// of operations when the list is empty.
29177	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
29178
29179	// ForceSendFields is a list of field names (e.g. "Operations") to
29180	// unconditionally include in API requests. By default, fields with
29181	// empty values are omitted from API requests. However, any non-pointer,
29182	// non-interface field appearing in ForceSendFields will be sent to the
29183	// server regardless of whether the field is empty or not. This may be
29184	// used to include empty fields in Patch requests.
29185	ForceSendFields []string `json:"-"`
29186
29187	// NullFields is a list of field names (e.g. "Operations") to include in
29188	// API requests with the JSON null value. By default, fields with empty
29189	// values are omitted from API requests. However, any field with an
29190	// empty value appearing in NullFields will be sent to the server as
29191	// null. It is an error if a field in this list has a non-empty value.
29192	// This may be used to include null fields in Patch requests.
29193	NullFields []string `json:"-"`
29194}
29195
29196func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
29197	type NoMethod OperationsScopedList
29198	raw := NoMethod(*s)
29199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29200}
29201
29202// OperationsScopedListWarning: [Output Only] Informational warning
29203// which replaces the list of operations when the list is empty.
29204type OperationsScopedListWarning struct {
29205	// Code: [Output Only] A warning code, if applicable. For example,
29206	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29207	// the response.
29208	//
29209	// Possible values:
29210	//   "CLEANUP_FAILED"
29211	//   "DEPRECATED_RESOURCE_USED"
29212	//   "DEPRECATED_TYPE_USED"
29213	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29214	//   "EXPERIMENTAL_TYPE_USED"
29215	//   "EXTERNAL_API_WARNING"
29216	//   "FIELD_VALUE_OVERRIDEN"
29217	//   "INJECTED_KERNELS_DEPRECATED"
29218	//   "LARGE_DEPLOYMENT_WARNING"
29219	//   "MISSING_TYPE_DEPENDENCY"
29220	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29221	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29222	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29223	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29224	//   "NEXT_HOP_NOT_RUNNING"
29225	//   "NOT_CRITICAL_ERROR"
29226	//   "NO_RESULTS_ON_PAGE"
29227	//   "PARTIAL_SUCCESS"
29228	//   "REQUIRED_TOS_AGREEMENT"
29229	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29230	//   "RESOURCE_NOT_DELETED"
29231	//   "SCHEMA_VALIDATION_IGNORED"
29232	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29233	//   "UNDECLARED_PROPERTIES"
29234	//   "UNREACHABLE"
29235	Code string `json:"code,omitempty"`
29236
29237	// Data: [Output Only] Metadata about this warning in key: value format.
29238	// For example:
29239	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29240	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
29241
29242	// Message: [Output Only] A human-readable description of the warning
29243	// code.
29244	Message string `json:"message,omitempty"`
29245
29246	// ForceSendFields is a list of field names (e.g. "Code") to
29247	// unconditionally include in API requests. By default, fields with
29248	// empty values are omitted from API requests. However, any non-pointer,
29249	// non-interface field appearing in ForceSendFields will be sent to the
29250	// server regardless of whether the field is empty or not. This may be
29251	// used to include empty fields in Patch requests.
29252	ForceSendFields []string `json:"-"`
29253
29254	// NullFields is a list of field names (e.g. "Code") to include in API
29255	// requests with the JSON null value. By default, fields with empty
29256	// values are omitted from API requests. However, any field with an
29257	// empty value appearing in NullFields will be sent to the server as
29258	// null. It is an error if a field in this list has a non-empty value.
29259	// This may be used to include null fields in Patch requests.
29260	NullFields []string `json:"-"`
29261}
29262
29263func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
29264	type NoMethod OperationsScopedListWarning
29265	raw := NoMethod(*s)
29266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29267}
29268
29269type OperationsScopedListWarningData struct {
29270	// Key: [Output Only] A key that provides more detail on the warning
29271	// being returned. For example, for warnings where there are no results
29272	// in a list request for a particular zone, this key might be scope and
29273	// the key value might be the zone name. Other examples might be a key
29274	// indicating a deprecated resource and a suggested replacement, or a
29275	// warning about invalid network settings (for example, if an instance
29276	// attempts to perform IP forwarding but is not enabled for IP
29277	// forwarding).
29278	Key string `json:"key,omitempty"`
29279
29280	// Value: [Output Only] A warning data value corresponding to the key.
29281	Value string `json:"value,omitempty"`
29282
29283	// ForceSendFields is a list of field names (e.g. "Key") to
29284	// unconditionally include in API requests. By default, fields with
29285	// empty values are omitted from API requests. However, any non-pointer,
29286	// non-interface field appearing in ForceSendFields will be sent to the
29287	// server regardless of whether the field is empty or not. This may be
29288	// used to include empty fields in Patch requests.
29289	ForceSendFields []string `json:"-"`
29290
29291	// NullFields is a list of field names (e.g. "Key") to include in API
29292	// requests with the JSON null value. By default, fields with empty
29293	// values are omitted from API requests. However, any field with an
29294	// empty value appearing in NullFields will be sent to the server as
29295	// null. It is an error if a field in this list has a non-empty value.
29296	// This may be used to include null fields in Patch requests.
29297	NullFields []string `json:"-"`
29298}
29299
29300func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
29301	type NoMethod OperationsScopedListWarningData
29302	raw := NoMethod(*s)
29303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29304}
29305
29306type OrganizationSecurityPoliciesListAssociationsResponse struct {
29307	// Associations: A list of associations.
29308	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
29309
29310	// Kind: [Output Only] Type of securityPolicy associations. Always
29311	// compute#organizationSecurityPoliciesListAssociations for lists of
29312	// securityPolicy associations.
29313	Kind string `json:"kind,omitempty"`
29314
29315	// ServerResponse contains the HTTP response code and headers from the
29316	// server.
29317	googleapi.ServerResponse `json:"-"`
29318
29319	// ForceSendFields is a list of field names (e.g. "Associations") to
29320	// unconditionally include in API requests. By default, fields with
29321	// empty values are omitted from API requests. However, any non-pointer,
29322	// non-interface field appearing in ForceSendFields will be sent to the
29323	// server regardless of whether the field is empty or not. This may be
29324	// used to include empty fields in Patch requests.
29325	ForceSendFields []string `json:"-"`
29326
29327	// NullFields is a list of field names (e.g. "Associations") to include
29328	// in API requests with the JSON null value. By default, fields with
29329	// empty values are omitted from API requests. However, any field with
29330	// an empty value appearing in NullFields will be sent to the server as
29331	// null. It is an error if a field in this list has a non-empty value.
29332	// This may be used to include null fields in Patch requests.
29333	NullFields []string `json:"-"`
29334}
29335
29336func (s *OrganizationSecurityPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
29337	type NoMethod OrganizationSecurityPoliciesListAssociationsResponse
29338	raw := NoMethod(*s)
29339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29340}
29341
29342// OutlierDetection: Settings controlling the eviction of unhealthy
29343// hosts from the load balancing pool for the backend service.
29344type OutlierDetection struct {
29345	// BaseEjectionTime: The base time that a host is ejected for. The real
29346	// ejection time is equal to the base ejection time multiplied by the
29347	// number of times the host has been ejected. Defaults to 30000ms or
29348	// 30s.
29349	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
29350
29351	// ConsecutiveErrors: Number of errors before a host is ejected from the
29352	// connection pool. When the backend host is accessed over HTTP, a 5xx
29353	// return code qualifies as an error. Defaults to 5.
29354	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
29355
29356	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
29357	// (502, 503, 504 status or connection errors that are mapped to one of
29358	// those status codes) before a consecutive gateway failure ejection
29359	// occurs. Defaults to 3.
29360	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
29361
29362	// EnforcingConsecutiveErrors: The percentage chance that a host will be
29363	// actually ejected when an outlier status is detected through
29364	// consecutive 5xx. This setting can be used to disable ejection or to
29365	// ramp it up slowly. Defaults to 0.
29366	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
29367
29368	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
29369	// will be actually ejected when an outlier status is detected through
29370	// consecutive gateway failures. This setting can be used to disable
29371	// ejection or to ramp it up slowly. Defaults to 100.
29372	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
29373
29374	// EnforcingSuccessRate: The percentage chance that a host will be
29375	// actually ejected when an outlier status is detected through success
29376	// rate statistics. This setting can be used to disable ejection or to
29377	// ramp it up slowly. Defaults to 100.
29378	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
29379
29380	// Interval: Time interval between ejection analysis sweeps. This can
29381	// result in both new ejections as well as hosts being returned to
29382	// service. Defaults to 1 second.
29383	Interval *Duration `json:"interval,omitempty"`
29384
29385	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
29386	// pool for the backend service that can be ejected. Defaults to 50%.
29387	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
29388
29389	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
29390	// have enough request volume to detect success rate outliers. If the
29391	// number of hosts is less than this setting, outlier detection via
29392	// success rate statistics is not performed for any host in the cluster.
29393	// Defaults to 5.
29394	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
29395
29396	// SuccessRateRequestVolume: The minimum number of total requests that
29397	// must be collected in one interval (as defined by the interval
29398	// duration above) to include this host in success rate based outlier
29399	// detection. If the volume is lower than this setting, outlier
29400	// detection via success rate statistics is not performed for that host.
29401	// Defaults to 100.
29402	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
29403
29404	// SuccessRateStdevFactor: This factor is used to determine the ejection
29405	// threshold for success rate outlier ejection. The ejection threshold
29406	// is the difference between the mean success rate, and the product of
29407	// this factor and the standard deviation of the mean success rate: mean
29408	// - (stdev * success_rate_stdev_factor). This factor is divided by a
29409	// thousand to get a double. That is, if the desired factor is 1.9, the
29410	// runtime value should be 1900. Defaults to 1900.
29411	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
29412
29413	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
29414	// unconditionally include in API requests. By default, fields with
29415	// empty values are omitted from API requests. However, any non-pointer,
29416	// non-interface field appearing in ForceSendFields will be sent to the
29417	// server regardless of whether the field is empty or not. This may be
29418	// used to include empty fields in Patch requests.
29419	ForceSendFields []string `json:"-"`
29420
29421	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
29422	// include in API requests with the JSON null value. By default, fields
29423	// with empty values are omitted from API requests. However, any field
29424	// with an empty value appearing in NullFields will be sent to the
29425	// server as null. It is an error if a field in this list has a
29426	// non-empty value. This may be used to include null fields in Patch
29427	// requests.
29428	NullFields []string `json:"-"`
29429}
29430
29431func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
29432	type NoMethod OutlierDetection
29433	raw := NoMethod(*s)
29434	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29435}
29436
29437// PacketIntervals: Next free: 7
29438type PacketIntervals struct {
29439	// AvgMs: Average observed inter-packet interval in milliseconds.
29440	AvgMs int64 `json:"avgMs,omitempty,string"`
29441
29442	// Duration: From how long ago in the past these intervals were
29443	// observed.
29444	//
29445	// Possible values:
29446	//   "DURATION_UNSPECIFIED"
29447	//   "HOUR"
29448	//   "MAX"
29449	//   "MINUTE"
29450	Duration string `json:"duration,omitempty"`
29451
29452	// MaxMs: Maximum observed inter-packet interval in milliseconds.
29453	MaxMs int64 `json:"maxMs,omitempty,string"`
29454
29455	// MinMs: Minimum observed inter-packet interval in milliseconds.
29456	MinMs int64 `json:"minMs,omitempty,string"`
29457
29458	// NumIntervals: Number of inter-packet intervals from which these
29459	// statistics were derived.
29460	NumIntervals int64 `json:"numIntervals,omitempty,string"`
29461
29462	// Type: The type of packets for which inter-packet intervals were
29463	// computed.
29464	//
29465	// Possible values:
29466	//   "LOOPBACK"
29467	//   "RECEIVE"
29468	//   "TRANSMIT"
29469	//   "TYPE_UNSPECIFIED"
29470	Type string `json:"type,omitempty"`
29471
29472	// ForceSendFields is a list of field names (e.g. "AvgMs") to
29473	// unconditionally include in API requests. By default, fields with
29474	// empty values are omitted from API requests. However, any non-pointer,
29475	// non-interface field appearing in ForceSendFields will be sent to the
29476	// server regardless of whether the field is empty or not. This may be
29477	// used to include empty fields in Patch requests.
29478	ForceSendFields []string `json:"-"`
29479
29480	// NullFields is a list of field names (e.g. "AvgMs") to include in API
29481	// requests with the JSON null value. By default, fields with empty
29482	// values are omitted from API requests. However, any field with an
29483	// empty value appearing in NullFields will be sent to the server as
29484	// null. It is an error if a field in this list has a non-empty value.
29485	// This may be used to include null fields in Patch requests.
29486	NullFields []string `json:"-"`
29487}
29488
29489func (s *PacketIntervals) MarshalJSON() ([]byte, error) {
29490	type NoMethod PacketIntervals
29491	raw := NoMethod(*s)
29492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29493}
29494
29495// PacketMirroring: Represents a Packet Mirroring resource.
29496//
29497// Packet Mirroring clones the traffic of specified instances in your
29498// Virtual Private Cloud (VPC) network and forwards it to a collector
29499// destination, such as an instance group of an internal TCP/UDP load
29500// balancer, for analysis or examination. For more information about
29501// setting up Packet Mirroring, see Using Packet Mirroring. (==
29502// resource_for {$api_version}.packetMirrorings ==)
29503type PacketMirroring struct {
29504	// CollectorIlb: The Forwarding Rule resource of type
29505	// loadBalancingScheme=INTERNAL that will be used as collector for
29506	// mirrored traffic. The specified forwarding rule must have
29507	// isMirroringCollector set to true.
29508	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
29509
29510	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29511	// format.
29512	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29513
29514	// Description: An optional description of this resource. Provide this
29515	// property when you create the resource.
29516	Description string `json:"description,omitempty"`
29517
29518	// Enable: Indicates whether or not this packet mirroring takes effect.
29519	// If set to FALSE, this packet mirroring policy will not be enforced on
29520	// the network.
29521	//
29522	// The default is TRUE.
29523	//
29524	// Possible values:
29525	//   "FALSE"
29526	//   "TRUE"
29527	Enable string `json:"enable,omitempty"`
29528
29529	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
29530	// mirrored.
29531	Filter *PacketMirroringFilter `json:"filter,omitempty"`
29532
29533	// Id: [Output Only] The unique identifier for the resource. This
29534	// identifier is defined by the server.
29535	Id uint64 `json:"id,omitempty,string"`
29536
29537	// Kind: [Output Only] Type of the resource. Always
29538	// compute#packetMirroring for packet mirrorings.
29539	Kind string `json:"kind,omitempty"`
29540
29541	// MirroredResources: PacketMirroring mirroredResourceInfos.
29542	// MirroredResourceInfo specifies a set of mirrored VM instances,
29543	// subnetworks and/or tags for which traffic from/to all VM instances
29544	// will be mirrored.
29545	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
29546
29547	// Name: Name of the resource; provided by the client when the resource
29548	// is created. The name must be 1-63 characters long, and comply with
29549	// RFC1035. Specifically, the name must be 1-63 characters long and
29550	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29551	// the first character must be a lowercase letter, and all following
29552	// characters must be a dash, lowercase letter, or digit, except the
29553	// last character, which cannot be a dash.
29554	Name string `json:"name,omitempty"`
29555
29556	// Network: Specifies the mirrored VPC network. Only packets in this
29557	// network will be mirrored. All mirrored VMs should have a NIC in the
29558	// given network. All mirrored subnetworks should belong to the given
29559	// network.
29560	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
29561
29562	// Priority: The priority of applying this configuration. Priority is
29563	// used to break ties in cases where there is more than one matching
29564	// rule. In the case of two rules that apply for a given Instance, the
29565	// one with the lowest-numbered priority value wins.
29566	//
29567	// Default value is 1000. Valid range is 0 through 65535.
29568	Priority int64 `json:"priority,omitempty"`
29569
29570	// Region: [Output Only] URI of the region where the packetMirroring
29571	// resides.
29572	Region string `json:"region,omitempty"`
29573
29574	// SelfLink: [Output Only] Server-defined URL for the resource.
29575	SelfLink string `json:"selfLink,omitempty"`
29576
29577	// ServerResponse contains the HTTP response code and headers from the
29578	// server.
29579	googleapi.ServerResponse `json:"-"`
29580
29581	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
29582	// unconditionally include in API requests. By default, fields with
29583	// empty values are omitted from API requests. However, any non-pointer,
29584	// non-interface field appearing in ForceSendFields will be sent to the
29585	// server regardless of whether the field is empty or not. This may be
29586	// used to include empty fields in Patch requests.
29587	ForceSendFields []string `json:"-"`
29588
29589	// NullFields is a list of field names (e.g. "CollectorIlb") to include
29590	// in API requests with the JSON null value. By default, fields with
29591	// empty values are omitted from API requests. However, any field with
29592	// an empty value appearing in NullFields will be sent to the server as
29593	// null. It is an error if a field in this list has a non-empty value.
29594	// This may be used to include null fields in Patch requests.
29595	NullFields []string `json:"-"`
29596}
29597
29598func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
29599	type NoMethod PacketMirroring
29600	raw := NoMethod(*s)
29601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29602}
29603
29604// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
29605type PacketMirroringAggregatedList struct {
29606	// Id: [Output Only] Unique identifier for the resource; defined by the
29607	// server.
29608	Id string `json:"id,omitempty"`
29609
29610	// Items: A list of PacketMirroring resources.
29611	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
29612
29613	// Kind: Type of resource.
29614	Kind string `json:"kind,omitempty"`
29615
29616	// NextPageToken: [Output Only] This token allows you to get the next
29617	// page of results for list requests. If the number of results is larger
29618	// than maxResults, use the nextPageToken as a value for the query
29619	// parameter pageToken in the next list request. Subsequent list
29620	// requests will have their own nextPageToken to continue paging through
29621	// the results.
29622	NextPageToken string `json:"nextPageToken,omitempty"`
29623
29624	// SelfLink: [Output Only] Server-defined URL for this resource.
29625	SelfLink string `json:"selfLink,omitempty"`
29626
29627	// Unreachables: [Output Only] Unreachable resources.
29628	Unreachables []string `json:"unreachables,omitempty"`
29629
29630	// Warning: [Output Only] Informational warning message.
29631	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
29632
29633	// ServerResponse contains the HTTP response code and headers from the
29634	// server.
29635	googleapi.ServerResponse `json:"-"`
29636
29637	// ForceSendFields is a list of field names (e.g. "Id") to
29638	// unconditionally include in API requests. By default, fields with
29639	// empty values are omitted from API requests. However, any non-pointer,
29640	// non-interface field appearing in ForceSendFields will be sent to the
29641	// server regardless of whether the field is empty or not. This may be
29642	// used to include empty fields in Patch requests.
29643	ForceSendFields []string `json:"-"`
29644
29645	// NullFields is a list of field names (e.g. "Id") to include in API
29646	// requests with the JSON null value. By default, fields with empty
29647	// values are omitted from API requests. However, any field with an
29648	// empty value appearing in NullFields will be sent to the server as
29649	// null. It is an error if a field in this list has a non-empty value.
29650	// This may be used to include null fields in Patch requests.
29651	NullFields []string `json:"-"`
29652}
29653
29654func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
29655	type NoMethod PacketMirroringAggregatedList
29656	raw := NoMethod(*s)
29657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29658}
29659
29660// PacketMirroringAggregatedListWarning: [Output Only] Informational
29661// warning message.
29662type PacketMirroringAggregatedListWarning struct {
29663	// Code: [Output Only] A warning code, if applicable. For example,
29664	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29665	// the response.
29666	//
29667	// Possible values:
29668	//   "CLEANUP_FAILED"
29669	//   "DEPRECATED_RESOURCE_USED"
29670	//   "DEPRECATED_TYPE_USED"
29671	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29672	//   "EXPERIMENTAL_TYPE_USED"
29673	//   "EXTERNAL_API_WARNING"
29674	//   "FIELD_VALUE_OVERRIDEN"
29675	//   "INJECTED_KERNELS_DEPRECATED"
29676	//   "LARGE_DEPLOYMENT_WARNING"
29677	//   "MISSING_TYPE_DEPENDENCY"
29678	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29679	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29680	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29681	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29682	//   "NEXT_HOP_NOT_RUNNING"
29683	//   "NOT_CRITICAL_ERROR"
29684	//   "NO_RESULTS_ON_PAGE"
29685	//   "PARTIAL_SUCCESS"
29686	//   "REQUIRED_TOS_AGREEMENT"
29687	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29688	//   "RESOURCE_NOT_DELETED"
29689	//   "SCHEMA_VALIDATION_IGNORED"
29690	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29691	//   "UNDECLARED_PROPERTIES"
29692	//   "UNREACHABLE"
29693	Code string `json:"code,omitempty"`
29694
29695	// Data: [Output Only] Metadata about this warning in key: value format.
29696	// For example:
29697	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29698	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
29699
29700	// Message: [Output Only] A human-readable description of the warning
29701	// code.
29702	Message string `json:"message,omitempty"`
29703
29704	// ForceSendFields is a list of field names (e.g. "Code") to
29705	// unconditionally include in API requests. By default, fields with
29706	// empty values are omitted from API requests. However, any non-pointer,
29707	// non-interface field appearing in ForceSendFields will be sent to the
29708	// server regardless of whether the field is empty or not. This may be
29709	// used to include empty fields in Patch requests.
29710	ForceSendFields []string `json:"-"`
29711
29712	// NullFields is a list of field names (e.g. "Code") to include in API
29713	// requests with the JSON null value. By default, fields with empty
29714	// values are omitted from API requests. However, any field with an
29715	// empty value appearing in NullFields will be sent to the server as
29716	// null. It is an error if a field in this list has a non-empty value.
29717	// This may be used to include null fields in Patch requests.
29718	NullFields []string `json:"-"`
29719}
29720
29721func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
29722	type NoMethod PacketMirroringAggregatedListWarning
29723	raw := NoMethod(*s)
29724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29725}
29726
29727type PacketMirroringAggregatedListWarningData struct {
29728	// Key: [Output Only] A key that provides more detail on the warning
29729	// being returned. For example, for warnings where there are no results
29730	// in a list request for a particular zone, this key might be scope and
29731	// the key value might be the zone name. Other examples might be a key
29732	// indicating a deprecated resource and a suggested replacement, or a
29733	// warning about invalid network settings (for example, if an instance
29734	// attempts to perform IP forwarding but is not enabled for IP
29735	// forwarding).
29736	Key string `json:"key,omitempty"`
29737
29738	// Value: [Output Only] A warning data value corresponding to the key.
29739	Value string `json:"value,omitempty"`
29740
29741	// ForceSendFields is a list of field names (e.g. "Key") to
29742	// unconditionally include in API requests. By default, fields with
29743	// empty values are omitted from API requests. However, any non-pointer,
29744	// non-interface field appearing in ForceSendFields will be sent to the
29745	// server regardless of whether the field is empty or not. This may be
29746	// used to include empty fields in Patch requests.
29747	ForceSendFields []string `json:"-"`
29748
29749	// NullFields is a list of field names (e.g. "Key") to include in API
29750	// requests with the JSON null value. By default, fields with empty
29751	// values are omitted from API requests. However, any field with an
29752	// empty value appearing in NullFields will be sent to the server as
29753	// null. It is an error if a field in this list has a non-empty value.
29754	// This may be used to include null fields in Patch requests.
29755	NullFields []string `json:"-"`
29756}
29757
29758func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29759	type NoMethod PacketMirroringAggregatedListWarningData
29760	raw := NoMethod(*s)
29761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29762}
29763
29764type PacketMirroringFilter struct {
29765	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
29766	// no protocols are specified, all traffic that matches the specified
29767	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
29768	// specified, all traffic is mirrored.
29769	IPProtocols []string `json:"IPProtocols,omitempty"`
29770
29771	// CidrRanges: IP CIDR ranges that apply as filter on the source
29772	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
29773	// supported. If no ranges are specified, all traffic that matches the
29774	// specified IPProtocols is mirrored. If neither cidrRanges nor
29775	// IPProtocols is specified, all traffic is mirrored.
29776	CidrRanges []string `json:"cidrRanges,omitempty"`
29777
29778	// Direction: Direction of traffic to mirror, either INGRESS, EGRESS, or
29779	// BOTH. The default is BOTH.
29780	//
29781	// Possible values:
29782	//   "BOTH"
29783	//   "EGRESS"
29784	//   "INGRESS"
29785	Direction string `json:"direction,omitempty"`
29786
29787	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
29788	// unconditionally include in API requests. By default, fields with
29789	// empty values are omitted from API requests. However, any non-pointer,
29790	// non-interface field appearing in ForceSendFields will be sent to the
29791	// server regardless of whether the field is empty or not. This may be
29792	// used to include empty fields in Patch requests.
29793	ForceSendFields []string `json:"-"`
29794
29795	// NullFields is a list of field names (e.g. "IPProtocols") to include
29796	// in API requests with the JSON null value. By default, fields with
29797	// empty values are omitted from API requests. However, any field with
29798	// an empty value appearing in NullFields will be sent to the server as
29799	// null. It is an error if a field in this list has a non-empty value.
29800	// This may be used to include null fields in Patch requests.
29801	NullFields []string `json:"-"`
29802}
29803
29804func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
29805	type NoMethod PacketMirroringFilter
29806	raw := NoMethod(*s)
29807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29808}
29809
29810type PacketMirroringForwardingRuleInfo struct {
29811	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
29812	// rule; defined by the server.
29813	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29814
29815	// Url: Resource URL to the forwarding rule representing the ILB
29816	// configured as destination of the mirrored traffic.
29817	Url string `json:"url,omitempty"`
29818
29819	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29820	// unconditionally include in API requests. By default, fields with
29821	// empty values are omitted from API requests. However, any non-pointer,
29822	// non-interface field appearing in ForceSendFields will be sent to the
29823	// server regardless of whether the field is empty or not. This may be
29824	// used to include empty fields in Patch requests.
29825	ForceSendFields []string `json:"-"`
29826
29827	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29828	// in API requests with the JSON null value. By default, fields with
29829	// empty values are omitted from API requests. However, any field with
29830	// an empty value appearing in NullFields will be sent to the server as
29831	// null. It is an error if a field in this list has a non-empty value.
29832	// This may be used to include null fields in Patch requests.
29833	NullFields []string `json:"-"`
29834}
29835
29836func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
29837	type NoMethod PacketMirroringForwardingRuleInfo
29838	raw := NoMethod(*s)
29839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29840}
29841
29842// PacketMirroringList: Contains a list of PacketMirroring resources.
29843type PacketMirroringList struct {
29844	// Id: [Output Only] Unique identifier for the resource; defined by the
29845	// server.
29846	Id string `json:"id,omitempty"`
29847
29848	// Items: A list of PacketMirroring resources.
29849	Items []*PacketMirroring `json:"items,omitempty"`
29850
29851	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
29852	// for packetMirrorings.
29853	Kind string `json:"kind,omitempty"`
29854
29855	// NextPageToken: [Output Only] This token allows you to get the next
29856	// page of results for list requests. If the number of results is larger
29857	// than maxResults, use the nextPageToken as a value for the query
29858	// parameter pageToken in the next list request. Subsequent list
29859	// requests will have their own nextPageToken to continue paging through
29860	// the results.
29861	NextPageToken string `json:"nextPageToken,omitempty"`
29862
29863	// SelfLink: [Output Only] Server-defined URL for this resource.
29864	SelfLink string `json:"selfLink,omitempty"`
29865
29866	// Warning: [Output Only] Informational warning message.
29867	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
29868
29869	// ServerResponse contains the HTTP response code and headers from the
29870	// server.
29871	googleapi.ServerResponse `json:"-"`
29872
29873	// ForceSendFields is a list of field names (e.g. "Id") to
29874	// unconditionally include in API requests. By default, fields with
29875	// empty values are omitted from API requests. However, any non-pointer,
29876	// non-interface field appearing in ForceSendFields will be sent to the
29877	// server regardless of whether the field is empty or not. This may be
29878	// used to include empty fields in Patch requests.
29879	ForceSendFields []string `json:"-"`
29880
29881	// NullFields is a list of field names (e.g. "Id") to include in API
29882	// requests with the JSON null value. By default, fields with empty
29883	// values are omitted from API requests. However, any field with an
29884	// empty value appearing in NullFields will be sent to the server as
29885	// null. It is an error if a field in this list has a non-empty value.
29886	// This may be used to include null fields in Patch requests.
29887	NullFields []string `json:"-"`
29888}
29889
29890func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
29891	type NoMethod PacketMirroringList
29892	raw := NoMethod(*s)
29893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29894}
29895
29896// PacketMirroringListWarning: [Output Only] Informational warning
29897// message.
29898type PacketMirroringListWarning struct {
29899	// Code: [Output Only] A warning code, if applicable. For example,
29900	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29901	// the response.
29902	//
29903	// Possible values:
29904	//   "CLEANUP_FAILED"
29905	//   "DEPRECATED_RESOURCE_USED"
29906	//   "DEPRECATED_TYPE_USED"
29907	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29908	//   "EXPERIMENTAL_TYPE_USED"
29909	//   "EXTERNAL_API_WARNING"
29910	//   "FIELD_VALUE_OVERRIDEN"
29911	//   "INJECTED_KERNELS_DEPRECATED"
29912	//   "LARGE_DEPLOYMENT_WARNING"
29913	//   "MISSING_TYPE_DEPENDENCY"
29914	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29915	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29916	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29917	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29918	//   "NEXT_HOP_NOT_RUNNING"
29919	//   "NOT_CRITICAL_ERROR"
29920	//   "NO_RESULTS_ON_PAGE"
29921	//   "PARTIAL_SUCCESS"
29922	//   "REQUIRED_TOS_AGREEMENT"
29923	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29924	//   "RESOURCE_NOT_DELETED"
29925	//   "SCHEMA_VALIDATION_IGNORED"
29926	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29927	//   "UNDECLARED_PROPERTIES"
29928	//   "UNREACHABLE"
29929	Code string `json:"code,omitempty"`
29930
29931	// Data: [Output Only] Metadata about this warning in key: value format.
29932	// For example:
29933	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29934	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
29935
29936	// Message: [Output Only] A human-readable description of the warning
29937	// code.
29938	Message string `json:"message,omitempty"`
29939
29940	// ForceSendFields is a list of field names (e.g. "Code") to
29941	// unconditionally include in API requests. By default, fields with
29942	// empty values are omitted from API requests. However, any non-pointer,
29943	// non-interface field appearing in ForceSendFields will be sent to the
29944	// server regardless of whether the field is empty or not. This may be
29945	// used to include empty fields in Patch requests.
29946	ForceSendFields []string `json:"-"`
29947
29948	// NullFields is a list of field names (e.g. "Code") to include in API
29949	// requests with the JSON null value. By default, fields with empty
29950	// values are omitted from API requests. However, any field with an
29951	// empty value appearing in NullFields will be sent to the server as
29952	// null. It is an error if a field in this list has a non-empty value.
29953	// This may be used to include null fields in Patch requests.
29954	NullFields []string `json:"-"`
29955}
29956
29957func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
29958	type NoMethod PacketMirroringListWarning
29959	raw := NoMethod(*s)
29960	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29961}
29962
29963type PacketMirroringListWarningData struct {
29964	// Key: [Output Only] A key that provides more detail on the warning
29965	// being returned. For example, for warnings where there are no results
29966	// in a list request for a particular zone, this key might be scope and
29967	// the key value might be the zone name. Other examples might be a key
29968	// indicating a deprecated resource and a suggested replacement, or a
29969	// warning about invalid network settings (for example, if an instance
29970	// attempts to perform IP forwarding but is not enabled for IP
29971	// forwarding).
29972	Key string `json:"key,omitempty"`
29973
29974	// Value: [Output Only] A warning data value corresponding to the key.
29975	Value string `json:"value,omitempty"`
29976
29977	// ForceSendFields is a list of field names (e.g. "Key") to
29978	// unconditionally include in API requests. By default, fields with
29979	// empty values are omitted from API requests. However, any non-pointer,
29980	// non-interface field appearing in ForceSendFields will be sent to the
29981	// server regardless of whether the field is empty or not. This may be
29982	// used to include empty fields in Patch requests.
29983	ForceSendFields []string `json:"-"`
29984
29985	// NullFields is a list of field names (e.g. "Key") to include in API
29986	// requests with the JSON null value. By default, fields with empty
29987	// values are omitted from API requests. However, any field with an
29988	// empty value appearing in NullFields will be sent to the server as
29989	// null. It is an error if a field in this list has a non-empty value.
29990	// This may be used to include null fields in Patch requests.
29991	NullFields []string `json:"-"`
29992}
29993
29994func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
29995	type NoMethod PacketMirroringListWarningData
29996	raw := NoMethod(*s)
29997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29998}
29999
30000type PacketMirroringMirroredResourceInfo struct {
30001	// Instances: A set of virtual machine instances that are being
30002	// mirrored. They must live in zones contained in the same region as
30003	// this packetMirroring.
30004	//
30005	// Note that this config will apply only to those network interfaces of
30006	// the Instances that belong to the network specified in this
30007	// packetMirroring.
30008	//
30009	// You may specify a maximum of 50 Instances.
30010	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
30011
30012	// Subnetworks: A set of subnetworks for which traffic from/to all VM
30013	// instances will be mirrored. They must live in the same region as this
30014	// packetMirroring.
30015	//
30016	// You may specify a maximum of 5 subnetworks.
30017	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
30018
30019	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
30020	// have one or more of these tags will be mirrored.
30021	Tags []string `json:"tags,omitempty"`
30022
30023	// ForceSendFields is a list of field names (e.g. "Instances") to
30024	// unconditionally include in API requests. By default, fields with
30025	// empty values are omitted from API requests. However, any non-pointer,
30026	// non-interface field appearing in ForceSendFields will be sent to the
30027	// server regardless of whether the field is empty or not. This may be
30028	// used to include empty fields in Patch requests.
30029	ForceSendFields []string `json:"-"`
30030
30031	// NullFields is a list of field names (e.g. "Instances") to include in
30032	// API requests with the JSON null value. By default, fields with empty
30033	// values are omitted from API requests. However, any field with an
30034	// empty value appearing in NullFields will be sent to the server as
30035	// null. It is an error if a field in this list has a non-empty value.
30036	// This may be used to include null fields in Patch requests.
30037	NullFields []string `json:"-"`
30038}
30039
30040func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
30041	type NoMethod PacketMirroringMirroredResourceInfo
30042	raw := NoMethod(*s)
30043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30044}
30045
30046type PacketMirroringMirroredResourceInfoInstanceInfo struct {
30047	// CanonicalUrl: [Output Only] Unique identifier for the instance;
30048	// defined by the server.
30049	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30050
30051	// Url: Resource URL to the virtual machine instance which is being
30052	// mirrored.
30053	Url string `json:"url,omitempty"`
30054
30055	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30056	// unconditionally include in API requests. By default, fields with
30057	// empty values are omitted from API requests. However, any non-pointer,
30058	// non-interface field appearing in ForceSendFields will be sent to the
30059	// server regardless of whether the field is empty or not. This may be
30060	// used to include empty fields in Patch requests.
30061	ForceSendFields []string `json:"-"`
30062
30063	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30064	// in API requests with the JSON null value. By default, fields with
30065	// empty values are omitted from API requests. However, any field with
30066	// an empty value appearing in NullFields will be sent to the server as
30067	// null. It is an error if a field in this list has a non-empty value.
30068	// This may be used to include null fields in Patch requests.
30069	NullFields []string `json:"-"`
30070}
30071
30072func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
30073	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
30074	raw := NoMethod(*s)
30075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30076}
30077
30078type PacketMirroringMirroredResourceInfoSubnetInfo struct {
30079	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
30080	// defined by the server.
30081	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30082
30083	// Url: Resource URL to the subnetwork for which traffic from/to all VM
30084	// instances will be mirrored.
30085	Url string `json:"url,omitempty"`
30086
30087	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30088	// unconditionally include in API requests. By default, fields with
30089	// empty values are omitted from API requests. However, any non-pointer,
30090	// non-interface field appearing in ForceSendFields will be sent to the
30091	// server regardless of whether the field is empty or not. This may be
30092	// used to include empty fields in Patch requests.
30093	ForceSendFields []string `json:"-"`
30094
30095	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30096	// in API requests with the JSON null value. By default, fields with
30097	// empty values are omitted from API requests. However, any field with
30098	// an empty value appearing in NullFields will be sent to the server as
30099	// null. It is an error if a field in this list has a non-empty value.
30100	// This may be used to include null fields in Patch requests.
30101	NullFields []string `json:"-"`
30102}
30103
30104func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
30105	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
30106	raw := NoMethod(*s)
30107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30108}
30109
30110type PacketMirroringNetworkInfo struct {
30111	// CanonicalUrl: [Output Only] Unique identifier for the network;
30112	// defined by the server.
30113	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30114
30115	// Url: URL of the network resource.
30116	Url string `json:"url,omitempty"`
30117
30118	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30119	// unconditionally include in API requests. By default, fields with
30120	// empty values are omitted from API requests. However, any non-pointer,
30121	// non-interface field appearing in ForceSendFields will be sent to the
30122	// server regardless of whether the field is empty or not. This may be
30123	// used to include empty fields in Patch requests.
30124	ForceSendFields []string `json:"-"`
30125
30126	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30127	// in API requests with the JSON null value. By default, fields with
30128	// empty values are omitted from API requests. However, any field with
30129	// an empty value appearing in NullFields will be sent to the server as
30130	// null. It is an error if a field in this list has a non-empty value.
30131	// This may be used to include null fields in Patch requests.
30132	NullFields []string `json:"-"`
30133}
30134
30135func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
30136	type NoMethod PacketMirroringNetworkInfo
30137	raw := NoMethod(*s)
30138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30139}
30140
30141type PacketMirroringsScopedList struct {
30142	// PacketMirrorings: A list of packetMirrorings contained in this scope.
30143	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
30144
30145	// Warning: Informational warning which replaces the list of
30146	// packetMirrorings when the list is empty.
30147	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
30148
30149	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
30150	// unconditionally include in API requests. By default, fields with
30151	// empty values are omitted from API requests. However, any non-pointer,
30152	// non-interface field appearing in ForceSendFields will be sent to the
30153	// server regardless of whether the field is empty or not. This may be
30154	// used to include empty fields in Patch requests.
30155	ForceSendFields []string `json:"-"`
30156
30157	// NullFields is a list of field names (e.g. "PacketMirrorings") to
30158	// include in API requests with the JSON null value. By default, fields
30159	// with empty values are omitted from API requests. However, any field
30160	// with an empty value appearing in NullFields will be sent to the
30161	// server as null. It is an error if a field in this list has a
30162	// non-empty value. This may be used to include null fields in Patch
30163	// requests.
30164	NullFields []string `json:"-"`
30165}
30166
30167func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
30168	type NoMethod PacketMirroringsScopedList
30169	raw := NoMethod(*s)
30170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30171}
30172
30173// PacketMirroringsScopedListWarning: Informational warning which
30174// replaces the list of packetMirrorings when the list is empty.
30175type PacketMirroringsScopedListWarning struct {
30176	// Code: [Output Only] A warning code, if applicable. For example,
30177	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30178	// the response.
30179	//
30180	// Possible values:
30181	//   "CLEANUP_FAILED"
30182	//   "DEPRECATED_RESOURCE_USED"
30183	//   "DEPRECATED_TYPE_USED"
30184	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30185	//   "EXPERIMENTAL_TYPE_USED"
30186	//   "EXTERNAL_API_WARNING"
30187	//   "FIELD_VALUE_OVERRIDEN"
30188	//   "INJECTED_KERNELS_DEPRECATED"
30189	//   "LARGE_DEPLOYMENT_WARNING"
30190	//   "MISSING_TYPE_DEPENDENCY"
30191	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30192	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30193	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30194	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30195	//   "NEXT_HOP_NOT_RUNNING"
30196	//   "NOT_CRITICAL_ERROR"
30197	//   "NO_RESULTS_ON_PAGE"
30198	//   "PARTIAL_SUCCESS"
30199	//   "REQUIRED_TOS_AGREEMENT"
30200	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30201	//   "RESOURCE_NOT_DELETED"
30202	//   "SCHEMA_VALIDATION_IGNORED"
30203	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30204	//   "UNDECLARED_PROPERTIES"
30205	//   "UNREACHABLE"
30206	Code string `json:"code,omitempty"`
30207
30208	// Data: [Output Only] Metadata about this warning in key: value format.
30209	// For example:
30210	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30211	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
30212
30213	// Message: [Output Only] A human-readable description of the warning
30214	// code.
30215	Message string `json:"message,omitempty"`
30216
30217	// ForceSendFields is a list of field names (e.g. "Code") to
30218	// unconditionally include in API requests. By default, fields with
30219	// empty values are omitted from API requests. However, any non-pointer,
30220	// non-interface field appearing in ForceSendFields will be sent to the
30221	// server regardless of whether the field is empty or not. This may be
30222	// used to include empty fields in Patch requests.
30223	ForceSendFields []string `json:"-"`
30224
30225	// NullFields is a list of field names (e.g. "Code") to include in API
30226	// requests with the JSON null value. By default, fields with empty
30227	// values are omitted from API requests. However, any field with an
30228	// empty value appearing in NullFields will be sent to the server as
30229	// null. It is an error if a field in this list has a non-empty value.
30230	// This may be used to include null fields in Patch requests.
30231	NullFields []string `json:"-"`
30232}
30233
30234func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
30235	type NoMethod PacketMirroringsScopedListWarning
30236	raw := NoMethod(*s)
30237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30238}
30239
30240type PacketMirroringsScopedListWarningData struct {
30241	// Key: [Output Only] A key that provides more detail on the warning
30242	// being returned. For example, for warnings where there are no results
30243	// in a list request for a particular zone, this key might be scope and
30244	// the key value might be the zone name. Other examples might be a key
30245	// indicating a deprecated resource and a suggested replacement, or a
30246	// warning about invalid network settings (for example, if an instance
30247	// attempts to perform IP forwarding but is not enabled for IP
30248	// forwarding).
30249	Key string `json:"key,omitempty"`
30250
30251	// Value: [Output Only] A warning data value corresponding to the key.
30252	Value string `json:"value,omitempty"`
30253
30254	// ForceSendFields is a list of field names (e.g. "Key") to
30255	// unconditionally include in API requests. By default, fields with
30256	// empty values are omitted from API requests. However, any non-pointer,
30257	// non-interface field appearing in ForceSendFields will be sent to the
30258	// server regardless of whether the field is empty or not. This may be
30259	// used to include empty fields in Patch requests.
30260	ForceSendFields []string `json:"-"`
30261
30262	// NullFields is a list of field names (e.g. "Key") to include in API
30263	// requests with the JSON null value. By default, fields with empty
30264	// values are omitted from API requests. However, any field with an
30265	// empty value appearing in NullFields will be sent to the server as
30266	// null. It is an error if a field in this list has a non-empty value.
30267	// This may be used to include null fields in Patch requests.
30268	NullFields []string `json:"-"`
30269}
30270
30271func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
30272	type NoMethod PacketMirroringsScopedListWarningData
30273	raw := NoMethod(*s)
30274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30275}
30276
30277// PathMatcher: A matcher for the path portion of the URL. The
30278// BackendService from the longest-matched rule will serve the URL. If
30279// no rule was matched, the default service will be used.
30280type PathMatcher struct {
30281	// DefaultRouteAction: defaultRouteAction takes effect when none of the
30282	// pathRules or routeRules match. The load balancer performs advanced
30283	// routing actions like URL rewrites, header transformations, etc. prior
30284	// to forwarding the request to the selected backend. If
30285	// defaultRouteAction specifies any weightedBackendServices,
30286	// defaultService must not be set. Conversely if defaultService is set,
30287	// defaultRouteAction cannot contain any  weightedBackendServices.
30288	// Only one of defaultRouteAction or defaultUrlRedirect must be
30289	// set.
30290	// UrlMaps for external HTTP(S) load balancers support only the
30291	// urlRewrite action within a pathMatcher's defaultRouteAction.
30292	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
30293
30294	// DefaultService: The full or partial URL to the BackendService
30295	// resource. This will be used if none of the pathRules or routeRules
30296	// defined by this PathMatcher are matched. For example, the following
30297	// are all valid URLs to a BackendService resource:
30298	// -
30299	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
30300	//
30301	// - compute/v1/projects/project/global/backendServices/backendService
30302	//
30303	// - global/backendServices/backendService  If defaultRouteAction is
30304	// additionally specified, advanced routing actions like URL Rewrites,
30305	// etc. take effect prior to sending the request to the backend.
30306	// However, if defaultService is specified, defaultRouteAction cannot
30307	// contain any weightedBackendServices. Conversely, if
30308	// defaultRouteAction specifies any weightedBackendServices,
30309	// defaultService must not be specified.
30310	// Only one of defaultService, defaultUrlRedirect  or
30311	// defaultRouteAction.weightedBackendService must be set.
30312	// Authorization requires one or more of the following Google IAM
30313	// permissions on the specified resource default_service:
30314	// - compute.backendBuckets.use
30315	// - compute.backendServices.use
30316	DefaultService string `json:"defaultService,omitempty"`
30317
30318	// DefaultUrlRedirect: When none of the specified pathRules or
30319	// routeRules match, the request is redirected to a URL specified by
30320	// defaultUrlRedirect.
30321	// If defaultUrlRedirect is specified, defaultService or
30322	// defaultRouteAction must not be set.
30323	// Not supported when the URL map is bound to target gRPC proxy.
30324	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
30325
30326	// Description: An optional description of this resource. Provide this
30327	// property when you create the resource.
30328	Description string `json:"description,omitempty"`
30329
30330	// HeaderAction: Specifies changes to request and response headers that
30331	// need to take effect for the selected backendService.
30332	// HeaderAction specified here are applied after the matching
30333	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
30334	//
30335	// Note that headerAction is not supported for Loadbalancers that have
30336	// their loadBalancingScheme set to EXTERNAL.
30337	// Not supported when the URL map is bound to target gRPC proxy that has
30338	// validateForProxyless field set to true.
30339	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
30340
30341	// Name: The name to which this PathMatcher is referred by the HostRule.
30342	Name string `json:"name,omitempty"`
30343
30344	// PathRules: The list of path rules. Use this list instead of
30345	// routeRules when routing based on simple path matching is all that's
30346	// required. The order by which path rules are specified does not
30347	// matter. Matches are always done on the longest-path-first basis.
30348	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
30349	// irrespective of the order in which those paths appear in this
30350	// list.
30351	// Within a given pathMatcher, only one of pathRules or routeRules must
30352	// be set.
30353	PathRules []*PathRule `json:"pathRules,omitempty"`
30354
30355	// RouteRules: The list of HTTP route rules. Use this list instead of
30356	// pathRules when advanced route matching and routing actions are
30357	// desired. routeRules are evaluated in order of priority, from the
30358	// lowest to highest number.
30359	// Within a given pathMatcher, you can set only one of pathRules or
30360	// routeRules.
30361	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
30362
30363	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
30364	// to unconditionally include in API requests. By default, fields with
30365	// empty values are omitted from API requests. However, any non-pointer,
30366	// non-interface field appearing in ForceSendFields will be sent to the
30367	// server regardless of whether the field is empty or not. This may be
30368	// used to include empty fields in Patch requests.
30369	ForceSendFields []string `json:"-"`
30370
30371	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
30372	// include in API requests with the JSON null value. By default, fields
30373	// with empty values are omitted from API requests. However, any field
30374	// with an empty value appearing in NullFields will be sent to the
30375	// server as null. It is an error if a field in this list has a
30376	// non-empty value. This may be used to include null fields in Patch
30377	// requests.
30378	NullFields []string `json:"-"`
30379}
30380
30381func (s *PathMatcher) MarshalJSON() ([]byte, error) {
30382	type NoMethod PathMatcher
30383	raw := NoMethod(*s)
30384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30385}
30386
30387// PathRule: A path-matching rule for a URL. If matched, will use the
30388// specified BackendService to handle the traffic arriving at this URL.
30389type PathRule struct {
30390	// Paths: The list of path patterns to match. Each must start with / and
30391	// the only place a * is allowed is at the end following a /. The string
30392	// fed to the path matcher does not include any text after the first ?
30393	// or #, and those chars are not allowed here.
30394	Paths []string `json:"paths,omitempty"`
30395
30396	// RouteAction: In response to a matching path, the load balancer
30397	// performs advanced routing actions like URL rewrites, header
30398	// transformations, etc. prior to forwarding the request to the selected
30399	// backend. If routeAction specifies any  weightedBackendServices,
30400	// service must not be set. Conversely if service is set, routeAction
30401	// cannot contain any  weightedBackendServices.
30402	// Only one of routeAction or urlRedirect must be set.
30403	// UrlMaps for external HTTP(S) load balancers support only the
30404	// urlRewrite action within a pathRule's routeAction.
30405	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
30406
30407	// Service: The full or partial URL of the backend service resource to
30408	// which traffic is directed if this rule is matched. If routeAction is
30409	// additionally specified, advanced routing actions like URL Rewrites,
30410	// etc. take effect prior to sending the request to the backend.
30411	// However, if service is specified, routeAction cannot contain any
30412	// weightedBackendService s. Conversely, if routeAction specifies any
30413	// weightedBackendServices, service must not be specified.
30414	// Only one of urlRedirect, service or
30415	// routeAction.weightedBackendService must be set.
30416	Service string `json:"service,omitempty"`
30417
30418	// UrlRedirect: When a path pattern is matched, the request is
30419	// redirected to a URL specified by urlRedirect.
30420	// If urlRedirect is specified, service or routeAction must not be
30421	// set.
30422	// Not supported when the URL map is bound to target gRPC proxy.
30423	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
30424
30425	// ForceSendFields is a list of field names (e.g. "Paths") to
30426	// unconditionally include in API requests. By default, fields with
30427	// empty values are omitted from API requests. However, any non-pointer,
30428	// non-interface field appearing in ForceSendFields will be sent to the
30429	// server regardless of whether the field is empty or not. This may be
30430	// used to include empty fields in Patch requests.
30431	ForceSendFields []string `json:"-"`
30432
30433	// NullFields is a list of field names (e.g. "Paths") to include in API
30434	// requests with the JSON null value. By default, fields with empty
30435	// values are omitted from API requests. However, any field with an
30436	// empty value appearing in NullFields will be sent to the server as
30437	// null. It is an error if a field in this list has a non-empty value.
30438	// This may be used to include null fields in Patch requests.
30439	NullFields []string `json:"-"`
30440}
30441
30442func (s *PathRule) MarshalJSON() ([]byte, error) {
30443	type NoMethod PathRule
30444	raw := NoMethod(*s)
30445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30446}
30447
30448type PerInstanceConfig struct {
30449	// Fingerprint: Fingerprint of this per-instance config. This field can
30450	// be used in optimistic locking. It is ignored when inserting a
30451	// per-instance config. An up-to-date fingerprint must be provided in
30452	// order to update an existing per-instance config or the field needs to
30453	// be unset.
30454	Fingerprint string `json:"fingerprint,omitempty"`
30455
30456	// Name: The name of a per-instance config and its corresponding
30457	// instance. Serves as a merge key during UpdatePerInstanceConfigs
30458	// operations, that is, if a per-instance config with the same name
30459	// exists then it will be updated, otherwise a new one will be created
30460	// for the VM instance with the same name. An attempt to create a
30461	// per-instance config for a VM instance that either doesn't exist or is
30462	// not part of the group will result in an error.
30463	Name string `json:"name,omitempty"`
30464
30465	// PreservedState: The intended preserved state for the given instance.
30466	// Does not contain preserved state generated from a stateful policy.
30467	PreservedState *PreservedState `json:"preservedState,omitempty"`
30468
30469	// Status: The status of applying this per-instance config on the
30470	// corresponding managed instance.
30471	//
30472	// Possible values:
30473	//   "APPLYING"
30474	//   "DELETING"
30475	//   "EFFECTIVE"
30476	//   "NONE"
30477	//   "UNAPPLIED"
30478	//   "UNAPPLIED_DELETION"
30479	Status string `json:"status,omitempty"`
30480
30481	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
30482	// unconditionally include in API requests. By default, fields with
30483	// empty values are omitted from API requests. However, any non-pointer,
30484	// non-interface field appearing in ForceSendFields will be sent to the
30485	// server regardless of whether the field is empty or not. This may be
30486	// used to include empty fields in Patch requests.
30487	ForceSendFields []string `json:"-"`
30488
30489	// NullFields is a list of field names (e.g. "Fingerprint") to include
30490	// in API requests with the JSON null value. By default, fields with
30491	// empty values are omitted from API requests. However, any field with
30492	// an empty value appearing in NullFields will be sent to the server as
30493	// null. It is an error if a field in this list has a non-empty value.
30494	// This may be used to include null fields in Patch requests.
30495	NullFields []string `json:"-"`
30496}
30497
30498func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
30499	type NoMethod PerInstanceConfig
30500	raw := NoMethod(*s)
30501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30502}
30503
30504// Policy: An Identity and Access Management (IAM) policy, which
30505// specifies access controls for Google Cloud resources.
30506//
30507//
30508//
30509// A `Policy` is a collection of `bindings`. A `binding` binds one or
30510// more `members` to a single `role`. Members can be user accounts,
30511// service accounts, Google groups, and domains (such as G Suite). A
30512// `role` is a named list of permissions; each `role` can be an IAM
30513// predefined role or a user-created custom role.
30514//
30515// For some types of Google Cloud resources, a `binding` can also
30516// specify a `condition`, which is a logical expression that allows
30517// access to a resource only if the expression evaluates to `true`. A
30518// condition can add constraints based on attributes of the request, the
30519// resource, or both. To learn which resources support conditions in
30520// their IAM policies, see the IAM documentation
30521// (https://cloud.google.com/iam/help/conditions/resource-policies).
30522//
30523// **JSON example:**
30524//
30525// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
30526// "members": [ "user:mike@example.com", "group:admins@example.com",
30527// "domain:google.com",
30528// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
30529// "role": "roles/resourcemanager.organizationViewer", "members": [
30530// "user:eve@example.com" ], "condition": { "title": "expirable access",
30531// "description": "Does not grant access after Sep 2020", "expression":
30532// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
30533// "etag": "BwWWja0YfJA=", "version": 3 }
30534//
30535// **YAML example:**
30536//
30537// bindings: - members: - user:mike@example.com -
30538// group:admins@example.com - domain:google.com -
30539// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
30540// roles/resourcemanager.organizationAdmin - members: -
30541// user:eve@example.com role: roles/resourcemanager.organizationViewer
30542// condition: title: expirable access description: Does not grant access
30543// after Sep 2020 expression: request.time <
30544// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
30545// 3
30546//
30547// For a description of IAM and its features, see the IAM documentation
30548// (https://cloud.google.com/iam/docs/).
30549type Policy struct {
30550	// AuditConfigs: Specifies cloud audit logging configuration for this
30551	// policy.
30552	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
30553
30554	// Bindings: Associates a list of `members` to a `role`. Optionally, may
30555	// specify a `condition` that determines how and when the `bindings` are
30556	// applied. Each of the `bindings` must contain at least one member.
30557	Bindings []*Binding `json:"bindings,omitempty"`
30558
30559	// Etag: `etag` is used for optimistic concurrency control as a way to
30560	// help prevent simultaneous updates of a policy from overwriting each
30561	// other. It is strongly suggested that systems make use of the `etag`
30562	// in the read-modify-write cycle to perform policy updates in order to
30563	// avoid race conditions: An `etag` is returned in the response to
30564	// `getIamPolicy`, and systems are expected to put that etag in the
30565	// request to `setIamPolicy` to ensure that their change will be applied
30566	// to the same version of the policy.
30567	//
30568	// **Important:** If you use IAM Conditions, you must include the `etag`
30569	// field whenever you call `setIamPolicy`. If you omit this field, then
30570	// IAM allows you to overwrite a version `3` policy with a version `1`
30571	// policy, and all of the conditions in the version `3` policy are lost.
30572	Etag string `json:"etag,omitempty"`
30573
30574	IamOwned bool `json:"iamOwned,omitempty"`
30575
30576	// Rules: If more than one rule is specified, the rules are applied in
30577	// the following manner: - All matching LOG rules are always applied. -
30578	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
30579	// will be applied if one or more matching rule requires logging. -
30580	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
30581	// granted. Logging will be applied if one or more matching rule
30582	// requires logging. - Otherwise, if no rule applies, permission is
30583	// denied.
30584	Rules []*Rule `json:"rules,omitempty"`
30585
30586	// Version: Specifies the format of the policy.
30587	//
30588	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
30589	// value are rejected.
30590	//
30591	// Any operation that affects conditional role bindings must specify
30592	// version `3`. This requirement applies to the following operations:
30593	//
30594	// * Getting a policy that includes a conditional role binding * Adding
30595	// a conditional role binding to a policy * Changing a conditional role
30596	// binding in a policy * Removing any role binding, with or without a
30597	// condition, from a policy that includes conditions
30598	//
30599	// **Important:** If you use IAM Conditions, you must include the `etag`
30600	// field whenever you call `setIamPolicy`. If you omit this field, then
30601	// IAM allows you to overwrite a version `3` policy with a version `1`
30602	// policy, and all of the conditions in the version `3` policy are
30603	// lost.
30604	//
30605	// If a policy does not include any conditions, operations on that
30606	// policy may specify any valid version or leave the field unset.
30607	//
30608	// To learn which resources support conditions in their IAM policies,
30609	// see the IAM documentation
30610	// (https://cloud.google.com/iam/help/conditions/resource-policies).
30611	Version int64 `json:"version,omitempty"`
30612
30613	// ServerResponse contains the HTTP response code and headers from the
30614	// server.
30615	googleapi.ServerResponse `json:"-"`
30616
30617	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
30618	// unconditionally include in API requests. By default, fields with
30619	// empty values are omitted from API requests. However, any non-pointer,
30620	// non-interface field appearing in ForceSendFields will be sent to the
30621	// server regardless of whether the field is empty or not. This may be
30622	// used to include empty fields in Patch requests.
30623	ForceSendFields []string `json:"-"`
30624
30625	// NullFields is a list of field names (e.g. "AuditConfigs") to include
30626	// in API requests with the JSON null value. By default, fields with
30627	// empty values are omitted from API requests. However, any field with
30628	// an empty value appearing in NullFields will be sent to the server as
30629	// null. It is an error if a field in this list has a non-empty value.
30630	// This may be used to include null fields in Patch requests.
30631	NullFields []string `json:"-"`
30632}
30633
30634func (s *Policy) MarshalJSON() ([]byte, error) {
30635	type NoMethod Policy
30636	raw := NoMethod(*s)
30637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30638}
30639
30640type PreconfiguredWafSet struct {
30641	// ExpressionSets: List of entities that are currently supported for WAF
30642	// rules.
30643	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
30644
30645	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
30646	// unconditionally include in API requests. By default, fields with
30647	// empty values are omitted from API requests. However, any non-pointer,
30648	// non-interface field appearing in ForceSendFields will be sent to the
30649	// server regardless of whether the field is empty or not. This may be
30650	// used to include empty fields in Patch requests.
30651	ForceSendFields []string `json:"-"`
30652
30653	// NullFields is a list of field names (e.g. "ExpressionSets") to
30654	// include in API requests with the JSON null value. By default, fields
30655	// with empty values are omitted from API requests. However, any field
30656	// with an empty value appearing in NullFields will be sent to the
30657	// server as null. It is an error if a field in this list has a
30658	// non-empty value. This may be used to include null fields in Patch
30659	// requests.
30660	NullFields []string `json:"-"`
30661}
30662
30663func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
30664	type NoMethod PreconfiguredWafSet
30665	raw := NoMethod(*s)
30666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30667}
30668
30669// PreservedState: Preserved state for a given instance.
30670type PreservedState struct {
30671	// Disks: Preserved disks defined for this instance. This map is keyed
30672	// with the device names of the disks.
30673	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
30674
30675	// Metadata: Preserved metadata defined for this instance.
30676	Metadata map[string]string `json:"metadata,omitempty"`
30677
30678	// ForceSendFields is a list of field names (e.g. "Disks") to
30679	// unconditionally include in API requests. By default, fields with
30680	// empty values are omitted from API requests. However, any non-pointer,
30681	// non-interface field appearing in ForceSendFields will be sent to the
30682	// server regardless of whether the field is empty or not. This may be
30683	// used to include empty fields in Patch requests.
30684	ForceSendFields []string `json:"-"`
30685
30686	// NullFields is a list of field names (e.g. "Disks") to include in API
30687	// requests with the JSON null value. By default, fields with empty
30688	// values are omitted from API requests. However, any field with an
30689	// empty value appearing in NullFields will be sent to the server as
30690	// null. It is an error if a field in this list has a non-empty value.
30691	// This may be used to include null fields in Patch requests.
30692	NullFields []string `json:"-"`
30693}
30694
30695func (s *PreservedState) MarshalJSON() ([]byte, error) {
30696	type NoMethod PreservedState
30697	raw := NoMethod(*s)
30698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30699}
30700
30701type PreservedStatePreservedDisk struct {
30702	// AutoDelete: These stateful disks will never be deleted during
30703	// autohealing, update, instance recreate operations. This flag is used
30704	// to configure if the disk should be deleted after it is no longer used
30705	// by the group, e.g. when the given instance or the whole MIG is
30706	// deleted. Note: disks attached in READ_ONLY mode cannot be
30707	// auto-deleted.
30708	//
30709	// Possible values:
30710	//   "NEVER"
30711	//   "ON_PERMANENT_INSTANCE_DELETION"
30712	AutoDelete string `json:"autoDelete,omitempty"`
30713
30714	// Mode: The mode in which to attach this disk, either READ_WRITE or
30715	// READ_ONLY. If not specified, the default is to attach the disk in
30716	// READ_WRITE mode.
30717	//
30718	// Possible values:
30719	//   "READ_ONLY"
30720	//   "READ_WRITE"
30721	Mode string `json:"mode,omitempty"`
30722
30723	// Source: The URL of the disk resource that is stateful and should be
30724	// attached to the VM instance.
30725	Source string `json:"source,omitempty"`
30726
30727	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
30728	// unconditionally include in API requests. By default, fields with
30729	// empty values are omitted from API requests. However, any non-pointer,
30730	// non-interface field appearing in ForceSendFields will be sent to the
30731	// server regardless of whether the field is empty or not. This may be
30732	// used to include empty fields in Patch requests.
30733	ForceSendFields []string `json:"-"`
30734
30735	// NullFields is a list of field names (e.g. "AutoDelete") to include in
30736	// API requests with the JSON null value. By default, fields with empty
30737	// values are omitted from API requests. However, any field with an
30738	// empty value appearing in NullFields will be sent to the server as
30739	// null. It is an error if a field in this list has a non-empty value.
30740	// This may be used to include null fields in Patch requests.
30741	NullFields []string `json:"-"`
30742}
30743
30744func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
30745	type NoMethod PreservedStatePreservedDisk
30746	raw := NoMethod(*s)
30747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30748}
30749
30750// Project: Represents a Project resource.
30751//
30752// A project is used to organize resources in a Google Cloud Platform
30753// environment. For more information, read about the  Resource
30754// Hierarchy. (== resource_for {$api_version}.projects ==)
30755type Project struct {
30756	// CommonInstanceMetadata: Metadata key/value pairs available to all
30757	// instances contained in this project. See Custom metadata for more
30758	// information.
30759	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
30760
30761	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30762	// format.
30763	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30764
30765	// DefaultNetworkTier: This signifies the default network tier used for
30766	// configuring resources of the project and can only take the following
30767	// values: PREMIUM, STANDARD. Initially the default network tier is
30768	// PREMIUM.
30769	//
30770	// Possible values:
30771	//   "PREMIUM"
30772	//   "STANDARD"
30773	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
30774
30775	// DefaultServiceAccount: [Output Only] Default service account used by
30776	// VMs running in this project.
30777	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
30778
30779	// Description: An optional textual description of the resource.
30780	Description string `json:"description,omitempty"`
30781
30782	// EnabledFeatures: Restricted features enabled for use on this project.
30783	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
30784
30785	// Id: [Output Only] The unique identifier for the resource. This
30786	// identifier is defined by the server. This is not the project ID, and
30787	// is just a unique ID used by Compute Engine to identify resources.
30788	Id uint64 `json:"id,omitempty,string"`
30789
30790	// Kind: [Output Only] Type of the resource. Always compute#project for
30791	// projects.
30792	Kind string `json:"kind,omitempty"`
30793
30794	// Name: The project ID. For example: my-example-project. Use the
30795	// project ID to make requests to Compute Engine.
30796	Name string `json:"name,omitempty"`
30797
30798	// Quotas: [Output Only] Quotas assigned to this project.
30799	Quotas []*Quota `json:"quotas,omitempty"`
30800
30801	// SelfLink: [Output Only] Server-defined URL for the resource.
30802	SelfLink string `json:"selfLink,omitempty"`
30803
30804	// UsageExportLocation: The naming prefix for daily usage reports and
30805	// the Google Cloud Storage bucket where they are stored.
30806	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
30807
30808	// XpnProjectStatus: [Output Only] The role this project has in a shared
30809	// VPC configuration. Currently, only projects with the host role, which
30810	// is specified by the value HOST, are differentiated.
30811	//
30812	// Possible values:
30813	//   "HOST"
30814	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
30815	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
30816
30817	// ServerResponse contains the HTTP response code and headers from the
30818	// server.
30819	googleapi.ServerResponse `json:"-"`
30820
30821	// ForceSendFields is a list of field names (e.g.
30822	// "CommonInstanceMetadata") to unconditionally include in API requests.
30823	// By default, fields with empty values are omitted from API requests.
30824	// However, any non-pointer, non-interface field appearing in
30825	// ForceSendFields will be sent to the server regardless of whether the
30826	// field is empty or not. This may be used to include empty fields in
30827	// Patch requests.
30828	ForceSendFields []string `json:"-"`
30829
30830	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
30831	// to include in API requests with the JSON null value. By default,
30832	// fields with empty values are omitted from API requests. However, any
30833	// field with an empty value appearing in NullFields will be sent to the
30834	// server as null. It is an error if a field in this list has a
30835	// non-empty value. This may be used to include null fields in Patch
30836	// requests.
30837	NullFields []string `json:"-"`
30838}
30839
30840func (s *Project) MarshalJSON() ([]byte, error) {
30841	type NoMethod Project
30842	raw := NoMethod(*s)
30843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30844}
30845
30846type ProjectsDisableXpnResourceRequest struct {
30847	// XpnResource: Service resource (a.k.a service project) ID.
30848	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
30849
30850	// ForceSendFields is a list of field names (e.g. "XpnResource") to
30851	// unconditionally include in API requests. By default, fields with
30852	// empty values are omitted from API requests. However, any non-pointer,
30853	// non-interface field appearing in ForceSendFields will be sent to the
30854	// server regardless of whether the field is empty or not. This may be
30855	// used to include empty fields in Patch requests.
30856	ForceSendFields []string `json:"-"`
30857
30858	// NullFields is a list of field names (e.g. "XpnResource") to include
30859	// in API requests with the JSON null value. By default, fields with
30860	// empty values are omitted from API requests. However, any field with
30861	// an empty value appearing in NullFields will be sent to the server as
30862	// null. It is an error if a field in this list has a non-empty value.
30863	// This may be used to include null fields in Patch requests.
30864	NullFields []string `json:"-"`
30865}
30866
30867func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
30868	type NoMethod ProjectsDisableXpnResourceRequest
30869	raw := NoMethod(*s)
30870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30871}
30872
30873type ProjectsEnableXpnResourceRequest struct {
30874	// XpnResource: Service resource (a.k.a service project) ID.
30875	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
30876
30877	// ForceSendFields is a list of field names (e.g. "XpnResource") to
30878	// unconditionally include in API requests. By default, fields with
30879	// empty values are omitted from API requests. However, any non-pointer,
30880	// non-interface field appearing in ForceSendFields will be sent to the
30881	// server regardless of whether the field is empty or not. This may be
30882	// used to include empty fields in Patch requests.
30883	ForceSendFields []string `json:"-"`
30884
30885	// NullFields is a list of field names (e.g. "XpnResource") to include
30886	// in API requests with the JSON null value. By default, fields with
30887	// empty values are omitted from API requests. However, any field with
30888	// an empty value appearing in NullFields will be sent to the server as
30889	// null. It is an error if a field in this list has a non-empty value.
30890	// This may be used to include null fields in Patch requests.
30891	NullFields []string `json:"-"`
30892}
30893
30894func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
30895	type NoMethod ProjectsEnableXpnResourceRequest
30896	raw := NoMethod(*s)
30897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30898}
30899
30900type ProjectsGetXpnResources struct {
30901	// Kind: [Output Only] Type of resource. Always
30902	// compute#projectsGetXpnResources for lists of service resources (a.k.a
30903	// service projects)
30904	Kind string `json:"kind,omitempty"`
30905
30906	// NextPageToken: [Output Only] This token allows you to get the next
30907	// page of results for list requests. If the number of results is larger
30908	// than maxResults, use the nextPageToken as a value for the query
30909	// parameter pageToken in the next list request. Subsequent list
30910	// requests will have their own nextPageToken to continue paging through
30911	// the results.
30912	NextPageToken string `json:"nextPageToken,omitempty"`
30913
30914	// Resources: Service resources (a.k.a service projects) attached to
30915	// this project as their shared VPC host.
30916	Resources []*XpnResourceId `json:"resources,omitempty"`
30917
30918	// ServerResponse contains the HTTP response code and headers from the
30919	// server.
30920	googleapi.ServerResponse `json:"-"`
30921
30922	// ForceSendFields is a list of field names (e.g. "Kind") to
30923	// unconditionally include in API requests. By default, fields with
30924	// empty values are omitted from API requests. However, any non-pointer,
30925	// non-interface field appearing in ForceSendFields will be sent to the
30926	// server regardless of whether the field is empty or not. This may be
30927	// used to include empty fields in Patch requests.
30928	ForceSendFields []string `json:"-"`
30929
30930	// NullFields is a list of field names (e.g. "Kind") to include in API
30931	// requests with the JSON null value. By default, fields with empty
30932	// values are omitted from API requests. However, any field with an
30933	// empty value appearing in NullFields will be sent to the server as
30934	// null. It is an error if a field in this list has a non-empty value.
30935	// This may be used to include null fields in Patch requests.
30936	NullFields []string `json:"-"`
30937}
30938
30939func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
30940	type NoMethod ProjectsGetXpnResources
30941	raw := NoMethod(*s)
30942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30943}
30944
30945type ProjectsListXpnHostsRequest struct {
30946	// Organization: Optional organization ID managed by Cloud Resource
30947	// Manager, for which to list shared VPC host projects. If not
30948	// specified, the organization will be inferred from the project.
30949	Organization string `json:"organization,omitempty"`
30950
30951	// ForceSendFields is a list of field names (e.g. "Organization") to
30952	// unconditionally include in API requests. By default, fields with
30953	// empty values are omitted from API requests. However, any non-pointer,
30954	// non-interface field appearing in ForceSendFields will be sent to the
30955	// server regardless of whether the field is empty or not. This may be
30956	// used to include empty fields in Patch requests.
30957	ForceSendFields []string `json:"-"`
30958
30959	// NullFields is a list of field names (e.g. "Organization") to include
30960	// in API requests with the JSON null value. By default, fields with
30961	// empty values are omitted from API requests. However, any field with
30962	// an empty value appearing in NullFields will be sent to the server as
30963	// null. It is an error if a field in this list has a non-empty value.
30964	// This may be used to include null fields in Patch requests.
30965	NullFields []string `json:"-"`
30966}
30967
30968func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
30969	type NoMethod ProjectsListXpnHostsRequest
30970	raw := NoMethod(*s)
30971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30972}
30973
30974type ProjectsSetDefaultNetworkTierRequest struct {
30975	// NetworkTier: Default network tier to be set.
30976	//
30977	// Possible values:
30978	//   "PREMIUM"
30979	//   "STANDARD"
30980	NetworkTier string `json:"networkTier,omitempty"`
30981
30982	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
30983	// unconditionally include in API requests. By default, fields with
30984	// empty values are omitted from API requests. However, any non-pointer,
30985	// non-interface field appearing in ForceSendFields will be sent to the
30986	// server regardless of whether the field is empty or not. This may be
30987	// used to include empty fields in Patch requests.
30988	ForceSendFields []string `json:"-"`
30989
30990	// NullFields is a list of field names (e.g. "NetworkTier") to include
30991	// in API requests with the JSON null value. By default, fields with
30992	// empty values are omitted from API requests. However, any field with
30993	// an empty value appearing in NullFields will be sent to the server as
30994	// null. It is an error if a field in this list has a non-empty value.
30995	// This may be used to include null fields in Patch requests.
30996	NullFields []string `json:"-"`
30997}
30998
30999func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
31000	type NoMethod ProjectsSetDefaultNetworkTierRequest
31001	raw := NoMethod(*s)
31002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31003}
31004
31005// PublicAdvertisedPrefix: A public advertised prefix represents an
31006// aggregated IP prefix or netblock which customers bring to cloud. The
31007// IP prefix is a single unit of route advertisement and is announced
31008// globally to the internet.
31009type PublicAdvertisedPrefix struct {
31010	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31011	// format.
31012	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31013
31014	// Description: An optional description of this resource. Provide this
31015	// property when you create the resource.
31016	Description string `json:"description,omitempty"`
31017
31018	// DnsVerificationIp: The IPv4 address to be used for reverse DNS
31019	// verification.
31020	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
31021
31022	// Fingerprint: Fingerprint of this resource. A hash of the contents
31023	// stored in this object. This field is used in optimistic locking. This
31024	// field will be ignored when inserting a new PublicAdvertisedPrefix. An
31025	// up-to-date fingerprint must be provided in order to update the
31026	// PublicAdvertisedPrefix, otherwise the request will fail with error
31027	// 412 conditionNotMet.
31028	//
31029	// To see the latest fingerprint, make a get() request to retrieve a
31030	// PublicAdvertisedPrefix.
31031	Fingerprint string `json:"fingerprint,omitempty"`
31032
31033	// Id: [Output Only] The unique identifier for the resource type. The
31034	// server generates this identifier.
31035	Id uint64 `json:"id,omitempty,string"`
31036
31037	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31038	// this public advertised prefix.
31039	IpCidrRange string `json:"ipCidrRange,omitempty"`
31040
31041	// Kind: [Output Only] Type of the resource. Always
31042	// compute#publicAdvertisedPrefix for public advertised prefixes.
31043	Kind string `json:"kind,omitempty"`
31044
31045	// Name: Name of the resource. Provided by the client when the resource
31046	// is created. The name must be 1-63 characters long, and comply with
31047	// RFC1035. Specifically, the name must be 1-63 characters long and
31048	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31049	// the first character must be a lowercase letter, and all following
31050	// characters must be a dash, lowercase letter, or digit, except the
31051	// last character, which cannot be a dash.
31052	Name string `json:"name,omitempty"`
31053
31054	// PublicDelegatedPrefixs: [Output Only] The list of public delegated
31055	// prefixes that exist for this public advertised prefix.
31056	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
31057
31058	// SelfLink: [Output Only] Server-defined URL for the resource.
31059	SelfLink string `json:"selfLink,omitempty"`
31060
31061	// SharedSecret: [Output Only] The shared secret to be used for reverse
31062	// DNS verification.
31063	SharedSecret string `json:"sharedSecret,omitempty"`
31064
31065	// Status: The status of the public advertised prefix.
31066	//
31067	// Possible values:
31068	//   "INITIAL"
31069	//   "PREFIX_CONFIGURATION_COMPLETE"
31070	//   "PREFIX_CONFIGURATION_IN_PROGRESS"
31071	//   "PREFIX_REMOVAL_IN_PROGRESS"
31072	//   "PTR_CONFIGURED"
31073	//   "REVERSE_DNS_LOOKUP_FAILED"
31074	//   "VALIDATED"
31075	Status string `json:"status,omitempty"`
31076
31077	// ServerResponse contains the HTTP response code and headers from the
31078	// server.
31079	googleapi.ServerResponse `json:"-"`
31080
31081	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31082	// to unconditionally include in API requests. By default, fields with
31083	// empty values are omitted from API requests. However, any non-pointer,
31084	// non-interface field appearing in ForceSendFields will be sent to the
31085	// server regardless of whether the field is empty or not. This may be
31086	// used to include empty fields in Patch requests.
31087	ForceSendFields []string `json:"-"`
31088
31089	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31090	// include in API requests with the JSON null value. By default, fields
31091	// with empty values are omitted from API requests. However, any field
31092	// with an empty value appearing in NullFields will be sent to the
31093	// server as null. It is an error if a field in this list has a
31094	// non-empty value. This may be used to include null fields in Patch
31095	// requests.
31096	NullFields []string `json:"-"`
31097}
31098
31099func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
31100	type NoMethod PublicAdvertisedPrefix
31101	raw := NoMethod(*s)
31102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31103}
31104
31105type PublicAdvertisedPrefixList struct {
31106	// Id: [Output Only] Unique identifier for the resource; defined by the
31107	// server.
31108	Id string `json:"id,omitempty"`
31109
31110	// Items: A list of PublicAdvertisedPrefix resources.
31111	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
31112
31113	// Kind: [Output Only] Type of the resource. Always
31114	// compute#publicAdvertisedPrefix for public advertised prefixes.
31115	Kind string `json:"kind,omitempty"`
31116
31117	// NextPageToken: [Output Only] This token allows you to get the next
31118	// page of results for list requests. If the number of results is larger
31119	// than maxResults, use the nextPageToken as a value for the query
31120	// parameter pageToken in the next list request. Subsequent list
31121	// requests will have their own nextPageToken to continue paging through
31122	// the results.
31123	NextPageToken string `json:"nextPageToken,omitempty"`
31124
31125	// SelfLink: [Output Only] Server-defined URL for this resource.
31126	SelfLink string `json:"selfLink,omitempty"`
31127
31128	// Warning: [Output Only] Informational warning message.
31129	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`
31130
31131	// ServerResponse contains the HTTP response code and headers from the
31132	// server.
31133	googleapi.ServerResponse `json:"-"`
31134
31135	// ForceSendFields is a list of field names (e.g. "Id") to
31136	// unconditionally include in API requests. By default, fields with
31137	// empty values are omitted from API requests. However, any non-pointer,
31138	// non-interface field appearing in ForceSendFields will be sent to the
31139	// server regardless of whether the field is empty or not. This may be
31140	// used to include empty fields in Patch requests.
31141	ForceSendFields []string `json:"-"`
31142
31143	// NullFields is a list of field names (e.g. "Id") to include in API
31144	// requests with the JSON null value. By default, fields with empty
31145	// values are omitted from API requests. However, any field with an
31146	// empty value appearing in NullFields will be sent to the server as
31147	// null. It is an error if a field in this list has a non-empty value.
31148	// This may be used to include null fields in Patch requests.
31149	NullFields []string `json:"-"`
31150}
31151
31152func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
31153	type NoMethod PublicAdvertisedPrefixList
31154	raw := NoMethod(*s)
31155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31156}
31157
31158// PublicAdvertisedPrefixListWarning: [Output Only] Informational
31159// warning message.
31160type PublicAdvertisedPrefixListWarning struct {
31161	// Code: [Output Only] A warning code, if applicable. For example,
31162	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31163	// the response.
31164	//
31165	// Possible values:
31166	//   "CLEANUP_FAILED"
31167	//   "DEPRECATED_RESOURCE_USED"
31168	//   "DEPRECATED_TYPE_USED"
31169	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31170	//   "EXPERIMENTAL_TYPE_USED"
31171	//   "EXTERNAL_API_WARNING"
31172	//   "FIELD_VALUE_OVERRIDEN"
31173	//   "INJECTED_KERNELS_DEPRECATED"
31174	//   "LARGE_DEPLOYMENT_WARNING"
31175	//   "MISSING_TYPE_DEPENDENCY"
31176	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31177	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31178	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31179	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31180	//   "NEXT_HOP_NOT_RUNNING"
31181	//   "NOT_CRITICAL_ERROR"
31182	//   "NO_RESULTS_ON_PAGE"
31183	//   "PARTIAL_SUCCESS"
31184	//   "REQUIRED_TOS_AGREEMENT"
31185	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31186	//   "RESOURCE_NOT_DELETED"
31187	//   "SCHEMA_VALIDATION_IGNORED"
31188	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31189	//   "UNDECLARED_PROPERTIES"
31190	//   "UNREACHABLE"
31191	Code string `json:"code,omitempty"`
31192
31193	// Data: [Output Only] Metadata about this warning in key: value format.
31194	// For example:
31195	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31196	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
31197
31198	// Message: [Output Only] A human-readable description of the warning
31199	// code.
31200	Message string `json:"message,omitempty"`
31201
31202	// ForceSendFields is a list of field names (e.g. "Code") to
31203	// unconditionally include in API requests. By default, fields with
31204	// empty values are omitted from API requests. However, any non-pointer,
31205	// non-interface field appearing in ForceSendFields will be sent to the
31206	// server regardless of whether the field is empty or not. This may be
31207	// used to include empty fields in Patch requests.
31208	ForceSendFields []string `json:"-"`
31209
31210	// NullFields is a list of field names (e.g. "Code") to include in API
31211	// requests with the JSON null value. By default, fields with empty
31212	// values are omitted from API requests. However, any field with an
31213	// empty value appearing in NullFields will be sent to the server as
31214	// null. It is an error if a field in this list has a non-empty value.
31215	// This may be used to include null fields in Patch requests.
31216	NullFields []string `json:"-"`
31217}
31218
31219func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
31220	type NoMethod PublicAdvertisedPrefixListWarning
31221	raw := NoMethod(*s)
31222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31223}
31224
31225type PublicAdvertisedPrefixListWarningData struct {
31226	// Key: [Output Only] A key that provides more detail on the warning
31227	// being returned. For example, for warnings where there are no results
31228	// in a list request for a particular zone, this key might be scope and
31229	// the key value might be the zone name. Other examples might be a key
31230	// indicating a deprecated resource and a suggested replacement, or a
31231	// warning about invalid network settings (for example, if an instance
31232	// attempts to perform IP forwarding but is not enabled for IP
31233	// forwarding).
31234	Key string `json:"key,omitempty"`
31235
31236	// Value: [Output Only] A warning data value corresponding to the key.
31237	Value string `json:"value,omitempty"`
31238
31239	// ForceSendFields is a list of field names (e.g. "Key") to
31240	// unconditionally include in API requests. By default, fields with
31241	// empty values are omitted from API requests. However, any non-pointer,
31242	// non-interface field appearing in ForceSendFields will be sent to the
31243	// server regardless of whether the field is empty or not. This may be
31244	// used to include empty fields in Patch requests.
31245	ForceSendFields []string `json:"-"`
31246
31247	// NullFields is a list of field names (e.g. "Key") to include in API
31248	// requests with the JSON null value. By default, fields with empty
31249	// values are omitted from API requests. However, any field with an
31250	// empty value appearing in NullFields will be sent to the server as
31251	// null. It is an error if a field in this list has a non-empty value.
31252	// This may be used to include null fields in Patch requests.
31253	NullFields []string `json:"-"`
31254}
31255
31256func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
31257	type NoMethod PublicAdvertisedPrefixListWarningData
31258	raw := NoMethod(*s)
31259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31260}
31261
31262// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range
31263// which can be used to assign addresses.
31264type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
31265	// IpRange: The IP address range of the public delegated prefix
31266	IpRange string `json:"ipRange,omitempty"`
31267
31268	// Name: The name of the public delegated prefix
31269	Name string `json:"name,omitempty"`
31270
31271	// Project: The project number of the public delegated prefix
31272	Project string `json:"project,omitempty"`
31273
31274	// Region: The region of the public delegated prefix if it is regional.
31275	// If absent, the prefix is global.
31276	Region string `json:"region,omitempty"`
31277
31278	// Status: The status of the public delegated prefix. Possible values
31279	// are: INITIALIZING: The public delegated prefix is being initialized
31280	// and addresses cannot be created yet. ANNOUNCED: The public delegated
31281	// prefix is active.
31282	Status string `json:"status,omitempty"`
31283
31284	// ForceSendFields is a list of field names (e.g. "IpRange") to
31285	// unconditionally include in API requests. By default, fields with
31286	// empty values are omitted from API requests. However, any non-pointer,
31287	// non-interface field appearing in ForceSendFields will be sent to the
31288	// server regardless of whether the field is empty or not. This may be
31289	// used to include empty fields in Patch requests.
31290	ForceSendFields []string `json:"-"`
31291
31292	// NullFields is a list of field names (e.g. "IpRange") to include in
31293	// API requests with the JSON null value. By default, fields with empty
31294	// values are omitted from API requests. However, any field with an
31295	// empty value appearing in NullFields will be sent to the server as
31296	// null. It is an error if a field in this list has a non-empty value.
31297	// This may be used to include null fields in Patch requests.
31298	NullFields []string `json:"-"`
31299}
31300
31301func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31302	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
31303	raw := NoMethod(*s)
31304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31305}
31306
31307// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an
31308// IP block within a PublicAdvertisedPrefix that is configured within a
31309// single cloud scope (global or region). IPs in the block can be
31310// allocated to resources within that scope. Public delegated prefixes
31311// may be further broken up into smaller IP blocks in the same scope as
31312// the parent block.
31313type PublicDelegatedPrefix struct {
31314	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31315	// format.
31316	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31317
31318	// Description: An optional description of this resource. Provide this
31319	// property when you create the resource.
31320	Description string `json:"description,omitempty"`
31321
31322	// Fingerprint: Fingerprint of this resource. A hash of the contents
31323	// stored in this object. This field is used in optimistic locking. This
31324	// field will be ignored when inserting a new PublicDelegatedPrefix. An
31325	// up-to-date fingerprint must be provided in order to update the
31326	// PublicDelegatedPrefix, otherwise the request will fail with error 412
31327	// conditionNotMet.
31328	//
31329	// To see the latest fingerprint, make a get() request to retrieve a
31330	// PublicDelegatedPrefix.
31331	Fingerprint string `json:"fingerprint,omitempty"`
31332
31333	// Id: [Output Only] The unique identifier for the resource type. The
31334	// server generates this identifier.
31335	Id uint64 `json:"id,omitempty,string"`
31336
31337	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31338	// this public delegated prefix.
31339	IpCidrRange string `json:"ipCidrRange,omitempty"`
31340
31341	// IsLiveMigration: If true, the prefix will be live migrated.
31342	IsLiveMigration bool `json:"isLiveMigration,omitempty"`
31343
31344	// Kind: [Output Only] Type of the resource. Always
31345	// compute#publicDelegatedPrefix for public delegated prefixes.
31346	Kind string `json:"kind,omitempty"`
31347
31348	// Name: Name of the resource. Provided by the client when the resource
31349	// is created. The name must be 1-63 characters long, and comply with
31350	// RFC1035. Specifically, the name must be 1-63 characters long and
31351	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31352	// the first character must be a lowercase letter, and all following
31353	// characters must be a dash, lowercase letter, or digit, except the
31354	// last character, which cannot be a dash.
31355	Name string `json:"name,omitempty"`
31356
31357	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix
31358	// or PublicDelegatedPrefix.
31359	ParentPrefix string `json:"parentPrefix,omitempty"`
31360
31361	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes
31362	// that exist for this public delegated prefix.
31363	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
31364
31365	// Region: [Output Only] URL of the region where the public delegated
31366	// prefix resides. This field applies only to the region resource. You
31367	// must specify this field as part of the HTTP request URL. It is not
31368	// settable as a field in the request body.
31369	Region string `json:"region,omitempty"`
31370
31371	// SelfLink: [Output Only] Server-defined URL for the resource.
31372	SelfLink string `json:"selfLink,omitempty"`
31373
31374	// Status: [Output Only] The status of the public delegated prefix.
31375	//
31376	// Possible values:
31377	//   "ANNOUNCED"
31378	//   "DELETING"
31379	//   "INITIALIZING"
31380	Status string `json:"status,omitempty"`
31381
31382	// ServerResponse contains the HTTP response code and headers from the
31383	// server.
31384	googleapi.ServerResponse `json:"-"`
31385
31386	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31387	// to unconditionally include in API requests. By default, fields with
31388	// empty values are omitted from API requests. However, any non-pointer,
31389	// non-interface field appearing in ForceSendFields will be sent to the
31390	// server regardless of whether the field is empty or not. This may be
31391	// used to include empty fields in Patch requests.
31392	ForceSendFields []string `json:"-"`
31393
31394	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31395	// include in API requests with the JSON null value. By default, fields
31396	// with empty values are omitted from API requests. However, any field
31397	// with an empty value appearing in NullFields will be sent to the
31398	// server as null. It is an error if a field in this list has a
31399	// non-empty value. This may be used to include null fields in Patch
31400	// requests.
31401	NullFields []string `json:"-"`
31402}
31403
31404func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31405	type NoMethod PublicDelegatedPrefix
31406	raw := NoMethod(*s)
31407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31408}
31409
31410type PublicDelegatedPrefixAggregatedList struct {
31411	// Id: [Output Only] Unique identifier for the resource; defined by the
31412	// server.
31413	Id string `json:"id,omitempty"`
31414
31415	// Items: A list of PublicDelegatedPrefixesScopedList resources.
31416	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
31417
31418	// Kind: [Output Only] Type of the resource. Always
31419	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of
31420	// public delegated prefixes.
31421	Kind string `json:"kind,omitempty"`
31422
31423	// NextPageToken: [Output Only] This token allows you to get the next
31424	// page of results for list requests. If the number of results is larger
31425	// than maxResults, use the nextPageToken as a value for the query
31426	// parameter pageToken in the next list request. Subsequent list
31427	// requests will have their own nextPageToken to continue paging through
31428	// the results.
31429	NextPageToken string `json:"nextPageToken,omitempty"`
31430
31431	// SelfLink: [Output Only] Server-defined URL for this resource.
31432	SelfLink string `json:"selfLink,omitempty"`
31433
31434	// Unreachables: [Output Only] Unreachable resources.
31435	Unreachables []string `json:"unreachables,omitempty"`
31436
31437	// Warning: [Output Only] Informational warning message.
31438	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`
31439
31440	// ServerResponse contains the HTTP response code and headers from the
31441	// server.
31442	googleapi.ServerResponse `json:"-"`
31443
31444	// ForceSendFields is a list of field names (e.g. "Id") to
31445	// unconditionally include in API requests. By default, fields with
31446	// empty values are omitted from API requests. However, any non-pointer,
31447	// non-interface field appearing in ForceSendFields will be sent to the
31448	// server regardless of whether the field is empty or not. This may be
31449	// used to include empty fields in Patch requests.
31450	ForceSendFields []string `json:"-"`
31451
31452	// NullFields is a list of field names (e.g. "Id") to include in API
31453	// requests with the JSON null value. By default, fields with empty
31454	// values are omitted from API requests. However, any field with an
31455	// empty value appearing in NullFields will be sent to the server as
31456	// null. It is an error if a field in this list has a non-empty value.
31457	// This may be used to include null fields in Patch requests.
31458	NullFields []string `json:"-"`
31459}
31460
31461func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
31462	type NoMethod PublicDelegatedPrefixAggregatedList
31463	raw := NoMethod(*s)
31464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31465}
31466
31467// PublicDelegatedPrefixAggregatedListWarning: [Output Only]
31468// Informational warning message.
31469type PublicDelegatedPrefixAggregatedListWarning struct {
31470	// Code: [Output Only] A warning code, if applicable. For example,
31471	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31472	// the response.
31473	//
31474	// Possible values:
31475	//   "CLEANUP_FAILED"
31476	//   "DEPRECATED_RESOURCE_USED"
31477	//   "DEPRECATED_TYPE_USED"
31478	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31479	//   "EXPERIMENTAL_TYPE_USED"
31480	//   "EXTERNAL_API_WARNING"
31481	//   "FIELD_VALUE_OVERRIDEN"
31482	//   "INJECTED_KERNELS_DEPRECATED"
31483	//   "LARGE_DEPLOYMENT_WARNING"
31484	//   "MISSING_TYPE_DEPENDENCY"
31485	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31486	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31487	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31488	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31489	//   "NEXT_HOP_NOT_RUNNING"
31490	//   "NOT_CRITICAL_ERROR"
31491	//   "NO_RESULTS_ON_PAGE"
31492	//   "PARTIAL_SUCCESS"
31493	//   "REQUIRED_TOS_AGREEMENT"
31494	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31495	//   "RESOURCE_NOT_DELETED"
31496	//   "SCHEMA_VALIDATION_IGNORED"
31497	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31498	//   "UNDECLARED_PROPERTIES"
31499	//   "UNREACHABLE"
31500	Code string `json:"code,omitempty"`
31501
31502	// Data: [Output Only] Metadata about this warning in key: value format.
31503	// For example:
31504	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31505	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
31506
31507	// Message: [Output Only] A human-readable description of the warning
31508	// code.
31509	Message string `json:"message,omitempty"`
31510
31511	// ForceSendFields is a list of field names (e.g. "Code") to
31512	// unconditionally include in API requests. By default, fields with
31513	// empty values are omitted from API requests. However, any non-pointer,
31514	// non-interface field appearing in ForceSendFields will be sent to the
31515	// server regardless of whether the field is empty or not. This may be
31516	// used to include empty fields in Patch requests.
31517	ForceSendFields []string `json:"-"`
31518
31519	// NullFields is a list of field names (e.g. "Code") to include in API
31520	// requests with the JSON null value. By default, fields with empty
31521	// values are omitted from API requests. However, any field with an
31522	// empty value appearing in NullFields will be sent to the server as
31523	// null. It is an error if a field in this list has a non-empty value.
31524	// This may be used to include null fields in Patch requests.
31525	NullFields []string `json:"-"`
31526}
31527
31528func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
31529	type NoMethod PublicDelegatedPrefixAggregatedListWarning
31530	raw := NoMethod(*s)
31531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31532}
31533
31534type PublicDelegatedPrefixAggregatedListWarningData struct {
31535	// Key: [Output Only] A key that provides more detail on the warning
31536	// being returned. For example, for warnings where there are no results
31537	// in a list request for a particular zone, this key might be scope and
31538	// the key value might be the zone name. Other examples might be a key
31539	// indicating a deprecated resource and a suggested replacement, or a
31540	// warning about invalid network settings (for example, if an instance
31541	// attempts to perform IP forwarding but is not enabled for IP
31542	// forwarding).
31543	Key string `json:"key,omitempty"`
31544
31545	// Value: [Output Only] A warning data value corresponding to the key.
31546	Value string `json:"value,omitempty"`
31547
31548	// ForceSendFields is a list of field names (e.g. "Key") to
31549	// unconditionally include in API requests. By default, fields with
31550	// empty values are omitted from API requests. However, any non-pointer,
31551	// non-interface field appearing in ForceSendFields will be sent to the
31552	// server regardless of whether the field is empty or not. This may be
31553	// used to include empty fields in Patch requests.
31554	ForceSendFields []string `json:"-"`
31555
31556	// NullFields is a list of field names (e.g. "Key") to include in API
31557	// requests with the JSON null value. By default, fields with empty
31558	// values are omitted from API requests. However, any field with an
31559	// empty value appearing in NullFields will be sent to the server as
31560	// null. It is an error if a field in this list has a non-empty value.
31561	// This may be used to include null fields in Patch requests.
31562	NullFields []string `json:"-"`
31563}
31564
31565func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
31566	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
31567	raw := NoMethod(*s)
31568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31569}
31570
31571type PublicDelegatedPrefixList struct {
31572	// Id: [Output Only] Unique identifier for the resource; defined by the
31573	// server.
31574	Id string `json:"id,omitempty"`
31575
31576	// Items: A list of PublicDelegatedPrefix resources.
31577	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
31578
31579	// Kind: [Output Only] Type of the resource. Always
31580	// compute#publicDelegatedPrefixList for public delegated prefixes.
31581	Kind string `json:"kind,omitempty"`
31582
31583	// NextPageToken: [Output Only] This token allows you to get the next
31584	// page of results for list requests. If the number of results is larger
31585	// than maxResults, use the nextPageToken as a value for the query
31586	// parameter pageToken in the next list request. Subsequent list
31587	// requests will have their own nextPageToken to continue paging through
31588	// the results.
31589	NextPageToken string `json:"nextPageToken,omitempty"`
31590
31591	// SelfLink: [Output Only] Server-defined URL for this resource.
31592	SelfLink string `json:"selfLink,omitempty"`
31593
31594	// Warning: [Output Only] Informational warning message.
31595	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`
31596
31597	// ServerResponse contains the HTTP response code and headers from the
31598	// server.
31599	googleapi.ServerResponse `json:"-"`
31600
31601	// ForceSendFields is a list of field names (e.g. "Id") to
31602	// unconditionally include in API requests. By default, fields with
31603	// empty values are omitted from API requests. However, any non-pointer,
31604	// non-interface field appearing in ForceSendFields will be sent to the
31605	// server regardless of whether the field is empty or not. This may be
31606	// used to include empty fields in Patch requests.
31607	ForceSendFields []string `json:"-"`
31608
31609	// NullFields is a list of field names (e.g. "Id") to include in API
31610	// requests with the JSON null value. By default, fields with empty
31611	// values are omitted from API requests. However, any field with an
31612	// empty value appearing in NullFields will be sent to the server as
31613	// null. It is an error if a field in this list has a non-empty value.
31614	// This may be used to include null fields in Patch requests.
31615	NullFields []string `json:"-"`
31616}
31617
31618func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
31619	type NoMethod PublicDelegatedPrefixList
31620	raw := NoMethod(*s)
31621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31622}
31623
31624// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
31625// message.
31626type PublicDelegatedPrefixListWarning struct {
31627	// Code: [Output Only] A warning code, if applicable. For example,
31628	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31629	// the response.
31630	//
31631	// Possible values:
31632	//   "CLEANUP_FAILED"
31633	//   "DEPRECATED_RESOURCE_USED"
31634	//   "DEPRECATED_TYPE_USED"
31635	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31636	//   "EXPERIMENTAL_TYPE_USED"
31637	//   "EXTERNAL_API_WARNING"
31638	//   "FIELD_VALUE_OVERRIDEN"
31639	//   "INJECTED_KERNELS_DEPRECATED"
31640	//   "LARGE_DEPLOYMENT_WARNING"
31641	//   "MISSING_TYPE_DEPENDENCY"
31642	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31643	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31644	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31645	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31646	//   "NEXT_HOP_NOT_RUNNING"
31647	//   "NOT_CRITICAL_ERROR"
31648	//   "NO_RESULTS_ON_PAGE"
31649	//   "PARTIAL_SUCCESS"
31650	//   "REQUIRED_TOS_AGREEMENT"
31651	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31652	//   "RESOURCE_NOT_DELETED"
31653	//   "SCHEMA_VALIDATION_IGNORED"
31654	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31655	//   "UNDECLARED_PROPERTIES"
31656	//   "UNREACHABLE"
31657	Code string `json:"code,omitempty"`
31658
31659	// Data: [Output Only] Metadata about this warning in key: value format.
31660	// For example:
31661	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31662	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
31663
31664	// Message: [Output Only] A human-readable description of the warning
31665	// code.
31666	Message string `json:"message,omitempty"`
31667
31668	// ForceSendFields is a list of field names (e.g. "Code") to
31669	// unconditionally include in API requests. By default, fields with
31670	// empty values are omitted from API requests. However, any non-pointer,
31671	// non-interface field appearing in ForceSendFields will be sent to the
31672	// server regardless of whether the field is empty or not. This may be
31673	// used to include empty fields in Patch requests.
31674	ForceSendFields []string `json:"-"`
31675
31676	// NullFields is a list of field names (e.g. "Code") to include in API
31677	// requests with the JSON null value. By default, fields with empty
31678	// values are omitted from API requests. However, any field with an
31679	// empty value appearing in NullFields will be sent to the server as
31680	// null. It is an error if a field in this list has a non-empty value.
31681	// This may be used to include null fields in Patch requests.
31682	NullFields []string `json:"-"`
31683}
31684
31685func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
31686	type NoMethod PublicDelegatedPrefixListWarning
31687	raw := NoMethod(*s)
31688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31689}
31690
31691type PublicDelegatedPrefixListWarningData struct {
31692	// Key: [Output Only] A key that provides more detail on the warning
31693	// being returned. For example, for warnings where there are no results
31694	// in a list request for a particular zone, this key might be scope and
31695	// the key value might be the zone name. Other examples might be a key
31696	// indicating a deprecated resource and a suggested replacement, or a
31697	// warning about invalid network settings (for example, if an instance
31698	// attempts to perform IP forwarding but is not enabled for IP
31699	// forwarding).
31700	Key string `json:"key,omitempty"`
31701
31702	// Value: [Output Only] A warning data value corresponding to the key.
31703	Value string `json:"value,omitempty"`
31704
31705	// ForceSendFields is a list of field names (e.g. "Key") to
31706	// unconditionally include in API requests. By default, fields with
31707	// empty values are omitted from API requests. However, any non-pointer,
31708	// non-interface field appearing in ForceSendFields will be sent to the
31709	// server regardless of whether the field is empty or not. This may be
31710	// used to include empty fields in Patch requests.
31711	ForceSendFields []string `json:"-"`
31712
31713	// NullFields is a list of field names (e.g. "Key") to include in API
31714	// requests with the JSON null value. By default, fields with empty
31715	// values are omitted from API requests. However, any field with an
31716	// empty value appearing in NullFields will be sent to the server as
31717	// null. It is an error if a field in this list has a non-empty value.
31718	// This may be used to include null fields in Patch requests.
31719	NullFields []string `json:"-"`
31720}
31721
31722func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
31723	type NoMethod PublicDelegatedPrefixListWarningData
31724	raw := NoMethod(*s)
31725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31726}
31727
31728// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
31729// PublicDelegatedPrefix.
31730type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
31731	// DelegateeProject: Name of the project scoping this
31732	// PublicDelegatedSubPrefix.
31733	DelegateeProject string `json:"delegateeProject,omitempty"`
31734
31735	// Description: An optional description of this resource. Provide this
31736	// property when you create the resource.
31737	Description string `json:"description,omitempty"`
31738
31739	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31740	// this sub public delegated prefix.
31741	IpCidrRange string `json:"ipCidrRange,omitempty"`
31742
31743	// IsAddress: Whether the sub prefix is delegated to create Address
31744	// resources in the delegatee project.
31745	IsAddress bool `json:"isAddress,omitempty"`
31746
31747	// Name: The name of the sub public delegated prefix.
31748	Name string `json:"name,omitempty"`
31749
31750	// Region: [Output Only] The region of the sub public delegated prefix
31751	// if it is regional. If absent, the sub prefix is global.
31752	Region string `json:"region,omitempty"`
31753
31754	// Status: [Output Only] The status of the sub public delegated prefix.
31755	//
31756	// Possible values:
31757	//   "ACTIVE"
31758	//   "INACTIVE"
31759	Status string `json:"status,omitempty"`
31760
31761	// ForceSendFields is a list of field names (e.g. "DelegateeProject") to
31762	// unconditionally include in API requests. By default, fields with
31763	// empty values are omitted from API requests. However, any non-pointer,
31764	// non-interface field appearing in ForceSendFields will be sent to the
31765	// server regardless of whether the field is empty or not. This may be
31766	// used to include empty fields in Patch requests.
31767	ForceSendFields []string `json:"-"`
31768
31769	// NullFields is a list of field names (e.g. "DelegateeProject") to
31770	// include in API requests with the JSON null value. By default, fields
31771	// with empty values are omitted from API requests. However, any field
31772	// with an empty value appearing in NullFields will be sent to the
31773	// server as null. It is an error if a field in this list has a
31774	// non-empty value. This may be used to include null fields in Patch
31775	// requests.
31776	NullFields []string `json:"-"`
31777}
31778
31779func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
31780	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
31781	raw := NoMethod(*s)
31782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31783}
31784
31785type PublicDelegatedPrefixesScopedList struct {
31786	// PublicDelegatedPrefixes: [Output Only] A list of
31787	// PublicDelegatedPrefixes contained in this scope.
31788	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
31789
31790	// Warning: [Output Only] Informational warning which replaces the list
31791	// of public delegated prefixes when the list is empty.
31792	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
31793
31794	// ForceSendFields is a list of field names (e.g.
31795	// "PublicDelegatedPrefixes") to unconditionally include in API
31796	// requests. By default, fields with empty values are omitted from API
31797	// requests. However, any non-pointer, non-interface field appearing in
31798	// ForceSendFields will be sent to the server regardless of whether the
31799	// field is empty or not. This may be used to include empty fields in
31800	// Patch requests.
31801	ForceSendFields []string `json:"-"`
31802
31803	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes")
31804	// to include in API requests with the JSON null value. By default,
31805	// fields with empty values are omitted from API requests. However, any
31806	// field with an empty value appearing in NullFields will be sent to the
31807	// server as null. It is an error if a field in this list has a
31808	// non-empty value. This may be used to include null fields in Patch
31809	// requests.
31810	NullFields []string `json:"-"`
31811}
31812
31813func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
31814	type NoMethod PublicDelegatedPrefixesScopedList
31815	raw := NoMethod(*s)
31816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31817}
31818
31819// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
31820// warning which replaces the list of public delegated prefixes when the
31821// list is empty.
31822type PublicDelegatedPrefixesScopedListWarning struct {
31823	// Code: [Output Only] A warning code, if applicable. For example,
31824	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31825	// the response.
31826	//
31827	// Possible values:
31828	//   "CLEANUP_FAILED"
31829	//   "DEPRECATED_RESOURCE_USED"
31830	//   "DEPRECATED_TYPE_USED"
31831	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31832	//   "EXPERIMENTAL_TYPE_USED"
31833	//   "EXTERNAL_API_WARNING"
31834	//   "FIELD_VALUE_OVERRIDEN"
31835	//   "INJECTED_KERNELS_DEPRECATED"
31836	//   "LARGE_DEPLOYMENT_WARNING"
31837	//   "MISSING_TYPE_DEPENDENCY"
31838	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31839	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31840	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31841	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31842	//   "NEXT_HOP_NOT_RUNNING"
31843	//   "NOT_CRITICAL_ERROR"
31844	//   "NO_RESULTS_ON_PAGE"
31845	//   "PARTIAL_SUCCESS"
31846	//   "REQUIRED_TOS_AGREEMENT"
31847	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31848	//   "RESOURCE_NOT_DELETED"
31849	//   "SCHEMA_VALIDATION_IGNORED"
31850	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31851	//   "UNDECLARED_PROPERTIES"
31852	//   "UNREACHABLE"
31853	Code string `json:"code,omitempty"`
31854
31855	// Data: [Output Only] Metadata about this warning in key: value format.
31856	// For example:
31857	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31858	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
31859
31860	// Message: [Output Only] A human-readable description of the warning
31861	// code.
31862	Message string `json:"message,omitempty"`
31863
31864	// ForceSendFields is a list of field names (e.g. "Code") to
31865	// unconditionally include in API requests. By default, fields with
31866	// empty values are omitted from API requests. However, any non-pointer,
31867	// non-interface field appearing in ForceSendFields will be sent to the
31868	// server regardless of whether the field is empty or not. This may be
31869	// used to include empty fields in Patch requests.
31870	ForceSendFields []string `json:"-"`
31871
31872	// NullFields is a list of field names (e.g. "Code") to include in API
31873	// requests with the JSON null value. By default, fields with empty
31874	// values are omitted from API requests. However, any field with an
31875	// empty value appearing in NullFields will be sent to the server as
31876	// null. It is an error if a field in this list has a non-empty value.
31877	// This may be used to include null fields in Patch requests.
31878	NullFields []string `json:"-"`
31879}
31880
31881func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
31882	type NoMethod PublicDelegatedPrefixesScopedListWarning
31883	raw := NoMethod(*s)
31884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31885}
31886
31887type PublicDelegatedPrefixesScopedListWarningData struct {
31888	// Key: [Output Only] A key that provides more detail on the warning
31889	// being returned. For example, for warnings where there are no results
31890	// in a list request for a particular zone, this key might be scope and
31891	// the key value might be the zone name. Other examples might be a key
31892	// indicating a deprecated resource and a suggested replacement, or a
31893	// warning about invalid network settings (for example, if an instance
31894	// attempts to perform IP forwarding but is not enabled for IP
31895	// forwarding).
31896	Key string `json:"key,omitempty"`
31897
31898	// Value: [Output Only] A warning data value corresponding to the key.
31899	Value string `json:"value,omitempty"`
31900
31901	// ForceSendFields is a list of field names (e.g. "Key") to
31902	// unconditionally include in API requests. By default, fields with
31903	// empty values are omitted from API requests. However, any non-pointer,
31904	// non-interface field appearing in ForceSendFields will be sent to the
31905	// server regardless of whether the field is empty or not. This may be
31906	// used to include empty fields in Patch requests.
31907	ForceSendFields []string `json:"-"`
31908
31909	// NullFields is a list of field names (e.g. "Key") to include in API
31910	// requests with the JSON null value. By default, fields with empty
31911	// values are omitted from API requests. However, any field with an
31912	// empty value appearing in NullFields will be sent to the server as
31913	// null. It is an error if a field in this list has a non-empty value.
31914	// This may be used to include null fields in Patch requests.
31915	NullFields []string `json:"-"`
31916}
31917
31918func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
31919	type NoMethod PublicDelegatedPrefixesScopedListWarningData
31920	raw := NoMethod(*s)
31921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31922}
31923
31924// Quota: A quotas entry.
31925type Quota struct {
31926	// Limit: [Output Only] Quota limit for this metric.
31927	Limit float64 `json:"limit,omitempty"`
31928
31929	// Metric: [Output Only] Name of the quota metric.
31930	//
31931	// Possible values:
31932	//   "A2_CPUS"
31933	//   "AFFINITY_GROUPS"
31934	//   "AUTOSCALERS"
31935	//   "BACKEND_BUCKETS"
31936	//   "BACKEND_SERVICES"
31937	//   "C2D_CPUS"
31938	//   "C2_CPUS"
31939	//   "COMMITMENTS"
31940	//   "COMMITTED_A2_CPUS"
31941	//   "COMMITTED_C2D_CPUS"
31942	//   "COMMITTED_C2_CPUS"
31943	//   "COMMITTED_CPUS"
31944	//   "COMMITTED_E2_CPUS"
31945	//   "COMMITTED_LICENSES"
31946	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
31947	//   "COMMITTED_MEMORY_OPTIMIZED_CPUS"
31948	//   "COMMITTED_N2A_CPUS"
31949	//   "COMMITTED_N2D_CPUS"
31950	//   "COMMITTED_N2_CPUS"
31951	//   "COMMITTED_NVIDIA_A100_GPUS"
31952	//   "COMMITTED_NVIDIA_K80_GPUS"
31953	//   "COMMITTED_NVIDIA_P100_GPUS"
31954	//   "COMMITTED_NVIDIA_P4_GPUS"
31955	//   "COMMITTED_NVIDIA_T4_GPUS"
31956	//   "COMMITTED_NVIDIA_V100_GPUS"
31957	//   "COMMITTED_P2D_CPUS"
31958	//   "CPUS"
31959	//   "CPUS_ALL_REGIONS"
31960	//   "DISKS_TOTAL_GB"
31961	//   "E2_CPUS"
31962	//   "EXTERNAL_NETWORK_LB_FORWARDING_RULES"
31963	//   "EXTERNAL_PROTOCOL_FORWARDING_RULES"
31964	//   "EXTERNAL_VPN_GATEWAYS"
31965	//   "FIREWALLS"
31966	//   "FORWARDING_RULES"
31967	//   "GLOBAL_INTERNAL_ADDRESSES"
31968	//   "GPUS_ALL_REGIONS"
31969	//   "HEALTH_CHECKS"
31970	//   "IMAGES"
31971	//   "INSTANCES"
31972	//   "INSTANCE_GROUPS"
31973	//   "INSTANCE_GROUP_MANAGERS"
31974	//   "INSTANCE_TEMPLATES"
31975	//   "INTERCONNECTS"
31976	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
31977	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
31978	//   "INTERCONNECT_TOTAL_GBPS"
31979	//   "INTERNAL_ADDRESSES"
31980	//   "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES"
31981	//   "IN_PLACE_SNAPSHOTS"
31982	//   "IN_USE_ADDRESSES"
31983	//   "IN_USE_BACKUP_SCHEDULES"
31984	//   "IN_USE_SNAPSHOT_SCHEDULES"
31985	//   "LOCAL_SSD_TOTAL_GB"
31986	//   "M1_CPUS"
31987	//   "M2_CPUS"
31988	//   "MACHINE_IMAGES"
31989	//   "N2A_CPUS"
31990	//   "N2D_CPUS"
31991	//   "N2_CPUS"
31992	//   "NETWORKS"
31993	//   "NETWORK_ENDPOINT_GROUPS"
31994	//   "NETWORK_FIREWALL_POLICIES"
31995	//   "NODE_GROUPS"
31996	//   "NODE_TEMPLATES"
31997	//   "NVIDIA_A100_GPUS"
31998	//   "NVIDIA_K80_GPUS"
31999	//   "NVIDIA_P100_GPUS"
32000	//   "NVIDIA_P100_VWS_GPUS"
32001	//   "NVIDIA_P4_GPUS"
32002	//   "NVIDIA_P4_VWS_GPUS"
32003	//   "NVIDIA_T4_GPUS"
32004	//   "NVIDIA_T4_VWS_GPUS"
32005	//   "NVIDIA_V100_GPUS"
32006	//   "P2D_CPUS"
32007	//   "PACKET_MIRRORINGS"
32008	//   "PD_EXTREME_TOTAL_PROVISIONED_IOPS"
32009	//   "PREEMPTIBLE_CPUS"
32010	//   "PREEMPTIBLE_LOCAL_SSD_GB"
32011	//   "PREEMPTIBLE_NVIDIA_A100_GPUS"
32012	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
32013	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
32014	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
32015	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
32016	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
32017	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
32018	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
32019	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
32020	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
32021	//   "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK"
32022	//   "PUBLIC_ADVERTISED_PREFIXES"
32023	//   "PUBLIC_DELEGATED_PREFIXES"
32024	//   "REGIONAL_AUTOSCALERS"
32025	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
32026	//   "RESERVATIONS"
32027	//   "RESOURCE_POLICIES"
32028	//   "ROUTERS"
32029	//   "ROUTES"
32030	//   "SECURITY_POLICIES"
32031	//   "SECURITY_POLICIES_PER_REGION"
32032	//   "SECURITY_POLICY_CEVAL_RULES"
32033	//   "SECURITY_POLICY_RULES"
32034	//   "SECURITY_POLICY_RULES_PER_REGION"
32035	//   "SNAPSHOTS"
32036	//   "SSD_TOTAL_GB"
32037	//   "SSL_CERTIFICATES"
32038	//   "STATIC_ADDRESSES"
32039	//   "STATIC_BYOIP_ADDRESSES"
32040	//   "SUBNETWORKS"
32041	//   "TARGET_HTTPS_PROXIES"
32042	//   "TARGET_HTTP_PROXIES"
32043	//   "TARGET_INSTANCES"
32044	//   "TARGET_POOLS"
32045	//   "TARGET_SSL_PROXIES"
32046	//   "TARGET_TCP_PROXIES"
32047	//   "TARGET_VPN_GATEWAYS"
32048	//   "URL_MAPS"
32049	//   "VPN_GATEWAYS"
32050	//   "VPN_TUNNELS"
32051	//   "XPN_SERVICE_PROJECTS"
32052	Metric string `json:"metric,omitempty"`
32053
32054	// Owner: [Output Only] Owning resource. This is the resource on which
32055	// this quota is applied.
32056	Owner string `json:"owner,omitempty"`
32057
32058	// Usage: [Output Only] Current usage of this metric.
32059	Usage float64 `json:"usage,omitempty"`
32060
32061	// ForceSendFields is a list of field names (e.g. "Limit") to
32062	// unconditionally include in API requests. By default, fields with
32063	// empty values are omitted from API requests. However, any non-pointer,
32064	// non-interface field appearing in ForceSendFields will be sent to the
32065	// server regardless of whether the field is empty or not. This may be
32066	// used to include empty fields in Patch requests.
32067	ForceSendFields []string `json:"-"`
32068
32069	// NullFields is a list of field names (e.g. "Limit") to include in API
32070	// requests with the JSON null value. By default, fields with empty
32071	// values are omitted from API requests. However, any field with an
32072	// empty value appearing in NullFields will be sent to the server as
32073	// null. It is an error if a field in this list has a non-empty value.
32074	// This may be used to include null fields in Patch requests.
32075	NullFields []string `json:"-"`
32076}
32077
32078func (s *Quota) MarshalJSON() ([]byte, error) {
32079	type NoMethod Quota
32080	raw := NoMethod(*s)
32081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32082}
32083
32084func (s *Quota) UnmarshalJSON(data []byte) error {
32085	type NoMethod Quota
32086	var s1 struct {
32087		Limit gensupport.JSONFloat64 `json:"limit"`
32088		Usage gensupport.JSONFloat64 `json:"usage"`
32089		*NoMethod
32090	}
32091	s1.NoMethod = (*NoMethod)(s)
32092	if err := json.Unmarshal(data, &s1); err != nil {
32093		return err
32094	}
32095	s.Limit = float64(s1.Limit)
32096	s.Usage = float64(s1.Usage)
32097	return nil
32098}
32099
32100// Reference: Represents a reference to a resource.
32101type Reference struct {
32102	// Kind: [Output Only] Type of the resource. Always compute#reference
32103	// for references.
32104	Kind string `json:"kind,omitempty"`
32105
32106	// ReferenceType: A description of the reference type with no implied
32107	// semantics. Possible values include:
32108	// - MEMBER_OF
32109	ReferenceType string `json:"referenceType,omitempty"`
32110
32111	// Referrer: URL of the resource which refers to the target.
32112	Referrer string `json:"referrer,omitempty"`
32113
32114	// Target: URL of the resource to which this reference points.
32115	Target string `json:"target,omitempty"`
32116
32117	// ForceSendFields is a list of field names (e.g. "Kind") to
32118	// unconditionally include in API requests. By default, fields with
32119	// empty values are omitted from API requests. However, any non-pointer,
32120	// non-interface field appearing in ForceSendFields will be sent to the
32121	// server regardless of whether the field is empty or not. This may be
32122	// used to include empty fields in Patch requests.
32123	ForceSendFields []string `json:"-"`
32124
32125	// NullFields is a list of field names (e.g. "Kind") to include in API
32126	// requests with the JSON null value. By default, fields with empty
32127	// values are omitted from API requests. However, any field with an
32128	// empty value appearing in NullFields will be sent to the server as
32129	// null. It is an error if a field in this list has a non-empty value.
32130	// This may be used to include null fields in Patch requests.
32131	NullFields []string `json:"-"`
32132}
32133
32134func (s *Reference) MarshalJSON() ([]byte, error) {
32135	type NoMethod Reference
32136	raw := NoMethod(*s)
32137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32138}
32139
32140// Region: Represents a Region resource.
32141//
32142// A region is a geographical area where a resource is located. For more
32143// information, read Regions and Zones. (== resource_for
32144// {$api_version}.regions ==)
32145type Region struct {
32146	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32147	// format.
32148	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32149
32150	// Deprecated -- [Output Only] The deprecation status associated with
32151	// this region.
32152	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
32153
32154	// Description: [Output Only] Textual description of the resource.
32155	Description string `json:"description,omitempty"`
32156
32157	// Id: [Output Only] The unique identifier for the resource. This
32158	// identifier is defined by the server.
32159	Id uint64 `json:"id,omitempty,string"`
32160
32161	// Kind: [Output Only] Type of the resource. Always compute#region for
32162	// regions.
32163	Kind string `json:"kind,omitempty"`
32164
32165	// Name: [Output Only] Name of the resource.
32166	Name string `json:"name,omitempty"`
32167
32168	// Quotas: [Output Only] Quotas assigned to this region.
32169	Quotas []*Quota `json:"quotas,omitempty"`
32170
32171	// SelfLink: [Output Only] Server-defined URL for the resource.
32172	SelfLink string `json:"selfLink,omitempty"`
32173
32174	// Status: [Output Only] Status of the region, either UP or DOWN.
32175	//
32176	// Possible values:
32177	//   "DOWN"
32178	//   "UP"
32179	Status string `json:"status,omitempty"`
32180
32181	// SupportsPzs: [Output Only] Reserved for future use.
32182	SupportsPzs bool `json:"supportsPzs,omitempty"`
32183
32184	// Zones: [Output Only] A list of zones available in this region, in the
32185	// form of resource URLs.
32186	Zones []string `json:"zones,omitempty"`
32187
32188	// ServerResponse contains the HTTP response code and headers from the
32189	// server.
32190	googleapi.ServerResponse `json:"-"`
32191
32192	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
32193	// to unconditionally include in API requests. By default, fields with
32194	// empty values are omitted from API requests. However, any non-pointer,
32195	// non-interface field appearing in ForceSendFields will be sent to the
32196	// server regardless of whether the field is empty or not. This may be
32197	// used to include empty fields in Patch requests.
32198	ForceSendFields []string `json:"-"`
32199
32200	// NullFields is a list of field names (e.g. "CreationTimestamp") to
32201	// include in API requests with the JSON null value. By default, fields
32202	// with empty values are omitted from API requests. However, any field
32203	// with an empty value appearing in NullFields will be sent to the
32204	// server as null. It is an error if a field in this list has a
32205	// non-empty value. This may be used to include null fields in Patch
32206	// requests.
32207	NullFields []string `json:"-"`
32208}
32209
32210func (s *Region) MarshalJSON() ([]byte, error) {
32211	type NoMethod Region
32212	raw := NoMethod(*s)
32213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32214}
32215
32216// RegionAutoscalerList: Contains a list of autoscalers.
32217type RegionAutoscalerList struct {
32218	// Id: [Output Only] Unique identifier for the resource; defined by the
32219	// server.
32220	Id string `json:"id,omitempty"`
32221
32222	// Items: A list of Autoscaler resources.
32223	Items []*Autoscaler `json:"items,omitempty"`
32224
32225	// Kind: Type of resource.
32226	Kind string `json:"kind,omitempty"`
32227
32228	// NextPageToken: [Output Only] This token allows you to get the next
32229	// page of results for list requests. If the number of results is larger
32230	// than maxResults, use the nextPageToken as a value for the query
32231	// parameter pageToken in the next list request. Subsequent list
32232	// requests will have their own nextPageToken to continue paging through
32233	// the results.
32234	NextPageToken string `json:"nextPageToken,omitempty"`
32235
32236	// SelfLink: [Output Only] Server-defined URL for this resource.
32237	SelfLink string `json:"selfLink,omitempty"`
32238
32239	// Warning: [Output Only] Informational warning message.
32240	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
32241
32242	// ServerResponse contains the HTTP response code and headers from the
32243	// server.
32244	googleapi.ServerResponse `json:"-"`
32245
32246	// ForceSendFields is a list of field names (e.g. "Id") to
32247	// unconditionally include in API requests. By default, fields with
32248	// empty values are omitted from API requests. However, any non-pointer,
32249	// non-interface field appearing in ForceSendFields will be sent to the
32250	// server regardless of whether the field is empty or not. This may be
32251	// used to include empty fields in Patch requests.
32252	ForceSendFields []string `json:"-"`
32253
32254	// NullFields is a list of field names (e.g. "Id") to include in API
32255	// requests with the JSON null value. By default, fields with empty
32256	// values are omitted from API requests. However, any field with an
32257	// empty value appearing in NullFields will be sent to the server as
32258	// null. It is an error if a field in this list has a non-empty value.
32259	// This may be used to include null fields in Patch requests.
32260	NullFields []string `json:"-"`
32261}
32262
32263func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
32264	type NoMethod RegionAutoscalerList
32265	raw := NoMethod(*s)
32266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32267}
32268
32269// RegionAutoscalerListWarning: [Output Only] Informational warning
32270// message.
32271type RegionAutoscalerListWarning struct {
32272	// Code: [Output Only] A warning code, if applicable. For example,
32273	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32274	// the response.
32275	//
32276	// Possible values:
32277	//   "CLEANUP_FAILED"
32278	//   "DEPRECATED_RESOURCE_USED"
32279	//   "DEPRECATED_TYPE_USED"
32280	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32281	//   "EXPERIMENTAL_TYPE_USED"
32282	//   "EXTERNAL_API_WARNING"
32283	//   "FIELD_VALUE_OVERRIDEN"
32284	//   "INJECTED_KERNELS_DEPRECATED"
32285	//   "LARGE_DEPLOYMENT_WARNING"
32286	//   "MISSING_TYPE_DEPENDENCY"
32287	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32288	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32289	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32290	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32291	//   "NEXT_HOP_NOT_RUNNING"
32292	//   "NOT_CRITICAL_ERROR"
32293	//   "NO_RESULTS_ON_PAGE"
32294	//   "PARTIAL_SUCCESS"
32295	//   "REQUIRED_TOS_AGREEMENT"
32296	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32297	//   "RESOURCE_NOT_DELETED"
32298	//   "SCHEMA_VALIDATION_IGNORED"
32299	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32300	//   "UNDECLARED_PROPERTIES"
32301	//   "UNREACHABLE"
32302	Code string `json:"code,omitempty"`
32303
32304	// Data: [Output Only] Metadata about this warning in key: value format.
32305	// For example:
32306	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32307	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
32308
32309	// Message: [Output Only] A human-readable description of the warning
32310	// code.
32311	Message string `json:"message,omitempty"`
32312
32313	// ForceSendFields is a list of field names (e.g. "Code") to
32314	// unconditionally include in API requests. By default, fields with
32315	// empty values are omitted from API requests. However, any non-pointer,
32316	// non-interface field appearing in ForceSendFields will be sent to the
32317	// server regardless of whether the field is empty or not. This may be
32318	// used to include empty fields in Patch requests.
32319	ForceSendFields []string `json:"-"`
32320
32321	// NullFields is a list of field names (e.g. "Code") to include in API
32322	// requests with the JSON null value. By default, fields with empty
32323	// values are omitted from API requests. However, any field with an
32324	// empty value appearing in NullFields will be sent to the server as
32325	// null. It is an error if a field in this list has a non-empty value.
32326	// This may be used to include null fields in Patch requests.
32327	NullFields []string `json:"-"`
32328}
32329
32330func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
32331	type NoMethod RegionAutoscalerListWarning
32332	raw := NoMethod(*s)
32333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32334}
32335
32336type RegionAutoscalerListWarningData struct {
32337	// Key: [Output Only] A key that provides more detail on the warning
32338	// being returned. For example, for warnings where there are no results
32339	// in a list request for a particular zone, this key might be scope and
32340	// the key value might be the zone name. Other examples might be a key
32341	// indicating a deprecated resource and a suggested replacement, or a
32342	// warning about invalid network settings (for example, if an instance
32343	// attempts to perform IP forwarding but is not enabled for IP
32344	// forwarding).
32345	Key string `json:"key,omitempty"`
32346
32347	// Value: [Output Only] A warning data value corresponding to the key.
32348	Value string `json:"value,omitempty"`
32349
32350	// ForceSendFields is a list of field names (e.g. "Key") to
32351	// unconditionally include in API requests. By default, fields with
32352	// empty values are omitted from API requests. However, any non-pointer,
32353	// non-interface field appearing in ForceSendFields will be sent to the
32354	// server regardless of whether the field is empty or not. This may be
32355	// used to include empty fields in Patch requests.
32356	ForceSendFields []string `json:"-"`
32357
32358	// NullFields is a list of field names (e.g. "Key") to include in API
32359	// requests with the JSON null value. By default, fields with empty
32360	// values are omitted from API requests. However, any field with an
32361	// empty value appearing in NullFields will be sent to the server as
32362	// null. It is an error if a field in this list has a non-empty value.
32363	// This may be used to include null fields in Patch requests.
32364	NullFields []string `json:"-"`
32365}
32366
32367func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
32368	type NoMethod RegionAutoscalerListWarningData
32369	raw := NoMethod(*s)
32370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32371}
32372
32373type RegionCommitmentsUpdateReservationsRequest struct {
32374	// Reservations: A list of two reservations to transfer GPUs and local
32375	// SSD between.
32376	Reservations []*Reservation `json:"reservations,omitempty"`
32377
32378	// ForceSendFields is a list of field names (e.g. "Reservations") to
32379	// unconditionally include in API requests. By default, fields with
32380	// empty values are omitted from API requests. However, any non-pointer,
32381	// non-interface field appearing in ForceSendFields will be sent to the
32382	// server regardless of whether the field is empty or not. This may be
32383	// used to include empty fields in Patch requests.
32384	ForceSendFields []string `json:"-"`
32385
32386	// NullFields is a list of field names (e.g. "Reservations") to include
32387	// in API requests with the JSON null value. By default, fields with
32388	// empty values are omitted from API requests. However, any field with
32389	// an empty value appearing in NullFields will be sent to the server as
32390	// null. It is an error if a field in this list has a non-empty value.
32391	// This may be used to include null fields in Patch requests.
32392	NullFields []string `json:"-"`
32393}
32394
32395func (s *RegionCommitmentsUpdateReservationsRequest) MarshalJSON() ([]byte, error) {
32396	type NoMethod RegionCommitmentsUpdateReservationsRequest
32397	raw := NoMethod(*s)
32398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32399}
32400
32401type RegionDiskTypeList struct {
32402	// Id: [Output Only] Unique identifier for the resource; defined by the
32403	// server.
32404	Id string `json:"id,omitempty"`
32405
32406	// Items: A list of DiskType resources.
32407	Items []*DiskType `json:"items,omitempty"`
32408
32409	// Kind: [Output Only] Type of resource. Always
32410	// compute#regionDiskTypeList for region disk types.
32411	Kind string `json:"kind,omitempty"`
32412
32413	// NextPageToken: [Output Only] This token allows you to get the next
32414	// page of results for list requests. If the number of results is larger
32415	// than maxResults, use the nextPageToken as a value for the query
32416	// parameter pageToken in the next list request. Subsequent list
32417	// requests will have their own nextPageToken to continue paging through
32418	// the results.
32419	NextPageToken string `json:"nextPageToken,omitempty"`
32420
32421	// SelfLink: [Output Only] Server-defined URL for this resource.
32422	SelfLink string `json:"selfLink,omitempty"`
32423
32424	// Warning: [Output Only] Informational warning message.
32425	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
32426
32427	// ServerResponse contains the HTTP response code and headers from the
32428	// server.
32429	googleapi.ServerResponse `json:"-"`
32430
32431	// ForceSendFields is a list of field names (e.g. "Id") to
32432	// unconditionally include in API requests. By default, fields with
32433	// empty values are omitted from API requests. However, any non-pointer,
32434	// non-interface field appearing in ForceSendFields will be sent to the
32435	// server regardless of whether the field is empty or not. This may be
32436	// used to include empty fields in Patch requests.
32437	ForceSendFields []string `json:"-"`
32438
32439	// NullFields is a list of field names (e.g. "Id") to include in API
32440	// requests with the JSON null value. By default, fields with empty
32441	// values are omitted from API requests. However, any field with an
32442	// empty value appearing in NullFields will be sent to the server as
32443	// null. It is an error if a field in this list has a non-empty value.
32444	// This may be used to include null fields in Patch requests.
32445	NullFields []string `json:"-"`
32446}
32447
32448func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
32449	type NoMethod RegionDiskTypeList
32450	raw := NoMethod(*s)
32451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32452}
32453
32454// RegionDiskTypeListWarning: [Output Only] Informational warning
32455// message.
32456type RegionDiskTypeListWarning struct {
32457	// Code: [Output Only] A warning code, if applicable. For example,
32458	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32459	// the response.
32460	//
32461	// Possible values:
32462	//   "CLEANUP_FAILED"
32463	//   "DEPRECATED_RESOURCE_USED"
32464	//   "DEPRECATED_TYPE_USED"
32465	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32466	//   "EXPERIMENTAL_TYPE_USED"
32467	//   "EXTERNAL_API_WARNING"
32468	//   "FIELD_VALUE_OVERRIDEN"
32469	//   "INJECTED_KERNELS_DEPRECATED"
32470	//   "LARGE_DEPLOYMENT_WARNING"
32471	//   "MISSING_TYPE_DEPENDENCY"
32472	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32473	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32474	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32475	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32476	//   "NEXT_HOP_NOT_RUNNING"
32477	//   "NOT_CRITICAL_ERROR"
32478	//   "NO_RESULTS_ON_PAGE"
32479	//   "PARTIAL_SUCCESS"
32480	//   "REQUIRED_TOS_AGREEMENT"
32481	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32482	//   "RESOURCE_NOT_DELETED"
32483	//   "SCHEMA_VALIDATION_IGNORED"
32484	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32485	//   "UNDECLARED_PROPERTIES"
32486	//   "UNREACHABLE"
32487	Code string `json:"code,omitempty"`
32488
32489	// Data: [Output Only] Metadata about this warning in key: value format.
32490	// For example:
32491	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32492	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
32493
32494	// Message: [Output Only] A human-readable description of the warning
32495	// code.
32496	Message string `json:"message,omitempty"`
32497
32498	// ForceSendFields is a list of field names (e.g. "Code") to
32499	// unconditionally include in API requests. By default, fields with
32500	// empty values are omitted from API requests. However, any non-pointer,
32501	// non-interface field appearing in ForceSendFields will be sent to the
32502	// server regardless of whether the field is empty or not. This may be
32503	// used to include empty fields in Patch requests.
32504	ForceSendFields []string `json:"-"`
32505
32506	// NullFields is a list of field names (e.g. "Code") to include in API
32507	// requests with the JSON null value. By default, fields with empty
32508	// values are omitted from API requests. However, any field with an
32509	// empty value appearing in NullFields will be sent to the server as
32510	// null. It is an error if a field in this list has a non-empty value.
32511	// This may be used to include null fields in Patch requests.
32512	NullFields []string `json:"-"`
32513}
32514
32515func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
32516	type NoMethod RegionDiskTypeListWarning
32517	raw := NoMethod(*s)
32518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32519}
32520
32521type RegionDiskTypeListWarningData struct {
32522	// Key: [Output Only] A key that provides more detail on the warning
32523	// being returned. For example, for warnings where there are no results
32524	// in a list request for a particular zone, this key might be scope and
32525	// the key value might be the zone name. Other examples might be a key
32526	// indicating a deprecated resource and a suggested replacement, or a
32527	// warning about invalid network settings (for example, if an instance
32528	// attempts to perform IP forwarding but is not enabled for IP
32529	// forwarding).
32530	Key string `json:"key,omitempty"`
32531
32532	// Value: [Output Only] A warning data value corresponding to the key.
32533	Value string `json:"value,omitempty"`
32534
32535	// ForceSendFields is a list of field names (e.g. "Key") to
32536	// unconditionally include in API requests. By default, fields with
32537	// empty values are omitted from API requests. However, any non-pointer,
32538	// non-interface field appearing in ForceSendFields will be sent to the
32539	// server regardless of whether the field is empty or not. This may be
32540	// used to include empty fields in Patch requests.
32541	ForceSendFields []string `json:"-"`
32542
32543	// NullFields is a list of field names (e.g. "Key") to include in API
32544	// requests with the JSON null value. By default, fields with empty
32545	// values are omitted from API requests. However, any field with an
32546	// empty value appearing in NullFields will be sent to the server as
32547	// null. It is an error if a field in this list has a non-empty value.
32548	// This may be used to include null fields in Patch requests.
32549	NullFields []string `json:"-"`
32550}
32551
32552func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
32553	type NoMethod RegionDiskTypeListWarningData
32554	raw := NoMethod(*s)
32555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32556}
32557
32558type RegionDisksAddResourcePoliciesRequest struct {
32559	// ResourcePolicies: Resource policies to be added to this disk.
32560	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
32561
32562	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
32563	// unconditionally include in API requests. By default, fields with
32564	// empty values are omitted from API requests. However, any non-pointer,
32565	// non-interface field appearing in ForceSendFields will be sent to the
32566	// server regardless of whether the field is empty or not. This may be
32567	// used to include empty fields in Patch requests.
32568	ForceSendFields []string `json:"-"`
32569
32570	// NullFields is a list of field names (e.g. "ResourcePolicies") to
32571	// include in API requests with the JSON null value. By default, fields
32572	// with empty values are omitted from API requests. However, any field
32573	// with an empty value appearing in NullFields will be sent to the
32574	// server as null. It is an error if a field in this list has a
32575	// non-empty value. This may be used to include null fields in Patch
32576	// requests.
32577	NullFields []string `json:"-"`
32578}
32579
32580func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
32581	type NoMethod RegionDisksAddResourcePoliciesRequest
32582	raw := NoMethod(*s)
32583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32584}
32585
32586type RegionDisksRemoveResourcePoliciesRequest struct {
32587	// ResourcePolicies: Resource policies to be removed from this disk.
32588	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
32589
32590	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
32591	// unconditionally include in API requests. By default, fields with
32592	// empty values are omitted from API requests. However, any non-pointer,
32593	// non-interface field appearing in ForceSendFields will be sent to the
32594	// server regardless of whether the field is empty or not. This may be
32595	// used to include empty fields in Patch requests.
32596	ForceSendFields []string `json:"-"`
32597
32598	// NullFields is a list of field names (e.g. "ResourcePolicies") to
32599	// include in API requests with the JSON null value. By default, fields
32600	// with empty values are omitted from API requests. However, any field
32601	// with an empty value appearing in NullFields will be sent to the
32602	// server as null. It is an error if a field in this list has a
32603	// non-empty value. This may be used to include null fields in Patch
32604	// requests.
32605	NullFields []string `json:"-"`
32606}
32607
32608func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
32609	type NoMethod RegionDisksRemoveResourcePoliciesRequest
32610	raw := NoMethod(*s)
32611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32612}
32613
32614type RegionDisksResizeRequest struct {
32615	// SizeGb: The new size of the regional persistent disk, which is
32616	// specified in GB.
32617	SizeGb int64 `json:"sizeGb,omitempty,string"`
32618
32619	// ForceSendFields is a list of field names (e.g. "SizeGb") 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. "SizeGb") 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 *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
32637	type NoMethod RegionDisksResizeRequest
32638	raw := NoMethod(*s)
32639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32640}
32641
32642// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
32643type RegionInstanceGroupList struct {
32644	// Id: [Output Only] Unique identifier for the resource; defined by the
32645	// server.
32646	Id string `json:"id,omitempty"`
32647
32648	// Items: A list of InstanceGroup resources.
32649	Items []*InstanceGroup `json:"items,omitempty"`
32650
32651	// Kind: The resource type.
32652	Kind string `json:"kind,omitempty"`
32653
32654	// NextPageToken: [Output Only] This token allows you to get the next
32655	// page of results for list requests. If the number of results is larger
32656	// than maxResults, use the nextPageToken as a value for the query
32657	// parameter pageToken in the next list request. Subsequent list
32658	// requests will have their own nextPageToken to continue paging through
32659	// the results.
32660	NextPageToken string `json:"nextPageToken,omitempty"`
32661
32662	// SelfLink: [Output Only] Server-defined URL for this resource.
32663	SelfLink string `json:"selfLink,omitempty"`
32664
32665	// Warning: [Output Only] Informational warning message.
32666	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
32667
32668	// ServerResponse contains the HTTP response code and headers from the
32669	// server.
32670	googleapi.ServerResponse `json:"-"`
32671
32672	// ForceSendFields is a list of field names (e.g. "Id") to
32673	// unconditionally include in API requests. By default, fields with
32674	// empty values are omitted from API requests. However, any non-pointer,
32675	// non-interface field appearing in ForceSendFields will be sent to the
32676	// server regardless of whether the field is empty or not. This may be
32677	// used to include empty fields in Patch requests.
32678	ForceSendFields []string `json:"-"`
32679
32680	// NullFields is a list of field names (e.g. "Id") to include in API
32681	// requests with the JSON null value. By default, fields with empty
32682	// values are omitted from API requests. However, any field with an
32683	// empty value appearing in NullFields will be sent to the server as
32684	// null. It is an error if a field in this list has a non-empty value.
32685	// This may be used to include null fields in Patch requests.
32686	NullFields []string `json:"-"`
32687}
32688
32689func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
32690	type NoMethod RegionInstanceGroupList
32691	raw := NoMethod(*s)
32692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32693}
32694
32695// RegionInstanceGroupListWarning: [Output Only] Informational warning
32696// message.
32697type RegionInstanceGroupListWarning struct {
32698	// Code: [Output Only] A warning code, if applicable. For example,
32699	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32700	// the response.
32701	//
32702	// Possible values:
32703	//   "CLEANUP_FAILED"
32704	//   "DEPRECATED_RESOURCE_USED"
32705	//   "DEPRECATED_TYPE_USED"
32706	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32707	//   "EXPERIMENTAL_TYPE_USED"
32708	//   "EXTERNAL_API_WARNING"
32709	//   "FIELD_VALUE_OVERRIDEN"
32710	//   "INJECTED_KERNELS_DEPRECATED"
32711	//   "LARGE_DEPLOYMENT_WARNING"
32712	//   "MISSING_TYPE_DEPENDENCY"
32713	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32714	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32715	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32716	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32717	//   "NEXT_HOP_NOT_RUNNING"
32718	//   "NOT_CRITICAL_ERROR"
32719	//   "NO_RESULTS_ON_PAGE"
32720	//   "PARTIAL_SUCCESS"
32721	//   "REQUIRED_TOS_AGREEMENT"
32722	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32723	//   "RESOURCE_NOT_DELETED"
32724	//   "SCHEMA_VALIDATION_IGNORED"
32725	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32726	//   "UNDECLARED_PROPERTIES"
32727	//   "UNREACHABLE"
32728	Code string `json:"code,omitempty"`
32729
32730	// Data: [Output Only] Metadata about this warning in key: value format.
32731	// For example:
32732	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32733	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
32734
32735	// Message: [Output Only] A human-readable description of the warning
32736	// code.
32737	Message string `json:"message,omitempty"`
32738
32739	// ForceSendFields is a list of field names (e.g. "Code") to
32740	// unconditionally include in API requests. By default, fields with
32741	// empty values are omitted from API requests. However, any non-pointer,
32742	// non-interface field appearing in ForceSendFields will be sent to the
32743	// server regardless of whether the field is empty or not. This may be
32744	// used to include empty fields in Patch requests.
32745	ForceSendFields []string `json:"-"`
32746
32747	// NullFields is a list of field names (e.g. "Code") to include in API
32748	// requests with the JSON null value. By default, fields with empty
32749	// values are omitted from API requests. However, any field with an
32750	// empty value appearing in NullFields will be sent to the server as
32751	// null. It is an error if a field in this list has a non-empty value.
32752	// This may be used to include null fields in Patch requests.
32753	NullFields []string `json:"-"`
32754}
32755
32756func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
32757	type NoMethod RegionInstanceGroupListWarning
32758	raw := NoMethod(*s)
32759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32760}
32761
32762type RegionInstanceGroupListWarningData struct {
32763	// Key: [Output Only] A key that provides more detail on the warning
32764	// being returned. For example, for warnings where there are no results
32765	// in a list request for a particular zone, this key might be scope and
32766	// the key value might be the zone name. Other examples might be a key
32767	// indicating a deprecated resource and a suggested replacement, or a
32768	// warning about invalid network settings (for example, if an instance
32769	// attempts to perform IP forwarding but is not enabled for IP
32770	// forwarding).
32771	Key string `json:"key,omitempty"`
32772
32773	// Value: [Output Only] A warning data value corresponding to the key.
32774	Value string `json:"value,omitempty"`
32775
32776	// ForceSendFields is a list of field names (e.g. "Key") to
32777	// unconditionally include in API requests. By default, fields with
32778	// empty values are omitted from API requests. However, any non-pointer,
32779	// non-interface field appearing in ForceSendFields will be sent to the
32780	// server regardless of whether the field is empty or not. This may be
32781	// used to include empty fields in Patch requests.
32782	ForceSendFields []string `json:"-"`
32783
32784	// NullFields is a list of field names (e.g. "Key") to include in API
32785	// requests with the JSON null value. By default, fields with empty
32786	// values are omitted from API requests. However, any field with an
32787	// empty value appearing in NullFields will be sent to the server as
32788	// null. It is an error if a field in this list has a non-empty value.
32789	// This may be used to include null fields in Patch requests.
32790	NullFields []string `json:"-"`
32791}
32792
32793func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
32794	type NoMethod RegionInstanceGroupListWarningData
32795	raw := NoMethod(*s)
32796	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32797}
32798
32799// RegionInstanceGroupManagerDeleteInstanceConfigReq:
32800// RegionInstanceGroupManagers.deletePerInstanceConfigs
32801type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
32802	// Names: The list of instance names for which we want to delete
32803	// per-instance configs on this managed instance group.
32804	Names []string `json:"names,omitempty"`
32805
32806	// ForceSendFields is a list of field names (e.g. "Names") to
32807	// unconditionally include in API requests. By default, fields with
32808	// empty values are omitted from API requests. However, any non-pointer,
32809	// non-interface field appearing in ForceSendFields will be sent to the
32810	// server regardless of whether the field is empty or not. This may be
32811	// used to include empty fields in Patch requests.
32812	ForceSendFields []string `json:"-"`
32813
32814	// NullFields is a list of field names (e.g. "Names") to include in API
32815	// requests with the JSON null value. By default, fields with empty
32816	// values are omitted from API requests. However, any field with an
32817	// empty value appearing in NullFields will be sent to the server as
32818	// null. It is an error if a field in this list has a non-empty value.
32819	// This may be used to include null fields in Patch requests.
32820	NullFields []string `json:"-"`
32821}
32822
32823func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
32824	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
32825	raw := NoMethod(*s)
32826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32827}
32828
32829// RegionInstanceGroupManagerList: Contains a list of managed instance
32830// groups.
32831type RegionInstanceGroupManagerList struct {
32832	// Id: [Output Only] Unique identifier for the resource; defined by the
32833	// server.
32834	Id string `json:"id,omitempty"`
32835
32836	// Items: A list of InstanceGroupManager resources.
32837	Items []*InstanceGroupManager `json:"items,omitempty"`
32838
32839	// Kind: [Output Only] The resource type, which is always
32840	// compute#instanceGroupManagerList for a list of managed instance
32841	// groups that exist in th regional scope.
32842	Kind string `json:"kind,omitempty"`
32843
32844	// NextPageToken: [Output Only] This token allows you to get the next
32845	// page of results for list requests. If the number of results is larger
32846	// than maxResults, use the nextPageToken as a value for the query
32847	// parameter pageToken in the next list request. Subsequent list
32848	// requests will have their own nextPageToken to continue paging through
32849	// the results.
32850	NextPageToken string `json:"nextPageToken,omitempty"`
32851
32852	// SelfLink: [Output Only] Server-defined URL for this resource.
32853	SelfLink string `json:"selfLink,omitempty"`
32854
32855	// Warning: [Output Only] Informational warning message.
32856	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
32857
32858	// ServerResponse contains the HTTP response code and headers from the
32859	// server.
32860	googleapi.ServerResponse `json:"-"`
32861
32862	// ForceSendFields is a list of field names (e.g. "Id") to
32863	// unconditionally include in API requests. By default, fields with
32864	// empty values are omitted from API requests. However, any non-pointer,
32865	// non-interface field appearing in ForceSendFields will be sent to the
32866	// server regardless of whether the field is empty or not. This may be
32867	// used to include empty fields in Patch requests.
32868	ForceSendFields []string `json:"-"`
32869
32870	// NullFields is a list of field names (e.g. "Id") to include in API
32871	// requests with the JSON null value. By default, fields with empty
32872	// values are omitted from API requests. However, any field with an
32873	// empty value appearing in NullFields will be sent to the server as
32874	// null. It is an error if a field in this list has a non-empty value.
32875	// This may be used to include null fields in Patch requests.
32876	NullFields []string `json:"-"`
32877}
32878
32879func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
32880	type NoMethod RegionInstanceGroupManagerList
32881	raw := NoMethod(*s)
32882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32883}
32884
32885// RegionInstanceGroupManagerListWarning: [Output Only] Informational
32886// warning message.
32887type RegionInstanceGroupManagerListWarning struct {
32888	// Code: [Output Only] A warning code, if applicable. For example,
32889	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32890	// the response.
32891	//
32892	// Possible values:
32893	//   "CLEANUP_FAILED"
32894	//   "DEPRECATED_RESOURCE_USED"
32895	//   "DEPRECATED_TYPE_USED"
32896	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32897	//   "EXPERIMENTAL_TYPE_USED"
32898	//   "EXTERNAL_API_WARNING"
32899	//   "FIELD_VALUE_OVERRIDEN"
32900	//   "INJECTED_KERNELS_DEPRECATED"
32901	//   "LARGE_DEPLOYMENT_WARNING"
32902	//   "MISSING_TYPE_DEPENDENCY"
32903	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32904	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32905	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32906	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32907	//   "NEXT_HOP_NOT_RUNNING"
32908	//   "NOT_CRITICAL_ERROR"
32909	//   "NO_RESULTS_ON_PAGE"
32910	//   "PARTIAL_SUCCESS"
32911	//   "REQUIRED_TOS_AGREEMENT"
32912	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32913	//   "RESOURCE_NOT_DELETED"
32914	//   "SCHEMA_VALIDATION_IGNORED"
32915	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32916	//   "UNDECLARED_PROPERTIES"
32917	//   "UNREACHABLE"
32918	Code string `json:"code,omitempty"`
32919
32920	// Data: [Output Only] Metadata about this warning in key: value format.
32921	// For example:
32922	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32923	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
32924
32925	// Message: [Output Only] A human-readable description of the warning
32926	// code.
32927	Message string `json:"message,omitempty"`
32928
32929	// ForceSendFields is a list of field names (e.g. "Code") to
32930	// unconditionally include in API requests. By default, fields with
32931	// empty values are omitted from API requests. However, any non-pointer,
32932	// non-interface field appearing in ForceSendFields will be sent to the
32933	// server regardless of whether the field is empty or not. This may be
32934	// used to include empty fields in Patch requests.
32935	ForceSendFields []string `json:"-"`
32936
32937	// NullFields is a list of field names (e.g. "Code") to include in API
32938	// requests with the JSON null value. By default, fields with empty
32939	// values are omitted from API requests. However, any field with an
32940	// empty value appearing in NullFields will be sent to the server as
32941	// null. It is an error if a field in this list has a non-empty value.
32942	// This may be used to include null fields in Patch requests.
32943	NullFields []string `json:"-"`
32944}
32945
32946func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
32947	type NoMethod RegionInstanceGroupManagerListWarning
32948	raw := NoMethod(*s)
32949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32950}
32951
32952type RegionInstanceGroupManagerListWarningData struct {
32953	// Key: [Output Only] A key that provides more detail on the warning
32954	// being returned. For example, for warnings where there are no results
32955	// in a list request for a particular zone, this key might be scope and
32956	// the key value might be the zone name. Other examples might be a key
32957	// indicating a deprecated resource and a suggested replacement, or a
32958	// warning about invalid network settings (for example, if an instance
32959	// attempts to perform IP forwarding but is not enabled for IP
32960	// forwarding).
32961	Key string `json:"key,omitempty"`
32962
32963	// Value: [Output Only] A warning data value corresponding to the key.
32964	Value string `json:"value,omitempty"`
32965
32966	// ForceSendFields is a list of field names (e.g. "Key") to
32967	// unconditionally include in API requests. By default, fields with
32968	// empty values are omitted from API requests. However, any non-pointer,
32969	// non-interface field appearing in ForceSendFields will be sent to the
32970	// server regardless of whether the field is empty or not. This may be
32971	// used to include empty fields in Patch requests.
32972	ForceSendFields []string `json:"-"`
32973
32974	// NullFields is a list of field names (e.g. "Key") to include in API
32975	// requests with the JSON null value. By default, fields with empty
32976	// values are omitted from API requests. However, any field with an
32977	// empty value appearing in NullFields will be sent to the server as
32978	// null. It is an error if a field in this list has a non-empty value.
32979	// This may be used to include null fields in Patch requests.
32980	NullFields []string `json:"-"`
32981}
32982
32983func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
32984	type NoMethod RegionInstanceGroupManagerListWarningData
32985	raw := NoMethod(*s)
32986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32987}
32988
32989// RegionInstanceGroupManagerPatchInstanceConfigReq:
32990// RegionInstanceGroupManagers.patchPerInstanceConfigs
32991type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
32992	// PerInstanceConfigs: The list of per-instance configs to insert or
32993	// patch on this managed instance group.
32994	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
32995
32996	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
32997	// to unconditionally include in API requests. By default, fields with
32998	// empty values are omitted from API requests. However, any non-pointer,
32999	// non-interface field appearing in ForceSendFields will be sent to the
33000	// server regardless of whether the field is empty or not. This may be
33001	// used to include empty fields in Patch requests.
33002	ForceSendFields []string `json:"-"`
33003
33004	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
33005	// include in API requests with the JSON null value. By default, fields
33006	// with empty values are omitted from API requests. However, any field
33007	// with an empty value appearing in NullFields will be sent to the
33008	// server as null. It is an error if a field in this list has a
33009	// non-empty value. This may be used to include null fields in Patch
33010	// requests.
33011	NullFields []string `json:"-"`
33012}
33013
33014func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
33015	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
33016	raw := NoMethod(*s)
33017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33018}
33019
33020// RegionInstanceGroupManagerUpdateInstanceConfigReq:
33021// RegionInstanceGroupManagers.updatePerInstanceConfigs
33022type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
33023	// PerInstanceConfigs: The list of per-instance configs to insert or
33024	// patch on this managed instance group.
33025	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
33026
33027	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
33028	// to unconditionally include in API requests. By default, fields with
33029	// empty values are omitted from API requests. However, any non-pointer,
33030	// non-interface field appearing in ForceSendFields will be sent to the
33031	// server regardless of whether the field is empty or not. This may be
33032	// used to include empty fields in Patch requests.
33033	ForceSendFields []string `json:"-"`
33034
33035	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
33036	// include in API requests with the JSON null value. By default, fields
33037	// with empty values are omitted from API requests. However, any field
33038	// with an empty value appearing in NullFields will be sent to the
33039	// server as null. It is an error if a field in this list has a
33040	// non-empty value. This may be used to include null fields in Patch
33041	// requests.
33042	NullFields []string `json:"-"`
33043}
33044
33045func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
33046	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
33047	raw := NoMethod(*s)
33048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33049}
33050
33051type RegionInstanceGroupManagersAbandonInstancesRequest struct {
33052	// Instances: The URLs of one or more instances to abandon. This can be
33053	// a full URL or a partial URL, such as
33054	// zones/[ZONE]/instances/[INSTANCE_NAME].
33055	Instances []string `json:"instances,omitempty"`
33056
33057	// ForceSendFields is a list of field names (e.g. "Instances") to
33058	// unconditionally include in API requests. By default, fields with
33059	// empty values are omitted from API requests. However, any non-pointer,
33060	// non-interface field appearing in ForceSendFields will be sent to the
33061	// server regardless of whether the field is empty or not. This may be
33062	// used to include empty fields in Patch requests.
33063	ForceSendFields []string `json:"-"`
33064
33065	// NullFields is a list of field names (e.g. "Instances") to include in
33066	// API requests with the JSON null value. By default, fields with empty
33067	// values are omitted from API requests. However, any field with an
33068	// empty value appearing in NullFields will be sent to the server as
33069	// null. It is an error if a field in this list has a non-empty value.
33070	// This may be used to include null fields in Patch requests.
33071	NullFields []string `json:"-"`
33072}
33073
33074func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
33075	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
33076	raw := NoMethod(*s)
33077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33078}
33079
33080// RegionInstanceGroupManagersApplyUpdatesRequest:
33081// RegionInstanceGroupManagers.applyUpdatesToInstances
33082type RegionInstanceGroupManagersApplyUpdatesRequest struct {
33083	// AllInstances: Flag to update all instances instead of specified list
33084	// of ?instances?. If the flag is set to true then the instances may not
33085	// be specified in the request.
33086	AllInstances bool `json:"allInstances,omitempty"`
33087
33088	// Instances: The list of URLs of one or more instances for which you
33089	// want to apply updates. Each URL can be a full URL or a partial URL,
33090	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
33091	Instances []string `json:"instances,omitempty"`
33092
33093	// MinimalAction: The minimal action that you want to perform on each
33094	// instance during the update:
33095	// - REPLACE: At minimum, delete the instance and create it again.
33096	// - RESTART: Stop the instance and start it again.
33097	// - REFRESH: Do not stop the instance.
33098	// - NONE: Do not disrupt the instance at all.  By default, the minimum
33099	// action is NONE. If your update requires a more disruptive action than
33100	// you set with this flag, the necessary action is performed to execute
33101	// the update.
33102	//
33103	// Possible values:
33104	//   "NONE"
33105	//   "REFRESH"
33106	//   "REPLACE"
33107	//   "RESTART"
33108	MinimalAction string `json:"minimalAction,omitempty"`
33109
33110	// MostDisruptiveAllowedAction: The most disruptive action that you want
33111	// to perform on each instance during the update:
33112	// - REPLACE: Delete the instance and create it again.
33113	// - RESTART: Stop the instance and start it again.
33114	// - REFRESH: Do not stop the instance.
33115	// - NONE: Do not disrupt the instance at all.  By default, the most
33116	// disruptive allowed action is REPLACE. If your update requires a more
33117	// disruptive action than you set with this flag, the update request
33118	// will fail.
33119	//
33120	// Possible values:
33121	//   "NONE"
33122	//   "REFRESH"
33123	//   "REPLACE"
33124	//   "RESTART"
33125	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
33126
33127	// ForceSendFields is a list of field names (e.g. "AllInstances") to
33128	// unconditionally include in API requests. By default, fields with
33129	// empty values are omitted from API requests. However, any non-pointer,
33130	// non-interface field appearing in ForceSendFields will be sent to the
33131	// server regardless of whether the field is empty or not. This may be
33132	// used to include empty fields in Patch requests.
33133	ForceSendFields []string `json:"-"`
33134
33135	// NullFields is a list of field names (e.g. "AllInstances") to include
33136	// in API requests with the JSON null value. By default, fields with
33137	// empty values are omitted from API requests. However, any field with
33138	// an empty value appearing in NullFields will be sent to the server as
33139	// null. It is an error if a field in this list has a non-empty value.
33140	// This may be used to include null fields in Patch requests.
33141	NullFields []string `json:"-"`
33142}
33143
33144func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
33145	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
33146	raw := NoMethod(*s)
33147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33148}
33149
33150// RegionInstanceGroupManagersCreateInstancesRequest:
33151// RegionInstanceGroupManagers.createInstances
33152type RegionInstanceGroupManagersCreateInstancesRequest struct {
33153	// Instances: [Required] List of specifications of per-instance configs.
33154	Instances []*PerInstanceConfig `json:"instances,omitempty"`
33155
33156	// ForceSendFields is a list of field names (e.g. "Instances") to
33157	// unconditionally include in API requests. By default, fields with
33158	// empty values are omitted from API requests. However, any non-pointer,
33159	// non-interface field appearing in ForceSendFields will be sent to the
33160	// server regardless of whether the field is empty or not. This may be
33161	// used to include empty fields in Patch requests.
33162	ForceSendFields []string `json:"-"`
33163
33164	// NullFields is a list of field names (e.g. "Instances") to include in
33165	// API requests with the JSON null value. By default, fields with empty
33166	// values are omitted from API requests. However, any field with an
33167	// empty value appearing in NullFields will be sent to the server as
33168	// null. It is an error if a field in this list has a non-empty value.
33169	// This may be used to include null fields in Patch requests.
33170	NullFields []string `json:"-"`
33171}
33172
33173func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
33174	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
33175	raw := NoMethod(*s)
33176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33177}
33178
33179type RegionInstanceGroupManagersDeleteInstancesRequest struct {
33180	// Instances: The URLs of one or more instances to delete. This can be a
33181	// full URL or a partial URL, such as
33182	// zones/[ZONE]/instances/[INSTANCE_NAME].
33183	Instances []string `json:"instances,omitempty"`
33184
33185	// ForceSendFields is a list of field names (e.g. "Instances") to
33186	// unconditionally include in API requests. By default, fields with
33187	// empty values are omitted from API requests. However, any non-pointer,
33188	// non-interface field appearing in ForceSendFields will be sent to the
33189	// server regardless of whether the field is empty or not. This may be
33190	// used to include empty fields in Patch requests.
33191	ForceSendFields []string `json:"-"`
33192
33193	// NullFields is a list of field names (e.g. "Instances") to include in
33194	// API requests with the JSON null value. By default, fields with empty
33195	// values are omitted from API requests. However, any field with an
33196	// empty value appearing in NullFields will be sent to the server as
33197	// null. It is an error if a field in this list has a non-empty value.
33198	// This may be used to include null fields in Patch requests.
33199	NullFields []string `json:"-"`
33200}
33201
33202func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
33203	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
33204	raw := NoMethod(*s)
33205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33206}
33207
33208type RegionInstanceGroupManagersListErrorsResponse struct {
33209	// Items: [Output Only] The list of errors of the managed instance
33210	// group.
33211	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
33212
33213	// NextPageToken: [Output Only] This token allows you to get the next
33214	// page of results for list requests. If the number of results is larger
33215	// than maxResults, use the nextPageToken as a value for the query
33216	// parameter pageToken in the next list request. Subsequent list
33217	// requests will have their own nextPageToken to continue paging through
33218	// the results.
33219	NextPageToken string `json:"nextPageToken,omitempty"`
33220
33221	// ServerResponse contains the HTTP response code and headers from the
33222	// server.
33223	googleapi.ServerResponse `json:"-"`
33224
33225	// ForceSendFields is a list of field names (e.g. "Items") to
33226	// unconditionally include in API requests. By default, fields with
33227	// empty values are omitted from API requests. However, any non-pointer,
33228	// non-interface field appearing in ForceSendFields will be sent to the
33229	// server regardless of whether the field is empty or not. This may be
33230	// used to include empty fields in Patch requests.
33231	ForceSendFields []string `json:"-"`
33232
33233	// NullFields is a list of field names (e.g. "Items") to include in API
33234	// requests with the JSON null value. By default, fields with empty
33235	// values are omitted from API requests. However, any field with an
33236	// empty value appearing in NullFields will be sent to the server as
33237	// null. It is an error if a field in this list has a non-empty value.
33238	// This may be used to include null fields in Patch requests.
33239	NullFields []string `json:"-"`
33240}
33241
33242func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
33243	type NoMethod RegionInstanceGroupManagersListErrorsResponse
33244	raw := NoMethod(*s)
33245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33246}
33247
33248type RegionInstanceGroupManagersListInstanceConfigsResp struct {
33249	// Items: [Output Only] The list of PerInstanceConfig.
33250	Items []*PerInstanceConfig `json:"items,omitempty"`
33251
33252	// NextPageToken: [Output Only] This token allows you to get the next
33253	// page of results for list requests. If the number of results is larger
33254	// than maxResults, use the nextPageToken as a value for the query
33255	// parameter pageToken in the next list request. Subsequent list
33256	// requests will have their own nextPageToken to continue paging through
33257	// the results.
33258	NextPageToken string `json:"nextPageToken,omitempty"`
33259
33260	// Warning: [Output Only] Informational warning message.
33261	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
33262
33263	// ServerResponse contains the HTTP response code and headers from the
33264	// server.
33265	googleapi.ServerResponse `json:"-"`
33266
33267	// ForceSendFields is a list of field names (e.g. "Items") to
33268	// unconditionally include in API requests. By default, fields with
33269	// empty values are omitted from API requests. However, any non-pointer,
33270	// non-interface field appearing in ForceSendFields will be sent to the
33271	// server regardless of whether the field is empty or not. This may be
33272	// used to include empty fields in Patch requests.
33273	ForceSendFields []string `json:"-"`
33274
33275	// NullFields is a list of field names (e.g. "Items") to include in API
33276	// requests with the JSON null value. By default, fields with empty
33277	// values are omitted from API requests. However, any field with an
33278	// empty value appearing in NullFields will be sent to the server as
33279	// null. It is an error if a field in this list has a non-empty value.
33280	// This may be used to include null fields in Patch requests.
33281	NullFields []string `json:"-"`
33282}
33283
33284func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
33285	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
33286	raw := NoMethod(*s)
33287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33288}
33289
33290// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
33291// Only] Informational warning message.
33292type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
33293	// Code: [Output Only] A warning code, if applicable. For example,
33294	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33295	// the response.
33296	//
33297	// Possible values:
33298	//   "CLEANUP_FAILED"
33299	//   "DEPRECATED_RESOURCE_USED"
33300	//   "DEPRECATED_TYPE_USED"
33301	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33302	//   "EXPERIMENTAL_TYPE_USED"
33303	//   "EXTERNAL_API_WARNING"
33304	//   "FIELD_VALUE_OVERRIDEN"
33305	//   "INJECTED_KERNELS_DEPRECATED"
33306	//   "LARGE_DEPLOYMENT_WARNING"
33307	//   "MISSING_TYPE_DEPENDENCY"
33308	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33309	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33310	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33311	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33312	//   "NEXT_HOP_NOT_RUNNING"
33313	//   "NOT_CRITICAL_ERROR"
33314	//   "NO_RESULTS_ON_PAGE"
33315	//   "PARTIAL_SUCCESS"
33316	//   "REQUIRED_TOS_AGREEMENT"
33317	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33318	//   "RESOURCE_NOT_DELETED"
33319	//   "SCHEMA_VALIDATION_IGNORED"
33320	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33321	//   "UNDECLARED_PROPERTIES"
33322	//   "UNREACHABLE"
33323	Code string `json:"code,omitempty"`
33324
33325	// Data: [Output Only] Metadata about this warning in key: value format.
33326	// For example:
33327	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33328	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
33329
33330	// Message: [Output Only] A human-readable description of the warning
33331	// code.
33332	Message string `json:"message,omitempty"`
33333
33334	// ForceSendFields is a list of field names (e.g. "Code") to
33335	// unconditionally include in API requests. By default, fields with
33336	// empty values are omitted from API requests. However, any non-pointer,
33337	// non-interface field appearing in ForceSendFields will be sent to the
33338	// server regardless of whether the field is empty or not. This may be
33339	// used to include empty fields in Patch requests.
33340	ForceSendFields []string `json:"-"`
33341
33342	// NullFields is a list of field names (e.g. "Code") to include in API
33343	// requests with the JSON null value. By default, fields with empty
33344	// values are omitted from API requests. However, any field with an
33345	// empty value appearing in NullFields will be sent to the server as
33346	// null. It is an error if a field in this list has a non-empty value.
33347	// This may be used to include null fields in Patch requests.
33348	NullFields []string `json:"-"`
33349}
33350
33351func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
33352	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
33353	raw := NoMethod(*s)
33354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33355}
33356
33357type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
33358	// Key: [Output Only] A key that provides more detail on the warning
33359	// being returned. For example, for warnings where there are no results
33360	// in a list request for a particular zone, this key might be scope and
33361	// the key value might be the zone name. Other examples might be a key
33362	// indicating a deprecated resource and a suggested replacement, or a
33363	// warning about invalid network settings (for example, if an instance
33364	// attempts to perform IP forwarding but is not enabled for IP
33365	// forwarding).
33366	Key string `json:"key,omitempty"`
33367
33368	// Value: [Output Only] A warning data value corresponding to the key.
33369	Value string `json:"value,omitempty"`
33370
33371	// ForceSendFields is a list of field names (e.g. "Key") to
33372	// unconditionally include in API requests. By default, fields with
33373	// empty values are omitted from API requests. However, any non-pointer,
33374	// non-interface field appearing in ForceSendFields will be sent to the
33375	// server regardless of whether the field is empty or not. This may be
33376	// used to include empty fields in Patch requests.
33377	ForceSendFields []string `json:"-"`
33378
33379	// NullFields is a list of field names (e.g. "Key") to include in API
33380	// requests with the JSON null value. By default, fields with empty
33381	// values are omitted from API requests. However, any field with an
33382	// empty value appearing in NullFields will be sent to the server as
33383	// null. It is an error if a field in this list has a non-empty value.
33384	// This may be used to include null fields in Patch requests.
33385	NullFields []string `json:"-"`
33386}
33387
33388func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
33389	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
33390	raw := NoMethod(*s)
33391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33392}
33393
33394type RegionInstanceGroupManagersListInstancesResponse struct {
33395	// ManagedInstances: A list of managed instances.
33396	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
33397
33398	// NextPageToken: [Output Only] This token allows you to get the next
33399	// page of results for list requests. If the number of results is larger
33400	// than maxResults, use the nextPageToken as a value for the query
33401	// parameter pageToken in the next list request. Subsequent list
33402	// requests will have their own nextPageToken to continue paging through
33403	// the results.
33404	NextPageToken string `json:"nextPageToken,omitempty"`
33405
33406	// ServerResponse contains the HTTP response code and headers from the
33407	// server.
33408	googleapi.ServerResponse `json:"-"`
33409
33410	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
33411	// unconditionally include in API requests. By default, fields with
33412	// empty values are omitted from API requests. However, any non-pointer,
33413	// non-interface field appearing in ForceSendFields will be sent to the
33414	// server regardless of whether the field is empty or not. This may be
33415	// used to include empty fields in Patch requests.
33416	ForceSendFields []string `json:"-"`
33417
33418	// NullFields is a list of field names (e.g. "ManagedInstances") to
33419	// include in API requests with the JSON null value. By default, fields
33420	// with empty values are omitted from API requests. However, any field
33421	// with an empty value appearing in NullFields will be sent to the
33422	// server as null. It is an error if a field in this list has a
33423	// non-empty value. This may be used to include null fields in Patch
33424	// requests.
33425	NullFields []string `json:"-"`
33426}
33427
33428func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
33429	type NoMethod RegionInstanceGroupManagersListInstancesResponse
33430	raw := NoMethod(*s)
33431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33432}
33433
33434type RegionInstanceGroupManagersRecreateRequest struct {
33435	// Instances: The URLs of one or more instances to recreate. This can be
33436	// a full URL or a partial URL, such as
33437	// zones/[ZONE]/instances/[INSTANCE_NAME].
33438	Instances []string `json:"instances,omitempty"`
33439
33440	// ForceSendFields is a list of field names (e.g. "Instances") to
33441	// unconditionally include in API requests. By default, fields with
33442	// empty values are omitted from API requests. However, any non-pointer,
33443	// non-interface field appearing in ForceSendFields will be sent to the
33444	// server regardless of whether the field is empty or not. This may be
33445	// used to include empty fields in Patch requests.
33446	ForceSendFields []string `json:"-"`
33447
33448	// NullFields is a list of field names (e.g. "Instances") to include in
33449	// API requests with the JSON null value. By default, fields with empty
33450	// values are omitted from API requests. However, any field with an
33451	// empty value appearing in NullFields will be sent to the server as
33452	// null. It is an error if a field in this list has a non-empty value.
33453	// This may be used to include null fields in Patch requests.
33454	NullFields []string `json:"-"`
33455}
33456
33457func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
33458	type NoMethod RegionInstanceGroupManagersRecreateRequest
33459	raw := NoMethod(*s)
33460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33461}
33462
33463type RegionInstanceGroupManagersSetAutoHealingRequest struct {
33464	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
33465
33466	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
33467	// to unconditionally include in API requests. By default, fields with
33468	// empty values are omitted from API requests. However, any non-pointer,
33469	// non-interface field appearing in ForceSendFields will be sent to the
33470	// server regardless of whether the field is empty or not. This may be
33471	// used to include empty fields in Patch requests.
33472	ForceSendFields []string `json:"-"`
33473
33474	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
33475	// include in API requests with the JSON null value. By default, fields
33476	// with empty values are omitted from API requests. However, any field
33477	// with an empty value appearing in NullFields will be sent to the
33478	// server as null. It is an error if a field in this list has a
33479	// non-empty value. This may be used to include null fields in Patch
33480	// requests.
33481	NullFields []string `json:"-"`
33482}
33483
33484func (s *RegionInstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
33485	type NoMethod RegionInstanceGroupManagersSetAutoHealingRequest
33486	raw := NoMethod(*s)
33487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33488}
33489
33490type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
33491	// Fingerprint: Fingerprint of the target pools information, which is a
33492	// hash of the contents. This field is used for optimistic locking when
33493	// you update the target pool entries. This field is optional.
33494	Fingerprint string `json:"fingerprint,omitempty"`
33495
33496	// TargetPools: The URL of all TargetPool resources to which instances
33497	// in the instanceGroup field are added. The target pools automatically
33498	// apply to all of the instances in the managed instance group.
33499	TargetPools []string `json:"targetPools,omitempty"`
33500
33501	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
33502	// unconditionally include in API requests. By default, fields with
33503	// empty values are omitted from API requests. However, any non-pointer,
33504	// non-interface field appearing in ForceSendFields will be sent to the
33505	// server regardless of whether the field is empty or not. This may be
33506	// used to include empty fields in Patch requests.
33507	ForceSendFields []string `json:"-"`
33508
33509	// NullFields is a list of field names (e.g. "Fingerprint") to include
33510	// in API requests with the JSON null value. By default, fields with
33511	// empty values are omitted from API requests. However, any field with
33512	// an empty value appearing in NullFields will be sent to the server as
33513	// null. It is an error if a field in this list has a non-empty value.
33514	// This may be used to include null fields in Patch requests.
33515	NullFields []string `json:"-"`
33516}
33517
33518func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
33519	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
33520	raw := NoMethod(*s)
33521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33522}
33523
33524type RegionInstanceGroupManagersSetTemplateRequest struct {
33525	// InstanceTemplate: URL of the InstanceTemplate resource from which all
33526	// new instances will be created.
33527	InstanceTemplate string `json:"instanceTemplate,omitempty"`
33528
33529	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
33530	// unconditionally include in API requests. By default, fields with
33531	// empty values are omitted from API requests. However, any non-pointer,
33532	// non-interface field appearing in ForceSendFields will be sent to the
33533	// server regardless of whether the field is empty or not. This may be
33534	// used to include empty fields in Patch requests.
33535	ForceSendFields []string `json:"-"`
33536
33537	// NullFields is a list of field names (e.g. "InstanceTemplate") to
33538	// include in API requests with the JSON null value. By default, fields
33539	// with empty values are omitted from API requests. However, any field
33540	// with an empty value appearing in NullFields will be sent to the
33541	// server as null. It is an error if a field in this list has a
33542	// non-empty value. This may be used to include null fields in Patch
33543	// requests.
33544	NullFields []string `json:"-"`
33545}
33546
33547func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
33548	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
33549	raw := NoMethod(*s)
33550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33551}
33552
33553type RegionInstanceGroupsListInstances struct {
33554	// Id: [Output Only] Unique identifier for the resource; defined by the
33555	// server.
33556	Id string `json:"id,omitempty"`
33557
33558	// Items: A list of InstanceWithNamedPorts resources.
33559	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
33560
33561	// Kind: The resource type.
33562	Kind string `json:"kind,omitempty"`
33563
33564	// NextPageToken: [Output Only] This token allows you to get the next
33565	// page of results for list requests. If the number of results is larger
33566	// than maxResults, use the nextPageToken as a value for the query
33567	// parameter pageToken in the next list request. Subsequent list
33568	// requests will have their own nextPageToken to continue paging through
33569	// the results.
33570	NextPageToken string `json:"nextPageToken,omitempty"`
33571
33572	// SelfLink: [Output Only] Server-defined URL for this resource.
33573	SelfLink string `json:"selfLink,omitempty"`
33574
33575	// Warning: [Output Only] Informational warning message.
33576	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
33577
33578	// ServerResponse contains the HTTP response code and headers from the
33579	// server.
33580	googleapi.ServerResponse `json:"-"`
33581
33582	// ForceSendFields is a list of field names (e.g. "Id") to
33583	// unconditionally include in API requests. By default, fields with
33584	// empty values are omitted from API requests. However, any non-pointer,
33585	// non-interface field appearing in ForceSendFields will be sent to the
33586	// server regardless of whether the field is empty or not. This may be
33587	// used to include empty fields in Patch requests.
33588	ForceSendFields []string `json:"-"`
33589
33590	// NullFields is a list of field names (e.g. "Id") to include in API
33591	// requests with the JSON null value. By default, fields with empty
33592	// values are omitted from API requests. However, any field with an
33593	// empty value appearing in NullFields will be sent to the server as
33594	// null. It is an error if a field in this list has a non-empty value.
33595	// This may be used to include null fields in Patch requests.
33596	NullFields []string `json:"-"`
33597}
33598
33599func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
33600	type NoMethod RegionInstanceGroupsListInstances
33601	raw := NoMethod(*s)
33602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33603}
33604
33605// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
33606// warning message.
33607type RegionInstanceGroupsListInstancesWarning struct {
33608	// Code: [Output Only] A warning code, if applicable. For example,
33609	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33610	// the response.
33611	//
33612	// Possible values:
33613	//   "CLEANUP_FAILED"
33614	//   "DEPRECATED_RESOURCE_USED"
33615	//   "DEPRECATED_TYPE_USED"
33616	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33617	//   "EXPERIMENTAL_TYPE_USED"
33618	//   "EXTERNAL_API_WARNING"
33619	//   "FIELD_VALUE_OVERRIDEN"
33620	//   "INJECTED_KERNELS_DEPRECATED"
33621	//   "LARGE_DEPLOYMENT_WARNING"
33622	//   "MISSING_TYPE_DEPENDENCY"
33623	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33624	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33625	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33626	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33627	//   "NEXT_HOP_NOT_RUNNING"
33628	//   "NOT_CRITICAL_ERROR"
33629	//   "NO_RESULTS_ON_PAGE"
33630	//   "PARTIAL_SUCCESS"
33631	//   "REQUIRED_TOS_AGREEMENT"
33632	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33633	//   "RESOURCE_NOT_DELETED"
33634	//   "SCHEMA_VALIDATION_IGNORED"
33635	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33636	//   "UNDECLARED_PROPERTIES"
33637	//   "UNREACHABLE"
33638	Code string `json:"code,omitempty"`
33639
33640	// Data: [Output Only] Metadata about this warning in key: value format.
33641	// For example:
33642	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33643	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
33644
33645	// Message: [Output Only] A human-readable description of the warning
33646	// code.
33647	Message string `json:"message,omitempty"`
33648
33649	// ForceSendFields is a list of field names (e.g. "Code") to
33650	// unconditionally include in API requests. By default, fields with
33651	// empty values are omitted from API requests. However, any non-pointer,
33652	// non-interface field appearing in ForceSendFields will be sent to the
33653	// server regardless of whether the field is empty or not. This may be
33654	// used to include empty fields in Patch requests.
33655	ForceSendFields []string `json:"-"`
33656
33657	// NullFields is a list of field names (e.g. "Code") to include in API
33658	// requests with the JSON null value. By default, fields with empty
33659	// values are omitted from API requests. However, any field with an
33660	// empty value appearing in NullFields will be sent to the server as
33661	// null. It is an error if a field in this list has a non-empty value.
33662	// This may be used to include null fields in Patch requests.
33663	NullFields []string `json:"-"`
33664}
33665
33666func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
33667	type NoMethod RegionInstanceGroupsListInstancesWarning
33668	raw := NoMethod(*s)
33669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33670}
33671
33672type RegionInstanceGroupsListInstancesWarningData struct {
33673	// Key: [Output Only] A key that provides more detail on the warning
33674	// being returned. For example, for warnings where there are no results
33675	// in a list request for a particular zone, this key might be scope and
33676	// the key value might be the zone name. Other examples might be a key
33677	// indicating a deprecated resource and a suggested replacement, or a
33678	// warning about invalid network settings (for example, if an instance
33679	// attempts to perform IP forwarding but is not enabled for IP
33680	// forwarding).
33681	Key string `json:"key,omitempty"`
33682
33683	// Value: [Output Only] A warning data value corresponding to the key.
33684	Value string `json:"value,omitempty"`
33685
33686	// ForceSendFields is a list of field names (e.g. "Key") to
33687	// unconditionally include in API requests. By default, fields with
33688	// empty values are omitted from API requests. However, any non-pointer,
33689	// non-interface field appearing in ForceSendFields will be sent to the
33690	// server regardless of whether the field is empty or not. This may be
33691	// used to include empty fields in Patch requests.
33692	ForceSendFields []string `json:"-"`
33693
33694	// NullFields is a list of field names (e.g. "Key") to include in API
33695	// requests with the JSON null value. By default, fields with empty
33696	// values are omitted from API requests. However, any field with an
33697	// empty value appearing in NullFields will be sent to the server as
33698	// null. It is an error if a field in this list has a non-empty value.
33699	// This may be used to include null fields in Patch requests.
33700	NullFields []string `json:"-"`
33701}
33702
33703func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
33704	type NoMethod RegionInstanceGroupsListInstancesWarningData
33705	raw := NoMethod(*s)
33706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33707}
33708
33709type RegionInstanceGroupsListInstancesRequest struct {
33710	// InstanceState: Instances in which state should be returned. Valid
33711	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
33712	//
33713	// Possible values:
33714	//   "ALL"
33715	//   "RUNNING"
33716	InstanceState string `json:"instanceState,omitempty"`
33717
33718	// PortName: Name of port user is interested in. It is optional. If it
33719	// is set, only information about this ports will be returned. If it is
33720	// not set, all the named ports will be returned. Always lists all
33721	// instances.
33722	PortName string `json:"portName,omitempty"`
33723
33724	// ForceSendFields is a list of field names (e.g. "InstanceState") to
33725	// unconditionally include in API requests. By default, fields with
33726	// empty values are omitted from API requests. However, any non-pointer,
33727	// non-interface field appearing in ForceSendFields will be sent to the
33728	// server regardless of whether the field is empty or not. This may be
33729	// used to include empty fields in Patch requests.
33730	ForceSendFields []string `json:"-"`
33731
33732	// NullFields is a list of field names (e.g. "InstanceState") to include
33733	// in API requests with the JSON null value. By default, fields with
33734	// empty values are omitted from API requests. However, any field with
33735	// an empty value appearing in NullFields will be sent to the server as
33736	// null. It is an error if a field in this list has a non-empty value.
33737	// This may be used to include null fields in Patch requests.
33738	NullFields []string `json:"-"`
33739}
33740
33741func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
33742	type NoMethod RegionInstanceGroupsListInstancesRequest
33743	raw := NoMethod(*s)
33744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33745}
33746
33747type RegionInstanceGroupsSetNamedPortsRequest struct {
33748	// Fingerprint: The fingerprint of the named ports information for this
33749	// instance group. Use this optional property to prevent conflicts when
33750	// multiple users change the named ports settings concurrently. Obtain
33751	// the fingerprint with the instanceGroups.get method. Then, include the
33752	// fingerprint in your request to ensure that you do not overwrite
33753	// changes that were applied from another concurrent request.
33754	Fingerprint string `json:"fingerprint,omitempty"`
33755
33756	// NamedPorts: The list of named ports to set for this instance group.
33757	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
33758
33759	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
33760	// unconditionally include in API requests. By default, fields with
33761	// empty values are omitted from API requests. However, any non-pointer,
33762	// non-interface field appearing in ForceSendFields will be sent to the
33763	// server regardless of whether the field is empty or not. This may be
33764	// used to include empty fields in Patch requests.
33765	ForceSendFields []string `json:"-"`
33766
33767	// NullFields is a list of field names (e.g. "Fingerprint") to include
33768	// in API requests with the JSON null value. By default, fields with
33769	// empty values are omitted from API requests. However, any field with
33770	// an empty value appearing in NullFields will be sent to the server as
33771	// null. It is an error if a field in this list has a non-empty value.
33772	// This may be used to include null fields in Patch requests.
33773	NullFields []string `json:"-"`
33774}
33775
33776func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
33777	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
33778	raw := NoMethod(*s)
33779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33780}
33781
33782// RegionList: Contains a list of region resources.
33783type RegionList struct {
33784	// Id: [Output Only] Unique identifier for the resource; defined by the
33785	// server.
33786	Id string `json:"id,omitempty"`
33787
33788	// Items: A list of Region resources.
33789	Items []*Region `json:"items,omitempty"`
33790
33791	// Kind: [Output Only] Type of resource. Always compute#regionList for
33792	// lists of regions.
33793	Kind string `json:"kind,omitempty"`
33794
33795	// NextPageToken: [Output Only] This token allows you to get the next
33796	// page of results for list requests. If the number of results is larger
33797	// than maxResults, use the nextPageToken as a value for the query
33798	// parameter pageToken in the next list request. Subsequent list
33799	// requests will have their own nextPageToken to continue paging through
33800	// the results.
33801	NextPageToken string `json:"nextPageToken,omitempty"`
33802
33803	// SelfLink: [Output Only] Server-defined URL for this resource.
33804	SelfLink string `json:"selfLink,omitempty"`
33805
33806	// Warning: [Output Only] Informational warning message.
33807	Warning *RegionListWarning `json:"warning,omitempty"`
33808
33809	// ServerResponse contains the HTTP response code and headers from the
33810	// server.
33811	googleapi.ServerResponse `json:"-"`
33812
33813	// ForceSendFields is a list of field names (e.g. "Id") to
33814	// unconditionally include in API requests. By default, fields with
33815	// empty values are omitted from API requests. However, any non-pointer,
33816	// non-interface field appearing in ForceSendFields will be sent to the
33817	// server regardless of whether the field is empty or not. This may be
33818	// used to include empty fields in Patch requests.
33819	ForceSendFields []string `json:"-"`
33820
33821	// NullFields is a list of field names (e.g. "Id") to include in API
33822	// requests with the JSON null value. By default, fields with empty
33823	// values are omitted from API requests. However, any field with an
33824	// empty value appearing in NullFields will be sent to the server as
33825	// null. It is an error if a field in this list has a non-empty value.
33826	// This may be used to include null fields in Patch requests.
33827	NullFields []string `json:"-"`
33828}
33829
33830func (s *RegionList) MarshalJSON() ([]byte, error) {
33831	type NoMethod RegionList
33832	raw := NoMethod(*s)
33833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33834}
33835
33836// RegionListWarning: [Output Only] Informational warning message.
33837type RegionListWarning struct {
33838	// Code: [Output Only] A warning code, if applicable. For example,
33839	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33840	// the response.
33841	//
33842	// Possible values:
33843	//   "CLEANUP_FAILED"
33844	//   "DEPRECATED_RESOURCE_USED"
33845	//   "DEPRECATED_TYPE_USED"
33846	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33847	//   "EXPERIMENTAL_TYPE_USED"
33848	//   "EXTERNAL_API_WARNING"
33849	//   "FIELD_VALUE_OVERRIDEN"
33850	//   "INJECTED_KERNELS_DEPRECATED"
33851	//   "LARGE_DEPLOYMENT_WARNING"
33852	//   "MISSING_TYPE_DEPENDENCY"
33853	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33854	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33855	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33856	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33857	//   "NEXT_HOP_NOT_RUNNING"
33858	//   "NOT_CRITICAL_ERROR"
33859	//   "NO_RESULTS_ON_PAGE"
33860	//   "PARTIAL_SUCCESS"
33861	//   "REQUIRED_TOS_AGREEMENT"
33862	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33863	//   "RESOURCE_NOT_DELETED"
33864	//   "SCHEMA_VALIDATION_IGNORED"
33865	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33866	//   "UNDECLARED_PROPERTIES"
33867	//   "UNREACHABLE"
33868	Code string `json:"code,omitempty"`
33869
33870	// Data: [Output Only] Metadata about this warning in key: value format.
33871	// For example:
33872	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33873	Data []*RegionListWarningData `json:"data,omitempty"`
33874
33875	// Message: [Output Only] A human-readable description of the warning
33876	// code.
33877	Message string `json:"message,omitempty"`
33878
33879	// ForceSendFields is a list of field names (e.g. "Code") to
33880	// unconditionally include in API requests. By default, fields with
33881	// empty values are omitted from API requests. However, any non-pointer,
33882	// non-interface field appearing in ForceSendFields will be sent to the
33883	// server regardless of whether the field is empty or not. This may be
33884	// used to include empty fields in Patch requests.
33885	ForceSendFields []string `json:"-"`
33886
33887	// NullFields is a list of field names (e.g. "Code") to include in API
33888	// requests with the JSON null value. By default, fields with empty
33889	// values are omitted from API requests. However, any field with an
33890	// empty value appearing in NullFields will be sent to the server as
33891	// null. It is an error if a field in this list has a non-empty value.
33892	// This may be used to include null fields in Patch requests.
33893	NullFields []string `json:"-"`
33894}
33895
33896func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
33897	type NoMethod RegionListWarning
33898	raw := NoMethod(*s)
33899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33900}
33901
33902type RegionListWarningData struct {
33903	// Key: [Output Only] A key that provides more detail on the warning
33904	// being returned. For example, for warnings where there are no results
33905	// in a list request for a particular zone, this key might be scope and
33906	// the key value might be the zone name. Other examples might be a key
33907	// indicating a deprecated resource and a suggested replacement, or a
33908	// warning about invalid network settings (for example, if an instance
33909	// attempts to perform IP forwarding but is not enabled for IP
33910	// forwarding).
33911	Key string `json:"key,omitempty"`
33912
33913	// Value: [Output Only] A warning data value corresponding to the key.
33914	Value string `json:"value,omitempty"`
33915
33916	// ForceSendFields is a list of field names (e.g. "Key") to
33917	// unconditionally include in API requests. By default, fields with
33918	// empty values are omitted from API requests. However, any non-pointer,
33919	// non-interface field appearing in ForceSendFields will be sent to the
33920	// server regardless of whether the field is empty or not. This may be
33921	// used to include empty fields in Patch requests.
33922	ForceSendFields []string `json:"-"`
33923
33924	// NullFields is a list of field names (e.g. "Key") to include in API
33925	// requests with the JSON null value. By default, fields with empty
33926	// values are omitted from API requests. However, any field with an
33927	// empty value appearing in NullFields will be sent to the server as
33928	// null. It is an error if a field in this list has a non-empty value.
33929	// This may be used to include null fields in Patch requests.
33930	NullFields []string `json:"-"`
33931}
33932
33933func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
33934	type NoMethod RegionListWarningData
33935	raw := NoMethod(*s)
33936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33937}
33938
33939type RegionSetLabelsRequest struct {
33940	// LabelFingerprint: The fingerprint of the previous set of labels for
33941	// this resource, used to detect conflicts. The fingerprint is initially
33942	// generated by Compute Engine and changes after every request to modify
33943	// or update labels. You must always provide an up-to-date fingerprint
33944	// hash in order to update or change labels. Make a get() request to the
33945	// resource to get the latest fingerprint.
33946	LabelFingerprint string `json:"labelFingerprint,omitempty"`
33947
33948	// Labels: The labels to set for this resource.
33949	Labels map[string]string `json:"labels,omitempty"`
33950
33951	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
33952	// unconditionally include in API requests. By default, fields with
33953	// empty values are omitted from API requests. However, any non-pointer,
33954	// non-interface field appearing in ForceSendFields will be sent to the
33955	// server regardless of whether the field is empty or not. This may be
33956	// used to include empty fields in Patch requests.
33957	ForceSendFields []string `json:"-"`
33958
33959	// NullFields is a list of field names (e.g. "LabelFingerprint") to
33960	// include in API requests with the JSON null value. By default, fields
33961	// with empty values are omitted from API requests. However, any field
33962	// with an empty value appearing in NullFields will be sent to the
33963	// server as null. It is an error if a field in this list has a
33964	// non-empty value. This may be used to include null fields in Patch
33965	// requests.
33966	NullFields []string `json:"-"`
33967}
33968
33969func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
33970	type NoMethod RegionSetLabelsRequest
33971	raw := NoMethod(*s)
33972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33973}
33974
33975type RegionSetPolicyRequest struct {
33976	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
33977	// Deprecated. Use 'policy' to specify bindings.
33978	Bindings []*Binding `json:"bindings,omitempty"`
33979
33980	// Etag: Flatten Policy to create a backward compatible wire-format.
33981	// Deprecated. Use 'policy' to specify the etag.
33982	Etag string `json:"etag,omitempty"`
33983
33984	// Policy: REQUIRED: The complete policy to be applied to the
33985	// 'resource'. The size of the policy is limited to a few 10s of KB. An
33986	// empty policy is in general a valid policy but certain services (like
33987	// Projects) might reject them.
33988	Policy *Policy `json:"policy,omitempty"`
33989
33990	// ForceSendFields is a list of field names (e.g. "Bindings") to
33991	// unconditionally include in API requests. By default, fields with
33992	// empty values are omitted from API requests. However, any non-pointer,
33993	// non-interface field appearing in ForceSendFields will be sent to the
33994	// server regardless of whether the field is empty or not. This may be
33995	// used to include empty fields in Patch requests.
33996	ForceSendFields []string `json:"-"`
33997
33998	// NullFields is a list of field names (e.g. "Bindings") to include in
33999	// API requests with the JSON null value. By default, fields with empty
34000	// values are omitted from API requests. However, any field with an
34001	// empty value appearing in NullFields will be sent to the server as
34002	// null. It is an error if a field in this list has a non-empty value.
34003	// This may be used to include null fields in Patch requests.
34004	NullFields []string `json:"-"`
34005}
34006
34007func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
34008	type NoMethod RegionSetPolicyRequest
34009	raw := NoMethod(*s)
34010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34011}
34012
34013type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
34014	// SslCertificates: New set of SslCertificate resources to associate
34015	// with this TargetHttpsProxy resource. Currently exactly one
34016	// SslCertificate resource must be specified.
34017	SslCertificates []string `json:"sslCertificates,omitempty"`
34018
34019	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
34020	// unconditionally include in API requests. By default, fields with
34021	// empty values are omitted from API requests. However, any non-pointer,
34022	// non-interface field appearing in ForceSendFields will be sent to the
34023	// server regardless of whether the field is empty or not. This may be
34024	// used to include empty fields in Patch requests.
34025	ForceSendFields []string `json:"-"`
34026
34027	// NullFields is a list of field names (e.g. "SslCertificates") to
34028	// include in API requests with the JSON null value. By default, fields
34029	// with empty values are omitted from API requests. However, any field
34030	// with an empty value appearing in NullFields will be sent to the
34031	// server as null. It is an error if a field in this list has a
34032	// non-empty value. This may be used to include null fields in Patch
34033	// requests.
34034	NullFields []string `json:"-"`
34035}
34036
34037func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
34038	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
34039	raw := NoMethod(*s)
34040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34041}
34042
34043type RegionUrlMapsValidateRequest struct {
34044	// Resource: Content of the UrlMap to be validated.
34045	Resource *UrlMap `json:"resource,omitempty"`
34046
34047	// ForceSendFields is a list of field names (e.g. "Resource") to
34048	// unconditionally include in API requests. By default, fields with
34049	// empty values are omitted from API requests. However, any non-pointer,
34050	// non-interface field appearing in ForceSendFields will be sent to the
34051	// server regardless of whether the field is empty or not. This may be
34052	// used to include empty fields in Patch requests.
34053	ForceSendFields []string `json:"-"`
34054
34055	// NullFields is a list of field names (e.g. "Resource") to include in
34056	// API requests with the JSON null value. By default, fields with empty
34057	// values are omitted from API requests. However, any field with an
34058	// empty value appearing in NullFields will be sent to the server as
34059	// null. It is an error if a field in this list has a non-empty value.
34060	// This may be used to include null fields in Patch requests.
34061	NullFields []string `json:"-"`
34062}
34063
34064func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
34065	type NoMethod RegionUrlMapsValidateRequest
34066	raw := NoMethod(*s)
34067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34068}
34069
34070// RequestMirrorPolicy: A policy that specifies how requests intended
34071// for the route's backends are shadowed to a separate mirrored backend
34072// service. Loadbalancer does not wait for responses from the shadow
34073// service. Prior to sending traffic to the shadow service, the host /
34074// authority header is suffixed with -shadow.
34075type RequestMirrorPolicy struct {
34076	// BackendService: The full or partial URL to the BackendService
34077	// resource being mirrored to.
34078	BackendService string `json:"backendService,omitempty"`
34079
34080	// ForceSendFields is a list of field names (e.g. "BackendService") to
34081	// unconditionally include in API requests. By default, fields with
34082	// empty values are omitted from API requests. However, any non-pointer,
34083	// non-interface field appearing in ForceSendFields will be sent to the
34084	// server regardless of whether the field is empty or not. This may be
34085	// used to include empty fields in Patch requests.
34086	ForceSendFields []string `json:"-"`
34087
34088	// NullFields is a list of field names (e.g. "BackendService") to
34089	// include in API requests with the JSON null value. By default, fields
34090	// with empty values are omitted from API requests. However, any field
34091	// with an empty value appearing in NullFields will be sent to the
34092	// server as null. It is an error if a field in this list has a
34093	// non-empty value. This may be used to include null fields in Patch
34094	// requests.
34095	NullFields []string `json:"-"`
34096}
34097
34098func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
34099	type NoMethod RequestMirrorPolicy
34100	raw := NoMethod(*s)
34101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34102}
34103
34104// Reservation: Represents a reservation resource. A reservation ensures
34105// that capacity is held in a specific zone even if the reserved VMs are
34106// not running. For more information, read  Reserving zonal resources.
34107// (== resource_for {$api_version}.reservations ==)
34108type Reservation struct {
34109	// Commitment: [Output Only] Full or partial URL to a parent commitment.
34110	// This field displays for reservations that are tied to a commitment.
34111	Commitment string `json:"commitment,omitempty"`
34112
34113	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34114	// format.
34115	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34116
34117	// Description: An optional description of this resource. Provide this
34118	// property when you create the resource.
34119	Description string `json:"description,omitempty"`
34120
34121	// Id: [Output Only] The unique identifier for the resource. This
34122	// identifier is defined by the server.
34123	Id uint64 `json:"id,omitempty,string"`
34124
34125	// Kind: [Output Only] Type of the resource. Always compute#reservations
34126	// for reservations.
34127	Kind string `json:"kind,omitempty"`
34128
34129	// Name: The name of the resource, provided by the client when initially
34130	// creating the resource. The resource name must be 1-63 characters
34131	// long, and comply with RFC1035. Specifically, the name must be 1-63
34132	// characters long and match the regular expression
34133	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
34134	// a lowercase letter, and all following characters must be a dash,
34135	// lowercase letter, or digit, except the last character, which cannot
34136	// be a dash.
34137	Name string `json:"name,omitempty"`
34138
34139	// SatisfiesPzs: [Output Only] Reserved for future use.
34140	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
34141
34142	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34143	// resource.
34144	SelfLink string `json:"selfLink,omitempty"`
34145
34146	// SpecificReservation: Reservation for instances with specific machine
34147	// shapes.
34148	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
34149
34150	// SpecificReservationRequired: Indicates whether the reservation can be
34151	// consumed by VMs with affinity for "any" reservation. If the field is
34152	// set, then only VMs that target the reservation by name can consume
34153	// from this reservation.
34154	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
34155
34156	// Status: [Output Only] The status of the reservation.
34157	//
34158	// Possible values:
34159	//   "CREATING"
34160	//   "DELETING"
34161	//   "INVALID"
34162	//   "READY"
34163	//   "UPDATING"
34164	Status string `json:"status,omitempty"`
34165
34166	// Zone: Zone in which the reservation resides. A zone must be provided
34167	// if the reservation is created within a commitment.
34168	Zone string `json:"zone,omitempty"`
34169
34170	// ServerResponse contains the HTTP response code and headers from the
34171	// server.
34172	googleapi.ServerResponse `json:"-"`
34173
34174	// ForceSendFields is a list of field names (e.g. "Commitment") to
34175	// unconditionally include in API requests. By default, fields with
34176	// empty values are omitted from API requests. However, any non-pointer,
34177	// non-interface field appearing in ForceSendFields will be sent to the
34178	// server regardless of whether the field is empty or not. This may be
34179	// used to include empty fields in Patch requests.
34180	ForceSendFields []string `json:"-"`
34181
34182	// NullFields is a list of field names (e.g. "Commitment") to include in
34183	// API requests with the JSON null value. By default, fields with empty
34184	// values are omitted from API requests. However, any field with an
34185	// empty value appearing in NullFields will be sent to the server as
34186	// null. It is an error if a field in this list has a non-empty value.
34187	// This may be used to include null fields in Patch requests.
34188	NullFields []string `json:"-"`
34189}
34190
34191func (s *Reservation) MarshalJSON() ([]byte, error) {
34192	type NoMethod Reservation
34193	raw := NoMethod(*s)
34194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34195}
34196
34197// ReservationAffinity: Specifies the reservations that this instance
34198// can consume from.
34199type ReservationAffinity struct {
34200	// ConsumeReservationType: Specifies the type of reservation from which
34201	// this instance can consume resources: ANY_RESERVATION (default),
34202	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
34203	// instances for examples.
34204	//
34205	// Possible values:
34206	//   "ANY_RESERVATION"
34207	//   "NO_RESERVATION"
34208	//   "SPECIFIC_RESERVATION"
34209	//   "SPECIFIC_THEN_ANY_RESERVATION"
34210	//   "UNSPECIFIED"
34211	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
34212
34213	// Key: Corresponds to the label key of a reservation resource. To
34214	// target a SPECIFIC_RESERVATION by name, specify
34215	// googleapis.com/reservation-name as the key and specify the name of
34216	// your reservation as its value.
34217	Key string `json:"key,omitempty"`
34218
34219	// Values: Corresponds to the label values of a reservation resource.
34220	// This can be either a name to a reservation in the same project or
34221	// "projects/different-project/reservations/some-reservation-name" to
34222	// target a shared reservation in the same zone but in a different
34223	// project.
34224	Values []string `json:"values,omitempty"`
34225
34226	// ForceSendFields is a list of field names (e.g.
34227	// "ConsumeReservationType") to unconditionally include in API requests.
34228	// By default, fields with empty values are omitted from API requests.
34229	// However, any non-pointer, non-interface field appearing in
34230	// ForceSendFields will be sent to the server regardless of whether the
34231	// field is empty or not. This may be used to include empty fields in
34232	// Patch requests.
34233	ForceSendFields []string `json:"-"`
34234
34235	// NullFields is a list of field names (e.g. "ConsumeReservationType")
34236	// to include in API requests with the JSON null value. By default,
34237	// fields with empty values are omitted from API requests. However, any
34238	// field with an empty value appearing in NullFields will be sent to the
34239	// server as null. It is an error if a field in this list has a
34240	// non-empty value. This may be used to include null fields in Patch
34241	// requests.
34242	NullFields []string `json:"-"`
34243}
34244
34245func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
34246	type NoMethod ReservationAffinity
34247	raw := NoMethod(*s)
34248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34249}
34250
34251// ReservationAggregatedList: Contains a list of reservations.
34252type ReservationAggregatedList struct {
34253	// Id: [Output Only] Unique identifier for the resource; defined by the
34254	// server.
34255	Id string `json:"id,omitempty"`
34256
34257	// Items: A list of Allocation resources.
34258	Items map[string]ReservationsScopedList `json:"items,omitempty"`
34259
34260	// Kind: Type of resource.
34261	Kind string `json:"kind,omitempty"`
34262
34263	// NextPageToken: [Output Only] This token allows you to get the next
34264	// page of results for list requests. If the number of results is larger
34265	// than maxResults, use the nextPageToken as a value for the query
34266	// parameter pageToken in the next list request. Subsequent list
34267	// requests will have their own nextPageToken to continue paging through
34268	// the results.
34269	NextPageToken string `json:"nextPageToken,omitempty"`
34270
34271	// SelfLink: [Output Only] Server-defined URL for this resource.
34272	SelfLink string `json:"selfLink,omitempty"`
34273
34274	// Unreachables: [Output Only] Unreachable resources.
34275	Unreachables []string `json:"unreachables,omitempty"`
34276
34277	// Warning: [Output Only] Informational warning message.
34278	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
34279
34280	// ServerResponse contains the HTTP response code and headers from the
34281	// server.
34282	googleapi.ServerResponse `json:"-"`
34283
34284	// ForceSendFields is a list of field names (e.g. "Id") to
34285	// unconditionally include in API requests. By default, fields with
34286	// empty values are omitted from API requests. However, any non-pointer,
34287	// non-interface field appearing in ForceSendFields will be sent to the
34288	// server regardless of whether the field is empty or not. This may be
34289	// used to include empty fields in Patch requests.
34290	ForceSendFields []string `json:"-"`
34291
34292	// NullFields is a list of field names (e.g. "Id") to include in API
34293	// requests with the JSON null value. By default, fields with empty
34294	// values are omitted from API requests. However, any field with an
34295	// empty value appearing in NullFields will be sent to the server as
34296	// null. It is an error if a field in this list has a non-empty value.
34297	// This may be used to include null fields in Patch requests.
34298	NullFields []string `json:"-"`
34299}
34300
34301func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
34302	type NoMethod ReservationAggregatedList
34303	raw := NoMethod(*s)
34304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34305}
34306
34307// ReservationAggregatedListWarning: [Output Only] Informational warning
34308// message.
34309type ReservationAggregatedListWarning struct {
34310	// Code: [Output Only] A warning code, if applicable. For example,
34311	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34312	// the response.
34313	//
34314	// Possible values:
34315	//   "CLEANUP_FAILED"
34316	//   "DEPRECATED_RESOURCE_USED"
34317	//   "DEPRECATED_TYPE_USED"
34318	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34319	//   "EXPERIMENTAL_TYPE_USED"
34320	//   "EXTERNAL_API_WARNING"
34321	//   "FIELD_VALUE_OVERRIDEN"
34322	//   "INJECTED_KERNELS_DEPRECATED"
34323	//   "LARGE_DEPLOYMENT_WARNING"
34324	//   "MISSING_TYPE_DEPENDENCY"
34325	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34326	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34327	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34328	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34329	//   "NEXT_HOP_NOT_RUNNING"
34330	//   "NOT_CRITICAL_ERROR"
34331	//   "NO_RESULTS_ON_PAGE"
34332	//   "PARTIAL_SUCCESS"
34333	//   "REQUIRED_TOS_AGREEMENT"
34334	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34335	//   "RESOURCE_NOT_DELETED"
34336	//   "SCHEMA_VALIDATION_IGNORED"
34337	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34338	//   "UNDECLARED_PROPERTIES"
34339	//   "UNREACHABLE"
34340	Code string `json:"code,omitempty"`
34341
34342	// Data: [Output Only] Metadata about this warning in key: value format.
34343	// For example:
34344	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34345	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
34346
34347	// Message: [Output Only] A human-readable description of the warning
34348	// code.
34349	Message string `json:"message,omitempty"`
34350
34351	// ForceSendFields is a list of field names (e.g. "Code") to
34352	// unconditionally include in API requests. By default, fields with
34353	// empty values are omitted from API requests. However, any non-pointer,
34354	// non-interface field appearing in ForceSendFields will be sent to the
34355	// server regardless of whether the field is empty or not. This may be
34356	// used to include empty fields in Patch requests.
34357	ForceSendFields []string `json:"-"`
34358
34359	// NullFields is a list of field names (e.g. "Code") to include in API
34360	// requests with the JSON null value. By default, fields with empty
34361	// values are omitted from API requests. However, any field with an
34362	// empty value appearing in NullFields will be sent to the server as
34363	// null. It is an error if a field in this list has a non-empty value.
34364	// This may be used to include null fields in Patch requests.
34365	NullFields []string `json:"-"`
34366}
34367
34368func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
34369	type NoMethod ReservationAggregatedListWarning
34370	raw := NoMethod(*s)
34371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34372}
34373
34374type ReservationAggregatedListWarningData struct {
34375	// Key: [Output Only] A key that provides more detail on the warning
34376	// being returned. For example, for warnings where there are no results
34377	// in a list request for a particular zone, this key might be scope and
34378	// the key value might be the zone name. Other examples might be a key
34379	// indicating a deprecated resource and a suggested replacement, or a
34380	// warning about invalid network settings (for example, if an instance
34381	// attempts to perform IP forwarding but is not enabled for IP
34382	// forwarding).
34383	Key string `json:"key,omitempty"`
34384
34385	// Value: [Output Only] A warning data value corresponding to the key.
34386	Value string `json:"value,omitempty"`
34387
34388	// ForceSendFields is a list of field names (e.g. "Key") to
34389	// unconditionally include in API requests. By default, fields with
34390	// empty values are omitted from API requests. However, any non-pointer,
34391	// non-interface field appearing in ForceSendFields will be sent to the
34392	// server regardless of whether the field is empty or not. This may be
34393	// used to include empty fields in Patch requests.
34394	ForceSendFields []string `json:"-"`
34395
34396	// NullFields is a list of field names (e.g. "Key") to include in API
34397	// requests with the JSON null value. By default, fields with empty
34398	// values are omitted from API requests. However, any field with an
34399	// empty value appearing in NullFields will be sent to the server as
34400	// null. It is an error if a field in this list has a non-empty value.
34401	// This may be used to include null fields in Patch requests.
34402	NullFields []string `json:"-"`
34403}
34404
34405func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34406	type NoMethod ReservationAggregatedListWarningData
34407	raw := NoMethod(*s)
34408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34409}
34410
34411type ReservationList struct {
34412	// Id: [Output Only] The unique identifier for the resource. This
34413	// identifier is defined by the server.
34414	Id string `json:"id,omitempty"`
34415
34416	// Items: [Output Only] A list of Allocation resources.
34417	Items []*Reservation `json:"items,omitempty"`
34418
34419	// Kind: [Output Only] Type of resource.Always compute#reservationsList
34420	// for listsof reservations
34421	Kind string `json:"kind,omitempty"`
34422
34423	// NextPageToken: [Output Only] This token allows you to get the next
34424	// page of results for list requests. If the number of results is larger
34425	// than maxResults, use the nextPageToken as a value for the query
34426	// parameter pageToken in the next list request. Subsequent list
34427	// requests will have their own nextPageToken to continue paging through
34428	// the results.
34429	NextPageToken string `json:"nextPageToken,omitempty"`
34430
34431	// SelfLink: [Output Only] Server-defined URL for this resource.
34432	SelfLink string `json:"selfLink,omitempty"`
34433
34434	// Warning: [Output Only] Informational warning message.
34435	Warning *ReservationListWarning `json:"warning,omitempty"`
34436
34437	// ServerResponse contains the HTTP response code and headers from the
34438	// server.
34439	googleapi.ServerResponse `json:"-"`
34440
34441	// ForceSendFields is a list of field names (e.g. "Id") to
34442	// unconditionally include in API requests. By default, fields with
34443	// empty values are omitted from API requests. However, any non-pointer,
34444	// non-interface field appearing in ForceSendFields will be sent to the
34445	// server regardless of whether the field is empty or not. This may be
34446	// used to include empty fields in Patch requests.
34447	ForceSendFields []string `json:"-"`
34448
34449	// NullFields is a list of field names (e.g. "Id") to include in API
34450	// requests with the JSON null value. By default, fields with empty
34451	// values are omitted from API requests. However, any field with an
34452	// empty value appearing in NullFields will be sent to the server as
34453	// null. It is an error if a field in this list has a non-empty value.
34454	// This may be used to include null fields in Patch requests.
34455	NullFields []string `json:"-"`
34456}
34457
34458func (s *ReservationList) MarshalJSON() ([]byte, error) {
34459	type NoMethod ReservationList
34460	raw := NoMethod(*s)
34461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34462}
34463
34464// ReservationListWarning: [Output Only] Informational warning message.
34465type ReservationListWarning struct {
34466	// Code: [Output Only] A warning code, if applicable. For example,
34467	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34468	// the response.
34469	//
34470	// Possible values:
34471	//   "CLEANUP_FAILED"
34472	//   "DEPRECATED_RESOURCE_USED"
34473	//   "DEPRECATED_TYPE_USED"
34474	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34475	//   "EXPERIMENTAL_TYPE_USED"
34476	//   "EXTERNAL_API_WARNING"
34477	//   "FIELD_VALUE_OVERRIDEN"
34478	//   "INJECTED_KERNELS_DEPRECATED"
34479	//   "LARGE_DEPLOYMENT_WARNING"
34480	//   "MISSING_TYPE_DEPENDENCY"
34481	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34482	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34483	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34484	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34485	//   "NEXT_HOP_NOT_RUNNING"
34486	//   "NOT_CRITICAL_ERROR"
34487	//   "NO_RESULTS_ON_PAGE"
34488	//   "PARTIAL_SUCCESS"
34489	//   "REQUIRED_TOS_AGREEMENT"
34490	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34491	//   "RESOURCE_NOT_DELETED"
34492	//   "SCHEMA_VALIDATION_IGNORED"
34493	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34494	//   "UNDECLARED_PROPERTIES"
34495	//   "UNREACHABLE"
34496	Code string `json:"code,omitempty"`
34497
34498	// Data: [Output Only] Metadata about this warning in key: value format.
34499	// For example:
34500	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34501	Data []*ReservationListWarningData `json:"data,omitempty"`
34502
34503	// Message: [Output Only] A human-readable description of the warning
34504	// code.
34505	Message string `json:"message,omitempty"`
34506
34507	// ForceSendFields is a list of field names (e.g. "Code") to
34508	// unconditionally include in API requests. By default, fields with
34509	// empty values are omitted from API requests. However, any non-pointer,
34510	// non-interface field appearing in ForceSendFields will be sent to the
34511	// server regardless of whether the field is empty or not. This may be
34512	// used to include empty fields in Patch requests.
34513	ForceSendFields []string `json:"-"`
34514
34515	// NullFields is a list of field names (e.g. "Code") to include in API
34516	// requests with the JSON null value. By default, fields with empty
34517	// values are omitted from API requests. However, any field with an
34518	// empty value appearing in NullFields will be sent to the server as
34519	// null. It is an error if a field in this list has a non-empty value.
34520	// This may be used to include null fields in Patch requests.
34521	NullFields []string `json:"-"`
34522}
34523
34524func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
34525	type NoMethod ReservationListWarning
34526	raw := NoMethod(*s)
34527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34528}
34529
34530type ReservationListWarningData struct {
34531	// Key: [Output Only] A key that provides more detail on the warning
34532	// being returned. For example, for warnings where there are no results
34533	// in a list request for a particular zone, this key might be scope and
34534	// the key value might be the zone name. Other examples might be a key
34535	// indicating a deprecated resource and a suggested replacement, or a
34536	// warning about invalid network settings (for example, if an instance
34537	// attempts to perform IP forwarding but is not enabled for IP
34538	// forwarding).
34539	Key string `json:"key,omitempty"`
34540
34541	// Value: [Output Only] A warning data value corresponding to the key.
34542	Value string `json:"value,omitempty"`
34543
34544	// ForceSendFields is a list of field names (e.g. "Key") to
34545	// unconditionally include in API requests. By default, fields with
34546	// empty values are omitted from API requests. However, any non-pointer,
34547	// non-interface field appearing in ForceSendFields will be sent to the
34548	// server regardless of whether the field is empty or not. This may be
34549	// used to include empty fields in Patch requests.
34550	ForceSendFields []string `json:"-"`
34551
34552	// NullFields is a list of field names (e.g. "Key") to include in API
34553	// requests with the JSON null value. By default, fields with empty
34554	// values are omitted from API requests. However, any field with an
34555	// empty value appearing in NullFields will be sent to the server as
34556	// null. It is an error if a field in this list has a non-empty value.
34557	// This may be used to include null fields in Patch requests.
34558	NullFields []string `json:"-"`
34559}
34560
34561func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
34562	type NoMethod ReservationListWarningData
34563	raw := NoMethod(*s)
34564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34565}
34566
34567type ReservationsResizeRequest struct {
34568	// SpecificSkuCount: Number of allocated resources can be resized with
34569	// minimum = 1 and maximum = 1000.
34570	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
34571
34572	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
34573	// unconditionally include in API requests. By default, fields with
34574	// empty values are omitted from API requests. However, any non-pointer,
34575	// non-interface field appearing in ForceSendFields will be sent to the
34576	// server regardless of whether the field is empty or not. This may be
34577	// used to include empty fields in Patch requests.
34578	ForceSendFields []string `json:"-"`
34579
34580	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
34581	// include in API requests with the JSON null value. By default, fields
34582	// with empty values are omitted from API requests. However, any field
34583	// with an empty value appearing in NullFields will be sent to the
34584	// server as null. It is an error if a field in this list has a
34585	// non-empty value. This may be used to include null fields in Patch
34586	// requests.
34587	NullFields []string `json:"-"`
34588}
34589
34590func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
34591	type NoMethod ReservationsResizeRequest
34592	raw := NoMethod(*s)
34593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34594}
34595
34596type ReservationsScopedList struct {
34597	// Reservations: A list of reservations contained in this scope.
34598	Reservations []*Reservation `json:"reservations,omitempty"`
34599
34600	// Warning: Informational warning which replaces the list of
34601	// reservations when the list is empty.
34602	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
34603
34604	// ForceSendFields is a list of field names (e.g. "Reservations") to
34605	// unconditionally include in API requests. By default, fields with
34606	// empty values are omitted from API requests. However, any non-pointer,
34607	// non-interface field appearing in ForceSendFields will be sent to the
34608	// server regardless of whether the field is empty or not. This may be
34609	// used to include empty fields in Patch requests.
34610	ForceSendFields []string `json:"-"`
34611
34612	// NullFields is a list of field names (e.g. "Reservations") to include
34613	// in API requests with the JSON null value. By default, fields with
34614	// empty values are omitted from API requests. However, any field with
34615	// an empty value appearing in NullFields will be sent to the server as
34616	// null. It is an error if a field in this list has a non-empty value.
34617	// This may be used to include null fields in Patch requests.
34618	NullFields []string `json:"-"`
34619}
34620
34621func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
34622	type NoMethod ReservationsScopedList
34623	raw := NoMethod(*s)
34624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34625}
34626
34627// ReservationsScopedListWarning: Informational warning which replaces
34628// the list of reservations when the list is empty.
34629type ReservationsScopedListWarning struct {
34630	// Code: [Output Only] A warning code, if applicable. For example,
34631	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34632	// the response.
34633	//
34634	// Possible values:
34635	//   "CLEANUP_FAILED"
34636	//   "DEPRECATED_RESOURCE_USED"
34637	//   "DEPRECATED_TYPE_USED"
34638	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34639	//   "EXPERIMENTAL_TYPE_USED"
34640	//   "EXTERNAL_API_WARNING"
34641	//   "FIELD_VALUE_OVERRIDEN"
34642	//   "INJECTED_KERNELS_DEPRECATED"
34643	//   "LARGE_DEPLOYMENT_WARNING"
34644	//   "MISSING_TYPE_DEPENDENCY"
34645	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34646	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34647	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34648	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34649	//   "NEXT_HOP_NOT_RUNNING"
34650	//   "NOT_CRITICAL_ERROR"
34651	//   "NO_RESULTS_ON_PAGE"
34652	//   "PARTIAL_SUCCESS"
34653	//   "REQUIRED_TOS_AGREEMENT"
34654	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34655	//   "RESOURCE_NOT_DELETED"
34656	//   "SCHEMA_VALIDATION_IGNORED"
34657	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34658	//   "UNDECLARED_PROPERTIES"
34659	//   "UNREACHABLE"
34660	Code string `json:"code,omitempty"`
34661
34662	// Data: [Output Only] Metadata about this warning in key: value format.
34663	// For example:
34664	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34665	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
34666
34667	// Message: [Output Only] A human-readable description of the warning
34668	// code.
34669	Message string `json:"message,omitempty"`
34670
34671	// ForceSendFields is a list of field names (e.g. "Code") to
34672	// unconditionally include in API requests. By default, fields with
34673	// empty values are omitted from API requests. However, any non-pointer,
34674	// non-interface field appearing in ForceSendFields will be sent to the
34675	// server regardless of whether the field is empty or not. This may be
34676	// used to include empty fields in Patch requests.
34677	ForceSendFields []string `json:"-"`
34678
34679	// NullFields is a list of field names (e.g. "Code") to include in API
34680	// requests with the JSON null value. By default, fields with empty
34681	// values are omitted from API requests. However, any field with an
34682	// empty value appearing in NullFields will be sent to the server as
34683	// null. It is an error if a field in this list has a non-empty value.
34684	// This may be used to include null fields in Patch requests.
34685	NullFields []string `json:"-"`
34686}
34687
34688func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
34689	type NoMethod ReservationsScopedListWarning
34690	raw := NoMethod(*s)
34691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34692}
34693
34694type ReservationsScopedListWarningData struct {
34695	// Key: [Output Only] A key that provides more detail on the warning
34696	// being returned. For example, for warnings where there are no results
34697	// in a list request for a particular zone, this key might be scope and
34698	// the key value might be the zone name. Other examples might be a key
34699	// indicating a deprecated resource and a suggested replacement, or a
34700	// warning about invalid network settings (for example, if an instance
34701	// attempts to perform IP forwarding but is not enabled for IP
34702	// forwarding).
34703	Key string `json:"key,omitempty"`
34704
34705	// Value: [Output Only] A warning data value corresponding to the key.
34706	Value string `json:"value,omitempty"`
34707
34708	// ForceSendFields is a list of field names (e.g. "Key") to
34709	// unconditionally include in API requests. By default, fields with
34710	// empty values are omitted from API requests. However, any non-pointer,
34711	// non-interface field appearing in ForceSendFields will be sent to the
34712	// server regardless of whether the field is empty or not. This may be
34713	// used to include empty fields in Patch requests.
34714	ForceSendFields []string `json:"-"`
34715
34716	// NullFields is a list of field names (e.g. "Key") to include in API
34717	// requests with the JSON null value. By default, fields with empty
34718	// values are omitted from API requests. However, any field with an
34719	// empty value appearing in NullFields will be sent to the server as
34720	// null. It is an error if a field in this list has a non-empty value.
34721	// This may be used to include null fields in Patch requests.
34722	NullFields []string `json:"-"`
34723}
34724
34725func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
34726	type NoMethod ReservationsScopedListWarningData
34727	raw := NoMethod(*s)
34728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34729}
34730
34731// ResourceCommitment: Commitment for a particular resource (a
34732// Commitment is composed of one or more of these).
34733type ResourceCommitment struct {
34734	// AcceleratorType: Name of the accelerator type resource. Applicable
34735	// only when the type is ACCELERATOR.
34736	AcceleratorType string `json:"acceleratorType,omitempty"`
34737
34738	// Amount: The amount of the resource purchased (in a type-dependent
34739	// unit, such as bytes). For vCPUs, this can just be an integer. For
34740	// memory, this must be provided in MB. Memory must be a multiple of 256
34741	// MB, with up to 6.5GB of memory per every vCPU.
34742	Amount int64 `json:"amount,omitempty,string"`
34743
34744	// Type: Type of resource for which this commitment applies. Possible
34745	// values are VCPU and MEMORY
34746	//
34747	// Possible values:
34748	//   "ACCELERATOR"
34749	//   "LOCAL_SSD"
34750	//   "MEMORY"
34751	//   "UNSPECIFIED"
34752	//   "VCPU"
34753	Type string `json:"type,omitempty"`
34754
34755	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
34756	// unconditionally include in API requests. By default, fields with
34757	// empty values are omitted from API requests. However, any non-pointer,
34758	// non-interface field appearing in ForceSendFields will be sent to the
34759	// server regardless of whether the field is empty or not. This may be
34760	// used to include empty fields in Patch requests.
34761	ForceSendFields []string `json:"-"`
34762
34763	// NullFields is a list of field names (e.g. "AcceleratorType") to
34764	// include in API requests with the JSON null value. By default, fields
34765	// with empty values are omitted from API requests. However, any field
34766	// with an empty value appearing in NullFields will be sent to the
34767	// server as null. It is an error if a field in this list has a
34768	// non-empty value. This may be used to include null fields in Patch
34769	// requests.
34770	NullFields []string `json:"-"`
34771}
34772
34773func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
34774	type NoMethod ResourceCommitment
34775	raw := NoMethod(*s)
34776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34777}
34778
34779type ResourceGroupReference struct {
34780	// Group: A URI referencing one of the instance groups or network
34781	// endpoint groups listed in the backend service.
34782	Group string `json:"group,omitempty"`
34783
34784	// ForceSendFields is a list of field names (e.g. "Group") to
34785	// unconditionally include in API requests. By default, fields with
34786	// empty values are omitted from API requests. However, any non-pointer,
34787	// non-interface field appearing in ForceSendFields will be sent to the
34788	// server regardless of whether the field is empty or not. This may be
34789	// used to include empty fields in Patch requests.
34790	ForceSendFields []string `json:"-"`
34791
34792	// NullFields is a list of field names (e.g. "Group") to include in API
34793	// requests with the JSON null value. By default, fields with empty
34794	// values are omitted from API requests. However, any field with an
34795	// empty value appearing in NullFields will be sent to the server as
34796	// null. It is an error if a field in this list has a non-empty value.
34797	// This may be used to include null fields in Patch requests.
34798	NullFields []string `json:"-"`
34799}
34800
34801func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
34802	type NoMethod ResourceGroupReference
34803	raw := NoMethod(*s)
34804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34805}
34806
34807type ResourcePoliciesScopedList struct {
34808	// ResourcePolicies: A list of resourcePolicies contained in this scope.
34809	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
34810
34811	// Warning: Informational warning which replaces the list of
34812	// resourcePolicies when the list is empty.
34813	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
34814
34815	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
34816	// unconditionally include in API requests. By default, fields with
34817	// empty values are omitted from API requests. However, any non-pointer,
34818	// non-interface field appearing in ForceSendFields will be sent to the
34819	// server regardless of whether the field is empty or not. This may be
34820	// used to include empty fields in Patch requests.
34821	ForceSendFields []string `json:"-"`
34822
34823	// NullFields is a list of field names (e.g. "ResourcePolicies") to
34824	// include in API requests with the JSON null value. By default, fields
34825	// with empty values are omitted from API requests. However, any field
34826	// with an empty value appearing in NullFields will be sent to the
34827	// server as null. It is an error if a field in this list has a
34828	// non-empty value. This may be used to include null fields in Patch
34829	// requests.
34830	NullFields []string `json:"-"`
34831}
34832
34833func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
34834	type NoMethod ResourcePoliciesScopedList
34835	raw := NoMethod(*s)
34836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34837}
34838
34839// ResourcePoliciesScopedListWarning: Informational warning which
34840// replaces the list of resourcePolicies when the list is empty.
34841type ResourcePoliciesScopedListWarning struct {
34842	// Code: [Output Only] A warning code, if applicable. For example,
34843	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34844	// the response.
34845	//
34846	// Possible values:
34847	//   "CLEANUP_FAILED"
34848	//   "DEPRECATED_RESOURCE_USED"
34849	//   "DEPRECATED_TYPE_USED"
34850	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34851	//   "EXPERIMENTAL_TYPE_USED"
34852	//   "EXTERNAL_API_WARNING"
34853	//   "FIELD_VALUE_OVERRIDEN"
34854	//   "INJECTED_KERNELS_DEPRECATED"
34855	//   "LARGE_DEPLOYMENT_WARNING"
34856	//   "MISSING_TYPE_DEPENDENCY"
34857	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34858	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34859	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34860	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34861	//   "NEXT_HOP_NOT_RUNNING"
34862	//   "NOT_CRITICAL_ERROR"
34863	//   "NO_RESULTS_ON_PAGE"
34864	//   "PARTIAL_SUCCESS"
34865	//   "REQUIRED_TOS_AGREEMENT"
34866	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34867	//   "RESOURCE_NOT_DELETED"
34868	//   "SCHEMA_VALIDATION_IGNORED"
34869	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34870	//   "UNDECLARED_PROPERTIES"
34871	//   "UNREACHABLE"
34872	Code string `json:"code,omitempty"`
34873
34874	// Data: [Output Only] Metadata about this warning in key: value format.
34875	// For example:
34876	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34877	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
34878
34879	// Message: [Output Only] A human-readable description of the warning
34880	// code.
34881	Message string `json:"message,omitempty"`
34882
34883	// ForceSendFields is a list of field names (e.g. "Code") to
34884	// unconditionally include in API requests. By default, fields with
34885	// empty values are omitted from API requests. However, any non-pointer,
34886	// non-interface field appearing in ForceSendFields will be sent to the
34887	// server regardless of whether the field is empty or not. This may be
34888	// used to include empty fields in Patch requests.
34889	ForceSendFields []string `json:"-"`
34890
34891	// NullFields is a list of field names (e.g. "Code") to include in API
34892	// requests with the JSON null value. By default, fields with empty
34893	// values are omitted from API requests. However, any field with an
34894	// empty value appearing in NullFields will be sent to the server as
34895	// null. It is an error if a field in this list has a non-empty value.
34896	// This may be used to include null fields in Patch requests.
34897	NullFields []string `json:"-"`
34898}
34899
34900func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
34901	type NoMethod ResourcePoliciesScopedListWarning
34902	raw := NoMethod(*s)
34903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34904}
34905
34906type ResourcePoliciesScopedListWarningData struct {
34907	// Key: [Output Only] A key that provides more detail on the warning
34908	// being returned. For example, for warnings where there are no results
34909	// in a list request for a particular zone, this key might be scope and
34910	// the key value might be the zone name. Other examples might be a key
34911	// indicating a deprecated resource and a suggested replacement, or a
34912	// warning about invalid network settings (for example, if an instance
34913	// attempts to perform IP forwarding but is not enabled for IP
34914	// forwarding).
34915	Key string `json:"key,omitempty"`
34916
34917	// Value: [Output Only] A warning data value corresponding to the key.
34918	Value string `json:"value,omitempty"`
34919
34920	// ForceSendFields is a list of field names (e.g. "Key") to
34921	// unconditionally include in API requests. By default, fields with
34922	// empty values are omitted from API requests. However, any non-pointer,
34923	// non-interface field appearing in ForceSendFields will be sent to the
34924	// server regardless of whether the field is empty or not. This may be
34925	// used to include empty fields in Patch requests.
34926	ForceSendFields []string `json:"-"`
34927
34928	// NullFields is a list of field names (e.g. "Key") to include in API
34929	// requests with the JSON null value. By default, fields with empty
34930	// values are omitted from API requests. However, any field with an
34931	// empty value appearing in NullFields will be sent to the server as
34932	// null. It is an error if a field in this list has a non-empty value.
34933	// This may be used to include null fields in Patch requests.
34934	NullFields []string `json:"-"`
34935}
34936
34937func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
34938	type NoMethod ResourcePoliciesScopedListWarningData
34939	raw := NoMethod(*s)
34940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34941}
34942
34943// ResourcePolicy: Represents a Resource Policy resource. You can use
34944// resource policies to schedule actions for some Compute Engine
34945// resources. For example, you can use them to schedule persistent disk
34946// snapshots.
34947//
34948// (== resource_for {$api_version}.resourcePolicies ==)
34949type ResourcePolicy struct {
34950	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34951	// format.
34952	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34953
34954	Description string `json:"description,omitempty"`
34955
34956	// GroupPlacementPolicy: Resource policy for instances for placement
34957	// configuration.
34958	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
34959
34960	// Id: [Output Only] The unique identifier for the resource. This
34961	// identifier is defined by the server.
34962	Id uint64 `json:"id,omitempty,string"`
34963
34964	// InstanceSchedulePolicy: Resource policy for scheduling instance
34965	// operations.
34966	InstanceSchedulePolicy *ResourcePolicyInstanceSchedulePolicy `json:"instanceSchedulePolicy,omitempty"`
34967
34968	// Kind: [Output Only] Type of the resource. Always
34969	// compute#resource_policies for resource policies.
34970	Kind string `json:"kind,omitempty"`
34971
34972	// Name: The name of the resource, provided by the client when initially
34973	// creating the resource. The resource name must be 1-63 characters
34974	// long, and comply with RFC1035. Specifically, the name must be 1-63
34975	// characters long and match the regular expression
34976	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
34977	// a lowercase letter, and all following characters must be a dash,
34978	// lowercase letter, or digit, except the last character, which cannot
34979	// be a dash.
34980	Name string `json:"name,omitempty"`
34981
34982	Region string `json:"region,omitempty"`
34983
34984	// ResourceStatus: [Output Only] The system status of the resource
34985	// policy.
34986	ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"`
34987
34988	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34989	// resource.
34990	SelfLink string `json:"selfLink,omitempty"`
34991
34992	// SnapshotSchedulePolicy: Resource policy for persistent disks for
34993	// creating snapshots.
34994	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
34995
34996	// Status: [Output Only] The status of resource policy creation.
34997	//
34998	// Possible values:
34999	//   "CREATING"
35000	//   "DELETING"
35001	//   "EXPIRED"
35002	//   "INVALID"
35003	//   "READY"
35004	Status string `json:"status,omitempty"`
35005
35006	// ServerResponse contains the HTTP response code and headers from the
35007	// server.
35008	googleapi.ServerResponse `json:"-"`
35009
35010	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35011	// to unconditionally include in API requests. By default, fields with
35012	// empty values are omitted from API requests. However, any non-pointer,
35013	// non-interface field appearing in ForceSendFields will be sent to the
35014	// server regardless of whether the field is empty or not. This may be
35015	// used to include empty fields in Patch requests.
35016	ForceSendFields []string `json:"-"`
35017
35018	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35019	// include in API requests with the JSON null value. By default, fields
35020	// with empty values are omitted from API requests. However, any field
35021	// with an empty value appearing in NullFields will be sent to the
35022	// server as null. It is an error if a field in this list has a
35023	// non-empty value. This may be used to include null fields in Patch
35024	// requests.
35025	NullFields []string `json:"-"`
35026}
35027
35028func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
35029	type NoMethod ResourcePolicy
35030	raw := NoMethod(*s)
35031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35032}
35033
35034// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
35035type ResourcePolicyAggregatedList struct {
35036	Etag string `json:"etag,omitempty"`
35037
35038	// Id: [Output Only] Unique identifier for the resource; defined by the
35039	// server.
35040	Id string `json:"id,omitempty"`
35041
35042	// Items: A list of ResourcePolicy resources.
35043	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
35044
35045	// Kind: Type of resource.
35046	Kind string `json:"kind,omitempty"`
35047
35048	// NextPageToken: [Output Only] This token allows you to get the next
35049	// page of results for list requests. If the number of results is larger
35050	// than maxResults, use the nextPageToken as a value for the query
35051	// parameter pageToken in the next list request. Subsequent list
35052	// requests will have their own nextPageToken to continue paging through
35053	// the results.
35054	NextPageToken string `json:"nextPageToken,omitempty"`
35055
35056	// SelfLink: [Output Only] Server-defined URL for this resource.
35057	SelfLink string `json:"selfLink,omitempty"`
35058
35059	// Unreachables: [Output Only] Unreachable resources.
35060	Unreachables []string `json:"unreachables,omitempty"`
35061
35062	// Warning: [Output Only] Informational warning message.
35063	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
35064
35065	// ServerResponse contains the HTTP response code and headers from the
35066	// server.
35067	googleapi.ServerResponse `json:"-"`
35068
35069	// ForceSendFields is a list of field names (e.g. "Etag") to
35070	// unconditionally include in API requests. By default, fields with
35071	// empty values are omitted from API requests. However, any non-pointer,
35072	// non-interface field appearing in ForceSendFields will be sent to the
35073	// server regardless of whether the field is empty or not. This may be
35074	// used to include empty fields in Patch requests.
35075	ForceSendFields []string `json:"-"`
35076
35077	// NullFields is a list of field names (e.g. "Etag") to include in API
35078	// requests with the JSON null value. By default, fields with empty
35079	// values are omitted from API requests. However, any field with an
35080	// empty value appearing in NullFields will be sent to the server as
35081	// null. It is an error if a field in this list has a non-empty value.
35082	// This may be used to include null fields in Patch requests.
35083	NullFields []string `json:"-"`
35084}
35085
35086func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
35087	type NoMethod ResourcePolicyAggregatedList
35088	raw := NoMethod(*s)
35089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35090}
35091
35092// ResourcePolicyAggregatedListWarning: [Output Only] Informational
35093// warning message.
35094type ResourcePolicyAggregatedListWarning struct {
35095	// Code: [Output Only] A warning code, if applicable. For example,
35096	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35097	// the response.
35098	//
35099	// Possible values:
35100	//   "CLEANUP_FAILED"
35101	//   "DEPRECATED_RESOURCE_USED"
35102	//   "DEPRECATED_TYPE_USED"
35103	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35104	//   "EXPERIMENTAL_TYPE_USED"
35105	//   "EXTERNAL_API_WARNING"
35106	//   "FIELD_VALUE_OVERRIDEN"
35107	//   "INJECTED_KERNELS_DEPRECATED"
35108	//   "LARGE_DEPLOYMENT_WARNING"
35109	//   "MISSING_TYPE_DEPENDENCY"
35110	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35111	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35112	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35113	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35114	//   "NEXT_HOP_NOT_RUNNING"
35115	//   "NOT_CRITICAL_ERROR"
35116	//   "NO_RESULTS_ON_PAGE"
35117	//   "PARTIAL_SUCCESS"
35118	//   "REQUIRED_TOS_AGREEMENT"
35119	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35120	//   "RESOURCE_NOT_DELETED"
35121	//   "SCHEMA_VALIDATION_IGNORED"
35122	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35123	//   "UNDECLARED_PROPERTIES"
35124	//   "UNREACHABLE"
35125	Code string `json:"code,omitempty"`
35126
35127	// Data: [Output Only] Metadata about this warning in key: value format.
35128	// For example:
35129	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35130	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
35131
35132	// Message: [Output Only] A human-readable description of the warning
35133	// code.
35134	Message string `json:"message,omitempty"`
35135
35136	// ForceSendFields is a list of field names (e.g. "Code") to
35137	// unconditionally include in API requests. By default, fields with
35138	// empty values are omitted from API requests. However, any non-pointer,
35139	// non-interface field appearing in ForceSendFields will be sent to the
35140	// server regardless of whether the field is empty or not. This may be
35141	// used to include empty fields in Patch requests.
35142	ForceSendFields []string `json:"-"`
35143
35144	// NullFields is a list of field names (e.g. "Code") to include in API
35145	// requests with the JSON null value. By default, fields with empty
35146	// values are omitted from API requests. However, any field with an
35147	// empty value appearing in NullFields will be sent to the server as
35148	// null. It is an error if a field in this list has a non-empty value.
35149	// This may be used to include null fields in Patch requests.
35150	NullFields []string `json:"-"`
35151}
35152
35153func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
35154	type NoMethod ResourcePolicyAggregatedListWarning
35155	raw := NoMethod(*s)
35156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35157}
35158
35159type ResourcePolicyAggregatedListWarningData struct {
35160	// Key: [Output Only] A key that provides more detail on the warning
35161	// being returned. For example, for warnings where there are no results
35162	// in a list request for a particular zone, this key might be scope and
35163	// the key value might be the zone name. Other examples might be a key
35164	// indicating a deprecated resource and a suggested replacement, or a
35165	// warning about invalid network settings (for example, if an instance
35166	// attempts to perform IP forwarding but is not enabled for IP
35167	// forwarding).
35168	Key string `json:"key,omitempty"`
35169
35170	// Value: [Output Only] A warning data value corresponding to the key.
35171	Value string `json:"value,omitempty"`
35172
35173	// ForceSendFields is a list of field names (e.g. "Key") to
35174	// unconditionally include in API requests. By default, fields with
35175	// empty values are omitted from API requests. However, any non-pointer,
35176	// non-interface field appearing in ForceSendFields will be sent to the
35177	// server regardless of whether the field is empty or not. This may be
35178	// used to include empty fields in Patch requests.
35179	ForceSendFields []string `json:"-"`
35180
35181	// NullFields is a list of field names (e.g. "Key") to include in API
35182	// requests with the JSON null value. By default, fields with empty
35183	// values are omitted from API requests. However, any field with an
35184	// empty value appearing in NullFields will be sent to the server as
35185	// null. It is an error if a field in this list has a non-empty value.
35186	// This may be used to include null fields in Patch requests.
35187	NullFields []string `json:"-"`
35188}
35189
35190func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
35191	type NoMethod ResourcePolicyAggregatedListWarningData
35192	raw := NoMethod(*s)
35193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35194}
35195
35196// ResourcePolicyDailyCycle: Time window specified for daily operations.
35197type ResourcePolicyDailyCycle struct {
35198	// DaysInCycle: Defines a schedule with units measured in months. The
35199	// value determines how many months pass between the start of each
35200	// cycle.
35201	DaysInCycle int64 `json:"daysInCycle,omitempty"`
35202
35203	// Duration: [Output only] A predetermined duration for the window,
35204	// automatically chosen to be the smallest possible in the given
35205	// scenario.
35206	Duration string `json:"duration,omitempty"`
35207
35208	// StartTime: Start time of the window. This must be in UTC format that
35209	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
35210	// example, both 13:00-5 and 08:00 are valid.
35211	StartTime string `json:"startTime,omitempty"`
35212
35213	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
35214	// unconditionally include in API requests. By default, fields with
35215	// empty values are omitted from API requests. However, any non-pointer,
35216	// non-interface field appearing in ForceSendFields will be sent to the
35217	// server regardless of whether the field is empty or not. This may be
35218	// used to include empty fields in Patch requests.
35219	ForceSendFields []string `json:"-"`
35220
35221	// NullFields is a list of field names (e.g. "DaysInCycle") to include
35222	// in API requests with the JSON null value. By default, fields with
35223	// empty values are omitted from API requests. However, any field with
35224	// an empty value appearing in NullFields will be sent to the server as
35225	// null. It is an error if a field in this list has a non-empty value.
35226	// This may be used to include null fields in Patch requests.
35227	NullFields []string `json:"-"`
35228}
35229
35230func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
35231	type NoMethod ResourcePolicyDailyCycle
35232	raw := NoMethod(*s)
35233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35234}
35235
35236// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
35237// resource placement configuration. It specifies the failure bucket
35238// separation as well as network locality
35239type ResourcePolicyGroupPlacementPolicy struct {
35240	// AvailabilityDomainCount: The number of availability domains instances
35241	// will be spread across. If two instances are in different availability
35242	// domain, they will not be put in the same low latency network
35243	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
35244
35245	// Collocation: Specifies network collocation
35246	//
35247	// Possible values:
35248	//   "COLLOCATED"
35249	//   "UNSPECIFIED_COLLOCATION"
35250	Collocation string `json:"collocation,omitempty"`
35251
35252	// VmCount: Number of vms in this placement group
35253	VmCount int64 `json:"vmCount,omitempty"`
35254
35255	// ForceSendFields is a list of field names (e.g.
35256	// "AvailabilityDomainCount") to unconditionally include in API
35257	// requests. By default, fields with empty values are omitted from API
35258	// requests. However, any non-pointer, non-interface field appearing in
35259	// ForceSendFields will be sent to the server regardless of whether the
35260	// field is empty or not. This may be used to include empty fields in
35261	// Patch requests.
35262	ForceSendFields []string `json:"-"`
35263
35264	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
35265	// to include in API requests with the JSON null value. By default,
35266	// fields with empty values are omitted from API requests. However, any
35267	// field with an empty value appearing in NullFields will be sent to the
35268	// server as null. It is an error if a field in this list has a
35269	// non-empty value. This may be used to include null fields in Patch
35270	// requests.
35271	NullFields []string `json:"-"`
35272}
35273
35274func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
35275	type NoMethod ResourcePolicyGroupPlacementPolicy
35276	raw := NoMethod(*s)
35277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35278}
35279
35280// ResourcePolicyHourlyCycle: Time window specified for hourly
35281// operations.
35282type ResourcePolicyHourlyCycle struct {
35283	// Duration: [Output only] Duration of the time window, automatically
35284	// chosen to be smallest possible in the given scenario.
35285	Duration string `json:"duration,omitempty"`
35286
35287	// HoursInCycle: Defines a schedule with units measured in hours. The
35288	// value determines how many hours pass between the start of each cycle.
35289	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
35290
35291	// StartTime: Time within the window to start the operations. It must be
35292	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
35293	StartTime string `json:"startTime,omitempty"`
35294
35295	// ForceSendFields is a list of field names (e.g. "Duration") to
35296	// unconditionally include in API requests. By default, fields with
35297	// empty values are omitted from API requests. However, any non-pointer,
35298	// non-interface field appearing in ForceSendFields will be sent to the
35299	// server regardless of whether the field is empty or not. This may be
35300	// used to include empty fields in Patch requests.
35301	ForceSendFields []string `json:"-"`
35302
35303	// NullFields is a list of field names (e.g. "Duration") to include in
35304	// API requests with the JSON null value. By default, fields with empty
35305	// values are omitted from API requests. However, any field with an
35306	// empty value appearing in NullFields will be sent to the server as
35307	// null. It is an error if a field in this list has a non-empty value.
35308	// This may be used to include null fields in Patch requests.
35309	NullFields []string `json:"-"`
35310}
35311
35312func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
35313	type NoMethod ResourcePolicyHourlyCycle
35314	raw := NoMethod(*s)
35315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35316}
35317
35318// ResourcePolicyInstanceSchedulePolicy: An InstanceSchedulePolicy
35319// specifies when and how frequent certain operations are performed on
35320// the instance.
35321type ResourcePolicyInstanceSchedulePolicy struct {
35322	// ExpirationTime: The expiration time of the schedule. The timestamp is
35323	// an RFC3339 string.
35324	ExpirationTime string `json:"expirationTime,omitempty"`
35325
35326	// StartTime: The start time of the schedule. The timestamp is an
35327	// RFC3339 string.
35328	StartTime string `json:"startTime,omitempty"`
35329
35330	// TimeZone: Specifies the time zone to be used in interpreting
35331	// Schedule.schedule. The value of this field must be a time zone name
35332	// from the tz database: http://en.wikipedia.org/wiki/Tz_database.
35333	TimeZone string `json:"timeZone,omitempty"`
35334
35335	// VmStartSchedule: Specifies the schedule for starting instances.
35336	VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStartSchedule,omitempty"`
35337
35338	// VmStopSchedule: Specifies the schedule for stopping instances.
35339	VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStopSchedule,omitempty"`
35340
35341	// ForceSendFields is a list of field names (e.g. "ExpirationTime") to
35342	// unconditionally include in API requests. By default, fields with
35343	// empty values are omitted from API requests. However, any non-pointer,
35344	// non-interface field appearing in ForceSendFields will be sent to the
35345	// server regardless of whether the field is empty or not. This may be
35346	// used to include empty fields in Patch requests.
35347	ForceSendFields []string `json:"-"`
35348
35349	// NullFields is a list of field names (e.g. "ExpirationTime") to
35350	// include in API requests with the JSON null value. By default, fields
35351	// with empty values are omitted from API requests. However, any field
35352	// with an empty value appearing in NullFields will be sent to the
35353	// server as null. It is an error if a field in this list has a
35354	// non-empty value. This may be used to include null fields in Patch
35355	// requests.
35356	NullFields []string `json:"-"`
35357}
35358
35359func (s *ResourcePolicyInstanceSchedulePolicy) MarshalJSON() ([]byte, error) {
35360	type NoMethod ResourcePolicyInstanceSchedulePolicy
35361	raw := NoMethod(*s)
35362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35363}
35364
35365// ResourcePolicyInstanceSchedulePolicySchedule: Schedule for an
35366// instance operation.
35367type ResourcePolicyInstanceSchedulePolicySchedule struct {
35368	// Schedule: Specifies the frequency for the operation, using the
35369	// unix-cron format.
35370	Schedule string `json:"schedule,omitempty"`
35371
35372	// ForceSendFields is a list of field names (e.g. "Schedule") to
35373	// unconditionally include in API requests. By default, fields with
35374	// empty values are omitted from API requests. However, any non-pointer,
35375	// non-interface field appearing in ForceSendFields will be sent to the
35376	// server regardless of whether the field is empty or not. This may be
35377	// used to include empty fields in Patch requests.
35378	ForceSendFields []string `json:"-"`
35379
35380	// NullFields is a list of field names (e.g. "Schedule") to include in
35381	// API requests with the JSON null value. By default, fields with empty
35382	// values are omitted from API requests. However, any field with an
35383	// empty value appearing in NullFields will be sent to the server as
35384	// null. It is an error if a field in this list has a non-empty value.
35385	// This may be used to include null fields in Patch requests.
35386	NullFields []string `json:"-"`
35387}
35388
35389func (s *ResourcePolicyInstanceSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
35390	type NoMethod ResourcePolicyInstanceSchedulePolicySchedule
35391	raw := NoMethod(*s)
35392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35393}
35394
35395type ResourcePolicyList struct {
35396	Etag string `json:"etag,omitempty"`
35397
35398	// Id: [Output Only] The unique identifier for the resource. This
35399	// identifier is defined by the server.
35400	Id string `json:"id,omitempty"`
35401
35402	// Items: [Output Only] A list of ResourcePolicy resources.
35403	Items []*ResourcePolicy `json:"items,omitempty"`
35404
35405	// Kind: [Output Only] Type of resource.Always
35406	// compute#resourcePoliciesList for listsof resourcePolicies
35407	Kind string `json:"kind,omitempty"`
35408
35409	// NextPageToken: [Output Only] This token allows you to get the next
35410	// page of results for list requests. If the number of results is larger
35411	// than maxResults, use the nextPageToken as a value for the query
35412	// parameter pageToken in the next list request. Subsequent list
35413	// requests will have their own nextPageToken to continue paging through
35414	// the results.
35415	NextPageToken string `json:"nextPageToken,omitempty"`
35416
35417	// SelfLink: [Output Only] Server-defined URL for this resource.
35418	SelfLink string `json:"selfLink,omitempty"`
35419
35420	// Warning: [Output Only] Informational warning message.
35421	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
35422
35423	// ServerResponse contains the HTTP response code and headers from the
35424	// server.
35425	googleapi.ServerResponse `json:"-"`
35426
35427	// ForceSendFields is a list of field names (e.g. "Etag") to
35428	// unconditionally include in API requests. By default, fields with
35429	// empty values are omitted from API requests. However, any non-pointer,
35430	// non-interface field appearing in ForceSendFields will be sent to the
35431	// server regardless of whether the field is empty or not. This may be
35432	// used to include empty fields in Patch requests.
35433	ForceSendFields []string `json:"-"`
35434
35435	// NullFields is a list of field names (e.g. "Etag") to include in API
35436	// requests with the JSON null value. By default, fields with empty
35437	// values are omitted from API requests. However, any field with an
35438	// empty value appearing in NullFields will be sent to the server as
35439	// null. It is an error if a field in this list has a non-empty value.
35440	// This may be used to include null fields in Patch requests.
35441	NullFields []string `json:"-"`
35442}
35443
35444func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
35445	type NoMethod ResourcePolicyList
35446	raw := NoMethod(*s)
35447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35448}
35449
35450// ResourcePolicyListWarning: [Output Only] Informational warning
35451// message.
35452type ResourcePolicyListWarning struct {
35453	// Code: [Output Only] A warning code, if applicable. For example,
35454	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35455	// the response.
35456	//
35457	// Possible values:
35458	//   "CLEANUP_FAILED"
35459	//   "DEPRECATED_RESOURCE_USED"
35460	//   "DEPRECATED_TYPE_USED"
35461	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35462	//   "EXPERIMENTAL_TYPE_USED"
35463	//   "EXTERNAL_API_WARNING"
35464	//   "FIELD_VALUE_OVERRIDEN"
35465	//   "INJECTED_KERNELS_DEPRECATED"
35466	//   "LARGE_DEPLOYMENT_WARNING"
35467	//   "MISSING_TYPE_DEPENDENCY"
35468	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35469	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35470	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35471	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35472	//   "NEXT_HOP_NOT_RUNNING"
35473	//   "NOT_CRITICAL_ERROR"
35474	//   "NO_RESULTS_ON_PAGE"
35475	//   "PARTIAL_SUCCESS"
35476	//   "REQUIRED_TOS_AGREEMENT"
35477	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35478	//   "RESOURCE_NOT_DELETED"
35479	//   "SCHEMA_VALIDATION_IGNORED"
35480	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35481	//   "UNDECLARED_PROPERTIES"
35482	//   "UNREACHABLE"
35483	Code string `json:"code,omitempty"`
35484
35485	// Data: [Output Only] Metadata about this warning in key: value format.
35486	// For example:
35487	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35488	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
35489
35490	// Message: [Output Only] A human-readable description of the warning
35491	// code.
35492	Message string `json:"message,omitempty"`
35493
35494	// ForceSendFields is a list of field names (e.g. "Code") to
35495	// unconditionally include in API requests. By default, fields with
35496	// empty values are omitted from API requests. However, any non-pointer,
35497	// non-interface field appearing in ForceSendFields will be sent to the
35498	// server regardless of whether the field is empty or not. This may be
35499	// used to include empty fields in Patch requests.
35500	ForceSendFields []string `json:"-"`
35501
35502	// NullFields is a list of field names (e.g. "Code") to include in API
35503	// requests with the JSON null value. By default, fields with empty
35504	// values are omitted from API requests. However, any field with an
35505	// empty value appearing in NullFields will be sent to the server as
35506	// null. It is an error if a field in this list has a non-empty value.
35507	// This may be used to include null fields in Patch requests.
35508	NullFields []string `json:"-"`
35509}
35510
35511func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
35512	type NoMethod ResourcePolicyListWarning
35513	raw := NoMethod(*s)
35514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35515}
35516
35517type ResourcePolicyListWarningData struct {
35518	// Key: [Output Only] A key that provides more detail on the warning
35519	// being returned. For example, for warnings where there are no results
35520	// in a list request for a particular zone, this key might be scope and
35521	// the key value might be the zone name. Other examples might be a key
35522	// indicating a deprecated resource and a suggested replacement, or a
35523	// warning about invalid network settings (for example, if an instance
35524	// attempts to perform IP forwarding but is not enabled for IP
35525	// forwarding).
35526	Key string `json:"key,omitempty"`
35527
35528	// Value: [Output Only] A warning data value corresponding to the key.
35529	Value string `json:"value,omitempty"`
35530
35531	// ForceSendFields is a list of field names (e.g. "Key") to
35532	// unconditionally include in API requests. By default, fields with
35533	// empty values are omitted from API requests. However, any non-pointer,
35534	// non-interface field appearing in ForceSendFields will be sent to the
35535	// server regardless of whether the field is empty or not. This may be
35536	// used to include empty fields in Patch requests.
35537	ForceSendFields []string `json:"-"`
35538
35539	// NullFields is a list of field names (e.g. "Key") to include in API
35540	// requests with the JSON null value. By default, fields with empty
35541	// values are omitted from API requests. However, any field with an
35542	// empty value appearing in NullFields will be sent to the server as
35543	// null. It is an error if a field in this list has a non-empty value.
35544	// This may be used to include null fields in Patch requests.
35545	NullFields []string `json:"-"`
35546}
35547
35548func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
35549	type NoMethod ResourcePolicyListWarningData
35550	raw := NoMethod(*s)
35551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35552}
35553
35554// ResourcePolicyResourceStatus: Contains output only fields. Use this
35555// sub-message for all output fields set on ResourcePolicy. The internal
35556// structure of this "status" field should mimic the structure of
35557// ResourcePolicy proto specification.
35558type ResourcePolicyResourceStatus struct {
35559	// InstanceSchedulePolicy: [Output Only] Specifies a set of output
35560	// values reffering to the instance_schedule_policy system status. This
35561	// field should have the same name as corresponding policy field.
35562	InstanceSchedulePolicy *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus `json:"instanceSchedulePolicy,omitempty"`
35563
35564	// ForceSendFields is a list of field names (e.g.
35565	// "InstanceSchedulePolicy") to unconditionally include in API requests.
35566	// By default, fields with empty values are omitted from API requests.
35567	// However, any non-pointer, non-interface field appearing in
35568	// ForceSendFields will be sent to the server regardless of whether the
35569	// field is empty or not. This may be used to include empty fields in
35570	// Patch requests.
35571	ForceSendFields []string `json:"-"`
35572
35573	// NullFields is a list of field names (e.g. "InstanceSchedulePolicy")
35574	// to include in API requests with the JSON null value. By default,
35575	// fields with empty values are omitted from API requests. However, any
35576	// field with an empty value appearing in NullFields will be sent to the
35577	// server as null. It is an error if a field in this list has a
35578	// non-empty value. This may be used to include null fields in Patch
35579	// requests.
35580	NullFields []string `json:"-"`
35581}
35582
35583func (s *ResourcePolicyResourceStatus) MarshalJSON() ([]byte, error) {
35584	type NoMethod ResourcePolicyResourceStatus
35585	raw := NoMethod(*s)
35586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35587}
35588
35589type ResourcePolicyResourceStatusInstanceSchedulePolicyStatus struct {
35590	// LastRunStartTime: [Output Only] The last time the schedule
35591	// successfully ran. The timestamp is an RFC3339 string.
35592	LastRunStartTime string `json:"lastRunStartTime,omitempty"`
35593
35594	// NextRunStartTime: [Output Only] The next time the schedule is planned
35595	// to run. The actual time might be slightly different. The timestamp is
35596	// an RFC3339 string.
35597	NextRunStartTime string `json:"nextRunStartTime,omitempty"`
35598
35599	// ForceSendFields is a list of field names (e.g. "LastRunStartTime") to
35600	// unconditionally include in API requests. By default, fields with
35601	// empty values are omitted from API requests. However, any non-pointer,
35602	// non-interface field appearing in ForceSendFields will be sent to the
35603	// server regardless of whether the field is empty or not. This may be
35604	// used to include empty fields in Patch requests.
35605	ForceSendFields []string `json:"-"`
35606
35607	// NullFields is a list of field names (e.g. "LastRunStartTime") to
35608	// include in API requests with the JSON null value. By default, fields
35609	// with empty values are omitted from API requests. However, any field
35610	// with an empty value appearing in NullFields will be sent to the
35611	// server as null. It is an error if a field in this list has a
35612	// non-empty value. This may be used to include null fields in Patch
35613	// requests.
35614	NullFields []string `json:"-"`
35615}
35616
35617func (s *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus) MarshalJSON() ([]byte, error) {
35618	type NoMethod ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
35619	raw := NoMethod(*s)
35620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35621}
35622
35623// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
35624// specifies when and how frequently snapshots are to be created for the
35625// target disk. Also specifies how many and how long these scheduled
35626// snapshots should be retained.
35627type ResourcePolicySnapshotSchedulePolicy struct {
35628	// RetentionPolicy: Retention policy applied to snapshots created by
35629	// this resource policy.
35630	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
35631
35632	// Schedule: A Vm Maintenance Policy specifies what kind of
35633	// infrastructure maintenance we are allowed to perform on this VM and
35634	// when. Schedule that is applied to disks covered by this policy.
35635	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
35636
35637	// SnapshotProperties: Properties with which snapshots are created such
35638	// as labels, encryption keys.
35639	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
35640
35641	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
35642	// unconditionally include in API requests. By default, fields with
35643	// empty values are omitted from API requests. However, any non-pointer,
35644	// non-interface field appearing in ForceSendFields will be sent to the
35645	// server regardless of whether the field is empty or not. This may be
35646	// used to include empty fields in Patch requests.
35647	ForceSendFields []string `json:"-"`
35648
35649	// NullFields is a list of field names (e.g. "RetentionPolicy") to
35650	// include in API requests with the JSON null value. By default, fields
35651	// with empty values are omitted from API requests. However, any field
35652	// with an empty value appearing in NullFields will be sent to the
35653	// server as null. It is an error if a field in this list has a
35654	// non-empty value. This may be used to include null fields in Patch
35655	// requests.
35656	NullFields []string `json:"-"`
35657}
35658
35659func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
35660	type NoMethod ResourcePolicySnapshotSchedulePolicy
35661	raw := NoMethod(*s)
35662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35663}
35664
35665// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
35666// retention of scheduled snapshots.
35667type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
35668	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
35669	// kept.
35670	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
35671
35672	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
35673	// snapshots when the source disk is deleted.
35674	//
35675	// Possible values:
35676	//   "APPLY_RETENTION_POLICY"
35677	//   "KEEP_AUTO_SNAPSHOTS"
35678	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
35679	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
35680
35681	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
35682	// unconditionally include in API requests. By default, fields with
35683	// empty values are omitted from API requests. However, any non-pointer,
35684	// non-interface field appearing in ForceSendFields will be sent to the
35685	// server regardless of whether the field is empty or not. This may be
35686	// used to include empty fields in Patch requests.
35687	ForceSendFields []string `json:"-"`
35688
35689	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
35690	// include in API requests with the JSON null value. By default, fields
35691	// with empty values are omitted from API requests. However, any field
35692	// with an empty value appearing in NullFields will be sent to the
35693	// server as null. It is an error if a field in this list has a
35694	// non-empty value. This may be used to include null fields in Patch
35695	// requests.
35696	NullFields []string `json:"-"`
35697}
35698
35699func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
35700	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
35701	raw := NoMethod(*s)
35702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35703}
35704
35705// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
35706// where the schedueled operations are performed.
35707type ResourcePolicySnapshotSchedulePolicySchedule struct {
35708	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
35709
35710	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
35711
35712	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
35713
35714	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
35715	// unconditionally include in API requests. By default, fields with
35716	// empty values are omitted from API requests. However, any non-pointer,
35717	// non-interface field appearing in ForceSendFields will be sent to the
35718	// server regardless of whether the field is empty or not. This may be
35719	// used to include empty fields in Patch requests.
35720	ForceSendFields []string `json:"-"`
35721
35722	// NullFields is a list of field names (e.g. "DailySchedule") to include
35723	// in API requests with the JSON null value. By default, fields with
35724	// empty values are omitted from API requests. However, any field with
35725	// an empty value appearing in NullFields will be sent to the server as
35726	// null. It is an error if a field in this list has a non-empty value.
35727	// This may be used to include null fields in Patch requests.
35728	NullFields []string `json:"-"`
35729}
35730
35731func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
35732	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
35733	raw := NoMethod(*s)
35734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35735}
35736
35737// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
35738// snapshot properties for scheduled snapshots created by this policy.
35739type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
35740	// ChainName: Chain name that the snapshot is created in.
35741	ChainName string `json:"chainName,omitempty"`
35742
35743	// GuestFlush: Indication to perform a 'guest aware' snapshot.
35744	GuestFlush bool `json:"guestFlush,omitempty"`
35745
35746	// Labels: Labels to apply to scheduled snapshots. These can be later
35747	// modified by the setLabels method. Label values may be empty.
35748	Labels map[string]string `json:"labels,omitempty"`
35749
35750	// StorageLocations: Cloud Storage bucket storage location of the auto
35751	// snapshot (regional or multi-regional).
35752	StorageLocations []string `json:"storageLocations,omitempty"`
35753
35754	// ForceSendFields is a list of field names (e.g. "ChainName") to
35755	// unconditionally include in API requests. By default, fields with
35756	// empty values are omitted from API requests. However, any non-pointer,
35757	// non-interface field appearing in ForceSendFields will be sent to the
35758	// server regardless of whether the field is empty or not. This may be
35759	// used to include empty fields in Patch requests.
35760	ForceSendFields []string `json:"-"`
35761
35762	// NullFields is a list of field names (e.g. "ChainName") to include in
35763	// API requests with the JSON null value. By default, fields with empty
35764	// values are omitted from API requests. However, any field with an
35765	// empty value appearing in NullFields will be sent to the server as
35766	// null. It is an error if a field in this list has a non-empty value.
35767	// This may be used to include null fields in Patch requests.
35768	NullFields []string `json:"-"`
35769}
35770
35771func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
35772	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
35773	raw := NoMethod(*s)
35774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35775}
35776
35777// ResourcePolicyWeeklyCycle: Time window specified for weekly
35778// operations.
35779type ResourcePolicyWeeklyCycle struct {
35780	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
35781	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
35782
35783	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
35784	// unconditionally include in API requests. By default, fields with
35785	// empty values are omitted from API requests. However, any non-pointer,
35786	// non-interface field appearing in ForceSendFields will be sent to the
35787	// server regardless of whether the field is empty or not. This may be
35788	// used to include empty fields in Patch requests.
35789	ForceSendFields []string `json:"-"`
35790
35791	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
35792	// API requests with the JSON null value. By default, fields with empty
35793	// values are omitted from API requests. However, any field with an
35794	// empty value appearing in NullFields will be sent to the server as
35795	// null. It is an error if a field in this list has a non-empty value.
35796	// This may be used to include null fields in Patch requests.
35797	NullFields []string `json:"-"`
35798}
35799
35800func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
35801	type NoMethod ResourcePolicyWeeklyCycle
35802	raw := NoMethod(*s)
35803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35804}
35805
35806type ResourcePolicyWeeklyCycleDayOfWeek struct {
35807	// Day: Defines a schedule that runs on specific days of the week.
35808	// Specify one or more days. The following options are available:
35809	// MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
35810	//
35811	// Possible values:
35812	//   "FRIDAY"
35813	//   "INVALID"
35814	//   "MONDAY"
35815	//   "SATURDAY"
35816	//   "SUNDAY"
35817	//   "THURSDAY"
35818	//   "TUESDAY"
35819	//   "WEDNESDAY"
35820	Day string `json:"day,omitempty"`
35821
35822	// Duration: [Output only] Duration of the time window, automatically
35823	// chosen to be smallest possible in the given scenario.
35824	Duration string `json:"duration,omitempty"`
35825
35826	// StartTime: Time within the window to start the operations. It must be
35827	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
35828	StartTime string `json:"startTime,omitempty"`
35829
35830	// ForceSendFields is a list of field names (e.g. "Day") to
35831	// unconditionally include in API requests. By default, fields with
35832	// empty values are omitted from API requests. However, any non-pointer,
35833	// non-interface field appearing in ForceSendFields will be sent to the
35834	// server regardless of whether the field is empty or not. This may be
35835	// used to include empty fields in Patch requests.
35836	ForceSendFields []string `json:"-"`
35837
35838	// NullFields is a list of field names (e.g. "Day") to include in API
35839	// requests with the JSON null value. By default, fields with empty
35840	// values are omitted from API requests. However, any field with an
35841	// empty value appearing in NullFields will be sent to the server as
35842	// null. It is an error if a field in this list has a non-empty value.
35843	// This may be used to include null fields in Patch requests.
35844	NullFields []string `json:"-"`
35845}
35846
35847func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
35848	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
35849	raw := NoMethod(*s)
35850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35851}
35852
35853// Route: Represents a Route resource.
35854//
35855// A route defines a path from VM instances in the VPC network to a
35856// specific destination. This destination can be inside or outside the
35857// VPC network. For more information, read the Routes overview. (==
35858// resource_for {$api_version}.routes ==)
35859type Route struct {
35860	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35861	// format.
35862	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35863
35864	// Description: An optional description of this resource. Provide this
35865	// field when you create the resource.
35866	Description string `json:"description,omitempty"`
35867
35868	// DestRange: The destination range of outgoing packets that this route
35869	// applies to. Both IPv4 and IPv6 are supported.
35870	DestRange string `json:"destRange,omitempty"`
35871
35872	// Id: [Output Only] The unique identifier for the resource. This
35873	// identifier is defined by the server.
35874	Id uint64 `json:"id,omitempty,string"`
35875
35876	// Kind: [Output Only] Type of this resource. Always compute#routes for
35877	// Route resources.
35878	Kind string `json:"kind,omitempty"`
35879
35880	// Name: Name of the resource. Provided by the client when the resource
35881	// is created. The name must be 1-63 characters long, and comply with
35882	// RFC1035. Specifically, the name must be 1-63 characters long and
35883	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
35884	// character must be a lowercase letter, and all following characters
35885	// (except for the last character) must be a dash, lowercase letter, or
35886	// digit. The last character must be a lowercase letter or digit.
35887	Name string `json:"name,omitempty"`
35888
35889	// Network: Fully-qualified URL of the network that this route applies
35890	// to.
35891	Network string `json:"network,omitempty"`
35892
35893	// NextHopGateway: The URL to a gateway that should handle matching
35894	// packets. You can only specify the internet gateway using a full or
35895	// partial valid URL:
35896	// projects/project/global/gateways/default-internet-gateway
35897	NextHopGateway string `json:"nextHopGateway,omitempty"`
35898
35899	// NextHopIlb: The URL to a forwarding rule of type
35900	// loadBalancingScheme=INTERNAL that should handle matching packets or
35901	// the IP address of the forwarding Rule. For example, the following are
35902	// all valid URLs:
35903	// - 10.128.0.56
35904	// -
35905	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
35906	//
35907	// - regions/region/forwardingRules/forwardingRule
35908	NextHopIlb string `json:"nextHopIlb,omitempty"`
35909
35910	// NextHopInstance: The URL to an instance that should handle matching
35911	// packets. You can specify this as a full or partial URL. For
35912	// example:
35913	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
35914	NextHopInstance string `json:"nextHopInstance,omitempty"`
35915
35916	// NextHopInterconnectAttachment: [Output Only] The URL to an
35917	// InterconnectAttachment which is the next hop for the route. This
35918	// field will only be populated for the dynamic routes generated by
35919	// Cloud Router with a linked interconnectAttachment.
35920	NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"`
35921
35922	// NextHopIp: The network IP address of an instance that should handle
35923	// matching packets. Only IPv4 is supported.
35924	NextHopIp string `json:"nextHopIp,omitempty"`
35925
35926	// NextHopNetwork: The URL of the local network if it should handle
35927	// matching packets.
35928	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
35929
35930	// NextHopPeering: [Output Only] The network peering name that should
35931	// handle matching packets, which should conform to RFC1035.
35932	NextHopPeering string `json:"nextHopPeering,omitempty"`
35933
35934	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
35935	// packets.
35936	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
35937
35938	// Priority: The priority of this route. Priority is used to break ties
35939	// in cases where there is more than one matching route of equal prefix
35940	// length. In cases where multiple routes have equal prefix length, the
35941	// one with the lowest-numbered priority value wins. The default value
35942	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
35943	Priority int64 `json:"priority,omitempty"`
35944
35945	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
35946	// resource.
35947	SelfLink string `json:"selfLink,omitempty"`
35948
35949	// Tags: A list of instance tags to which this route applies.
35950	Tags []string `json:"tags,omitempty"`
35951
35952	// Warnings: [Output Only] If potential misconfigurations are detected
35953	// for this route, this field will be populated with warning messages.
35954	Warnings []*RouteWarnings `json:"warnings,omitempty"`
35955
35956	// ServerResponse contains the HTTP response code and headers from the
35957	// server.
35958	googleapi.ServerResponse `json:"-"`
35959
35960	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35961	// to unconditionally include in API requests. By default, fields with
35962	// empty values are omitted from API requests. However, any non-pointer,
35963	// non-interface field appearing in ForceSendFields will be sent to the
35964	// server regardless of whether the field is empty or not. This may be
35965	// used to include empty fields in Patch requests.
35966	ForceSendFields []string `json:"-"`
35967
35968	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35969	// include in API requests with the JSON null value. By default, fields
35970	// with empty values are omitted from API requests. However, any field
35971	// with an empty value appearing in NullFields will be sent to the
35972	// server as null. It is an error if a field in this list has a
35973	// non-empty value. This may be used to include null fields in Patch
35974	// requests.
35975	NullFields []string `json:"-"`
35976}
35977
35978func (s *Route) MarshalJSON() ([]byte, error) {
35979	type NoMethod Route
35980	raw := NoMethod(*s)
35981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35982}
35983
35984type RouteWarnings struct {
35985	// Code: [Output Only] A warning code, if applicable. For example,
35986	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35987	// the response.
35988	//
35989	// Possible values:
35990	//   "CLEANUP_FAILED"
35991	//   "DEPRECATED_RESOURCE_USED"
35992	//   "DEPRECATED_TYPE_USED"
35993	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35994	//   "EXPERIMENTAL_TYPE_USED"
35995	//   "EXTERNAL_API_WARNING"
35996	//   "FIELD_VALUE_OVERRIDEN"
35997	//   "INJECTED_KERNELS_DEPRECATED"
35998	//   "LARGE_DEPLOYMENT_WARNING"
35999	//   "MISSING_TYPE_DEPENDENCY"
36000	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36001	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36002	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36003	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36004	//   "NEXT_HOP_NOT_RUNNING"
36005	//   "NOT_CRITICAL_ERROR"
36006	//   "NO_RESULTS_ON_PAGE"
36007	//   "PARTIAL_SUCCESS"
36008	//   "REQUIRED_TOS_AGREEMENT"
36009	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36010	//   "RESOURCE_NOT_DELETED"
36011	//   "SCHEMA_VALIDATION_IGNORED"
36012	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36013	//   "UNDECLARED_PROPERTIES"
36014	//   "UNREACHABLE"
36015	Code string `json:"code,omitempty"`
36016
36017	// Data: [Output Only] Metadata about this warning in key: value format.
36018	// For example:
36019	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36020	Data []*RouteWarningsData `json:"data,omitempty"`
36021
36022	// Message: [Output Only] A human-readable description of the warning
36023	// code.
36024	Message string `json:"message,omitempty"`
36025
36026	// ForceSendFields is a list of field names (e.g. "Code") to
36027	// unconditionally include in API requests. By default, fields with
36028	// empty values are omitted from API requests. However, any non-pointer,
36029	// non-interface field appearing in ForceSendFields will be sent to the
36030	// server regardless of whether the field is empty or not. This may be
36031	// used to include empty fields in Patch requests.
36032	ForceSendFields []string `json:"-"`
36033
36034	// NullFields is a list of field names (e.g. "Code") to include in API
36035	// requests with the JSON null value. By default, fields with empty
36036	// values are omitted from API requests. However, any field with an
36037	// empty value appearing in NullFields will be sent to the server as
36038	// null. It is an error if a field in this list has a non-empty value.
36039	// This may be used to include null fields in Patch requests.
36040	NullFields []string `json:"-"`
36041}
36042
36043func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
36044	type NoMethod RouteWarnings
36045	raw := NoMethod(*s)
36046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36047}
36048
36049type RouteWarningsData struct {
36050	// Key: [Output Only] A key that provides more detail on the warning
36051	// being returned. For example, for warnings where there are no results
36052	// in a list request for a particular zone, this key might be scope and
36053	// the key value might be the zone name. Other examples might be a key
36054	// indicating a deprecated resource and a suggested replacement, or a
36055	// warning about invalid network settings (for example, if an instance
36056	// attempts to perform IP forwarding but is not enabled for IP
36057	// forwarding).
36058	Key string `json:"key,omitempty"`
36059
36060	// Value: [Output Only] A warning data value corresponding to the key.
36061	Value string `json:"value,omitempty"`
36062
36063	// ForceSendFields is a list of field names (e.g. "Key") to
36064	// unconditionally include in API requests. By default, fields with
36065	// empty values are omitted from API requests. However, any non-pointer,
36066	// non-interface field appearing in ForceSendFields will be sent to the
36067	// server regardless of whether the field is empty or not. This may be
36068	// used to include empty fields in Patch requests.
36069	ForceSendFields []string `json:"-"`
36070
36071	// NullFields is a list of field names (e.g. "Key") to include in API
36072	// requests with the JSON null value. By default, fields with empty
36073	// values are omitted from API requests. However, any field with an
36074	// empty value appearing in NullFields will be sent to the server as
36075	// null. It is an error if a field in this list has a non-empty value.
36076	// This may be used to include null fields in Patch requests.
36077	NullFields []string `json:"-"`
36078}
36079
36080func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
36081	type NoMethod RouteWarningsData
36082	raw := NoMethod(*s)
36083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36084}
36085
36086// RouteList: Contains a list of Route resources.
36087type RouteList struct {
36088	// Id: [Output Only] Unique identifier for the resource; defined by the
36089	// server.
36090	Id string `json:"id,omitempty"`
36091
36092	// Items: A list of Route resources.
36093	Items []*Route `json:"items,omitempty"`
36094
36095	// Kind: Type of resource.
36096	Kind string `json:"kind,omitempty"`
36097
36098	// NextPageToken: [Output Only] This token allows you to get the next
36099	// page of results for list requests. If the number of results is larger
36100	// than maxResults, use the nextPageToken as a value for the query
36101	// parameter pageToken in the next list request. Subsequent list
36102	// requests will have their own nextPageToken to continue paging through
36103	// the results.
36104	NextPageToken string `json:"nextPageToken,omitempty"`
36105
36106	// SelfLink: [Output Only] Server-defined URL for this resource.
36107	SelfLink string `json:"selfLink,omitempty"`
36108
36109	// Warning: [Output Only] Informational warning message.
36110	Warning *RouteListWarning `json:"warning,omitempty"`
36111
36112	// ServerResponse contains the HTTP response code and headers from the
36113	// server.
36114	googleapi.ServerResponse `json:"-"`
36115
36116	// ForceSendFields is a list of field names (e.g. "Id") to
36117	// unconditionally include in API requests. By default, fields with
36118	// empty values are omitted from API requests. However, any non-pointer,
36119	// non-interface field appearing in ForceSendFields will be sent to the
36120	// server regardless of whether the field is empty or not. This may be
36121	// used to include empty fields in Patch requests.
36122	ForceSendFields []string `json:"-"`
36123
36124	// NullFields is a list of field names (e.g. "Id") to include in API
36125	// requests with the JSON null value. By default, fields with empty
36126	// values are omitted from API requests. However, any field with an
36127	// empty value appearing in NullFields will be sent to the server as
36128	// null. It is an error if a field in this list has a non-empty value.
36129	// This may be used to include null fields in Patch requests.
36130	NullFields []string `json:"-"`
36131}
36132
36133func (s *RouteList) MarshalJSON() ([]byte, error) {
36134	type NoMethod RouteList
36135	raw := NoMethod(*s)
36136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36137}
36138
36139// RouteListWarning: [Output Only] Informational warning message.
36140type RouteListWarning struct {
36141	// Code: [Output Only] A warning code, if applicable. For example,
36142	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36143	// the response.
36144	//
36145	// Possible values:
36146	//   "CLEANUP_FAILED"
36147	//   "DEPRECATED_RESOURCE_USED"
36148	//   "DEPRECATED_TYPE_USED"
36149	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36150	//   "EXPERIMENTAL_TYPE_USED"
36151	//   "EXTERNAL_API_WARNING"
36152	//   "FIELD_VALUE_OVERRIDEN"
36153	//   "INJECTED_KERNELS_DEPRECATED"
36154	//   "LARGE_DEPLOYMENT_WARNING"
36155	//   "MISSING_TYPE_DEPENDENCY"
36156	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36157	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36158	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36159	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36160	//   "NEXT_HOP_NOT_RUNNING"
36161	//   "NOT_CRITICAL_ERROR"
36162	//   "NO_RESULTS_ON_PAGE"
36163	//   "PARTIAL_SUCCESS"
36164	//   "REQUIRED_TOS_AGREEMENT"
36165	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36166	//   "RESOURCE_NOT_DELETED"
36167	//   "SCHEMA_VALIDATION_IGNORED"
36168	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36169	//   "UNDECLARED_PROPERTIES"
36170	//   "UNREACHABLE"
36171	Code string `json:"code,omitempty"`
36172
36173	// Data: [Output Only] Metadata about this warning in key: value format.
36174	// For example:
36175	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36176	Data []*RouteListWarningData `json:"data,omitempty"`
36177
36178	// Message: [Output Only] A human-readable description of the warning
36179	// code.
36180	Message string `json:"message,omitempty"`
36181
36182	// ForceSendFields is a list of field names (e.g. "Code") to
36183	// unconditionally include in API requests. By default, fields with
36184	// empty values are omitted from API requests. However, any non-pointer,
36185	// non-interface field appearing in ForceSendFields will be sent to the
36186	// server regardless of whether the field is empty or not. This may be
36187	// used to include empty fields in Patch requests.
36188	ForceSendFields []string `json:"-"`
36189
36190	// NullFields is a list of field names (e.g. "Code") to include in API
36191	// requests with the JSON null value. By default, fields with empty
36192	// values are omitted from API requests. However, any field with an
36193	// empty value appearing in NullFields will be sent to the server as
36194	// null. It is an error if a field in this list has a non-empty value.
36195	// This may be used to include null fields in Patch requests.
36196	NullFields []string `json:"-"`
36197}
36198
36199func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
36200	type NoMethod RouteListWarning
36201	raw := NoMethod(*s)
36202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36203}
36204
36205type RouteListWarningData struct {
36206	// Key: [Output Only] A key that provides more detail on the warning
36207	// being returned. For example, for warnings where there are no results
36208	// in a list request for a particular zone, this key might be scope and
36209	// the key value might be the zone name. Other examples might be a key
36210	// indicating a deprecated resource and a suggested replacement, or a
36211	// warning about invalid network settings (for example, if an instance
36212	// attempts to perform IP forwarding but is not enabled for IP
36213	// forwarding).
36214	Key string `json:"key,omitempty"`
36215
36216	// Value: [Output Only] A warning data value corresponding to the key.
36217	Value string `json:"value,omitempty"`
36218
36219	// ForceSendFields is a list of field names (e.g. "Key") to
36220	// unconditionally include in API requests. By default, fields with
36221	// empty values are omitted from API requests. However, any non-pointer,
36222	// non-interface field appearing in ForceSendFields will be sent to the
36223	// server regardless of whether the field is empty or not. This may be
36224	// used to include empty fields in Patch requests.
36225	ForceSendFields []string `json:"-"`
36226
36227	// NullFields is a list of field names (e.g. "Key") to include in API
36228	// requests with the JSON null value. By default, fields with empty
36229	// values are omitted from API requests. However, any field with an
36230	// empty value appearing in NullFields will be sent to the server as
36231	// null. It is an error if a field in this list has a non-empty value.
36232	// This may be used to include null fields in Patch requests.
36233	NullFields []string `json:"-"`
36234}
36235
36236func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
36237	type NoMethod RouteListWarningData
36238	raw := NoMethod(*s)
36239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36240}
36241
36242// Router: Represents a Cloud Router resource.
36243//
36244// For more information about Cloud Router, read the Cloud Router
36245// overview.
36246type Router struct {
36247	// Bgp: BGP information specific to this router.
36248	Bgp *RouterBgp `json:"bgp,omitempty"`
36249
36250	// BgpPeers: BGP information that must be configured into the routing
36251	// stack to establish BGP peering. This information must specify the
36252	// peer ASN and either the interface name, IP address, or peer IP
36253	// address. Please refer to RFC4273.
36254	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
36255
36256	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36257	// format.
36258	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36259
36260	// Description: An optional description of this resource. Provide this
36261	// property when you create the resource.
36262	Description string `json:"description,omitempty"`
36263
36264	// EncryptedInterconnectRouter: Indicates if a router is dedicated for
36265	// use with encrypted VLAN attachments (interconnectAttachments).
36266	// Not currently available publicly.
36267	EncryptedInterconnectRouter bool `json:"encryptedInterconnectRouter,omitempty"`
36268
36269	// Id: [Output Only] The unique identifier for the resource. This
36270	// identifier is defined by the server.
36271	Id uint64 `json:"id,omitempty,string"`
36272
36273	// Interfaces: Router interfaces. Each interface requires either one
36274	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
36275	// address range (for example, ipRange), or both.
36276	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
36277
36278	// Kind: [Output Only] Type of resource. Always compute#router for
36279	// routers.
36280	Kind string `json:"kind,omitempty"`
36281
36282	// Name: Name of the resource. Provided by the client when the resource
36283	// is created. The name must be 1-63 characters long, and comply with
36284	// RFC1035. Specifically, the name must be 1-63 characters long and
36285	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36286	// the first character must be a lowercase letter, and all following
36287	// characters must be a dash, lowercase letter, or digit, except the
36288	// last character, which cannot be a dash.
36289	Name string `json:"name,omitempty"`
36290
36291	// Nats: A list of NAT services created in this router.
36292	Nats []*RouterNat `json:"nats,omitempty"`
36293
36294	// Network: URI of the network to which this router belongs.
36295	Network string `json:"network,omitempty"`
36296
36297	// Region: [Output Only] URI of the region where the router resides. You
36298	// must specify this field as part of the HTTP request URL. It is not
36299	// settable as a field in the request body.
36300	Region string `json:"region,omitempty"`
36301
36302	// SelfLink: [Output Only] Server-defined URL for the resource.
36303	SelfLink string `json:"selfLink,omitempty"`
36304
36305	// ServerResponse contains the HTTP response code and headers from the
36306	// server.
36307	googleapi.ServerResponse `json:"-"`
36308
36309	// ForceSendFields is a list of field names (e.g. "Bgp") to
36310	// unconditionally include in API requests. By default, fields with
36311	// empty values are omitted from API requests. However, any non-pointer,
36312	// non-interface field appearing in ForceSendFields will be sent to the
36313	// server regardless of whether the field is empty or not. This may be
36314	// used to include empty fields in Patch requests.
36315	ForceSendFields []string `json:"-"`
36316
36317	// NullFields is a list of field names (e.g. "Bgp") to include in API
36318	// requests with the JSON null value. By default, fields with empty
36319	// values are omitted from API requests. However, any field with an
36320	// empty value appearing in NullFields will be sent to the server as
36321	// null. It is an error if a field in this list has a non-empty value.
36322	// This may be used to include null fields in Patch requests.
36323	NullFields []string `json:"-"`
36324}
36325
36326func (s *Router) MarshalJSON() ([]byte, error) {
36327	type NoMethod Router
36328	raw := NoMethod(*s)
36329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36330}
36331
36332// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
36333// to advertise.
36334type RouterAdvertisedIpRange struct {
36335	// Description: User-specified description for the IP range.
36336	Description string `json:"description,omitempty"`
36337
36338	// Range: The IP range to advertise. The value must be a CIDR-formatted
36339	// string.
36340	Range string `json:"range,omitempty"`
36341
36342	// ForceSendFields is a list of field names (e.g. "Description") to
36343	// unconditionally include in API requests. By default, fields with
36344	// empty values are omitted from API requests. However, any non-pointer,
36345	// non-interface field appearing in ForceSendFields will be sent to the
36346	// server regardless of whether the field is empty or not. This may be
36347	// used to include empty fields in Patch requests.
36348	ForceSendFields []string `json:"-"`
36349
36350	// NullFields is a list of field names (e.g. "Description") to include
36351	// in API requests with the JSON null value. By default, fields with
36352	// empty values are omitted from API requests. However, any field with
36353	// an empty value appearing in NullFields will be sent to the server as
36354	// null. It is an error if a field in this list has a non-empty value.
36355	// This may be used to include null fields in Patch requests.
36356	NullFields []string `json:"-"`
36357}
36358
36359func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
36360	type NoMethod RouterAdvertisedIpRange
36361	raw := NoMethod(*s)
36362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36363}
36364
36365// RouterAggregatedList: Contains a list of routers.
36366type RouterAggregatedList struct {
36367	// Id: [Output Only] Unique identifier for the resource; defined by the
36368	// server.
36369	Id string `json:"id,omitempty"`
36370
36371	// Items: A list of Router resources.
36372	Items map[string]RoutersScopedList `json:"items,omitempty"`
36373
36374	// Kind: Type of resource.
36375	Kind string `json:"kind,omitempty"`
36376
36377	// NextPageToken: [Output Only] This token allows you to get the next
36378	// page of results for list requests. If the number of results is larger
36379	// than maxResults, use the nextPageToken as a value for the query
36380	// parameter pageToken in the next list request. Subsequent list
36381	// requests will have their own nextPageToken to continue paging through
36382	// the results.
36383	NextPageToken string `json:"nextPageToken,omitempty"`
36384
36385	// SelfLink: [Output Only] Server-defined URL for this resource.
36386	SelfLink string `json:"selfLink,omitempty"`
36387
36388	// Unreachables: [Output Only] Unreachable resources.
36389	Unreachables []string `json:"unreachables,omitempty"`
36390
36391	// Warning: [Output Only] Informational warning message.
36392	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
36393
36394	// ServerResponse contains the HTTP response code and headers from the
36395	// server.
36396	googleapi.ServerResponse `json:"-"`
36397
36398	// ForceSendFields is a list of field names (e.g. "Id") to
36399	// unconditionally include in API requests. By default, fields with
36400	// empty values are omitted from API requests. However, any non-pointer,
36401	// non-interface field appearing in ForceSendFields will be sent to the
36402	// server regardless of whether the field is empty or not. This may be
36403	// used to include empty fields in Patch requests.
36404	ForceSendFields []string `json:"-"`
36405
36406	// NullFields is a list of field names (e.g. "Id") to include in API
36407	// requests with the JSON null value. By default, fields with empty
36408	// values are omitted from API requests. However, any field with an
36409	// empty value appearing in NullFields will be sent to the server as
36410	// null. It is an error if a field in this list has a non-empty value.
36411	// This may be used to include null fields in Patch requests.
36412	NullFields []string `json:"-"`
36413}
36414
36415func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
36416	type NoMethod RouterAggregatedList
36417	raw := NoMethod(*s)
36418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36419}
36420
36421// RouterAggregatedListWarning: [Output Only] Informational warning
36422// message.
36423type RouterAggregatedListWarning struct {
36424	// Code: [Output Only] A warning code, if applicable. For example,
36425	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36426	// the response.
36427	//
36428	// Possible values:
36429	//   "CLEANUP_FAILED"
36430	//   "DEPRECATED_RESOURCE_USED"
36431	//   "DEPRECATED_TYPE_USED"
36432	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36433	//   "EXPERIMENTAL_TYPE_USED"
36434	//   "EXTERNAL_API_WARNING"
36435	//   "FIELD_VALUE_OVERRIDEN"
36436	//   "INJECTED_KERNELS_DEPRECATED"
36437	//   "LARGE_DEPLOYMENT_WARNING"
36438	//   "MISSING_TYPE_DEPENDENCY"
36439	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36440	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36441	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36442	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36443	//   "NEXT_HOP_NOT_RUNNING"
36444	//   "NOT_CRITICAL_ERROR"
36445	//   "NO_RESULTS_ON_PAGE"
36446	//   "PARTIAL_SUCCESS"
36447	//   "REQUIRED_TOS_AGREEMENT"
36448	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36449	//   "RESOURCE_NOT_DELETED"
36450	//   "SCHEMA_VALIDATION_IGNORED"
36451	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36452	//   "UNDECLARED_PROPERTIES"
36453	//   "UNREACHABLE"
36454	Code string `json:"code,omitempty"`
36455
36456	// Data: [Output Only] Metadata about this warning in key: value format.
36457	// For example:
36458	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36459	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
36460
36461	// Message: [Output Only] A human-readable description of the warning
36462	// code.
36463	Message string `json:"message,omitempty"`
36464
36465	// ForceSendFields is a list of field names (e.g. "Code") to
36466	// unconditionally include in API requests. By default, fields with
36467	// empty values are omitted from API requests. However, any non-pointer,
36468	// non-interface field appearing in ForceSendFields will be sent to the
36469	// server regardless of whether the field is empty or not. This may be
36470	// used to include empty fields in Patch requests.
36471	ForceSendFields []string `json:"-"`
36472
36473	// NullFields is a list of field names (e.g. "Code") to include in API
36474	// requests with the JSON null value. By default, fields with empty
36475	// values are omitted from API requests. However, any field with an
36476	// empty value appearing in NullFields will be sent to the server as
36477	// null. It is an error if a field in this list has a non-empty value.
36478	// This may be used to include null fields in Patch requests.
36479	NullFields []string `json:"-"`
36480}
36481
36482func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
36483	type NoMethod RouterAggregatedListWarning
36484	raw := NoMethod(*s)
36485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36486}
36487
36488type RouterAggregatedListWarningData struct {
36489	// Key: [Output Only] A key that provides more detail on the warning
36490	// being returned. For example, for warnings where there are no results
36491	// in a list request for a particular zone, this key might be scope and
36492	// the key value might be the zone name. Other examples might be a key
36493	// indicating a deprecated resource and a suggested replacement, or a
36494	// warning about invalid network settings (for example, if an instance
36495	// attempts to perform IP forwarding but is not enabled for IP
36496	// forwarding).
36497	Key string `json:"key,omitempty"`
36498
36499	// Value: [Output Only] A warning data value corresponding to the key.
36500	Value string `json:"value,omitempty"`
36501
36502	// ForceSendFields is a list of field names (e.g. "Key") to
36503	// unconditionally include in API requests. By default, fields with
36504	// empty values are omitted from API requests. However, any non-pointer,
36505	// non-interface field appearing in ForceSendFields will be sent to the
36506	// server regardless of whether the field is empty or not. This may be
36507	// used to include empty fields in Patch requests.
36508	ForceSendFields []string `json:"-"`
36509
36510	// NullFields is a list of field names (e.g. "Key") to include in API
36511	// requests with the JSON null value. By default, fields with empty
36512	// values are omitted from API requests. However, any field with an
36513	// empty value appearing in NullFields will be sent to the server as
36514	// null. It is an error if a field in this list has a non-empty value.
36515	// This may be used to include null fields in Patch requests.
36516	NullFields []string `json:"-"`
36517}
36518
36519func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
36520	type NoMethod RouterAggregatedListWarningData
36521	raw := NoMethod(*s)
36522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36523}
36524
36525type RouterBgp struct {
36526	// AdvertiseMode: User-specified flag to indicate which mode to use for
36527	// advertisement. The options are DEFAULT or CUSTOM.
36528	//
36529	// Possible values:
36530	//   "CUSTOM"
36531	//   "DEFAULT"
36532	AdvertiseMode string `json:"advertiseMode,omitempty"`
36533
36534	// AdvertisedGroups: User-specified list of prefix groups to advertise
36535	// in custom mode. This field can only be populated if advertise_mode is
36536	// CUSTOM and is advertised to all peers of the router. These groups
36537	// will be advertised in addition to any specified prefixes. Leave this
36538	// field blank to advertise no custom groups.
36539	//
36540	// Possible values:
36541	//   "ALL_SUBNETS"
36542	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
36543
36544	// AdvertisedIpRanges: User-specified list of individual IP ranges to
36545	// advertise in custom mode. This field can only be populated if
36546	// advertise_mode is CUSTOM and is advertised to all peers of the
36547	// router. These IP ranges will be advertised in addition to any
36548	// specified groups. Leave this field blank to advertise no custom IP
36549	// ranges.
36550	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
36551
36552	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
36553	// private ASN, either 16-bit or 32-bit. The value will be fixed for
36554	// this router resource. All VPN tunnels that link to this router will
36555	// have the same local ASN.
36556	Asn int64 `json:"asn,omitempty"`
36557
36558	// KeepaliveInterval: The interval in seconds between BGP keepalive
36559	// messages that are sent to the peer.
36560	// Hold time is three times the interval at which keepalive messages are
36561	// sent, and the hold time is the maximum number of seconds allowed to
36562	// elapse between successive keepalive messages that BGP receives from a
36563	// peer.
36564	// BGP will use the smaller of either the local hold time value or the
36565	// peer's hold time value as the hold time for the BGP connection
36566	// between the two peers.
36567	// If set, this value must be between 20 and 60. The default is 20.
36568	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
36569
36570	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
36571	// unconditionally include in API requests. By default, fields with
36572	// empty values are omitted from API requests. However, any non-pointer,
36573	// non-interface field appearing in ForceSendFields will be sent to the
36574	// server regardless of whether the field is empty or not. This may be
36575	// used to include empty fields in Patch requests.
36576	ForceSendFields []string `json:"-"`
36577
36578	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
36579	// in API requests with the JSON null value. By default, fields with
36580	// empty values are omitted from API requests. However, any field with
36581	// an empty value appearing in NullFields will be sent to the server as
36582	// null. It is an error if a field in this list has a non-empty value.
36583	// This may be used to include null fields in Patch requests.
36584	NullFields []string `json:"-"`
36585}
36586
36587func (s *RouterBgp) MarshalJSON() ([]byte, error) {
36588	type NoMethod RouterBgp
36589	raw := NoMethod(*s)
36590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36591}
36592
36593type RouterBgpPeer struct {
36594	// AdvertiseMode: User-specified flag to indicate which mode to use for
36595	// advertisement.
36596	//
36597	// Possible values:
36598	//   "CUSTOM"
36599	//   "DEFAULT"
36600	AdvertiseMode string `json:"advertiseMode,omitempty"`
36601
36602	// AdvertisedGroups: User-specified list of prefix groups to advertise
36603	// in custom mode, which can take one of the following options:
36604	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
36605	// subnets.
36606	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that
36607	// this field can only be populated if advertise_mode is CUSTOM and
36608	// overrides the list defined for the router (in the "bgp" message).
36609	// These groups are advertised in addition to any specified prefixes.
36610	// Leave this field blank to advertise no custom groups.
36611	//
36612	// Possible values:
36613	//   "ALL_SUBNETS"
36614	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
36615
36616	// AdvertisedIpRanges: User-specified list of individual IP ranges to
36617	// advertise in custom mode. This field can only be populated if
36618	// advertise_mode is CUSTOM and overrides the list defined for the
36619	// router (in the "bgp" message). These IP ranges are advertised in
36620	// addition to any specified groups. Leave this field blank to advertise
36621	// no custom IP ranges.
36622	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
36623
36624	// AdvertisedRoutePriority: The priority of routes advertised to this
36625	// BGP peer. Where there is more than one matching route of maximum
36626	// length, the routes with the lowest priority value win.
36627	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
36628
36629	// Bfd: BFD configuration for the BGP peering.
36630	// Not currently available publicly.
36631	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
36632
36633	// Enable: The status of the BGP peer connection.
36634	// If set to FALSE, any active session with the peer is terminated and
36635	// all associated routing information is removed. If set to TRUE, the
36636	// peer connection can be established with routing information. The
36637	// default is TRUE.
36638	//
36639	// Possible values:
36640	//   "FALSE"
36641	//   "TRUE"
36642	Enable string `json:"enable,omitempty"`
36643
36644	// InterfaceName: Name of the interface the BGP peer is associated with.
36645	InterfaceName string `json:"interfaceName,omitempty"`
36646
36647	// IpAddress: IP address of the interface inside Google Cloud Platform.
36648	// Only IPv4 is supported.
36649	IpAddress string `json:"ipAddress,omitempty"`
36650
36651	// ManagementType: [Output Only] The resource that configures and
36652	// manages this BGP peer.
36653	// - MANAGED_BY_USER is the default value and can be managed by you or
36654	// other users
36655	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
36656	// by Cloud Interconnect, specifically by an InterconnectAttachment of
36657	// type PARTNER. Google automatically creates, updates, and deletes this
36658	// type of BGP peer when the PARTNER InterconnectAttachment is created,
36659	// updated, or deleted.
36660	//
36661	// Possible values:
36662	//   "MANAGED_BY_ATTACHMENT"
36663	//   "MANAGED_BY_USER"
36664	ManagementType string `json:"managementType,omitempty"`
36665
36666	// Name: Name of this BGP peer. The name must be 1-63 characters long,
36667	// and comply with RFC1035. Specifically, the name must be 1-63
36668	// characters long and match the regular expression
36669	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
36670	// a lowercase letter, and all following characters must be a dash,
36671	// lowercase letter, or digit, except the last character, which cannot
36672	// be a dash.
36673	Name string `json:"name,omitempty"`
36674
36675	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
36676	// may use a different value.
36677	PeerAsn int64 `json:"peerAsn,omitempty"`
36678
36679	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
36680	// Platform. Only IPv4 is supported.
36681	PeerIpAddress string `json:"peerIpAddress,omitempty"`
36682
36683	// RouterApplianceInstance: URI of the VM instance that is used as
36684	// third-party router appliances such as Next Gen Firewalls, Virtual
36685	// Routers, or Router Appliances. The VM instance must be located in
36686	// zones contained in the same region as this Cloud Router. The VM
36687	// instance is the peer side of the BGP session.
36688	RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"`
36689
36690	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
36691	// unconditionally include in API requests. By default, fields with
36692	// empty values are omitted from API requests. However, any non-pointer,
36693	// non-interface field appearing in ForceSendFields will be sent to the
36694	// server regardless of whether the field is empty or not. This may be
36695	// used to include empty fields in Patch requests.
36696	ForceSendFields []string `json:"-"`
36697
36698	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
36699	// in API requests with the JSON null value. By default, fields with
36700	// empty values are omitted from API requests. However, any field with
36701	// an empty value appearing in NullFields will be sent to the server as
36702	// null. It is an error if a field in this list has a non-empty value.
36703	// This may be used to include null fields in Patch requests.
36704	NullFields []string `json:"-"`
36705}
36706
36707func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
36708	type NoMethod RouterBgpPeer
36709	raw := NoMethod(*s)
36710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36711}
36712
36713type RouterBgpPeerBfd struct {
36714	// MinReceiveInterval: The minimum interval, in milliseconds, between
36715	// BFD control packets received from the peer router. The actual value
36716	// is negotiated between the two routers and is equal to the greater of
36717	// this value and the transmit interval of the other router.
36718	// Not currently available publicly.
36719	// If set, this value must be between 100 and 30000.
36720	// The default is 300.
36721	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
36722
36723	// MinTransmitInterval: The minimum interval, in milliseconds, between
36724	// BFD control packets transmitted to the peer router. The actual value
36725	// is negotiated between the two routers and is equal to the greater of
36726	// this value and the corresponding receive interval of the other
36727	// router.
36728	// Not currently available publicly.
36729	// If set, this value must be between 100 and 30000.
36730	// The default is 300.
36731	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
36732
36733	// Multiplier: The number of consecutive BFD packets that must be missed
36734	// before BFD declares that a peer is unavailable.
36735	// Not currently available publicly.
36736	// If set, the value must be a value between 2 and 16.
36737	// The default is 3.
36738	Multiplier int64 `json:"multiplier,omitempty"`
36739
36740	// SessionInitializationMode: The BFD session initialization mode for
36741	// this BGP peer.
36742	// Not currently available publicly.
36743	// If set to ACTIVE, the Cloud Router will initiate the BFD session for
36744	// this BGP peer. If set to PASSIVE, the Cloud Router will wait for the
36745	// peer router to initiate the BFD session for this BGP peer. If set to
36746	// DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE.
36747	//
36748	// Possible values:
36749	//   "ACTIVE"
36750	//   "DISABLED"
36751	//   "PASSIVE"
36752	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
36753
36754	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval")
36755	// to unconditionally include in API requests. By default, fields with
36756	// empty values are omitted from API requests. However, any non-pointer,
36757	// non-interface field appearing in ForceSendFields will be sent to the
36758	// server regardless of whether the field is empty or not. This may be
36759	// used to include empty fields in Patch requests.
36760	ForceSendFields []string `json:"-"`
36761
36762	// NullFields is a list of field names (e.g. "MinReceiveInterval") to
36763	// include in API requests with the JSON null value. By default, fields
36764	// with empty values are omitted from API requests. However, any field
36765	// with an empty value appearing in NullFields will be sent to the
36766	// server as null. It is an error if a field in this list has a
36767	// non-empty value. This may be used to include null fields in Patch
36768	// requests.
36769	NullFields []string `json:"-"`
36770}
36771
36772func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
36773	type NoMethod RouterBgpPeerBfd
36774	raw := NoMethod(*s)
36775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36776}
36777
36778type RouterInterface struct {
36779	// IpRange: IP address and range of the interface. The IP range must be
36780	// in the RFC3927 link-local IP address space. The value must be a
36781	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
36782	// truncate the address as it represents the IP address of the
36783	// interface.
36784	IpRange string `json:"ipRange,omitempty"`
36785
36786	// LinkedInterconnectAttachment: URI of the linked Interconnect
36787	// attachment. It must be in the same region as the router. Each
36788	// interface can have one linked resource, which can be a VPN tunnel, an
36789	// Interconnect attachment, or a virtual machine instance.
36790	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
36791
36792	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
36793	// same region as the router. Each interface can have one linked
36794	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
36795	// virtual machine instance.
36796	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
36797
36798	// ManagementType: [Output Only] The resource that configures and
36799	// manages this interface.
36800	// - MANAGED_BY_USER is the default value and can be managed directly by
36801	// users.
36802	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
36803	// managed by Cloud Interconnect, specifically, by an
36804	// InterconnectAttachment of type PARTNER. Google automatically creates,
36805	// updates, and deletes this type of interface when the PARTNER
36806	// InterconnectAttachment is created, updated, or deleted.
36807	//
36808	// Possible values:
36809	//   "MANAGED_BY_ATTACHMENT"
36810	//   "MANAGED_BY_USER"
36811	ManagementType string `json:"managementType,omitempty"`
36812
36813	// Name: Name of this interface entry. The name must be 1-63 characters
36814	// long, and comply with RFC1035. Specifically, the name must be 1-63
36815	// characters long and match the regular expression
36816	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
36817	// a lowercase letter, and all following characters must be a dash,
36818	// lowercase letter, or digit, except the last character, which cannot
36819	// be a dash.
36820	Name string `json:"name,omitempty"`
36821
36822	// PrivateIpAddress: The regional private internal IP address that is
36823	// used to establish BGP sessions to a VM instance acting as a
36824	// third-party Router Appliance, such as a Next Gen Firewall, a Virtual
36825	// Router, or an SD-WAN VM.
36826	PrivateIpAddress string `json:"privateIpAddress,omitempty"`
36827
36828	// RedundantInterface: Name of the interface that will be redundant with
36829	// the current interface you are creating. The redundantInterface must
36830	// belong to the same Cloud Router as the interface here. To establish
36831	// the BGP session to a Router Appliance VM, you must create two BGP
36832	// peers. The two BGP peers must be attached to two separate interfaces
36833	// that are redundant with each other. The redundant_interface must be
36834	// 1-63 characters long, and comply with RFC1035. Specifically, the
36835	// redundant_interface must be 1-63 characters long and match the
36836	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
36837	// character must be a lowercase letter, and all following characters
36838	// must be a dash, lowercase letter, or digit, except the last
36839	// character, which cannot be a dash.
36840	RedundantInterface string `json:"redundantInterface,omitempty"`
36841
36842	// Subnetwork: The URI of the subnetwork resource that this interface
36843	// belongs to, which must be in the same region as the Cloud Router.
36844	// When you establish a BGP session to a VM instance using this
36845	// interface, the VM instance must belong to the same subnetwork as the
36846	// subnetwork specified here.
36847	Subnetwork string `json:"subnetwork,omitempty"`
36848
36849	// ForceSendFields is a list of field names (e.g. "IpRange") to
36850	// unconditionally include in API requests. By default, fields with
36851	// empty values are omitted from API requests. However, any non-pointer,
36852	// non-interface field appearing in ForceSendFields will be sent to the
36853	// server regardless of whether the field is empty or not. This may be
36854	// used to include empty fields in Patch requests.
36855	ForceSendFields []string `json:"-"`
36856
36857	// NullFields is a list of field names (e.g. "IpRange") to include in
36858	// API requests with the JSON null value. By default, fields with empty
36859	// values are omitted from API requests. However, any field with an
36860	// empty value appearing in NullFields will be sent to the server as
36861	// null. It is an error if a field in this list has a non-empty value.
36862	// This may be used to include null fields in Patch requests.
36863	NullFields []string `json:"-"`
36864}
36865
36866func (s *RouterInterface) MarshalJSON() ([]byte, error) {
36867	type NoMethod RouterInterface
36868	raw := NoMethod(*s)
36869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36870}
36871
36872// RouterList: Contains a list of Router resources.
36873type RouterList struct {
36874	// Id: [Output Only] Unique identifier for the resource; defined by the
36875	// server.
36876	Id string `json:"id,omitempty"`
36877
36878	// Items: A list of Router resources.
36879	Items []*Router `json:"items,omitempty"`
36880
36881	// Kind: [Output Only] Type of resource. Always compute#router for
36882	// routers.
36883	Kind string `json:"kind,omitempty"`
36884
36885	// NextPageToken: [Output Only] This token allows you to get the next
36886	// page of results for list requests. If the number of results is larger
36887	// than maxResults, use the nextPageToken as a value for the query
36888	// parameter pageToken in the next list request. Subsequent list
36889	// requests will have their own nextPageToken to continue paging through
36890	// the results.
36891	NextPageToken string `json:"nextPageToken,omitempty"`
36892
36893	// SelfLink: [Output Only] Server-defined URL for this resource.
36894	SelfLink string `json:"selfLink,omitempty"`
36895
36896	// Warning: [Output Only] Informational warning message.
36897	Warning *RouterListWarning `json:"warning,omitempty"`
36898
36899	// ServerResponse contains the HTTP response code and headers from the
36900	// server.
36901	googleapi.ServerResponse `json:"-"`
36902
36903	// ForceSendFields is a list of field names (e.g. "Id") to
36904	// unconditionally include in API requests. By default, fields with
36905	// empty values are omitted from API requests. However, any non-pointer,
36906	// non-interface field appearing in ForceSendFields will be sent to the
36907	// server regardless of whether the field is empty or not. This may be
36908	// used to include empty fields in Patch requests.
36909	ForceSendFields []string `json:"-"`
36910
36911	// NullFields is a list of field names (e.g. "Id") to include in API
36912	// requests with the JSON null value. By default, fields with empty
36913	// values are omitted from API requests. However, any field with an
36914	// empty value appearing in NullFields will be sent to the server as
36915	// null. It is an error if a field in this list has a non-empty value.
36916	// This may be used to include null fields in Patch requests.
36917	NullFields []string `json:"-"`
36918}
36919
36920func (s *RouterList) MarshalJSON() ([]byte, error) {
36921	type NoMethod RouterList
36922	raw := NoMethod(*s)
36923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36924}
36925
36926// RouterListWarning: [Output Only] Informational warning message.
36927type RouterListWarning struct {
36928	// Code: [Output Only] A warning code, if applicable. For example,
36929	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36930	// the response.
36931	//
36932	// Possible values:
36933	//   "CLEANUP_FAILED"
36934	//   "DEPRECATED_RESOURCE_USED"
36935	//   "DEPRECATED_TYPE_USED"
36936	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36937	//   "EXPERIMENTAL_TYPE_USED"
36938	//   "EXTERNAL_API_WARNING"
36939	//   "FIELD_VALUE_OVERRIDEN"
36940	//   "INJECTED_KERNELS_DEPRECATED"
36941	//   "LARGE_DEPLOYMENT_WARNING"
36942	//   "MISSING_TYPE_DEPENDENCY"
36943	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36944	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36945	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36946	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36947	//   "NEXT_HOP_NOT_RUNNING"
36948	//   "NOT_CRITICAL_ERROR"
36949	//   "NO_RESULTS_ON_PAGE"
36950	//   "PARTIAL_SUCCESS"
36951	//   "REQUIRED_TOS_AGREEMENT"
36952	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36953	//   "RESOURCE_NOT_DELETED"
36954	//   "SCHEMA_VALIDATION_IGNORED"
36955	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36956	//   "UNDECLARED_PROPERTIES"
36957	//   "UNREACHABLE"
36958	Code string `json:"code,omitempty"`
36959
36960	// Data: [Output Only] Metadata about this warning in key: value format.
36961	// For example:
36962	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36963	Data []*RouterListWarningData `json:"data,omitempty"`
36964
36965	// Message: [Output Only] A human-readable description of the warning
36966	// code.
36967	Message string `json:"message,omitempty"`
36968
36969	// ForceSendFields is a list of field names (e.g. "Code") to
36970	// unconditionally include in API requests. By default, fields with
36971	// empty values are omitted from API requests. However, any non-pointer,
36972	// non-interface field appearing in ForceSendFields will be sent to the
36973	// server regardless of whether the field is empty or not. This may be
36974	// used to include empty fields in Patch requests.
36975	ForceSendFields []string `json:"-"`
36976
36977	// NullFields is a list of field names (e.g. "Code") to include in API
36978	// requests with the JSON null value. By default, fields with empty
36979	// values are omitted from API requests. However, any field with an
36980	// empty value appearing in NullFields will be sent to the server as
36981	// null. It is an error if a field in this list has a non-empty value.
36982	// This may be used to include null fields in Patch requests.
36983	NullFields []string `json:"-"`
36984}
36985
36986func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
36987	type NoMethod RouterListWarning
36988	raw := NoMethod(*s)
36989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36990}
36991
36992type RouterListWarningData struct {
36993	// Key: [Output Only] A key that provides more detail on the warning
36994	// being returned. For example, for warnings where there are no results
36995	// in a list request for a particular zone, this key might be scope and
36996	// the key value might be the zone name. Other examples might be a key
36997	// indicating a deprecated resource and a suggested replacement, or a
36998	// warning about invalid network settings (for example, if an instance
36999	// attempts to perform IP forwarding but is not enabled for IP
37000	// forwarding).
37001	Key string `json:"key,omitempty"`
37002
37003	// Value: [Output Only] A warning data value corresponding to the key.
37004	Value string `json:"value,omitempty"`
37005
37006	// ForceSendFields is a list of field names (e.g. "Key") to
37007	// unconditionally include in API requests. By default, fields with
37008	// empty values are omitted from API requests. However, any non-pointer,
37009	// non-interface field appearing in ForceSendFields will be sent to the
37010	// server regardless of whether the field is empty or not. This may be
37011	// used to include empty fields in Patch requests.
37012	ForceSendFields []string `json:"-"`
37013
37014	// NullFields is a list of field names (e.g. "Key") to include in API
37015	// requests with the JSON null value. By default, fields with empty
37016	// values are omitted from API requests. However, any field with an
37017	// empty value appearing in NullFields will be sent to the server as
37018	// null. It is an error if a field in this list has a non-empty value.
37019	// This may be used to include null fields in Patch requests.
37020	NullFields []string `json:"-"`
37021}
37022
37023func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
37024	type NoMethod RouterListWarningData
37025	raw := NoMethod(*s)
37026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37027}
37028
37029// RouterNat: Represents a Nat resource. It enables the VMs within the
37030// specified subnetworks to access Internet without external IP
37031// addresses. It specifies a list of subnetworks (and the ranges within)
37032// that want to use NAT. Customers can also provide the external IPs
37033// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
37034// no external IPs are provided.
37035type RouterNat struct {
37036	// DrainNatIps: A list of URLs of the IP resources to be drained. These
37037	// IPs must be valid static external IPs that have been assigned to the
37038	// NAT. These IPs should be used for updating/patching a NAT only.
37039	DrainNatIps []string `json:"drainNatIps,omitempty"`
37040
37041	EnableEndpointIndependentMapping bool `json:"enableEndpointIndependentMapping,omitempty"`
37042
37043	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
37044	// Defaults to 30s if not set.
37045	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
37046
37047	// LogConfig: Configure logging on this NAT.
37048	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
37049
37050	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
37051	// NAT config. If not set, a default number of ports is allocated to a
37052	// VM. This is rounded up to the nearest power of 2. For example, if the
37053	// value of this field is 50, at least 64 ports are allocated to a VM.
37054	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
37055
37056	// Name: Unique name of this Nat service. The name must be 1-63
37057	// characters long and comply with RFC1035.
37058	Name string `json:"name,omitempty"`
37059
37060	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
37061	// one of the following values:
37062	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
37063	// there are not enough specified Nat IPs, the Nat service fails for new
37064	// VMs.
37065	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
37066	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
37067	// nat_ip should be empty.
37068	//
37069	// Possible values:
37070	//   "AUTO_ONLY"
37071	//   "MANUAL_ONLY"
37072	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
37073
37074	// NatIps: A list of URLs of the IP resources used for this Nat service.
37075	// These IP addresses must be valid static external IP addresses
37076	// assigned to the project.
37077	NatIps []string `json:"natIps,omitempty"`
37078
37079	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
37080	// one of the following values:
37081	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
37082	// Subnetwork are allowed to Nat.
37083	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
37084	// in every Subnetwork are allowed to Nat.
37085	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
37086	// (specified in the field subnetwork below) The default is
37087	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
37088	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
37089	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
37090	// other Router.Nat section in any Router for this network in this
37091	// region.
37092	//
37093	// Possible values:
37094	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
37095	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
37096	//   "LIST_OF_SUBNETWORKS"
37097	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
37098
37099	// Subnetworks: A list of Subnetwork resources whose traffic should be
37100	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
37101	// is selected for the SubnetworkIpRangeToNatOption above.
37102	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
37103
37104	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
37105	// established connections. Defaults to 1200s if not set.
37106	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
37107
37108	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
37109	// connections. Defaults to 30s if not set.
37110	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
37111
37112	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
37113	// to 30s if not set.
37114	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
37115
37116	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
37117	// unconditionally include in API requests. By default, fields with
37118	// empty values are omitted from API requests. However, any non-pointer,
37119	// non-interface field appearing in ForceSendFields will be sent to the
37120	// server regardless of whether the field is empty or not. This may be
37121	// used to include empty fields in Patch requests.
37122	ForceSendFields []string `json:"-"`
37123
37124	// NullFields is a list of field names (e.g. "DrainNatIps") to include
37125	// in API requests with the JSON null value. By default, fields with
37126	// empty values are omitted from API requests. However, any field with
37127	// an empty value appearing in NullFields will be sent to the server as
37128	// null. It is an error if a field in this list has a non-empty value.
37129	// This may be used to include null fields in Patch requests.
37130	NullFields []string `json:"-"`
37131}
37132
37133func (s *RouterNat) MarshalJSON() ([]byte, error) {
37134	type NoMethod RouterNat
37135	raw := NoMethod(*s)
37136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37137}
37138
37139// RouterNatLogConfig: Configuration of logging on a NAT.
37140type RouterNatLogConfig struct {
37141	// Enable: Indicates whether or not to export logs. This is false by
37142	// default.
37143	Enable bool `json:"enable,omitempty"`
37144
37145	// Filter: Specify the desired filtering of logs on this NAT. If
37146	// unspecified, logs are exported for all connections handled by this
37147	// NAT. This option can take one of the following values:
37148	// - ERRORS_ONLY: Export logs only for connection failures.
37149	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
37150	// - ALL: Export logs for all connections, successful and unsuccessful.
37151	//
37152	// Possible values:
37153	//   "ALL"
37154	//   "ERRORS_ONLY"
37155	//   "TRANSLATIONS_ONLY"
37156	Filter string `json:"filter,omitempty"`
37157
37158	// ForceSendFields is a list of field names (e.g. "Enable") 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. "Enable") 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 *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
37176	type NoMethod RouterNatLogConfig
37177	raw := NoMethod(*s)
37178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37179}
37180
37181// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
37182// for a subnetwork.
37183type RouterNatSubnetworkToNat struct {
37184	// Name: URL for the subnetwork resource that will use NAT.
37185	Name string `json:"name,omitempty"`
37186
37187	// SecondaryIpRangeNames: A list of the secondary ranges of the
37188	// Subnetwork that are allowed to use NAT. This can be populated only if
37189	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
37190	// source_ip_ranges_to_nat.
37191	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
37192
37193	// SourceIpRangesToNat: Specify the options for NAT ranges in the
37194	// Subnetwork. All options of a single value are valid except
37195	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
37196	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
37197	// Default: [ALL_IP_RANGES]
37198	//
37199	// Possible values:
37200	//   "ALL_IP_RANGES"
37201	//   "LIST_OF_SECONDARY_IP_RANGES"
37202	//   "PRIMARY_IP_RANGE"
37203	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
37204
37205	// ForceSendFields is a list of field names (e.g. "Name") to
37206	// unconditionally include in API requests. By default, fields with
37207	// empty values are omitted from API requests. However, any non-pointer,
37208	// non-interface field appearing in ForceSendFields will be sent to the
37209	// server regardless of whether the field is empty or not. This may be
37210	// used to include empty fields in Patch requests.
37211	ForceSendFields []string `json:"-"`
37212
37213	// NullFields is a list of field names (e.g. "Name") to include in API
37214	// requests with the JSON null value. By default, fields with empty
37215	// values are omitted from API requests. However, any field with an
37216	// empty value appearing in NullFields will be sent to the server as
37217	// null. It is an error if a field in this list has a non-empty value.
37218	// This may be used to include null fields in Patch requests.
37219	NullFields []string `json:"-"`
37220}
37221
37222func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
37223	type NoMethod RouterNatSubnetworkToNat
37224	raw := NoMethod(*s)
37225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37226}
37227
37228type RouterStatus struct {
37229	// BestRoutes: Best routes for this router's network.
37230	BestRoutes []*Route `json:"bestRoutes,omitempty"`
37231
37232	// BestRoutesForRouter: Best routes learned by this router.
37233	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
37234
37235	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
37236
37237	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
37238
37239	// Network: URI of the network to which this router belongs.
37240	Network string `json:"network,omitempty"`
37241
37242	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
37243	// unconditionally include in API requests. By default, fields with
37244	// empty values are omitted from API requests. However, any non-pointer,
37245	// non-interface field appearing in ForceSendFields will be sent to the
37246	// server regardless of whether the field is empty or not. This may be
37247	// used to include empty fields in Patch requests.
37248	ForceSendFields []string `json:"-"`
37249
37250	// NullFields is a list of field names (e.g. "BestRoutes") to include in
37251	// API requests with the JSON null value. By default, fields with empty
37252	// values are omitted from API requests. However, any field with an
37253	// empty value appearing in NullFields will be sent to the server as
37254	// null. It is an error if a field in this list has a non-empty value.
37255	// This may be used to include null fields in Patch requests.
37256	NullFields []string `json:"-"`
37257}
37258
37259func (s *RouterStatus) MarshalJSON() ([]byte, error) {
37260	type NoMethod RouterStatus
37261	raw := NoMethod(*s)
37262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37263}
37264
37265type RouterStatusBgpPeerStatus struct {
37266	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
37267	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
37268
37269	BfdStatus *BfdStatus `json:"bfdStatus,omitempty"`
37270
37271	// IpAddress: IP address of the local BGP interface.
37272	IpAddress string `json:"ipAddress,omitempty"`
37273
37274	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
37275	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
37276
37277	// Name: Name of this BGP peer. Unique within the Routers resource.
37278	Name string `json:"name,omitempty"`
37279
37280	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
37281	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
37282
37283	// PeerIpAddress: IP address of the remote BGP interface.
37284	PeerIpAddress string `json:"peerIpAddress,omitempty"`
37285
37286	// RouterApplianceInstance: [Output only] URI of the VM instance that is
37287	// used as third-party router appliances such as Next Gen Firewalls,
37288	// Virtual Routers, or Router Appliances. The VM instance is the peer
37289	// side of the BGP session.
37290	RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"`
37291
37292	// State: BGP state as specified in RFC1771.
37293	State string `json:"state,omitempty"`
37294
37295	// Status: Status of the BGP peer: {UP, DOWN}
37296	//
37297	// Possible values:
37298	//   "DOWN"
37299	//   "UNKNOWN"
37300	//   "UP"
37301	Status string `json:"status,omitempty"`
37302
37303	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
37304	// days, 23 hours, 59 minutes, 59 seconds
37305	Uptime string `json:"uptime,omitempty"`
37306
37307	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
37308	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
37309
37310	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
37311	// unconditionally include in API requests. By default, fields with
37312	// empty values are omitted from API requests. However, any non-pointer,
37313	// non-interface field appearing in ForceSendFields will be sent to the
37314	// server regardless of whether the field is empty or not. This may be
37315	// used to include empty fields in Patch requests.
37316	ForceSendFields []string `json:"-"`
37317
37318	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
37319	// include in API requests with the JSON null value. By default, fields
37320	// with empty values are omitted from API requests. However, any field
37321	// with an empty value appearing in NullFields will be sent to the
37322	// server as null. It is an error if a field in this list has a
37323	// non-empty value. This may be used to include null fields in Patch
37324	// requests.
37325	NullFields []string `json:"-"`
37326}
37327
37328func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
37329	type NoMethod RouterStatusBgpPeerStatus
37330	raw := NoMethod(*s)
37331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37332}
37333
37334// RouterStatusNatStatus: Status of a NAT contained in this router.
37335type RouterStatusNatStatus struct {
37336	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
37337	// ["1.1.1.1", "129.2.16.89"]
37338	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
37339
37340	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
37341	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
37342	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
37343
37344	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
37345	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
37346	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
37347
37348	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
37349	// be greater than 0 only if user-specified IPs are NOT enough to allow
37350	// all configured VMs to use NAT. This value is meaningful only when
37351	// auto-allocation of NAT IPs is *not* used.
37352	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
37353
37354	// Name: Unique name of this NAT.
37355	Name string `json:"name,omitempty"`
37356
37357	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
37358	// that can use NAT.
37359	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
37360
37361	// UserAllocatedNatIpResources: A list of fully qualified URLs of
37362	// reserved IP address resources.
37363	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
37364
37365	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
37366	// be raw IP strings like "179.12.26.133".
37367	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
37368
37369	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
37370	// to unconditionally include in API requests. By default, fields with
37371	// empty values are omitted from API requests. However, any non-pointer,
37372	// non-interface field appearing in ForceSendFields will be sent to the
37373	// server regardless of whether the field is empty or not. This may be
37374	// used to include empty fields in Patch requests.
37375	ForceSendFields []string `json:"-"`
37376
37377	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
37378	// include in API requests with the JSON null value. By default, fields
37379	// with empty values are omitted from API requests. However, any field
37380	// with an empty value appearing in NullFields will be sent to the
37381	// server as null. It is an error if a field in this list has a
37382	// non-empty value. This may be used to include null fields in Patch
37383	// requests.
37384	NullFields []string `json:"-"`
37385}
37386
37387func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
37388	type NoMethod RouterStatusNatStatus
37389	raw := NoMethod(*s)
37390	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37391}
37392
37393type RouterStatusResponse struct {
37394	// Kind: Type of resource.
37395	Kind string `json:"kind,omitempty"`
37396
37397	Result *RouterStatus `json:"result,omitempty"`
37398
37399	// ServerResponse contains the HTTP response code and headers from the
37400	// server.
37401	googleapi.ServerResponse `json:"-"`
37402
37403	// ForceSendFields is a list of field names (e.g. "Kind") to
37404	// unconditionally include in API requests. By default, fields with
37405	// empty values are omitted from API requests. However, any non-pointer,
37406	// non-interface field appearing in ForceSendFields will be sent to the
37407	// server regardless of whether the field is empty or not. This may be
37408	// used to include empty fields in Patch requests.
37409	ForceSendFields []string `json:"-"`
37410
37411	// NullFields is a list of field names (e.g. "Kind") to include in API
37412	// requests with the JSON null value. By default, fields with empty
37413	// values are omitted from API requests. However, any field with an
37414	// empty value appearing in NullFields will be sent to the server as
37415	// null. It is an error if a field in this list has a non-empty value.
37416	// This may be used to include null fields in Patch requests.
37417	NullFields []string `json:"-"`
37418}
37419
37420func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
37421	type NoMethod RouterStatusResponse
37422	raw := NoMethod(*s)
37423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37424}
37425
37426type RoutersPreviewResponse struct {
37427	// Resource: Preview of given router.
37428	Resource *Router `json:"resource,omitempty"`
37429
37430	// ServerResponse contains the HTTP response code and headers from the
37431	// server.
37432	googleapi.ServerResponse `json:"-"`
37433
37434	// ForceSendFields is a list of field names (e.g. "Resource") to
37435	// unconditionally include in API requests. By default, fields with
37436	// empty values are omitted from API requests. However, any non-pointer,
37437	// non-interface field appearing in ForceSendFields will be sent to the
37438	// server regardless of whether the field is empty or not. This may be
37439	// used to include empty fields in Patch requests.
37440	ForceSendFields []string `json:"-"`
37441
37442	// NullFields is a list of field names (e.g. "Resource") to include in
37443	// API requests with the JSON null value. By default, fields with empty
37444	// values are omitted from API requests. However, any field with an
37445	// empty value appearing in NullFields will be sent to the server as
37446	// null. It is an error if a field in this list has a non-empty value.
37447	// This may be used to include null fields in Patch requests.
37448	NullFields []string `json:"-"`
37449}
37450
37451func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
37452	type NoMethod RoutersPreviewResponse
37453	raw := NoMethod(*s)
37454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37455}
37456
37457type RoutersScopedList struct {
37458	// Routers: A list of routers contained in this scope.
37459	Routers []*Router `json:"routers,omitempty"`
37460
37461	// Warning: Informational warning which replaces the list of routers
37462	// when the list is empty.
37463	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
37464
37465	// ForceSendFields is a list of field names (e.g. "Routers") to
37466	// unconditionally include in API requests. By default, fields with
37467	// empty values are omitted from API requests. However, any non-pointer,
37468	// non-interface field appearing in ForceSendFields will be sent to the
37469	// server regardless of whether the field is empty or not. This may be
37470	// used to include empty fields in Patch requests.
37471	ForceSendFields []string `json:"-"`
37472
37473	// NullFields is a list of field names (e.g. "Routers") to include in
37474	// API requests with the JSON null value. By default, fields with empty
37475	// values are omitted from API requests. However, any field with an
37476	// empty value appearing in NullFields will be sent to the server as
37477	// null. It is an error if a field in this list has a non-empty value.
37478	// This may be used to include null fields in Patch requests.
37479	NullFields []string `json:"-"`
37480}
37481
37482func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
37483	type NoMethod RoutersScopedList
37484	raw := NoMethod(*s)
37485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37486}
37487
37488// RoutersScopedListWarning: Informational warning which replaces the
37489// list of routers when the list is empty.
37490type RoutersScopedListWarning struct {
37491	// Code: [Output Only] A warning code, if applicable. For example,
37492	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37493	// the response.
37494	//
37495	// Possible values:
37496	//   "CLEANUP_FAILED"
37497	//   "DEPRECATED_RESOURCE_USED"
37498	//   "DEPRECATED_TYPE_USED"
37499	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37500	//   "EXPERIMENTAL_TYPE_USED"
37501	//   "EXTERNAL_API_WARNING"
37502	//   "FIELD_VALUE_OVERRIDEN"
37503	//   "INJECTED_KERNELS_DEPRECATED"
37504	//   "LARGE_DEPLOYMENT_WARNING"
37505	//   "MISSING_TYPE_DEPENDENCY"
37506	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37507	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37508	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37509	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37510	//   "NEXT_HOP_NOT_RUNNING"
37511	//   "NOT_CRITICAL_ERROR"
37512	//   "NO_RESULTS_ON_PAGE"
37513	//   "PARTIAL_SUCCESS"
37514	//   "REQUIRED_TOS_AGREEMENT"
37515	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37516	//   "RESOURCE_NOT_DELETED"
37517	//   "SCHEMA_VALIDATION_IGNORED"
37518	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37519	//   "UNDECLARED_PROPERTIES"
37520	//   "UNREACHABLE"
37521	Code string `json:"code,omitempty"`
37522
37523	// Data: [Output Only] Metadata about this warning in key: value format.
37524	// For example:
37525	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37526	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
37527
37528	// Message: [Output Only] A human-readable description of the warning
37529	// code.
37530	Message string `json:"message,omitempty"`
37531
37532	// ForceSendFields is a list of field names (e.g. "Code") to
37533	// unconditionally include in API requests. By default, fields with
37534	// empty values are omitted from API requests. However, any non-pointer,
37535	// non-interface field appearing in ForceSendFields will be sent to the
37536	// server regardless of whether the field is empty or not. This may be
37537	// used to include empty fields in Patch requests.
37538	ForceSendFields []string `json:"-"`
37539
37540	// NullFields is a list of field names (e.g. "Code") to include in API
37541	// requests with the JSON null value. By default, fields with empty
37542	// values are omitted from API requests. However, any field with an
37543	// empty value appearing in NullFields will be sent to the server as
37544	// null. It is an error if a field in this list has a non-empty value.
37545	// This may be used to include null fields in Patch requests.
37546	NullFields []string `json:"-"`
37547}
37548
37549func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
37550	type NoMethod RoutersScopedListWarning
37551	raw := NoMethod(*s)
37552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37553}
37554
37555type RoutersScopedListWarningData struct {
37556	// Key: [Output Only] A key that provides more detail on the warning
37557	// being returned. For example, for warnings where there are no results
37558	// in a list request for a particular zone, this key might be scope and
37559	// the key value might be the zone name. Other examples might be a key
37560	// indicating a deprecated resource and a suggested replacement, or a
37561	// warning about invalid network settings (for example, if an instance
37562	// attempts to perform IP forwarding but is not enabled for IP
37563	// forwarding).
37564	Key string `json:"key,omitempty"`
37565
37566	// Value: [Output Only] A warning data value corresponding to the key.
37567	Value string `json:"value,omitempty"`
37568
37569	// ForceSendFields is a list of field names (e.g. "Key") to
37570	// unconditionally include in API requests. By default, fields with
37571	// empty values are omitted from API requests. However, any non-pointer,
37572	// non-interface field appearing in ForceSendFields will be sent to the
37573	// server regardless of whether the field is empty or not. This may be
37574	// used to include empty fields in Patch requests.
37575	ForceSendFields []string `json:"-"`
37576
37577	// NullFields is a list of field names (e.g. "Key") to include in API
37578	// requests with the JSON null value. By default, fields with empty
37579	// values are omitted from API requests. However, any field with an
37580	// empty value appearing in NullFields will be sent to the server as
37581	// null. It is an error if a field in this list has a non-empty value.
37582	// This may be used to include null fields in Patch requests.
37583	NullFields []string `json:"-"`
37584}
37585
37586func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
37587	type NoMethod RoutersScopedListWarningData
37588	raw := NoMethod(*s)
37589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37590}
37591
37592// Rule: A rule to be applied in a Policy.
37593type Rule struct {
37594	// Action: Required
37595	//
37596	// Possible values:
37597	//   "ALLOW"
37598	//   "ALLOW_WITH_LOG"
37599	//   "DENY"
37600	//   "DENY_WITH_LOG"
37601	//   "LOG"
37602	//   "NO_ACTION"
37603	Action string `json:"action,omitempty"`
37604
37605	// Conditions: Additional restrictions that must be met. All conditions
37606	// must pass for the rule to match.
37607	Conditions []*Condition `json:"conditions,omitempty"`
37608
37609	// Description: Human-readable description of the rule.
37610	Description string `json:"description,omitempty"`
37611
37612	// Ins: If one or more 'in' clauses are specified, the rule matches if
37613	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
37614	Ins []string `json:"ins,omitempty"`
37615
37616	// LogConfigs: The config returned to callers of
37617	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
37618	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
37619
37620	// NotIns: If one or more 'not_in' clauses are specified, the rule
37621	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
37622	// entries.
37623	NotIns []string `json:"notIns,omitempty"`
37624
37625	// Permissions: A permission is a string of form '..' (e.g.,
37626	// 'storage.buckets.list'). A value of '*' matches all permissions, and
37627	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
37628	Permissions []string `json:"permissions,omitempty"`
37629
37630	// ForceSendFields is a list of field names (e.g. "Action") to
37631	// unconditionally include in API requests. By default, fields with
37632	// empty values are omitted from API requests. However, any non-pointer,
37633	// non-interface field appearing in ForceSendFields will be sent to the
37634	// server regardless of whether the field is empty or not. This may be
37635	// used to include empty fields in Patch requests.
37636	ForceSendFields []string `json:"-"`
37637
37638	// NullFields is a list of field names (e.g. "Action") to include in API
37639	// requests with the JSON null value. By default, fields with empty
37640	// values are omitted from API requests. However, any field with an
37641	// empty value appearing in NullFields will be sent to the server as
37642	// null. It is an error if a field in this list has a non-empty value.
37643	// This may be used to include null fields in Patch requests.
37644	NullFields []string `json:"-"`
37645}
37646
37647func (s *Rule) MarshalJSON() ([]byte, error) {
37648	type NoMethod Rule
37649	raw := NoMethod(*s)
37650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37651}
37652
37653type SSLHealthCheck struct {
37654	// Port: The TCP port number for the health check request. The default
37655	// value is 443. Valid values are 1 through 65535.
37656	Port int64 `json:"port,omitempty"`
37657
37658	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
37659	// both port and port_name are defined, port takes precedence.
37660	PortName string `json:"portName,omitempty"`
37661
37662	// PortSpecification: Specifies how port is selected for health
37663	// checking, can be one of following values:
37664	// USE_FIXED_PORT: The port number in port is used for health
37665	// checking.
37666	// USE_NAMED_PORT: The portName is used for health
37667	// checking.
37668	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
37669	// each network endpoint is used for health checking. For other
37670	// backends, the port or named port specified in the Backend Service is
37671	// used for health checking.
37672	//
37673	//
37674	// If not specified, SSL health check follows behavior specified in port
37675	// and portName fields.
37676	//
37677	// Possible values:
37678	//   "USE_FIXED_PORT"
37679	//   "USE_NAMED_PORT"
37680	//   "USE_SERVING_PORT"
37681	PortSpecification string `json:"portSpecification,omitempty"`
37682
37683	// ProxyHeader: Specifies the type of proxy header to append before
37684	// sending data to the backend, either NONE or PROXY_V1. The default is
37685	// NONE.
37686	//
37687	// Possible values:
37688	//   "NONE"
37689	//   "PROXY_V1"
37690	ProxyHeader string `json:"proxyHeader,omitempty"`
37691
37692	// Request: The application data to send once the SSL connection has
37693	// been established (default value is empty). If both request and
37694	// response are empty, the connection establishment alone will indicate
37695	// health. The request data can only be ASCII.
37696	Request string `json:"request,omitempty"`
37697
37698	// Response: The bytes to match against the beginning of the response
37699	// data. If left empty (the default value), any response will indicate
37700	// health. The response data can only be ASCII.
37701	Response string `json:"response,omitempty"`
37702
37703	// ForceSendFields is a list of field names (e.g. "Port") to
37704	// unconditionally include in API requests. By default, fields with
37705	// empty values are omitted from API requests. However, any non-pointer,
37706	// non-interface field appearing in ForceSendFields will be sent to the
37707	// server regardless of whether the field is empty or not. This may be
37708	// used to include empty fields in Patch requests.
37709	ForceSendFields []string `json:"-"`
37710
37711	// NullFields is a list of field names (e.g. "Port") to include in API
37712	// requests with the JSON null value. By default, fields with empty
37713	// values are omitted from API requests. However, any field with an
37714	// empty value appearing in NullFields will be sent to the server as
37715	// null. It is an error if a field in this list has a non-empty value.
37716	// This may be used to include null fields in Patch requests.
37717	NullFields []string `json:"-"`
37718}
37719
37720func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
37721	type NoMethod SSLHealthCheck
37722	raw := NoMethod(*s)
37723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37724}
37725
37726// SavedAttachedDisk: An instance-attached disk resource.
37727type SavedAttachedDisk struct {
37728	// AutoDelete: Specifies whether the disk will be auto-deleted when the
37729	// instance is deleted (but not when the disk is detached from the
37730	// instance).
37731	AutoDelete bool `json:"autoDelete,omitempty"`
37732
37733	// Boot: Indicates that this is a boot disk. The virtual machine will
37734	// use the first partition of the disk for its root filesystem.
37735	Boot bool `json:"boot,omitempty"`
37736
37737	// DeviceName: Specifies the name of the disk attached to the source
37738	// instance.
37739	DeviceName string `json:"deviceName,omitempty"`
37740
37741	// DiskEncryptionKey: The encryption key for the disk.
37742	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
37743
37744	// DiskSizeGb: The size of the disk in base-2 GB.
37745	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
37746
37747	// DiskType: [Output Only] URL of the disk type resource. For example:
37748	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
37749	DiskType string `json:"diskType,omitempty"`
37750
37751	// GuestOsFeatures: A list of features to enable on the guest operating
37752	// system. Applicable only for bootable images. Read  Enabling guest
37753	// operating system features to see a list of available options.
37754	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
37755
37756	// Index: Specifies zero-based index of the disk that is attached to the
37757	// source instance.
37758	Index int64 `json:"index,omitempty"`
37759
37760	// Interface: Specifies the disk interface to use for attaching this
37761	// disk, which is either SCSI or NVME.
37762	//
37763	// Possible values:
37764	//   "NVME"
37765	//   "SCSI"
37766	Interface string `json:"interface,omitempty"`
37767
37768	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
37769	// for attached disks.
37770	Kind string `json:"kind,omitempty"`
37771
37772	// Licenses: [Output Only] Any valid publicly visible licenses.
37773	Licenses []string `json:"licenses,omitempty"`
37774
37775	// Mode: The mode in which this disk is attached to the source instance,
37776	// either READ_WRITE or READ_ONLY.
37777	//
37778	// Possible values:
37779	//   "READ_ONLY"
37780	//   "READ_WRITE"
37781	Mode string `json:"mode,omitempty"`
37782
37783	// Source: Specifies a URL of the disk attached to the source instance.
37784	Source string `json:"source,omitempty"`
37785
37786	// StorageBytes: [Output Only] A size of the storage used by the disk's
37787	// snapshot by this machine image.
37788	StorageBytes int64 `json:"storageBytes,omitempty,string"`
37789
37790	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
37791	// is in a stable state or it is being adjusted as a result of shared
37792	// storage reallocation. This status can either be UPDATING, meaning the
37793	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
37794	// size of the snapshot is up-to-date.
37795	//
37796	// Possible values:
37797	//   "UPDATING"
37798	//   "UP_TO_DATE"
37799	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
37800
37801	// Type: Specifies the type of the attached disk, either SCRATCH or
37802	// PERSISTENT.
37803	//
37804	// Possible values:
37805	//   "PERSISTENT"
37806	//   "SCRATCH"
37807	Type string `json:"type,omitempty"`
37808
37809	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
37810	// unconditionally include in API requests. By default, fields with
37811	// empty values are omitted from API requests. However, any non-pointer,
37812	// non-interface field appearing in ForceSendFields will be sent to the
37813	// server regardless of whether the field is empty or not. This may be
37814	// used to include empty fields in Patch requests.
37815	ForceSendFields []string `json:"-"`
37816
37817	// NullFields is a list of field names (e.g. "AutoDelete") to include in
37818	// API requests with the JSON null value. By default, fields with empty
37819	// values are omitted from API requests. However, any field with an
37820	// empty value appearing in NullFields will be sent to the server as
37821	// null. It is an error if a field in this list has a non-empty value.
37822	// This may be used to include null fields in Patch requests.
37823	NullFields []string `json:"-"`
37824}
37825
37826func (s *SavedAttachedDisk) MarshalJSON() ([]byte, error) {
37827	type NoMethod SavedAttachedDisk
37828	raw := NoMethod(*s)
37829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37830}
37831
37832type ScalingScheduleStatus struct {
37833	// LastStartTime: [Output Only] The last time the scaling schedule
37834	// became active. Note: this is a timestamp when a schedule actually
37835	// became active, not when it was planned to do so. The timestamp is in
37836	// RFC3339 text format.
37837	LastStartTime string `json:"lastStartTime,omitempty"`
37838
37839	// NextStartTime: [Output Only] The next time the scaling schedule is to
37840	// become active. Note: this is a timestamp when a schedule is planned
37841	// to run, but the actual time might be slightly different. The
37842	// timestamp is in RFC3339 text format.
37843	NextStartTime string `json:"nextStartTime,omitempty"`
37844
37845	// State: [Output Only] The current state of a scaling schedule.
37846	//
37847	// Possible values:
37848	//   "ACTIVE"
37849	//   "DISABLED"
37850	//   "OBSOLETE"
37851	//   "READY"
37852	State string `json:"state,omitempty"`
37853
37854	// ForceSendFields is a list of field names (e.g. "LastStartTime") to
37855	// unconditionally include in API requests. By default, fields with
37856	// empty values are omitted from API requests. However, any non-pointer,
37857	// non-interface field appearing in ForceSendFields will be sent to the
37858	// server regardless of whether the field is empty or not. This may be
37859	// used to include empty fields in Patch requests.
37860	ForceSendFields []string `json:"-"`
37861
37862	// NullFields is a list of field names (e.g. "LastStartTime") to include
37863	// in API requests with the JSON null value. By default, fields with
37864	// empty values are omitted from API requests. However, any field with
37865	// an empty value appearing in NullFields will be sent to the server as
37866	// null. It is an error if a field in this list has a non-empty value.
37867	// This may be used to include null fields in Patch requests.
37868	NullFields []string `json:"-"`
37869}
37870
37871func (s *ScalingScheduleStatus) MarshalJSON() ([]byte, error) {
37872	type NoMethod ScalingScheduleStatus
37873	raw := NoMethod(*s)
37874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37875}
37876
37877// Scheduling: Sets the scheduling options for an Instance. NextID: 21
37878type Scheduling struct {
37879	// AutomaticRestart: Specifies whether the instance should be
37880	// automatically restarted if it is terminated by Compute Engine (not
37881	// terminated by a user). You can only set the automatic restart option
37882	// for standard instances. Preemptible instances cannot be automatically
37883	// restarted.
37884	//
37885	// By default, this is set to true so an instance is automatically
37886	// restarted if it is terminated by Compute Engine.
37887	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
37888
37889	// HostErrorTimeoutSeconds: Specify the time in seconds for host error
37890	// detection, the value must be within the range of [90, 330] with the
37891	// increment of 30, if unset, the default behavior of host error
37892	// recovery will be used.
37893	HostErrorTimeoutSeconds int64 `json:"hostErrorTimeoutSeconds,omitempty"`
37894
37895	// LocationHint: An opaque location hint used to place the instance
37896	// close to other resources. This field is for use by internal tools
37897	// that use the public API.
37898	LocationHint string `json:"locationHint,omitempty"`
37899
37900	// MaintenanceFreezeDurationHours: Specifies the number of hours after
37901	// VM instance creation where the VM won't be scheduled for maintenance.
37902	MaintenanceFreezeDurationHours int64 `json:"maintenanceFreezeDurationHours,omitempty"`
37903
37904	// MaintenanceInterval: For more information about maintenance
37905	// intervals, see Setting maintenance intervals.
37906	//
37907	// Possible values:
37908	//   "PERIODIC"
37909	MaintenanceInterval string `json:"maintenanceInterval,omitempty"`
37910
37911	// MinNodeCpus: The minimum number of virtual CPUs this instance will
37912	// consume when running on a sole-tenant node.
37913	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
37914
37915	// NodeAffinities: A set of node affinity and anti-affinity
37916	// configurations. Refer to Configuring node affinity for more
37917	// information. Overrides reservationAffinity.
37918	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
37919
37920	// OnHostMaintenance: Defines the maintenance behavior for this
37921	// instance. For standard instances, the default behavior is MIGRATE.
37922	// For preemptible instances, the default and only possible behavior is
37923	// TERMINATE. For more information, see Setting Instance Scheduling
37924	// Options.
37925	//
37926	// Possible values:
37927	//   "MIGRATE"
37928	//   "TERMINATE"
37929	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
37930
37931	// Preemptible: Defines whether the instance is preemptible. This can
37932	// only be set during instance creation or while the instance is stopped
37933	// and therefore, in a `TERMINATED` state. See Instance Life Cycle for
37934	// more information on the possible instance states.
37935	Preemptible bool `json:"preemptible,omitempty"`
37936
37937	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
37938	// unconditionally include in API requests. By default, fields with
37939	// empty values are omitted from API requests. However, any non-pointer,
37940	// non-interface field appearing in ForceSendFields will be sent to the
37941	// server regardless of whether the field is empty or not. This may be
37942	// used to include empty fields in Patch requests.
37943	ForceSendFields []string `json:"-"`
37944
37945	// NullFields is a list of field names (e.g. "AutomaticRestart") to
37946	// include in API requests with the JSON null value. By default, fields
37947	// with empty values are omitted from API requests. However, any field
37948	// with an empty value appearing in NullFields will be sent to the
37949	// server as null. It is an error if a field in this list has a
37950	// non-empty value. This may be used to include null fields in Patch
37951	// requests.
37952	NullFields []string `json:"-"`
37953}
37954
37955func (s *Scheduling) MarshalJSON() ([]byte, error) {
37956	type NoMethod Scheduling
37957	raw := NoMethod(*s)
37958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37959}
37960
37961// SchedulingNodeAffinity: Node Affinity: the configuration of desired
37962// nodes onto which this Instance could be scheduled.
37963type SchedulingNodeAffinity struct {
37964	// Key: Corresponds to the label key of Node resource.
37965	Key string `json:"key,omitempty"`
37966
37967	// Operator: Defines the operation of node selection. Valid operators
37968	// are IN for affinity and NOT_IN for anti-affinity.
37969	//
37970	// Possible values:
37971	//   "IN"
37972	//   "NOT_IN"
37973	//   "OPERATOR_UNSPECIFIED"
37974	Operator string `json:"operator,omitempty"`
37975
37976	// Values: Corresponds to the label values of Node resource.
37977	Values []string `json:"values,omitempty"`
37978
37979	// ForceSendFields is a list of field names (e.g. "Key") to
37980	// unconditionally include in API requests. By default, fields with
37981	// empty values are omitted from API requests. However, any non-pointer,
37982	// non-interface field appearing in ForceSendFields will be sent to the
37983	// server regardless of whether the field is empty or not. This may be
37984	// used to include empty fields in Patch requests.
37985	ForceSendFields []string `json:"-"`
37986
37987	// NullFields is a list of field names (e.g. "Key") to include in API
37988	// requests with the JSON null value. By default, fields with empty
37989	// values are omitted from API requests. However, any field with an
37990	// empty value appearing in NullFields will be sent to the server as
37991	// null. It is an error if a field in this list has a non-empty value.
37992	// This may be used to include null fields in Patch requests.
37993	NullFields []string `json:"-"`
37994}
37995
37996func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
37997	type NoMethod SchedulingNodeAffinity
37998	raw := NoMethod(*s)
37999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38000}
38001
38002// Screenshot: An instance's screenshot.
38003type Screenshot struct {
38004	// Contents: [Output Only] The Base64-encoded screenshot data.
38005	Contents string `json:"contents,omitempty"`
38006
38007	// Kind: [Output Only] Type of the resource. Always compute#screenshot
38008	// for the screenshots.
38009	Kind string `json:"kind,omitempty"`
38010
38011	// ServerResponse contains the HTTP response code and headers from the
38012	// server.
38013	googleapi.ServerResponse `json:"-"`
38014
38015	// ForceSendFields is a list of field names (e.g. "Contents") to
38016	// unconditionally include in API requests. By default, fields with
38017	// empty values are omitted from API requests. However, any non-pointer,
38018	// non-interface field appearing in ForceSendFields will be sent to the
38019	// server regardless of whether the field is empty or not. This may be
38020	// used to include empty fields in Patch requests.
38021	ForceSendFields []string `json:"-"`
38022
38023	// NullFields is a list of field names (e.g. "Contents") to include in
38024	// API requests with the JSON null value. By default, fields with empty
38025	// values are omitted from API requests. However, any field with an
38026	// empty value appearing in NullFields will be sent to the server as
38027	// null. It is an error if a field in this list has a non-empty value.
38028	// This may be used to include null fields in Patch requests.
38029	NullFields []string `json:"-"`
38030}
38031
38032func (s *Screenshot) MarshalJSON() ([]byte, error) {
38033	type NoMethod Screenshot
38034	raw := NoMethod(*s)
38035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38036}
38037
38038type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
38039	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
38040
38041	// ServerResponse contains the HTTP response code and headers from the
38042	// server.
38043	googleapi.ServerResponse `json:"-"`
38044
38045	// ForceSendFields is a list of field names (e.g.
38046	// "PreconfiguredExpressionSets") to unconditionally include in API
38047	// requests. By default, fields with empty values are omitted from API
38048	// requests. However, any non-pointer, non-interface field appearing in
38049	// ForceSendFields will be sent to the server regardless of whether the
38050	// field is empty or not. This may be used to include empty fields in
38051	// Patch requests.
38052	ForceSendFields []string `json:"-"`
38053
38054	// NullFields is a list of field names (e.g.
38055	// "PreconfiguredExpressionSets") to include in API requests with the
38056	// JSON null value. By default, fields with empty values are omitted
38057	// from API requests. However, any field with an empty value appearing
38058	// in NullFields will be sent to the server as null. It is an error if a
38059	// field in this list has a non-empty value. This may be used to include
38060	// null fields in Patch requests.
38061	NullFields []string `json:"-"`
38062}
38063
38064func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
38065	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
38066	raw := NoMethod(*s)
38067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38068}
38069
38070type SecurityPoliciesWafConfig struct {
38071	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
38072
38073	// ForceSendFields is a list of field names (e.g. "WafRules") to
38074	// unconditionally include in API requests. By default, fields with
38075	// empty values are omitted from API requests. However, any non-pointer,
38076	// non-interface field appearing in ForceSendFields will be sent to the
38077	// server regardless of whether the field is empty or not. This may be
38078	// used to include empty fields in Patch requests.
38079	ForceSendFields []string `json:"-"`
38080
38081	// NullFields is a list of field names (e.g. "WafRules") to include in
38082	// API requests with the JSON null value. By default, fields with empty
38083	// values are omitted from API requests. However, any field with an
38084	// empty value appearing in NullFields will be sent to the server as
38085	// null. It is an error if a field in this list has a non-empty value.
38086	// This may be used to include null fields in Patch requests.
38087	NullFields []string `json:"-"`
38088}
38089
38090func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
38091	type NoMethod SecurityPoliciesWafConfig
38092	raw := NoMethod(*s)
38093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38094}
38095
38096// SecurityPolicy: Represents a Google Cloud Armor security policy
38097// resource.
38098//
38099// Only external backend services that use load balancers can reference
38100// a security policy. For more information, see  Google Cloud Armor
38101// security policy overview. (== resource_for
38102// {$api_version}.securityPolicies ==)
38103type SecurityPolicy struct {
38104	AdaptiveProtectionConfig *SecurityPolicyAdaptiveProtectionConfig `json:"adaptiveProtectionConfig,omitempty"`
38105
38106	AdvancedOptionsConfig *SecurityPolicyAdvancedOptionsConfig `json:"advancedOptionsConfig,omitempty"`
38107
38108	// Associations: A list of associations that belong to this policy.
38109	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
38110
38111	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38112	// format.
38113	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38114
38115	// Description: An optional description of this resource. Provide this
38116	// property when you create the resource.
38117	Description string `json:"description,omitempty"`
38118
38119	// DisplayName: User-provided name of the Organization security plicy.
38120	// The name should be unique in the organization in which the security
38121	// policy is created. This should only be used when SecurityPolicyType
38122	// is FIREWALL. The name must be 1-63 characters long, and comply with
38123	// https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be
38124	// 1-63 characters long and match the regular expression
38125	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
38126	// a lowercase letter, and all following characters must be a dash,
38127	// lowercase letter, or digit, except the last character, which cannot
38128	// be a dash.
38129	DisplayName string `json:"displayName,omitempty"`
38130
38131	// Fingerprint: Specifies a fingerprint for this resource, which is
38132	// essentially a hash of the metadata's contents and used for optimistic
38133	// locking. The fingerprint is initially generated by Compute Engine and
38134	// changes after every request to modify or update metadata. You must
38135	// always provide an up-to-date fingerprint hash in order to update or
38136	// change metadata, otherwise the request will fail with error 412
38137	// conditionNotMet.
38138	//
38139	// To see the latest fingerprint, make get() request to the security
38140	// policy.
38141	Fingerprint string `json:"fingerprint,omitempty"`
38142
38143	// Id: [Output Only] The unique identifier for the resource. This
38144	// identifier is defined by the server.
38145	Id uint64 `json:"id,omitempty,string"`
38146
38147	// Kind: [Output only] Type of the resource. Always
38148	// compute#securityPolicyfor security policies
38149	Kind string `json:"kind,omitempty"`
38150
38151	// LabelFingerprint: A fingerprint for the labels being applied to this
38152	// security policy, which is essentially a hash of the labels set used
38153	// for optimistic locking. The fingerprint is initially generated by
38154	// Compute Engine and changes after every request to modify or update
38155	// labels. You must always provide an up-to-date fingerprint hash in
38156	// order to update or change labels.
38157	//
38158	// To see the latest fingerprint, make get() request to the security
38159	// policy.
38160	LabelFingerprint string `json:"labelFingerprint,omitempty"`
38161
38162	// Labels: Labels for this resource. These can only be added or modified
38163	// by the setLabels method. Each label key/value pair must comply with
38164	// RFC1035. Label values may be empty.
38165	Labels map[string]string `json:"labels,omitempty"`
38166
38167	// Name: Name of the resource. Provided by the client when the resource
38168	// is created. The name must be 1-63 characters long, and comply with
38169	// RFC1035. Specifically, the name must be 1-63 characters long and
38170	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38171	// the first character must be a lowercase letter, and all following
38172	// characters must be a dash, lowercase letter, or digit, except the
38173	// last character, which cannot be a dash.
38174	Name string `json:"name,omitempty"`
38175
38176	// Parent: [Output Only] The parent of the security policy.
38177	Parent string `json:"parent,omitempty"`
38178
38179	// RuleTupleCount: [Output Only] Total count of all security policy rule
38180	// tuples. A security policy can not exceed a set number of tuples.
38181	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
38182
38183	// Rules: A list of rules that belong to this policy. There must always
38184	// be a default rule (rule with priority 2147483647 and match "*"). If
38185	// no rules are provided when creating a security policy, a default rule
38186	// with action "allow" will be added.
38187	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
38188
38189	// SelfLink: [Output Only] Server-defined URL for the resource.
38190	SelfLink string `json:"selfLink,omitempty"`
38191
38192	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
38193	// with the resource id.
38194	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
38195
38196	// Type: The type indicates the intended use of the security policy.
38197	// CLOUD_ARMOR policies apply to backend services. FIREWALL policies
38198	// apply to organizations.
38199	//
38200	// Possible values:
38201	//   "CLOUD_ARMOR"
38202	//   "CLOUD_ARMOR_EDGE"
38203	//   "FIREWALL"
38204	Type string `json:"type,omitempty"`
38205
38206	// ServerResponse contains the HTTP response code and headers from the
38207	// server.
38208	googleapi.ServerResponse `json:"-"`
38209
38210	// ForceSendFields is a list of field names (e.g.
38211	// "AdaptiveProtectionConfig") to unconditionally include in API
38212	// requests. By default, fields with empty values are omitted from API
38213	// requests. However, any non-pointer, non-interface field appearing in
38214	// ForceSendFields will be sent to the server regardless of whether the
38215	// field is empty or not. This may be used to include empty fields in
38216	// Patch requests.
38217	ForceSendFields []string `json:"-"`
38218
38219	// NullFields is a list of field names (e.g. "AdaptiveProtectionConfig")
38220	// to include in API requests with the JSON null value. By default,
38221	// fields with empty values are omitted from API requests. However, any
38222	// field with an empty value appearing in NullFields will be sent to the
38223	// server as null. It is an error if a field in this list has a
38224	// non-empty value. This may be used to include null fields in Patch
38225	// requests.
38226	NullFields []string `json:"-"`
38227}
38228
38229func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
38230	type NoMethod SecurityPolicy
38231	raw := NoMethod(*s)
38232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38233}
38234
38235// SecurityPolicyAdaptiveProtectionConfig: Configuration options for
38236// Cloud Armor Adaptive Protection (CAAP).
38237type SecurityPolicyAdaptiveProtectionConfig struct {
38238	// Layer7DdosDefenseConfig: If set to true, enables Cloud Armor Machine
38239	// Learning.
38240	Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `json:"layer7DdosDefenseConfig,omitempty"`
38241
38242	// ForceSendFields is a list of field names (e.g.
38243	// "Layer7DdosDefenseConfig") to unconditionally include in API
38244	// requests. By default, fields with empty values are omitted from API
38245	// requests. However, any non-pointer, non-interface field appearing in
38246	// ForceSendFields will be sent to the server regardless of whether the
38247	// field is empty or not. This may be used to include empty fields in
38248	// Patch requests.
38249	ForceSendFields []string `json:"-"`
38250
38251	// NullFields is a list of field names (e.g. "Layer7DdosDefenseConfig")
38252	// to include in API requests with the JSON null value. By default,
38253	// fields with empty values are omitted from API requests. However, any
38254	// field with an empty value appearing in NullFields will be sent to the
38255	// server as null. It is an error if a field in this list has a
38256	// non-empty value. This may be used to include null fields in Patch
38257	// requests.
38258	NullFields []string `json:"-"`
38259}
38260
38261func (s *SecurityPolicyAdaptiveProtectionConfig) MarshalJSON() ([]byte, error) {
38262	type NoMethod SecurityPolicyAdaptiveProtectionConfig
38263	raw := NoMethod(*s)
38264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38265}
38266
38267// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig:
38268// Configuration options for L7 DDoS detection.
38269type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct {
38270	// Enable: If set to true, enables CAAP for L7 DDoS detection.
38271	Enable bool `json:"enable,omitempty"`
38272
38273	// RuleVisibility: Rule visibility can be one of the following: STANDARD
38274	// - opaque rules. (default) PREMIUM - transparent rules.
38275	//
38276	// Possible values:
38277	//   "PREMIUM"
38278	//   "STANDARD"
38279	RuleVisibility string `json:"ruleVisibility,omitempty"`
38280
38281	// ForceSendFields is a list of field names (e.g. "Enable") to
38282	// unconditionally include in API requests. By default, fields with
38283	// empty values are omitted from API requests. However, any non-pointer,
38284	// non-interface field appearing in ForceSendFields will be sent to the
38285	// server regardless of whether the field is empty or not. This may be
38286	// used to include empty fields in Patch requests.
38287	ForceSendFields []string `json:"-"`
38288
38289	// NullFields is a list of field names (e.g. "Enable") to include in API
38290	// requests with the JSON null value. By default, fields with empty
38291	// values are omitted from API requests. However, any field with an
38292	// empty value appearing in NullFields will be sent to the server as
38293	// null. It is an error if a field in this list has a non-empty value.
38294	// This may be used to include null fields in Patch requests.
38295	NullFields []string `json:"-"`
38296}
38297
38298func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) MarshalJSON() ([]byte, error) {
38299	type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
38300	raw := NoMethod(*s)
38301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38302}
38303
38304type SecurityPolicyAdvancedOptionsConfig struct {
38305	// Possible values:
38306	//   "DISABLED"
38307	//   "STANDARD"
38308	JsonParsing string `json:"jsonParsing,omitempty"`
38309
38310	// Possible values:
38311	//   "NORMAL"
38312	//   "VERBOSE"
38313	LogLevel string `json:"logLevel,omitempty"`
38314
38315	// ForceSendFields is a list of field names (e.g. "JsonParsing") to
38316	// unconditionally include in API requests. By default, fields with
38317	// empty values are omitted from API requests. However, any non-pointer,
38318	// non-interface field appearing in ForceSendFields will be sent to the
38319	// server regardless of whether the field is empty or not. This may be
38320	// used to include empty fields in Patch requests.
38321	ForceSendFields []string `json:"-"`
38322
38323	// NullFields is a list of field names (e.g. "JsonParsing") to include
38324	// in API requests with the JSON null value. By default, fields with
38325	// empty values are omitted from API requests. However, any field with
38326	// an empty value appearing in NullFields will be sent to the server as
38327	// null. It is an error if a field in this list has a non-empty value.
38328	// This may be used to include null fields in Patch requests.
38329	NullFields []string `json:"-"`
38330}
38331
38332func (s *SecurityPolicyAdvancedOptionsConfig) MarshalJSON() ([]byte, error) {
38333	type NoMethod SecurityPolicyAdvancedOptionsConfig
38334	raw := NoMethod(*s)
38335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38336}
38337
38338type SecurityPolicyAssociation struct {
38339	// AttachmentId: The resource that the security policy is attached to.
38340	AttachmentId string `json:"attachmentId,omitempty"`
38341
38342	// DisplayName: [Output Only] The display name of the security policy of
38343	// the association.
38344	DisplayName string `json:"displayName,omitempty"`
38345
38346	// Name: The name for an association.
38347	Name string `json:"name,omitempty"`
38348
38349	// SecurityPolicyId: [Output Only] The security policy ID of the
38350	// association.
38351	SecurityPolicyId string `json:"securityPolicyId,omitempty"`
38352
38353	// ServerResponse contains the HTTP response code and headers from the
38354	// server.
38355	googleapi.ServerResponse `json:"-"`
38356
38357	// ForceSendFields is a list of field names (e.g. "AttachmentId") to
38358	// unconditionally include in API requests. By default, fields with
38359	// empty values are omitted from API requests. However, any non-pointer,
38360	// non-interface field appearing in ForceSendFields will be sent to the
38361	// server regardless of whether the field is empty or not. This may be
38362	// used to include empty fields in Patch requests.
38363	ForceSendFields []string `json:"-"`
38364
38365	// NullFields is a list of field names (e.g. "AttachmentId") to include
38366	// in API requests with the JSON null value. By default, fields with
38367	// empty values are omitted from API requests. However, any field with
38368	// an empty value appearing in NullFields will be sent to the server as
38369	// null. It is an error if a field in this list has a non-empty value.
38370	// This may be used to include null fields in Patch requests.
38371	NullFields []string `json:"-"`
38372}
38373
38374func (s *SecurityPolicyAssociation) MarshalJSON() ([]byte, error) {
38375	type NoMethod SecurityPolicyAssociation
38376	raw := NoMethod(*s)
38377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38378}
38379
38380type SecurityPolicyList struct {
38381	// Id: [Output Only] Unique identifier for the resource; defined by the
38382	// server.
38383	Id string `json:"id,omitempty"`
38384
38385	// Items: A list of SecurityPolicy resources.
38386	Items []*SecurityPolicy `json:"items,omitempty"`
38387
38388	// Kind: [Output Only] Type of resource. Always
38389	// compute#securityPolicyList for listsof securityPolicies
38390	Kind string `json:"kind,omitempty"`
38391
38392	// NextPageToken: [Output Only] This token allows you to get the next
38393	// page of results for list requests. If the number of results is larger
38394	// than maxResults, use the nextPageToken as a value for the query
38395	// parameter pageToken in the next list request. Subsequent list
38396	// requests will have their own nextPageToken to continue paging through
38397	// the results.
38398	NextPageToken string `json:"nextPageToken,omitempty"`
38399
38400	// Warning: [Output Only] Informational warning message.
38401	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
38402
38403	// ServerResponse contains the HTTP response code and headers from the
38404	// server.
38405	googleapi.ServerResponse `json:"-"`
38406
38407	// ForceSendFields is a list of field names (e.g. "Id") to
38408	// unconditionally include in API requests. By default, fields with
38409	// empty values are omitted from API requests. However, any non-pointer,
38410	// non-interface field appearing in ForceSendFields will be sent to the
38411	// server regardless of whether the field is empty or not. This may be
38412	// used to include empty fields in Patch requests.
38413	ForceSendFields []string `json:"-"`
38414
38415	// NullFields is a list of field names (e.g. "Id") to include in API
38416	// requests with the JSON null value. By default, fields with empty
38417	// values are omitted from API requests. However, any field with an
38418	// empty value appearing in NullFields will be sent to the server as
38419	// null. It is an error if a field in this list has a non-empty value.
38420	// This may be used to include null fields in Patch requests.
38421	NullFields []string `json:"-"`
38422}
38423
38424func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
38425	type NoMethod SecurityPolicyList
38426	raw := NoMethod(*s)
38427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38428}
38429
38430// SecurityPolicyListWarning: [Output Only] Informational warning
38431// message.
38432type SecurityPolicyListWarning struct {
38433	// Code: [Output Only] A warning code, if applicable. For example,
38434	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38435	// the response.
38436	//
38437	// Possible values:
38438	//   "CLEANUP_FAILED"
38439	//   "DEPRECATED_RESOURCE_USED"
38440	//   "DEPRECATED_TYPE_USED"
38441	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38442	//   "EXPERIMENTAL_TYPE_USED"
38443	//   "EXTERNAL_API_WARNING"
38444	//   "FIELD_VALUE_OVERRIDEN"
38445	//   "INJECTED_KERNELS_DEPRECATED"
38446	//   "LARGE_DEPLOYMENT_WARNING"
38447	//   "MISSING_TYPE_DEPENDENCY"
38448	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38449	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38450	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38451	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38452	//   "NEXT_HOP_NOT_RUNNING"
38453	//   "NOT_CRITICAL_ERROR"
38454	//   "NO_RESULTS_ON_PAGE"
38455	//   "PARTIAL_SUCCESS"
38456	//   "REQUIRED_TOS_AGREEMENT"
38457	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38458	//   "RESOURCE_NOT_DELETED"
38459	//   "SCHEMA_VALIDATION_IGNORED"
38460	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38461	//   "UNDECLARED_PROPERTIES"
38462	//   "UNREACHABLE"
38463	Code string `json:"code,omitempty"`
38464
38465	// Data: [Output Only] Metadata about this warning in key: value format.
38466	// For example:
38467	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38468	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
38469
38470	// Message: [Output Only] A human-readable description of the warning
38471	// code.
38472	Message string `json:"message,omitempty"`
38473
38474	// ForceSendFields is a list of field names (e.g. "Code") to
38475	// unconditionally include in API requests. By default, fields with
38476	// empty values are omitted from API requests. However, any non-pointer,
38477	// non-interface field appearing in ForceSendFields will be sent to the
38478	// server regardless of whether the field is empty or not. This may be
38479	// used to include empty fields in Patch requests.
38480	ForceSendFields []string `json:"-"`
38481
38482	// NullFields is a list of field names (e.g. "Code") to include in API
38483	// requests with the JSON null value. By default, fields with empty
38484	// values are omitted from API requests. However, any field with an
38485	// empty value appearing in NullFields will be sent to the server as
38486	// null. It is an error if a field in this list has a non-empty value.
38487	// This may be used to include null fields in Patch requests.
38488	NullFields []string `json:"-"`
38489}
38490
38491func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
38492	type NoMethod SecurityPolicyListWarning
38493	raw := NoMethod(*s)
38494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38495}
38496
38497type SecurityPolicyListWarningData struct {
38498	// Key: [Output Only] A key that provides more detail on the warning
38499	// being returned. For example, for warnings where there are no results
38500	// in a list request for a particular zone, this key might be scope and
38501	// the key value might be the zone name. Other examples might be a key
38502	// indicating a deprecated resource and a suggested replacement, or a
38503	// warning about invalid network settings (for example, if an instance
38504	// attempts to perform IP forwarding but is not enabled for IP
38505	// forwarding).
38506	Key string `json:"key,omitempty"`
38507
38508	// Value: [Output Only] A warning data value corresponding to the key.
38509	Value string `json:"value,omitempty"`
38510
38511	// ForceSendFields is a list of field names (e.g. "Key") to
38512	// unconditionally include in API requests. By default, fields with
38513	// empty values are omitted from API requests. However, any non-pointer,
38514	// non-interface field appearing in ForceSendFields will be sent to the
38515	// server regardless of whether the field is empty or not. This may be
38516	// used to include empty fields in Patch requests.
38517	ForceSendFields []string `json:"-"`
38518
38519	// NullFields is a list of field names (e.g. "Key") to include in API
38520	// requests with the JSON null value. By default, fields with empty
38521	// values are omitted from API requests. However, any field with an
38522	// empty value appearing in NullFields will be sent to the server as
38523	// null. It is an error if a field in this list has a non-empty value.
38524	// This may be used to include null fields in Patch requests.
38525	NullFields []string `json:"-"`
38526}
38527
38528func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
38529	type NoMethod SecurityPolicyListWarningData
38530	raw := NoMethod(*s)
38531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38532}
38533
38534type SecurityPolicyReference struct {
38535	SecurityPolicy string `json:"securityPolicy,omitempty"`
38536
38537	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
38538	// unconditionally include in API requests. By default, fields with
38539	// empty values are omitted from API requests. However, any non-pointer,
38540	// non-interface field appearing in ForceSendFields will be sent to the
38541	// server regardless of whether the field is empty or not. This may be
38542	// used to include empty fields in Patch requests.
38543	ForceSendFields []string `json:"-"`
38544
38545	// NullFields is a list of field names (e.g. "SecurityPolicy") to
38546	// include in API requests with the JSON null value. By default, fields
38547	// with empty values are omitted from API requests. However, any field
38548	// with an empty value appearing in NullFields will be sent to the
38549	// server as null. It is an error if a field in this list has a
38550	// non-empty value. This may be used to include null fields in Patch
38551	// requests.
38552	NullFields []string `json:"-"`
38553}
38554
38555func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
38556	type NoMethod SecurityPolicyReference
38557	raw := NoMethod(*s)
38558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38559}
38560
38561// SecurityPolicyRule: Represents a rule that describes one or more
38562// match conditions along with the action to be taken when traffic
38563// matches this condition (allow or deny).
38564type SecurityPolicyRule struct {
38565	// Action: The Action to perform when the client connection triggers the
38566	// rule. Can currently be either "allow" or "deny()" where valid values
38567	// for status are 403, 404, and 502.
38568	Action string `json:"action,omitempty"`
38569
38570	// Description: An optional description of this resource. Provide this
38571	// property when you create the resource.
38572	Description string `json:"description,omitempty"`
38573
38574	// Direction: The direction in which this rule applies. This field may
38575	// only be specified when versioned_expr is set to FIREWALL.
38576	//
38577	// Possible values:
38578	//   "EGRESS"
38579	//   "INGRESS"
38580	Direction string `json:"direction,omitempty"`
38581
38582	// EnableLogging: Denotes whether to enable logging for a particular
38583	// rule. If logging is enabled, logs will be exported to the configured
38584	// export destination in Stackdriver. Logs may be exported to BigQuery
38585	// or Pub/Sub. Note: you cannot enable logging on "goto_next"
38586	// rules.
38587	//
38588	// This field may only be specified when the versioned_expr is set to
38589	// FIREWALL.
38590	EnableLogging bool `json:"enableLogging,omitempty"`
38591
38592	// Kind: [Output only] Type of the resource. Always
38593	// compute#securityPolicyRule for security policy rules
38594	Kind string `json:"kind,omitempty"`
38595
38596	// Match: A match condition that incoming traffic is evaluated against.
38597	// If it evaluates to true, the corresponding 'action' is enforced.
38598	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
38599
38600	// Preview: If set to true, the specified action is not enforced.
38601	Preview bool `json:"preview,omitempty"`
38602
38603	// Priority: An integer indicating the priority of a rule in the list.
38604	// The priority must be a positive value between 0 and 2147483647. Rules
38605	// are evaluated from highest to lowest priority where 0 is the highest
38606	// priority and 2147483647 is the lowest priority.
38607	Priority int64 `json:"priority,omitempty"`
38608
38609	// RuleNumber: Identifier for the rule. This is only unique within the
38610	// given security policy. This can only be set during rule creation, if
38611	// rule number is not specified it will be generated by the server.
38612	RuleNumber int64 `json:"ruleNumber,omitempty,string"`
38613
38614	// RuleTupleCount: [Output Only] Calculation of the complexity of a
38615	// single firewall security policy rule.
38616	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
38617
38618	// TargetResources: A list of network resource URLs to which this rule
38619	// applies. This field allows you to control which network's VMs get
38620	// this rule. If this field is left blank, all VMs within the
38621	// organization will receive the rule.
38622	//
38623	// This field may only be specified when versioned_expr is set to
38624	// FIREWALL.
38625	TargetResources []string `json:"targetResources,omitempty"`
38626
38627	// TargetServiceAccounts: A list of service accounts indicating the sets
38628	// of instances that are applied with this rule.
38629	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
38630
38631	// ServerResponse contains the HTTP response code and headers from the
38632	// server.
38633	googleapi.ServerResponse `json:"-"`
38634
38635	// ForceSendFields is a list of field names (e.g. "Action") to
38636	// unconditionally include in API requests. By default, fields with
38637	// empty values are omitted from API requests. However, any non-pointer,
38638	// non-interface field appearing in ForceSendFields will be sent to the
38639	// server regardless of whether the field is empty or not. This may be
38640	// used to include empty fields in Patch requests.
38641	ForceSendFields []string `json:"-"`
38642
38643	// NullFields is a list of field names (e.g. "Action") to include in API
38644	// requests with the JSON null value. By default, fields with empty
38645	// values are omitted from API requests. However, any field with an
38646	// empty value appearing in NullFields will be sent to the server as
38647	// null. It is an error if a field in this list has a non-empty value.
38648	// This may be used to include null fields in Patch requests.
38649	NullFields []string `json:"-"`
38650}
38651
38652func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
38653	type NoMethod SecurityPolicyRule
38654	raw := NoMethod(*s)
38655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38656}
38657
38658// SecurityPolicyRuleMatcher: Represents a match condition that incoming
38659// traffic is evaluated against. Exactly one field must be specified.
38660type SecurityPolicyRuleMatcher struct {
38661	// Config: The configuration options available when specifying
38662	// versioned_expr. This field must be specified if versioned_expr is
38663	// specified and cannot be specified if versioned_expr is not specified.
38664	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
38665
38666	// Expr: User defined CEVAL expression. A CEVAL expression is used to
38667	// specify match criteria such as origin.ip, source.region_code and
38668	// contents in the request header.
38669	Expr *Expr `json:"expr,omitempty"`
38670
38671	// VersionedExpr: Preconfigured versioned expression. If this field is
38672	// specified, config must also be specified. Available preconfigured
38673	// expressions along with their requirements are: SRC_IPS_V1 - must
38674	// specify the corresponding src_ip_range field in config.
38675	//
38676	// Possible values:
38677	//   "FIREWALL"
38678	//   "SRC_IPS_V1"
38679	VersionedExpr string `json:"versionedExpr,omitempty"`
38680
38681	// ForceSendFields is a list of field names (e.g. "Config") to
38682	// unconditionally include in API requests. By default, fields with
38683	// empty values are omitted from API requests. However, any non-pointer,
38684	// non-interface field appearing in ForceSendFields will be sent to the
38685	// server regardless of whether the field is empty or not. This may be
38686	// used to include empty fields in Patch requests.
38687	ForceSendFields []string `json:"-"`
38688
38689	// NullFields is a list of field names (e.g. "Config") to include in API
38690	// requests with the JSON null value. By default, fields with empty
38691	// values are omitted from API requests. However, any field with an
38692	// empty value appearing in NullFields will be sent to the server as
38693	// null. It is an error if a field in this list has a non-empty value.
38694	// This may be used to include null fields in Patch requests.
38695	NullFields []string `json:"-"`
38696}
38697
38698func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
38699	type NoMethod SecurityPolicyRuleMatcher
38700	raw := NoMethod(*s)
38701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38702}
38703
38704type SecurityPolicyRuleMatcherConfig struct {
38705	// DestIpRanges: CIDR IP address range.
38706	//
38707	// This field may only be specified when versioned_expr is set to
38708	// FIREWALL.
38709	DestIpRanges []string `json:"destIpRanges,omitempty"`
38710
38711	// Layer4Configs: Pairs of IP protocols and ports that the rule should
38712	// match.
38713	//
38714	// This field may only be specified when versioned_expr is set to
38715	// FIREWALL.
38716	Layer4Configs []*SecurityPolicyRuleMatcherConfigLayer4Config `json:"layer4Configs,omitempty"`
38717
38718	// SrcIpRanges: CIDR IP address range. Maximum number of src_ip_ranges
38719	// allowed is 10.
38720	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
38721
38722	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
38723	// unconditionally include in API requests. By default, fields with
38724	// empty values are omitted from API requests. However, any non-pointer,
38725	// non-interface field appearing in ForceSendFields will be sent to the
38726	// server regardless of whether the field is empty or not. This may be
38727	// used to include empty fields in Patch requests.
38728	ForceSendFields []string `json:"-"`
38729
38730	// NullFields is a list of field names (e.g. "DestIpRanges") to include
38731	// in API requests with the JSON null value. By default, fields with
38732	// empty values are omitted from API requests. However, any field with
38733	// an empty value appearing in NullFields will be sent to the server as
38734	// null. It is an error if a field in this list has a non-empty value.
38735	// This may be used to include null fields in Patch requests.
38736	NullFields []string `json:"-"`
38737}
38738
38739func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
38740	type NoMethod SecurityPolicyRuleMatcherConfig
38741	raw := NoMethod(*s)
38742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38743}
38744
38745type SecurityPolicyRuleMatcherConfigLayer4Config struct {
38746	// IpProtocol: The IP protocol to which this rule applies. The protocol
38747	// type is required when creating a firewall rule. This value can either
38748	// be one of the following well known protocol strings (tcp, udp, icmp,
38749	// esp, ah, ipip, sctp), or the IP protocol number.
38750	IpProtocol string `json:"ipProtocol,omitempty"`
38751
38752	// Ports: An optional list of ports to which this rule applies. This
38753	// field is only applicable for UDP or TCP protocol. Each entry must be
38754	// either an integer or a range. If not specified, this rule applies to
38755	// connections through any port.
38756	//
38757	// Example inputs include: ["22"], ["80","443"], and
38758	// ["12345-12349"].
38759	//
38760	// This field may only be specified when versioned_expr is set to
38761	// FIREWALL.
38762	Ports []string `json:"ports,omitempty"`
38763
38764	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
38765	// unconditionally include in API requests. By default, fields with
38766	// empty values are omitted from API requests. However, any non-pointer,
38767	// non-interface field appearing in ForceSendFields will be sent to the
38768	// server regardless of whether the field is empty or not. This may be
38769	// used to include empty fields in Patch requests.
38770	ForceSendFields []string `json:"-"`
38771
38772	// NullFields is a list of field names (e.g. "IpProtocol") to include in
38773	// API requests with the JSON null value. By default, fields with empty
38774	// values are omitted from API requests. However, any field with an
38775	// empty value appearing in NullFields will be sent to the server as
38776	// null. It is an error if a field in this list has a non-empty value.
38777	// This may be used to include null fields in Patch requests.
38778	NullFields []string `json:"-"`
38779}
38780
38781func (s *SecurityPolicyRuleMatcherConfigLayer4Config) MarshalJSON() ([]byte, error) {
38782	type NoMethod SecurityPolicyRuleMatcherConfigLayer4Config
38783	raw := NoMethod(*s)
38784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38785}
38786
38787// SecuritySettings: The authentication and authorization settings for a
38788// BackendService.
38789type SecuritySettings struct {
38790	// Authentication: [Deprecated] Use clientTlsPolicy instead.
38791	Authentication string `json:"authentication,omitempty"`
38792
38793	// ClientTlsPolicy: Optional. A URL referring to a
38794	// networksecurity.ClientTlsPolicy resource that describes how clients
38795	// should authenticate with this service's backends.
38796	// clientTlsPolicy only applies to a global BackendService with the
38797	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
38798	// If left blank, communications are not encrypted.
38799	// Note: This field currently has no impact.
38800	ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"`
38801
38802	// SubjectAltNames: Optional. A list of Subject Alternative Names (SANs)
38803	// that the client verifies during a mutual TLS handshake with an
38804	// server/endpoint for this BackendService. When the server presents its
38805	// X.509 certificate to the client, the client inspects the
38806	// certificate's subjectAltName field. If the field contains one of the
38807	// specified values, the communication continues. Otherwise, it fails.
38808	// This additional check enables the client to verify that the server is
38809	// authorized to run the requested service.
38810	// Note that the contents of the server certificate's subjectAltName
38811	// field are configured by the Public Key Infrastructure which
38812	// provisions server identities.
38813	// Only applies to a global BackendService with loadBalancingScheme set
38814	// to INTERNAL_SELF_MANAGED. Only applies when BackendService has an
38815	// attached clientTlsPolicy with clientCertificate (mTLS mode).
38816	// Note: This field currently has no impact.
38817	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
38818
38819	// ForceSendFields is a list of field names (e.g. "Authentication") to
38820	// unconditionally include in API requests. By default, fields with
38821	// empty values are omitted from API requests. However, any non-pointer,
38822	// non-interface field appearing in ForceSendFields will be sent to the
38823	// server regardless of whether the field is empty or not. This may be
38824	// used to include empty fields in Patch requests.
38825	ForceSendFields []string `json:"-"`
38826
38827	// NullFields is a list of field names (e.g. "Authentication") to
38828	// include in API requests with the JSON null value. By default, fields
38829	// with empty values are omitted from API requests. However, any field
38830	// with an empty value appearing in NullFields will be sent to the
38831	// server as null. It is an error if a field in this list has a
38832	// non-empty value. This may be used to include null fields in Patch
38833	// requests.
38834	NullFields []string `json:"-"`
38835}
38836
38837func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
38838	type NoMethod SecuritySettings
38839	raw := NoMethod(*s)
38840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38841}
38842
38843// SerialPortOutput: An instance's serial console output.
38844type SerialPortOutput struct {
38845	// Contents: [Output Only] The contents of the console output.
38846	Contents string `json:"contents,omitempty"`
38847
38848	// Kind: [Output Only] Type of the resource. Always
38849	// compute#serialPortOutput for serial port output.
38850	Kind string `json:"kind,omitempty"`
38851
38852	// Next: [Output Only] The position of the next byte of content,
38853	// regardless of whether the content exists, following the output
38854	// returned in the `contents` property. Use this value in the next
38855	// request as the start parameter.
38856	Next int64 `json:"next,omitempty,string"`
38857
38858	// SelfLink: [Output Only] Server-defined URL for this resource.
38859	SelfLink string `json:"selfLink,omitempty"`
38860
38861	// Start: The starting byte position of the output that was returned.
38862	// This should match the start parameter sent with the request. If the
38863	// serial console output exceeds the size of the buffer (1 MB), older
38864	// output is overwritten by newer content. The output start value will
38865	// indicate the byte position of the output that was returned, which
38866	// might be different than the `start` value that was specified in the
38867	// request.
38868	Start int64 `json:"start,omitempty,string"`
38869
38870	// ServerResponse contains the HTTP response code and headers from the
38871	// server.
38872	googleapi.ServerResponse `json:"-"`
38873
38874	// ForceSendFields is a list of field names (e.g. "Contents") to
38875	// unconditionally include in API requests. By default, fields with
38876	// empty values are omitted from API requests. However, any non-pointer,
38877	// non-interface field appearing in ForceSendFields will be sent to the
38878	// server regardless of whether the field is empty or not. This may be
38879	// used to include empty fields in Patch requests.
38880	ForceSendFields []string `json:"-"`
38881
38882	// NullFields is a list of field names (e.g. "Contents") to include in
38883	// API requests with the JSON null value. By default, fields with empty
38884	// values are omitted from API requests. However, any field with an
38885	// empty value appearing in NullFields will be sent to the server as
38886	// null. It is an error if a field in this list has a non-empty value.
38887	// This may be used to include null fields in Patch requests.
38888	NullFields []string `json:"-"`
38889}
38890
38891func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
38892	type NoMethod SerialPortOutput
38893	raw := NoMethod(*s)
38894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38895}
38896
38897type ServerBinding struct {
38898	// Possible values:
38899	//   "RESTART_NODE_ON_ANY_SERVER"
38900	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
38901	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
38902	Type string `json:"type,omitempty"`
38903
38904	// ForceSendFields is a list of field names (e.g. "Type") to
38905	// unconditionally include in API requests. By default, fields with
38906	// empty values are omitted from API requests. However, any non-pointer,
38907	// non-interface field appearing in ForceSendFields will be sent to the
38908	// server regardless of whether the field is empty or not. This may be
38909	// used to include empty fields in Patch requests.
38910	ForceSendFields []string `json:"-"`
38911
38912	// NullFields is a list of field names (e.g. "Type") to include in API
38913	// requests with the JSON null value. By default, fields with empty
38914	// values are omitted from API requests. However, any field with an
38915	// empty value appearing in NullFields will be sent to the server as
38916	// null. It is an error if a field in this list has a non-empty value.
38917	// This may be used to include null fields in Patch requests.
38918	NullFields []string `json:"-"`
38919}
38920
38921func (s *ServerBinding) MarshalJSON() ([]byte, error) {
38922	type NoMethod ServerBinding
38923	raw := NoMethod(*s)
38924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38925}
38926
38927// ServiceAccount: A service account.
38928type ServiceAccount struct {
38929	// Email: Email address of the service account.
38930	Email string `json:"email,omitempty"`
38931
38932	// Scopes: The list of scopes to be made available for this service
38933	// account.
38934	Scopes []string `json:"scopes,omitempty"`
38935
38936	// ForceSendFields is a list of field names (e.g. "Email") to
38937	// unconditionally include in API requests. By default, fields with
38938	// empty values are omitted from API requests. However, any non-pointer,
38939	// non-interface field appearing in ForceSendFields will be sent to the
38940	// server regardless of whether the field is empty or not. This may be
38941	// used to include empty fields in Patch requests.
38942	ForceSendFields []string `json:"-"`
38943
38944	// NullFields is a list of field names (e.g. "Email") to include in API
38945	// requests with the JSON null value. By default, fields with empty
38946	// values are omitted from API requests. However, any field with an
38947	// empty value appearing in NullFields will be sent to the server as
38948	// null. It is an error if a field in this list has a non-empty value.
38949	// This may be used to include null fields in Patch requests.
38950	NullFields []string `json:"-"`
38951}
38952
38953func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
38954	type NoMethod ServiceAccount
38955	raw := NoMethod(*s)
38956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38957}
38958
38959// ServiceAttachment: Represents a ServiceAttachment resource.
38960//
38961// A service attachment represents a service that a producer has
38962// exposed. It encapsulates the load balancer which fronts the service
38963// runs and a list of NAT IP ranges that the producers uses to represent
38964// the consumers connecting to the service. next tag = 19
38965type ServiceAttachment struct {
38966	// ConnectedEndpoints: [Output Only] An array of connections for all the
38967	// consumers connected to this service attachment.
38968	ConnectedEndpoints []*ServiceAttachmentConnectedEndpoint `json:"connectedEndpoints,omitempty"`
38969
38970	// ConnectionPreference: The connection preference of service
38971	// attachment. The value can be set to ACCEPT_AUTOMATIC. An
38972	// ACCEPT_AUTOMATIC service attachment is one that always accepts the
38973	// connection from consumer forwarding rules.
38974	//
38975	// Possible values:
38976	//   "ACCEPT_AUTOMATIC"
38977	//   "ACCEPT_MANUAL"
38978	//   "CONNECTION_PREFERENCE_UNSPECIFIED"
38979	ConnectionPreference string `json:"connectionPreference,omitempty"`
38980
38981	// ConsumerAcceptLists: Projects that are allowed to connect to this
38982	// service attachment.
38983	ConsumerAcceptLists []*ServiceAttachmentConsumerProjectLimit `json:"consumerAcceptLists,omitempty"`
38984
38985	// ConsumerForwardingRules: [Output Only] An array of forwarding rules
38986	// for all the consumers connected to this service attachment.
38987	ConsumerForwardingRules []*ServiceAttachmentConsumerForwardingRule `json:"consumerForwardingRules,omitempty"`
38988
38989	// ConsumerRejectLists: Projects that are not allowed to connect to this
38990	// service attachment. The project can be specified using its id or
38991	// number.
38992	ConsumerRejectLists []string `json:"consumerRejectLists,omitempty"`
38993
38994	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38995	// format.
38996	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38997
38998	// Description: An optional description of this resource. Provide this
38999	// property when you create the resource.
39000	Description string `json:"description,omitempty"`
39001
39002	// EnableProxyProtocol: If true, enable the proxy protocol which is for
39003	// supplying client TCP/IP address data in TCP connections that traverse
39004	// proxies on their way to destination servers.
39005	EnableProxyProtocol bool `json:"enableProxyProtocol,omitempty"`
39006
39007	// Fingerprint: Fingerprint of this resource. A hash of the contents
39008	// stored in this object. This field is used in optimistic locking. This
39009	// field will be ignored when inserting a ServiceAttachment. An
39010	// up-to-date fingerprint must be provided in order to patch/update the
39011	// ServiceAttachment; otherwise, the request will fail with error 412
39012	// conditionNotMet. To see the latest fingerprint, make a get() request
39013	// to retrieve the ServiceAttachment.
39014	Fingerprint string `json:"fingerprint,omitempty"`
39015
39016	// Id: [Output Only] The unique identifier for the resource type. The
39017	// server generates this identifier.
39018	Id uint64 `json:"id,omitempty,string"`
39019
39020	// Kind: [Output Only] Type of the resource. Always
39021	// compute#serviceAttachment for service attachments.
39022	Kind string `json:"kind,omitempty"`
39023
39024	// Name: Name of the resource. Provided by the client when the resource
39025	// is created. The name must be 1-63 characters long, and comply with
39026	// RFC1035. Specifically, the name must be 1-63 characters long and
39027	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39028	// the first character must be a lowercase letter, and all following
39029	// characters must be a dash, lowercase letter, or digit, except the
39030	// last character, which cannot be a dash.
39031	Name string `json:"name,omitempty"`
39032
39033	// NatSubnets: An array of URLs where each entry is the URL of a subnet
39034	// provided by the service producer to use for NAT in this service
39035	// attachment.
39036	NatSubnets []string `json:"natSubnets,omitempty"`
39037
39038	// ProducerForwardingRule: The URL of a forwarding rule with
39039	// loadBalancingScheme INTERNAL* that is serving the endpoint identified
39040	// by this service attachment.
39041	ProducerForwardingRule string `json:"producerForwardingRule,omitempty"`
39042
39043	// PscServiceAttachmentId: [Output Only] An 128-bit global unique ID of
39044	// the PSC service attachment.
39045	PscServiceAttachmentId *Uint128 `json:"pscServiceAttachmentId,omitempty"`
39046
39047	// Region: [Output Only] URL of the region where the service attachment
39048	// resides. This field applies only to the region resource. You must
39049	// specify this field as part of the HTTP request URL. It is not
39050	// settable as a field in the request body.
39051	Region string `json:"region,omitempty"`
39052
39053	// SelfLink: [Output Only] Server-defined URL for the resource.
39054	SelfLink string `json:"selfLink,omitempty"`
39055
39056	// TargetService: The URL of a service serving the endpoint identified
39057	// by this service attachment.
39058	TargetService string `json:"targetService,omitempty"`
39059
39060	// ServerResponse contains the HTTP response code and headers from the
39061	// server.
39062	googleapi.ServerResponse `json:"-"`
39063
39064	// ForceSendFields is a list of field names (e.g. "ConnectedEndpoints")
39065	// to unconditionally include in API requests. By default, fields with
39066	// empty values are omitted from API requests. However, any non-pointer,
39067	// non-interface field appearing in ForceSendFields will be sent to the
39068	// server regardless of whether the field is empty or not. This may be
39069	// used to include empty fields in Patch requests.
39070	ForceSendFields []string `json:"-"`
39071
39072	// NullFields is a list of field names (e.g. "ConnectedEndpoints") to
39073	// include in API requests with the JSON null value. By default, fields
39074	// with empty values are omitted from API requests. However, any field
39075	// with an empty value appearing in NullFields will be sent to the
39076	// server as null. It is an error if a field in this list has a
39077	// non-empty value. This may be used to include null fields in Patch
39078	// requests.
39079	NullFields []string `json:"-"`
39080}
39081
39082func (s *ServiceAttachment) MarshalJSON() ([]byte, error) {
39083	type NoMethod ServiceAttachment
39084	raw := NoMethod(*s)
39085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39086}
39087
39088// ServiceAttachmentAggregatedList: Contains a list of
39089// ServiceAttachmentsScopedList.
39090type ServiceAttachmentAggregatedList struct {
39091	// Id: [Output Only] Unique identifier for the resource; defined by the
39092	// server.
39093	Id string `json:"id,omitempty"`
39094
39095	// Items: A list of ServiceAttachmentsScopedList resources.
39096	Items map[string]ServiceAttachmentsScopedList `json:"items,omitempty"`
39097
39098	// Kind: Type of resource.
39099	Kind string `json:"kind,omitempty"`
39100
39101	// NextPageToken: [Output Only] This token allows you to get the next
39102	// page of results for list requests. If the number of results is larger
39103	// than maxResults, use the nextPageToken as a value for the query
39104	// parameter pageToken in the next list request. Subsequent list
39105	// requests will have their own nextPageToken to continue paging through
39106	// the results.
39107	NextPageToken string `json:"nextPageToken,omitempty"`
39108
39109	// SelfLink: [Output Only] Server-defined URL for this resource.
39110	SelfLink string `json:"selfLink,omitempty"`
39111
39112	// Unreachables: [Output Only] Unreachable resources.
39113	Unreachables []string `json:"unreachables,omitempty"`
39114
39115	// Warning: [Output Only] Informational warning message.
39116	Warning *ServiceAttachmentAggregatedListWarning `json:"warning,omitempty"`
39117
39118	// ServerResponse contains the HTTP response code and headers from the
39119	// server.
39120	googleapi.ServerResponse `json:"-"`
39121
39122	// ForceSendFields is a list of field names (e.g. "Id") to
39123	// unconditionally include in API requests. By default, fields with
39124	// empty values are omitted from API requests. However, any non-pointer,
39125	// non-interface field appearing in ForceSendFields will be sent to the
39126	// server regardless of whether the field is empty or not. This may be
39127	// used to include empty fields in Patch requests.
39128	ForceSendFields []string `json:"-"`
39129
39130	// NullFields is a list of field names (e.g. "Id") to include in API
39131	// requests with the JSON null value. By default, fields with empty
39132	// values are omitted from API requests. However, any field with an
39133	// empty value appearing in NullFields will be sent to the server as
39134	// null. It is an error if a field in this list has a non-empty value.
39135	// This may be used to include null fields in Patch requests.
39136	NullFields []string `json:"-"`
39137}
39138
39139func (s *ServiceAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
39140	type NoMethod ServiceAttachmentAggregatedList
39141	raw := NoMethod(*s)
39142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39143}
39144
39145// ServiceAttachmentAggregatedListWarning: [Output Only] Informational
39146// warning message.
39147type ServiceAttachmentAggregatedListWarning struct {
39148	// Code: [Output Only] A warning code, if applicable. For example,
39149	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39150	// the response.
39151	//
39152	// Possible values:
39153	//   "CLEANUP_FAILED"
39154	//   "DEPRECATED_RESOURCE_USED"
39155	//   "DEPRECATED_TYPE_USED"
39156	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39157	//   "EXPERIMENTAL_TYPE_USED"
39158	//   "EXTERNAL_API_WARNING"
39159	//   "FIELD_VALUE_OVERRIDEN"
39160	//   "INJECTED_KERNELS_DEPRECATED"
39161	//   "LARGE_DEPLOYMENT_WARNING"
39162	//   "MISSING_TYPE_DEPENDENCY"
39163	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39164	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39165	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39166	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39167	//   "NEXT_HOP_NOT_RUNNING"
39168	//   "NOT_CRITICAL_ERROR"
39169	//   "NO_RESULTS_ON_PAGE"
39170	//   "PARTIAL_SUCCESS"
39171	//   "REQUIRED_TOS_AGREEMENT"
39172	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39173	//   "RESOURCE_NOT_DELETED"
39174	//   "SCHEMA_VALIDATION_IGNORED"
39175	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39176	//   "UNDECLARED_PROPERTIES"
39177	//   "UNREACHABLE"
39178	Code string `json:"code,omitempty"`
39179
39180	// Data: [Output Only] Metadata about this warning in key: value format.
39181	// For example:
39182	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39183	Data []*ServiceAttachmentAggregatedListWarningData `json:"data,omitempty"`
39184
39185	// Message: [Output Only] A human-readable description of the warning
39186	// code.
39187	Message string `json:"message,omitempty"`
39188
39189	// ForceSendFields is a list of field names (e.g. "Code") to
39190	// unconditionally include in API requests. By default, fields with
39191	// empty values are omitted from API requests. However, any non-pointer,
39192	// non-interface field appearing in ForceSendFields will be sent to the
39193	// server regardless of whether the field is empty or not. This may be
39194	// used to include empty fields in Patch requests.
39195	ForceSendFields []string `json:"-"`
39196
39197	// NullFields is a list of field names (e.g. "Code") to include in API
39198	// requests with the JSON null value. By default, fields with empty
39199	// values are omitted from API requests. However, any field with an
39200	// empty value appearing in NullFields will be sent to the server as
39201	// null. It is an error if a field in this list has a non-empty value.
39202	// This may be used to include null fields in Patch requests.
39203	NullFields []string `json:"-"`
39204}
39205
39206func (s *ServiceAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
39207	type NoMethod ServiceAttachmentAggregatedListWarning
39208	raw := NoMethod(*s)
39209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39210}
39211
39212type ServiceAttachmentAggregatedListWarningData struct {
39213	// Key: [Output Only] A key that provides more detail on the warning
39214	// being returned. For example, for warnings where there are no results
39215	// in a list request for a particular zone, this key might be scope and
39216	// the key value might be the zone name. Other examples might be a key
39217	// indicating a deprecated resource and a suggested replacement, or a
39218	// warning about invalid network settings (for example, if an instance
39219	// attempts to perform IP forwarding but is not enabled for IP
39220	// forwarding).
39221	Key string `json:"key,omitempty"`
39222
39223	// Value: [Output Only] A warning data value corresponding to the key.
39224	Value string `json:"value,omitempty"`
39225
39226	// ForceSendFields is a list of field names (e.g. "Key") to
39227	// unconditionally include in API requests. By default, fields with
39228	// empty values are omitted from API requests. However, any non-pointer,
39229	// non-interface field appearing in ForceSendFields will be sent to the
39230	// server regardless of whether the field is empty or not. This may be
39231	// used to include empty fields in Patch requests.
39232	ForceSendFields []string `json:"-"`
39233
39234	// NullFields is a list of field names (e.g. "Key") to include in API
39235	// requests with the JSON null value. By default, fields with empty
39236	// values are omitted from API requests. However, any field with an
39237	// empty value appearing in NullFields will be sent to the server as
39238	// null. It is an error if a field in this list has a non-empty value.
39239	// This may be used to include null fields in Patch requests.
39240	NullFields []string `json:"-"`
39241}
39242
39243func (s *ServiceAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
39244	type NoMethod ServiceAttachmentAggregatedListWarningData
39245	raw := NoMethod(*s)
39246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39247}
39248
39249// ServiceAttachmentConnectedEndpoint: [Output Only] A connection
39250// connected to this service attachment.
39251type ServiceAttachmentConnectedEndpoint struct {
39252	// Endpoint: The url of a connected endpoint.
39253	Endpoint string `json:"endpoint,omitempty"`
39254
39255	// ForwardingRule: The url of a consumer forwarding rule. [Deprecated]
39256	// Do not use.
39257	ForwardingRule string `json:"forwardingRule,omitempty"`
39258
39259	// PscConnectionId: The PSC connection id of the connected endpoint.
39260	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
39261
39262	// Status: The status of a connected endpoint to this service
39263	// attachment.
39264	//
39265	// Possible values:
39266	//   "ACCEPTED"
39267	//   "CLOSED"
39268	//   "PENDING"
39269	//   "REJECTED"
39270	//   "STATUS_UNSPECIFIED"
39271	Status string `json:"status,omitempty"`
39272
39273	// ForceSendFields is a list of field names (e.g. "Endpoint") to
39274	// unconditionally include in API requests. By default, fields with
39275	// empty values are omitted from API requests. However, any non-pointer,
39276	// non-interface field appearing in ForceSendFields will be sent to the
39277	// server regardless of whether the field is empty or not. This may be
39278	// used to include empty fields in Patch requests.
39279	ForceSendFields []string `json:"-"`
39280
39281	// NullFields is a list of field names (e.g. "Endpoint") to include in
39282	// API requests with the JSON null value. By default, fields with empty
39283	// values are omitted from API requests. However, any field with an
39284	// empty value appearing in NullFields will be sent to the server as
39285	// null. It is an error if a field in this list has a non-empty value.
39286	// This may be used to include null fields in Patch requests.
39287	NullFields []string `json:"-"`
39288}
39289
39290func (s *ServiceAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) {
39291	type NoMethod ServiceAttachmentConnectedEndpoint
39292	raw := NoMethod(*s)
39293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39294}
39295
39296// ServiceAttachmentConsumerForwardingRule: [Output Only] A consumer
39297// forwarding rule connected to this service attachment. [Deprecated] Do
39298// not use.
39299type ServiceAttachmentConsumerForwardingRule struct {
39300	// ForwardingRule: The url of a consumer forwarding rule.
39301	ForwardingRule string `json:"forwardingRule,omitempty"`
39302
39303	// PscConnectionId: The PSC connection id of the PSC Forwarding Rule.
39304	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
39305
39306	// Status: The status of the forwarding rule.
39307	//
39308	// Possible values:
39309	//   "ACCEPTED"
39310	//   "CLOSED"
39311	//   "PENDING"
39312	//   "REJECTED"
39313	//   "STATUS_UNSPECIFIED"
39314	Status string `json:"status,omitempty"`
39315
39316	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
39317	// unconditionally include in API requests. By default, fields with
39318	// empty values are omitted from API requests. However, any non-pointer,
39319	// non-interface field appearing in ForceSendFields will be sent to the
39320	// server regardless of whether the field is empty or not. This may be
39321	// used to include empty fields in Patch requests.
39322	ForceSendFields []string `json:"-"`
39323
39324	// NullFields is a list of field names (e.g. "ForwardingRule") to
39325	// include in API requests with the JSON null value. By default, fields
39326	// with empty values are omitted from API requests. However, any field
39327	// with an empty value appearing in NullFields will be sent to the
39328	// server as null. It is an error if a field in this list has a
39329	// non-empty value. This may be used to include null fields in Patch
39330	// requests.
39331	NullFields []string `json:"-"`
39332}
39333
39334func (s *ServiceAttachmentConsumerForwardingRule) MarshalJSON() ([]byte, error) {
39335	type NoMethod ServiceAttachmentConsumerForwardingRule
39336	raw := NoMethod(*s)
39337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39338}
39339
39340type ServiceAttachmentConsumerProjectLimit struct {
39341	// ConnectionLimit: The value of the limit to set.
39342	ConnectionLimit int64 `json:"connectionLimit,omitempty"`
39343
39344	// ProjectIdOrNum: The project id or number for the project to set the
39345	// limit for.
39346	ProjectIdOrNum string `json:"projectIdOrNum,omitempty"`
39347
39348	// ForceSendFields is a list of field names (e.g. "ConnectionLimit") to
39349	// unconditionally include in API requests. By default, fields with
39350	// empty values are omitted from API requests. However, any non-pointer,
39351	// non-interface field appearing in ForceSendFields will be sent to the
39352	// server regardless of whether the field is empty or not. This may be
39353	// used to include empty fields in Patch requests.
39354	ForceSendFields []string `json:"-"`
39355
39356	// NullFields is a list of field names (e.g. "ConnectionLimit") to
39357	// include in API requests with the JSON null value. By default, fields
39358	// with empty values are omitted from API requests. However, any field
39359	// with an empty value appearing in NullFields will be sent to the
39360	// server as null. It is an error if a field in this list has a
39361	// non-empty value. This may be used to include null fields in Patch
39362	// requests.
39363	NullFields []string `json:"-"`
39364}
39365
39366func (s *ServiceAttachmentConsumerProjectLimit) MarshalJSON() ([]byte, error) {
39367	type NoMethod ServiceAttachmentConsumerProjectLimit
39368	raw := NoMethod(*s)
39369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39370}
39371
39372type ServiceAttachmentList struct {
39373	// Id: [Output Only] Unique identifier for the resource; defined by the
39374	// server.
39375	Id string `json:"id,omitempty"`
39376
39377	// Items: A list of ServiceAttachment resources.
39378	Items []*ServiceAttachment `json:"items,omitempty"`
39379
39380	// Kind: [Output Only] Type of the resource. Always
39381	// compute#serviceAttachment for service attachments.
39382	Kind string `json:"kind,omitempty"`
39383
39384	// NextPageToken: [Output Only] This token allows you to get the next
39385	// page of results for list requests. If the number of results is larger
39386	// than maxResults, use the nextPageToken as a value for the query
39387	// parameter pageToken in the next list request. Subsequent list
39388	// requests will have their own nextPageToken to continue paging through
39389	// the results.
39390	NextPageToken string `json:"nextPageToken,omitempty"`
39391
39392	// SelfLink: [Output Only] Server-defined URL for this resource.
39393	SelfLink string `json:"selfLink,omitempty"`
39394
39395	// Warning: [Output Only] Informational warning message.
39396	Warning *ServiceAttachmentListWarning `json:"warning,omitempty"`
39397
39398	// ServerResponse contains the HTTP response code and headers from the
39399	// server.
39400	googleapi.ServerResponse `json:"-"`
39401
39402	// ForceSendFields is a list of field names (e.g. "Id") to
39403	// unconditionally include in API requests. By default, fields with
39404	// empty values are omitted from API requests. However, any non-pointer,
39405	// non-interface field appearing in ForceSendFields will be sent to the
39406	// server regardless of whether the field is empty or not. This may be
39407	// used to include empty fields in Patch requests.
39408	ForceSendFields []string `json:"-"`
39409
39410	// NullFields is a list of field names (e.g. "Id") to include in API
39411	// requests with the JSON null value. By default, fields with empty
39412	// values are omitted from API requests. However, any field with an
39413	// empty value appearing in NullFields will be sent to the server as
39414	// null. It is an error if a field in this list has a non-empty value.
39415	// This may be used to include null fields in Patch requests.
39416	NullFields []string `json:"-"`
39417}
39418
39419func (s *ServiceAttachmentList) MarshalJSON() ([]byte, error) {
39420	type NoMethod ServiceAttachmentList
39421	raw := NoMethod(*s)
39422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39423}
39424
39425// ServiceAttachmentListWarning: [Output Only] Informational warning
39426// message.
39427type ServiceAttachmentListWarning struct {
39428	// Code: [Output Only] A warning code, if applicable. For example,
39429	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39430	// the response.
39431	//
39432	// Possible values:
39433	//   "CLEANUP_FAILED"
39434	//   "DEPRECATED_RESOURCE_USED"
39435	//   "DEPRECATED_TYPE_USED"
39436	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39437	//   "EXPERIMENTAL_TYPE_USED"
39438	//   "EXTERNAL_API_WARNING"
39439	//   "FIELD_VALUE_OVERRIDEN"
39440	//   "INJECTED_KERNELS_DEPRECATED"
39441	//   "LARGE_DEPLOYMENT_WARNING"
39442	//   "MISSING_TYPE_DEPENDENCY"
39443	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39444	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39445	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39446	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39447	//   "NEXT_HOP_NOT_RUNNING"
39448	//   "NOT_CRITICAL_ERROR"
39449	//   "NO_RESULTS_ON_PAGE"
39450	//   "PARTIAL_SUCCESS"
39451	//   "REQUIRED_TOS_AGREEMENT"
39452	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39453	//   "RESOURCE_NOT_DELETED"
39454	//   "SCHEMA_VALIDATION_IGNORED"
39455	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39456	//   "UNDECLARED_PROPERTIES"
39457	//   "UNREACHABLE"
39458	Code string `json:"code,omitempty"`
39459
39460	// Data: [Output Only] Metadata about this warning in key: value format.
39461	// For example:
39462	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39463	Data []*ServiceAttachmentListWarningData `json:"data,omitempty"`
39464
39465	// Message: [Output Only] A human-readable description of the warning
39466	// code.
39467	Message string `json:"message,omitempty"`
39468
39469	// ForceSendFields is a list of field names (e.g. "Code") to
39470	// unconditionally include in API requests. By default, fields with
39471	// empty values are omitted from API requests. However, any non-pointer,
39472	// non-interface field appearing in ForceSendFields will be sent to the
39473	// server regardless of whether the field is empty or not. This may be
39474	// used to include empty fields in Patch requests.
39475	ForceSendFields []string `json:"-"`
39476
39477	// NullFields is a list of field names (e.g. "Code") to include in API
39478	// requests with the JSON null value. By default, fields with empty
39479	// values are omitted from API requests. However, any field with an
39480	// empty value appearing in NullFields will be sent to the server as
39481	// null. It is an error if a field in this list has a non-empty value.
39482	// This may be used to include null fields in Patch requests.
39483	NullFields []string `json:"-"`
39484}
39485
39486func (s *ServiceAttachmentListWarning) MarshalJSON() ([]byte, error) {
39487	type NoMethod ServiceAttachmentListWarning
39488	raw := NoMethod(*s)
39489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39490}
39491
39492type ServiceAttachmentListWarningData struct {
39493	// Key: [Output Only] A key that provides more detail on the warning
39494	// being returned. For example, for warnings where there are no results
39495	// in a list request for a particular zone, this key might be scope and
39496	// the key value might be the zone name. Other examples might be a key
39497	// indicating a deprecated resource and a suggested replacement, or a
39498	// warning about invalid network settings (for example, if an instance
39499	// attempts to perform IP forwarding but is not enabled for IP
39500	// forwarding).
39501	Key string `json:"key,omitempty"`
39502
39503	// Value: [Output Only] A warning data value corresponding to the key.
39504	Value string `json:"value,omitempty"`
39505
39506	// ForceSendFields is a list of field names (e.g. "Key") to
39507	// unconditionally include in API requests. By default, fields with
39508	// empty values are omitted from API requests. However, any non-pointer,
39509	// non-interface field appearing in ForceSendFields will be sent to the
39510	// server regardless of whether the field is empty or not. This may be
39511	// used to include empty fields in Patch requests.
39512	ForceSendFields []string `json:"-"`
39513
39514	// NullFields is a list of field names (e.g. "Key") to include in API
39515	// requests with the JSON null value. By default, fields with empty
39516	// values are omitted from API requests. However, any field with an
39517	// empty value appearing in NullFields will be sent to the server as
39518	// null. It is an error if a field in this list has a non-empty value.
39519	// This may be used to include null fields in Patch requests.
39520	NullFields []string `json:"-"`
39521}
39522
39523func (s *ServiceAttachmentListWarningData) MarshalJSON() ([]byte, error) {
39524	type NoMethod ServiceAttachmentListWarningData
39525	raw := NoMethod(*s)
39526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39527}
39528
39529type ServiceAttachmentsScopedList struct {
39530	// ServiceAttachments: A list of ServiceAttachments contained in this
39531	// scope.
39532	ServiceAttachments []*ServiceAttachment `json:"serviceAttachments,omitempty"`
39533
39534	// Warning: Informational warning which replaces the list of service
39535	// attachments when the list is empty.
39536	Warning *ServiceAttachmentsScopedListWarning `json:"warning,omitempty"`
39537
39538	// ForceSendFields is a list of field names (e.g. "ServiceAttachments")
39539	// to unconditionally include in API requests. By default, fields with
39540	// empty values are omitted from API requests. However, any non-pointer,
39541	// non-interface field appearing in ForceSendFields will be sent to the
39542	// server regardless of whether the field is empty or not. This may be
39543	// used to include empty fields in Patch requests.
39544	ForceSendFields []string `json:"-"`
39545
39546	// NullFields is a list of field names (e.g. "ServiceAttachments") to
39547	// include in API requests with the JSON null value. By default, fields
39548	// with empty values are omitted from API requests. However, any field
39549	// with an empty value appearing in NullFields will be sent to the
39550	// server as null. It is an error if a field in this list has a
39551	// non-empty value. This may be used to include null fields in Patch
39552	// requests.
39553	NullFields []string `json:"-"`
39554}
39555
39556func (s *ServiceAttachmentsScopedList) MarshalJSON() ([]byte, error) {
39557	type NoMethod ServiceAttachmentsScopedList
39558	raw := NoMethod(*s)
39559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39560}
39561
39562// ServiceAttachmentsScopedListWarning: Informational warning which
39563// replaces the list of service attachments when the list is empty.
39564type ServiceAttachmentsScopedListWarning struct {
39565	// Code: [Output Only] A warning code, if applicable. For example,
39566	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39567	// the response.
39568	//
39569	// Possible values:
39570	//   "CLEANUP_FAILED"
39571	//   "DEPRECATED_RESOURCE_USED"
39572	//   "DEPRECATED_TYPE_USED"
39573	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39574	//   "EXPERIMENTAL_TYPE_USED"
39575	//   "EXTERNAL_API_WARNING"
39576	//   "FIELD_VALUE_OVERRIDEN"
39577	//   "INJECTED_KERNELS_DEPRECATED"
39578	//   "LARGE_DEPLOYMENT_WARNING"
39579	//   "MISSING_TYPE_DEPENDENCY"
39580	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39581	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39582	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39583	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39584	//   "NEXT_HOP_NOT_RUNNING"
39585	//   "NOT_CRITICAL_ERROR"
39586	//   "NO_RESULTS_ON_PAGE"
39587	//   "PARTIAL_SUCCESS"
39588	//   "REQUIRED_TOS_AGREEMENT"
39589	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39590	//   "RESOURCE_NOT_DELETED"
39591	//   "SCHEMA_VALIDATION_IGNORED"
39592	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39593	//   "UNDECLARED_PROPERTIES"
39594	//   "UNREACHABLE"
39595	Code string `json:"code,omitempty"`
39596
39597	// Data: [Output Only] Metadata about this warning in key: value format.
39598	// For example:
39599	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39600	Data []*ServiceAttachmentsScopedListWarningData `json:"data,omitempty"`
39601
39602	// Message: [Output Only] A human-readable description of the warning
39603	// code.
39604	Message string `json:"message,omitempty"`
39605
39606	// ForceSendFields is a list of field names (e.g. "Code") to
39607	// unconditionally include in API requests. By default, fields with
39608	// empty values are omitted from API requests. However, any non-pointer,
39609	// non-interface field appearing in ForceSendFields will be sent to the
39610	// server regardless of whether the field is empty or not. This may be
39611	// used to include empty fields in Patch requests.
39612	ForceSendFields []string `json:"-"`
39613
39614	// NullFields is a list of field names (e.g. "Code") to include in API
39615	// requests with the JSON null value. By default, fields with empty
39616	// values are omitted from API requests. However, any field with an
39617	// empty value appearing in NullFields will be sent to the server as
39618	// null. It is an error if a field in this list has a non-empty value.
39619	// This may be used to include null fields in Patch requests.
39620	NullFields []string `json:"-"`
39621}
39622
39623func (s *ServiceAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
39624	type NoMethod ServiceAttachmentsScopedListWarning
39625	raw := NoMethod(*s)
39626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39627}
39628
39629type ServiceAttachmentsScopedListWarningData struct {
39630	// Key: [Output Only] A key that provides more detail on the warning
39631	// being returned. For example, for warnings where there are no results
39632	// in a list request for a particular zone, this key might be scope and
39633	// the key value might be the zone name. Other examples might be a key
39634	// indicating a deprecated resource and a suggested replacement, or a
39635	// warning about invalid network settings (for example, if an instance
39636	// attempts to perform IP forwarding but is not enabled for IP
39637	// forwarding).
39638	Key string `json:"key,omitempty"`
39639
39640	// Value: [Output Only] A warning data value corresponding to the key.
39641	Value string `json:"value,omitempty"`
39642
39643	// ForceSendFields is a list of field names (e.g. "Key") to
39644	// unconditionally include in API requests. By default, fields with
39645	// empty values are omitted from API requests. However, any non-pointer,
39646	// non-interface field appearing in ForceSendFields will be sent to the
39647	// server regardless of whether the field is empty or not. This may be
39648	// used to include empty fields in Patch requests.
39649	ForceSendFields []string `json:"-"`
39650
39651	// NullFields is a list of field names (e.g. "Key") to include in API
39652	// requests with the JSON null value. By default, fields with empty
39653	// values are omitted from API requests. However, any field with an
39654	// empty value appearing in NullFields will be sent to the server as
39655	// null. It is an error if a field in this list has a non-empty value.
39656	// This may be used to include null fields in Patch requests.
39657	NullFields []string `json:"-"`
39658}
39659
39660func (s *ServiceAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
39661	type NoMethod ServiceAttachmentsScopedListWarningData
39662	raw := NoMethod(*s)
39663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39664}
39665
39666// ShieldedInstanceConfig: A set of Shielded Instance options.
39667type ShieldedInstanceConfig struct {
39668	// EnableIntegrityMonitoring: Defines whether the instance has integrity
39669	// monitoring enabled. Enabled by default.
39670	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
39671
39672	// EnableSecureBoot: Defines whether the instance has Secure Boot
39673	// enabled. Disabled by default.
39674	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
39675
39676	// EnableVtpm: Defines whether the instance has the vTPM enabled.
39677	// Enabled by default.
39678	EnableVtpm bool `json:"enableVtpm,omitempty"`
39679
39680	// ForceSendFields is a list of field names (e.g.
39681	// "EnableIntegrityMonitoring") to unconditionally include in API
39682	// requests. By default, fields with empty values are omitted from API
39683	// requests. However, any non-pointer, non-interface field appearing in
39684	// ForceSendFields will be sent to the server regardless of whether the
39685	// field is empty or not. This may be used to include empty fields in
39686	// Patch requests.
39687	ForceSendFields []string `json:"-"`
39688
39689	// NullFields is a list of field names (e.g.
39690	// "EnableIntegrityMonitoring") to include in API requests with the JSON
39691	// null value. By default, fields with empty values are omitted from API
39692	// requests. However, any field with an empty value appearing in
39693	// NullFields will be sent to the server as null. It is an error if a
39694	// field in this list has a non-empty value. This may be used to include
39695	// null fields in Patch requests.
39696	NullFields []string `json:"-"`
39697}
39698
39699func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
39700	type NoMethod ShieldedInstanceConfig
39701	raw := NoMethod(*s)
39702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39703}
39704
39705// ShieldedInstanceIdentity: A shielded Instance identity entry.
39706type ShieldedInstanceIdentity struct {
39707	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
39708	// issued to the Shielded Instance's vTPM.
39709	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
39710
39711	// Kind: [Output Only] Type of the resource. Always
39712	// compute#shieldedInstanceIdentity for shielded Instance identity
39713	// entry.
39714	Kind string `json:"kind,omitempty"`
39715
39716	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
39717	// issued to the Shielded Instance's vTPM.
39718	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
39719
39720	// ServerResponse contains the HTTP response code and headers from the
39721	// server.
39722	googleapi.ServerResponse `json:"-"`
39723
39724	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
39725	// unconditionally include in API requests. By default, fields with
39726	// empty values are omitted from API requests. However, any non-pointer,
39727	// non-interface field appearing in ForceSendFields will be sent to the
39728	// server regardless of whether the field is empty or not. This may be
39729	// used to include empty fields in Patch requests.
39730	ForceSendFields []string `json:"-"`
39731
39732	// NullFields is a list of field names (e.g. "EncryptionKey") to include
39733	// in API requests with the JSON null value. By default, fields with
39734	// empty values are omitted from API requests. However, any field with
39735	// an empty value appearing in NullFields will be sent to the server as
39736	// null. It is an error if a field in this list has a non-empty value.
39737	// This may be used to include null fields in Patch requests.
39738	NullFields []string `json:"-"`
39739}
39740
39741func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
39742	type NoMethod ShieldedInstanceIdentity
39743	raw := NoMethod(*s)
39744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39745}
39746
39747// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
39748type ShieldedInstanceIdentityEntry struct {
39749	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
39750	EkCert string `json:"ekCert,omitempty"`
39751
39752	// EkPub: A PEM-encoded public key.
39753	EkPub string `json:"ekPub,omitempty"`
39754
39755	// ForceSendFields is a list of field names (e.g. "EkCert") to
39756	// unconditionally include in API requests. By default, fields with
39757	// empty values are omitted from API requests. However, any non-pointer,
39758	// non-interface field appearing in ForceSendFields will be sent to the
39759	// server regardless of whether the field is empty or not. This may be
39760	// used to include empty fields in Patch requests.
39761	ForceSendFields []string `json:"-"`
39762
39763	// NullFields is a list of field names (e.g. "EkCert") to include in API
39764	// requests with the JSON null value. By default, fields with empty
39765	// values are omitted from API requests. However, any field with an
39766	// empty value appearing in NullFields will be sent to the server as
39767	// null. It is an error if a field in this list has a non-empty value.
39768	// This may be used to include null fields in Patch requests.
39769	NullFields []string `json:"-"`
39770}
39771
39772func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
39773	type NoMethod ShieldedInstanceIdentityEntry
39774	raw := NoMethod(*s)
39775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39776}
39777
39778// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
39779// against which Instance boot integrity is measured.
39780type ShieldedInstanceIntegrityPolicy struct {
39781	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
39782	// the measurements from the VM instance's most recent boot.
39783	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
39784
39785	// ForceSendFields is a list of field names (e.g.
39786	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
39787	// By default, fields with empty values are omitted from API requests.
39788	// However, any non-pointer, non-interface field appearing in
39789	// ForceSendFields will be sent to the server regardless of whether the
39790	// field is empty or not. This may be used to include empty fields in
39791	// Patch requests.
39792	ForceSendFields []string `json:"-"`
39793
39794	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
39795	// include in API requests with the JSON null value. By default, fields
39796	// with empty values are omitted from API requests. However, any field
39797	// with an empty value appearing in NullFields will be sent to the
39798	// server as null. It is an error if a field in this list has a
39799	// non-empty value. This may be used to include null fields in Patch
39800	// requests.
39801	NullFields []string `json:"-"`
39802}
39803
39804func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
39805	type NoMethod ShieldedInstanceIntegrityPolicy
39806	raw := NoMethod(*s)
39807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39808}
39809
39810// ShieldedVmConfig: A set of Shielded VM options.
39811type ShieldedVmConfig struct {
39812	// EnableIntegrityMonitoring: Defines whether the instance has integrity
39813	// monitoring enabled.
39814	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
39815
39816	// EnableSecureBoot: Defines whether the instance has Secure Boot
39817	// enabled.
39818	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
39819
39820	// EnableVtpm: Defines whether the instance has the vTPM enabled.
39821	EnableVtpm bool `json:"enableVtpm,omitempty"`
39822
39823	// ForceSendFields is a list of field names (e.g.
39824	// "EnableIntegrityMonitoring") to unconditionally include in API
39825	// requests. By default, fields with empty values are omitted from API
39826	// requests. However, any non-pointer, non-interface field appearing in
39827	// ForceSendFields will be sent to the server regardless of whether the
39828	// field is empty or not. This may be used to include empty fields in
39829	// Patch requests.
39830	ForceSendFields []string `json:"-"`
39831
39832	// NullFields is a list of field names (e.g.
39833	// "EnableIntegrityMonitoring") to include in API requests with the JSON
39834	// null value. By default, fields with empty values are omitted from API
39835	// requests. However, any field with an empty value appearing in
39836	// NullFields will be sent to the server as null. It is an error if a
39837	// field in this list has a non-empty value. This may be used to include
39838	// null fields in Patch requests.
39839	NullFields []string `json:"-"`
39840}
39841
39842func (s *ShieldedVmConfig) MarshalJSON() ([]byte, error) {
39843	type NoMethod ShieldedVmConfig
39844	raw := NoMethod(*s)
39845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39846}
39847
39848// ShieldedVmIdentity: A shielded VM identity entry.
39849type ShieldedVmIdentity struct {
39850	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded VM's
39851	// vTPM.
39852	EncryptionKey *ShieldedVmIdentityEntry `json:"encryptionKey,omitempty"`
39853
39854	// Kind: [Output Only] Type of the resource. Always
39855	// compute#shieldedVmIdentity for shielded VM identity entry.
39856	Kind string `json:"kind,omitempty"`
39857
39858	// SigningKey: An Attestation Key (AK) issued to the Shielded VM's vTPM.
39859	SigningKey *ShieldedVmIdentityEntry `json:"signingKey,omitempty"`
39860
39861	// ServerResponse contains the HTTP response code and headers from the
39862	// server.
39863	googleapi.ServerResponse `json:"-"`
39864
39865	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
39866	// unconditionally include in API requests. By default, fields with
39867	// empty values are omitted from API requests. However, any non-pointer,
39868	// non-interface field appearing in ForceSendFields will be sent to the
39869	// server regardless of whether the field is empty or not. This may be
39870	// used to include empty fields in Patch requests.
39871	ForceSendFields []string `json:"-"`
39872
39873	// NullFields is a list of field names (e.g. "EncryptionKey") to include
39874	// in API requests with the JSON null value. By default, fields with
39875	// empty values are omitted from API requests. However, any field with
39876	// an empty value appearing in NullFields will be sent to the server as
39877	// null. It is an error if a field in this list has a non-empty value.
39878	// This may be used to include null fields in Patch requests.
39879	NullFields []string `json:"-"`
39880}
39881
39882func (s *ShieldedVmIdentity) MarshalJSON() ([]byte, error) {
39883	type NoMethod ShieldedVmIdentity
39884	raw := NoMethod(*s)
39885	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39886}
39887
39888// ShieldedVmIdentityEntry: A Shielded Instance Identity Entry.
39889type ShieldedVmIdentityEntry struct {
39890	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
39891	EkCert string `json:"ekCert,omitempty"`
39892
39893	// EkPub: A PEM-encoded public key.
39894	EkPub string `json:"ekPub,omitempty"`
39895
39896	// ForceSendFields is a list of field names (e.g. "EkCert") to
39897	// unconditionally include in API requests. By default, fields with
39898	// empty values are omitted from API requests. However, any non-pointer,
39899	// non-interface field appearing in ForceSendFields will be sent to the
39900	// server regardless of whether the field is empty or not. This may be
39901	// used to include empty fields in Patch requests.
39902	ForceSendFields []string `json:"-"`
39903
39904	// NullFields is a list of field names (e.g. "EkCert") to include in API
39905	// requests with the JSON null value. By default, fields with empty
39906	// values are omitted from API requests. However, any field with an
39907	// empty value appearing in NullFields will be sent to the server as
39908	// null. It is an error if a field in this list has a non-empty value.
39909	// This may be used to include null fields in Patch requests.
39910	NullFields []string `json:"-"`
39911}
39912
39913func (s *ShieldedVmIdentityEntry) MarshalJSON() ([]byte, error) {
39914	type NoMethod ShieldedVmIdentityEntry
39915	raw := NoMethod(*s)
39916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39917}
39918
39919// ShieldedVmIntegrityPolicy: The policy describes the baseline against
39920// which VM instance boot integrity is measured.
39921type ShieldedVmIntegrityPolicy struct {
39922	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
39923	// the measurements from the VM instance's most recent boot.
39924	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
39925
39926	// ForceSendFields is a list of field names (e.g.
39927	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
39928	// By default, fields with empty values are omitted from API requests.
39929	// However, any non-pointer, non-interface field appearing in
39930	// ForceSendFields will be sent to the server regardless of whether the
39931	// field is empty or not. This may be used to include empty fields in
39932	// Patch requests.
39933	ForceSendFields []string `json:"-"`
39934
39935	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
39936	// include in API requests with the JSON null value. By default, fields
39937	// with empty values are omitted from API requests. However, any field
39938	// with an empty value appearing in NullFields will be sent to the
39939	// server as null. It is an error if a field in this list has a
39940	// non-empty value. This may be used to include null fields in Patch
39941	// requests.
39942	NullFields []string `json:"-"`
39943}
39944
39945func (s *ShieldedVmIntegrityPolicy) MarshalJSON() ([]byte, error) {
39946	type NoMethod ShieldedVmIntegrityPolicy
39947	raw := NoMethod(*s)
39948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39949}
39950
39951// SignedUrlKey: Represents a customer-supplied Signing Key used by
39952// Cloud CDN Signed URLs
39953type SignedUrlKey struct {
39954	// KeyName: Name of the key. The name must be 1-63 characters long, and
39955	// comply with RFC1035. Specifically, the name must be 1-63 characters
39956	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
39957	// which means the first character must be a lowercase letter, and all
39958	// following characters must be a dash, lowercase letter, or digit,
39959	// except the last character, which cannot be a dash.
39960	KeyName string `json:"keyName,omitempty"`
39961
39962	// KeyValue: 128-bit key value used for signing the URL. The key value
39963	// must be a valid RFC 4648 Section 5 base64url encoded string.
39964	KeyValue string `json:"keyValue,omitempty"`
39965
39966	// ForceSendFields is a list of field names (e.g. "KeyName") to
39967	// unconditionally include in API requests. By default, fields with
39968	// empty values are omitted from API requests. However, any non-pointer,
39969	// non-interface field appearing in ForceSendFields will be sent to the
39970	// server regardless of whether the field is empty or not. This may be
39971	// used to include empty fields in Patch requests.
39972	ForceSendFields []string `json:"-"`
39973
39974	// NullFields is a list of field names (e.g. "KeyName") to include in
39975	// API requests with the JSON null value. By default, fields with empty
39976	// values are omitted from API requests. However, any field with an
39977	// empty value appearing in NullFields will be sent to the server as
39978	// null. It is an error if a field in this list has a non-empty value.
39979	// This may be used to include null fields in Patch requests.
39980	NullFields []string `json:"-"`
39981}
39982
39983func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
39984	type NoMethod SignedUrlKey
39985	raw := NoMethod(*s)
39986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39987}
39988
39989// Snapshot: Represents a Persistent Disk Snapshot resource.
39990//
39991// You can use snapshots to back up data on a regular interval. For more
39992// information, read  Creating persistent disk snapshots. (==
39993// resource_for {$api_version}.snapshots ==)
39994type Snapshot struct {
39995	// AutoCreated: [Output Only] Set to true if snapshots are automatically
39996	// created by applying resource policy on the target disk.
39997	AutoCreated bool `json:"autoCreated,omitempty"`
39998
39999	// ChainName: Creates the new snapshot in the snapshot chain labeled
40000	// with the specified name. The chain name must be 1-63 characters long
40001	// and comply with RFC1035. This is an uncommon option only for advanced
40002	// service owners who needs to create separate snapshot chains, for
40003	// example, for chargeback tracking. When you describe your snapshot
40004	// resource, this field is visible only if it has a non-empty value.
40005	ChainName string `json:"chainName,omitempty"`
40006
40007	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40008	// format.
40009	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40010
40011	// Description: An optional description of this resource. Provide this
40012	// property when you create the resource.
40013	Description string `json:"description,omitempty"`
40014
40015	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
40016	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
40017
40018	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
40019	// snapshot to a disk.
40020	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
40021
40022	// GuestFlush: [Input Only] Whether to attempt an application consistent
40023	// snapshot by informing the OS to prepare for the snapshot process.
40024	// Currently only supported on Windows instances using the Volume Shadow
40025	// Copy Service (VSS).
40026	GuestFlush bool `json:"guestFlush,omitempty"`
40027
40028	// Id: [Output Only] The unique identifier for the resource. This
40029	// identifier is defined by the server.
40030	Id uint64 `json:"id,omitempty,string"`
40031
40032	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
40033	// Snapshot resources.
40034	Kind string `json:"kind,omitempty"`
40035
40036	// LabelFingerprint: A fingerprint for the labels being applied to this
40037	// snapshot, which is essentially a hash of the labels set used for
40038	// optimistic locking. The fingerprint is initially generated by Compute
40039	// Engine and changes after every request to modify or update labels.
40040	// You must always provide an up-to-date fingerprint hash in order to
40041	// update or change labels, otherwise the request will fail with error
40042	// 412 conditionNotMet.
40043	//
40044	// To see the latest fingerprint, make a get() request to retrieve a
40045	// snapshot.
40046	LabelFingerprint string `json:"labelFingerprint,omitempty"`
40047
40048	// Labels: Labels to apply to this snapshot. These can be later modified
40049	// by the setLabels method. Label values may be empty.
40050	Labels map[string]string `json:"labels,omitempty"`
40051
40052	// LicenseCodes: [Output Only] Integer license codes indicating which
40053	// licenses are attached to this snapshot.
40054	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
40055
40056	// Licenses: [Output Only] A list of public visible licenses that apply
40057	// to this snapshot. This can be because the original image had licenses
40058	// attached (such as a Windows image).
40059	Licenses []string `json:"licenses,omitempty"`
40060
40061	// LocationHint: An opaque location hint used to place the snapshot
40062	// close to other resources. This field is for use by internal tools
40063	// that use the public API.
40064	LocationHint string `json:"locationHint,omitempty"`
40065
40066	// Name: Name of the resource; provided by the client when the resource
40067	// is created. The name must be 1-63 characters long, and comply with
40068	// RFC1035. Specifically, the name must be 1-63 characters long and
40069	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40070	// the first character must be a lowercase letter, and all following
40071	// characters must be a dash, lowercase letter, or digit, except the
40072	// last character, which cannot be a dash.
40073	Name string `json:"name,omitempty"`
40074
40075	// SatisfiesPzs: [Output Only] Reserved for future use.
40076	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
40077
40078	// SelfLink: [Output Only] Server-defined URL for the resource.
40079	SelfLink string `json:"selfLink,omitempty"`
40080
40081	// SnapshotEncryptionKey: Encrypts the snapshot using a
40082	// customer-supplied encryption key.
40083	//
40084	// After you encrypt a snapshot using a customer-supplied key, you must
40085	// provide the same key if you use the snapshot later. For example, you
40086	// must provide the encryption key when you create a disk from the
40087	// encrypted snapshot in a future request.
40088	//
40089	// Customer-supplied encryption keys do not protect access to metadata
40090	// of the snapshot.
40091	//
40092	// If you do not provide an encryption key when creating the snapshot,
40093	// then the snapshot will be encrypted using an automatically generated
40094	// key and you do not need to provide a key to use the snapshot later.
40095	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
40096
40097	// SourceDisk: The source disk used to create this snapshot.
40098	SourceDisk string `json:"sourceDisk,omitempty"`
40099
40100	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
40101	// source disk. Required if the source disk is protected by a
40102	// customer-supplied encryption key.
40103	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
40104
40105	// SourceDiskId: [Output Only] The ID value of the disk used to create
40106	// this snapshot. This value may be used to determine whether the
40107	// snapshot was taken from the current or a previous instance of a given
40108	// disk name.
40109	SourceDiskId string `json:"sourceDiskId,omitempty"`
40110
40111	// Status: [Output Only] The status of the snapshot. This can be
40112	// CREATING, DELETING, FAILED, READY, or UPLOADING.
40113	//
40114	// Possible values:
40115	//   "CREATING"
40116	//   "DELETING"
40117	//   "FAILED"
40118	//   "READY"
40119	//   "UPLOADING"
40120	Status string `json:"status,omitempty"`
40121
40122	// StorageBytes: [Output Only] A size of the storage used by the
40123	// snapshot. As snapshots share storage, this number is expected to
40124	// change with snapshot creation/deletion.
40125	StorageBytes int64 `json:"storageBytes,omitempty,string"`
40126
40127	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
40128	// is in a stable state or it is being adjusted as a result of shared
40129	// storage reallocation. This status can either be UPDATING, meaning the
40130	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
40131	// size of the snapshot is up-to-date.
40132	//
40133	// Possible values:
40134	//   "UPDATING"
40135	//   "UP_TO_DATE"
40136	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
40137
40138	// StorageLocations: Cloud Storage bucket storage location of the
40139	// snapshot (regional or multi-regional).
40140	StorageLocations []string `json:"storageLocations,omitempty"`
40141
40142	// ServerResponse contains the HTTP response code and headers from the
40143	// server.
40144	googleapi.ServerResponse `json:"-"`
40145
40146	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
40147	// unconditionally include in API requests. By default, fields with
40148	// empty values are omitted from API requests. However, any non-pointer,
40149	// non-interface field appearing in ForceSendFields will be sent to the
40150	// server regardless of whether the field is empty or not. This may be
40151	// used to include empty fields in Patch requests.
40152	ForceSendFields []string `json:"-"`
40153
40154	// NullFields is a list of field names (e.g. "AutoCreated") to include
40155	// in API requests with the JSON null value. By default, fields with
40156	// empty values are omitted from API requests. However, any field with
40157	// an empty value appearing in NullFields will be sent to the server as
40158	// null. It is an error if a field in this list has a non-empty value.
40159	// This may be used to include null fields in Patch requests.
40160	NullFields []string `json:"-"`
40161}
40162
40163func (s *Snapshot) MarshalJSON() ([]byte, error) {
40164	type NoMethod Snapshot
40165	raw := NoMethod(*s)
40166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40167}
40168
40169// SnapshotList: Contains a list of Snapshot resources.
40170type SnapshotList struct {
40171	// Id: [Output Only] Unique identifier for the resource; defined by the
40172	// server.
40173	Id string `json:"id,omitempty"`
40174
40175	// Items: A list of Snapshot resources.
40176	Items []*Snapshot `json:"items,omitempty"`
40177
40178	// Kind: Type of resource.
40179	Kind string `json:"kind,omitempty"`
40180
40181	// NextPageToken: [Output Only] This token allows you to get the next
40182	// page of results for list requests. If the number of results is larger
40183	// than maxResults, use the nextPageToken as a value for the query
40184	// parameter pageToken in the next list request. Subsequent list
40185	// requests will have their own nextPageToken to continue paging through
40186	// the results.
40187	NextPageToken string `json:"nextPageToken,omitempty"`
40188
40189	// SelfLink: [Output Only] Server-defined URL for this resource.
40190	SelfLink string `json:"selfLink,omitempty"`
40191
40192	// Warning: [Output Only] Informational warning message.
40193	Warning *SnapshotListWarning `json:"warning,omitempty"`
40194
40195	// ServerResponse contains the HTTP response code and headers from the
40196	// server.
40197	googleapi.ServerResponse `json:"-"`
40198
40199	// ForceSendFields is a list of field names (e.g. "Id") to
40200	// unconditionally include in API requests. By default, fields with
40201	// empty values are omitted from API requests. However, any non-pointer,
40202	// non-interface field appearing in ForceSendFields will be sent to the
40203	// server regardless of whether the field is empty or not. This may be
40204	// used to include empty fields in Patch requests.
40205	ForceSendFields []string `json:"-"`
40206
40207	// NullFields is a list of field names (e.g. "Id") to include in API
40208	// requests with the JSON null value. By default, fields with empty
40209	// values are omitted from API requests. However, any field with an
40210	// empty value appearing in NullFields will be sent to the server as
40211	// null. It is an error if a field in this list has a non-empty value.
40212	// This may be used to include null fields in Patch requests.
40213	NullFields []string `json:"-"`
40214}
40215
40216func (s *SnapshotList) MarshalJSON() ([]byte, error) {
40217	type NoMethod SnapshotList
40218	raw := NoMethod(*s)
40219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40220}
40221
40222// SnapshotListWarning: [Output Only] Informational warning message.
40223type SnapshotListWarning struct {
40224	// Code: [Output Only] A warning code, if applicable. For example,
40225	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40226	// the response.
40227	//
40228	// Possible values:
40229	//   "CLEANUP_FAILED"
40230	//   "DEPRECATED_RESOURCE_USED"
40231	//   "DEPRECATED_TYPE_USED"
40232	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40233	//   "EXPERIMENTAL_TYPE_USED"
40234	//   "EXTERNAL_API_WARNING"
40235	//   "FIELD_VALUE_OVERRIDEN"
40236	//   "INJECTED_KERNELS_DEPRECATED"
40237	//   "LARGE_DEPLOYMENT_WARNING"
40238	//   "MISSING_TYPE_DEPENDENCY"
40239	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40240	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40241	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40242	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40243	//   "NEXT_HOP_NOT_RUNNING"
40244	//   "NOT_CRITICAL_ERROR"
40245	//   "NO_RESULTS_ON_PAGE"
40246	//   "PARTIAL_SUCCESS"
40247	//   "REQUIRED_TOS_AGREEMENT"
40248	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40249	//   "RESOURCE_NOT_DELETED"
40250	//   "SCHEMA_VALIDATION_IGNORED"
40251	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40252	//   "UNDECLARED_PROPERTIES"
40253	//   "UNREACHABLE"
40254	Code string `json:"code,omitempty"`
40255
40256	// Data: [Output Only] Metadata about this warning in key: value format.
40257	// For example:
40258	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40259	Data []*SnapshotListWarningData `json:"data,omitempty"`
40260
40261	// Message: [Output Only] A human-readable description of the warning
40262	// code.
40263	Message string `json:"message,omitempty"`
40264
40265	// ForceSendFields is a list of field names (e.g. "Code") to
40266	// unconditionally include in API requests. By default, fields with
40267	// empty values are omitted from API requests. However, any non-pointer,
40268	// non-interface field appearing in ForceSendFields will be sent to the
40269	// server regardless of whether the field is empty or not. This may be
40270	// used to include empty fields in Patch requests.
40271	ForceSendFields []string `json:"-"`
40272
40273	// NullFields is a list of field names (e.g. "Code") to include in API
40274	// requests with the JSON null value. By default, fields with empty
40275	// values are omitted from API requests. However, any field with an
40276	// empty value appearing in NullFields will be sent to the server as
40277	// null. It is an error if a field in this list has a non-empty value.
40278	// This may be used to include null fields in Patch requests.
40279	NullFields []string `json:"-"`
40280}
40281
40282func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
40283	type NoMethod SnapshotListWarning
40284	raw := NoMethod(*s)
40285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40286}
40287
40288type SnapshotListWarningData struct {
40289	// Key: [Output Only] A key that provides more detail on the warning
40290	// being returned. For example, for warnings where there are no results
40291	// in a list request for a particular zone, this key might be scope and
40292	// the key value might be the zone name. Other examples might be a key
40293	// indicating a deprecated resource and a suggested replacement, or a
40294	// warning about invalid network settings (for example, if an instance
40295	// attempts to perform IP forwarding but is not enabled for IP
40296	// forwarding).
40297	Key string `json:"key,omitempty"`
40298
40299	// Value: [Output Only] A warning data value corresponding to the key.
40300	Value string `json:"value,omitempty"`
40301
40302	// ForceSendFields is a list of field names (e.g. "Key") to
40303	// unconditionally include in API requests. By default, fields with
40304	// empty values are omitted from API requests. However, any non-pointer,
40305	// non-interface field appearing in ForceSendFields will be sent to the
40306	// server regardless of whether the field is empty or not. This may be
40307	// used to include empty fields in Patch requests.
40308	ForceSendFields []string `json:"-"`
40309
40310	// NullFields is a list of field names (e.g. "Key") to include in API
40311	// requests with the JSON null value. By default, fields with empty
40312	// values are omitted from API requests. However, any field with an
40313	// empty value appearing in NullFields will be sent to the server as
40314	// null. It is an error if a field in this list has a non-empty value.
40315	// This may be used to include null fields in Patch requests.
40316	NullFields []string `json:"-"`
40317}
40318
40319func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
40320	type NoMethod SnapshotListWarningData
40321	raw := NoMethod(*s)
40322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40323}
40324
40325type SourceDiskEncryptionKey struct {
40326	// DiskEncryptionKey: The customer-supplied encryption key of the source
40327	// disk. Required if the source disk is protected by a customer-supplied
40328	// encryption key.
40329	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
40330
40331	// SourceDisk: URL of the disk attached to the source instance. This can
40332	// be a full or valid partial URL. For example, the following are valid
40333	// values:
40334	// -
40335	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
40336	//
40337	// - projects/project/zones/zone/disks/disk
40338	// - zones/zone/disks/disk
40339	SourceDisk string `json:"sourceDisk,omitempty"`
40340
40341	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
40342	// to unconditionally include in API requests. By default, fields with
40343	// empty values are omitted from API requests. However, any non-pointer,
40344	// non-interface field appearing in ForceSendFields will be sent to the
40345	// server regardless of whether the field is empty or not. This may be
40346	// used to include empty fields in Patch requests.
40347	ForceSendFields []string `json:"-"`
40348
40349	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
40350	// include in API requests with the JSON null value. By default, fields
40351	// with empty values are omitted from API requests. However, any field
40352	// with an empty value appearing in NullFields will be sent to the
40353	// server as null. It is an error if a field in this list has a
40354	// non-empty value. This may be used to include null fields in Patch
40355	// requests.
40356	NullFields []string `json:"-"`
40357}
40358
40359func (s *SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) {
40360	type NoMethod SourceDiskEncryptionKey
40361	raw := NoMethod(*s)
40362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40363}
40364
40365// SourceInstanceParams: A specification of the parameters to use when
40366// creating the instance template from a source instance.
40367type SourceInstanceParams struct {
40368	// DiskConfigs: Attached disks configuration. If not provided, defaults
40369	// are applied: For boot disk and any other R/W disks, new custom images
40370	// will be created from each disk. For read-only disks, they will be
40371	// attached in read-only mode. Local SSD disks will be created as blank
40372	// volumes.
40373	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
40374
40375	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
40376	// unconditionally include in API requests. By default, fields with
40377	// empty values are omitted from API requests. However, any non-pointer,
40378	// non-interface field appearing in ForceSendFields will be sent to the
40379	// server regardless of whether the field is empty or not. This may be
40380	// used to include empty fields in Patch requests.
40381	ForceSendFields []string `json:"-"`
40382
40383	// NullFields is a list of field names (e.g. "DiskConfigs") to include
40384	// in API requests with the JSON null value. By default, fields with
40385	// empty values are omitted from API requests. However, any field with
40386	// an empty value appearing in NullFields will be sent to the server as
40387	// null. It is an error if a field in this list has a non-empty value.
40388	// This may be used to include null fields in Patch requests.
40389	NullFields []string `json:"-"`
40390}
40391
40392func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
40393	type NoMethod SourceInstanceParams
40394	raw := NoMethod(*s)
40395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40396}
40397
40398type SourceInstanceProperties struct {
40399	// CanIpForward: Enables instances created based on this machine image
40400	// to send packets with source IP addresses other than their own and
40401	// receive packets with destination IP addresses other than their own.
40402	// If these instances will be used as an IP gateway or it will be set as
40403	// the next-hop in a Route resource, specify true. If unsure, leave this
40404	// set to false. See the Enable IP forwarding documentation for more
40405	// information.
40406	CanIpForward bool `json:"canIpForward,omitempty"`
40407
40408	// DeletionProtection: Whether the instance created from this machine
40409	// image should be protected against deletion.
40410	DeletionProtection bool `json:"deletionProtection,omitempty"`
40411
40412	// Description: An optional text description for the instances that are
40413	// created from this machine image.
40414	Description string `json:"description,omitempty"`
40415
40416	// Disks: An array of disks that are associated with the instances that
40417	// are created from this machine image.
40418	Disks []*SavedAttachedDisk `json:"disks,omitempty"`
40419
40420	// GuestAccelerators: A list of guest accelerator cards' type and count
40421	// to use for instances created from this machine image.
40422	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
40423
40424	// Labels: Labels to apply to instances that are created from this
40425	// machine image.
40426	Labels map[string]string `json:"labels,omitempty"`
40427
40428	// MachineType: The machine type to use for instances that are created
40429	// from this machine image.
40430	MachineType string `json:"machineType,omitempty"`
40431
40432	// Metadata: The metadata key/value pairs to assign to instances that
40433	// are created from this machine image. These pairs can consist of
40434	// custom metadata or predefined keys. See Project and instance metadata
40435	// for more information.
40436	Metadata *Metadata `json:"metadata,omitempty"`
40437
40438	// MinCpuPlatform: Minimum cpu/platform to be used by instances created
40439	// from this machine image. The instance may be scheduled on the
40440	// specified or newer cpu/platform. Applicable values are the friendly
40441	// names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or
40442	// minCpuPlatform: "Intel Sandy Bridge". For more information, read
40443	// Specifying a Minimum CPU Platform.
40444	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
40445
40446	// NetworkInterfaces: An array of network access configurations for this
40447	// interface.
40448	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
40449
40450	// PostKeyRevocationActionType: PostKeyRevocationActionType of the
40451	// instance.
40452	//
40453	// Possible values:
40454	//   "NOOP"
40455	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED"
40456	//   "SHUTDOWN"
40457	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
40458
40459	// Scheduling: Specifies the scheduling options for the instances that
40460	// are created from this machine image.
40461	Scheduling *Scheduling `json:"scheduling,omitempty"`
40462
40463	// ServiceAccounts: A list of service accounts with specified scopes.
40464	// Access tokens for these service accounts are available to the
40465	// instances that are created from this machine image. Use metadata
40466	// queries to obtain the access tokens for these instances.
40467	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
40468
40469	// Tags: A list of tags to apply to the instances that are created from
40470	// this machine image. The tags identify valid sources or targets for
40471	// network firewalls. The setTags method can modify this list of tags.
40472	// Each tag within the list must comply with RFC1035.
40473	Tags *Tags `json:"tags,omitempty"`
40474
40475	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
40476	// unconditionally include in API requests. By default, fields with
40477	// empty values are omitted from API requests. However, any non-pointer,
40478	// non-interface field appearing in ForceSendFields will be sent to the
40479	// server regardless of whether the field is empty or not. This may be
40480	// used to include empty fields in Patch requests.
40481	ForceSendFields []string `json:"-"`
40482
40483	// NullFields is a list of field names (e.g. "CanIpForward") to include
40484	// in API requests with the JSON null value. By default, fields with
40485	// empty values are omitted from API requests. However, any field with
40486	// an empty value appearing in NullFields will be sent to the server as
40487	// null. It is an error if a field in this list has a non-empty value.
40488	// This may be used to include null fields in Patch requests.
40489	NullFields []string `json:"-"`
40490}
40491
40492func (s *SourceInstanceProperties) MarshalJSON() ([]byte, error) {
40493	type NoMethod SourceInstanceProperties
40494	raw := NoMethod(*s)
40495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40496}
40497
40498// SslCertificate: Represents an SSL Certificate resource.
40499//
40500// Google Compute Engine has two SSL Certificate resources:
40501//
40502// * Global
40503// (/compute/docs/reference/rest/{$api_version}/sslCertificates) *
40504// Regional
40505// (/compute/docs/reference/rest/{$api_version}/regionSslCertificates)
40506//
40507//
40508//
40509// The sslCertificates are used by:
40510// - external HTTPS load balancers
40511// - SSL proxy load balancers
40512//
40513// The regionSslCertificates are used by internal HTTPS load
40514// balancers.
40515//
40516// Optionally, certificate file contents that you upload can contain a
40517// set of up to five PEM-encoded certificates. The API call creates an
40518// object (sslCertificate) that holds this data. You can use SSL keys
40519// and certificates to secure connections to a load balancer. For more
40520// information, read  Creating and using SSL certificates, SSL
40521// certificates quotas and limits, and  Troubleshooting SSL
40522// certificates. (== resource_for {$api_version}.sslCertificates ==) (==
40523// resource_for {$api_version}.regionSslCertificates ==)
40524type SslCertificate struct {
40525	// Certificate: A value read into memory from a certificate file. The
40526	// certificate file must be in PEM format. The certificate chain must be
40527	// no greater than 5 certs long. The chain must include at least one
40528	// intermediate cert.
40529	Certificate string `json:"certificate,omitempty"`
40530
40531	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40532	// format.
40533	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40534
40535	// Description: An optional description of this resource. Provide this
40536	// property when you create the resource.
40537	Description string `json:"description,omitempty"`
40538
40539	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
40540	ExpireTime string `json:"expireTime,omitempty"`
40541
40542	// Id: [Output Only] The unique identifier for the resource. This
40543	// identifier is defined by the server.
40544	Id uint64 `json:"id,omitempty,string"`
40545
40546	// Kind: [Output Only] Type of the resource. Always
40547	// compute#sslCertificate for SSL certificates.
40548	Kind string `json:"kind,omitempty"`
40549
40550	// Managed: Configuration and status of a managed SSL certificate.
40551	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
40552
40553	// Name: Name of the resource. Provided by the client when the resource
40554	// is created. The name must be 1-63 characters long, and comply with
40555	// RFC1035. Specifically, the name must be 1-63 characters long and
40556	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40557	// the first character must be a lowercase letter, and all following
40558	// characters must be a dash, lowercase letter, or digit, except the
40559	// last character, which cannot be a dash.
40560	Name string `json:"name,omitempty"`
40561
40562	// PrivateKey: A value read into memory from a write-only private key
40563	// file. The private key file must be in PEM format. For security, only
40564	// insert requests include this field.
40565	PrivateKey string `json:"privateKey,omitempty"`
40566
40567	// Region: [Output Only] URL of the region where the regional SSL
40568	// Certificate resides. This field is not applicable to global SSL
40569	// Certificate.
40570	Region string `json:"region,omitempty"`
40571
40572	// SelfLink: [Output only] Server-defined URL for the resource.
40573	SelfLink string `json:"selfLink,omitempty"`
40574
40575	// SelfManaged: Configuration and status of a self-managed SSL
40576	// certificate.
40577	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
40578
40579	// SubjectAlternativeNames: [Output Only] Domains associated with the
40580	// certificate via Subject Alternative Name.
40581	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
40582
40583	// Type: (Optional) Specifies the type of SSL certificate, either
40584	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
40585	// self-managed and the fields certificate and private_key are used.
40586	//
40587	// Possible values:
40588	//   "MANAGED"
40589	//   "SELF_MANAGED"
40590	//   "TYPE_UNSPECIFIED"
40591	Type string `json:"type,omitempty"`
40592
40593	// ServerResponse contains the HTTP response code and headers from the
40594	// server.
40595	googleapi.ServerResponse `json:"-"`
40596
40597	// ForceSendFields is a list of field names (e.g. "Certificate") to
40598	// unconditionally include in API requests. By default, fields with
40599	// empty values are omitted from API requests. However, any non-pointer,
40600	// non-interface field appearing in ForceSendFields will be sent to the
40601	// server regardless of whether the field is empty or not. This may be
40602	// used to include empty fields in Patch requests.
40603	ForceSendFields []string `json:"-"`
40604
40605	// NullFields is a list of field names (e.g. "Certificate") to include
40606	// in API requests with the JSON null value. By default, fields with
40607	// empty values are omitted from API requests. However, any field with
40608	// an empty value appearing in NullFields will be sent to the server as
40609	// null. It is an error if a field in this list has a non-empty value.
40610	// This may be used to include null fields in Patch requests.
40611	NullFields []string `json:"-"`
40612}
40613
40614func (s *SslCertificate) MarshalJSON() ([]byte, error) {
40615	type NoMethod SslCertificate
40616	raw := NoMethod(*s)
40617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40618}
40619
40620type SslCertificateAggregatedList struct {
40621	// Id: [Output Only] Unique identifier for the resource; defined by the
40622	// server.
40623	Id string `json:"id,omitempty"`
40624
40625	// Items: A list of SslCertificatesScopedList resources.
40626	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
40627
40628	// Kind: [Output Only] Type of resource. Always
40629	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
40630	Kind string `json:"kind,omitempty"`
40631
40632	// NextPageToken: [Output Only] This token allows you to get the next
40633	// page of results for list requests. If the number of results is larger
40634	// than maxResults, use the nextPageToken as a value for the query
40635	// parameter pageToken in the next list request. Subsequent list
40636	// requests will have their own nextPageToken to continue paging through
40637	// the results.
40638	NextPageToken string `json:"nextPageToken,omitempty"`
40639
40640	// SelfLink: [Output Only] Server-defined URL for this resource.
40641	SelfLink string `json:"selfLink,omitempty"`
40642
40643	// Unreachables: [Output Only] Unreachable resources.
40644	Unreachables []string `json:"unreachables,omitempty"`
40645
40646	// Warning: [Output Only] Informational warning message.
40647	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
40648
40649	// ServerResponse contains the HTTP response code and headers from the
40650	// server.
40651	googleapi.ServerResponse `json:"-"`
40652
40653	// ForceSendFields is a list of field names (e.g. "Id") to
40654	// unconditionally include in API requests. By default, fields with
40655	// empty values are omitted from API requests. However, any non-pointer,
40656	// non-interface field appearing in ForceSendFields will be sent to the
40657	// server regardless of whether the field is empty or not. This may be
40658	// used to include empty fields in Patch requests.
40659	ForceSendFields []string `json:"-"`
40660
40661	// NullFields is a list of field names (e.g. "Id") to include in API
40662	// requests with the JSON null value. By default, fields with empty
40663	// values are omitted from API requests. However, any field with an
40664	// empty value appearing in NullFields will be sent to the server as
40665	// null. It is an error if a field in this list has a non-empty value.
40666	// This may be used to include null fields in Patch requests.
40667	NullFields []string `json:"-"`
40668}
40669
40670func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
40671	type NoMethod SslCertificateAggregatedList
40672	raw := NoMethod(*s)
40673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40674}
40675
40676// SslCertificateAggregatedListWarning: [Output Only] Informational
40677// warning message.
40678type SslCertificateAggregatedListWarning struct {
40679	// Code: [Output Only] A warning code, if applicable. For example,
40680	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40681	// the response.
40682	//
40683	// Possible values:
40684	//   "CLEANUP_FAILED"
40685	//   "DEPRECATED_RESOURCE_USED"
40686	//   "DEPRECATED_TYPE_USED"
40687	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40688	//   "EXPERIMENTAL_TYPE_USED"
40689	//   "EXTERNAL_API_WARNING"
40690	//   "FIELD_VALUE_OVERRIDEN"
40691	//   "INJECTED_KERNELS_DEPRECATED"
40692	//   "LARGE_DEPLOYMENT_WARNING"
40693	//   "MISSING_TYPE_DEPENDENCY"
40694	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40695	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40696	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40697	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40698	//   "NEXT_HOP_NOT_RUNNING"
40699	//   "NOT_CRITICAL_ERROR"
40700	//   "NO_RESULTS_ON_PAGE"
40701	//   "PARTIAL_SUCCESS"
40702	//   "REQUIRED_TOS_AGREEMENT"
40703	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40704	//   "RESOURCE_NOT_DELETED"
40705	//   "SCHEMA_VALIDATION_IGNORED"
40706	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40707	//   "UNDECLARED_PROPERTIES"
40708	//   "UNREACHABLE"
40709	Code string `json:"code,omitempty"`
40710
40711	// Data: [Output Only] Metadata about this warning in key: value format.
40712	// For example:
40713	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40714	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
40715
40716	// Message: [Output Only] A human-readable description of the warning
40717	// code.
40718	Message string `json:"message,omitempty"`
40719
40720	// ForceSendFields is a list of field names (e.g. "Code") to
40721	// unconditionally include in API requests. By default, fields with
40722	// empty values are omitted from API requests. However, any non-pointer,
40723	// non-interface field appearing in ForceSendFields will be sent to the
40724	// server regardless of whether the field is empty or not. This may be
40725	// used to include empty fields in Patch requests.
40726	ForceSendFields []string `json:"-"`
40727
40728	// NullFields is a list of field names (e.g. "Code") to include in API
40729	// requests with the JSON null value. By default, fields with empty
40730	// values are omitted from API requests. However, any field with an
40731	// empty value appearing in NullFields will be sent to the server as
40732	// null. It is an error if a field in this list has a non-empty value.
40733	// This may be used to include null fields in Patch requests.
40734	NullFields []string `json:"-"`
40735}
40736
40737func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
40738	type NoMethod SslCertificateAggregatedListWarning
40739	raw := NoMethod(*s)
40740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40741}
40742
40743type SslCertificateAggregatedListWarningData struct {
40744	// Key: [Output Only] A key that provides more detail on the warning
40745	// being returned. For example, for warnings where there are no results
40746	// in a list request for a particular zone, this key might be scope and
40747	// the key value might be the zone name. Other examples might be a key
40748	// indicating a deprecated resource and a suggested replacement, or a
40749	// warning about invalid network settings (for example, if an instance
40750	// attempts to perform IP forwarding but is not enabled for IP
40751	// forwarding).
40752	Key string `json:"key,omitempty"`
40753
40754	// Value: [Output Only] A warning data value corresponding to the key.
40755	Value string `json:"value,omitempty"`
40756
40757	// ForceSendFields is a list of field names (e.g. "Key") to
40758	// unconditionally include in API requests. By default, fields with
40759	// empty values are omitted from API requests. However, any non-pointer,
40760	// non-interface field appearing in ForceSendFields will be sent to the
40761	// server regardless of whether the field is empty or not. This may be
40762	// used to include empty fields in Patch requests.
40763	ForceSendFields []string `json:"-"`
40764
40765	// NullFields is a list of field names (e.g. "Key") to include in API
40766	// requests with the JSON null value. By default, fields with empty
40767	// values are omitted from API requests. However, any field with an
40768	// empty value appearing in NullFields will be sent to the server as
40769	// null. It is an error if a field in this list has a non-empty value.
40770	// This may be used to include null fields in Patch requests.
40771	NullFields []string `json:"-"`
40772}
40773
40774func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40775	type NoMethod SslCertificateAggregatedListWarningData
40776	raw := NoMethod(*s)
40777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40778}
40779
40780// SslCertificateList: Contains a list of SslCertificate resources.
40781type SslCertificateList struct {
40782	// Id: [Output Only] Unique identifier for the resource; defined by the
40783	// server.
40784	Id string `json:"id,omitempty"`
40785
40786	// Items: A list of SslCertificate resources.
40787	Items []*SslCertificate `json:"items,omitempty"`
40788
40789	// Kind: Type of resource.
40790	Kind string `json:"kind,omitempty"`
40791
40792	// NextPageToken: [Output Only] This token allows you to get the next
40793	// page of results for list requests. If the number of results is larger
40794	// than maxResults, use the nextPageToken as a value for the query
40795	// parameter pageToken in the next list request. Subsequent list
40796	// requests will have their own nextPageToken to continue paging through
40797	// the results.
40798	NextPageToken string `json:"nextPageToken,omitempty"`
40799
40800	// SelfLink: [Output Only] Server-defined URL for this resource.
40801	SelfLink string `json:"selfLink,omitempty"`
40802
40803	// Warning: [Output Only] Informational warning message.
40804	Warning *SslCertificateListWarning `json:"warning,omitempty"`
40805
40806	// ServerResponse contains the HTTP response code and headers from the
40807	// server.
40808	googleapi.ServerResponse `json:"-"`
40809
40810	// ForceSendFields is a list of field names (e.g. "Id") to
40811	// unconditionally include in API requests. By default, fields with
40812	// empty values are omitted from API requests. However, any non-pointer,
40813	// non-interface field appearing in ForceSendFields will be sent to the
40814	// server regardless of whether the field is empty or not. This may be
40815	// used to include empty fields in Patch requests.
40816	ForceSendFields []string `json:"-"`
40817
40818	// NullFields is a list of field names (e.g. "Id") to include in API
40819	// requests with the JSON null value. By default, fields with empty
40820	// values are omitted from API requests. However, any field with an
40821	// empty value appearing in NullFields will be sent to the server as
40822	// null. It is an error if a field in this list has a non-empty value.
40823	// This may be used to include null fields in Patch requests.
40824	NullFields []string `json:"-"`
40825}
40826
40827func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
40828	type NoMethod SslCertificateList
40829	raw := NoMethod(*s)
40830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40831}
40832
40833// SslCertificateListWarning: [Output Only] Informational warning
40834// message.
40835type SslCertificateListWarning struct {
40836	// Code: [Output Only] A warning code, if applicable. For example,
40837	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40838	// the response.
40839	//
40840	// Possible values:
40841	//   "CLEANUP_FAILED"
40842	//   "DEPRECATED_RESOURCE_USED"
40843	//   "DEPRECATED_TYPE_USED"
40844	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40845	//   "EXPERIMENTAL_TYPE_USED"
40846	//   "EXTERNAL_API_WARNING"
40847	//   "FIELD_VALUE_OVERRIDEN"
40848	//   "INJECTED_KERNELS_DEPRECATED"
40849	//   "LARGE_DEPLOYMENT_WARNING"
40850	//   "MISSING_TYPE_DEPENDENCY"
40851	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40852	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40853	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40854	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40855	//   "NEXT_HOP_NOT_RUNNING"
40856	//   "NOT_CRITICAL_ERROR"
40857	//   "NO_RESULTS_ON_PAGE"
40858	//   "PARTIAL_SUCCESS"
40859	//   "REQUIRED_TOS_AGREEMENT"
40860	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40861	//   "RESOURCE_NOT_DELETED"
40862	//   "SCHEMA_VALIDATION_IGNORED"
40863	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40864	//   "UNDECLARED_PROPERTIES"
40865	//   "UNREACHABLE"
40866	Code string `json:"code,omitempty"`
40867
40868	// Data: [Output Only] Metadata about this warning in key: value format.
40869	// For example:
40870	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40871	Data []*SslCertificateListWarningData `json:"data,omitempty"`
40872
40873	// Message: [Output Only] A human-readable description of the warning
40874	// code.
40875	Message string `json:"message,omitempty"`
40876
40877	// ForceSendFields is a list of field names (e.g. "Code") to
40878	// unconditionally include in API requests. By default, fields with
40879	// empty values are omitted from API requests. However, any non-pointer,
40880	// non-interface field appearing in ForceSendFields will be sent to the
40881	// server regardless of whether the field is empty or not. This may be
40882	// used to include empty fields in Patch requests.
40883	ForceSendFields []string `json:"-"`
40884
40885	// NullFields is a list of field names (e.g. "Code") to include in API
40886	// requests with the JSON null value. By default, fields with empty
40887	// values are omitted from API requests. However, any field with an
40888	// empty value appearing in NullFields will be sent to the server as
40889	// null. It is an error if a field in this list has a non-empty value.
40890	// This may be used to include null fields in Patch requests.
40891	NullFields []string `json:"-"`
40892}
40893
40894func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
40895	type NoMethod SslCertificateListWarning
40896	raw := NoMethod(*s)
40897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40898}
40899
40900type SslCertificateListWarningData struct {
40901	// Key: [Output Only] A key that provides more detail on the warning
40902	// being returned. For example, for warnings where there are no results
40903	// in a list request for a particular zone, this key might be scope and
40904	// the key value might be the zone name. Other examples might be a key
40905	// indicating a deprecated resource and a suggested replacement, or a
40906	// warning about invalid network settings (for example, if an instance
40907	// attempts to perform IP forwarding but is not enabled for IP
40908	// forwarding).
40909	Key string `json:"key,omitempty"`
40910
40911	// Value: [Output Only] A warning data value corresponding to the key.
40912	Value string `json:"value,omitempty"`
40913
40914	// ForceSendFields is a list of field names (e.g. "Key") to
40915	// unconditionally include in API requests. By default, fields with
40916	// empty values are omitted from API requests. However, any non-pointer,
40917	// non-interface field appearing in ForceSendFields will be sent to the
40918	// server regardless of whether the field is empty or not. This may be
40919	// used to include empty fields in Patch requests.
40920	ForceSendFields []string `json:"-"`
40921
40922	// NullFields is a list of field names (e.g. "Key") to include in API
40923	// requests with the JSON null value. By default, fields with empty
40924	// values are omitted from API requests. However, any field with an
40925	// empty value appearing in NullFields will be sent to the server as
40926	// null. It is an error if a field in this list has a non-empty value.
40927	// This may be used to include null fields in Patch requests.
40928	NullFields []string `json:"-"`
40929}
40930
40931func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
40932	type NoMethod SslCertificateListWarningData
40933	raw := NoMethod(*s)
40934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40935}
40936
40937// SslCertificateManagedSslCertificate: Configuration and status of a
40938// managed SSL certificate.
40939type SslCertificateManagedSslCertificate struct {
40940	// DomainStatus: [Output only] Detailed statuses of the domains
40941	// specified for managed certificate resource.
40942	DomainStatus map[string]string `json:"domainStatus,omitempty"`
40943
40944	// Domains: The domains for which a managed SSL certificate will be
40945	// generated. Each Google-managed SSL certificate supports up to the
40946	// maximum number of domains per Google-managed SSL certificate
40947	// (/load-balancing/docs/quotas#ssl_certificates).
40948	Domains []string `json:"domains,omitempty"`
40949
40950	// Status: [Output only] Status of the managed certificate resource.
40951	//
40952	// Possible values:
40953	//   "ACTIVE"
40954	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
40955	//   "PROVISIONING"
40956	//   "PROVISIONING_FAILED"
40957	//   "PROVISIONING_FAILED_PERMANENTLY"
40958	//   "RENEWAL_FAILED"
40959	Status string `json:"status,omitempty"`
40960
40961	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
40962	// unconditionally include in API requests. By default, fields with
40963	// empty values are omitted from API requests. However, any non-pointer,
40964	// non-interface field appearing in ForceSendFields will be sent to the
40965	// server regardless of whether the field is empty or not. This may be
40966	// used to include empty fields in Patch requests.
40967	ForceSendFields []string `json:"-"`
40968
40969	// NullFields is a list of field names (e.g. "DomainStatus") to include
40970	// in API requests with the JSON null value. By default, fields with
40971	// empty values are omitted from API requests. However, any field with
40972	// an empty value appearing in NullFields will be sent to the server as
40973	// null. It is an error if a field in this list has a non-empty value.
40974	// This may be used to include null fields in Patch requests.
40975	NullFields []string `json:"-"`
40976}
40977
40978func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
40979	type NoMethod SslCertificateManagedSslCertificate
40980	raw := NoMethod(*s)
40981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40982}
40983
40984// SslCertificateSelfManagedSslCertificate: Configuration and status of
40985// a self-managed SSL certificate.
40986type SslCertificateSelfManagedSslCertificate struct {
40987	// Certificate: A local certificate file. The certificate must be in PEM
40988	// format. The certificate chain must be no greater than 5 certs long.
40989	// The chain must include at least one intermediate cert.
40990	Certificate string `json:"certificate,omitempty"`
40991
40992	// PrivateKey: A write-only private key in PEM format. Only insert
40993	// requests will include this field.
40994	PrivateKey string `json:"privateKey,omitempty"`
40995
40996	// ForceSendFields is a list of field names (e.g. "Certificate") to
40997	// unconditionally include in API requests. By default, fields with
40998	// empty values are omitted from API requests. However, any non-pointer,
40999	// non-interface field appearing in ForceSendFields will be sent to the
41000	// server regardless of whether the field is empty or not. This may be
41001	// used to include empty fields in Patch requests.
41002	ForceSendFields []string `json:"-"`
41003
41004	// NullFields is a list of field names (e.g. "Certificate") to include
41005	// in API requests with the JSON null value. By default, fields with
41006	// empty values are omitted from API requests. However, any field with
41007	// an empty value appearing in NullFields will be sent to the server as
41008	// null. It is an error if a field in this list has a non-empty value.
41009	// This may be used to include null fields in Patch requests.
41010	NullFields []string `json:"-"`
41011}
41012
41013func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
41014	type NoMethod SslCertificateSelfManagedSslCertificate
41015	raw := NoMethod(*s)
41016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41017}
41018
41019type SslCertificatesScopedList struct {
41020	// SslCertificates: List of SslCertificates contained in this scope.
41021	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
41022
41023	// Warning: Informational warning which replaces the list of backend
41024	// services when the list is empty.
41025	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
41026
41027	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
41028	// unconditionally include in API requests. By default, fields with
41029	// empty values are omitted from API requests. However, any non-pointer,
41030	// non-interface field appearing in ForceSendFields will be sent to the
41031	// server regardless of whether the field is empty or not. This may be
41032	// used to include empty fields in Patch requests.
41033	ForceSendFields []string `json:"-"`
41034
41035	// NullFields is a list of field names (e.g. "SslCertificates") to
41036	// include in API requests with the JSON null value. By default, fields
41037	// with empty values are omitted from API requests. However, any field
41038	// with an empty value appearing in NullFields will be sent to the
41039	// server as null. It is an error if a field in this list has a
41040	// non-empty value. This may be used to include null fields in Patch
41041	// requests.
41042	NullFields []string `json:"-"`
41043}
41044
41045func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
41046	type NoMethod SslCertificatesScopedList
41047	raw := NoMethod(*s)
41048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41049}
41050
41051// SslCertificatesScopedListWarning: Informational warning which
41052// replaces the list of backend services when the list is empty.
41053type SslCertificatesScopedListWarning struct {
41054	// Code: [Output Only] A warning code, if applicable. For example,
41055	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41056	// the response.
41057	//
41058	// Possible values:
41059	//   "CLEANUP_FAILED"
41060	//   "DEPRECATED_RESOURCE_USED"
41061	//   "DEPRECATED_TYPE_USED"
41062	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41063	//   "EXPERIMENTAL_TYPE_USED"
41064	//   "EXTERNAL_API_WARNING"
41065	//   "FIELD_VALUE_OVERRIDEN"
41066	//   "INJECTED_KERNELS_DEPRECATED"
41067	//   "LARGE_DEPLOYMENT_WARNING"
41068	//   "MISSING_TYPE_DEPENDENCY"
41069	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41070	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41071	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41072	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41073	//   "NEXT_HOP_NOT_RUNNING"
41074	//   "NOT_CRITICAL_ERROR"
41075	//   "NO_RESULTS_ON_PAGE"
41076	//   "PARTIAL_SUCCESS"
41077	//   "REQUIRED_TOS_AGREEMENT"
41078	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41079	//   "RESOURCE_NOT_DELETED"
41080	//   "SCHEMA_VALIDATION_IGNORED"
41081	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41082	//   "UNDECLARED_PROPERTIES"
41083	//   "UNREACHABLE"
41084	Code string `json:"code,omitempty"`
41085
41086	// Data: [Output Only] Metadata about this warning in key: value format.
41087	// For example:
41088	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41089	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
41090
41091	// Message: [Output Only] A human-readable description of the warning
41092	// code.
41093	Message string `json:"message,omitempty"`
41094
41095	// ForceSendFields is a list of field names (e.g. "Code") to
41096	// unconditionally include in API requests. By default, fields with
41097	// empty values are omitted from API requests. However, any non-pointer,
41098	// non-interface field appearing in ForceSendFields will be sent to the
41099	// server regardless of whether the field is empty or not. This may be
41100	// used to include empty fields in Patch requests.
41101	ForceSendFields []string `json:"-"`
41102
41103	// NullFields is a list of field names (e.g. "Code") to include in API
41104	// requests with the JSON null value. By default, fields with empty
41105	// values are omitted from API requests. However, any field with an
41106	// empty value appearing in NullFields will be sent to the server as
41107	// null. It is an error if a field in this list has a non-empty value.
41108	// This may be used to include null fields in Patch requests.
41109	NullFields []string `json:"-"`
41110}
41111
41112func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
41113	type NoMethod SslCertificatesScopedListWarning
41114	raw := NoMethod(*s)
41115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41116}
41117
41118type SslCertificatesScopedListWarningData struct {
41119	// Key: [Output Only] A key that provides more detail on the warning
41120	// being returned. For example, for warnings where there are no results
41121	// in a list request for a particular zone, this key might be scope and
41122	// the key value might be the zone name. Other examples might be a key
41123	// indicating a deprecated resource and a suggested replacement, or a
41124	// warning about invalid network settings (for example, if an instance
41125	// attempts to perform IP forwarding but is not enabled for IP
41126	// forwarding).
41127	Key string `json:"key,omitempty"`
41128
41129	// Value: [Output Only] A warning data value corresponding to the key.
41130	Value string `json:"value,omitempty"`
41131
41132	// ForceSendFields is a list of field names (e.g. "Key") to
41133	// unconditionally include in API requests. By default, fields with
41134	// empty values are omitted from API requests. However, any non-pointer,
41135	// non-interface field appearing in ForceSendFields will be sent to the
41136	// server regardless of whether the field is empty or not. This may be
41137	// used to include empty fields in Patch requests.
41138	ForceSendFields []string `json:"-"`
41139
41140	// NullFields is a list of field names (e.g. "Key") to include in API
41141	// requests with the JSON null value. By default, fields with empty
41142	// values are omitted from API requests. However, any field with an
41143	// empty value appearing in NullFields will be sent to the server as
41144	// null. It is an error if a field in this list has a non-empty value.
41145	// This may be used to include null fields in Patch requests.
41146	NullFields []string `json:"-"`
41147}
41148
41149func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
41150	type NoMethod SslCertificatesScopedListWarningData
41151	raw := NoMethod(*s)
41152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41153}
41154
41155type SslPoliciesList struct {
41156	// Id: [Output Only] Unique identifier for the resource; defined by the
41157	// server.
41158	Id string `json:"id,omitempty"`
41159
41160	// Items: A list of SslPolicy resources.
41161	Items []*SslPolicy `json:"items,omitempty"`
41162
41163	// Kind: [Output Only] Type of the resource. Always
41164	// compute#sslPoliciesList for lists of sslPolicies.
41165	Kind string `json:"kind,omitempty"`
41166
41167	// NextPageToken: [Output Only] This token allows you to get the next
41168	// page of results for list requests. If the number of results is larger
41169	// than maxResults, use the nextPageToken as a value for the query
41170	// parameter pageToken in the next list request. Subsequent list
41171	// requests will have their own nextPageToken to continue paging through
41172	// the results.
41173	NextPageToken string `json:"nextPageToken,omitempty"`
41174
41175	// SelfLink: [Output Only] Server-defined URL for this resource.
41176	SelfLink string `json:"selfLink,omitempty"`
41177
41178	// Warning: [Output Only] Informational warning message.
41179	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
41180
41181	// ServerResponse contains the HTTP response code and headers from the
41182	// server.
41183	googleapi.ServerResponse `json:"-"`
41184
41185	// ForceSendFields is a list of field names (e.g. "Id") to
41186	// unconditionally include in API requests. By default, fields with
41187	// empty values are omitted from API requests. However, any non-pointer,
41188	// non-interface field appearing in ForceSendFields will be sent to the
41189	// server regardless of whether the field is empty or not. This may be
41190	// used to include empty fields in Patch requests.
41191	ForceSendFields []string `json:"-"`
41192
41193	// NullFields is a list of field names (e.g. "Id") to include in API
41194	// requests with the JSON null value. By default, fields with empty
41195	// values are omitted from API requests. However, any field with an
41196	// empty value appearing in NullFields will be sent to the server as
41197	// null. It is an error if a field in this list has a non-empty value.
41198	// This may be used to include null fields in Patch requests.
41199	NullFields []string `json:"-"`
41200}
41201
41202func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
41203	type NoMethod SslPoliciesList
41204	raw := NoMethod(*s)
41205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41206}
41207
41208// SslPoliciesListWarning: [Output Only] Informational warning message.
41209type SslPoliciesListWarning struct {
41210	// Code: [Output Only] A warning code, if applicable. For example,
41211	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41212	// the response.
41213	//
41214	// Possible values:
41215	//   "CLEANUP_FAILED"
41216	//   "DEPRECATED_RESOURCE_USED"
41217	//   "DEPRECATED_TYPE_USED"
41218	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41219	//   "EXPERIMENTAL_TYPE_USED"
41220	//   "EXTERNAL_API_WARNING"
41221	//   "FIELD_VALUE_OVERRIDEN"
41222	//   "INJECTED_KERNELS_DEPRECATED"
41223	//   "LARGE_DEPLOYMENT_WARNING"
41224	//   "MISSING_TYPE_DEPENDENCY"
41225	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41226	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41227	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41228	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41229	//   "NEXT_HOP_NOT_RUNNING"
41230	//   "NOT_CRITICAL_ERROR"
41231	//   "NO_RESULTS_ON_PAGE"
41232	//   "PARTIAL_SUCCESS"
41233	//   "REQUIRED_TOS_AGREEMENT"
41234	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41235	//   "RESOURCE_NOT_DELETED"
41236	//   "SCHEMA_VALIDATION_IGNORED"
41237	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41238	//   "UNDECLARED_PROPERTIES"
41239	//   "UNREACHABLE"
41240	Code string `json:"code,omitempty"`
41241
41242	// Data: [Output Only] Metadata about this warning in key: value format.
41243	// For example:
41244	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41245	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
41246
41247	// Message: [Output Only] A human-readable description of the warning
41248	// code.
41249	Message string `json:"message,omitempty"`
41250
41251	// ForceSendFields is a list of field names (e.g. "Code") to
41252	// unconditionally include in API requests. By default, fields with
41253	// empty values are omitted from API requests. However, any non-pointer,
41254	// non-interface field appearing in ForceSendFields will be sent to the
41255	// server regardless of whether the field is empty or not. This may be
41256	// used to include empty fields in Patch requests.
41257	ForceSendFields []string `json:"-"`
41258
41259	// NullFields is a list of field names (e.g. "Code") to include in API
41260	// requests with the JSON null value. By default, fields with empty
41261	// values are omitted from API requests. However, any field with an
41262	// empty value appearing in NullFields will be sent to the server as
41263	// null. It is an error if a field in this list has a non-empty value.
41264	// This may be used to include null fields in Patch requests.
41265	NullFields []string `json:"-"`
41266}
41267
41268func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
41269	type NoMethod SslPoliciesListWarning
41270	raw := NoMethod(*s)
41271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41272}
41273
41274type SslPoliciesListWarningData struct {
41275	// Key: [Output Only] A key that provides more detail on the warning
41276	// being returned. For example, for warnings where there are no results
41277	// in a list request for a particular zone, this key might be scope and
41278	// the key value might be the zone name. Other examples might be a key
41279	// indicating a deprecated resource and a suggested replacement, or a
41280	// warning about invalid network settings (for example, if an instance
41281	// attempts to perform IP forwarding but is not enabled for IP
41282	// forwarding).
41283	Key string `json:"key,omitempty"`
41284
41285	// Value: [Output Only] A warning data value corresponding to the key.
41286	Value string `json:"value,omitempty"`
41287
41288	// ForceSendFields is a list of field names (e.g. "Key") to
41289	// unconditionally include in API requests. By default, fields with
41290	// empty values are omitted from API requests. However, any non-pointer,
41291	// non-interface field appearing in ForceSendFields will be sent to the
41292	// server regardless of whether the field is empty or not. This may be
41293	// used to include empty fields in Patch requests.
41294	ForceSendFields []string `json:"-"`
41295
41296	// NullFields is a list of field names (e.g. "Key") to include in API
41297	// requests with the JSON null value. By default, fields with empty
41298	// values are omitted from API requests. However, any field with an
41299	// empty value appearing in NullFields will be sent to the server as
41300	// null. It is an error if a field in this list has a non-empty value.
41301	// This may be used to include null fields in Patch requests.
41302	NullFields []string `json:"-"`
41303}
41304
41305func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
41306	type NoMethod SslPoliciesListWarningData
41307	raw := NoMethod(*s)
41308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41309}
41310
41311type SslPoliciesListAvailableFeaturesResponse struct {
41312	Features []string `json:"features,omitempty"`
41313
41314	// ServerResponse contains the HTTP response code and headers from the
41315	// server.
41316	googleapi.ServerResponse `json:"-"`
41317
41318	// ForceSendFields is a list of field names (e.g. "Features") to
41319	// unconditionally include in API requests. By default, fields with
41320	// empty values are omitted from API requests. However, any non-pointer,
41321	// non-interface field appearing in ForceSendFields will be sent to the
41322	// server regardless of whether the field is empty or not. This may be
41323	// used to include empty fields in Patch requests.
41324	ForceSendFields []string `json:"-"`
41325
41326	// NullFields is a list of field names (e.g. "Features") to include in
41327	// API requests with the JSON null value. By default, fields with empty
41328	// values are omitted from API requests. However, any field with an
41329	// empty value appearing in NullFields will be sent to the server as
41330	// null. It is an error if a field in this list has a non-empty value.
41331	// This may be used to include null fields in Patch requests.
41332	NullFields []string `json:"-"`
41333}
41334
41335func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
41336	type NoMethod SslPoliciesListAvailableFeaturesResponse
41337	raw := NoMethod(*s)
41338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41339}
41340
41341// SslPolicy: Represents an SSL Policy resource.
41342//
41343// Use SSL policies to control the SSL features, such as versions and
41344// cipher suites, offered by an HTTPS or SSL Proxy load balancer. For
41345// more information, read  SSL Policy Concepts. (== resource_for
41346// {$api_version}.sslPolicies ==)
41347type SslPolicy struct {
41348	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41349	// format.
41350	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41351
41352	// CustomFeatures: A list of features enabled when the selected profile
41353	// is CUSTOM. The
41354	// - method returns the set of features that can be specified in this
41355	// list. This field must be empty if the profile is not CUSTOM.
41356	CustomFeatures []string `json:"customFeatures,omitempty"`
41357
41358	// Description: An optional description of this resource. Provide this
41359	// property when you create the resource.
41360	Description string `json:"description,omitempty"`
41361
41362	// EnabledFeatures: [Output Only] The list of features enabled in the
41363	// SSL policy.
41364	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
41365
41366	// Fingerprint: Fingerprint of this resource. A hash of the contents
41367	// stored in this object. This field is used in optimistic locking. This
41368	// field will be ignored when inserting a SslPolicy. An up-to-date
41369	// fingerprint must be provided in order to update the SslPolicy,
41370	// otherwise the request will fail with error 412 conditionNotMet.
41371	//
41372	// To see the latest fingerprint, make a get() request to retrieve an
41373	// SslPolicy.
41374	Fingerprint string `json:"fingerprint,omitempty"`
41375
41376	// Id: [Output Only] The unique identifier for the resource. This
41377	// identifier is defined by the server.
41378	Id uint64 `json:"id,omitempty,string"`
41379
41380	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
41381	// SSL policies.
41382	Kind string `json:"kind,omitempty"`
41383
41384	// MinTlsVersion: The minimum version of SSL protocol that can be used
41385	// by the clients to establish a connection with the load balancer. This
41386	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
41387	//
41388	// Possible values:
41389	//   "TLS_1_0"
41390	//   "TLS_1_1"
41391	//   "TLS_1_2"
41392	MinTlsVersion string `json:"minTlsVersion,omitempty"`
41393
41394	// Name: Name of the resource. The name must be 1-63 characters long,
41395	// and comply with RFC1035. Specifically, the name must be 1-63
41396	// characters long and match the regular expression
41397	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
41398	// a lowercase letter, and all following characters must be a dash,
41399	// lowercase letter, or digit, except the last character, which cannot
41400	// be a dash.
41401	Name string `json:"name,omitempty"`
41402
41403	// Profile: Profile specifies the set of SSL features that can be used
41404	// by the load balancer when negotiating SSL with clients. This can be
41405	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
41406	// the set of SSL features to enable must be specified in the
41407	// customFeatures field.
41408	//
41409	// Possible values:
41410	//   "COMPATIBLE"
41411	//   "CUSTOM"
41412	//   "MODERN"
41413	//   "RESTRICTED"
41414	Profile string `json:"profile,omitempty"`
41415
41416	// SelfLink: [Output Only] Server-defined URL for the resource.
41417	SelfLink string `json:"selfLink,omitempty"`
41418
41419	// Warnings: [Output Only] If potential misconfigurations are detected
41420	// for this SSL policy, this field will be populated with warning
41421	// messages.
41422	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
41423
41424	// ServerResponse contains the HTTP response code and headers from the
41425	// server.
41426	googleapi.ServerResponse `json:"-"`
41427
41428	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41429	// to unconditionally include in API requests. By default, fields with
41430	// empty values are omitted from API requests. However, any non-pointer,
41431	// non-interface field appearing in ForceSendFields will be sent to the
41432	// server regardless of whether the field is empty or not. This may be
41433	// used to include empty fields in Patch requests.
41434	ForceSendFields []string `json:"-"`
41435
41436	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41437	// include in API requests with the JSON null value. By default, fields
41438	// with empty values are omitted from API requests. However, any field
41439	// with an empty value appearing in NullFields will be sent to the
41440	// server as null. It is an error if a field in this list has a
41441	// non-empty value. This may be used to include null fields in Patch
41442	// requests.
41443	NullFields []string `json:"-"`
41444}
41445
41446func (s *SslPolicy) MarshalJSON() ([]byte, error) {
41447	type NoMethod SslPolicy
41448	raw := NoMethod(*s)
41449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41450}
41451
41452type SslPolicyWarnings struct {
41453	// Code: [Output Only] A warning code, if applicable. For example,
41454	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41455	// the response.
41456	//
41457	// Possible values:
41458	//   "CLEANUP_FAILED"
41459	//   "DEPRECATED_RESOURCE_USED"
41460	//   "DEPRECATED_TYPE_USED"
41461	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41462	//   "EXPERIMENTAL_TYPE_USED"
41463	//   "EXTERNAL_API_WARNING"
41464	//   "FIELD_VALUE_OVERRIDEN"
41465	//   "INJECTED_KERNELS_DEPRECATED"
41466	//   "LARGE_DEPLOYMENT_WARNING"
41467	//   "MISSING_TYPE_DEPENDENCY"
41468	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41469	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41470	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41471	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41472	//   "NEXT_HOP_NOT_RUNNING"
41473	//   "NOT_CRITICAL_ERROR"
41474	//   "NO_RESULTS_ON_PAGE"
41475	//   "PARTIAL_SUCCESS"
41476	//   "REQUIRED_TOS_AGREEMENT"
41477	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41478	//   "RESOURCE_NOT_DELETED"
41479	//   "SCHEMA_VALIDATION_IGNORED"
41480	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41481	//   "UNDECLARED_PROPERTIES"
41482	//   "UNREACHABLE"
41483	Code string `json:"code,omitempty"`
41484
41485	// Data: [Output Only] Metadata about this warning in key: value format.
41486	// For example:
41487	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41488	Data []*SslPolicyWarningsData `json:"data,omitempty"`
41489
41490	// Message: [Output Only] A human-readable description of the warning
41491	// code.
41492	Message string `json:"message,omitempty"`
41493
41494	// ForceSendFields is a list of field names (e.g. "Code") to
41495	// unconditionally include in API requests. By default, fields with
41496	// empty values are omitted from API requests. However, any non-pointer,
41497	// non-interface field appearing in ForceSendFields will be sent to the
41498	// server regardless of whether the field is empty or not. This may be
41499	// used to include empty fields in Patch requests.
41500	ForceSendFields []string `json:"-"`
41501
41502	// NullFields is a list of field names (e.g. "Code") to include in API
41503	// requests with the JSON null value. By default, fields with empty
41504	// values are omitted from API requests. However, any field with an
41505	// empty value appearing in NullFields will be sent to the server as
41506	// null. It is an error if a field in this list has a non-empty value.
41507	// This may be used to include null fields in Patch requests.
41508	NullFields []string `json:"-"`
41509}
41510
41511func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
41512	type NoMethod SslPolicyWarnings
41513	raw := NoMethod(*s)
41514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41515}
41516
41517type SslPolicyWarningsData struct {
41518	// Key: [Output Only] A key that provides more detail on the warning
41519	// being returned. For example, for warnings where there are no results
41520	// in a list request for a particular zone, this key might be scope and
41521	// the key value might be the zone name. Other examples might be a key
41522	// indicating a deprecated resource and a suggested replacement, or a
41523	// warning about invalid network settings (for example, if an instance
41524	// attempts to perform IP forwarding but is not enabled for IP
41525	// forwarding).
41526	Key string `json:"key,omitempty"`
41527
41528	// Value: [Output Only] A warning data value corresponding to the key.
41529	Value string `json:"value,omitempty"`
41530
41531	// ForceSendFields is a list of field names (e.g. "Key") to
41532	// unconditionally include in API requests. By default, fields with
41533	// empty values are omitted from API requests. However, any non-pointer,
41534	// non-interface field appearing in ForceSendFields will be sent to the
41535	// server regardless of whether the field is empty or not. This may be
41536	// used to include empty fields in Patch requests.
41537	ForceSendFields []string `json:"-"`
41538
41539	// NullFields is a list of field names (e.g. "Key") to include in API
41540	// requests with the JSON null value. By default, fields with empty
41541	// values are omitted from API requests. However, any field with an
41542	// empty value appearing in NullFields will be sent to the server as
41543	// null. It is an error if a field in this list has a non-empty value.
41544	// This may be used to include null fields in Patch requests.
41545	NullFields []string `json:"-"`
41546}
41547
41548func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
41549	type NoMethod SslPolicyWarningsData
41550	raw := NoMethod(*s)
41551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41552}
41553
41554type SslPolicyReference struct {
41555	// SslPolicy: URL of the SSL policy resource. Set this to empty string
41556	// to clear any existing SSL policy associated with the target proxy
41557	// resource.
41558	SslPolicy string `json:"sslPolicy,omitempty"`
41559
41560	// ForceSendFields is a list of field names (e.g. "SslPolicy") 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. "SslPolicy") to include in
41569	// API 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 *SslPolicyReference) MarshalJSON() ([]byte, error) {
41578	type NoMethod SslPolicyReference
41579	raw := NoMethod(*s)
41580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41581}
41582
41583type StatefulPolicy struct {
41584	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
41585
41586	// ForceSendFields is a list of field names (e.g. "PreservedState") to
41587	// unconditionally include in API requests. By default, fields with
41588	// empty values are omitted from API requests. However, any non-pointer,
41589	// non-interface field appearing in ForceSendFields will be sent to the
41590	// server regardless of whether the field is empty or not. This may be
41591	// used to include empty fields in Patch requests.
41592	ForceSendFields []string `json:"-"`
41593
41594	// NullFields is a list of field names (e.g. "PreservedState") to
41595	// include in API requests with the JSON null value. By default, fields
41596	// with empty values are omitted from API requests. However, any field
41597	// with an empty value appearing in NullFields will be sent to the
41598	// server as null. It is an error if a field in this list has a
41599	// non-empty value. This may be used to include null fields in Patch
41600	// requests.
41601	NullFields []string `json:"-"`
41602}
41603
41604func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
41605	type NoMethod StatefulPolicy
41606	raw := NoMethod(*s)
41607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41608}
41609
41610// StatefulPolicyPreservedState: Configuration of preserved resources.
41611type StatefulPolicyPreservedState struct {
41612	// Disks: Disks created on the instances that will be preserved on
41613	// instance delete, update, etc. This map is keyed with the device names
41614	// of the disks.
41615	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
41616
41617	// ForceSendFields is a list of field names (e.g. "Disks") to
41618	// unconditionally include in API requests. By default, fields with
41619	// empty values are omitted from API requests. However, any non-pointer,
41620	// non-interface field appearing in ForceSendFields will be sent to the
41621	// server regardless of whether the field is empty or not. This may be
41622	// used to include empty fields in Patch requests.
41623	ForceSendFields []string `json:"-"`
41624
41625	// NullFields is a list of field names (e.g. "Disks") to include in API
41626	// requests with the JSON null value. By default, fields with empty
41627	// values are omitted from API requests. However, any field with an
41628	// empty value appearing in NullFields will be sent to the server as
41629	// null. It is an error if a field in this list has a non-empty value.
41630	// This may be used to include null fields in Patch requests.
41631	NullFields []string `json:"-"`
41632}
41633
41634func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
41635	type NoMethod StatefulPolicyPreservedState
41636	raw := NoMethod(*s)
41637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41638}
41639
41640type StatefulPolicyPreservedStateDiskDevice struct {
41641	// AutoDelete: These stateful disks will never be deleted during
41642	// autohealing, update or VM instance recreate operations. This flag is
41643	// used to configure if the disk should be deleted after it is no longer
41644	// used by the group, e.g. when the given instance or the whole group is
41645	// deleted. Note: disks attached in READ_ONLY mode cannot be
41646	// auto-deleted.
41647	//
41648	// Possible values:
41649	//   "NEVER"
41650	//   "ON_PERMANENT_INSTANCE_DELETION"
41651	AutoDelete string `json:"autoDelete,omitempty"`
41652
41653	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
41654	// unconditionally include in API requests. By default, fields with
41655	// empty values are omitted from API requests. However, any non-pointer,
41656	// non-interface field appearing in ForceSendFields will be sent to the
41657	// server regardless of whether the field is empty or not. This may be
41658	// used to include empty fields in Patch requests.
41659	ForceSendFields []string `json:"-"`
41660
41661	// NullFields is a list of field names (e.g. "AutoDelete") to include in
41662	// API requests with the JSON null value. By default, fields with empty
41663	// values are omitted from API requests. However, any field with an
41664	// empty value appearing in NullFields will be sent to the server as
41665	// null. It is an error if a field in this list has a non-empty value.
41666	// This may be used to include null fields in Patch requests.
41667	NullFields []string `json:"-"`
41668}
41669
41670func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
41671	type NoMethod StatefulPolicyPreservedStateDiskDevice
41672	raw := NoMethod(*s)
41673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41674}
41675
41676// Subnetwork: Represents a Subnetwork resource.
41677//
41678// A subnetwork (also known as a subnet) is a logical partition of a
41679// Virtual Private Cloud network with one primary IP range and zero or
41680// more secondary IP ranges. For more information, read  Virtual Private
41681// Cloud (VPC) Network. (== resource_for {$api_version}.subnetworks ==)
41682type Subnetwork struct {
41683	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork can conflict
41684	// with static routes. Setting this to true allows this subnetwork's
41685	// primary and secondary ranges to conflict with routes that have
41686	// already been configured on the corresponding network. Static routes
41687	// will take precedence over the subnetwork route if the route prefix
41688	// length is at least as large as the subnetwork prefix length.
41689	//
41690	// Also, packets destined to IPs within subnetwork may contain
41691	// private/sensitive data and are prevented from leaving the virtual
41692	// network. Setting this field to true will disable this feature.
41693	//
41694	// The default value is false and applies to all existing subnetworks
41695	// and automatically created subnetworks.
41696	//
41697	// This field cannot be set to true at resource creation time.
41698	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
41699
41700	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41701	// format.
41702	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41703
41704	// Description: An optional description of this resource. Provide this
41705	// property when you create the resource. This field can be set only at
41706	// resource creation time.
41707	Description string `json:"description,omitempty"`
41708
41709	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
41710	// If this field is not explicitly set, it will not appear in get
41711	// listings. If not set the default behavior is to disable flow logging.
41712	// This field isn't supported with the purpose field set to
41713	// INTERNAL_HTTPS_LOAD_BALANCER.
41714	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
41715
41716	// ExternalIpv6Prefix: [Output Only] The range of external IPv6
41717	// addresses that are owned by this subnetwork.
41718	ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"`
41719
41720	// Fingerprint: Fingerprint of this resource. A hash of the contents
41721	// stored in this object. This field is used in optimistic locking. This
41722	// field will be ignored when inserting a Subnetwork. An up-to-date
41723	// fingerprint must be provided in order to update the Subnetwork,
41724	// otherwise the request will fail with error 412 conditionNotMet.
41725	//
41726	// To see the latest fingerprint, make a get() request to retrieve a
41727	// Subnetwork.
41728	Fingerprint string `json:"fingerprint,omitempty"`
41729
41730	// GatewayAddress: [Output Only] The gateway address for default routes
41731	// to reach destination addresses outside this subnetwork.
41732	GatewayAddress string `json:"gatewayAddress,omitempty"`
41733
41734	// Id: [Output Only] The unique identifier for the resource. This
41735	// identifier is defined by the server.
41736	Id uint64 `json:"id,omitempty,string"`
41737
41738	// IpCidrRange: The range of internal addresses that are owned by this
41739	// subnetwork. Provide this property when you create the subnetwork. For
41740	// example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and
41741	// non-overlapping within a network. Only IPv4 is supported. This field
41742	// is set at resource creation time. The range can be any range listed
41743	// in the Valid ranges list. The range can be expanded after creation
41744	// using expandIpCidrRange.
41745	IpCidrRange string `json:"ipCidrRange,omitempty"`
41746
41747	// Ipv6AccessType: The access type of IPv6 address this subnet holds.
41748	// It's immutable and can only be specified during creation or the first
41749	// time the subnet is updated into IPV4_IPV6 dual stack. If the
41750	// ipv6_type is EXTERNAL then this subnet cannot enable direct path.
41751	//
41752	// Possible values:
41753	//   "EXTERNAL"
41754	//   "UNSPECIFIED_IPV6_ACCESS_TYPE"
41755	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
41756
41757	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
41758	// that are owned by this subnetwork.
41759	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
41760
41761	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
41762	// for Subnetwork resources.
41763	Kind string `json:"kind,omitempty"`
41764
41765	// LogConfig: This field denotes the VPC flow logging options for this
41766	// subnetwork. If logging is enabled, logs are exported to Cloud
41767	// Logging.
41768	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
41769
41770	// Name: The name of the resource, provided by the client when initially
41771	// creating the resource. The name must be 1-63 characters long, and
41772	// comply with RFC1035. Specifically, the name must be 1-63 characters
41773	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
41774	// which means the first character must be a lowercase letter, and all
41775	// following characters must be a dash, lowercase letter, or digit,
41776	// except the last character, which cannot be a dash.
41777	Name string `json:"name,omitempty"`
41778
41779	// Network: The URL of the network to which this subnetwork belongs,
41780	// provided by the client when initially creating the subnetwork. Only
41781	// networks that are in the distributed mode can have subnetworks. This
41782	// field can be set only at resource creation time.
41783	Network string `json:"network,omitempty"`
41784
41785	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
41786	// Google services without assigned external IP addresses. This field
41787	// can be both set at resource creation time and updated using
41788	// setPrivateIpGoogleAccess.
41789	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
41790
41791	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
41792	// VMs in this subnet. This is an expanded field of
41793	// enablePrivateV6Access. If both fields are set,
41794	// privateIpv6GoogleAccess will take priority.
41795	//
41796	// This field can be both set at resource creation time and updated
41797	// using patch.
41798	//
41799	// Possible values:
41800	//   "DISABLE_GOOGLE_ACCESS"
41801	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
41802	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
41803	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
41804
41805	// Purpose: The purpose of the resource. This field can be either
41806	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
41807	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
41808	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
41809	// unspecified, the purpose defaults to PRIVATE_RFC_1918. The
41810	// enableFlowLogs field isn't supported with the purpose field set to
41811	// INTERNAL_HTTPS_LOAD_BALANCER.
41812	//
41813	// Possible values:
41814	//   "INTERNAL_HTTPS_LOAD_BALANCER"
41815	//   "PRIVATE"
41816	//   "PRIVATE_RFC_1918"
41817	//   "PRIVATE_SERVICE_CONNECT"
41818	//   "REGIONAL_MANAGED_PROXY"
41819	Purpose string `json:"purpose,omitempty"`
41820
41821	// Region: URL of the region where the Subnetwork resides. This field
41822	// can be set only at resource creation time.
41823	Region string `json:"region,omitempty"`
41824
41825	// Role: The role of subnetwork. Currently, this field is only used when
41826	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
41827	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
41828	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
41829	// that is ready to be promoted to ACTIVE or is currently draining. This
41830	// field can be updated with a patch request.
41831	//
41832	// Possible values:
41833	//   "ACTIVE"
41834	//   "BACKUP"
41835	Role string `json:"role,omitempty"`
41836
41837	// SecondaryIpRanges: An array of configurations for secondary IP ranges
41838	// for VM instances contained in this subnetwork. The primary IP of such
41839	// VM must belong to the primary ipCidrRange of the subnetwork. The
41840	// alias IPs may belong to either primary or secondary ranges. This
41841	// field can be updated with a patch request.
41842	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
41843
41844	// SelfLink: [Output Only] Server-defined URL for the resource.
41845	SelfLink string `json:"selfLink,omitempty"`
41846
41847	// StackType: The stack type for this subnet to identify whether the
41848	// IPv6 feature is enabled or not. If not specified IPV4_ONLY will be
41849	// used.
41850	//
41851	// This field can be both set at resource creation time and updated
41852	// using patch.
41853	//
41854	// Possible values:
41855	//   "IPV4_IPV6"
41856	//   "IPV4_ONLY"
41857	//   "UNSPECIFIED_STACK_TYPE"
41858	StackType string `json:"stackType,omitempty"`
41859
41860	// State: [Output Only] The state of the subnetwork, which can be one of
41861	// the following values: READY: Subnetwork is created and ready to use
41862	// DRAINING: only applicable to subnetworks that have the purpose set to
41863	// INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the
41864	// load balancer are being drained. A subnetwork that is draining cannot
41865	// be used or modified until it reaches a status of READY
41866	//
41867	// Possible values:
41868	//   "DRAINING"
41869	//   "READY"
41870	State string `json:"state,omitempty"`
41871
41872	// ServerResponse contains the HTTP response code and headers from the
41873	// server.
41874	googleapi.ServerResponse `json:"-"`
41875
41876	// ForceSendFields is a list of field names (e.g.
41877	// "AllowSubnetCidrRoutesOverlap") to unconditionally include in API
41878	// requests. By default, fields with empty values are omitted from API
41879	// requests. However, any non-pointer, non-interface field appearing in
41880	// ForceSendFields will be sent to the server regardless of whether the
41881	// field is empty or not. This may be used to include empty fields in
41882	// Patch requests.
41883	ForceSendFields []string `json:"-"`
41884
41885	// NullFields is a list of field names (e.g.
41886	// "AllowSubnetCidrRoutesOverlap") to include in API requests with the
41887	// JSON null value. By default, fields with empty values are omitted
41888	// from API requests. However, any field with an empty value appearing
41889	// in NullFields will be sent to the server as null. It is an error if a
41890	// field in this list has a non-empty value. This may be used to include
41891	// null fields in Patch requests.
41892	NullFields []string `json:"-"`
41893}
41894
41895func (s *Subnetwork) MarshalJSON() ([]byte, error) {
41896	type NoMethod Subnetwork
41897	raw := NoMethod(*s)
41898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41899}
41900
41901type SubnetworkAggregatedList struct {
41902	// Id: [Output Only] Unique identifier for the resource; defined by the
41903	// server.
41904	Id string `json:"id,omitempty"`
41905
41906	// Items: A list of SubnetworksScopedList resources.
41907	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
41908
41909	// Kind: [Output Only] Type of resource. Always
41910	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
41911	Kind string `json:"kind,omitempty"`
41912
41913	// NextPageToken: [Output Only] This token allows you to get the next
41914	// page of results for list requests. If the number of results is larger
41915	// than maxResults, use the nextPageToken as a value for the query
41916	// parameter pageToken in the next list request. Subsequent list
41917	// requests will have their own nextPageToken to continue paging through
41918	// the results.
41919	NextPageToken string `json:"nextPageToken,omitempty"`
41920
41921	// SelfLink: [Output Only] Server-defined URL for this resource.
41922	SelfLink string `json:"selfLink,omitempty"`
41923
41924	// Unreachables: [Output Only] Unreachable resources.
41925	Unreachables []string `json:"unreachables,omitempty"`
41926
41927	// Warning: [Output Only] Informational warning message.
41928	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
41929
41930	// ServerResponse contains the HTTP response code and headers from the
41931	// server.
41932	googleapi.ServerResponse `json:"-"`
41933
41934	// ForceSendFields is a list of field names (e.g. "Id") to
41935	// unconditionally include in API requests. By default, fields with
41936	// empty values are omitted from API requests. However, any non-pointer,
41937	// non-interface field appearing in ForceSendFields will be sent to the
41938	// server regardless of whether the field is empty or not. This may be
41939	// used to include empty fields in Patch requests.
41940	ForceSendFields []string `json:"-"`
41941
41942	// NullFields is a list of field names (e.g. "Id") to include in API
41943	// requests with the JSON null value. By default, fields with empty
41944	// values are omitted from API requests. However, any field with an
41945	// empty value appearing in NullFields will be sent to the server as
41946	// null. It is an error if a field in this list has a non-empty value.
41947	// This may be used to include null fields in Patch requests.
41948	NullFields []string `json:"-"`
41949}
41950
41951func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
41952	type NoMethod SubnetworkAggregatedList
41953	raw := NoMethod(*s)
41954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41955}
41956
41957// SubnetworkAggregatedListWarning: [Output Only] Informational warning
41958// message.
41959type SubnetworkAggregatedListWarning struct {
41960	// Code: [Output Only] A warning code, if applicable. For example,
41961	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41962	// the response.
41963	//
41964	// Possible values:
41965	//   "CLEANUP_FAILED"
41966	//   "DEPRECATED_RESOURCE_USED"
41967	//   "DEPRECATED_TYPE_USED"
41968	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41969	//   "EXPERIMENTAL_TYPE_USED"
41970	//   "EXTERNAL_API_WARNING"
41971	//   "FIELD_VALUE_OVERRIDEN"
41972	//   "INJECTED_KERNELS_DEPRECATED"
41973	//   "LARGE_DEPLOYMENT_WARNING"
41974	//   "MISSING_TYPE_DEPENDENCY"
41975	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41976	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41977	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41978	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41979	//   "NEXT_HOP_NOT_RUNNING"
41980	//   "NOT_CRITICAL_ERROR"
41981	//   "NO_RESULTS_ON_PAGE"
41982	//   "PARTIAL_SUCCESS"
41983	//   "REQUIRED_TOS_AGREEMENT"
41984	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41985	//   "RESOURCE_NOT_DELETED"
41986	//   "SCHEMA_VALIDATION_IGNORED"
41987	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41988	//   "UNDECLARED_PROPERTIES"
41989	//   "UNREACHABLE"
41990	Code string `json:"code,omitempty"`
41991
41992	// Data: [Output Only] Metadata about this warning in key: value format.
41993	// For example:
41994	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41995	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
41996
41997	// Message: [Output Only] A human-readable description of the warning
41998	// code.
41999	Message string `json:"message,omitempty"`
42000
42001	// ForceSendFields is a list of field names (e.g. "Code") to
42002	// unconditionally include in API requests. By default, fields with
42003	// empty values are omitted from API requests. However, any non-pointer,
42004	// non-interface field appearing in ForceSendFields will be sent to the
42005	// server regardless of whether the field is empty or not. This may be
42006	// used to include empty fields in Patch requests.
42007	ForceSendFields []string `json:"-"`
42008
42009	// NullFields is a list of field names (e.g. "Code") to include in API
42010	// requests with the JSON null value. By default, fields with empty
42011	// values are omitted from API requests. However, any field with an
42012	// empty value appearing in NullFields will be sent to the server as
42013	// null. It is an error if a field in this list has a non-empty value.
42014	// This may be used to include null fields in Patch requests.
42015	NullFields []string `json:"-"`
42016}
42017
42018func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
42019	type NoMethod SubnetworkAggregatedListWarning
42020	raw := NoMethod(*s)
42021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42022}
42023
42024type SubnetworkAggregatedListWarningData struct {
42025	// Key: [Output Only] A key that provides more detail on the warning
42026	// being returned. For example, for warnings where there are no results
42027	// in a list request for a particular zone, this key might be scope and
42028	// the key value might be the zone name. Other examples might be a key
42029	// indicating a deprecated resource and a suggested replacement, or a
42030	// warning about invalid network settings (for example, if an instance
42031	// attempts to perform IP forwarding but is not enabled for IP
42032	// forwarding).
42033	Key string `json:"key,omitempty"`
42034
42035	// Value: [Output Only] A warning data value corresponding to the key.
42036	Value string `json:"value,omitempty"`
42037
42038	// ForceSendFields is a list of field names (e.g. "Key") to
42039	// unconditionally include in API requests. By default, fields with
42040	// empty values are omitted from API requests. However, any non-pointer,
42041	// non-interface field appearing in ForceSendFields will be sent to the
42042	// server regardless of whether the field is empty or not. This may be
42043	// used to include empty fields in Patch requests.
42044	ForceSendFields []string `json:"-"`
42045
42046	// NullFields is a list of field names (e.g. "Key") to include in API
42047	// requests with the JSON null value. By default, fields with empty
42048	// values are omitted from API requests. However, any field with an
42049	// empty value appearing in NullFields will be sent to the server as
42050	// null. It is an error if a field in this list has a non-empty value.
42051	// This may be used to include null fields in Patch requests.
42052	NullFields []string `json:"-"`
42053}
42054
42055func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42056	type NoMethod SubnetworkAggregatedListWarningData
42057	raw := NoMethod(*s)
42058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42059}
42060
42061// SubnetworkList: Contains a list of Subnetwork resources.
42062type SubnetworkList struct {
42063	// Id: [Output Only] Unique identifier for the resource; defined by the
42064	// server.
42065	Id string `json:"id,omitempty"`
42066
42067	// Items: A list of Subnetwork resources.
42068	Items []*Subnetwork `json:"items,omitempty"`
42069
42070	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
42071	// for lists of subnetworks.
42072	Kind string `json:"kind,omitempty"`
42073
42074	// NextPageToken: [Output Only] This token allows you to get the next
42075	// page of results for list requests. If the number of results is larger
42076	// than maxResults, use the nextPageToken as a value for the query
42077	// parameter pageToken in the next list request. Subsequent list
42078	// requests will have their own nextPageToken to continue paging through
42079	// the results.
42080	NextPageToken string `json:"nextPageToken,omitempty"`
42081
42082	// SelfLink: [Output Only] Server-defined URL for this resource.
42083	SelfLink string `json:"selfLink,omitempty"`
42084
42085	// Warning: [Output Only] Informational warning message.
42086	Warning *SubnetworkListWarning `json:"warning,omitempty"`
42087
42088	// ServerResponse contains the HTTP response code and headers from the
42089	// server.
42090	googleapi.ServerResponse `json:"-"`
42091
42092	// ForceSendFields is a list of field names (e.g. "Id") to
42093	// unconditionally include in API requests. By default, fields with
42094	// empty values are omitted from API requests. However, any non-pointer,
42095	// non-interface field appearing in ForceSendFields will be sent to the
42096	// server regardless of whether the field is empty or not. This may be
42097	// used to include empty fields in Patch requests.
42098	ForceSendFields []string `json:"-"`
42099
42100	// NullFields is a list of field names (e.g. "Id") to include in API
42101	// requests with the JSON null value. By default, fields with empty
42102	// values are omitted from API requests. However, any field with an
42103	// empty value appearing in NullFields will be sent to the server as
42104	// null. It is an error if a field in this list has a non-empty value.
42105	// This may be used to include null fields in Patch requests.
42106	NullFields []string `json:"-"`
42107}
42108
42109func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
42110	type NoMethod SubnetworkList
42111	raw := NoMethod(*s)
42112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42113}
42114
42115// SubnetworkListWarning: [Output Only] Informational warning message.
42116type SubnetworkListWarning struct {
42117	// Code: [Output Only] A warning code, if applicable. For example,
42118	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42119	// the response.
42120	//
42121	// Possible values:
42122	//   "CLEANUP_FAILED"
42123	//   "DEPRECATED_RESOURCE_USED"
42124	//   "DEPRECATED_TYPE_USED"
42125	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42126	//   "EXPERIMENTAL_TYPE_USED"
42127	//   "EXTERNAL_API_WARNING"
42128	//   "FIELD_VALUE_OVERRIDEN"
42129	//   "INJECTED_KERNELS_DEPRECATED"
42130	//   "LARGE_DEPLOYMENT_WARNING"
42131	//   "MISSING_TYPE_DEPENDENCY"
42132	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42133	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42134	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42135	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42136	//   "NEXT_HOP_NOT_RUNNING"
42137	//   "NOT_CRITICAL_ERROR"
42138	//   "NO_RESULTS_ON_PAGE"
42139	//   "PARTIAL_SUCCESS"
42140	//   "REQUIRED_TOS_AGREEMENT"
42141	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42142	//   "RESOURCE_NOT_DELETED"
42143	//   "SCHEMA_VALIDATION_IGNORED"
42144	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42145	//   "UNDECLARED_PROPERTIES"
42146	//   "UNREACHABLE"
42147	Code string `json:"code,omitempty"`
42148
42149	// Data: [Output Only] Metadata about this warning in key: value format.
42150	// For example:
42151	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42152	Data []*SubnetworkListWarningData `json:"data,omitempty"`
42153
42154	// Message: [Output Only] A human-readable description of the warning
42155	// code.
42156	Message string `json:"message,omitempty"`
42157
42158	// ForceSendFields is a list of field names (e.g. "Code") to
42159	// unconditionally include in API requests. By default, fields with
42160	// empty values are omitted from API requests. However, any non-pointer,
42161	// non-interface field appearing in ForceSendFields will be sent to the
42162	// server regardless of whether the field is empty or not. This may be
42163	// used to include empty fields in Patch requests.
42164	ForceSendFields []string `json:"-"`
42165
42166	// NullFields is a list of field names (e.g. "Code") to include in API
42167	// requests with the JSON null value. By default, fields with empty
42168	// values are omitted from API requests. However, any field with an
42169	// empty value appearing in NullFields will be sent to the server as
42170	// null. It is an error if a field in this list has a non-empty value.
42171	// This may be used to include null fields in Patch requests.
42172	NullFields []string `json:"-"`
42173}
42174
42175func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
42176	type NoMethod SubnetworkListWarning
42177	raw := NoMethod(*s)
42178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42179}
42180
42181type SubnetworkListWarningData struct {
42182	// Key: [Output Only] A key that provides more detail on the warning
42183	// being returned. For example, for warnings where there are no results
42184	// in a list request for a particular zone, this key might be scope and
42185	// the key value might be the zone name. Other examples might be a key
42186	// indicating a deprecated resource and a suggested replacement, or a
42187	// warning about invalid network settings (for example, if an instance
42188	// attempts to perform IP forwarding but is not enabled for IP
42189	// forwarding).
42190	Key string `json:"key,omitempty"`
42191
42192	// Value: [Output Only] A warning data value corresponding to the key.
42193	Value string `json:"value,omitempty"`
42194
42195	// ForceSendFields is a list of field names (e.g. "Key") to
42196	// unconditionally include in API requests. By default, fields with
42197	// empty values are omitted from API requests. However, any non-pointer,
42198	// non-interface field appearing in ForceSendFields will be sent to the
42199	// server regardless of whether the field is empty or not. This may be
42200	// used to include empty fields in Patch requests.
42201	ForceSendFields []string `json:"-"`
42202
42203	// NullFields is a list of field names (e.g. "Key") to include in API
42204	// requests with the JSON null value. By default, fields with empty
42205	// values are omitted from API requests. However, any field with an
42206	// empty value appearing in NullFields will be sent to the server as
42207	// null. It is an error if a field in this list has a non-empty value.
42208	// This may be used to include null fields in Patch requests.
42209	NullFields []string `json:"-"`
42210}
42211
42212func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
42213	type NoMethod SubnetworkListWarningData
42214	raw := NoMethod(*s)
42215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42216}
42217
42218// SubnetworkLogConfig: The available logging options for this
42219// subnetwork.
42220type SubnetworkLogConfig struct {
42221	// AggregationInterval: Can only be specified if VPC flow logging for
42222	// this subnetwork is enabled. Toggles the aggregation interval for
42223	// collecting flow logs. Increasing the interval time will reduce the
42224	// amount of generated flow logs for long lasting connections. Default
42225	// is an interval of 5 seconds per connection.
42226	//
42227	// Possible values:
42228	//   "INTERVAL_10_MIN"
42229	//   "INTERVAL_15_MIN"
42230	//   "INTERVAL_1_MIN"
42231	//   "INTERVAL_30_SEC"
42232	//   "INTERVAL_5_MIN"
42233	//   "INTERVAL_5_SEC"
42234	AggregationInterval string `json:"aggregationInterval,omitempty"`
42235
42236	// Enable: Whether to enable flow logging for this subnetwork. If this
42237	// field is not explicitly set, it will not appear in get listings. If
42238	// not set the default behavior is to disable flow logging.
42239	Enable bool `json:"enable,omitempty"`
42240
42241	// FilterExpr: Can only be specified if VPC flow logs for this
42242	// subnetwork is enabled. Export filter used to define which VPC flow
42243	// logs should be logged.
42244	FilterExpr string `json:"filterExpr,omitempty"`
42245
42246	// FlowSampling: Can only be specified if VPC flow logging for this
42247	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
42248	// the sampling rate of VPC flow logs within the subnetwork where 1.0
42249	// means all collected logs are reported and 0.0 means no logs are
42250	// reported. Default is 0.5, which means half of all collected logs are
42251	// reported.
42252	FlowSampling float64 `json:"flowSampling,omitempty"`
42253
42254	// Metadata: Can only be specified if VPC flow logs for this subnetwork
42255	// is enabled. Configures whether all, none or a subset of metadata
42256	// fields should be added to the reported VPC flow logs. Default is
42257	// EXCLUDE_ALL_METADATA.
42258	//
42259	// Possible values:
42260	//   "CUSTOM_METADATA"
42261	//   "EXCLUDE_ALL_METADATA"
42262	//   "INCLUDE_ALL_METADATA"
42263	Metadata string `json:"metadata,omitempty"`
42264
42265	// MetadataFields: Can only be specified if VPC flow logs for this
42266	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
42267	MetadataFields []string `json:"metadataFields,omitempty"`
42268
42269	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
42270	// to unconditionally include in API requests. By default, fields with
42271	// empty values are omitted from API requests. However, any non-pointer,
42272	// non-interface field appearing in ForceSendFields will be sent to the
42273	// server regardless of whether the field is empty or not. This may be
42274	// used to include empty fields in Patch requests.
42275	ForceSendFields []string `json:"-"`
42276
42277	// NullFields is a list of field names (e.g. "AggregationInterval") to
42278	// include in API requests with the JSON null value. By default, fields
42279	// with empty values are omitted from API requests. However, any field
42280	// with an empty value appearing in NullFields will be sent to the
42281	// server as null. It is an error if a field in this list has a
42282	// non-empty value. This may be used to include null fields in Patch
42283	// requests.
42284	NullFields []string `json:"-"`
42285}
42286
42287func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
42288	type NoMethod SubnetworkLogConfig
42289	raw := NoMethod(*s)
42290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42291}
42292
42293func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
42294	type NoMethod SubnetworkLogConfig
42295	var s1 struct {
42296		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
42297		*NoMethod
42298	}
42299	s1.NoMethod = (*NoMethod)(s)
42300	if err := json.Unmarshal(data, &s1); err != nil {
42301		return err
42302	}
42303	s.FlowSampling = float64(s1.FlowSampling)
42304	return nil
42305}
42306
42307// SubnetworkSecondaryRange: Represents a secondary IP range of a
42308// subnetwork.
42309type SubnetworkSecondaryRange struct {
42310	// IpCidrRange: The range of IP addresses belonging to this subnetwork
42311	// secondary range. Provide this property when you create the
42312	// subnetwork. Ranges must be unique and non-overlapping with all
42313	// primary and secondary IP ranges within a network. Only IPv4 is
42314	// supported. The range can be any range listed in the Valid ranges
42315	// list.
42316	IpCidrRange string `json:"ipCidrRange,omitempty"`
42317
42318	// RangeName: The name associated with this subnetwork secondary range,
42319	// used when adding an alias IP range to a VM instance. The name must be
42320	// 1-63 characters long, and comply with RFC1035. The name must be
42321	// unique within the subnetwork.
42322	RangeName string `json:"rangeName,omitempty"`
42323
42324	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
42325	// unconditionally include in API requests. By default, fields with
42326	// empty values are omitted from API requests. However, any non-pointer,
42327	// non-interface field appearing in ForceSendFields will be sent to the
42328	// server regardless of whether the field is empty or not. This may be
42329	// used to include empty fields in Patch requests.
42330	ForceSendFields []string `json:"-"`
42331
42332	// NullFields is a list of field names (e.g. "IpCidrRange") to include
42333	// in API requests with the JSON null value. By default, fields with
42334	// empty values are omitted from API requests. However, any field with
42335	// an empty value appearing in NullFields will be sent to the server as
42336	// null. It is an error if a field in this list has a non-empty value.
42337	// This may be used to include null fields in Patch requests.
42338	NullFields []string `json:"-"`
42339}
42340
42341func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
42342	type NoMethod SubnetworkSecondaryRange
42343	raw := NoMethod(*s)
42344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42345}
42346
42347type SubnetworksExpandIpCidrRangeRequest struct {
42348	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
42349	// that are legal on this Subnetwork. This range should be disjoint from
42350	// other subnetworks within this network. This range can only be larger
42351	// than (i.e. a superset of) the range previously defined before the
42352	// update.
42353	IpCidrRange string `json:"ipCidrRange,omitempty"`
42354
42355	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
42356	// unconditionally include in API requests. By default, fields with
42357	// empty values are omitted from API requests. However, any non-pointer,
42358	// non-interface field appearing in ForceSendFields will be sent to the
42359	// server regardless of whether the field is empty or not. This may be
42360	// used to include empty fields in Patch requests.
42361	ForceSendFields []string `json:"-"`
42362
42363	// NullFields is a list of field names (e.g. "IpCidrRange") to include
42364	// in API requests with the JSON null value. By default, fields with
42365	// empty values are omitted from API requests. However, any field with
42366	// an empty value appearing in NullFields will be sent to the server as
42367	// null. It is an error if a field in this list has a non-empty value.
42368	// This may be used to include null fields in Patch requests.
42369	NullFields []string `json:"-"`
42370}
42371
42372func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
42373	type NoMethod SubnetworksExpandIpCidrRangeRequest
42374	raw := NoMethod(*s)
42375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42376}
42377
42378type SubnetworksScopedList struct {
42379	// Subnetworks: A list of subnetworks contained in this scope.
42380	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
42381
42382	// Warning: An informational warning that appears when the list of
42383	// addresses is empty.
42384	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
42385
42386	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
42387	// unconditionally include in API requests. By default, fields with
42388	// empty values are omitted from API requests. However, any non-pointer,
42389	// non-interface field appearing in ForceSendFields will be sent to the
42390	// server regardless of whether the field is empty or not. This may be
42391	// used to include empty fields in Patch requests.
42392	ForceSendFields []string `json:"-"`
42393
42394	// NullFields is a list of field names (e.g. "Subnetworks") to include
42395	// in API requests with the JSON null value. By default, fields with
42396	// empty values are omitted from API requests. However, any field with
42397	// an empty value appearing in NullFields will be sent to the server as
42398	// null. It is an error if a field in this list has a non-empty value.
42399	// This may be used to include null fields in Patch requests.
42400	NullFields []string `json:"-"`
42401}
42402
42403func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
42404	type NoMethod SubnetworksScopedList
42405	raw := NoMethod(*s)
42406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42407}
42408
42409// SubnetworksScopedListWarning: An informational warning that appears
42410// when the list of addresses is empty.
42411type SubnetworksScopedListWarning struct {
42412	// Code: [Output Only] A warning code, if applicable. For example,
42413	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42414	// the response.
42415	//
42416	// Possible values:
42417	//   "CLEANUP_FAILED"
42418	//   "DEPRECATED_RESOURCE_USED"
42419	//   "DEPRECATED_TYPE_USED"
42420	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42421	//   "EXPERIMENTAL_TYPE_USED"
42422	//   "EXTERNAL_API_WARNING"
42423	//   "FIELD_VALUE_OVERRIDEN"
42424	//   "INJECTED_KERNELS_DEPRECATED"
42425	//   "LARGE_DEPLOYMENT_WARNING"
42426	//   "MISSING_TYPE_DEPENDENCY"
42427	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42428	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42429	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42430	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42431	//   "NEXT_HOP_NOT_RUNNING"
42432	//   "NOT_CRITICAL_ERROR"
42433	//   "NO_RESULTS_ON_PAGE"
42434	//   "PARTIAL_SUCCESS"
42435	//   "REQUIRED_TOS_AGREEMENT"
42436	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42437	//   "RESOURCE_NOT_DELETED"
42438	//   "SCHEMA_VALIDATION_IGNORED"
42439	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42440	//   "UNDECLARED_PROPERTIES"
42441	//   "UNREACHABLE"
42442	Code string `json:"code,omitempty"`
42443
42444	// Data: [Output Only] Metadata about this warning in key: value format.
42445	// For example:
42446	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42447	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
42448
42449	// Message: [Output Only] A human-readable description of the warning
42450	// code.
42451	Message string `json:"message,omitempty"`
42452
42453	// ForceSendFields is a list of field names (e.g. "Code") to
42454	// unconditionally include in API requests. By default, fields with
42455	// empty values are omitted from API requests. However, any non-pointer,
42456	// non-interface field appearing in ForceSendFields will be sent to the
42457	// server regardless of whether the field is empty or not. This may be
42458	// used to include empty fields in Patch requests.
42459	ForceSendFields []string `json:"-"`
42460
42461	// NullFields is a list of field names (e.g. "Code") to include in API
42462	// requests with the JSON null value. By default, fields with empty
42463	// values are omitted from API requests. However, any field with an
42464	// empty value appearing in NullFields will be sent to the server as
42465	// null. It is an error if a field in this list has a non-empty value.
42466	// This may be used to include null fields in Patch requests.
42467	NullFields []string `json:"-"`
42468}
42469
42470func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
42471	type NoMethod SubnetworksScopedListWarning
42472	raw := NoMethod(*s)
42473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42474}
42475
42476type SubnetworksScopedListWarningData struct {
42477	// Key: [Output Only] A key that provides more detail on the warning
42478	// being returned. For example, for warnings where there are no results
42479	// in a list request for a particular zone, this key might be scope and
42480	// the key value might be the zone name. Other examples might be a key
42481	// indicating a deprecated resource and a suggested replacement, or a
42482	// warning about invalid network settings (for example, if an instance
42483	// attempts to perform IP forwarding but is not enabled for IP
42484	// forwarding).
42485	Key string `json:"key,omitempty"`
42486
42487	// Value: [Output Only] A warning data value corresponding to the key.
42488	Value string `json:"value,omitempty"`
42489
42490	// ForceSendFields is a list of field names (e.g. "Key") to
42491	// unconditionally include in API requests. By default, fields with
42492	// empty values are omitted from API requests. However, any non-pointer,
42493	// non-interface field appearing in ForceSendFields will be sent to the
42494	// server regardless of whether the field is empty or not. This may be
42495	// used to include empty fields in Patch requests.
42496	ForceSendFields []string `json:"-"`
42497
42498	// NullFields is a list of field names (e.g. "Key") to include in API
42499	// requests with the JSON null value. By default, fields with empty
42500	// values are omitted from API requests. However, any field with an
42501	// empty value appearing in NullFields will be sent to the server as
42502	// null. It is an error if a field in this list has a non-empty value.
42503	// This may be used to include null fields in Patch requests.
42504	NullFields []string `json:"-"`
42505}
42506
42507func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
42508	type NoMethod SubnetworksScopedListWarningData
42509	raw := NoMethod(*s)
42510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42511}
42512
42513type SubnetworksSetPrivateIpGoogleAccessRequest struct {
42514	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
42515
42516	// ForceSendFields is a list of field names (e.g.
42517	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
42518	// By default, fields with empty values are omitted from API requests.
42519	// However, any non-pointer, non-interface field appearing in
42520	// ForceSendFields will be sent to the server regardless of whether the
42521	// field is empty or not. This may be used to include empty fields in
42522	// Patch requests.
42523	ForceSendFields []string `json:"-"`
42524
42525	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
42526	// include in API requests with the JSON null value. By default, fields
42527	// with empty values are omitted from API requests. However, any field
42528	// with an empty value appearing in NullFields will be sent to the
42529	// server as null. It is an error if a field in this list has a
42530	// non-empty value. This may be used to include null fields in Patch
42531	// requests.
42532	NullFields []string `json:"-"`
42533}
42534
42535func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
42536	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
42537	raw := NoMethod(*s)
42538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42539}
42540
42541// Subsetting: Subsetting configuration for this BackendService.
42542// Currently this is applicable only for Internal TCP/UDP load
42543// balancing, Internal HTTP(S) load balancing and Traffic Director.
42544type Subsetting struct {
42545	// Possible values:
42546	//   "CONSISTENT_HASH_SUBSETTING"
42547	//   "NONE"
42548	Policy string `json:"policy,omitempty"`
42549
42550	// ForceSendFields is a list of field names (e.g. "Policy") to
42551	// unconditionally include in API requests. By default, fields with
42552	// empty values are omitted from API requests. However, any non-pointer,
42553	// non-interface field appearing in ForceSendFields will be sent to the
42554	// server regardless of whether the field is empty or not. This may be
42555	// used to include empty fields in Patch requests.
42556	ForceSendFields []string `json:"-"`
42557
42558	// NullFields is a list of field names (e.g. "Policy") to include in API
42559	// requests with the JSON null value. By default, fields with empty
42560	// values are omitted from API requests. However, any field with an
42561	// empty value appearing in NullFields will be sent to the server as
42562	// null. It is an error if a field in this list has a non-empty value.
42563	// This may be used to include null fields in Patch requests.
42564	NullFields []string `json:"-"`
42565}
42566
42567func (s *Subsetting) MarshalJSON() ([]byte, error) {
42568	type NoMethod Subsetting
42569	raw := NoMethod(*s)
42570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42571}
42572
42573type TCPHealthCheck struct {
42574	// Port: The TCP port number for the health check request. The default
42575	// value is 80. Valid values are 1 through 65535.
42576	Port int64 `json:"port,omitempty"`
42577
42578	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
42579	// both port and port_name are defined, port takes precedence.
42580	PortName string `json:"portName,omitempty"`
42581
42582	// PortSpecification: Specifies how port is selected for health
42583	// checking, can be one of following values:
42584	// USE_FIXED_PORT: The port number in port is used for health
42585	// checking.
42586	// USE_NAMED_PORT: The portName is used for health
42587	// checking.
42588	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
42589	// each network endpoint is used for health checking. For other
42590	// backends, the port or named port specified in the Backend Service is
42591	// used for health checking.
42592	//
42593	//
42594	// If not specified, TCP health check follows behavior specified in port
42595	// and portName fields.
42596	//
42597	// Possible values:
42598	//   "USE_FIXED_PORT"
42599	//   "USE_NAMED_PORT"
42600	//   "USE_SERVING_PORT"
42601	PortSpecification string `json:"portSpecification,omitempty"`
42602
42603	// ProxyHeader: Specifies the type of proxy header to append before
42604	// sending data to the backend, either NONE or PROXY_V1. The default is
42605	// NONE.
42606	//
42607	// Possible values:
42608	//   "NONE"
42609	//   "PROXY_V1"
42610	ProxyHeader string `json:"proxyHeader,omitempty"`
42611
42612	// Request: The application data to send once the TCP connection has
42613	// been established (default value is empty). If both request and
42614	// response are empty, the connection establishment alone will indicate
42615	// health. The request data can only be ASCII.
42616	Request string `json:"request,omitempty"`
42617
42618	// Response: The bytes to match against the beginning of the response
42619	// data. If left empty (the default value), any response will indicate
42620	// health. The response data can only be ASCII.
42621	Response string `json:"response,omitempty"`
42622
42623	// ForceSendFields is a list of field names (e.g. "Port") to
42624	// unconditionally include in API requests. By default, fields with
42625	// empty values are omitted from API requests. However, any non-pointer,
42626	// non-interface field appearing in ForceSendFields will be sent to the
42627	// server regardless of whether the field is empty or not. This may be
42628	// used to include empty fields in Patch requests.
42629	ForceSendFields []string `json:"-"`
42630
42631	// NullFields is a list of field names (e.g. "Port") to include in API
42632	// requests with the JSON null value. By default, fields with empty
42633	// values are omitted from API requests. However, any field with an
42634	// empty value appearing in NullFields will be sent to the server as
42635	// null. It is an error if a field in this list has a non-empty value.
42636	// This may be used to include null fields in Patch requests.
42637	NullFields []string `json:"-"`
42638}
42639
42640func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
42641	type NoMethod TCPHealthCheck
42642	raw := NoMethod(*s)
42643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42644}
42645
42646// Tags: A set of instance tags.
42647type Tags struct {
42648	// Fingerprint: Specifies a fingerprint for this request, which is
42649	// essentially a hash of the tags' contents and used for optimistic
42650	// locking. The fingerprint is initially generated by Compute Engine and
42651	// changes after every request to modify or update tags. You must always
42652	// provide an up-to-date fingerprint hash in order to update or change
42653	// tags.
42654	//
42655	// To see the latest fingerprint, make get() request to the instance.
42656	Fingerprint string `json:"fingerprint,omitempty"`
42657
42658	// Items: An array of tags. Each tag must be 1-63 characters long, and
42659	// comply with RFC1035.
42660	Items []string `json:"items,omitempty"`
42661
42662	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
42663	// unconditionally include in API requests. By default, fields with
42664	// empty values are omitted from API requests. However, any non-pointer,
42665	// non-interface field appearing in ForceSendFields will be sent to the
42666	// server regardless of whether the field is empty or not. This may be
42667	// used to include empty fields in Patch requests.
42668	ForceSendFields []string `json:"-"`
42669
42670	// NullFields is a list of field names (e.g. "Fingerprint") to include
42671	// in API requests with the JSON null value. By default, fields with
42672	// empty values are omitted from API requests. However, any field with
42673	// an empty value appearing in NullFields will be sent to the server as
42674	// null. It is an error if a field in this list has a non-empty value.
42675	// This may be used to include null fields in Patch requests.
42676	NullFields []string `json:"-"`
42677}
42678
42679func (s *Tags) MarshalJSON() ([]byte, error) {
42680	type NoMethod Tags
42681	raw := NoMethod(*s)
42682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42683}
42684
42685// TargetGrpcProxy: Represents a Target gRPC Proxy resource.
42686//
42687// A target gRPC proxy is a component of load balancers intended for
42688// load balancing gRPC traffic. Only global forwarding rules with load
42689// balancing scheme INTERNAL_SELF_MANAGED can reference a target gRPC
42690// proxy. The target gRPC Proxy references a URL map that specifies how
42691// traffic is routed to gRPC backend services. (== resource_for
42692// {$api_version}.targetGrpcProxies ==)
42693type TargetGrpcProxy struct {
42694	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42695	// format.
42696	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42697
42698	// Description: An optional description of this resource. Provide this
42699	// property when you create the resource.
42700	Description string `json:"description,omitempty"`
42701
42702	// Fingerprint: Fingerprint of this resource. A hash of the contents
42703	// stored in this object. This field is used in optimistic locking. This
42704	// field will be ignored when inserting a TargetGrpcProxy. An up-to-date
42705	// fingerprint must be provided in order to patch/update the
42706	// TargetGrpcProxy; otherwise, the request will fail with error 412
42707	// conditionNotMet. To see the latest fingerprint, make a get() request
42708	// to retrieve the TargetGrpcProxy.
42709	Fingerprint string `json:"fingerprint,omitempty"`
42710
42711	// Id: [Output Only] The unique identifier for the resource type. The
42712	// server generates this identifier.
42713	Id uint64 `json:"id,omitempty,string"`
42714
42715	// Kind: [Output Only] Type of the resource. Always
42716	// compute#targetGrpcProxy for target grpc proxies.
42717	Kind string `json:"kind,omitempty"`
42718
42719	// Name: Name of the resource. Provided by the client when the resource
42720	// is created. The name must be 1-63 characters long, and comply with
42721	// RFC1035. Specifically, the name must be 1-63 characters long and
42722	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42723	// the first character must be a lowercase letter, and all following
42724	// characters must be a dash, lowercase letter, or digit, except the
42725	// last character, which cannot be a dash.
42726	Name string `json:"name,omitempty"`
42727
42728	// SelfLink: [Output Only] Server-defined URL for the resource.
42729	SelfLink string `json:"selfLink,omitempty"`
42730
42731	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
42732	// resource.
42733	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
42734
42735	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
42736	// to the BackendService. The protocol field in the BackendService must
42737	// be set to GRPC.
42738	UrlMap string `json:"urlMap,omitempty"`
42739
42740	// ValidateForProxyless: If true, indicates that the BackendServices
42741	// referenced by the urlMap may be accessed by gRPC applications without
42742	// using a sidecar proxy. This will enable configuration checks on
42743	// urlMap and its referenced BackendServices to not allow unsupported
42744	// features. A gRPC application must use "xds:///" scheme in the target
42745	// URI of the service it is connecting to. If false, indicates that the
42746	// BackendServices referenced by the urlMap will be accessed by gRPC
42747	// applications via a sidecar proxy. In this case, a gRPC application
42748	// must not use "xds:///" scheme in the target URI of the service it is
42749	// connecting to
42750	ValidateForProxyless bool `json:"validateForProxyless,omitempty"`
42751
42752	// ServerResponse contains the HTTP response code and headers from the
42753	// server.
42754	googleapi.ServerResponse `json:"-"`
42755
42756	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42757	// to unconditionally include in API requests. By default, fields with
42758	// empty values are omitted from API requests. However, any non-pointer,
42759	// non-interface field appearing in ForceSendFields will be sent to the
42760	// server regardless of whether the field is empty or not. This may be
42761	// used to include empty fields in Patch requests.
42762	ForceSendFields []string `json:"-"`
42763
42764	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42765	// include in API requests with the JSON null value. By default, fields
42766	// with empty values are omitted from API requests. However, any field
42767	// with an empty value appearing in NullFields will be sent to the
42768	// server as null. It is an error if a field in this list has a
42769	// non-empty value. This may be used to include null fields in Patch
42770	// requests.
42771	NullFields []string `json:"-"`
42772}
42773
42774func (s *TargetGrpcProxy) MarshalJSON() ([]byte, error) {
42775	type NoMethod TargetGrpcProxy
42776	raw := NoMethod(*s)
42777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42778}
42779
42780type TargetGrpcProxyList struct {
42781	// Id: [Output Only] Unique identifier for the resource; defined by the
42782	// server.
42783	Id string `json:"id,omitempty"`
42784
42785	// Items: A list of TargetGrpcProxy resources.
42786	Items []*TargetGrpcProxy `json:"items,omitempty"`
42787
42788	// Kind: [Output Only] Type of the resource. Always
42789	// compute#targetGrpcProxy for target grpc proxies.
42790	Kind string `json:"kind,omitempty"`
42791
42792	// NextPageToken: [Output Only] This token allows you to get the next
42793	// page of results for list requests. If the number of results is larger
42794	// than maxResults, use the nextPageToken as a value for the query
42795	// parameter pageToken in the next list request. Subsequent list
42796	// requests will have their own nextPageToken to continue paging through
42797	// the results.
42798	NextPageToken string `json:"nextPageToken,omitempty"`
42799
42800	// SelfLink: [Output Only] Server-defined URL for this resource.
42801	SelfLink string `json:"selfLink,omitempty"`
42802
42803	// Warning: [Output Only] Informational warning message.
42804	Warning *TargetGrpcProxyListWarning `json:"warning,omitempty"`
42805
42806	// ServerResponse contains the HTTP response code and headers from the
42807	// server.
42808	googleapi.ServerResponse `json:"-"`
42809
42810	// ForceSendFields is a list of field names (e.g. "Id") to
42811	// unconditionally include in API requests. By default, fields with
42812	// empty values are omitted from API requests. However, any non-pointer,
42813	// non-interface field appearing in ForceSendFields will be sent to the
42814	// server regardless of whether the field is empty or not. This may be
42815	// used to include empty fields in Patch requests.
42816	ForceSendFields []string `json:"-"`
42817
42818	// NullFields is a list of field names (e.g. "Id") to include in API
42819	// requests with the JSON null value. By default, fields with empty
42820	// values are omitted from API requests. However, any field with an
42821	// empty value appearing in NullFields will be sent to the server as
42822	// null. It is an error if a field in this list has a non-empty value.
42823	// This may be used to include null fields in Patch requests.
42824	NullFields []string `json:"-"`
42825}
42826
42827func (s *TargetGrpcProxyList) MarshalJSON() ([]byte, error) {
42828	type NoMethod TargetGrpcProxyList
42829	raw := NoMethod(*s)
42830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42831}
42832
42833// TargetGrpcProxyListWarning: [Output Only] Informational warning
42834// message.
42835type TargetGrpcProxyListWarning struct {
42836	// Code: [Output Only] A warning code, if applicable. For example,
42837	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42838	// the response.
42839	//
42840	// Possible values:
42841	//   "CLEANUP_FAILED"
42842	//   "DEPRECATED_RESOURCE_USED"
42843	//   "DEPRECATED_TYPE_USED"
42844	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42845	//   "EXPERIMENTAL_TYPE_USED"
42846	//   "EXTERNAL_API_WARNING"
42847	//   "FIELD_VALUE_OVERRIDEN"
42848	//   "INJECTED_KERNELS_DEPRECATED"
42849	//   "LARGE_DEPLOYMENT_WARNING"
42850	//   "MISSING_TYPE_DEPENDENCY"
42851	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42852	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42853	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42854	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42855	//   "NEXT_HOP_NOT_RUNNING"
42856	//   "NOT_CRITICAL_ERROR"
42857	//   "NO_RESULTS_ON_PAGE"
42858	//   "PARTIAL_SUCCESS"
42859	//   "REQUIRED_TOS_AGREEMENT"
42860	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42861	//   "RESOURCE_NOT_DELETED"
42862	//   "SCHEMA_VALIDATION_IGNORED"
42863	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42864	//   "UNDECLARED_PROPERTIES"
42865	//   "UNREACHABLE"
42866	Code string `json:"code,omitempty"`
42867
42868	// Data: [Output Only] Metadata about this warning in key: value format.
42869	// For example:
42870	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42871	Data []*TargetGrpcProxyListWarningData `json:"data,omitempty"`
42872
42873	// Message: [Output Only] A human-readable description of the warning
42874	// code.
42875	Message string `json:"message,omitempty"`
42876
42877	// ForceSendFields is a list of field names (e.g. "Code") to
42878	// unconditionally include in API requests. By default, fields with
42879	// empty values are omitted from API requests. However, any non-pointer,
42880	// non-interface field appearing in ForceSendFields will be sent to the
42881	// server regardless of whether the field is empty or not. This may be
42882	// used to include empty fields in Patch requests.
42883	ForceSendFields []string `json:"-"`
42884
42885	// NullFields is a list of field names (e.g. "Code") to include in API
42886	// requests with the JSON null value. By default, fields with empty
42887	// values are omitted from API requests. However, any field with an
42888	// empty value appearing in NullFields will be sent to the server as
42889	// null. It is an error if a field in this list has a non-empty value.
42890	// This may be used to include null fields in Patch requests.
42891	NullFields []string `json:"-"`
42892}
42893
42894func (s *TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) {
42895	type NoMethod TargetGrpcProxyListWarning
42896	raw := NoMethod(*s)
42897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42898}
42899
42900type TargetGrpcProxyListWarningData struct {
42901	// Key: [Output Only] A key that provides more detail on the warning
42902	// being returned. For example, for warnings where there are no results
42903	// in a list request for a particular zone, this key might be scope and
42904	// the key value might be the zone name. Other examples might be a key
42905	// indicating a deprecated resource and a suggested replacement, or a
42906	// warning about invalid network settings (for example, if an instance
42907	// attempts to perform IP forwarding but is not enabled for IP
42908	// forwarding).
42909	Key string `json:"key,omitempty"`
42910
42911	// Value: [Output Only] A warning data value corresponding to the key.
42912	Value string `json:"value,omitempty"`
42913
42914	// ForceSendFields is a list of field names (e.g. "Key") to
42915	// unconditionally include in API requests. By default, fields with
42916	// empty values are omitted from API requests. However, any non-pointer,
42917	// non-interface field appearing in ForceSendFields will be sent to the
42918	// server regardless of whether the field is empty or not. This may be
42919	// used to include empty fields in Patch requests.
42920	ForceSendFields []string `json:"-"`
42921
42922	// NullFields is a list of field names (e.g. "Key") to include in API
42923	// requests with the JSON null value. By default, fields with empty
42924	// values are omitted from API requests. However, any field with an
42925	// empty value appearing in NullFields will be sent to the server as
42926	// null. It is an error if a field in this list has a non-empty value.
42927	// This may be used to include null fields in Patch requests.
42928	NullFields []string `json:"-"`
42929}
42930
42931func (s *TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) {
42932	type NoMethod TargetGrpcProxyListWarningData
42933	raw := NoMethod(*s)
42934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42935}
42936
42937type TargetHttpProxiesScopedList struct {
42938	// TargetHttpProxies: A list of TargetHttpProxies contained in this
42939	// scope.
42940	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
42941
42942	// Warning: Informational warning which replaces the list of backend
42943	// services when the list is empty.
42944	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
42945
42946	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
42947	// to unconditionally include in API requests. By default, fields with
42948	// empty values are omitted from API requests. However, any non-pointer,
42949	// non-interface field appearing in ForceSendFields will be sent to the
42950	// server regardless of whether the field is empty or not. This may be
42951	// used to include empty fields in Patch requests.
42952	ForceSendFields []string `json:"-"`
42953
42954	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
42955	// include in API requests with the JSON null value. By default, fields
42956	// with empty values are omitted from API requests. However, any field
42957	// with an empty value appearing in NullFields will be sent to the
42958	// server as null. It is an error if a field in this list has a
42959	// non-empty value. This may be used to include null fields in Patch
42960	// requests.
42961	NullFields []string `json:"-"`
42962}
42963
42964func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
42965	type NoMethod TargetHttpProxiesScopedList
42966	raw := NoMethod(*s)
42967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42968}
42969
42970// TargetHttpProxiesScopedListWarning: Informational warning which
42971// replaces the list of backend services when the list is empty.
42972type TargetHttpProxiesScopedListWarning struct {
42973	// Code: [Output Only] A warning code, if applicable. For example,
42974	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42975	// the response.
42976	//
42977	// Possible values:
42978	//   "CLEANUP_FAILED"
42979	//   "DEPRECATED_RESOURCE_USED"
42980	//   "DEPRECATED_TYPE_USED"
42981	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42982	//   "EXPERIMENTAL_TYPE_USED"
42983	//   "EXTERNAL_API_WARNING"
42984	//   "FIELD_VALUE_OVERRIDEN"
42985	//   "INJECTED_KERNELS_DEPRECATED"
42986	//   "LARGE_DEPLOYMENT_WARNING"
42987	//   "MISSING_TYPE_DEPENDENCY"
42988	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42989	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42990	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42991	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42992	//   "NEXT_HOP_NOT_RUNNING"
42993	//   "NOT_CRITICAL_ERROR"
42994	//   "NO_RESULTS_ON_PAGE"
42995	//   "PARTIAL_SUCCESS"
42996	//   "REQUIRED_TOS_AGREEMENT"
42997	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42998	//   "RESOURCE_NOT_DELETED"
42999	//   "SCHEMA_VALIDATION_IGNORED"
43000	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43001	//   "UNDECLARED_PROPERTIES"
43002	//   "UNREACHABLE"
43003	Code string `json:"code,omitempty"`
43004
43005	// Data: [Output Only] Metadata about this warning in key: value format.
43006	// For example:
43007	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43008	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
43009
43010	// Message: [Output Only] A human-readable description of the warning
43011	// code.
43012	Message string `json:"message,omitempty"`
43013
43014	// ForceSendFields is a list of field names (e.g. "Code") to
43015	// unconditionally include in API requests. By default, fields with
43016	// empty values are omitted from API requests. However, any non-pointer,
43017	// non-interface field appearing in ForceSendFields will be sent to the
43018	// server regardless of whether the field is empty or not. This may be
43019	// used to include empty fields in Patch requests.
43020	ForceSendFields []string `json:"-"`
43021
43022	// NullFields is a list of field names (e.g. "Code") to include in API
43023	// requests with the JSON null value. By default, fields with empty
43024	// values are omitted from API requests. However, any field with an
43025	// empty value appearing in NullFields will be sent to the server as
43026	// null. It is an error if a field in this list has a non-empty value.
43027	// This may be used to include null fields in Patch requests.
43028	NullFields []string `json:"-"`
43029}
43030
43031func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
43032	type NoMethod TargetHttpProxiesScopedListWarning
43033	raw := NoMethod(*s)
43034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43035}
43036
43037type TargetHttpProxiesScopedListWarningData struct {
43038	// Key: [Output Only] A key that provides more detail on the warning
43039	// being returned. For example, for warnings where there are no results
43040	// in a list request for a particular zone, this key might be scope and
43041	// the key value might be the zone name. Other examples might be a key
43042	// indicating a deprecated resource and a suggested replacement, or a
43043	// warning about invalid network settings (for example, if an instance
43044	// attempts to perform IP forwarding but is not enabled for IP
43045	// forwarding).
43046	Key string `json:"key,omitempty"`
43047
43048	// Value: [Output Only] A warning data value corresponding to the key.
43049	Value string `json:"value,omitempty"`
43050
43051	// ForceSendFields is a list of field names (e.g. "Key") to
43052	// unconditionally include in API requests. By default, fields with
43053	// empty values are omitted from API requests. However, any non-pointer,
43054	// non-interface field appearing in ForceSendFields will be sent to the
43055	// server regardless of whether the field is empty or not. This may be
43056	// used to include empty fields in Patch requests.
43057	ForceSendFields []string `json:"-"`
43058
43059	// NullFields is a list of field names (e.g. "Key") to include in API
43060	// requests with the JSON null value. By default, fields with empty
43061	// values are omitted from API requests. However, any field with an
43062	// empty value appearing in NullFields will be sent to the server as
43063	// null. It is an error if a field in this list has a non-empty value.
43064	// This may be used to include null fields in Patch requests.
43065	NullFields []string `json:"-"`
43066}
43067
43068func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
43069	type NoMethod TargetHttpProxiesScopedListWarningData
43070	raw := NoMethod(*s)
43071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43072}
43073
43074// TargetHttpProxy: Represents a Target HTTP Proxy resource.
43075//
43076// Google Compute Engine has two Target HTTP Proxy resources:
43077//
43078// * Global
43079// (/compute/docs/reference/rest/{$api_version}/targetHttpProxies) *
43080// Regional
43081// (/compute/docs/reference/rest/{$api_version}/regionTargetHttpProxies)
43082//
43083// A target HTTP proxy is a component of GCP HTTP load balancers.
43084//
43085// * targetHttpProxies are used by external HTTP load balancers and
43086// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
43087// load balancers.
43088//
43089// Forwarding rules reference a target HTTP proxy, and the target proxy
43090// then references a URL map. For more information, read Using Target
43091// Proxies and  Forwarding rule concepts. (== resource_for
43092// {$api_version}.targetHttpProxies ==) (== resource_for
43093// {$api_version}.regionTargetHttpProxies ==)
43094type TargetHttpProxy struct {
43095	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43096	// format.
43097	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43098
43099	// Description: An optional description of this resource. Provide this
43100	// property when you create the resource.
43101	Description string `json:"description,omitempty"`
43102
43103	// Fingerprint: Fingerprint of this resource. A hash of the contents
43104	// stored in this object. This field is used in optimistic locking. This
43105	// field will be ignored when inserting a TargetHttpProxy. An up-to-date
43106	// fingerprint must be provided in order to patch/update the
43107	// TargetHttpProxy; otherwise, the request will fail with error 412
43108	// conditionNotMet. To see the latest fingerprint, make a get() request
43109	// to retrieve the TargetHttpProxy.
43110	Fingerprint string `json:"fingerprint,omitempty"`
43111
43112	// HttpFilters: URLs to networkservices.HttpFilter resources enabled for
43113	// xDS clients using this configuration. For example,
43114	// https://networkservices.googleapis.com/v1alpha1/projects/project/locations/locationhttpFilters/httpFilter
43115	// Only filters that handle outbound connection and stream events may be
43116	// specified. These filters work in conjunction with a default set of
43117	// HTTP filters that may already be configured by Traffic Director.
43118	// Traffic Director will determine the final location of these filters
43119	// within xDS configuration based on the name of the HTTP filter. If
43120	// Traffic Director positions multiple filters at the same location,
43121	// those filters will be in the same order as specified in this
43122	// list.
43123	// httpFilters only applies for loadbalancers with loadBalancingScheme
43124	// set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
43125	HttpFilters []string `json:"httpFilters,omitempty"`
43126
43127	// Id: [Output Only] The unique identifier for the resource. This
43128	// identifier is defined by the server.
43129	Id uint64 `json:"id,omitempty,string"`
43130
43131	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
43132	// for target HTTP proxies.
43133	Kind string `json:"kind,omitempty"`
43134
43135	// Name: Name of the resource. Provided by the client when the resource
43136	// is created. The name must be 1-63 characters long, and comply with
43137	// RFC1035. Specifically, the name must be 1-63 characters long and
43138	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43139	// the first character must be a lowercase letter, and all following
43140	// characters must be a dash, lowercase letter, or digit, except the
43141	// last character, which cannot be a dash.
43142	Name string `json:"name,omitempty"`
43143
43144	// ProxyBind: This field only applies when the forwarding rule that
43145	// references this target proxy has a loadBalancingScheme set to
43146	// INTERNAL_SELF_MANAGED.
43147	//
43148	// When this field is set to true, Envoy proxies set up inbound traffic
43149	// interception and bind to the IP address and port specified in the
43150	// forwarding rule. This is generally useful when using Traffic Director
43151	// to configure Envoy as a gateway or middle proxy (in other words, not
43152	// a sidecar proxy). The Envoy proxy listens for inbound requests and
43153	// handles requests when it receives them.
43154	//
43155	// The default is false.
43156	ProxyBind bool `json:"proxyBind,omitempty"`
43157
43158	// Region: [Output Only] URL of the region where the regional Target
43159	// HTTP Proxy resides. This field is not applicable to global Target
43160	// HTTP Proxies.
43161	Region string `json:"region,omitempty"`
43162
43163	// SelfLink: [Output Only] Server-defined URL for the resource.
43164	SelfLink string `json:"selfLink,omitempty"`
43165
43166	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
43167	// to the BackendService.
43168	UrlMap string `json:"urlMap,omitempty"`
43169
43170	// ServerResponse contains the HTTP response code and headers from the
43171	// server.
43172	googleapi.ServerResponse `json:"-"`
43173
43174	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43175	// to unconditionally include in API requests. By default, fields with
43176	// empty values are omitted from API requests. However, any non-pointer,
43177	// non-interface field appearing in ForceSendFields will be sent to the
43178	// server regardless of whether the field is empty or not. This may be
43179	// used to include empty fields in Patch requests.
43180	ForceSendFields []string `json:"-"`
43181
43182	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43183	// include in API requests with the JSON null value. By default, fields
43184	// with empty values are omitted from API requests. However, any field
43185	// with an empty value appearing in NullFields will be sent to the
43186	// server as null. It is an error if a field in this list has a
43187	// non-empty value. This may be used to include null fields in Patch
43188	// requests.
43189	NullFields []string `json:"-"`
43190}
43191
43192func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
43193	type NoMethod TargetHttpProxy
43194	raw := NoMethod(*s)
43195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43196}
43197
43198type TargetHttpProxyAggregatedList struct {
43199	// Id: [Output Only] Unique identifier for the resource; defined by the
43200	// server.
43201	Id string `json:"id,omitempty"`
43202
43203	// Items: A list of TargetHttpProxiesScopedList resources.
43204	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
43205
43206	// Kind: [Output Only] Type of resource. Always
43207	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
43208	// Proxies.
43209	Kind string `json:"kind,omitempty"`
43210
43211	// NextPageToken: [Output Only] This token allows you to get the next
43212	// page of results for list requests. If the number of results is larger
43213	// than maxResults, use the nextPageToken as a value for the query
43214	// parameter pageToken in the next list request. Subsequent list
43215	// requests will have their own nextPageToken to continue paging through
43216	// the results.
43217	NextPageToken string `json:"nextPageToken,omitempty"`
43218
43219	// SelfLink: [Output Only] Server-defined URL for this resource.
43220	SelfLink string `json:"selfLink,omitempty"`
43221
43222	// Unreachables: [Output Only] Unreachable resources.
43223	Unreachables []string `json:"unreachables,omitempty"`
43224
43225	// Warning: [Output Only] Informational warning message.
43226	Warning *TargetHttpProxyAggregatedListWarning `json:"warning,omitempty"`
43227
43228	// ServerResponse contains the HTTP response code and headers from the
43229	// server.
43230	googleapi.ServerResponse `json:"-"`
43231
43232	// ForceSendFields is a list of field names (e.g. "Id") to
43233	// unconditionally include in API requests. By default, fields with
43234	// empty values are omitted from API requests. However, any non-pointer,
43235	// non-interface field appearing in ForceSendFields will be sent to the
43236	// server regardless of whether the field is empty or not. This may be
43237	// used to include empty fields in Patch requests.
43238	ForceSendFields []string `json:"-"`
43239
43240	// NullFields is a list of field names (e.g. "Id") to include in API
43241	// requests with the JSON null value. By default, fields with empty
43242	// values are omitted from API requests. However, any field with an
43243	// empty value appearing in NullFields will be sent to the server as
43244	// null. It is an error if a field in this list has a non-empty value.
43245	// This may be used to include null fields in Patch requests.
43246	NullFields []string `json:"-"`
43247}
43248
43249func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
43250	type NoMethod TargetHttpProxyAggregatedList
43251	raw := NoMethod(*s)
43252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43253}
43254
43255// TargetHttpProxyAggregatedListWarning: [Output Only] Informational
43256// warning message.
43257type TargetHttpProxyAggregatedListWarning struct {
43258	// Code: [Output Only] A warning code, if applicable. For example,
43259	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43260	// the response.
43261	//
43262	// Possible values:
43263	//   "CLEANUP_FAILED"
43264	//   "DEPRECATED_RESOURCE_USED"
43265	//   "DEPRECATED_TYPE_USED"
43266	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43267	//   "EXPERIMENTAL_TYPE_USED"
43268	//   "EXTERNAL_API_WARNING"
43269	//   "FIELD_VALUE_OVERRIDEN"
43270	//   "INJECTED_KERNELS_DEPRECATED"
43271	//   "LARGE_DEPLOYMENT_WARNING"
43272	//   "MISSING_TYPE_DEPENDENCY"
43273	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43274	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43275	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43276	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43277	//   "NEXT_HOP_NOT_RUNNING"
43278	//   "NOT_CRITICAL_ERROR"
43279	//   "NO_RESULTS_ON_PAGE"
43280	//   "PARTIAL_SUCCESS"
43281	//   "REQUIRED_TOS_AGREEMENT"
43282	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43283	//   "RESOURCE_NOT_DELETED"
43284	//   "SCHEMA_VALIDATION_IGNORED"
43285	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43286	//   "UNDECLARED_PROPERTIES"
43287	//   "UNREACHABLE"
43288	Code string `json:"code,omitempty"`
43289
43290	// Data: [Output Only] Metadata about this warning in key: value format.
43291	// For example:
43292	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43293	Data []*TargetHttpProxyAggregatedListWarningData `json:"data,omitempty"`
43294
43295	// Message: [Output Only] A human-readable description of the warning
43296	// code.
43297	Message string `json:"message,omitempty"`
43298
43299	// ForceSendFields is a list of field names (e.g. "Code") to
43300	// unconditionally include in API requests. By default, fields with
43301	// empty values are omitted from API requests. However, any non-pointer,
43302	// non-interface field appearing in ForceSendFields will be sent to the
43303	// server regardless of whether the field is empty or not. This may be
43304	// used to include empty fields in Patch requests.
43305	ForceSendFields []string `json:"-"`
43306
43307	// NullFields is a list of field names (e.g. "Code") to include in API
43308	// requests with the JSON null value. By default, fields with empty
43309	// values are omitted from API requests. However, any field with an
43310	// empty value appearing in NullFields will be sent to the server as
43311	// null. It is an error if a field in this list has a non-empty value.
43312	// This may be used to include null fields in Patch requests.
43313	NullFields []string `json:"-"`
43314}
43315
43316func (s *TargetHttpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
43317	type NoMethod TargetHttpProxyAggregatedListWarning
43318	raw := NoMethod(*s)
43319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43320}
43321
43322type TargetHttpProxyAggregatedListWarningData struct {
43323	// Key: [Output Only] A key that provides more detail on the warning
43324	// being returned. For example, for warnings where there are no results
43325	// in a list request for a particular zone, this key might be scope and
43326	// the key value might be the zone name. Other examples might be a key
43327	// indicating a deprecated resource and a suggested replacement, or a
43328	// warning about invalid network settings (for example, if an instance
43329	// attempts to perform IP forwarding but is not enabled for IP
43330	// forwarding).
43331	Key string `json:"key,omitempty"`
43332
43333	// Value: [Output Only] A warning data value corresponding to the key.
43334	Value string `json:"value,omitempty"`
43335
43336	// ForceSendFields is a list of field names (e.g. "Key") to
43337	// unconditionally include in API requests. By default, fields with
43338	// empty values are omitted from API requests. However, any non-pointer,
43339	// non-interface field appearing in ForceSendFields will be sent to the
43340	// server regardless of whether the field is empty or not. This may be
43341	// used to include empty fields in Patch requests.
43342	ForceSendFields []string `json:"-"`
43343
43344	// NullFields is a list of field names (e.g. "Key") to include in API
43345	// requests with the JSON null value. By default, fields with empty
43346	// values are omitted from API requests. However, any field with an
43347	// empty value appearing in NullFields will be sent to the server as
43348	// null. It is an error if a field in this list has a non-empty value.
43349	// This may be used to include null fields in Patch requests.
43350	NullFields []string `json:"-"`
43351}
43352
43353func (s *TargetHttpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
43354	type NoMethod TargetHttpProxyAggregatedListWarningData
43355	raw := NoMethod(*s)
43356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43357}
43358
43359// TargetHttpProxyList: A list of TargetHttpProxy resources.
43360type TargetHttpProxyList struct {
43361	// Id: [Output Only] Unique identifier for the resource; defined by the
43362	// server.
43363	Id string `json:"id,omitempty"`
43364
43365	// Items: A list of TargetHttpProxy resources.
43366	Items []*TargetHttpProxy `json:"items,omitempty"`
43367
43368	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
43369	// of target HTTP proxies.
43370	Kind string `json:"kind,omitempty"`
43371
43372	// NextPageToken: [Output Only] This token allows you to get the next
43373	// page of results for list requests. If the number of results is larger
43374	// than maxResults, use the nextPageToken as a value for the query
43375	// parameter pageToken in the next list request. Subsequent list
43376	// requests will have their own nextPageToken to continue paging through
43377	// the results.
43378	NextPageToken string `json:"nextPageToken,omitempty"`
43379
43380	// SelfLink: [Output Only] Server-defined URL for this resource.
43381	SelfLink string `json:"selfLink,omitempty"`
43382
43383	// Warning: [Output Only] Informational warning message.
43384	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
43385
43386	// ServerResponse contains the HTTP response code and headers from the
43387	// server.
43388	googleapi.ServerResponse `json:"-"`
43389
43390	// ForceSendFields is a list of field names (e.g. "Id") to
43391	// unconditionally include in API requests. By default, fields with
43392	// empty values are omitted from API requests. However, any non-pointer,
43393	// non-interface field appearing in ForceSendFields will be sent to the
43394	// server regardless of whether the field is empty or not. This may be
43395	// used to include empty fields in Patch requests.
43396	ForceSendFields []string `json:"-"`
43397
43398	// NullFields is a list of field names (e.g. "Id") to include in API
43399	// requests with the JSON null value. By default, fields with empty
43400	// values are omitted from API requests. However, any field with an
43401	// empty value appearing in NullFields will be sent to the server as
43402	// null. It is an error if a field in this list has a non-empty value.
43403	// This may be used to include null fields in Patch requests.
43404	NullFields []string `json:"-"`
43405}
43406
43407func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
43408	type NoMethod TargetHttpProxyList
43409	raw := NoMethod(*s)
43410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43411}
43412
43413// TargetHttpProxyListWarning: [Output Only] Informational warning
43414// message.
43415type TargetHttpProxyListWarning struct {
43416	// Code: [Output Only] A warning code, if applicable. For example,
43417	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43418	// the response.
43419	//
43420	// Possible values:
43421	//   "CLEANUP_FAILED"
43422	//   "DEPRECATED_RESOURCE_USED"
43423	//   "DEPRECATED_TYPE_USED"
43424	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43425	//   "EXPERIMENTAL_TYPE_USED"
43426	//   "EXTERNAL_API_WARNING"
43427	//   "FIELD_VALUE_OVERRIDEN"
43428	//   "INJECTED_KERNELS_DEPRECATED"
43429	//   "LARGE_DEPLOYMENT_WARNING"
43430	//   "MISSING_TYPE_DEPENDENCY"
43431	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43432	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43433	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43434	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43435	//   "NEXT_HOP_NOT_RUNNING"
43436	//   "NOT_CRITICAL_ERROR"
43437	//   "NO_RESULTS_ON_PAGE"
43438	//   "PARTIAL_SUCCESS"
43439	//   "REQUIRED_TOS_AGREEMENT"
43440	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43441	//   "RESOURCE_NOT_DELETED"
43442	//   "SCHEMA_VALIDATION_IGNORED"
43443	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43444	//   "UNDECLARED_PROPERTIES"
43445	//   "UNREACHABLE"
43446	Code string `json:"code,omitempty"`
43447
43448	// Data: [Output Only] Metadata about this warning in key: value format.
43449	// For example:
43450	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43451	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
43452
43453	// Message: [Output Only] A human-readable description of the warning
43454	// code.
43455	Message string `json:"message,omitempty"`
43456
43457	// ForceSendFields is a list of field names (e.g. "Code") to
43458	// unconditionally include in API requests. By default, fields with
43459	// empty values are omitted from API requests. However, any non-pointer,
43460	// non-interface field appearing in ForceSendFields will be sent to the
43461	// server regardless of whether the field is empty or not. This may be
43462	// used to include empty fields in Patch requests.
43463	ForceSendFields []string `json:"-"`
43464
43465	// NullFields is a list of field names (e.g. "Code") to include in API
43466	// requests with the JSON null value. By default, fields with empty
43467	// values are omitted from API requests. However, any field with an
43468	// empty value appearing in NullFields will be sent to the server as
43469	// null. It is an error if a field in this list has a non-empty value.
43470	// This may be used to include null fields in Patch requests.
43471	NullFields []string `json:"-"`
43472}
43473
43474func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
43475	type NoMethod TargetHttpProxyListWarning
43476	raw := NoMethod(*s)
43477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43478}
43479
43480type TargetHttpProxyListWarningData struct {
43481	// Key: [Output Only] A key that provides more detail on the warning
43482	// being returned. For example, for warnings where there are no results
43483	// in a list request for a particular zone, this key might be scope and
43484	// the key value might be the zone name. Other examples might be a key
43485	// indicating a deprecated resource and a suggested replacement, or a
43486	// warning about invalid network settings (for example, if an instance
43487	// attempts to perform IP forwarding but is not enabled for IP
43488	// forwarding).
43489	Key string `json:"key,omitempty"`
43490
43491	// Value: [Output Only] A warning data value corresponding to the key.
43492	Value string `json:"value,omitempty"`
43493
43494	// ForceSendFields is a list of field names (e.g. "Key") to
43495	// unconditionally include in API requests. By default, fields with
43496	// empty values are omitted from API requests. However, any non-pointer,
43497	// non-interface field appearing in ForceSendFields will be sent to the
43498	// server regardless of whether the field is empty or not. This may be
43499	// used to include empty fields in Patch requests.
43500	ForceSendFields []string `json:"-"`
43501
43502	// NullFields is a list of field names (e.g. "Key") to include in API
43503	// requests with the JSON null value. By default, fields with empty
43504	// values are omitted from API requests. However, any field with an
43505	// empty value appearing in NullFields will be sent to the server as
43506	// null. It is an error if a field in this list has a non-empty value.
43507	// This may be used to include null fields in Patch requests.
43508	NullFields []string `json:"-"`
43509}
43510
43511func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
43512	type NoMethod TargetHttpProxyListWarningData
43513	raw := NoMethod(*s)
43514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43515}
43516
43517type TargetHttpsProxiesScopedList struct {
43518	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
43519	// scope.
43520	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
43521
43522	// Warning: Informational warning which replaces the list of backend
43523	// services when the list is empty.
43524	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
43525
43526	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
43527	// to unconditionally include in API requests. By default, fields with
43528	// empty values are omitted from API requests. However, any non-pointer,
43529	// non-interface field appearing in ForceSendFields will be sent to the
43530	// server regardless of whether the field is empty or not. This may be
43531	// used to include empty fields in Patch requests.
43532	ForceSendFields []string `json:"-"`
43533
43534	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
43535	// include in API requests with the JSON null value. By default, fields
43536	// with empty values are omitted from API requests. However, any field
43537	// with an empty value appearing in NullFields will be sent to the
43538	// server as null. It is an error if a field in this list has a
43539	// non-empty value. This may be used to include null fields in Patch
43540	// requests.
43541	NullFields []string `json:"-"`
43542}
43543
43544func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
43545	type NoMethod TargetHttpsProxiesScopedList
43546	raw := NoMethod(*s)
43547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43548}
43549
43550// TargetHttpsProxiesScopedListWarning: Informational warning which
43551// replaces the list of backend services when the list is empty.
43552type TargetHttpsProxiesScopedListWarning struct {
43553	// Code: [Output Only] A warning code, if applicable. For example,
43554	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43555	// the response.
43556	//
43557	// Possible values:
43558	//   "CLEANUP_FAILED"
43559	//   "DEPRECATED_RESOURCE_USED"
43560	//   "DEPRECATED_TYPE_USED"
43561	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43562	//   "EXPERIMENTAL_TYPE_USED"
43563	//   "EXTERNAL_API_WARNING"
43564	//   "FIELD_VALUE_OVERRIDEN"
43565	//   "INJECTED_KERNELS_DEPRECATED"
43566	//   "LARGE_DEPLOYMENT_WARNING"
43567	//   "MISSING_TYPE_DEPENDENCY"
43568	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43569	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43570	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43571	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43572	//   "NEXT_HOP_NOT_RUNNING"
43573	//   "NOT_CRITICAL_ERROR"
43574	//   "NO_RESULTS_ON_PAGE"
43575	//   "PARTIAL_SUCCESS"
43576	//   "REQUIRED_TOS_AGREEMENT"
43577	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43578	//   "RESOURCE_NOT_DELETED"
43579	//   "SCHEMA_VALIDATION_IGNORED"
43580	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43581	//   "UNDECLARED_PROPERTIES"
43582	//   "UNREACHABLE"
43583	Code string `json:"code,omitempty"`
43584
43585	// Data: [Output Only] Metadata about this warning in key: value format.
43586	// For example:
43587	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43588	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
43589
43590	// Message: [Output Only] A human-readable description of the warning
43591	// code.
43592	Message string `json:"message,omitempty"`
43593
43594	// ForceSendFields is a list of field names (e.g. "Code") to
43595	// unconditionally include in API requests. By default, fields with
43596	// empty values are omitted from API requests. However, any non-pointer,
43597	// non-interface field appearing in ForceSendFields will be sent to the
43598	// server regardless of whether the field is empty or not. This may be
43599	// used to include empty fields in Patch requests.
43600	ForceSendFields []string `json:"-"`
43601
43602	// NullFields is a list of field names (e.g. "Code") to include in API
43603	// requests with the JSON null value. By default, fields with empty
43604	// values are omitted from API requests. However, any field with an
43605	// empty value appearing in NullFields will be sent to the server as
43606	// null. It is an error if a field in this list has a non-empty value.
43607	// This may be used to include null fields in Patch requests.
43608	NullFields []string `json:"-"`
43609}
43610
43611func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
43612	type NoMethod TargetHttpsProxiesScopedListWarning
43613	raw := NoMethod(*s)
43614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43615}
43616
43617type TargetHttpsProxiesScopedListWarningData struct {
43618	// Key: [Output Only] A key that provides more detail on the warning
43619	// being returned. For example, for warnings where there are no results
43620	// in a list request for a particular zone, this key might be scope and
43621	// the key value might be the zone name. Other examples might be a key
43622	// indicating a deprecated resource and a suggested replacement, or a
43623	// warning about invalid network settings (for example, if an instance
43624	// attempts to perform IP forwarding but is not enabled for IP
43625	// forwarding).
43626	Key string `json:"key,omitempty"`
43627
43628	// Value: [Output Only] A warning data value corresponding to the key.
43629	Value string `json:"value,omitempty"`
43630
43631	// ForceSendFields is a list of field names (e.g. "Key") to
43632	// unconditionally include in API requests. By default, fields with
43633	// empty values are omitted from API requests. However, any non-pointer,
43634	// non-interface field appearing in ForceSendFields will be sent to the
43635	// server regardless of whether the field is empty or not. This may be
43636	// used to include empty fields in Patch requests.
43637	ForceSendFields []string `json:"-"`
43638
43639	// NullFields is a list of field names (e.g. "Key") to include in API
43640	// requests with the JSON null value. By default, fields with empty
43641	// values are omitted from API requests. However, any field with an
43642	// empty value appearing in NullFields will be sent to the server as
43643	// null. It is an error if a field in this list has a non-empty value.
43644	// This may be used to include null fields in Patch requests.
43645	NullFields []string `json:"-"`
43646}
43647
43648func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
43649	type NoMethod TargetHttpsProxiesScopedListWarningData
43650	raw := NoMethod(*s)
43651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43652}
43653
43654type TargetHttpsProxiesSetQuicOverrideRequest struct {
43655	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
43656	//
43657	// Possible values:
43658	//   "DISABLE"
43659	//   "ENABLE"
43660	//   "NONE"
43661	QuicOverride string `json:"quicOverride,omitempty"`
43662
43663	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
43664	// unconditionally include in API requests. By default, fields with
43665	// empty values are omitted from API requests. However, any non-pointer,
43666	// non-interface field appearing in ForceSendFields will be sent to the
43667	// server regardless of whether the field is empty or not. This may be
43668	// used to include empty fields in Patch requests.
43669	ForceSendFields []string `json:"-"`
43670
43671	// NullFields is a list of field names (e.g. "QuicOverride") to include
43672	// in API requests with the JSON null value. By default, fields with
43673	// empty values are omitted from API requests. However, any field with
43674	// an empty value appearing in NullFields will be sent to the server as
43675	// null. It is an error if a field in this list has a non-empty value.
43676	// This may be used to include null fields in Patch requests.
43677	NullFields []string `json:"-"`
43678}
43679
43680func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
43681	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
43682	raw := NoMethod(*s)
43683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43684}
43685
43686type TargetHttpsProxiesSetSslCertificatesRequest struct {
43687	// SslCertificates: New set of SslCertificate resources to associate
43688	// with this TargetHttpsProxy resource. At least one SSL certificate
43689	// must be specified. Currently, you may specify up to 15 SSL
43690	// certificates.
43691	SslCertificates []string `json:"sslCertificates,omitempty"`
43692
43693	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
43694	// unconditionally include in API requests. By default, fields with
43695	// empty values are omitted from API requests. However, any non-pointer,
43696	// non-interface field appearing in ForceSendFields will be sent to the
43697	// server regardless of whether the field is empty or not. This may be
43698	// used to include empty fields in Patch requests.
43699	ForceSendFields []string `json:"-"`
43700
43701	// NullFields is a list of field names (e.g. "SslCertificates") to
43702	// include in API requests with the JSON null value. By default, fields
43703	// with empty values are omitted from API requests. However, any field
43704	// with an empty value appearing in NullFields will be sent to the
43705	// server as null. It is an error if a field in this list has a
43706	// non-empty value. This may be used to include null fields in Patch
43707	// requests.
43708	NullFields []string `json:"-"`
43709}
43710
43711func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
43712	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
43713	raw := NoMethod(*s)
43714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43715}
43716
43717// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
43718//
43719// Google Compute Engine has two Target HTTPS Proxy resources:
43720//
43721// * Global
43722// (/compute/docs/reference/rest/{$api_version}/targetHttpsProxies) *
43723// Regional
43724// (/compute/docs/reference/rest/{$api_version}/regionTargetHttpsProxies)
43725//
43726//
43727// A target HTTPS proxy is a component of GCP HTTPS load balancers.
43728//
43729// * targetHttpsProxies are used by external HTTPS load balancers. *
43730// regionTargetHttpsProxies are used by internal HTTPS load
43731// balancers.
43732//
43733// Forwarding rules reference a target HTTPS proxy, and the target proxy
43734// then references a URL map. For more information, read Using Target
43735// Proxies and  Forwarding rule concepts. (== resource_for
43736// {$api_version}.targetHttpsProxies ==) (== resource_for
43737// {$api_version}.regionTargetHttpsProxies ==)
43738type TargetHttpsProxy struct {
43739	// Authentication: [Deprecated] Use serverTlsPolicy instead.
43740	Authentication string `json:"authentication,omitempty"`
43741
43742	// Authorization: [Deprecated] Use authorizationPolicy instead.
43743	Authorization string `json:"authorization,omitempty"`
43744
43745	// AuthorizationPolicy: Optional. A URL referring to a
43746	// networksecurity.AuthorizationPolicy resource that describes how the
43747	// proxy should authorize inbound traffic. If left blank, access will
43748	// not be restricted by an authorization policy.
43749	// Refer to the AuthorizationPolicy resource for additional
43750	// details.
43751	// authorizationPolicy only applies to a global TargetHttpsProxy
43752	// attached to globalForwardingRules with the loadBalancingScheme set to
43753	// INTERNAL_SELF_MANAGED.
43754	// Note: This field currently has no impact.
43755	AuthorizationPolicy string `json:"authorizationPolicy,omitempty"`
43756
43757	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43758	// format.
43759	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43760
43761	// Description: An optional description of this resource. Provide this
43762	// property when you create the resource.
43763	Description string `json:"description,omitempty"`
43764
43765	// Fingerprint: Fingerprint of this resource. A hash of the contents
43766	// stored in this object. This field is used in optimistic locking. This
43767	// field will be ignored when inserting a TargetHttpsProxy. An
43768	// up-to-date fingerprint must be provided in order to patch the
43769	// TargetHttpsProxy; otherwise, the request will fail with error 412
43770	// conditionNotMet. To see the latest fingerprint, make a get() request
43771	// to retrieve the TargetHttpsProxy.
43772	Fingerprint string `json:"fingerprint,omitempty"`
43773
43774	// HttpFilters: URLs to networkservices.HttpFilter resources enabled for
43775	// xDS clients using this configuration. For example,
43776	// https://networkservices.googleapis.com/beta/projects/project/locations/locationhttpFilters/httpFilter
43777	// Only filters that handle outbound connection and stream events may be
43778	// specified. These filters work in conjunction with a default set of
43779	// HTTP filters that may already be configured by Traffic Director.
43780	// Traffic Director will determine the final location of these filters
43781	// within xDS configuration based on the name of the HTTP filter. If
43782	// Traffic Director positions multiple filters at the same location,
43783	// those filters will be in the same order as specified in this
43784	// list.
43785	// httpFilters only applies for loadbalancers with loadBalancingScheme
43786	// set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
43787	HttpFilters []string `json:"httpFilters,omitempty"`
43788
43789	// Id: [Output Only] The unique identifier for the resource. This
43790	// identifier is defined by the server.
43791	Id uint64 `json:"id,omitempty,string"`
43792
43793	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
43794	// for target HTTPS proxies.
43795	Kind string `json:"kind,omitempty"`
43796
43797	// Name: Name of the resource. Provided by the client when the resource
43798	// is created. The name must be 1-63 characters long, and comply with
43799	// RFC1035. Specifically, the name must be 1-63 characters long and
43800	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43801	// the first character must be a lowercase letter, and all following
43802	// characters must be a dash, lowercase letter, or digit, except the
43803	// last character, which cannot be a dash.
43804	Name string `json:"name,omitempty"`
43805
43806	// ProxyBind: This field only applies when the forwarding rule that
43807	// references this target proxy has a loadBalancingScheme set to
43808	// INTERNAL_SELF_MANAGED.
43809	//
43810	// When this field is set to true, Envoy proxies set up inbound traffic
43811	// interception and bind to the IP address and port specified in the
43812	// forwarding rule. This is generally useful when using Traffic Director
43813	// to configure Envoy as a gateway or middle proxy (in other words, not
43814	// a sidecar proxy). The Envoy proxy listens for inbound requests and
43815	// handles requests when it receives them.
43816	//
43817	// The default is false.
43818	ProxyBind bool `json:"proxyBind,omitempty"`
43819
43820	// QuicOverride: Specifies the QUIC override policy for this
43821	// TargetHttpsProxy resource. This setting determines whether the load
43822	// balancer attempts to negotiate QUIC with clients. You can specify
43823	// NONE, ENABLE, or DISABLE.
43824	// - When quic-override is set to NONE, Google manages whether QUIC is
43825	// used.
43826	// - When quic-override is set to ENABLE, the load balancer uses QUIC
43827	// when possible.
43828	// - When quic-override is set to DISABLE, the load balancer doesn't use
43829	// QUIC.
43830	// - If the quic-override flag is not specified, NONE is implied.
43831	//
43832	// Possible values:
43833	//   "DISABLE"
43834	//   "ENABLE"
43835	//   "NONE"
43836	QuicOverride string `json:"quicOverride,omitempty"`
43837
43838	// Region: [Output Only] URL of the region where the regional
43839	// TargetHttpsProxy resides. This field is not applicable to global
43840	// TargetHttpsProxies.
43841	Region string `json:"region,omitempty"`
43842
43843	// SelfLink: [Output Only] Server-defined URL for the resource.
43844	SelfLink string `json:"selfLink,omitempty"`
43845
43846	// ServerTlsPolicy: Optional. A URL referring to a
43847	// networksecurity.ServerTlsPolicy resource that describes how the proxy
43848	// should authenticate inbound traffic.
43849	// serverTlsPolicy only applies to a global TargetHttpsProxy attached to
43850	// globalForwardingRules with the loadBalancingScheme set to
43851	// INTERNAL_SELF_MANAGED.
43852	// If left blank, communications are not encrypted.
43853	// Note: This field currently has no impact.
43854	ServerTlsPolicy string `json:"serverTlsPolicy,omitempty"`
43855
43856	// SslCertificates: URLs to SslCertificate resources that are used to
43857	// authenticate connections between users and the load balancer. At
43858	// least one SSL certificate must be specified. Currently, you may
43859	// specify up to 15 SSL certificates. sslCertificates do not apply when
43860	// the load balancing scheme is set to INTERNAL_SELF_MANAGED.
43861	SslCertificates []string `json:"sslCertificates,omitempty"`
43862
43863	// SslPolicy: URL of SslPolicy resource that will be associated with the
43864	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
43865	// has no SSL policy configured.
43866	SslPolicy string `json:"sslPolicy,omitempty"`
43867
43868	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
43869	// that defines the mapping from URL to the BackendService. For example,
43870	// the following are all valid URLs for specifying a URL map:
43871	// -
43872	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
43873	//
43874	// - projects/project/global/urlMaps/url-map
43875	// - global/urlMaps/url-map
43876	UrlMap string `json:"urlMap,omitempty"`
43877
43878	// ServerResponse contains the HTTP response code and headers from the
43879	// server.
43880	googleapi.ServerResponse `json:"-"`
43881
43882	// ForceSendFields is a list of field names (e.g. "Authentication") to
43883	// unconditionally include in API requests. By default, fields with
43884	// empty values are omitted from API requests. However, any non-pointer,
43885	// non-interface field appearing in ForceSendFields will be sent to the
43886	// server regardless of whether the field is empty or not. This may be
43887	// used to include empty fields in Patch requests.
43888	ForceSendFields []string `json:"-"`
43889
43890	// NullFields is a list of field names (e.g. "Authentication") to
43891	// include in API requests with the JSON null value. By default, fields
43892	// with empty values are omitted from API requests. However, any field
43893	// with an empty value appearing in NullFields will be sent to the
43894	// server as null. It is an error if a field in this list has a
43895	// non-empty value. This may be used to include null fields in Patch
43896	// requests.
43897	NullFields []string `json:"-"`
43898}
43899
43900func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
43901	type NoMethod TargetHttpsProxy
43902	raw := NoMethod(*s)
43903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43904}
43905
43906type TargetHttpsProxyAggregatedList struct {
43907	// Id: [Output Only] Unique identifier for the resource; defined by the
43908	// server.
43909	Id string `json:"id,omitempty"`
43910
43911	// Items: A list of TargetHttpsProxiesScopedList resources.
43912	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
43913
43914	// Kind: [Output Only] Type of resource. Always
43915	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
43916	// Proxies.
43917	Kind string `json:"kind,omitempty"`
43918
43919	// NextPageToken: [Output Only] This token allows you to get the next
43920	// page of results for list requests. If the number of results is larger
43921	// than maxResults, use the nextPageToken as a value for the query
43922	// parameter pageToken in the next list request. Subsequent list
43923	// requests will have their own nextPageToken to continue paging through
43924	// the results.
43925	NextPageToken string `json:"nextPageToken,omitempty"`
43926
43927	// SelfLink: [Output Only] Server-defined URL for this resource.
43928	SelfLink string `json:"selfLink,omitempty"`
43929
43930	// Unreachables: [Output Only] Unreachable resources.
43931	Unreachables []string `json:"unreachables,omitempty"`
43932
43933	// Warning: [Output Only] Informational warning message.
43934	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
43935
43936	// ServerResponse contains the HTTP response code and headers from the
43937	// server.
43938	googleapi.ServerResponse `json:"-"`
43939
43940	// ForceSendFields is a list of field names (e.g. "Id") to
43941	// unconditionally include in API requests. By default, fields with
43942	// empty values are omitted from API requests. However, any non-pointer,
43943	// non-interface field appearing in ForceSendFields will be sent to the
43944	// server regardless of whether the field is empty or not. This may be
43945	// used to include empty fields in Patch requests.
43946	ForceSendFields []string `json:"-"`
43947
43948	// NullFields is a list of field names (e.g. "Id") to include in API
43949	// requests with the JSON null value. By default, fields with empty
43950	// values are omitted from API requests. However, any field with an
43951	// empty value appearing in NullFields will be sent to the server as
43952	// null. It is an error if a field in this list has a non-empty value.
43953	// This may be used to include null fields in Patch requests.
43954	NullFields []string `json:"-"`
43955}
43956
43957func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
43958	type NoMethod TargetHttpsProxyAggregatedList
43959	raw := NoMethod(*s)
43960	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43961}
43962
43963// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
43964// warning message.
43965type TargetHttpsProxyAggregatedListWarning struct {
43966	// Code: [Output Only] A warning code, if applicable. For example,
43967	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43968	// the response.
43969	//
43970	// Possible values:
43971	//   "CLEANUP_FAILED"
43972	//   "DEPRECATED_RESOURCE_USED"
43973	//   "DEPRECATED_TYPE_USED"
43974	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43975	//   "EXPERIMENTAL_TYPE_USED"
43976	//   "EXTERNAL_API_WARNING"
43977	//   "FIELD_VALUE_OVERRIDEN"
43978	//   "INJECTED_KERNELS_DEPRECATED"
43979	//   "LARGE_DEPLOYMENT_WARNING"
43980	//   "MISSING_TYPE_DEPENDENCY"
43981	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43982	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43983	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43984	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43985	//   "NEXT_HOP_NOT_RUNNING"
43986	//   "NOT_CRITICAL_ERROR"
43987	//   "NO_RESULTS_ON_PAGE"
43988	//   "PARTIAL_SUCCESS"
43989	//   "REQUIRED_TOS_AGREEMENT"
43990	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43991	//   "RESOURCE_NOT_DELETED"
43992	//   "SCHEMA_VALIDATION_IGNORED"
43993	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43994	//   "UNDECLARED_PROPERTIES"
43995	//   "UNREACHABLE"
43996	Code string `json:"code,omitempty"`
43997
43998	// Data: [Output Only] Metadata about this warning in key: value format.
43999	// For example:
44000	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44001	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
44002
44003	// Message: [Output Only] A human-readable description of the warning
44004	// code.
44005	Message string `json:"message,omitempty"`
44006
44007	// ForceSendFields is a list of field names (e.g. "Code") to
44008	// unconditionally include in API requests. By default, fields with
44009	// empty values are omitted from API requests. However, any non-pointer,
44010	// non-interface field appearing in ForceSendFields will be sent to the
44011	// server regardless of whether the field is empty or not. This may be
44012	// used to include empty fields in Patch requests.
44013	ForceSendFields []string `json:"-"`
44014
44015	// NullFields is a list of field names (e.g. "Code") to include in API
44016	// requests with the JSON null value. By default, fields with empty
44017	// values are omitted from API requests. However, any field with an
44018	// empty value appearing in NullFields will be sent to the server as
44019	// null. It is an error if a field in this list has a non-empty value.
44020	// This may be used to include null fields in Patch requests.
44021	NullFields []string `json:"-"`
44022}
44023
44024func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
44025	type NoMethod TargetHttpsProxyAggregatedListWarning
44026	raw := NoMethod(*s)
44027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44028}
44029
44030type TargetHttpsProxyAggregatedListWarningData struct {
44031	// Key: [Output Only] A key that provides more detail on the warning
44032	// being returned. For example, for warnings where there are no results
44033	// in a list request for a particular zone, this key might be scope and
44034	// the key value might be the zone name. Other examples might be a key
44035	// indicating a deprecated resource and a suggested replacement, or a
44036	// warning about invalid network settings (for example, if an instance
44037	// attempts to perform IP forwarding but is not enabled for IP
44038	// forwarding).
44039	Key string `json:"key,omitempty"`
44040
44041	// Value: [Output Only] A warning data value corresponding to the key.
44042	Value string `json:"value,omitempty"`
44043
44044	// ForceSendFields is a list of field names (e.g. "Key") to
44045	// unconditionally include in API requests. By default, fields with
44046	// empty values are omitted from API requests. However, any non-pointer,
44047	// non-interface field appearing in ForceSendFields will be sent to the
44048	// server regardless of whether the field is empty or not. This may be
44049	// used to include empty fields in Patch requests.
44050	ForceSendFields []string `json:"-"`
44051
44052	// NullFields is a list of field names (e.g. "Key") to include in API
44053	// requests with the JSON null value. By default, fields with empty
44054	// values are omitted from API requests. However, any field with an
44055	// empty value appearing in NullFields will be sent to the server as
44056	// null. It is an error if a field in this list has a non-empty value.
44057	// This may be used to include null fields in Patch requests.
44058	NullFields []string `json:"-"`
44059}
44060
44061func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44062	type NoMethod TargetHttpsProxyAggregatedListWarningData
44063	raw := NoMethod(*s)
44064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44065}
44066
44067// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
44068type TargetHttpsProxyList struct {
44069	// Id: [Output Only] Unique identifier for the resource; defined by the
44070	// server.
44071	Id string `json:"id,omitempty"`
44072
44073	// Items: A list of TargetHttpsProxy resources.
44074	Items []*TargetHttpsProxy `json:"items,omitempty"`
44075
44076	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
44077	// of target HTTPS proxies.
44078	Kind string `json:"kind,omitempty"`
44079
44080	// NextPageToken: [Output Only] This token allows you to get the next
44081	// page of results for list requests. If the number of results is larger
44082	// than maxResults, use the nextPageToken as a value for the query
44083	// parameter pageToken in the next list request. Subsequent list
44084	// requests will have their own nextPageToken to continue paging through
44085	// the results.
44086	NextPageToken string `json:"nextPageToken,omitempty"`
44087
44088	// SelfLink: [Output Only] Server-defined URL for this resource.
44089	SelfLink string `json:"selfLink,omitempty"`
44090
44091	// Warning: [Output Only] Informational warning message.
44092	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
44093
44094	// ServerResponse contains the HTTP response code and headers from the
44095	// server.
44096	googleapi.ServerResponse `json:"-"`
44097
44098	// ForceSendFields is a list of field names (e.g. "Id") to
44099	// unconditionally include in API requests. By default, fields with
44100	// empty values are omitted from API requests. However, any non-pointer,
44101	// non-interface field appearing in ForceSendFields will be sent to the
44102	// server regardless of whether the field is empty or not. This may be
44103	// used to include empty fields in Patch requests.
44104	ForceSendFields []string `json:"-"`
44105
44106	// NullFields is a list of field names (e.g. "Id") to include in API
44107	// requests with the JSON null value. By default, fields with empty
44108	// values are omitted from API requests. However, any field with an
44109	// empty value appearing in NullFields will be sent to the server as
44110	// null. It is an error if a field in this list has a non-empty value.
44111	// This may be used to include null fields in Patch requests.
44112	NullFields []string `json:"-"`
44113}
44114
44115func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
44116	type NoMethod TargetHttpsProxyList
44117	raw := NoMethod(*s)
44118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44119}
44120
44121// TargetHttpsProxyListWarning: [Output Only] Informational warning
44122// message.
44123type TargetHttpsProxyListWarning struct {
44124	// Code: [Output Only] A warning code, if applicable. For example,
44125	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44126	// the response.
44127	//
44128	// Possible values:
44129	//   "CLEANUP_FAILED"
44130	//   "DEPRECATED_RESOURCE_USED"
44131	//   "DEPRECATED_TYPE_USED"
44132	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44133	//   "EXPERIMENTAL_TYPE_USED"
44134	//   "EXTERNAL_API_WARNING"
44135	//   "FIELD_VALUE_OVERRIDEN"
44136	//   "INJECTED_KERNELS_DEPRECATED"
44137	//   "LARGE_DEPLOYMENT_WARNING"
44138	//   "MISSING_TYPE_DEPENDENCY"
44139	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44140	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44141	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44142	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44143	//   "NEXT_HOP_NOT_RUNNING"
44144	//   "NOT_CRITICAL_ERROR"
44145	//   "NO_RESULTS_ON_PAGE"
44146	//   "PARTIAL_SUCCESS"
44147	//   "REQUIRED_TOS_AGREEMENT"
44148	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44149	//   "RESOURCE_NOT_DELETED"
44150	//   "SCHEMA_VALIDATION_IGNORED"
44151	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44152	//   "UNDECLARED_PROPERTIES"
44153	//   "UNREACHABLE"
44154	Code string `json:"code,omitempty"`
44155
44156	// Data: [Output Only] Metadata about this warning in key: value format.
44157	// For example:
44158	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44159	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
44160
44161	// Message: [Output Only] A human-readable description of the warning
44162	// code.
44163	Message string `json:"message,omitempty"`
44164
44165	// ForceSendFields is a list of field names (e.g. "Code") to
44166	// unconditionally include in API requests. By default, fields with
44167	// empty values are omitted from API requests. However, any non-pointer,
44168	// non-interface field appearing in ForceSendFields will be sent to the
44169	// server regardless of whether the field is empty or not. This may be
44170	// used to include empty fields in Patch requests.
44171	ForceSendFields []string `json:"-"`
44172
44173	// NullFields is a list of field names (e.g. "Code") to include in API
44174	// requests with the JSON null value. By default, fields with empty
44175	// values are omitted from API requests. However, any field with an
44176	// empty value appearing in NullFields will be sent to the server as
44177	// null. It is an error if a field in this list has a non-empty value.
44178	// This may be used to include null fields in Patch requests.
44179	NullFields []string `json:"-"`
44180}
44181
44182func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
44183	type NoMethod TargetHttpsProxyListWarning
44184	raw := NoMethod(*s)
44185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44186}
44187
44188type TargetHttpsProxyListWarningData struct {
44189	// Key: [Output Only] A key that provides more detail on the warning
44190	// being returned. For example, for warnings where there are no results
44191	// in a list request for a particular zone, this key might be scope and
44192	// the key value might be the zone name. Other examples might be a key
44193	// indicating a deprecated resource and a suggested replacement, or a
44194	// warning about invalid network settings (for example, if an instance
44195	// attempts to perform IP forwarding but is not enabled for IP
44196	// forwarding).
44197	Key string `json:"key,omitempty"`
44198
44199	// Value: [Output Only] A warning data value corresponding to the key.
44200	Value string `json:"value,omitempty"`
44201
44202	// ForceSendFields is a list of field names (e.g. "Key") to
44203	// unconditionally include in API requests. By default, fields with
44204	// empty values are omitted from API requests. However, any non-pointer,
44205	// non-interface field appearing in ForceSendFields will be sent to the
44206	// server regardless of whether the field is empty or not. This may be
44207	// used to include empty fields in Patch requests.
44208	ForceSendFields []string `json:"-"`
44209
44210	// NullFields is a list of field names (e.g. "Key") to include in API
44211	// requests with the JSON null value. By default, fields with empty
44212	// values are omitted from API requests. However, any field with an
44213	// empty value appearing in NullFields will be sent to the server as
44214	// null. It is an error if a field in this list has a non-empty value.
44215	// This may be used to include null fields in Patch requests.
44216	NullFields []string `json:"-"`
44217}
44218
44219func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
44220	type NoMethod TargetHttpsProxyListWarningData
44221	raw := NoMethod(*s)
44222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44223}
44224
44225// TargetInstance: Represents a Target Instance resource.
44226//
44227// You can use a target instance to handle traffic for one or more
44228// forwarding rules, which is ideal for forwarding protocol traffic that
44229// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
44230// more information, read Target instances. (== resource_for
44231// {$api_version}.targetInstances ==)
44232type TargetInstance struct {
44233	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44234	// format.
44235	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44236
44237	// Description: An optional description of this resource. Provide this
44238	// property when you create the resource.
44239	Description string `json:"description,omitempty"`
44240
44241	// Id: [Output Only] The unique identifier for the resource. This
44242	// identifier is defined by the server.
44243	Id uint64 `json:"id,omitempty,string"`
44244
44245	// Instance: A URL to the virtual machine instance that handles traffic
44246	// for this target instance. When creating a target instance, you can
44247	// provide the fully-qualified URL or a valid partial URL to the desired
44248	// virtual machine. For example, the following are all valid URLs:
44249	// -
44250	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
44251	//
44252	// - projects/project/zones/zone/instances/instance
44253	// - zones/zone/instances/instance
44254	Instance string `json:"instance,omitempty"`
44255
44256	// Kind: [Output Only] The type of the resource. Always
44257	// compute#targetInstance for target instances.
44258	Kind string `json:"kind,omitempty"`
44259
44260	// Name: Name of the resource. Provided by the client when the resource
44261	// is created. The name must be 1-63 characters long, and comply with
44262	// RFC1035. Specifically, the name must be 1-63 characters long and
44263	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44264	// the first character must be a lowercase letter, and all following
44265	// characters must be a dash, lowercase letter, or digit, except the
44266	// last character, which cannot be a dash.
44267	Name string `json:"name,omitempty"`
44268
44269	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
44270	// Currently only NO_NAT (default value) is supported.
44271	//
44272	// Possible values:
44273	//   "NO_NAT"
44274	NatPolicy string `json:"natPolicy,omitempty"`
44275
44276	// Network: The URL of the network this target instance uses to forward
44277	// traffic. If not specified, the traffic will be forwarded to the
44278	// network that the default network interface belongs to.
44279	Network string `json:"network,omitempty"`
44280
44281	// SelfLink: [Output Only] Server-defined URL for the resource.
44282	SelfLink string `json:"selfLink,omitempty"`
44283
44284	// Zone: [Output Only] URL of the zone where the target instance
44285	// resides. You must specify this field as part of the HTTP request URL.
44286	// It is not settable as a field in the request body.
44287	Zone string `json:"zone,omitempty"`
44288
44289	// ServerResponse contains the HTTP response code and headers from the
44290	// server.
44291	googleapi.ServerResponse `json:"-"`
44292
44293	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
44294	// to unconditionally include in API requests. By default, fields with
44295	// empty values are omitted from API requests. However, any non-pointer,
44296	// non-interface field appearing in ForceSendFields will be sent to the
44297	// server regardless of whether the field is empty or not. This may be
44298	// used to include empty fields in Patch requests.
44299	ForceSendFields []string `json:"-"`
44300
44301	// NullFields is a list of field names (e.g. "CreationTimestamp") to
44302	// include in API requests with the JSON null value. By default, fields
44303	// with empty values are omitted from API requests. However, any field
44304	// with an empty value appearing in NullFields will be sent to the
44305	// server as null. It is an error if a field in this list has a
44306	// non-empty value. This may be used to include null fields in Patch
44307	// requests.
44308	NullFields []string `json:"-"`
44309}
44310
44311func (s *TargetInstance) MarshalJSON() ([]byte, error) {
44312	type NoMethod TargetInstance
44313	raw := NoMethod(*s)
44314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44315}
44316
44317type TargetInstanceAggregatedList struct {
44318	// Id: [Output Only] Unique identifier for the resource; defined by the
44319	// server.
44320	Id string `json:"id,omitempty"`
44321
44322	// Items: A list of TargetInstance resources.
44323	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
44324
44325	// Kind: Type of resource.
44326	Kind string `json:"kind,omitempty"`
44327
44328	// NextPageToken: [Output Only] This token allows you to get the next
44329	// page of results for list requests. If the number of results is larger
44330	// than maxResults, use the nextPageToken as a value for the query
44331	// parameter pageToken in the next list request. Subsequent list
44332	// requests will have their own nextPageToken to continue paging through
44333	// the results.
44334	NextPageToken string `json:"nextPageToken,omitempty"`
44335
44336	// SelfLink: [Output Only] Server-defined URL for this resource.
44337	SelfLink string `json:"selfLink,omitempty"`
44338
44339	// Unreachables: [Output Only] Unreachable resources.
44340	Unreachables []string `json:"unreachables,omitempty"`
44341
44342	// Warning: [Output Only] Informational warning message.
44343	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
44344
44345	// ServerResponse contains the HTTP response code and headers from the
44346	// server.
44347	googleapi.ServerResponse `json:"-"`
44348
44349	// ForceSendFields is a list of field names (e.g. "Id") to
44350	// unconditionally include in API requests. By default, fields with
44351	// empty values are omitted from API requests. However, any non-pointer,
44352	// non-interface field appearing in ForceSendFields will be sent to the
44353	// server regardless of whether the field is empty or not. This may be
44354	// used to include empty fields in Patch requests.
44355	ForceSendFields []string `json:"-"`
44356
44357	// NullFields is a list of field names (e.g. "Id") to include in API
44358	// requests with the JSON null value. By default, fields with empty
44359	// values are omitted from API requests. However, any field with an
44360	// empty value appearing in NullFields will be sent to the server as
44361	// null. It is an error if a field in this list has a non-empty value.
44362	// This may be used to include null fields in Patch requests.
44363	NullFields []string `json:"-"`
44364}
44365
44366func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
44367	type NoMethod TargetInstanceAggregatedList
44368	raw := NoMethod(*s)
44369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44370}
44371
44372// TargetInstanceAggregatedListWarning: [Output Only] Informational
44373// warning message.
44374type TargetInstanceAggregatedListWarning struct {
44375	// Code: [Output Only] A warning code, if applicable. For example,
44376	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44377	// the response.
44378	//
44379	// Possible values:
44380	//   "CLEANUP_FAILED"
44381	//   "DEPRECATED_RESOURCE_USED"
44382	//   "DEPRECATED_TYPE_USED"
44383	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44384	//   "EXPERIMENTAL_TYPE_USED"
44385	//   "EXTERNAL_API_WARNING"
44386	//   "FIELD_VALUE_OVERRIDEN"
44387	//   "INJECTED_KERNELS_DEPRECATED"
44388	//   "LARGE_DEPLOYMENT_WARNING"
44389	//   "MISSING_TYPE_DEPENDENCY"
44390	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44391	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44392	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44393	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44394	//   "NEXT_HOP_NOT_RUNNING"
44395	//   "NOT_CRITICAL_ERROR"
44396	//   "NO_RESULTS_ON_PAGE"
44397	//   "PARTIAL_SUCCESS"
44398	//   "REQUIRED_TOS_AGREEMENT"
44399	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44400	//   "RESOURCE_NOT_DELETED"
44401	//   "SCHEMA_VALIDATION_IGNORED"
44402	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44403	//   "UNDECLARED_PROPERTIES"
44404	//   "UNREACHABLE"
44405	Code string `json:"code,omitempty"`
44406
44407	// Data: [Output Only] Metadata about this warning in key: value format.
44408	// For example:
44409	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44410	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
44411
44412	// Message: [Output Only] A human-readable description of the warning
44413	// code.
44414	Message string `json:"message,omitempty"`
44415
44416	// ForceSendFields is a list of field names (e.g. "Code") to
44417	// unconditionally include in API requests. By default, fields with
44418	// empty values are omitted from API requests. However, any non-pointer,
44419	// non-interface field appearing in ForceSendFields will be sent to the
44420	// server regardless of whether the field is empty or not. This may be
44421	// used to include empty fields in Patch requests.
44422	ForceSendFields []string `json:"-"`
44423
44424	// NullFields is a list of field names (e.g. "Code") to include in API
44425	// requests with the JSON null value. By default, fields with empty
44426	// values are omitted from API requests. However, any field with an
44427	// empty value appearing in NullFields will be sent to the server as
44428	// null. It is an error if a field in this list has a non-empty value.
44429	// This may be used to include null fields in Patch requests.
44430	NullFields []string `json:"-"`
44431}
44432
44433func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
44434	type NoMethod TargetInstanceAggregatedListWarning
44435	raw := NoMethod(*s)
44436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44437}
44438
44439type TargetInstanceAggregatedListWarningData struct {
44440	// Key: [Output Only] A key that provides more detail on the warning
44441	// being returned. For example, for warnings where there are no results
44442	// in a list request for a particular zone, this key might be scope and
44443	// the key value might be the zone name. Other examples might be a key
44444	// indicating a deprecated resource and a suggested replacement, or a
44445	// warning about invalid network settings (for example, if an instance
44446	// attempts to perform IP forwarding but is not enabled for IP
44447	// forwarding).
44448	Key string `json:"key,omitempty"`
44449
44450	// Value: [Output Only] A warning data value corresponding to the key.
44451	Value string `json:"value,omitempty"`
44452
44453	// ForceSendFields is a list of field names (e.g. "Key") to
44454	// unconditionally include in API requests. By default, fields with
44455	// empty values are omitted from API requests. However, any non-pointer,
44456	// non-interface field appearing in ForceSendFields will be sent to the
44457	// server regardless of whether the field is empty or not. This may be
44458	// used to include empty fields in Patch requests.
44459	ForceSendFields []string `json:"-"`
44460
44461	// NullFields is a list of field names (e.g. "Key") to include in API
44462	// requests with the JSON null value. By default, fields with empty
44463	// values are omitted from API requests. However, any field with an
44464	// empty value appearing in NullFields will be sent to the server as
44465	// null. It is an error if a field in this list has a non-empty value.
44466	// This may be used to include null fields in Patch requests.
44467	NullFields []string `json:"-"`
44468}
44469
44470func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44471	type NoMethod TargetInstanceAggregatedListWarningData
44472	raw := NoMethod(*s)
44473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44474}
44475
44476// TargetInstanceList: Contains a list of TargetInstance resources.
44477type TargetInstanceList struct {
44478	// Id: [Output Only] Unique identifier for the resource; defined by the
44479	// server.
44480	Id string `json:"id,omitempty"`
44481
44482	// Items: A list of TargetInstance resources.
44483	Items []*TargetInstance `json:"items,omitempty"`
44484
44485	// Kind: Type of resource.
44486	Kind string `json:"kind,omitempty"`
44487
44488	// NextPageToken: [Output Only] This token allows you to get the next
44489	// page of results for list requests. If the number of results is larger
44490	// than maxResults, use the nextPageToken as a value for the query
44491	// parameter pageToken in the next list request. Subsequent list
44492	// requests will have their own nextPageToken to continue paging through
44493	// the results.
44494	NextPageToken string `json:"nextPageToken,omitempty"`
44495
44496	// SelfLink: [Output Only] Server-defined URL for this resource.
44497	SelfLink string `json:"selfLink,omitempty"`
44498
44499	// Warning: [Output Only] Informational warning message.
44500	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
44501
44502	// ServerResponse contains the HTTP response code and headers from the
44503	// server.
44504	googleapi.ServerResponse `json:"-"`
44505
44506	// ForceSendFields is a list of field names (e.g. "Id") to
44507	// unconditionally include in API requests. By default, fields with
44508	// empty values are omitted from API requests. However, any non-pointer,
44509	// non-interface field appearing in ForceSendFields will be sent to the
44510	// server regardless of whether the field is empty or not. This may be
44511	// used to include empty fields in Patch requests.
44512	ForceSendFields []string `json:"-"`
44513
44514	// NullFields is a list of field names (e.g. "Id") to include in API
44515	// requests with the JSON null value. By default, fields with empty
44516	// values are omitted from API requests. However, any field with an
44517	// empty value appearing in NullFields will be sent to the server as
44518	// null. It is an error if a field in this list has a non-empty value.
44519	// This may be used to include null fields in Patch requests.
44520	NullFields []string `json:"-"`
44521}
44522
44523func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
44524	type NoMethod TargetInstanceList
44525	raw := NoMethod(*s)
44526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44527}
44528
44529// TargetInstanceListWarning: [Output Only] Informational warning
44530// message.
44531type TargetInstanceListWarning struct {
44532	// Code: [Output Only] A warning code, if applicable. For example,
44533	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44534	// the response.
44535	//
44536	// Possible values:
44537	//   "CLEANUP_FAILED"
44538	//   "DEPRECATED_RESOURCE_USED"
44539	//   "DEPRECATED_TYPE_USED"
44540	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44541	//   "EXPERIMENTAL_TYPE_USED"
44542	//   "EXTERNAL_API_WARNING"
44543	//   "FIELD_VALUE_OVERRIDEN"
44544	//   "INJECTED_KERNELS_DEPRECATED"
44545	//   "LARGE_DEPLOYMENT_WARNING"
44546	//   "MISSING_TYPE_DEPENDENCY"
44547	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44548	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44549	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44550	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44551	//   "NEXT_HOP_NOT_RUNNING"
44552	//   "NOT_CRITICAL_ERROR"
44553	//   "NO_RESULTS_ON_PAGE"
44554	//   "PARTIAL_SUCCESS"
44555	//   "REQUIRED_TOS_AGREEMENT"
44556	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44557	//   "RESOURCE_NOT_DELETED"
44558	//   "SCHEMA_VALIDATION_IGNORED"
44559	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44560	//   "UNDECLARED_PROPERTIES"
44561	//   "UNREACHABLE"
44562	Code string `json:"code,omitempty"`
44563
44564	// Data: [Output Only] Metadata about this warning in key: value format.
44565	// For example:
44566	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44567	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
44568
44569	// Message: [Output Only] A human-readable description of the warning
44570	// code.
44571	Message string `json:"message,omitempty"`
44572
44573	// ForceSendFields is a list of field names (e.g. "Code") to
44574	// unconditionally include in API requests. By default, fields with
44575	// empty values are omitted from API requests. However, any non-pointer,
44576	// non-interface field appearing in ForceSendFields will be sent to the
44577	// server regardless of whether the field is empty or not. This may be
44578	// used to include empty fields in Patch requests.
44579	ForceSendFields []string `json:"-"`
44580
44581	// NullFields is a list of field names (e.g. "Code") to include in API
44582	// requests with the JSON null value. By default, fields with empty
44583	// values are omitted from API requests. However, any field with an
44584	// empty value appearing in NullFields will be sent to the server as
44585	// null. It is an error if a field in this list has a non-empty value.
44586	// This may be used to include null fields in Patch requests.
44587	NullFields []string `json:"-"`
44588}
44589
44590func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
44591	type NoMethod TargetInstanceListWarning
44592	raw := NoMethod(*s)
44593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44594}
44595
44596type TargetInstanceListWarningData struct {
44597	// Key: [Output Only] A key that provides more detail on the warning
44598	// being returned. For example, for warnings where there are no results
44599	// in a list request for a particular zone, this key might be scope and
44600	// the key value might be the zone name. Other examples might be a key
44601	// indicating a deprecated resource and a suggested replacement, or a
44602	// warning about invalid network settings (for example, if an instance
44603	// attempts to perform IP forwarding but is not enabled for IP
44604	// forwarding).
44605	Key string `json:"key,omitempty"`
44606
44607	// Value: [Output Only] A warning data value corresponding to the key.
44608	Value string `json:"value,omitempty"`
44609
44610	// ForceSendFields is a list of field names (e.g. "Key") to
44611	// unconditionally include in API requests. By default, fields with
44612	// empty values are omitted from API requests. However, any non-pointer,
44613	// non-interface field appearing in ForceSendFields will be sent to the
44614	// server regardless of whether the field is empty or not. This may be
44615	// used to include empty fields in Patch requests.
44616	ForceSendFields []string `json:"-"`
44617
44618	// NullFields is a list of field names (e.g. "Key") to include in API
44619	// requests with the JSON null value. By default, fields with empty
44620	// values are omitted from API requests. However, any field with an
44621	// empty value appearing in NullFields will be sent to the server as
44622	// null. It is an error if a field in this list has a non-empty value.
44623	// This may be used to include null fields in Patch requests.
44624	NullFields []string `json:"-"`
44625}
44626
44627func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
44628	type NoMethod TargetInstanceListWarningData
44629	raw := NoMethod(*s)
44630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44631}
44632
44633type TargetInstancesScopedList struct {
44634	// TargetInstances: A list of target instances contained in this scope.
44635	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
44636
44637	// Warning: Informational warning which replaces the list of addresses
44638	// when the list is empty.
44639	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
44640
44641	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
44642	// unconditionally include in API requests. By default, fields with
44643	// empty values are omitted from API requests. However, any non-pointer,
44644	// non-interface field appearing in ForceSendFields will be sent to the
44645	// server regardless of whether the field is empty or not. This may be
44646	// used to include empty fields in Patch requests.
44647	ForceSendFields []string `json:"-"`
44648
44649	// NullFields is a list of field names (e.g. "TargetInstances") to
44650	// include in API requests with the JSON null value. By default, fields
44651	// with empty values are omitted from API requests. However, any field
44652	// with an empty value appearing in NullFields will be sent to the
44653	// server as null. It is an error if a field in this list has a
44654	// non-empty value. This may be used to include null fields in Patch
44655	// requests.
44656	NullFields []string `json:"-"`
44657}
44658
44659func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
44660	type NoMethod TargetInstancesScopedList
44661	raw := NoMethod(*s)
44662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44663}
44664
44665// TargetInstancesScopedListWarning: Informational warning which
44666// replaces the list of addresses when the list is empty.
44667type TargetInstancesScopedListWarning struct {
44668	// Code: [Output Only] A warning code, if applicable. For example,
44669	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44670	// the response.
44671	//
44672	// Possible values:
44673	//   "CLEANUP_FAILED"
44674	//   "DEPRECATED_RESOURCE_USED"
44675	//   "DEPRECATED_TYPE_USED"
44676	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44677	//   "EXPERIMENTAL_TYPE_USED"
44678	//   "EXTERNAL_API_WARNING"
44679	//   "FIELD_VALUE_OVERRIDEN"
44680	//   "INJECTED_KERNELS_DEPRECATED"
44681	//   "LARGE_DEPLOYMENT_WARNING"
44682	//   "MISSING_TYPE_DEPENDENCY"
44683	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44684	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44685	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44686	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44687	//   "NEXT_HOP_NOT_RUNNING"
44688	//   "NOT_CRITICAL_ERROR"
44689	//   "NO_RESULTS_ON_PAGE"
44690	//   "PARTIAL_SUCCESS"
44691	//   "REQUIRED_TOS_AGREEMENT"
44692	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44693	//   "RESOURCE_NOT_DELETED"
44694	//   "SCHEMA_VALIDATION_IGNORED"
44695	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44696	//   "UNDECLARED_PROPERTIES"
44697	//   "UNREACHABLE"
44698	Code string `json:"code,omitempty"`
44699
44700	// Data: [Output Only] Metadata about this warning in key: value format.
44701	// For example:
44702	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44703	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
44704
44705	// Message: [Output Only] A human-readable description of the warning
44706	// code.
44707	Message string `json:"message,omitempty"`
44708
44709	// ForceSendFields is a list of field names (e.g. "Code") to
44710	// unconditionally include in API requests. By default, fields with
44711	// empty values are omitted from API requests. However, any non-pointer,
44712	// non-interface field appearing in ForceSendFields will be sent to the
44713	// server regardless of whether the field is empty or not. This may be
44714	// used to include empty fields in Patch requests.
44715	ForceSendFields []string `json:"-"`
44716
44717	// NullFields is a list of field names (e.g. "Code") to include in API
44718	// requests with the JSON null value. By default, fields with empty
44719	// values are omitted from API requests. However, any field with an
44720	// empty value appearing in NullFields will be sent to the server as
44721	// null. It is an error if a field in this list has a non-empty value.
44722	// This may be used to include null fields in Patch requests.
44723	NullFields []string `json:"-"`
44724}
44725
44726func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
44727	type NoMethod TargetInstancesScopedListWarning
44728	raw := NoMethod(*s)
44729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44730}
44731
44732type TargetInstancesScopedListWarningData struct {
44733	// Key: [Output Only] A key that provides more detail on the warning
44734	// being returned. For example, for warnings where there are no results
44735	// in a list request for a particular zone, this key might be scope and
44736	// the key value might be the zone name. Other examples might be a key
44737	// indicating a deprecated resource and a suggested replacement, or a
44738	// warning about invalid network settings (for example, if an instance
44739	// attempts to perform IP forwarding but is not enabled for IP
44740	// forwarding).
44741	Key string `json:"key,omitempty"`
44742
44743	// Value: [Output Only] A warning data value corresponding to the key.
44744	Value string `json:"value,omitempty"`
44745
44746	// ForceSendFields is a list of field names (e.g. "Key") to
44747	// unconditionally include in API requests. By default, fields with
44748	// empty values are omitted from API requests. However, any non-pointer,
44749	// non-interface field appearing in ForceSendFields will be sent to the
44750	// server regardless of whether the field is empty or not. This may be
44751	// used to include empty fields in Patch requests.
44752	ForceSendFields []string `json:"-"`
44753
44754	// NullFields is a list of field names (e.g. "Key") to include in API
44755	// requests with the JSON null value. By default, fields with empty
44756	// values are omitted from API requests. However, any field with an
44757	// empty value appearing in NullFields will be sent to the server as
44758	// null. It is an error if a field in this list has a non-empty value.
44759	// This may be used to include null fields in Patch requests.
44760	NullFields []string `json:"-"`
44761}
44762
44763func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
44764	type NoMethod TargetInstancesScopedListWarningData
44765	raw := NoMethod(*s)
44766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44767}
44768
44769// TargetPool: Represents a Target Pool resource.
44770//
44771// Target pools are used for network TCP/UDP load balancing. A target
44772// pool references member instances, an associated legacy
44773// HttpHealthCheck resource, and, optionally, a backup target pool. For
44774// more information, read Using target pools. (== resource_for
44775// {$api_version}.targetPools ==)
44776type TargetPool struct {
44777	// BackupPool: The server-defined URL for the resource. This field is
44778	// applicable only when the containing target pool is serving a
44779	// forwarding rule as the primary pool, and its failoverRatio field is
44780	// properly set to a value between [0, 1].
44781	//
44782	// backupPool and failoverRatio together define the fallback behavior of
44783	// the primary target pool: if the ratio of the healthy instances in the
44784	// primary pool is at or below failoverRatio, traffic arriving at the
44785	// load-balanced IP will be directed to the backup pool.
44786	//
44787	// In case where failoverRatio and backupPool are not set, or all the
44788	// instances in the backup pool are unhealthy, the traffic will be
44789	// directed back to the primary pool in the "force" mode, where traffic
44790	// will be spread to the healthy instances with the best effort, or to
44791	// all instances when no instance is healthy.
44792	BackupPool string `json:"backupPool,omitempty"`
44793
44794	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44795	// format.
44796	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44797
44798	// Description: An optional description of this resource. Provide this
44799	// property when you create the resource.
44800	Description string `json:"description,omitempty"`
44801
44802	// FailoverRatio: This field is applicable only when the containing
44803	// target pool is serving a forwarding rule as the primary pool (i.e.,
44804	// not as a backup pool to some other target pool). The value of the
44805	// field must be in [0, 1].
44806	//
44807	// If set, backupPool must also be set. They together define the
44808	// fallback behavior of the primary target pool: if the ratio of the
44809	// healthy instances in the primary pool is at or below this number,
44810	// traffic arriving at the load-balanced IP will be directed to the
44811	// backup pool.
44812	//
44813	// In case where failoverRatio is not set or all the instances in the
44814	// backup pool are unhealthy, the traffic will be directed back to the
44815	// primary pool in the "force" mode, where traffic will be spread to the
44816	// healthy instances with the best effort, or to all instances when no
44817	// instance is healthy.
44818	FailoverRatio float64 `json:"failoverRatio,omitempty"`
44819
44820	// HealthChecks: The URL of the HttpHealthCheck resource. A member
44821	// instance in this pool is considered healthy if and only if the health
44822	// checks pass. Only legacy HttpHealthChecks are supported. Only one
44823	// health check may be specified.
44824	HealthChecks []string `json:"healthChecks,omitempty"`
44825
44826	// Id: [Output Only] The unique identifier for the resource. This
44827	// identifier is defined by the server.
44828	Id uint64 `json:"id,omitempty,string"`
44829
44830	// Instances: A list of resource URLs to the virtual machine instances
44831	// serving this pool. They must live in zones contained in the same
44832	// region as this pool.
44833	Instances []string `json:"instances,omitempty"`
44834
44835	// Kind: [Output Only] Type of the resource. Always compute#targetPool
44836	// for target pools.
44837	Kind string `json:"kind,omitempty"`
44838
44839	// Name: Name of the resource. Provided by the client when the resource
44840	// is created. The name must be 1-63 characters long, and comply with
44841	// RFC1035. Specifically, the name must be 1-63 characters long and
44842	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44843	// the first character must be a lowercase letter, and all following
44844	// characters must be a dash, lowercase letter, or digit, except the
44845	// last character, which cannot be a dash.
44846	Name string `json:"name,omitempty"`
44847
44848	// Region: [Output Only] URL of the region where the target pool
44849	// resides.
44850	Region string `json:"region,omitempty"`
44851
44852	// SelfLink: [Output Only] Server-defined URL for the resource.
44853	SelfLink string `json:"selfLink,omitempty"`
44854
44855	// SessionAffinity: Session affinity option, must be one of the
44856	// following values:
44857	// NONE: Connections from the same client IP may go to any instance in
44858	// the pool.
44859	// CLIENT_IP: Connections from the same client IP will go to the same
44860	// instance in the pool while that instance remains
44861	// healthy.
44862	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
44863	// protocol will go to the same instance in the pool while that instance
44864	// remains healthy.
44865	//
44866	// Possible values:
44867	//   "CLIENT_IP"
44868	//   "CLIENT_IP_NO_DESTINATION"
44869	//   "CLIENT_IP_PORT_PROTO"
44870	//   "CLIENT_IP_PROTO"
44871	//   "GENERATED_COOKIE"
44872	//   "HEADER_FIELD"
44873	//   "HTTP_COOKIE"
44874	//   "NONE"
44875	SessionAffinity string `json:"sessionAffinity,omitempty"`
44876
44877	// ServerResponse contains the HTTP response code and headers from the
44878	// server.
44879	googleapi.ServerResponse `json:"-"`
44880
44881	// ForceSendFields is a list of field names (e.g. "BackupPool") to
44882	// unconditionally include in API requests. By default, fields with
44883	// empty values are omitted from API requests. However, any non-pointer,
44884	// non-interface field appearing in ForceSendFields will be sent to the
44885	// server regardless of whether the field is empty or not. This may be
44886	// used to include empty fields in Patch requests.
44887	ForceSendFields []string `json:"-"`
44888
44889	// NullFields is a list of field names (e.g. "BackupPool") to include in
44890	// API requests with the JSON null value. By default, fields with empty
44891	// values are omitted from API requests. However, any field with an
44892	// empty value appearing in NullFields will be sent to the server as
44893	// null. It is an error if a field in this list has a non-empty value.
44894	// This may be used to include null fields in Patch requests.
44895	NullFields []string `json:"-"`
44896}
44897
44898func (s *TargetPool) MarshalJSON() ([]byte, error) {
44899	type NoMethod TargetPool
44900	raw := NoMethod(*s)
44901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44902}
44903
44904func (s *TargetPool) UnmarshalJSON(data []byte) error {
44905	type NoMethod TargetPool
44906	var s1 struct {
44907		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
44908		*NoMethod
44909	}
44910	s1.NoMethod = (*NoMethod)(s)
44911	if err := json.Unmarshal(data, &s1); err != nil {
44912		return err
44913	}
44914	s.FailoverRatio = float64(s1.FailoverRatio)
44915	return nil
44916}
44917
44918type TargetPoolAggregatedList struct {
44919	// Id: [Output Only] Unique identifier for the resource; defined by the
44920	// server.
44921	Id string `json:"id,omitempty"`
44922
44923	// Items: A list of TargetPool resources.
44924	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
44925
44926	// Kind: [Output Only] Type of resource. Always
44927	// compute#targetPoolAggregatedList for aggregated lists of target
44928	// pools.
44929	Kind string `json:"kind,omitempty"`
44930
44931	// NextPageToken: [Output Only] This token allows you to get the next
44932	// page of results for list requests. If the number of results is larger
44933	// than maxResults, use the nextPageToken as a value for the query
44934	// parameter pageToken in the next list request. Subsequent list
44935	// requests will have their own nextPageToken to continue paging through
44936	// the results.
44937	NextPageToken string `json:"nextPageToken,omitempty"`
44938
44939	// SelfLink: [Output Only] Server-defined URL for this resource.
44940	SelfLink string `json:"selfLink,omitempty"`
44941
44942	// Unreachables: [Output Only] Unreachable resources.
44943	Unreachables []string `json:"unreachables,omitempty"`
44944
44945	// Warning: [Output Only] Informational warning message.
44946	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
44947
44948	// ServerResponse contains the HTTP response code and headers from the
44949	// server.
44950	googleapi.ServerResponse `json:"-"`
44951
44952	// ForceSendFields is a list of field names (e.g. "Id") to
44953	// unconditionally include in API requests. By default, fields with
44954	// empty values are omitted from API requests. However, any non-pointer,
44955	// non-interface field appearing in ForceSendFields will be sent to the
44956	// server regardless of whether the field is empty or not. This may be
44957	// used to include empty fields in Patch requests.
44958	ForceSendFields []string `json:"-"`
44959
44960	// NullFields is a list of field names (e.g. "Id") to include in API
44961	// requests with the JSON null value. By default, fields with empty
44962	// values are omitted from API requests. However, any field with an
44963	// empty value appearing in NullFields will be sent to the server as
44964	// null. It is an error if a field in this list has a non-empty value.
44965	// This may be used to include null fields in Patch requests.
44966	NullFields []string `json:"-"`
44967}
44968
44969func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
44970	type NoMethod TargetPoolAggregatedList
44971	raw := NoMethod(*s)
44972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44973}
44974
44975// TargetPoolAggregatedListWarning: [Output Only] Informational warning
44976// message.
44977type TargetPoolAggregatedListWarning struct {
44978	// Code: [Output Only] A warning code, if applicable. For example,
44979	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44980	// the response.
44981	//
44982	// Possible values:
44983	//   "CLEANUP_FAILED"
44984	//   "DEPRECATED_RESOURCE_USED"
44985	//   "DEPRECATED_TYPE_USED"
44986	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44987	//   "EXPERIMENTAL_TYPE_USED"
44988	//   "EXTERNAL_API_WARNING"
44989	//   "FIELD_VALUE_OVERRIDEN"
44990	//   "INJECTED_KERNELS_DEPRECATED"
44991	//   "LARGE_DEPLOYMENT_WARNING"
44992	//   "MISSING_TYPE_DEPENDENCY"
44993	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44994	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44995	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44996	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44997	//   "NEXT_HOP_NOT_RUNNING"
44998	//   "NOT_CRITICAL_ERROR"
44999	//   "NO_RESULTS_ON_PAGE"
45000	//   "PARTIAL_SUCCESS"
45001	//   "REQUIRED_TOS_AGREEMENT"
45002	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45003	//   "RESOURCE_NOT_DELETED"
45004	//   "SCHEMA_VALIDATION_IGNORED"
45005	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45006	//   "UNDECLARED_PROPERTIES"
45007	//   "UNREACHABLE"
45008	Code string `json:"code,omitempty"`
45009
45010	// Data: [Output Only] Metadata about this warning in key: value format.
45011	// For example:
45012	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45013	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
45014
45015	// Message: [Output Only] A human-readable description of the warning
45016	// code.
45017	Message string `json:"message,omitempty"`
45018
45019	// ForceSendFields is a list of field names (e.g. "Code") to
45020	// unconditionally include in API requests. By default, fields with
45021	// empty values are omitted from API requests. However, any non-pointer,
45022	// non-interface field appearing in ForceSendFields will be sent to the
45023	// server regardless of whether the field is empty or not. This may be
45024	// used to include empty fields in Patch requests.
45025	ForceSendFields []string `json:"-"`
45026
45027	// NullFields is a list of field names (e.g. "Code") to include in API
45028	// requests with the JSON null value. By default, fields with empty
45029	// values are omitted from API requests. However, any field with an
45030	// empty value appearing in NullFields will be sent to the server as
45031	// null. It is an error if a field in this list has a non-empty value.
45032	// This may be used to include null fields in Patch requests.
45033	NullFields []string `json:"-"`
45034}
45035
45036func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
45037	type NoMethod TargetPoolAggregatedListWarning
45038	raw := NoMethod(*s)
45039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45040}
45041
45042type TargetPoolAggregatedListWarningData struct {
45043	// Key: [Output Only] A key that provides more detail on the warning
45044	// being returned. For example, for warnings where there are no results
45045	// in a list request for a particular zone, this key might be scope and
45046	// the key value might be the zone name. Other examples might be a key
45047	// indicating a deprecated resource and a suggested replacement, or a
45048	// warning about invalid network settings (for example, if an instance
45049	// attempts to perform IP forwarding but is not enabled for IP
45050	// forwarding).
45051	Key string `json:"key,omitempty"`
45052
45053	// Value: [Output Only] A warning data value corresponding to the key.
45054	Value string `json:"value,omitempty"`
45055
45056	// ForceSendFields is a list of field names (e.g. "Key") to
45057	// unconditionally include in API requests. By default, fields with
45058	// empty values are omitted from API requests. However, any non-pointer,
45059	// non-interface field appearing in ForceSendFields will be sent to the
45060	// server regardless of whether the field is empty or not. This may be
45061	// used to include empty fields in Patch requests.
45062	ForceSendFields []string `json:"-"`
45063
45064	// NullFields is a list of field names (e.g. "Key") to include in API
45065	// requests with the JSON null value. By default, fields with empty
45066	// values are omitted from API requests. However, any field with an
45067	// empty value appearing in NullFields will be sent to the server as
45068	// null. It is an error if a field in this list has a non-empty value.
45069	// This may be used to include null fields in Patch requests.
45070	NullFields []string `json:"-"`
45071}
45072
45073func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45074	type NoMethod TargetPoolAggregatedListWarningData
45075	raw := NoMethod(*s)
45076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45077}
45078
45079type TargetPoolInstanceHealth struct {
45080	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
45081
45082	// Kind: [Output Only] Type of resource. Always
45083	// compute#targetPoolInstanceHealth when checking the health of an
45084	// instance.
45085	Kind string `json:"kind,omitempty"`
45086
45087	// ServerResponse contains the HTTP response code and headers from the
45088	// server.
45089	googleapi.ServerResponse `json:"-"`
45090
45091	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
45092	// unconditionally include in API requests. By default, fields with
45093	// empty values are omitted from API requests. However, any non-pointer,
45094	// non-interface field appearing in ForceSendFields will be sent to the
45095	// server regardless of whether the field is empty or not. This may be
45096	// used to include empty fields in Patch requests.
45097	ForceSendFields []string `json:"-"`
45098
45099	// NullFields is a list of field names (e.g. "HealthStatus") to include
45100	// in API requests with the JSON null value. By default, fields with
45101	// empty values are omitted from API requests. However, any field with
45102	// an empty value appearing in NullFields will be sent to the server as
45103	// null. It is an error if a field in this list has a non-empty value.
45104	// This may be used to include null fields in Patch requests.
45105	NullFields []string `json:"-"`
45106}
45107
45108func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
45109	type NoMethod TargetPoolInstanceHealth
45110	raw := NoMethod(*s)
45111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45112}
45113
45114// TargetPoolList: Contains a list of TargetPool resources.
45115type TargetPoolList struct {
45116	// Id: [Output Only] Unique identifier for the resource; defined by the
45117	// server.
45118	Id string `json:"id,omitempty"`
45119
45120	// Items: A list of TargetPool resources.
45121	Items []*TargetPool `json:"items,omitempty"`
45122
45123	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
45124	// for lists of target pools.
45125	Kind string `json:"kind,omitempty"`
45126
45127	// NextPageToken: [Output Only] This token allows you to get the next
45128	// page of results for list requests. If the number of results is larger
45129	// than maxResults, use the nextPageToken as a value for the query
45130	// parameter pageToken in the next list request. Subsequent list
45131	// requests will have their own nextPageToken to continue paging through
45132	// the results.
45133	NextPageToken string `json:"nextPageToken,omitempty"`
45134
45135	// SelfLink: [Output Only] Server-defined URL for this resource.
45136	SelfLink string `json:"selfLink,omitempty"`
45137
45138	// Warning: [Output Only] Informational warning message.
45139	Warning *TargetPoolListWarning `json:"warning,omitempty"`
45140
45141	// ServerResponse contains the HTTP response code and headers from the
45142	// server.
45143	googleapi.ServerResponse `json:"-"`
45144
45145	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
45154	// requests with the JSON null value. By default, fields with empty
45155	// values are omitted from API requests. However, any field with an
45156	// 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 *TargetPoolList) MarshalJSON() ([]byte, error) {
45163	type NoMethod TargetPoolList
45164	raw := NoMethod(*s)
45165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45166}
45167
45168// TargetPoolListWarning: [Output Only] Informational warning message.
45169type TargetPoolListWarning struct {
45170	// Code: [Output Only] A warning code, if applicable. For example,
45171	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45172	// the response.
45173	//
45174	// Possible values:
45175	//   "CLEANUP_FAILED"
45176	//   "DEPRECATED_RESOURCE_USED"
45177	//   "DEPRECATED_TYPE_USED"
45178	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45179	//   "EXPERIMENTAL_TYPE_USED"
45180	//   "EXTERNAL_API_WARNING"
45181	//   "FIELD_VALUE_OVERRIDEN"
45182	//   "INJECTED_KERNELS_DEPRECATED"
45183	//   "LARGE_DEPLOYMENT_WARNING"
45184	//   "MISSING_TYPE_DEPENDENCY"
45185	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45186	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45187	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45188	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45189	//   "NEXT_HOP_NOT_RUNNING"
45190	//   "NOT_CRITICAL_ERROR"
45191	//   "NO_RESULTS_ON_PAGE"
45192	//   "PARTIAL_SUCCESS"
45193	//   "REQUIRED_TOS_AGREEMENT"
45194	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45195	//   "RESOURCE_NOT_DELETED"
45196	//   "SCHEMA_VALIDATION_IGNORED"
45197	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45198	//   "UNDECLARED_PROPERTIES"
45199	//   "UNREACHABLE"
45200	Code string `json:"code,omitempty"`
45201
45202	// Data: [Output Only] Metadata about this warning in key: value format.
45203	// For example:
45204	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45205	Data []*TargetPoolListWarningData `json:"data,omitempty"`
45206
45207	// Message: [Output Only] A human-readable description of the warning
45208	// code.
45209	Message string `json:"message,omitempty"`
45210
45211	// ForceSendFields is a list of field names (e.g. "Code") to
45212	// unconditionally include in API requests. By default, fields with
45213	// empty values are omitted from API requests. However, any non-pointer,
45214	// non-interface field appearing in ForceSendFields will be sent to the
45215	// server regardless of whether the field is empty or not. This may be
45216	// used to include empty fields in Patch requests.
45217	ForceSendFields []string `json:"-"`
45218
45219	// NullFields is a list of field names (e.g. "Code") to include in API
45220	// requests with the JSON null value. By default, fields with empty
45221	// values are omitted from API requests. However, any field with an
45222	// empty value appearing in NullFields will be sent to the server as
45223	// null. It is an error if a field in this list has a non-empty value.
45224	// This may be used to include null fields in Patch requests.
45225	NullFields []string `json:"-"`
45226}
45227
45228func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
45229	type NoMethod TargetPoolListWarning
45230	raw := NoMethod(*s)
45231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45232}
45233
45234type TargetPoolListWarningData struct {
45235	// Key: [Output Only] A key that provides more detail on the warning
45236	// being returned. For example, for warnings where there are no results
45237	// in a list request for a particular zone, this key might be scope and
45238	// the key value might be the zone name. Other examples might be a key
45239	// indicating a deprecated resource and a suggested replacement, or a
45240	// warning about invalid network settings (for example, if an instance
45241	// attempts to perform IP forwarding but is not enabled for IP
45242	// forwarding).
45243	Key string `json:"key,omitempty"`
45244
45245	// Value: [Output Only] A warning data value corresponding to the key.
45246	Value string `json:"value,omitempty"`
45247
45248	// ForceSendFields is a list of field names (e.g. "Key") to
45249	// unconditionally include in API requests. By default, fields with
45250	// empty values are omitted from API requests. However, any non-pointer,
45251	// non-interface field appearing in ForceSendFields will be sent to the
45252	// server regardless of whether the field is empty or not. This may be
45253	// used to include empty fields in Patch requests.
45254	ForceSendFields []string `json:"-"`
45255
45256	// NullFields is a list of field names (e.g. "Key") to include in API
45257	// requests with the JSON null value. By default, fields with empty
45258	// values are omitted from API requests. However, any field with an
45259	// empty value appearing in NullFields will be sent to the server as
45260	// null. It is an error if a field in this list has a non-empty value.
45261	// This may be used to include null fields in Patch requests.
45262	NullFields []string `json:"-"`
45263}
45264
45265func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
45266	type NoMethod TargetPoolListWarningData
45267	raw := NoMethod(*s)
45268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45269}
45270
45271type TargetPoolsAddHealthCheckRequest struct {
45272	// HealthChecks: The HttpHealthCheck to add to the target pool.
45273	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
45274
45275	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
45276	// unconditionally include in API requests. By default, fields with
45277	// empty values are omitted from API requests. However, any non-pointer,
45278	// non-interface field appearing in ForceSendFields will be sent to the
45279	// server regardless of whether the field is empty or not. This may be
45280	// used to include empty fields in Patch requests.
45281	ForceSendFields []string `json:"-"`
45282
45283	// NullFields is a list of field names (e.g. "HealthChecks") to include
45284	// in API requests with the JSON null value. By default, fields with
45285	// empty values are omitted from API requests. However, any field with
45286	// an empty value appearing in NullFields will be sent to the server as
45287	// null. It is an error if a field in this list has a non-empty value.
45288	// This may be used to include null fields in Patch requests.
45289	NullFields []string `json:"-"`
45290}
45291
45292func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
45293	type NoMethod TargetPoolsAddHealthCheckRequest
45294	raw := NoMethod(*s)
45295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45296}
45297
45298type TargetPoolsAddInstanceRequest struct {
45299	// Instances: A full or partial URL to an instance to add to this target
45300	// pool. This can be a full or partial URL. For example, the following
45301	// are valid URLs:
45302	// -
45303	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
45304	//
45305	// - projects/project-id/zones/zone/instances/instance-name
45306	// - zones/zone/instances/instance-name
45307	Instances []*InstanceReference `json:"instances,omitempty"`
45308
45309	// ForceSendFields is a list of field names (e.g. "Instances") to
45310	// unconditionally include in API requests. By default, fields with
45311	// empty values are omitted from API requests. However, any non-pointer,
45312	// non-interface field appearing in ForceSendFields will be sent to the
45313	// server regardless of whether the field is empty or not. This may be
45314	// used to include empty fields in Patch requests.
45315	ForceSendFields []string `json:"-"`
45316
45317	// NullFields is a list of field names (e.g. "Instances") to include in
45318	// API requests with the JSON null value. By default, fields with empty
45319	// values are omitted from API requests. However, any field with an
45320	// empty value appearing in NullFields will be sent to the server as
45321	// null. It is an error if a field in this list has a non-empty value.
45322	// This may be used to include null fields in Patch requests.
45323	NullFields []string `json:"-"`
45324}
45325
45326func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
45327	type NoMethod TargetPoolsAddInstanceRequest
45328	raw := NoMethod(*s)
45329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45330}
45331
45332type TargetPoolsRemoveHealthCheckRequest struct {
45333	// HealthChecks: Health check URL to be removed. This can be a full or
45334	// valid partial URL. For example, the following are valid URLs:
45335	// -
45336	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
45337	//
45338	// - projects/project/global/httpHealthChecks/health-check
45339	// - global/httpHealthChecks/health-check
45340	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
45341
45342	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
45343	// unconditionally include in API requests. By default, fields with
45344	// empty values are omitted from API requests. However, any non-pointer,
45345	// non-interface field appearing in ForceSendFields will be sent to the
45346	// server regardless of whether the field is empty or not. This may be
45347	// used to include empty fields in Patch requests.
45348	ForceSendFields []string `json:"-"`
45349
45350	// NullFields is a list of field names (e.g. "HealthChecks") to include
45351	// in API requests with the JSON null value. By default, fields with
45352	// empty values are omitted from API requests. However, any field with
45353	// an empty value appearing in NullFields will be sent to the server as
45354	// null. It is an error if a field in this list has a non-empty value.
45355	// This may be used to include null fields in Patch requests.
45356	NullFields []string `json:"-"`
45357}
45358
45359func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
45360	type NoMethod TargetPoolsRemoveHealthCheckRequest
45361	raw := NoMethod(*s)
45362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45363}
45364
45365type TargetPoolsRemoveInstanceRequest struct {
45366	// Instances: URLs of the instances to be removed from target pool.
45367	Instances []*InstanceReference `json:"instances,omitempty"`
45368
45369	// ForceSendFields is a list of field names (e.g. "Instances") to
45370	// unconditionally include in API requests. By default, fields with
45371	// empty values are omitted from API requests. However, any non-pointer,
45372	// non-interface field appearing in ForceSendFields will be sent to the
45373	// server regardless of whether the field is empty or not. This may be
45374	// used to include empty fields in Patch requests.
45375	ForceSendFields []string `json:"-"`
45376
45377	// NullFields is a list of field names (e.g. "Instances") to include in
45378	// API requests with the JSON null value. By default, fields with empty
45379	// values are omitted from API requests. However, any field with an
45380	// empty value appearing in NullFields will be sent to the server as
45381	// null. It is an error if a field in this list has a non-empty value.
45382	// This may be used to include null fields in Patch requests.
45383	NullFields []string `json:"-"`
45384}
45385
45386func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
45387	type NoMethod TargetPoolsRemoveInstanceRequest
45388	raw := NoMethod(*s)
45389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45390}
45391
45392type TargetPoolsScopedList struct {
45393	// TargetPools: A list of target pools contained in this scope.
45394	TargetPools []*TargetPool `json:"targetPools,omitempty"`
45395
45396	// Warning: Informational warning which replaces the list of addresses
45397	// when the list is empty.
45398	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
45399
45400	// ForceSendFields is a list of field names (e.g. "TargetPools") to
45401	// unconditionally include in API requests. By default, fields with
45402	// empty values are omitted from API requests. However, any non-pointer,
45403	// non-interface field appearing in ForceSendFields will be sent to the
45404	// server regardless of whether the field is empty or not. This may be
45405	// used to include empty fields in Patch requests.
45406	ForceSendFields []string `json:"-"`
45407
45408	// NullFields is a list of field names (e.g. "TargetPools") to include
45409	// in API requests with the JSON null value. By default, fields with
45410	// empty values are omitted from API requests. However, any field with
45411	// an empty value appearing in NullFields will be sent to the server as
45412	// null. It is an error if a field in this list has a non-empty value.
45413	// This may be used to include null fields in Patch requests.
45414	NullFields []string `json:"-"`
45415}
45416
45417func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
45418	type NoMethod TargetPoolsScopedList
45419	raw := NoMethod(*s)
45420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45421}
45422
45423// TargetPoolsScopedListWarning: Informational warning which replaces
45424// the list of addresses when the list is empty.
45425type TargetPoolsScopedListWarning struct {
45426	// Code: [Output Only] A warning code, if applicable. For example,
45427	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45428	// the response.
45429	//
45430	// Possible values:
45431	//   "CLEANUP_FAILED"
45432	//   "DEPRECATED_RESOURCE_USED"
45433	//   "DEPRECATED_TYPE_USED"
45434	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45435	//   "EXPERIMENTAL_TYPE_USED"
45436	//   "EXTERNAL_API_WARNING"
45437	//   "FIELD_VALUE_OVERRIDEN"
45438	//   "INJECTED_KERNELS_DEPRECATED"
45439	//   "LARGE_DEPLOYMENT_WARNING"
45440	//   "MISSING_TYPE_DEPENDENCY"
45441	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45442	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45443	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45444	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45445	//   "NEXT_HOP_NOT_RUNNING"
45446	//   "NOT_CRITICAL_ERROR"
45447	//   "NO_RESULTS_ON_PAGE"
45448	//   "PARTIAL_SUCCESS"
45449	//   "REQUIRED_TOS_AGREEMENT"
45450	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45451	//   "RESOURCE_NOT_DELETED"
45452	//   "SCHEMA_VALIDATION_IGNORED"
45453	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45454	//   "UNDECLARED_PROPERTIES"
45455	//   "UNREACHABLE"
45456	Code string `json:"code,omitempty"`
45457
45458	// Data: [Output Only] Metadata about this warning in key: value format.
45459	// For example:
45460	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45461	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
45462
45463	// Message: [Output Only] A human-readable description of the warning
45464	// code.
45465	Message string `json:"message,omitempty"`
45466
45467	// ForceSendFields is a list of field names (e.g. "Code") to
45468	// unconditionally include in API requests. By default, fields with
45469	// empty values are omitted from API requests. However, any non-pointer,
45470	// non-interface field appearing in ForceSendFields will be sent to the
45471	// server regardless of whether the field is empty or not. This may be
45472	// used to include empty fields in Patch requests.
45473	ForceSendFields []string `json:"-"`
45474
45475	// NullFields is a list of field names (e.g. "Code") to include in API
45476	// requests with the JSON null value. By default, fields with empty
45477	// values are omitted from API requests. However, any field with an
45478	// empty value appearing in NullFields will be sent to the server as
45479	// null. It is an error if a field in this list has a non-empty value.
45480	// This may be used to include null fields in Patch requests.
45481	NullFields []string `json:"-"`
45482}
45483
45484func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
45485	type NoMethod TargetPoolsScopedListWarning
45486	raw := NoMethod(*s)
45487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45488}
45489
45490type TargetPoolsScopedListWarningData struct {
45491	// Key: [Output Only] A key that provides more detail on the warning
45492	// being returned. For example, for warnings where there are no results
45493	// in a list request for a particular zone, this key might be scope and
45494	// the key value might be the zone name. Other examples might be a key
45495	// indicating a deprecated resource and a suggested replacement, or a
45496	// warning about invalid network settings (for example, if an instance
45497	// attempts to perform IP forwarding but is not enabled for IP
45498	// forwarding).
45499	Key string `json:"key,omitempty"`
45500
45501	// Value: [Output Only] A warning data value corresponding to the key.
45502	Value string `json:"value,omitempty"`
45503
45504	// ForceSendFields is a list of field names (e.g. "Key") to
45505	// unconditionally include in API requests. By default, fields with
45506	// empty values are omitted from API requests. However, any non-pointer,
45507	// non-interface field appearing in ForceSendFields will be sent to the
45508	// server regardless of whether the field is empty or not. This may be
45509	// used to include empty fields in Patch requests.
45510	ForceSendFields []string `json:"-"`
45511
45512	// NullFields is a list of field names (e.g. "Key") to include in API
45513	// requests with the JSON null value. By default, fields with empty
45514	// values are omitted from API requests. However, any field with an
45515	// empty value appearing in NullFields will be sent to the server as
45516	// null. It is an error if a field in this list has a non-empty value.
45517	// This may be used to include null fields in Patch requests.
45518	NullFields []string `json:"-"`
45519}
45520
45521func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
45522	type NoMethod TargetPoolsScopedListWarningData
45523	raw := NoMethod(*s)
45524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45525}
45526
45527type TargetReference struct {
45528	Target string `json:"target,omitempty"`
45529
45530	// ForceSendFields is a list of field names (e.g. "Target") to
45531	// unconditionally include in API requests. By default, fields with
45532	// empty values are omitted from API requests. However, any non-pointer,
45533	// non-interface field appearing in ForceSendFields will be sent to the
45534	// server regardless of whether the field is empty or not. This may be
45535	// used to include empty fields in Patch requests.
45536	ForceSendFields []string `json:"-"`
45537
45538	// NullFields is a list of field names (e.g. "Target") to include in API
45539	// requests with the JSON null value. By default, fields with empty
45540	// values are omitted from API requests. However, any field with an
45541	// empty value appearing in NullFields will be sent to the server as
45542	// null. It is an error if a field in this list has a non-empty value.
45543	// This may be used to include null fields in Patch requests.
45544	NullFields []string `json:"-"`
45545}
45546
45547func (s *TargetReference) MarshalJSON() ([]byte, error) {
45548	type NoMethod TargetReference
45549	raw := NoMethod(*s)
45550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45551}
45552
45553type TargetSslProxiesSetBackendServiceRequest struct {
45554	// Service: The URL of the new BackendService resource for the
45555	// targetSslProxy.
45556	Service string `json:"service,omitempty"`
45557
45558	// ForceSendFields is a list of field names (e.g. "Service") to
45559	// unconditionally include in API requests. By default, fields with
45560	// empty values are omitted from API requests. However, any non-pointer,
45561	// non-interface field appearing in ForceSendFields will be sent to the
45562	// server regardless of whether the field is empty or not. This may be
45563	// used to include empty fields in Patch requests.
45564	ForceSendFields []string `json:"-"`
45565
45566	// NullFields is a list of field names (e.g. "Service") to include in
45567	// API requests with the JSON null value. By default, fields with empty
45568	// values are omitted from API requests. However, any field with an
45569	// empty value appearing in NullFields will be sent to the server as
45570	// null. It is an error if a field in this list has a non-empty value.
45571	// This may be used to include null fields in Patch requests.
45572	NullFields []string `json:"-"`
45573}
45574
45575func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
45576	type NoMethod TargetSslProxiesSetBackendServiceRequest
45577	raw := NoMethod(*s)
45578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45579}
45580
45581type TargetSslProxiesSetProxyHeaderRequest struct {
45582	// ProxyHeader: The new type of proxy header to append before sending
45583	// data to the backend. NONE or PROXY_V1 are allowed.
45584	//
45585	// Possible values:
45586	//   "NONE"
45587	//   "PROXY_V1"
45588	ProxyHeader string `json:"proxyHeader,omitempty"`
45589
45590	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
45591	// unconditionally include in API requests. By default, fields with
45592	// empty values are omitted from API requests. However, any non-pointer,
45593	// non-interface field appearing in ForceSendFields will be sent to the
45594	// server regardless of whether the field is empty or not. This may be
45595	// used to include empty fields in Patch requests.
45596	ForceSendFields []string `json:"-"`
45597
45598	// NullFields is a list of field names (e.g. "ProxyHeader") to include
45599	// in API requests with the JSON null value. By default, fields with
45600	// empty values are omitted from API requests. However, any field with
45601	// an empty value appearing in NullFields will be sent to the server as
45602	// null. It is an error if a field in this list has a non-empty value.
45603	// This may be used to include null fields in Patch requests.
45604	NullFields []string `json:"-"`
45605}
45606
45607func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
45608	type NoMethod TargetSslProxiesSetProxyHeaderRequest
45609	raw := NoMethod(*s)
45610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45611}
45612
45613type TargetSslProxiesSetSslCertificatesRequest struct {
45614	// SslCertificates: New set of URLs to SslCertificate resources to
45615	// associate with this TargetSslProxy. At least one SSL certificate must
45616	// be specified. Currently, you may specify up to 15 SSL certificates.
45617	SslCertificates []string `json:"sslCertificates,omitempty"`
45618
45619	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
45620	// unconditionally include in API requests. By default, fields with
45621	// empty values are omitted from API requests. However, any non-pointer,
45622	// non-interface field appearing in ForceSendFields will be sent to the
45623	// server regardless of whether the field is empty or not. This may be
45624	// used to include empty fields in Patch requests.
45625	ForceSendFields []string `json:"-"`
45626
45627	// NullFields is a list of field names (e.g. "SslCertificates") to
45628	// include in API requests with the JSON null value. By default, fields
45629	// with empty values are omitted from API requests. However, any field
45630	// with an empty value appearing in NullFields will be sent to the
45631	// server as null. It is an error if a field in this list has a
45632	// non-empty value. This may be used to include null fields in Patch
45633	// requests.
45634	NullFields []string `json:"-"`
45635}
45636
45637func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
45638	type NoMethod TargetSslProxiesSetSslCertificatesRequest
45639	raw := NoMethod(*s)
45640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45641}
45642
45643// TargetSslProxy: Represents a Target SSL Proxy resource.
45644//
45645// A target SSL proxy is a component of a SSL Proxy load balancer.
45646// Global forwarding rules reference a target SSL proxy, and the target
45647// proxy then references an external backend service. For more
45648// information, read Using Target Proxies. (== resource_for
45649// {$api_version}.targetSslProxies ==)
45650type TargetSslProxy struct {
45651	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45652	// format.
45653	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45654
45655	// Description: An optional description of this resource. Provide this
45656	// property when you create the resource.
45657	Description string `json:"description,omitempty"`
45658
45659	// Id: [Output Only] The unique identifier for the resource. This
45660	// identifier is defined by the server.
45661	Id uint64 `json:"id,omitempty,string"`
45662
45663	// Kind: [Output Only] Type of the resource. Always
45664	// compute#targetSslProxy for target SSL proxies.
45665	Kind string `json:"kind,omitempty"`
45666
45667	// Name: Name of the resource. Provided by the client when the resource
45668	// is created. The name must be 1-63 characters long, and comply with
45669	// RFC1035. Specifically, the name must be 1-63 characters long and
45670	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45671	// the first character must be a lowercase letter, and all following
45672	// characters must be a dash, lowercase letter, or digit, except the
45673	// last character, which cannot be a dash.
45674	Name string `json:"name,omitempty"`
45675
45676	// ProxyHeader: Specifies the type of proxy header to append before
45677	// sending data to the backend, either NONE or PROXY_V1. The default is
45678	// NONE.
45679	//
45680	// Possible values:
45681	//   "NONE"
45682	//   "PROXY_V1"
45683	ProxyHeader string `json:"proxyHeader,omitempty"`
45684
45685	// SelfLink: [Output Only] Server-defined URL for the resource.
45686	SelfLink string `json:"selfLink,omitempty"`
45687
45688	// Service: URL to the BackendService resource.
45689	Service string `json:"service,omitempty"`
45690
45691	// SslCertificates: URLs to SslCertificate resources that are used to
45692	// authenticate connections to Backends. At least one SSL certificate
45693	// must be specified. Currently, you may specify up to 15 SSL
45694	// certificates. sslCertificates do not apply when the load balancing
45695	// scheme is set to INTERNAL_SELF_MANAGED.
45696	SslCertificates []string `json:"sslCertificates,omitempty"`
45697
45698	// SslPolicy: URL of SslPolicy resource that will be associated with the
45699	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
45700	// not have any SSL policy configured.
45701	SslPolicy string `json:"sslPolicy,omitempty"`
45702
45703	// ServerResponse contains the HTTP response code and headers from the
45704	// server.
45705	googleapi.ServerResponse `json:"-"`
45706
45707	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45708	// to unconditionally include in API requests. By default, fields with
45709	// empty values are omitted from API requests. However, any non-pointer,
45710	// non-interface field appearing in ForceSendFields will be sent to the
45711	// server regardless of whether the field is empty or not. This may be
45712	// used to include empty fields in Patch requests.
45713	ForceSendFields []string `json:"-"`
45714
45715	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45716	// include in API requests with the JSON null value. By default, fields
45717	// with empty values are omitted from API requests. However, any field
45718	// with an empty value appearing in NullFields will be sent to the
45719	// server as null. It is an error if a field in this list has a
45720	// non-empty value. This may be used to include null fields in Patch
45721	// requests.
45722	NullFields []string `json:"-"`
45723}
45724
45725func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
45726	type NoMethod TargetSslProxy
45727	raw := NoMethod(*s)
45728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45729}
45730
45731// TargetSslProxyList: Contains a list of TargetSslProxy resources.
45732type TargetSslProxyList struct {
45733	// Id: [Output Only] Unique identifier for the resource; defined by the
45734	// server.
45735	Id string `json:"id,omitempty"`
45736
45737	// Items: A list of TargetSslProxy resources.
45738	Items []*TargetSslProxy `json:"items,omitempty"`
45739
45740	// Kind: Type of resource.
45741	Kind string `json:"kind,omitempty"`
45742
45743	// NextPageToken: [Output Only] This token allows you to get the next
45744	// page of results for list requests. If the number of results is larger
45745	// than maxResults, use the nextPageToken as a value for the query
45746	// parameter pageToken in the next list request. Subsequent list
45747	// requests will have their own nextPageToken to continue paging through
45748	// the results.
45749	NextPageToken string `json:"nextPageToken,omitempty"`
45750
45751	// SelfLink: [Output Only] Server-defined URL for this resource.
45752	SelfLink string `json:"selfLink,omitempty"`
45753
45754	// Warning: [Output Only] Informational warning message.
45755	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
45756
45757	// ServerResponse contains the HTTP response code and headers from the
45758	// server.
45759	googleapi.ServerResponse `json:"-"`
45760
45761	// ForceSendFields is a list of field names (e.g. "Id") to
45762	// unconditionally include in API requests. By default, fields with
45763	// empty values are omitted from API requests. However, any non-pointer,
45764	// non-interface field appearing in ForceSendFields will be sent to the
45765	// server regardless of whether the field is empty or not. This may be
45766	// used to include empty fields in Patch requests.
45767	ForceSendFields []string `json:"-"`
45768
45769	// NullFields is a list of field names (e.g. "Id") to include in API
45770	// requests with the JSON null value. By default, fields with empty
45771	// values are omitted from API requests. However, any field with an
45772	// empty value appearing in NullFields will be sent to the server as
45773	// null. It is an error if a field in this list has a non-empty value.
45774	// This may be used to include null fields in Patch requests.
45775	NullFields []string `json:"-"`
45776}
45777
45778func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
45779	type NoMethod TargetSslProxyList
45780	raw := NoMethod(*s)
45781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45782}
45783
45784// TargetSslProxyListWarning: [Output Only] Informational warning
45785// message.
45786type TargetSslProxyListWarning struct {
45787	// Code: [Output Only] A warning code, if applicable. For example,
45788	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45789	// the response.
45790	//
45791	// Possible values:
45792	//   "CLEANUP_FAILED"
45793	//   "DEPRECATED_RESOURCE_USED"
45794	//   "DEPRECATED_TYPE_USED"
45795	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45796	//   "EXPERIMENTAL_TYPE_USED"
45797	//   "EXTERNAL_API_WARNING"
45798	//   "FIELD_VALUE_OVERRIDEN"
45799	//   "INJECTED_KERNELS_DEPRECATED"
45800	//   "LARGE_DEPLOYMENT_WARNING"
45801	//   "MISSING_TYPE_DEPENDENCY"
45802	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45803	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45804	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45805	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45806	//   "NEXT_HOP_NOT_RUNNING"
45807	//   "NOT_CRITICAL_ERROR"
45808	//   "NO_RESULTS_ON_PAGE"
45809	//   "PARTIAL_SUCCESS"
45810	//   "REQUIRED_TOS_AGREEMENT"
45811	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45812	//   "RESOURCE_NOT_DELETED"
45813	//   "SCHEMA_VALIDATION_IGNORED"
45814	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45815	//   "UNDECLARED_PROPERTIES"
45816	//   "UNREACHABLE"
45817	Code string `json:"code,omitempty"`
45818
45819	// Data: [Output Only] Metadata about this warning in key: value format.
45820	// For example:
45821	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45822	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
45823
45824	// Message: [Output Only] A human-readable description of the warning
45825	// code.
45826	Message string `json:"message,omitempty"`
45827
45828	// ForceSendFields is a list of field names (e.g. "Code") to
45829	// unconditionally include in API requests. By default, fields with
45830	// empty values are omitted from API requests. However, any non-pointer,
45831	// non-interface field appearing in ForceSendFields will be sent to the
45832	// server regardless of whether the field is empty or not. This may be
45833	// used to include empty fields in Patch requests.
45834	ForceSendFields []string `json:"-"`
45835
45836	// NullFields is a list of field names (e.g. "Code") to include in API
45837	// requests with the JSON null value. By default, fields with empty
45838	// values are omitted from API requests. However, any field with an
45839	// empty value appearing in NullFields will be sent to the server as
45840	// null. It is an error if a field in this list has a non-empty value.
45841	// This may be used to include null fields in Patch requests.
45842	NullFields []string `json:"-"`
45843}
45844
45845func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
45846	type NoMethod TargetSslProxyListWarning
45847	raw := NoMethod(*s)
45848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45849}
45850
45851type TargetSslProxyListWarningData struct {
45852	// Key: [Output Only] A key that provides more detail on the warning
45853	// being returned. For example, for warnings where there are no results
45854	// in a list request for a particular zone, this key might be scope and
45855	// the key value might be the zone name. Other examples might be a key
45856	// indicating a deprecated resource and a suggested replacement, or a
45857	// warning about invalid network settings (for example, if an instance
45858	// attempts to perform IP forwarding but is not enabled for IP
45859	// forwarding).
45860	Key string `json:"key,omitempty"`
45861
45862	// Value: [Output Only] A warning data value corresponding to the key.
45863	Value string `json:"value,omitempty"`
45864
45865	// ForceSendFields is a list of field names (e.g. "Key") to
45866	// unconditionally include in API requests. By default, fields with
45867	// empty values are omitted from API requests. However, any non-pointer,
45868	// non-interface field appearing in ForceSendFields will be sent to the
45869	// server regardless of whether the field is empty or not. This may be
45870	// used to include empty fields in Patch requests.
45871	ForceSendFields []string `json:"-"`
45872
45873	// NullFields is a list of field names (e.g. "Key") to include in API
45874	// requests with the JSON null value. By default, fields with empty
45875	// values are omitted from API requests. However, any field with an
45876	// empty value appearing in NullFields will be sent to the server as
45877	// null. It is an error if a field in this list has a non-empty value.
45878	// This may be used to include null fields in Patch requests.
45879	NullFields []string `json:"-"`
45880}
45881
45882func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
45883	type NoMethod TargetSslProxyListWarningData
45884	raw := NoMethod(*s)
45885	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45886}
45887
45888type TargetTcpProxiesSetBackendServiceRequest struct {
45889	// Service: The URL of the new BackendService resource for the
45890	// targetTcpProxy.
45891	Service string `json:"service,omitempty"`
45892
45893	// ForceSendFields is a list of field names (e.g. "Service") to
45894	// unconditionally include in API requests. By default, fields with
45895	// empty values are omitted from API requests. However, any non-pointer,
45896	// non-interface field appearing in ForceSendFields will be sent to the
45897	// server regardless of whether the field is empty or not. This may be
45898	// used to include empty fields in Patch requests.
45899	ForceSendFields []string `json:"-"`
45900
45901	// NullFields is a list of field names (e.g. "Service") to include in
45902	// API requests with the JSON null value. By default, fields with empty
45903	// values are omitted from API requests. However, any field with an
45904	// empty value appearing in NullFields will be sent to the server as
45905	// null. It is an error if a field in this list has a non-empty value.
45906	// This may be used to include null fields in Patch requests.
45907	NullFields []string `json:"-"`
45908}
45909
45910func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
45911	type NoMethod TargetTcpProxiesSetBackendServiceRequest
45912	raw := NoMethod(*s)
45913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45914}
45915
45916type TargetTcpProxiesSetProxyHeaderRequest struct {
45917	// ProxyHeader: The new type of proxy header to append before sending
45918	// data to the backend. NONE or PROXY_V1 are allowed.
45919	//
45920	// Possible values:
45921	//   "NONE"
45922	//   "PROXY_V1"
45923	ProxyHeader string `json:"proxyHeader,omitempty"`
45924
45925	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
45926	// unconditionally include in API requests. By default, fields with
45927	// empty values are omitted from API requests. However, any non-pointer,
45928	// non-interface field appearing in ForceSendFields will be sent to the
45929	// server regardless of whether the field is empty or not. This may be
45930	// used to include empty fields in Patch requests.
45931	ForceSendFields []string `json:"-"`
45932
45933	// NullFields is a list of field names (e.g. "ProxyHeader") to include
45934	// in API requests with the JSON null value. By default, fields with
45935	// empty values are omitted from API requests. However, any field with
45936	// an empty value appearing in NullFields will be sent to the server as
45937	// null. It is an error if a field in this list has a non-empty value.
45938	// This may be used to include null fields in Patch requests.
45939	NullFields []string `json:"-"`
45940}
45941
45942func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
45943	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
45944	raw := NoMethod(*s)
45945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45946}
45947
45948// TargetTcpProxy: Represents a Target TCP Proxy resource.
45949//
45950// A target TCP proxy is a component of a TCP Proxy load balancer.
45951// Global forwarding rules reference target TCP proxy, and the target
45952// proxy then references an external backend service. For more
45953// information, read TCP Proxy Load Balancing overview. (== resource_for
45954// {$api_version}.targetTcpProxies ==)
45955type TargetTcpProxy struct {
45956	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45957	// format.
45958	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45959
45960	// Description: An optional description of this resource. Provide this
45961	// property when you create the resource.
45962	Description string `json:"description,omitempty"`
45963
45964	// Id: [Output Only] The unique identifier for the resource. This
45965	// identifier is defined by the server.
45966	Id uint64 `json:"id,omitempty,string"`
45967
45968	// Kind: [Output Only] Type of the resource. Always
45969	// compute#targetTcpProxy for target TCP proxies.
45970	Kind string `json:"kind,omitempty"`
45971
45972	// Name: Name of the resource. Provided by the client when the resource
45973	// is created. The name must be 1-63 characters long, and comply with
45974	// RFC1035. Specifically, the name must be 1-63 characters long and
45975	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45976	// the first character must be a lowercase letter, and all following
45977	// characters must be a dash, lowercase letter, or digit, except the
45978	// last character, which cannot be a dash.
45979	Name string `json:"name,omitempty"`
45980
45981	// ProxyBind: This field only applies when the forwarding rule that
45982	// references this target proxy has a loadBalancingScheme set to
45983	// INTERNAL_SELF_MANAGED.
45984	//
45985	// When this field is set to true, Envoy proxies set up inbound traffic
45986	// interception and bind to the IP address and port specified in the
45987	// forwarding rule. This is generally useful when using Traffic Director
45988	// to configure Envoy as a gateway or middle proxy (in other words, not
45989	// a sidecar proxy). The Envoy proxy listens for inbound requests and
45990	// handles requests when it receives them.
45991	//
45992	// The default is false.
45993	ProxyBind bool `json:"proxyBind,omitempty"`
45994
45995	// ProxyHeader: Specifies the type of proxy header to append before
45996	// sending data to the backend, either NONE or PROXY_V1. The default is
45997	// NONE.
45998	//
45999	// Possible values:
46000	//   "NONE"
46001	//   "PROXY_V1"
46002	ProxyHeader string `json:"proxyHeader,omitempty"`
46003
46004	// SelfLink: [Output Only] Server-defined URL for the resource.
46005	SelfLink string `json:"selfLink,omitempty"`
46006
46007	// Service: URL to the BackendService resource.
46008	Service string `json:"service,omitempty"`
46009
46010	// ServerResponse contains the HTTP response code and headers from the
46011	// server.
46012	googleapi.ServerResponse `json:"-"`
46013
46014	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46015	// to unconditionally include in API requests. By default, fields with
46016	// empty values are omitted from API requests. However, any non-pointer,
46017	// non-interface field appearing in ForceSendFields will be sent to the
46018	// server regardless of whether the field is empty or not. This may be
46019	// used to include empty fields in Patch requests.
46020	ForceSendFields []string `json:"-"`
46021
46022	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46023	// include in API requests with the JSON null value. By default, fields
46024	// with empty values are omitted from API requests. However, any field
46025	// with an empty value appearing in NullFields will be sent to the
46026	// server as null. It is an error if a field in this list has a
46027	// non-empty value. This may be used to include null fields in Patch
46028	// requests.
46029	NullFields []string `json:"-"`
46030}
46031
46032func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
46033	type NoMethod TargetTcpProxy
46034	raw := NoMethod(*s)
46035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46036}
46037
46038// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
46039type TargetTcpProxyList struct {
46040	// Id: [Output Only] Unique identifier for the resource; defined by the
46041	// server.
46042	Id string `json:"id,omitempty"`
46043
46044	// Items: A list of TargetTcpProxy resources.
46045	Items []*TargetTcpProxy `json:"items,omitempty"`
46046
46047	// Kind: Type of resource.
46048	Kind string `json:"kind,omitempty"`
46049
46050	// NextPageToken: [Output Only] This token allows you to get the next
46051	// page of results for list requests. If the number of results is larger
46052	// than maxResults, use the nextPageToken as a value for the query
46053	// parameter pageToken in the next list request. Subsequent list
46054	// requests will have their own nextPageToken to continue paging through
46055	// the results.
46056	NextPageToken string `json:"nextPageToken,omitempty"`
46057
46058	// SelfLink: [Output Only] Server-defined URL for this resource.
46059	SelfLink string `json:"selfLink,omitempty"`
46060
46061	// Warning: [Output Only] Informational warning message.
46062	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
46063
46064	// ServerResponse contains the HTTP response code and headers from the
46065	// server.
46066	googleapi.ServerResponse `json:"-"`
46067
46068	// ForceSendFields is a list of field names (e.g. "Id") to
46069	// unconditionally include in API requests. By default, fields with
46070	// empty values are omitted from API requests. However, any non-pointer,
46071	// non-interface field appearing in ForceSendFields will be sent to the
46072	// server regardless of whether the field is empty or not. This may be
46073	// used to include empty fields in Patch requests.
46074	ForceSendFields []string `json:"-"`
46075
46076	// NullFields is a list of field names (e.g. "Id") to include in API
46077	// requests with the JSON null value. By default, fields with empty
46078	// values are omitted from API requests. However, any field with an
46079	// empty value appearing in NullFields will be sent to the server as
46080	// null. It is an error if a field in this list has a non-empty value.
46081	// This may be used to include null fields in Patch requests.
46082	NullFields []string `json:"-"`
46083}
46084
46085func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
46086	type NoMethod TargetTcpProxyList
46087	raw := NoMethod(*s)
46088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46089}
46090
46091// TargetTcpProxyListWarning: [Output Only] Informational warning
46092// message.
46093type TargetTcpProxyListWarning struct {
46094	// Code: [Output Only] A warning code, if applicable. For example,
46095	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46096	// the response.
46097	//
46098	// Possible values:
46099	//   "CLEANUP_FAILED"
46100	//   "DEPRECATED_RESOURCE_USED"
46101	//   "DEPRECATED_TYPE_USED"
46102	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46103	//   "EXPERIMENTAL_TYPE_USED"
46104	//   "EXTERNAL_API_WARNING"
46105	//   "FIELD_VALUE_OVERRIDEN"
46106	//   "INJECTED_KERNELS_DEPRECATED"
46107	//   "LARGE_DEPLOYMENT_WARNING"
46108	//   "MISSING_TYPE_DEPENDENCY"
46109	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46110	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46111	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46112	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46113	//   "NEXT_HOP_NOT_RUNNING"
46114	//   "NOT_CRITICAL_ERROR"
46115	//   "NO_RESULTS_ON_PAGE"
46116	//   "PARTIAL_SUCCESS"
46117	//   "REQUIRED_TOS_AGREEMENT"
46118	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46119	//   "RESOURCE_NOT_DELETED"
46120	//   "SCHEMA_VALIDATION_IGNORED"
46121	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46122	//   "UNDECLARED_PROPERTIES"
46123	//   "UNREACHABLE"
46124	Code string `json:"code,omitempty"`
46125
46126	// Data: [Output Only] Metadata about this warning in key: value format.
46127	// For example:
46128	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46129	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
46130
46131	// Message: [Output Only] A human-readable description of the warning
46132	// code.
46133	Message string `json:"message,omitempty"`
46134
46135	// ForceSendFields is a list of field names (e.g. "Code") to
46136	// unconditionally include in API requests. By default, fields with
46137	// empty values are omitted from API requests. However, any non-pointer,
46138	// non-interface field appearing in ForceSendFields will be sent to the
46139	// server regardless of whether the field is empty or not. This may be
46140	// used to include empty fields in Patch requests.
46141	ForceSendFields []string `json:"-"`
46142
46143	// NullFields is a list of field names (e.g. "Code") to include in API
46144	// requests with the JSON null value. By default, fields with empty
46145	// values are omitted from API requests. However, any field with an
46146	// empty value appearing in NullFields will be sent to the server as
46147	// null. It is an error if a field in this list has a non-empty value.
46148	// This may be used to include null fields in Patch requests.
46149	NullFields []string `json:"-"`
46150}
46151
46152func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
46153	type NoMethod TargetTcpProxyListWarning
46154	raw := NoMethod(*s)
46155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46156}
46157
46158type TargetTcpProxyListWarningData struct {
46159	// Key: [Output Only] A key that provides more detail on the warning
46160	// being returned. For example, for warnings where there are no results
46161	// in a list request for a particular zone, this key might be scope and
46162	// the key value might be the zone name. Other examples might be a key
46163	// indicating a deprecated resource and a suggested replacement, or a
46164	// warning about invalid network settings (for example, if an instance
46165	// attempts to perform IP forwarding but is not enabled for IP
46166	// forwarding).
46167	Key string `json:"key,omitempty"`
46168
46169	// Value: [Output Only] A warning data value corresponding to the key.
46170	Value string `json:"value,omitempty"`
46171
46172	// ForceSendFields is a list of field names (e.g. "Key") to
46173	// unconditionally include in API requests. By default, fields with
46174	// empty values are omitted from API requests. However, any non-pointer,
46175	// non-interface field appearing in ForceSendFields will be sent to the
46176	// server regardless of whether the field is empty or not. This may be
46177	// used to include empty fields in Patch requests.
46178	ForceSendFields []string `json:"-"`
46179
46180	// NullFields is a list of field names (e.g. "Key") to include in API
46181	// requests with the JSON null value. By default, fields with empty
46182	// values are omitted from API requests. However, any field with an
46183	// empty value appearing in NullFields will be sent to the server as
46184	// null. It is an error if a field in this list has a non-empty value.
46185	// This may be used to include null fields in Patch requests.
46186	NullFields []string `json:"-"`
46187}
46188
46189func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
46190	type NoMethod TargetTcpProxyListWarningData
46191	raw := NoMethod(*s)
46192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46193}
46194
46195// TargetVpnGateway: Represents a Target VPN Gateway resource.
46196//
46197// The target VPN gateway resource represents a Classic Cloud VPN
46198// gateway. For more information, read the the Cloud VPN Overview. (==
46199// resource_for {$api_version}.targetVpnGateways ==)
46200type TargetVpnGateway struct {
46201	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46202	// format.
46203	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46204
46205	// Description: An optional description of this resource. Provide this
46206	// property when you create the resource.
46207	Description string `json:"description,omitempty"`
46208
46209	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
46210	// resources. ForwardingRules are created using
46211	// compute.forwardingRules.insert and associated with a VPN gateway.
46212	ForwardingRules []string `json:"forwardingRules,omitempty"`
46213
46214	// Id: [Output Only] The unique identifier for the resource. This
46215	// identifier is defined by the server.
46216	Id uint64 `json:"id,omitempty,string"`
46217
46218	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
46219	// for target VPN gateways.
46220	Kind string `json:"kind,omitempty"`
46221
46222	// LabelFingerprint: A fingerprint for the labels being applied to this
46223	// TargetVpnGateway, which is essentially a hash of the labels set used
46224	// for optimistic locking. The fingerprint is initially generated by
46225	// Compute Engine and changes after every request to modify or update
46226	// labels. You must always provide an up-to-date fingerprint hash in
46227	// order to update or change labels, otherwise the request will fail
46228	// with error 412 conditionNotMet.
46229	//
46230	// To see the latest fingerprint, make a get() request to retrieve a
46231	// TargetVpnGateway.
46232	LabelFingerprint string `json:"labelFingerprint,omitempty"`
46233
46234	// Labels: Labels for this resource. These can only be added or modified
46235	// by the setLabels method. Each label key/value pair must comply with
46236	// RFC1035. Label values may be empty.
46237	Labels map[string]string `json:"labels,omitempty"`
46238
46239	// Name: Name of the resource. Provided by the client when the resource
46240	// is created. The name must be 1-63 characters long, and comply with
46241	// RFC1035. Specifically, the name must be 1-63 characters long and
46242	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46243	// the first character must be a lowercase letter, and all following
46244	// characters must be a dash, lowercase letter, or digit, except the
46245	// last character, which cannot be a dash.
46246	Name string `json:"name,omitempty"`
46247
46248	// Network: URL of the network to which this VPN gateway is attached.
46249	// Provided by the client when the VPN gateway is created.
46250	Network string `json:"network,omitempty"`
46251
46252	// Region: [Output Only] URL of the region where the target VPN gateway
46253	// resides. You must specify this field as part of the HTTP request URL.
46254	// It is not settable as a field in the request body.
46255	Region string `json:"region,omitempty"`
46256
46257	// SelfLink: [Output Only] Server-defined URL for the resource.
46258	SelfLink string `json:"selfLink,omitempty"`
46259
46260	// Status: [Output Only] The status of the VPN gateway, which can be one
46261	// of the following: CREATING, READY, FAILED, or DELETING.
46262	//
46263	// Possible values:
46264	//   "CREATING"
46265	//   "DELETING"
46266	//   "FAILED"
46267	//   "READY"
46268	Status string `json:"status,omitempty"`
46269
46270	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
46271	// VpnTunnels are created using the compute.vpntunnels.insert method and
46272	// associated with a VPN gateway.
46273	Tunnels []string `json:"tunnels,omitempty"`
46274
46275	// ServerResponse contains the HTTP response code and headers from the
46276	// server.
46277	googleapi.ServerResponse `json:"-"`
46278
46279	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46280	// to unconditionally include in API requests. By default, fields with
46281	// empty values are omitted from API requests. However, any non-pointer,
46282	// non-interface field appearing in ForceSendFields will be sent to the
46283	// server regardless of whether the field is empty or not. This may be
46284	// used to include empty fields in Patch requests.
46285	ForceSendFields []string `json:"-"`
46286
46287	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46288	// include in API requests with the JSON null value. By default, fields
46289	// with empty values are omitted from API requests. However, any field
46290	// with an empty value appearing in NullFields will be sent to the
46291	// server as null. It is an error if a field in this list has a
46292	// non-empty value. This may be used to include null fields in Patch
46293	// requests.
46294	NullFields []string `json:"-"`
46295}
46296
46297func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
46298	type NoMethod TargetVpnGateway
46299	raw := NoMethod(*s)
46300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46301}
46302
46303type TargetVpnGatewayAggregatedList struct {
46304	// Id: [Output Only] Unique identifier for the resource; defined by the
46305	// server.
46306	Id string `json:"id,omitempty"`
46307
46308	// Items: A list of TargetVpnGateway resources.
46309	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
46310
46311	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
46312	// for target VPN gateways.
46313	Kind string `json:"kind,omitempty"`
46314
46315	// NextPageToken: [Output Only] This token allows you to get the next
46316	// page of results for list requests. If the number of results is larger
46317	// than maxResults, use the nextPageToken as a value for the query
46318	// parameter pageToken in the next list request. Subsequent list
46319	// requests will have their own nextPageToken to continue paging through
46320	// the results.
46321	NextPageToken string `json:"nextPageToken,omitempty"`
46322
46323	// SelfLink: [Output Only] Server-defined URL for this resource.
46324	SelfLink string `json:"selfLink,omitempty"`
46325
46326	// Unreachables: [Output Only] Unreachable resources.
46327	Unreachables []string `json:"unreachables,omitempty"`
46328
46329	// Warning: [Output Only] Informational warning message.
46330	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
46331
46332	// ServerResponse contains the HTTP response code and headers from the
46333	// server.
46334	googleapi.ServerResponse `json:"-"`
46335
46336	// ForceSendFields is a list of field names (e.g. "Id") to
46337	// unconditionally include in API requests. By default, fields with
46338	// empty values are omitted from API requests. However, any non-pointer,
46339	// non-interface field appearing in ForceSendFields will be sent to the
46340	// server regardless of whether the field is empty or not. This may be
46341	// used to include empty fields in Patch requests.
46342	ForceSendFields []string `json:"-"`
46343
46344	// NullFields is a list of field names (e.g. "Id") to include in API
46345	// requests with the JSON null value. By default, fields with empty
46346	// values are omitted from API requests. However, any field with an
46347	// empty value appearing in NullFields will be sent to the server as
46348	// null. It is an error if a field in this list has a non-empty value.
46349	// This may be used to include null fields in Patch requests.
46350	NullFields []string `json:"-"`
46351}
46352
46353func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
46354	type NoMethod TargetVpnGatewayAggregatedList
46355	raw := NoMethod(*s)
46356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46357}
46358
46359// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
46360// warning message.
46361type TargetVpnGatewayAggregatedListWarning struct {
46362	// Code: [Output Only] A warning code, if applicable. For example,
46363	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46364	// the response.
46365	//
46366	// Possible values:
46367	//   "CLEANUP_FAILED"
46368	//   "DEPRECATED_RESOURCE_USED"
46369	//   "DEPRECATED_TYPE_USED"
46370	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46371	//   "EXPERIMENTAL_TYPE_USED"
46372	//   "EXTERNAL_API_WARNING"
46373	//   "FIELD_VALUE_OVERRIDEN"
46374	//   "INJECTED_KERNELS_DEPRECATED"
46375	//   "LARGE_DEPLOYMENT_WARNING"
46376	//   "MISSING_TYPE_DEPENDENCY"
46377	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46378	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46379	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46380	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46381	//   "NEXT_HOP_NOT_RUNNING"
46382	//   "NOT_CRITICAL_ERROR"
46383	//   "NO_RESULTS_ON_PAGE"
46384	//   "PARTIAL_SUCCESS"
46385	//   "REQUIRED_TOS_AGREEMENT"
46386	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46387	//   "RESOURCE_NOT_DELETED"
46388	//   "SCHEMA_VALIDATION_IGNORED"
46389	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46390	//   "UNDECLARED_PROPERTIES"
46391	//   "UNREACHABLE"
46392	Code string `json:"code,omitempty"`
46393
46394	// Data: [Output Only] Metadata about this warning in key: value format.
46395	// For example:
46396	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46397	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
46398
46399	// Message: [Output Only] A human-readable description of the warning
46400	// code.
46401	Message string `json:"message,omitempty"`
46402
46403	// ForceSendFields is a list of field names (e.g. "Code") to
46404	// unconditionally include in API requests. By default, fields with
46405	// empty values are omitted from API requests. However, any non-pointer,
46406	// non-interface field appearing in ForceSendFields will be sent to the
46407	// server regardless of whether the field is empty or not. This may be
46408	// used to include empty fields in Patch requests.
46409	ForceSendFields []string `json:"-"`
46410
46411	// NullFields is a list of field names (e.g. "Code") to include in API
46412	// requests with the JSON null value. By default, fields with empty
46413	// values are omitted from API requests. However, any field with an
46414	// empty value appearing in NullFields will be sent to the server as
46415	// null. It is an error if a field in this list has a non-empty value.
46416	// This may be used to include null fields in Patch requests.
46417	NullFields []string `json:"-"`
46418}
46419
46420func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
46421	type NoMethod TargetVpnGatewayAggregatedListWarning
46422	raw := NoMethod(*s)
46423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46424}
46425
46426type TargetVpnGatewayAggregatedListWarningData struct {
46427	// Key: [Output Only] A key that provides more detail on the warning
46428	// being returned. For example, for warnings where there are no results
46429	// in a list request for a particular zone, this key might be scope and
46430	// the key value might be the zone name. Other examples might be a key
46431	// indicating a deprecated resource and a suggested replacement, or a
46432	// warning about invalid network settings (for example, if an instance
46433	// attempts to perform IP forwarding but is not enabled for IP
46434	// forwarding).
46435	Key string `json:"key,omitempty"`
46436
46437	// Value: [Output Only] A warning data value corresponding to the key.
46438	Value string `json:"value,omitempty"`
46439
46440	// ForceSendFields is a list of field names (e.g. "Key") to
46441	// unconditionally include in API requests. By default, fields with
46442	// empty values are omitted from API requests. However, any non-pointer,
46443	// non-interface field appearing in ForceSendFields will be sent to the
46444	// server regardless of whether the field is empty or not. This may be
46445	// used to include empty fields in Patch requests.
46446	ForceSendFields []string `json:"-"`
46447
46448	// NullFields is a list of field names (e.g. "Key") to include in API
46449	// requests with the JSON null value. By default, fields with empty
46450	// values are omitted from API requests. However, any field with an
46451	// empty value appearing in NullFields will be sent to the server as
46452	// null. It is an error if a field in this list has a non-empty value.
46453	// This may be used to include null fields in Patch requests.
46454	NullFields []string `json:"-"`
46455}
46456
46457func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
46458	type NoMethod TargetVpnGatewayAggregatedListWarningData
46459	raw := NoMethod(*s)
46460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46461}
46462
46463// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
46464type TargetVpnGatewayList struct {
46465	// Id: [Output Only] Unique identifier for the resource; defined by the
46466	// server.
46467	Id string `json:"id,omitempty"`
46468
46469	// Items: A list of TargetVpnGateway resources.
46470	Items []*TargetVpnGateway `json:"items,omitempty"`
46471
46472	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
46473	// for target VPN gateways.
46474	Kind string `json:"kind,omitempty"`
46475
46476	// NextPageToken: [Output Only] This token allows you to get the next
46477	// page of results for list requests. If the number of results is larger
46478	// than maxResults, use the nextPageToken as a value for the query
46479	// parameter pageToken in the next list request. Subsequent list
46480	// requests will have their own nextPageToken to continue paging through
46481	// the results.
46482	NextPageToken string `json:"nextPageToken,omitempty"`
46483
46484	// SelfLink: [Output Only] Server-defined URL for this resource.
46485	SelfLink string `json:"selfLink,omitempty"`
46486
46487	// Warning: [Output Only] Informational warning message.
46488	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
46489
46490	// ServerResponse contains the HTTP response code and headers from the
46491	// server.
46492	googleapi.ServerResponse `json:"-"`
46493
46494	// ForceSendFields is a list of field names (e.g. "Id") to
46495	// unconditionally include in API requests. By default, fields with
46496	// empty values are omitted from API requests. However, any non-pointer,
46497	// non-interface field appearing in ForceSendFields will be sent to the
46498	// server regardless of whether the field is empty or not. This may be
46499	// used to include empty fields in Patch requests.
46500	ForceSendFields []string `json:"-"`
46501
46502	// NullFields is a list of field names (e.g. "Id") to include in API
46503	// requests with the JSON null value. By default, fields with empty
46504	// values are omitted from API requests. However, any field with an
46505	// empty value appearing in NullFields will be sent to the server as
46506	// null. It is an error if a field in this list has a non-empty value.
46507	// This may be used to include null fields in Patch requests.
46508	NullFields []string `json:"-"`
46509}
46510
46511func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
46512	type NoMethod TargetVpnGatewayList
46513	raw := NoMethod(*s)
46514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46515}
46516
46517// TargetVpnGatewayListWarning: [Output Only] Informational warning
46518// message.
46519type TargetVpnGatewayListWarning struct {
46520	// Code: [Output Only] A warning code, if applicable. For example,
46521	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46522	// the response.
46523	//
46524	// Possible values:
46525	//   "CLEANUP_FAILED"
46526	//   "DEPRECATED_RESOURCE_USED"
46527	//   "DEPRECATED_TYPE_USED"
46528	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46529	//   "EXPERIMENTAL_TYPE_USED"
46530	//   "EXTERNAL_API_WARNING"
46531	//   "FIELD_VALUE_OVERRIDEN"
46532	//   "INJECTED_KERNELS_DEPRECATED"
46533	//   "LARGE_DEPLOYMENT_WARNING"
46534	//   "MISSING_TYPE_DEPENDENCY"
46535	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46536	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46537	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46538	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46539	//   "NEXT_HOP_NOT_RUNNING"
46540	//   "NOT_CRITICAL_ERROR"
46541	//   "NO_RESULTS_ON_PAGE"
46542	//   "PARTIAL_SUCCESS"
46543	//   "REQUIRED_TOS_AGREEMENT"
46544	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46545	//   "RESOURCE_NOT_DELETED"
46546	//   "SCHEMA_VALIDATION_IGNORED"
46547	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46548	//   "UNDECLARED_PROPERTIES"
46549	//   "UNREACHABLE"
46550	Code string `json:"code,omitempty"`
46551
46552	// Data: [Output Only] Metadata about this warning in key: value format.
46553	// For example:
46554	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46555	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
46556
46557	// Message: [Output Only] A human-readable description of the warning
46558	// code.
46559	Message string `json:"message,omitempty"`
46560
46561	// ForceSendFields is a list of field names (e.g. "Code") to
46562	// unconditionally include in API requests. By default, fields with
46563	// empty values are omitted from API requests. However, any non-pointer,
46564	// non-interface field appearing in ForceSendFields will be sent to the
46565	// server regardless of whether the field is empty or not. This may be
46566	// used to include empty fields in Patch requests.
46567	ForceSendFields []string `json:"-"`
46568
46569	// NullFields is a list of field names (e.g. "Code") to include in API
46570	// requests with the JSON null value. By default, fields with empty
46571	// values are omitted from API requests. However, any field with an
46572	// empty value appearing in NullFields will be sent to the server as
46573	// null. It is an error if a field in this list has a non-empty value.
46574	// This may be used to include null fields in Patch requests.
46575	NullFields []string `json:"-"`
46576}
46577
46578func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
46579	type NoMethod TargetVpnGatewayListWarning
46580	raw := NoMethod(*s)
46581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46582}
46583
46584type TargetVpnGatewayListWarningData struct {
46585	// Key: [Output Only] A key that provides more detail on the warning
46586	// being returned. For example, for warnings where there are no results
46587	// in a list request for a particular zone, this key might be scope and
46588	// the key value might be the zone name. Other examples might be a key
46589	// indicating a deprecated resource and a suggested replacement, or a
46590	// warning about invalid network settings (for example, if an instance
46591	// attempts to perform IP forwarding but is not enabled for IP
46592	// forwarding).
46593	Key string `json:"key,omitempty"`
46594
46595	// Value: [Output Only] A warning data value corresponding to the key.
46596	Value string `json:"value,omitempty"`
46597
46598	// ForceSendFields is a list of field names (e.g. "Key") to
46599	// unconditionally include in API requests. By default, fields with
46600	// empty values are omitted from API requests. However, any non-pointer,
46601	// non-interface field appearing in ForceSendFields will be sent to the
46602	// server regardless of whether the field is empty or not. This may be
46603	// used to include empty fields in Patch requests.
46604	ForceSendFields []string `json:"-"`
46605
46606	// NullFields is a list of field names (e.g. "Key") to include in API
46607	// requests with the JSON null value. By default, fields with empty
46608	// values are omitted from API requests. However, any field with an
46609	// empty value appearing in NullFields will be sent to the server as
46610	// null. It is an error if a field in this list has a non-empty value.
46611	// This may be used to include null fields in Patch requests.
46612	NullFields []string `json:"-"`
46613}
46614
46615func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
46616	type NoMethod TargetVpnGatewayListWarningData
46617	raw := NoMethod(*s)
46618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46619}
46620
46621type TargetVpnGatewaysScopedList struct {
46622	// TargetVpnGateways: [Output Only] A list of target VPN gateways
46623	// contained in this scope.
46624	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
46625
46626	// Warning: [Output Only] Informational warning which replaces the list
46627	// of addresses when the list is empty.
46628	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
46629
46630	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
46631	// to unconditionally include in API requests. By default, fields with
46632	// empty values are omitted from API requests. However, any non-pointer,
46633	// non-interface field appearing in ForceSendFields will be sent to the
46634	// server regardless of whether the field is empty or not. This may be
46635	// used to include empty fields in Patch requests.
46636	ForceSendFields []string `json:"-"`
46637
46638	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
46639	// include in API requests with the JSON null value. By default, fields
46640	// with empty values are omitted from API requests. However, any field
46641	// with an empty value appearing in NullFields will be sent to the
46642	// server as null. It is an error if a field in this list has a
46643	// non-empty value. This may be used to include null fields in Patch
46644	// requests.
46645	NullFields []string `json:"-"`
46646}
46647
46648func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
46649	type NoMethod TargetVpnGatewaysScopedList
46650	raw := NoMethod(*s)
46651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46652}
46653
46654// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
46655// warning which replaces the list of addresses when the list is empty.
46656type TargetVpnGatewaysScopedListWarning struct {
46657	// Code: [Output Only] A warning code, if applicable. For example,
46658	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46659	// the response.
46660	//
46661	// Possible values:
46662	//   "CLEANUP_FAILED"
46663	//   "DEPRECATED_RESOURCE_USED"
46664	//   "DEPRECATED_TYPE_USED"
46665	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46666	//   "EXPERIMENTAL_TYPE_USED"
46667	//   "EXTERNAL_API_WARNING"
46668	//   "FIELD_VALUE_OVERRIDEN"
46669	//   "INJECTED_KERNELS_DEPRECATED"
46670	//   "LARGE_DEPLOYMENT_WARNING"
46671	//   "MISSING_TYPE_DEPENDENCY"
46672	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46673	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46674	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46675	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46676	//   "NEXT_HOP_NOT_RUNNING"
46677	//   "NOT_CRITICAL_ERROR"
46678	//   "NO_RESULTS_ON_PAGE"
46679	//   "PARTIAL_SUCCESS"
46680	//   "REQUIRED_TOS_AGREEMENT"
46681	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46682	//   "RESOURCE_NOT_DELETED"
46683	//   "SCHEMA_VALIDATION_IGNORED"
46684	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46685	//   "UNDECLARED_PROPERTIES"
46686	//   "UNREACHABLE"
46687	Code string `json:"code,omitempty"`
46688
46689	// Data: [Output Only] Metadata about this warning in key: value format.
46690	// For example:
46691	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46692	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
46693
46694	// Message: [Output Only] A human-readable description of the warning
46695	// code.
46696	Message string `json:"message,omitempty"`
46697
46698	// ForceSendFields is a list of field names (e.g. "Code") to
46699	// unconditionally include in API requests. By default, fields with
46700	// empty values are omitted from API requests. However, any non-pointer,
46701	// non-interface field appearing in ForceSendFields will be sent to the
46702	// server regardless of whether the field is empty or not. This may be
46703	// used to include empty fields in Patch requests.
46704	ForceSendFields []string `json:"-"`
46705
46706	// NullFields is a list of field names (e.g. "Code") to include in API
46707	// requests with the JSON null value. By default, fields with empty
46708	// values are omitted from API requests. However, any field with an
46709	// empty value appearing in NullFields will be sent to the server as
46710	// null. It is an error if a field in this list has a non-empty value.
46711	// This may be used to include null fields in Patch requests.
46712	NullFields []string `json:"-"`
46713}
46714
46715func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
46716	type NoMethod TargetVpnGatewaysScopedListWarning
46717	raw := NoMethod(*s)
46718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46719}
46720
46721type TargetVpnGatewaysScopedListWarningData struct {
46722	// Key: [Output Only] A key that provides more detail on the warning
46723	// being returned. For example, for warnings where there are no results
46724	// in a list request for a particular zone, this key might be scope and
46725	// the key value might be the zone name. Other examples might be a key
46726	// indicating a deprecated resource and a suggested replacement, or a
46727	// warning about invalid network settings (for example, if an instance
46728	// attempts to perform IP forwarding but is not enabled for IP
46729	// forwarding).
46730	Key string `json:"key,omitempty"`
46731
46732	// Value: [Output Only] A warning data value corresponding to the key.
46733	Value string `json:"value,omitempty"`
46734
46735	// ForceSendFields is a list of field names (e.g. "Key") to
46736	// unconditionally include in API requests. By default, fields with
46737	// empty values are omitted from API requests. However, any non-pointer,
46738	// non-interface field appearing in ForceSendFields will be sent to the
46739	// server regardless of whether the field is empty or not. This may be
46740	// used to include empty fields in Patch requests.
46741	ForceSendFields []string `json:"-"`
46742
46743	// NullFields is a list of field names (e.g. "Key") to include in API
46744	// requests with the JSON null value. By default, fields with empty
46745	// values are omitted from API requests. However, any field with an
46746	// empty value appearing in NullFields will be sent to the server as
46747	// null. It is an error if a field in this list has a non-empty value.
46748	// This may be used to include null fields in Patch requests.
46749	NullFields []string `json:"-"`
46750}
46751
46752func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
46753	type NoMethod TargetVpnGatewaysScopedListWarningData
46754	raw := NoMethod(*s)
46755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46756}
46757
46758type TestFailure struct {
46759	// ActualOutputUrl: The actual output URL evaluated by load balancer
46760	// containing the scheme, host, path and query parameters.
46761	ActualOutputUrl string `json:"actualOutputUrl,omitempty"`
46762
46763	// ActualRedirectResponseCode: Actual HTTP status code for rule with
46764	// `urlRedirect` calculated by load balancer
46765	ActualRedirectResponseCode int64 `json:"actualRedirectResponseCode,omitempty"`
46766
46767	// ActualService: BackendService or BackendBucket returned by load
46768	// balancer.
46769	ActualService string `json:"actualService,omitempty"`
46770
46771	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
46772	// containing the scheme, host, path and query parameters.
46773	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
46774
46775	// ExpectedRedirectResponseCode: Expected HTTP status code for rule with
46776	// `urlRedirect` calculated by load balancer
46777	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
46778
46779	// ExpectedService: Expected BackendService or BackendBucket resource
46780	// the given URL should be mapped to.
46781	ExpectedService string `json:"expectedService,omitempty"`
46782
46783	// Headers: HTTP headers of the request.
46784	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
46785
46786	// Host: Host portion of the URL.
46787	Host string `json:"host,omitempty"`
46788
46789	// Path: Path portion including query parameters in the URL.
46790	Path string `json:"path,omitempty"`
46791
46792	// ForceSendFields is a list of field names (e.g. "ActualOutputUrl") to
46793	// unconditionally include in API requests. By default, fields with
46794	// empty values are omitted from API requests. However, any non-pointer,
46795	// non-interface field appearing in ForceSendFields will be sent to the
46796	// server regardless of whether the field is empty or not. This may be
46797	// used to include empty fields in Patch requests.
46798	ForceSendFields []string `json:"-"`
46799
46800	// NullFields is a list of field names (e.g. "ActualOutputUrl") to
46801	// include in API requests with the JSON null value. By default, fields
46802	// with empty values are omitted from API requests. However, any field
46803	// with an empty value appearing in NullFields will be sent to the
46804	// server as null. It is an error if a field in this list has a
46805	// non-empty value. This may be used to include null fields in Patch
46806	// requests.
46807	NullFields []string `json:"-"`
46808}
46809
46810func (s *TestFailure) MarshalJSON() ([]byte, error) {
46811	type NoMethod TestFailure
46812	raw := NoMethod(*s)
46813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46814}
46815
46816type TestPermissionsRequest struct {
46817	// Permissions: The set of permissions to check for the 'resource'.
46818	// Permissions with wildcards (such as '*' or 'storage.*') are not
46819	// allowed.
46820	Permissions []string `json:"permissions,omitempty"`
46821
46822	// ForceSendFields is a list of field names (e.g. "Permissions") to
46823	// unconditionally include in API requests. By default, fields with
46824	// empty values are omitted from API requests. However, any non-pointer,
46825	// non-interface field appearing in ForceSendFields will be sent to the
46826	// server regardless of whether the field is empty or not. This may be
46827	// used to include empty fields in Patch requests.
46828	ForceSendFields []string `json:"-"`
46829
46830	// NullFields is a list of field names (e.g. "Permissions") to include
46831	// in API requests with the JSON null value. By default, fields with
46832	// empty values are omitted from API requests. However, any field with
46833	// an empty value appearing in NullFields will be sent to the server as
46834	// null. It is an error if a field in this list has a non-empty value.
46835	// This may be used to include null fields in Patch requests.
46836	NullFields []string `json:"-"`
46837}
46838
46839func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
46840	type NoMethod TestPermissionsRequest
46841	raw := NoMethod(*s)
46842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46843}
46844
46845type TestPermissionsResponse struct {
46846	// Permissions: A subset of `TestPermissionsRequest.permissions` that
46847	// the caller is allowed.
46848	Permissions []string `json:"permissions,omitempty"`
46849
46850	// ServerResponse contains the HTTP response code and headers from the
46851	// server.
46852	googleapi.ServerResponse `json:"-"`
46853
46854	// ForceSendFields is a list of field names (e.g. "Permissions") to
46855	// unconditionally include in API requests. By default, fields with
46856	// empty values are omitted from API requests. However, any non-pointer,
46857	// non-interface field appearing in ForceSendFields will be sent to the
46858	// server regardless of whether the field is empty or not. This may be
46859	// used to include empty fields in Patch requests.
46860	ForceSendFields []string `json:"-"`
46861
46862	// NullFields is a list of field names (e.g. "Permissions") to include
46863	// in API requests with the JSON null value. By default, fields with
46864	// empty values are omitted from API requests. However, any field with
46865	// an empty value appearing in NullFields will be sent to the server as
46866	// null. It is an error if a field in this list has a non-empty value.
46867	// This may be used to include null fields in Patch requests.
46868	NullFields []string `json:"-"`
46869}
46870
46871func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
46872	type NoMethod TestPermissionsResponse
46873	raw := NoMethod(*s)
46874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46875}
46876
46877type Uint128 struct {
46878	High uint64 `json:"high,omitempty,string"`
46879
46880	Low uint64 `json:"low,omitempty,string"`
46881
46882	// ForceSendFields is a list of field names (e.g. "High") to
46883	// unconditionally include in API requests. By default, fields with
46884	// empty values are omitted from API requests. However, any non-pointer,
46885	// non-interface field appearing in ForceSendFields will be sent to the
46886	// server regardless of whether the field is empty or not. This may be
46887	// used to include empty fields in Patch requests.
46888	ForceSendFields []string `json:"-"`
46889
46890	// NullFields is a list of field names (e.g. "High") to include in API
46891	// requests with the JSON null value. By default, fields with empty
46892	// values are omitted from API requests. However, any field with an
46893	// empty value appearing in NullFields will be sent to the server as
46894	// null. It is an error if a field in this list has a non-empty value.
46895	// This may be used to include null fields in Patch requests.
46896	NullFields []string `json:"-"`
46897}
46898
46899func (s *Uint128) MarshalJSON() ([]byte, error) {
46900	type NoMethod Uint128
46901	raw := NoMethod(*s)
46902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46903}
46904
46905// UrlMap: Represents a URL Map resource.
46906//
46907// Google Compute Engine has two URL Map resources:
46908//
46909// * Global (/compute/docs/reference/rest/{$api_version}/urlMaps) *
46910// Regional
46911// (/compute/docs/reference/rest/{$api_version}/regionUrlMaps)
46912//
46913// A URL map resource is a component of certain types of GCP load
46914// balancers and Traffic Director.
46915//
46916// * urlMaps are used by external HTTP(S) load balancers and Traffic
46917// Director. * regionUrlMaps are used by internal HTTP(S) load
46918// balancers.
46919//
46920// For a list of supported URL map features by load balancer type, see
46921// the  Load balancing features: Routing and traffic management
46922// table.
46923//
46924// For a list of supported URL map features for Traffic Director, see
46925// the  Traffic Director features: Routing and traffic management
46926// table.
46927//
46928// This resource defines mappings from host names and URL paths to
46929// either a backend service or a backend bucket.
46930//
46931// To use the global urlMaps resource, the backend service must have a
46932// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
46933// use the regionUrlMaps resource, the backend service must have a
46934// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
46935// URL Map Concepts.
46936type UrlMap struct {
46937	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46938	// format.
46939	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46940
46941	// DefaultRouteAction: defaultRouteAction takes effect when none of the
46942	// hostRules match. The load balancer performs advanced routing actions
46943	// like URL rewrites, header transformations, etc. prior to forwarding
46944	// the request to the selected backend. If defaultRouteAction specifies
46945	// any weightedBackendServices, defaultService must not be set.
46946	// Conversely if defaultService is set, defaultRouteAction cannot
46947	// contain any  weightedBackendServices.
46948	// Only one of defaultRouteAction or defaultUrlRedirect must be
46949	// set.
46950	// UrlMaps for external HTTP(S) load balancers support only the
46951	// urlRewrite action within defaultRouteAction.
46952	// defaultRouteAction has no effect when the URL map is bound to target
46953	// gRPC proxy that has validateForProxyless field set to true.
46954	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
46955
46956	// DefaultService: The full or partial URL of the defaultService
46957	// resource to which traffic is directed if none of the hostRules match.
46958	// If defaultRouteAction is additionally specified, advanced routing
46959	// actions like URL Rewrites, etc. take effect prior to sending the
46960	// request to the backend. However, if defaultService is specified,
46961	// defaultRouteAction cannot contain any weightedBackendServices.
46962	// Conversely, if routeAction specifies any weightedBackendServices,
46963	// service must not be specified.
46964	// Only one of defaultService, defaultUrlRedirect  or
46965	// defaultRouteAction.weightedBackendService must be set.
46966	// defaultService has no effect when the URL map is bound to target gRPC
46967	// proxy that has validateForProxyless field set to true.
46968	DefaultService string `json:"defaultService,omitempty"`
46969
46970	// DefaultUrlRedirect: When none of the specified hostRules match, the
46971	// request is redirected to a URL specified by defaultUrlRedirect.
46972	// If defaultUrlRedirect is specified, defaultService or
46973	// defaultRouteAction must not be set.
46974	// Not supported when the URL map is bound to target gRPC proxy.
46975	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
46976
46977	// Description: An optional description of this resource. Provide this
46978	// property when you create the resource.
46979	Description string `json:"description,omitempty"`
46980
46981	// Fingerprint: Fingerprint of this resource. A hash of the contents
46982	// stored in this object. This field is used in optimistic locking. This
46983	// field will be ignored when inserting a UrlMap. An up-to-date
46984	// fingerprint must be provided in order to update the UrlMap, otherwise
46985	// the request will fail with error 412 conditionNotMet.
46986	//
46987	// To see the latest fingerprint, make a get() request to retrieve a
46988	// UrlMap.
46989	Fingerprint string `json:"fingerprint,omitempty"`
46990
46991	// HeaderAction: Specifies changes to request and response headers that
46992	// need to take effect for the selected backendService.
46993	// The headerAction specified here take effect after headerAction
46994	// specified under pathMatcher.
46995	// Note that headerAction is not supported for Loadbalancers that have
46996	// their loadBalancingScheme set to EXTERNAL.
46997	// Not supported when the URL map is bound to target gRPC proxy that has
46998	// validateForProxyless field set to true.
46999	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
47000
47001	// HostRules: The list of HostRules to use against the URL.
47002	HostRules []*HostRule `json:"hostRules,omitempty"`
47003
47004	// Id: [Output Only] The unique identifier for the resource. This
47005	// identifier is defined by the server.
47006	Id uint64 `json:"id,omitempty,string"`
47007
47008	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
47009	// url maps.
47010	Kind string `json:"kind,omitempty"`
47011
47012	// Name: Name of the resource. Provided by the client when the resource
47013	// is created. The name must be 1-63 characters long, and comply with
47014	// RFC1035. Specifically, the name must be 1-63 characters long and
47015	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
47016	// the first character must be a lowercase letter, and all following
47017	// characters must be a dash, lowercase letter, or digit, except the
47018	// last character, which cannot be a dash.
47019	Name string `json:"name,omitempty"`
47020
47021	// PathMatchers: The list of named PathMatchers to use against the URL.
47022	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
47023
47024	// Region: [Output Only] URL of the region where the regional URL map
47025	// resides. This field is not applicable to global URL maps. You must
47026	// specify this field as part of the HTTP request URL. It is not
47027	// settable as a field in the request body.
47028	Region string `json:"region,omitempty"`
47029
47030	// SelfLink: [Output Only] Server-defined URL for the resource.
47031	SelfLink string `json:"selfLink,omitempty"`
47032
47033	// Tests: The list of expected URL mapping tests. Request to update this
47034	// UrlMap will succeed only if all of the test cases pass. You can
47035	// specify a maximum of 100 tests per UrlMap.
47036	// Not supported when the URL map is bound to target gRPC proxy that has
47037	// validateForProxyless field set to true.
47038	Tests []*UrlMapTest `json:"tests,omitempty"`
47039
47040	// ServerResponse contains the HTTP response code and headers from the
47041	// server.
47042	googleapi.ServerResponse `json:"-"`
47043
47044	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
47045	// to unconditionally include in API requests. By default, fields with
47046	// empty values are omitted from API requests. However, any non-pointer,
47047	// non-interface field appearing in ForceSendFields will be sent to the
47048	// server regardless of whether the field is empty or not. This may be
47049	// used to include empty fields in Patch requests.
47050	ForceSendFields []string `json:"-"`
47051
47052	// NullFields is a list of field names (e.g. "CreationTimestamp") to
47053	// include in API requests with the JSON null value. By default, fields
47054	// with empty values are omitted from API requests. However, any field
47055	// with an empty value appearing in NullFields will be sent to the
47056	// server as null. It is an error if a field in this list has a
47057	// non-empty value. This may be used to include null fields in Patch
47058	// requests.
47059	NullFields []string `json:"-"`
47060}
47061
47062func (s *UrlMap) MarshalJSON() ([]byte, error) {
47063	type NoMethod UrlMap
47064	raw := NoMethod(*s)
47065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47066}
47067
47068// UrlMapList: Contains a list of UrlMap resources.
47069type UrlMapList struct {
47070	// Id: [Output Only] Unique identifier for the resource; defined by the
47071	// server.
47072	Id string `json:"id,omitempty"`
47073
47074	// Items: A list of UrlMap resources.
47075	Items []*UrlMap `json:"items,omitempty"`
47076
47077	// Kind: Type of resource.
47078	Kind string `json:"kind,omitempty"`
47079
47080	// NextPageToken: [Output Only] This token allows you to get the next
47081	// page of results for list requests. If the number of results is larger
47082	// than maxResults, use the nextPageToken as a value for the query
47083	// parameter pageToken in the next list request. Subsequent list
47084	// requests will have their own nextPageToken to continue paging through
47085	// the results.
47086	NextPageToken string `json:"nextPageToken,omitempty"`
47087
47088	// SelfLink: [Output Only] Server-defined URL for this resource.
47089	SelfLink string `json:"selfLink,omitempty"`
47090
47091	// Warning: [Output Only] Informational warning message.
47092	Warning *UrlMapListWarning `json:"warning,omitempty"`
47093
47094	// ServerResponse contains the HTTP response code and headers from the
47095	// server.
47096	googleapi.ServerResponse `json:"-"`
47097
47098	// ForceSendFields is a list of field names (e.g. "Id") to
47099	// unconditionally include in API requests. By default, fields with
47100	// empty values are omitted from API requests. However, any non-pointer,
47101	// non-interface field appearing in ForceSendFields will be sent to the
47102	// server regardless of whether the field is empty or not. This may be
47103	// used to include empty fields in Patch requests.
47104	ForceSendFields []string `json:"-"`
47105
47106	// NullFields is a list of field names (e.g. "Id") to include in API
47107	// requests with the JSON null value. By default, fields with empty
47108	// values are omitted from API requests. However, any field with an
47109	// empty value appearing in NullFields will be sent to the server as
47110	// null. It is an error if a field in this list has a non-empty value.
47111	// This may be used to include null fields in Patch requests.
47112	NullFields []string `json:"-"`
47113}
47114
47115func (s *UrlMapList) MarshalJSON() ([]byte, error) {
47116	type NoMethod UrlMapList
47117	raw := NoMethod(*s)
47118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47119}
47120
47121// UrlMapListWarning: [Output Only] Informational warning message.
47122type UrlMapListWarning struct {
47123	// Code: [Output Only] A warning code, if applicable. For example,
47124	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47125	// the response.
47126	//
47127	// Possible values:
47128	//   "CLEANUP_FAILED"
47129	//   "DEPRECATED_RESOURCE_USED"
47130	//   "DEPRECATED_TYPE_USED"
47131	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47132	//   "EXPERIMENTAL_TYPE_USED"
47133	//   "EXTERNAL_API_WARNING"
47134	//   "FIELD_VALUE_OVERRIDEN"
47135	//   "INJECTED_KERNELS_DEPRECATED"
47136	//   "LARGE_DEPLOYMENT_WARNING"
47137	//   "MISSING_TYPE_DEPENDENCY"
47138	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47139	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47140	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47141	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47142	//   "NEXT_HOP_NOT_RUNNING"
47143	//   "NOT_CRITICAL_ERROR"
47144	//   "NO_RESULTS_ON_PAGE"
47145	//   "PARTIAL_SUCCESS"
47146	//   "REQUIRED_TOS_AGREEMENT"
47147	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47148	//   "RESOURCE_NOT_DELETED"
47149	//   "SCHEMA_VALIDATION_IGNORED"
47150	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47151	//   "UNDECLARED_PROPERTIES"
47152	//   "UNREACHABLE"
47153	Code string `json:"code,omitempty"`
47154
47155	// Data: [Output Only] Metadata about this warning in key: value format.
47156	// For example:
47157	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47158	Data []*UrlMapListWarningData `json:"data,omitempty"`
47159
47160	// Message: [Output Only] A human-readable description of the warning
47161	// code.
47162	Message string `json:"message,omitempty"`
47163
47164	// ForceSendFields is a list of field names (e.g. "Code") to
47165	// unconditionally include in API requests. By default, fields with
47166	// empty values are omitted from API requests. However, any non-pointer,
47167	// non-interface field appearing in ForceSendFields will be sent to the
47168	// server regardless of whether the field is empty or not. This may be
47169	// used to include empty fields in Patch requests.
47170	ForceSendFields []string `json:"-"`
47171
47172	// NullFields is a list of field names (e.g. "Code") to include in API
47173	// requests with the JSON null value. By default, fields with empty
47174	// values are omitted from API requests. However, any field with an
47175	// empty value appearing in NullFields will be sent to the server as
47176	// null. It is an error if a field in this list has a non-empty value.
47177	// This may be used to include null fields in Patch requests.
47178	NullFields []string `json:"-"`
47179}
47180
47181func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
47182	type NoMethod UrlMapListWarning
47183	raw := NoMethod(*s)
47184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47185}
47186
47187type UrlMapListWarningData struct {
47188	// Key: [Output Only] A key that provides more detail on the warning
47189	// being returned. For example, for warnings where there are no results
47190	// in a list request for a particular zone, this key might be scope and
47191	// the key value might be the zone name. Other examples might be a key
47192	// indicating a deprecated resource and a suggested replacement, or a
47193	// warning about invalid network settings (for example, if an instance
47194	// attempts to perform IP forwarding but is not enabled for IP
47195	// forwarding).
47196	Key string `json:"key,omitempty"`
47197
47198	// Value: [Output Only] A warning data value corresponding to the key.
47199	Value string `json:"value,omitempty"`
47200
47201	// ForceSendFields is a list of field names (e.g. "Key") to
47202	// unconditionally include in API requests. By default, fields with
47203	// empty values are omitted from API requests. However, any non-pointer,
47204	// non-interface field appearing in ForceSendFields will be sent to the
47205	// server regardless of whether the field is empty or not. This may be
47206	// used to include empty fields in Patch requests.
47207	ForceSendFields []string `json:"-"`
47208
47209	// NullFields is a list of field names (e.g. "Key") to include in API
47210	// requests with the JSON null value. By default, fields with empty
47211	// values are omitted from API requests. However, any field with an
47212	// empty value appearing in NullFields will be sent to the server as
47213	// null. It is an error if a field in this list has a non-empty value.
47214	// This may be used to include null fields in Patch requests.
47215	NullFields []string `json:"-"`
47216}
47217
47218func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
47219	type NoMethod UrlMapListWarningData
47220	raw := NoMethod(*s)
47221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47222}
47223
47224type UrlMapReference struct {
47225	UrlMap string `json:"urlMap,omitempty"`
47226
47227	// ForceSendFields is a list of field names (e.g. "UrlMap") to
47228	// unconditionally include in API requests. By default, fields with
47229	// empty values are omitted from API requests. However, any non-pointer,
47230	// non-interface field appearing in ForceSendFields will be sent to the
47231	// server regardless of whether the field is empty or not. This may be
47232	// used to include empty fields in Patch requests.
47233	ForceSendFields []string `json:"-"`
47234
47235	// NullFields is a list of field names (e.g. "UrlMap") to include in API
47236	// requests with the JSON null value. By default, fields with empty
47237	// values are omitted from API requests. However, any field with an
47238	// empty value appearing in NullFields will be sent to the server as
47239	// null. It is an error if a field in this list has a non-empty value.
47240	// This may be used to include null fields in Patch requests.
47241	NullFields []string `json:"-"`
47242}
47243
47244func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
47245	type NoMethod UrlMapReference
47246	raw := NoMethod(*s)
47247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47248}
47249
47250// UrlMapTest: Message for the expected URL mappings.
47251type UrlMapTest struct {
47252	// Description: Description of this test case.
47253	Description string `json:"description,omitempty"`
47254
47255	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
47256	// containing the scheme, host, path and query parameters.
47257	// For rules that forward requests to backends, the test passes only
47258	// when expectedOutputUrl matches the request forwarded by load balancer
47259	// to backends. For rules with urlRewrite, the test verifies that the
47260	// forwarded request matches hostRewrite and pathPrefixRewrite in the
47261	// urlRewrite action. When service is specified, expectedOutputUrl`s
47262	// scheme is ignored.
47263	// For rules with urlRedirect, the test passes only if expectedOutputUrl
47264	// matches the URL in the load balancer's redirect response. If
47265	// urlRedirect specifies https_redirect, the test passes only if the
47266	// scheme in expectedOutputUrl is also set to https. If urlRedirect
47267	// specifies strip_query, the test passes only if expectedOutputUrl does
47268	// not contain any query parameters.
47269	// expectedOutputUrl is optional when service is specified.
47270	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
47271
47272	// ExpectedRedirectResponseCode: For rules with urlRedirect, the test
47273	// passes only if expectedRedirectResponseCode matches the HTTP status
47274	// code in load balancer's redirect
47275	// response.
47276	// expectedRedirectResponseCode cannot be set when service is set.
47277	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
47278
47279	// Headers: HTTP headers for this request. If headers contains a host
47280	// header, then host must also match the header value.
47281	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
47282
47283	// Host: Host portion of the URL. If headers contains a host header,
47284	// then host must also match the header value.
47285	Host string `json:"host,omitempty"`
47286
47287	// Path: Path portion of the URL.
47288	Path string `json:"path,omitempty"`
47289
47290	// Service: Expected BackendService or BackendBucket resource the given
47291	// URL should be mapped to.
47292	// service cannot be set if expectedRedirectResponseCode is set.
47293	Service string `json:"service,omitempty"`
47294
47295	// ForceSendFields is a list of field names (e.g. "Description") to
47296	// unconditionally include in API requests. By default, fields with
47297	// empty values are omitted from API requests. However, any non-pointer,
47298	// non-interface field appearing in ForceSendFields will be sent to the
47299	// server regardless of whether the field is empty or not. This may be
47300	// used to include empty fields in Patch requests.
47301	ForceSendFields []string `json:"-"`
47302
47303	// NullFields is a list of field names (e.g. "Description") to include
47304	// in API requests with the JSON null value. By default, fields with
47305	// empty values are omitted from API requests. However, any field with
47306	// an empty value appearing in NullFields will be sent to the server as
47307	// null. It is an error if a field in this list has a non-empty value.
47308	// This may be used to include null fields in Patch requests.
47309	NullFields []string `json:"-"`
47310}
47311
47312func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
47313	type NoMethod UrlMapTest
47314	raw := NoMethod(*s)
47315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47316}
47317
47318// UrlMapTestHeader: HTTP headers used in UrlMapTests.
47319type UrlMapTestHeader struct {
47320	// Name: Header name.
47321	Name string `json:"name,omitempty"`
47322
47323	// Value: Header value.
47324	Value string `json:"value,omitempty"`
47325
47326	// ForceSendFields is a list of field names (e.g. "Name") to
47327	// unconditionally include in API requests. By default, fields with
47328	// empty values are omitted from API requests. However, any non-pointer,
47329	// non-interface field appearing in ForceSendFields will be sent to the
47330	// server regardless of whether the field is empty or not. This may be
47331	// used to include empty fields in Patch requests.
47332	ForceSendFields []string `json:"-"`
47333
47334	// NullFields is a list of field names (e.g. "Name") to include in API
47335	// requests with the JSON null value. By default, fields with empty
47336	// values are omitted from API requests. However, any field with an
47337	// empty value appearing in NullFields will be sent to the server as
47338	// null. It is an error if a field in this list has a non-empty value.
47339	// This may be used to include null fields in Patch requests.
47340	NullFields []string `json:"-"`
47341}
47342
47343func (s *UrlMapTestHeader) MarshalJSON() ([]byte, error) {
47344	type NoMethod UrlMapTestHeader
47345	raw := NoMethod(*s)
47346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47347}
47348
47349// UrlMapValidationResult: Message representing the validation result
47350// for a UrlMap.
47351type UrlMapValidationResult struct {
47352	LoadErrors []string `json:"loadErrors,omitempty"`
47353
47354	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
47355	// If false, 'loadErrors' indicates the reasons.
47356	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
47357
47358	TestFailures []*TestFailure `json:"testFailures,omitempty"`
47359
47360	// TestPassed: If successfully loaded, this field indicates whether the
47361	// test passed. If false, 'testFailures's indicate the reason of
47362	// failure.
47363	TestPassed bool `json:"testPassed,omitempty"`
47364
47365	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
47366	// unconditionally include in API requests. By default, fields with
47367	// empty values are omitted from API requests. However, any non-pointer,
47368	// non-interface field appearing in ForceSendFields will be sent to the
47369	// server regardless of whether the field is empty or not. This may be
47370	// used to include empty fields in Patch requests.
47371	ForceSendFields []string `json:"-"`
47372
47373	// NullFields is a list of field names (e.g. "LoadErrors") to include in
47374	// API requests with the JSON null value. By default, fields with empty
47375	// values are omitted from API requests. However, any field with an
47376	// empty value appearing in NullFields will be sent to the server as
47377	// null. It is an error if a field in this list has a non-empty value.
47378	// This may be used to include null fields in Patch requests.
47379	NullFields []string `json:"-"`
47380}
47381
47382func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
47383	type NoMethod UrlMapValidationResult
47384	raw := NoMethod(*s)
47385	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47386}
47387
47388type UrlMapsAggregatedList struct {
47389	// Id: [Output Only] Unique identifier for the resource; defined by the
47390	// server.
47391	Id string `json:"id,omitempty"`
47392
47393	// Items: A list of UrlMapsScopedList resources.
47394	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
47395
47396	// Kind: Type of resource.
47397	Kind string `json:"kind,omitempty"`
47398
47399	// NextPageToken: [Output Only] This token allows you to get the next
47400	// page of results for list requests. If the number of results is larger
47401	// than maxResults, use the nextPageToken as a value for the query
47402	// parameter pageToken in the next list request. Subsequent list
47403	// requests will have their own nextPageToken to continue paging through
47404	// the results.
47405	NextPageToken string `json:"nextPageToken,omitempty"`
47406
47407	// SelfLink: [Output Only] Server-defined URL for this resource.
47408	SelfLink string `json:"selfLink,omitempty"`
47409
47410	// Unreachables: [Output Only] Unreachable resources.
47411	Unreachables []string `json:"unreachables,omitempty"`
47412
47413	// Warning: [Output Only] Informational warning message.
47414	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
47415
47416	// ServerResponse contains the HTTP response code and headers from the
47417	// server.
47418	googleapi.ServerResponse `json:"-"`
47419
47420	// ForceSendFields is a list of field names (e.g. "Id") to
47421	// unconditionally include in API requests. By default, fields with
47422	// empty values are omitted from API requests. However, any non-pointer,
47423	// non-interface field appearing in ForceSendFields will be sent to the
47424	// server regardless of whether the field is empty or not. This may be
47425	// used to include empty fields in Patch requests.
47426	ForceSendFields []string `json:"-"`
47427
47428	// NullFields is a list of field names (e.g. "Id") to include in API
47429	// requests with the JSON null value. By default, fields with empty
47430	// values are omitted from API requests. However, any field with an
47431	// empty value appearing in NullFields will be sent to the server as
47432	// null. It is an error if a field in this list has a non-empty value.
47433	// This may be used to include null fields in Patch requests.
47434	NullFields []string `json:"-"`
47435}
47436
47437func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
47438	type NoMethod UrlMapsAggregatedList
47439	raw := NoMethod(*s)
47440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47441}
47442
47443// UrlMapsAggregatedListWarning: [Output Only] Informational warning
47444// message.
47445type UrlMapsAggregatedListWarning struct {
47446	// Code: [Output Only] A warning code, if applicable. For example,
47447	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47448	// the response.
47449	//
47450	// Possible values:
47451	//   "CLEANUP_FAILED"
47452	//   "DEPRECATED_RESOURCE_USED"
47453	//   "DEPRECATED_TYPE_USED"
47454	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47455	//   "EXPERIMENTAL_TYPE_USED"
47456	//   "EXTERNAL_API_WARNING"
47457	//   "FIELD_VALUE_OVERRIDEN"
47458	//   "INJECTED_KERNELS_DEPRECATED"
47459	//   "LARGE_DEPLOYMENT_WARNING"
47460	//   "MISSING_TYPE_DEPENDENCY"
47461	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47462	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47463	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47464	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47465	//   "NEXT_HOP_NOT_RUNNING"
47466	//   "NOT_CRITICAL_ERROR"
47467	//   "NO_RESULTS_ON_PAGE"
47468	//   "PARTIAL_SUCCESS"
47469	//   "REQUIRED_TOS_AGREEMENT"
47470	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47471	//   "RESOURCE_NOT_DELETED"
47472	//   "SCHEMA_VALIDATION_IGNORED"
47473	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47474	//   "UNDECLARED_PROPERTIES"
47475	//   "UNREACHABLE"
47476	Code string `json:"code,omitempty"`
47477
47478	// Data: [Output Only] Metadata about this warning in key: value format.
47479	// For example:
47480	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47481	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
47482
47483	// Message: [Output Only] A human-readable description of the warning
47484	// code.
47485	Message string `json:"message,omitempty"`
47486
47487	// ForceSendFields is a list of field names (e.g. "Code") to
47488	// unconditionally include in API requests. By default, fields with
47489	// empty values are omitted from API requests. However, any non-pointer,
47490	// non-interface field appearing in ForceSendFields will be sent to the
47491	// server regardless of whether the field is empty or not. This may be
47492	// used to include empty fields in Patch requests.
47493	ForceSendFields []string `json:"-"`
47494
47495	// NullFields is a list of field names (e.g. "Code") to include in API
47496	// requests with the JSON null value. By default, fields with empty
47497	// values are omitted from API requests. However, any field with an
47498	// empty value appearing in NullFields will be sent to the server as
47499	// null. It is an error if a field in this list has a non-empty value.
47500	// This may be used to include null fields in Patch requests.
47501	NullFields []string `json:"-"`
47502}
47503
47504func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
47505	type NoMethod UrlMapsAggregatedListWarning
47506	raw := NoMethod(*s)
47507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47508}
47509
47510type UrlMapsAggregatedListWarningData struct {
47511	// Key: [Output Only] A key that provides more detail on the warning
47512	// being returned. For example, for warnings where there are no results
47513	// in a list request for a particular zone, this key might be scope and
47514	// the key value might be the zone name. Other examples might be a key
47515	// indicating a deprecated resource and a suggested replacement, or a
47516	// warning about invalid network settings (for example, if an instance
47517	// attempts to perform IP forwarding but is not enabled for IP
47518	// forwarding).
47519	Key string `json:"key,omitempty"`
47520
47521	// Value: [Output Only] A warning data value corresponding to the key.
47522	Value string `json:"value,omitempty"`
47523
47524	// ForceSendFields is a list of field names (e.g. "Key") to
47525	// unconditionally include in API requests. By default, fields with
47526	// empty values are omitted from API requests. However, any non-pointer,
47527	// non-interface field appearing in ForceSendFields will be sent to the
47528	// server regardless of whether the field is empty or not. This may be
47529	// used to include empty fields in Patch requests.
47530	ForceSendFields []string `json:"-"`
47531
47532	// NullFields is a list of field names (e.g. "Key") to include in API
47533	// requests with the JSON null value. By default, fields with empty
47534	// values are omitted from API requests. However, any field with an
47535	// empty value appearing in NullFields will be sent to the server as
47536	// null. It is an error if a field in this list has a non-empty value.
47537	// This may be used to include null fields in Patch requests.
47538	NullFields []string `json:"-"`
47539}
47540
47541func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
47542	type NoMethod UrlMapsAggregatedListWarningData
47543	raw := NoMethod(*s)
47544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47545}
47546
47547type UrlMapsScopedList struct {
47548	// UrlMaps: A list of UrlMaps contained in this scope.
47549	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
47550
47551	// Warning: Informational warning which replaces the list of backend
47552	// services when the list is empty.
47553	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
47554
47555	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
47556	// unconditionally include in API requests. By default, fields with
47557	// empty values are omitted from API requests. However, any non-pointer,
47558	// non-interface field appearing in ForceSendFields will be sent to the
47559	// server regardless of whether the field is empty or not. This may be
47560	// used to include empty fields in Patch requests.
47561	ForceSendFields []string `json:"-"`
47562
47563	// NullFields is a list of field names (e.g. "UrlMaps") to include in
47564	// API requests with the JSON null value. By default, fields with empty
47565	// values are omitted from API requests. However, any field with an
47566	// empty value appearing in NullFields will be sent to the server as
47567	// null. It is an error if a field in this list has a non-empty value.
47568	// This may be used to include null fields in Patch requests.
47569	NullFields []string `json:"-"`
47570}
47571
47572func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
47573	type NoMethod UrlMapsScopedList
47574	raw := NoMethod(*s)
47575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47576}
47577
47578// UrlMapsScopedListWarning: Informational warning which replaces the
47579// list of backend services when the list is empty.
47580type UrlMapsScopedListWarning struct {
47581	// Code: [Output Only] A warning code, if applicable. For example,
47582	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47583	// the response.
47584	//
47585	// Possible values:
47586	//   "CLEANUP_FAILED"
47587	//   "DEPRECATED_RESOURCE_USED"
47588	//   "DEPRECATED_TYPE_USED"
47589	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47590	//   "EXPERIMENTAL_TYPE_USED"
47591	//   "EXTERNAL_API_WARNING"
47592	//   "FIELD_VALUE_OVERRIDEN"
47593	//   "INJECTED_KERNELS_DEPRECATED"
47594	//   "LARGE_DEPLOYMENT_WARNING"
47595	//   "MISSING_TYPE_DEPENDENCY"
47596	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47597	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47598	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47599	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47600	//   "NEXT_HOP_NOT_RUNNING"
47601	//   "NOT_CRITICAL_ERROR"
47602	//   "NO_RESULTS_ON_PAGE"
47603	//   "PARTIAL_SUCCESS"
47604	//   "REQUIRED_TOS_AGREEMENT"
47605	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47606	//   "RESOURCE_NOT_DELETED"
47607	//   "SCHEMA_VALIDATION_IGNORED"
47608	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47609	//   "UNDECLARED_PROPERTIES"
47610	//   "UNREACHABLE"
47611	Code string `json:"code,omitempty"`
47612
47613	// Data: [Output Only] Metadata about this warning in key: value format.
47614	// For example:
47615	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47616	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
47617
47618	// Message: [Output Only] A human-readable description of the warning
47619	// code.
47620	Message string `json:"message,omitempty"`
47621
47622	// ForceSendFields is a list of field names (e.g. "Code") to
47623	// unconditionally include in API requests. By default, fields with
47624	// empty values are omitted from API requests. However, any non-pointer,
47625	// non-interface field appearing in ForceSendFields will be sent to the
47626	// server regardless of whether the field is empty or not. This may be
47627	// used to include empty fields in Patch requests.
47628	ForceSendFields []string `json:"-"`
47629
47630	// NullFields is a list of field names (e.g. "Code") to include in API
47631	// requests with the JSON null value. By default, fields with empty
47632	// values are omitted from API requests. However, any field with an
47633	// empty value appearing in NullFields will be sent to the server as
47634	// null. It is an error if a field in this list has a non-empty value.
47635	// This may be used to include null fields in Patch requests.
47636	NullFields []string `json:"-"`
47637}
47638
47639func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
47640	type NoMethod UrlMapsScopedListWarning
47641	raw := NoMethod(*s)
47642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47643}
47644
47645type UrlMapsScopedListWarningData struct {
47646	// Key: [Output Only] A key that provides more detail on the warning
47647	// being returned. For example, for warnings where there are no results
47648	// in a list request for a particular zone, this key might be scope and
47649	// the key value might be the zone name. Other examples might be a key
47650	// indicating a deprecated resource and a suggested replacement, or a
47651	// warning about invalid network settings (for example, if an instance
47652	// attempts to perform IP forwarding but is not enabled for IP
47653	// forwarding).
47654	Key string `json:"key,omitempty"`
47655
47656	// Value: [Output Only] A warning data value corresponding to the key.
47657	Value string `json:"value,omitempty"`
47658
47659	// ForceSendFields is a list of field names (e.g. "Key") to
47660	// unconditionally include in API requests. By default, fields with
47661	// empty values are omitted from API requests. However, any non-pointer,
47662	// non-interface field appearing in ForceSendFields will be sent to the
47663	// server regardless of whether the field is empty or not. This may be
47664	// used to include empty fields in Patch requests.
47665	ForceSendFields []string `json:"-"`
47666
47667	// NullFields is a list of field names (e.g. "Key") to include in API
47668	// requests with the JSON null value. By default, fields with empty
47669	// values are omitted from API requests. However, any field with an
47670	// empty value appearing in NullFields will be sent to the server as
47671	// null. It is an error if a field in this list has a non-empty value.
47672	// This may be used to include null fields in Patch requests.
47673	NullFields []string `json:"-"`
47674}
47675
47676func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
47677	type NoMethod UrlMapsScopedListWarningData
47678	raw := NoMethod(*s)
47679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47680}
47681
47682type UrlMapsValidateRequest struct {
47683	// Resource: Content of the UrlMap to be validated.
47684	Resource *UrlMap `json:"resource,omitempty"`
47685
47686	// ForceSendFields is a list of field names (e.g. "Resource") to
47687	// unconditionally include in API requests. By default, fields with
47688	// empty values are omitted from API requests. However, any non-pointer,
47689	// non-interface field appearing in ForceSendFields will be sent to the
47690	// server regardless of whether the field is empty or not. This may be
47691	// used to include empty fields in Patch requests.
47692	ForceSendFields []string `json:"-"`
47693
47694	// NullFields is a list of field names (e.g. "Resource") to include in
47695	// API requests with the JSON null value. By default, fields with empty
47696	// values are omitted from API requests. However, any field with an
47697	// empty value appearing in NullFields will be sent to the server as
47698	// null. It is an error if a field in this list has a non-empty value.
47699	// This may be used to include null fields in Patch requests.
47700	NullFields []string `json:"-"`
47701}
47702
47703func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
47704	type NoMethod UrlMapsValidateRequest
47705	raw := NoMethod(*s)
47706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47707}
47708
47709type UrlMapsValidateResponse struct {
47710	Result *UrlMapValidationResult `json:"result,omitempty"`
47711
47712	// ServerResponse contains the HTTP response code and headers from the
47713	// server.
47714	googleapi.ServerResponse `json:"-"`
47715
47716	// ForceSendFields is a list of field names (e.g. "Result") to
47717	// unconditionally include in API requests. By default, fields with
47718	// empty values are omitted from API requests. However, any non-pointer,
47719	// non-interface field appearing in ForceSendFields will be sent to the
47720	// server regardless of whether the field is empty or not. This may be
47721	// used to include empty fields in Patch requests.
47722	ForceSendFields []string `json:"-"`
47723
47724	// NullFields is a list of field names (e.g. "Result") to include in API
47725	// requests with the JSON null value. By default, fields with empty
47726	// values are omitted from API requests. However, any field with an
47727	// empty value appearing in NullFields will be sent to the server as
47728	// null. It is an error if a field in this list has a non-empty value.
47729	// This may be used to include null fields in Patch requests.
47730	NullFields []string `json:"-"`
47731}
47732
47733func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
47734	type NoMethod UrlMapsValidateResponse
47735	raw := NoMethod(*s)
47736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47737}
47738
47739// UrlRewrite: The spec for modifying the path before sending the
47740// request to the matched backend service.
47741type UrlRewrite struct {
47742	// HostRewrite: Prior to forwarding the request to the selected service,
47743	// the request's host header is replaced with contents of
47744	// hostRewrite.
47745	// The value must be between 1 and 255 characters.
47746	HostRewrite string `json:"hostRewrite,omitempty"`
47747
47748	// PathPrefixRewrite: Prior to forwarding the request to the selected
47749	// backend service, the matching portion of the request's path is
47750	// replaced by pathPrefixRewrite.
47751	// The value must be between 1 and 1024 characters.
47752	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
47753
47754	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
47755	// unconditionally include in API requests. By default, fields with
47756	// empty values are omitted from API requests. However, any non-pointer,
47757	// non-interface field appearing in ForceSendFields will be sent to the
47758	// server regardless of whether the field is empty or not. This may be
47759	// used to include empty fields in Patch requests.
47760	ForceSendFields []string `json:"-"`
47761
47762	// NullFields is a list of field names (e.g. "HostRewrite") to include
47763	// in API requests with the JSON null value. By default, fields with
47764	// empty values are omitted from API requests. However, any field with
47765	// an empty value appearing in NullFields will be sent to the server as
47766	// null. It is an error if a field in this list has a non-empty value.
47767	// This may be used to include null fields in Patch requests.
47768	NullFields []string `json:"-"`
47769}
47770
47771func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
47772	type NoMethod UrlRewrite
47773	raw := NoMethod(*s)
47774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47775}
47776
47777// UsableSubnetwork: Subnetwork which the current user has
47778// compute.subnetworks.use permission on.
47779type UsableSubnetwork struct {
47780	// IpCidrRange: The range of internal addresses that are owned by this
47781	// subnetwork.
47782	IpCidrRange string `json:"ipCidrRange,omitempty"`
47783
47784	// Network: Network URL.
47785	Network string `json:"network,omitempty"`
47786
47787	// SecondaryIpRanges: Secondary IP ranges.
47788	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
47789
47790	// Subnetwork: Subnetwork URL.
47791	Subnetwork string `json:"subnetwork,omitempty"`
47792
47793	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
47794	// unconditionally include in API requests. By default, fields with
47795	// empty values are omitted from API requests. However, any non-pointer,
47796	// non-interface field appearing in ForceSendFields will be sent to the
47797	// server regardless of whether the field is empty or not. This may be
47798	// used to include empty fields in Patch requests.
47799	ForceSendFields []string `json:"-"`
47800
47801	// NullFields is a list of field names (e.g. "IpCidrRange") to include
47802	// in API requests with the JSON null value. By default, fields with
47803	// empty values are omitted from API requests. However, any field with
47804	// an empty value appearing in NullFields will be sent to the server as
47805	// null. It is an error if a field in this list has a non-empty value.
47806	// This may be used to include null fields in Patch requests.
47807	NullFields []string `json:"-"`
47808}
47809
47810func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
47811	type NoMethod UsableSubnetwork
47812	raw := NoMethod(*s)
47813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47814}
47815
47816// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
47817// subnetwork.
47818type UsableSubnetworkSecondaryRange struct {
47819	// IpCidrRange: The range of IP addresses belonging to this subnetwork
47820	// secondary range.
47821	IpCidrRange string `json:"ipCidrRange,omitempty"`
47822
47823	// RangeName: The name associated with this subnetwork secondary range,
47824	// used when adding an alias IP range to a VM instance. The name must be
47825	// 1-63 characters long, and comply with RFC1035. The name must be
47826	// unique within the subnetwork.
47827	RangeName string `json:"rangeName,omitempty"`
47828
47829	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
47830	// unconditionally include in API requests. By default, fields with
47831	// empty values are omitted from API requests. However, any non-pointer,
47832	// non-interface field appearing in ForceSendFields will be sent to the
47833	// server regardless of whether the field is empty or not. This may be
47834	// used to include empty fields in Patch requests.
47835	ForceSendFields []string `json:"-"`
47836
47837	// NullFields is a list of field names (e.g. "IpCidrRange") to include
47838	// in API requests with the JSON null value. By default, fields with
47839	// empty values are omitted from API requests. However, any field with
47840	// an empty value appearing in NullFields will be sent to the server as
47841	// null. It is an error if a field in this list has a non-empty value.
47842	// This may be used to include null fields in Patch requests.
47843	NullFields []string `json:"-"`
47844}
47845
47846func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
47847	type NoMethod UsableSubnetworkSecondaryRange
47848	raw := NoMethod(*s)
47849	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47850}
47851
47852type UsableSubnetworksAggregatedList struct {
47853	// Id: [Output Only] The unique identifier for the resource. This
47854	// identifier is defined by the server.
47855	Id string `json:"id,omitempty"`
47856
47857	// Items: [Output] A list of usable subnetwork URLs.
47858	Items []*UsableSubnetwork `json:"items,omitempty"`
47859
47860	// Kind: [Output Only] Type of resource. Always
47861	// compute#usableSubnetworksAggregatedList for aggregated lists of
47862	// usable subnetworks.
47863	Kind string `json:"kind,omitempty"`
47864
47865	// NextPageToken: [Output Only] This token allows you to get the next
47866	// page of results for list requests. If the number of results is larger
47867	// than maxResults, use the nextPageToken as a value for the query
47868	// parameter pageToken in the next list request. Subsequent list
47869	// requests will have their own nextPageToken to continue paging through
47870	// the results. In special cases listUsable may return 0 subnetworks and
47871	// nextPageToken which still should be used to get the next page of
47872	// results.
47873	NextPageToken string `json:"nextPageToken,omitempty"`
47874
47875	// SelfLink: [Output Only] Server-defined URL for this resource.
47876	SelfLink string `json:"selfLink,omitempty"`
47877
47878	// Warning: [Output Only] Informational warning message.
47879	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
47880
47881	// ServerResponse contains the HTTP response code and headers from the
47882	// server.
47883	googleapi.ServerResponse `json:"-"`
47884
47885	// ForceSendFields is a list of field names (e.g. "Id") to
47886	// unconditionally include in API requests. By default, fields with
47887	// empty values are omitted from API requests. However, any non-pointer,
47888	// non-interface field appearing in ForceSendFields will be sent to the
47889	// server regardless of whether the field is empty or not. This may be
47890	// used to include empty fields in Patch requests.
47891	ForceSendFields []string `json:"-"`
47892
47893	// NullFields is a list of field names (e.g. "Id") to include in API
47894	// requests with the JSON null value. By default, fields with empty
47895	// values are omitted from API requests. However, any field with an
47896	// empty value appearing in NullFields will be sent to the server as
47897	// null. It is an error if a field in this list has a non-empty value.
47898	// This may be used to include null fields in Patch requests.
47899	NullFields []string `json:"-"`
47900}
47901
47902func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
47903	type NoMethod UsableSubnetworksAggregatedList
47904	raw := NoMethod(*s)
47905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47906}
47907
47908// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
47909// warning message.
47910type UsableSubnetworksAggregatedListWarning struct {
47911	// Code: [Output Only] A warning code, if applicable. For example,
47912	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47913	// the response.
47914	//
47915	// Possible values:
47916	//   "CLEANUP_FAILED"
47917	//   "DEPRECATED_RESOURCE_USED"
47918	//   "DEPRECATED_TYPE_USED"
47919	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47920	//   "EXPERIMENTAL_TYPE_USED"
47921	//   "EXTERNAL_API_WARNING"
47922	//   "FIELD_VALUE_OVERRIDEN"
47923	//   "INJECTED_KERNELS_DEPRECATED"
47924	//   "LARGE_DEPLOYMENT_WARNING"
47925	//   "MISSING_TYPE_DEPENDENCY"
47926	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47927	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47928	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47929	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47930	//   "NEXT_HOP_NOT_RUNNING"
47931	//   "NOT_CRITICAL_ERROR"
47932	//   "NO_RESULTS_ON_PAGE"
47933	//   "PARTIAL_SUCCESS"
47934	//   "REQUIRED_TOS_AGREEMENT"
47935	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47936	//   "RESOURCE_NOT_DELETED"
47937	//   "SCHEMA_VALIDATION_IGNORED"
47938	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47939	//   "UNDECLARED_PROPERTIES"
47940	//   "UNREACHABLE"
47941	Code string `json:"code,omitempty"`
47942
47943	// Data: [Output Only] Metadata about this warning in key: value format.
47944	// For example:
47945	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47946	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
47947
47948	// Message: [Output Only] A human-readable description of the warning
47949	// code.
47950	Message string `json:"message,omitempty"`
47951
47952	// ForceSendFields is a list of field names (e.g. "Code") to
47953	// unconditionally include in API requests. By default, fields with
47954	// empty values are omitted from API requests. However, any non-pointer,
47955	// non-interface field appearing in ForceSendFields will be sent to the
47956	// server regardless of whether the field is empty or not. This may be
47957	// used to include empty fields in Patch requests.
47958	ForceSendFields []string `json:"-"`
47959
47960	// NullFields is a list of field names (e.g. "Code") to include in API
47961	// requests with the JSON null value. By default, fields with empty
47962	// values are omitted from API requests. However, any field with an
47963	// empty value appearing in NullFields will be sent to the server as
47964	// null. It is an error if a field in this list has a non-empty value.
47965	// This may be used to include null fields in Patch requests.
47966	NullFields []string `json:"-"`
47967}
47968
47969func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
47970	type NoMethod UsableSubnetworksAggregatedListWarning
47971	raw := NoMethod(*s)
47972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47973}
47974
47975type UsableSubnetworksAggregatedListWarningData struct {
47976	// Key: [Output Only] A key that provides more detail on the warning
47977	// being returned. For example, for warnings where there are no results
47978	// in a list request for a particular zone, this key might be scope and
47979	// the key value might be the zone name. Other examples might be a key
47980	// indicating a deprecated resource and a suggested replacement, or a
47981	// warning about invalid network settings (for example, if an instance
47982	// attempts to perform IP forwarding but is not enabled for IP
47983	// forwarding).
47984	Key string `json:"key,omitempty"`
47985
47986	// Value: [Output Only] A warning data value corresponding to the key.
47987	Value string `json:"value,omitempty"`
47988
47989	// ForceSendFields is a list of field names (e.g. "Key") to
47990	// unconditionally include in API requests. By default, fields with
47991	// empty values are omitted from API requests. However, any non-pointer,
47992	// non-interface field appearing in ForceSendFields will be sent to the
47993	// server regardless of whether the field is empty or not. This may be
47994	// used to include empty fields in Patch requests.
47995	ForceSendFields []string `json:"-"`
47996
47997	// NullFields is a list of field names (e.g. "Key") to include in API
47998	// requests with the JSON null value. By default, fields with empty
47999	// values are omitted from API requests. However, any field with an
48000	// empty value appearing in NullFields will be sent to the server as
48001	// null. It is an error if a field in this list has a non-empty value.
48002	// This may be used to include null fields in Patch requests.
48003	NullFields []string `json:"-"`
48004}
48005
48006func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48007	type NoMethod UsableSubnetworksAggregatedListWarningData
48008	raw := NoMethod(*s)
48009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48010}
48011
48012// UsageExportLocation: The location in Cloud Storage and naming method
48013// of the daily usage report. Contains bucket_name and report_name
48014// prefix.
48015type UsageExportLocation struct {
48016	// BucketName: The name of an existing bucket in Cloud Storage where the
48017	// usage report object is stored. The Google Service Account is granted
48018	// write access to this bucket. This can either be the bucket name by
48019	// itself, such as example-bucket, or the bucket name with gs:// or
48020	// https://storage.googleapis.com/ in front of it, such as
48021	// gs://example-bucket.
48022	BucketName string `json:"bucketName,omitempty"`
48023
48024	// ReportNamePrefix: An optional prefix for the name of the usage report
48025	// object stored in bucketName. If not supplied, defaults to usage. The
48026	// report is stored as a CSV file named
48027	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
48028	// usage according to Pacific Time. If you supply a prefix, it should
48029	// conform to Cloud Storage object naming conventions.
48030	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
48031
48032	// ForceSendFields is a list of field names (e.g. "BucketName") to
48033	// unconditionally include in API requests. By default, fields with
48034	// empty values are omitted from API requests. However, any non-pointer,
48035	// non-interface field appearing in ForceSendFields will be sent to the
48036	// server regardless of whether the field is empty or not. This may be
48037	// used to include empty fields in Patch requests.
48038	ForceSendFields []string `json:"-"`
48039
48040	// NullFields is a list of field names (e.g. "BucketName") to include in
48041	// API requests with the JSON null value. By default, fields with empty
48042	// values are omitted from API requests. However, any field with an
48043	// empty value appearing in NullFields will be sent to the server as
48044	// null. It is an error if a field in this list has a non-empty value.
48045	// This may be used to include null fields in Patch requests.
48046	NullFields []string `json:"-"`
48047}
48048
48049func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
48050	type NoMethod UsageExportLocation
48051	raw := NoMethod(*s)
48052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48053}
48054
48055// VmEndpointNatMappings: Contain information of Nat mapping for a VM
48056// endpoint (i.e., NIC).
48057type VmEndpointNatMappings struct {
48058	// InstanceName: Name of the VM instance which the endpoint belongs to
48059	InstanceName string `json:"instanceName,omitempty"`
48060
48061	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
48062
48063	// ForceSendFields is a list of field names (e.g. "InstanceName") to
48064	// unconditionally include in API requests. By default, fields with
48065	// empty values are omitted from API requests. However, any non-pointer,
48066	// non-interface field appearing in ForceSendFields will be sent to the
48067	// server regardless of whether the field is empty or not. This may be
48068	// used to include empty fields in Patch requests.
48069	ForceSendFields []string `json:"-"`
48070
48071	// NullFields is a list of field names (e.g. "InstanceName") to include
48072	// in API requests with the JSON null value. By default, fields with
48073	// empty values are omitted from API requests. However, any field with
48074	// an empty value appearing in NullFields will be sent to the server as
48075	// null. It is an error if a field in this list has a non-empty value.
48076	// This may be used to include null fields in Patch requests.
48077	NullFields []string `json:"-"`
48078}
48079
48080func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
48081	type NoMethod VmEndpointNatMappings
48082	raw := NoMethod(*s)
48083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48084}
48085
48086// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
48087// mapping for an interface of this endpoint.
48088type VmEndpointNatMappingsInterfaceNatMappings struct {
48089	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
48090	// assigned to this interface. These ranges are inclusive, that is, both
48091	// the first and the last ports can be used for NAT. Example:
48092	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
48093	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
48094
48095	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
48096	// this interface. These ranges are inclusive, that is, both the first
48097	// and the last ports can be used for NAT. Example:
48098	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
48099	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
48100
48101	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
48102	// allocated to this interface. It equals to the aggregated port number
48103	// in the field drain_nat_ip_port_ranges.
48104	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
48105
48106	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
48107	// to this interface. It equals to the aggregated port number in the
48108	// field nat_ip_port_ranges.
48109	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
48110
48111	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
48112	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
48113	// "192.168.5.0/24".
48114	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
48115
48116	// SourceVirtualIp: Primary IP of the VM for this NIC.
48117	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
48118
48119	// ForceSendFields is a list of field names (e.g.
48120	// "DrainNatIpPortRanges") to unconditionally include in API requests.
48121	// By default, fields with empty values are omitted from API requests.
48122	// However, any non-pointer, non-interface field appearing in
48123	// ForceSendFields will be sent to the server regardless of whether the
48124	// field is empty or not. This may be used to include empty fields in
48125	// Patch requests.
48126	ForceSendFields []string `json:"-"`
48127
48128	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
48129	// include in API requests with the JSON null value. By default, fields
48130	// with empty values are omitted from API requests. However, any field
48131	// with an empty value appearing in NullFields will be sent to the
48132	// server as null. It is an error if a field in this list has a
48133	// non-empty value. This may be used to include null fields in Patch
48134	// requests.
48135	NullFields []string `json:"-"`
48136}
48137
48138func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
48139	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
48140	raw := NoMethod(*s)
48141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48142}
48143
48144// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
48145type VmEndpointNatMappingsList struct {
48146	// Id: [Output Only] The unique identifier for the resource. This
48147	// identifier is defined by the server.
48148	Id string `json:"id,omitempty"`
48149
48150	// Kind: [Output Only] Type of resource. Always
48151	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
48152	// endpoints.
48153	Kind string `json:"kind,omitempty"`
48154
48155	// NextPageToken: [Output Only] This token allows you to get the next
48156	// page of results for list requests. If the number of results is larger
48157	// than maxResults, use the nextPageToken as a value for the query
48158	// parameter pageToken in the next list request. Subsequent list
48159	// requests will have their own nextPageToken to continue paging through
48160	// the results.
48161	NextPageToken string `json:"nextPageToken,omitempty"`
48162
48163	// Result: [Output Only] A list of Nat mapping information of VM
48164	// endpoints.
48165	Result []*VmEndpointNatMappings `json:"result,omitempty"`
48166
48167	// SelfLink: [Output Only] Server-defined URL for this resource.
48168	SelfLink string `json:"selfLink,omitempty"`
48169
48170	// Warning: [Output Only] Informational warning message.
48171	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
48172
48173	// ServerResponse contains the HTTP response code and headers from the
48174	// server.
48175	googleapi.ServerResponse `json:"-"`
48176
48177	// ForceSendFields is a list of field names (e.g. "Id") to
48178	// unconditionally include in API requests. By default, fields with
48179	// empty values are omitted from API requests. However, any non-pointer,
48180	// non-interface field appearing in ForceSendFields will be sent to the
48181	// server regardless of whether the field is empty or not. This may be
48182	// used to include empty fields in Patch requests.
48183	ForceSendFields []string `json:"-"`
48184
48185	// NullFields is a list of field names (e.g. "Id") to include in API
48186	// requests with the JSON null value. By default, fields with empty
48187	// values are omitted from API requests. However, any field with an
48188	// empty value appearing in NullFields will be sent to the server as
48189	// null. It is an error if a field in this list has a non-empty value.
48190	// This may be used to include null fields in Patch requests.
48191	NullFields []string `json:"-"`
48192}
48193
48194func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
48195	type NoMethod VmEndpointNatMappingsList
48196	raw := NoMethod(*s)
48197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48198}
48199
48200// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
48201// message.
48202type VmEndpointNatMappingsListWarning struct {
48203	// Code: [Output Only] A warning code, if applicable. For example,
48204	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48205	// the response.
48206	//
48207	// Possible values:
48208	//   "CLEANUP_FAILED"
48209	//   "DEPRECATED_RESOURCE_USED"
48210	//   "DEPRECATED_TYPE_USED"
48211	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48212	//   "EXPERIMENTAL_TYPE_USED"
48213	//   "EXTERNAL_API_WARNING"
48214	//   "FIELD_VALUE_OVERRIDEN"
48215	//   "INJECTED_KERNELS_DEPRECATED"
48216	//   "LARGE_DEPLOYMENT_WARNING"
48217	//   "MISSING_TYPE_DEPENDENCY"
48218	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48219	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48220	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48221	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48222	//   "NEXT_HOP_NOT_RUNNING"
48223	//   "NOT_CRITICAL_ERROR"
48224	//   "NO_RESULTS_ON_PAGE"
48225	//   "PARTIAL_SUCCESS"
48226	//   "REQUIRED_TOS_AGREEMENT"
48227	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48228	//   "RESOURCE_NOT_DELETED"
48229	//   "SCHEMA_VALIDATION_IGNORED"
48230	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48231	//   "UNDECLARED_PROPERTIES"
48232	//   "UNREACHABLE"
48233	Code string `json:"code,omitempty"`
48234
48235	// Data: [Output Only] Metadata about this warning in key: value format.
48236	// For example:
48237	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48238	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
48239
48240	// Message: [Output Only] A human-readable description of the warning
48241	// code.
48242	Message string `json:"message,omitempty"`
48243
48244	// ForceSendFields is a list of field names (e.g. "Code") to
48245	// unconditionally include in API requests. By default, fields with
48246	// empty values are omitted from API requests. However, any non-pointer,
48247	// non-interface field appearing in ForceSendFields will be sent to the
48248	// server regardless of whether the field is empty or not. This may be
48249	// used to include empty fields in Patch requests.
48250	ForceSendFields []string `json:"-"`
48251
48252	// NullFields is a list of field names (e.g. "Code") to include in API
48253	// requests with the JSON null value. By default, fields with empty
48254	// values are omitted from API requests. However, any field with an
48255	// empty value appearing in NullFields will be sent to the server as
48256	// null. It is an error if a field in this list has a non-empty value.
48257	// This may be used to include null fields in Patch requests.
48258	NullFields []string `json:"-"`
48259}
48260
48261func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
48262	type NoMethod VmEndpointNatMappingsListWarning
48263	raw := NoMethod(*s)
48264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48265}
48266
48267type VmEndpointNatMappingsListWarningData struct {
48268	// Key: [Output Only] A key that provides more detail on the warning
48269	// being returned. For example, for warnings where there are no results
48270	// in a list request for a particular zone, this key might be scope and
48271	// the key value might be the zone name. Other examples might be a key
48272	// indicating a deprecated resource and a suggested replacement, or a
48273	// warning about invalid network settings (for example, if an instance
48274	// attempts to perform IP forwarding but is not enabled for IP
48275	// forwarding).
48276	Key string `json:"key,omitempty"`
48277
48278	// Value: [Output Only] A warning data value corresponding to the key.
48279	Value string `json:"value,omitempty"`
48280
48281	// ForceSendFields is a list of field names (e.g. "Key") to
48282	// unconditionally include in API requests. By default, fields with
48283	// empty values are omitted from API requests. However, any non-pointer,
48284	// non-interface field appearing in ForceSendFields will be sent to the
48285	// server regardless of whether the field is empty or not. This may be
48286	// used to include empty fields in Patch requests.
48287	ForceSendFields []string `json:"-"`
48288
48289	// NullFields is a list of field names (e.g. "Key") to include in API
48290	// requests with the JSON null value. By default, fields with empty
48291	// values are omitted from API requests. However, any field with an
48292	// empty value appearing in NullFields will be sent to the server as
48293	// null. It is an error if a field in this list has a non-empty value.
48294	// This may be used to include null fields in Patch requests.
48295	NullFields []string `json:"-"`
48296}
48297
48298func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
48299	type NoMethod VmEndpointNatMappingsListWarningData
48300	raw := NoMethod(*s)
48301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48302}
48303
48304// VpnGateway: Represents a HA VPN gateway.
48305//
48306// HA VPN is a high-availability (HA) Cloud VPN solution that lets you
48307// securely connect your on-premises network to your Google Cloud
48308// Virtual Private Cloud network through an IPsec VPN connection in a
48309// single region. For more information about Cloud HA VPN solutions, see
48310//  Cloud VPN topologies . (== resource_for {$api_version}.vpnGateways
48311// ==)
48312type VpnGateway struct {
48313	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
48314	// format.
48315	CreationTimestamp string `json:"creationTimestamp,omitempty"`
48316
48317	// Description: An optional description of this resource. Provide this
48318	// property when you create the resource.
48319	Description string `json:"description,omitempty"`
48320
48321	// Id: [Output Only] The unique identifier for the resource. This
48322	// identifier is defined by the server.
48323	Id uint64 `json:"id,omitempty,string"`
48324
48325	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
48326	// VPN gateways.
48327	Kind string `json:"kind,omitempty"`
48328
48329	// LabelFingerprint: A fingerprint for the labels being applied to this
48330	// VpnGateway, which is essentially a hash of the labels set used for
48331	// optimistic locking. The fingerprint is initially generated by Compute
48332	// Engine and changes after every request to modify or update labels.
48333	// You must always provide an up-to-date fingerprint hash in order to
48334	// update or change labels, otherwise the request will fail with error
48335	// 412 conditionNotMet.
48336	//
48337	// To see the latest fingerprint, make a get() request to retrieve an
48338	// VpnGateway.
48339	LabelFingerprint string `json:"labelFingerprint,omitempty"`
48340
48341	// Labels: Labels for this resource. These can only be added or modified
48342	// by the setLabels method. Each label key/value pair must comply with
48343	// RFC1035. Label values may be empty.
48344	Labels map[string]string `json:"labels,omitempty"`
48345
48346	// Name: Name of the resource. Provided by the client when the resource
48347	// is created. The name must be 1-63 characters long, and comply with
48348	// RFC1035. Specifically, the name must be 1-63 characters long and
48349	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
48350	// the first character must be a lowercase letter, and all following
48351	// characters must be a dash, lowercase letter, or digit, except the
48352	// last character, which cannot be a dash.
48353	Name string `json:"name,omitempty"`
48354
48355	// Network: URL of the network to which this VPN gateway is attached.
48356	// Provided by the client when the VPN gateway is created.
48357	Network string `json:"network,omitempty"`
48358
48359	// Region: [Output Only] URL of the region where the VPN gateway
48360	// resides.
48361	Region string `json:"region,omitempty"`
48362
48363	// SelfLink: [Output Only] Server-defined URL for the resource.
48364	SelfLink string `json:"selfLink,omitempty"`
48365
48366	// VpnInterfaces: The list of VPN interfaces associated with this VPN
48367	// gateway.
48368	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
48369
48370	// ServerResponse contains the HTTP response code and headers from the
48371	// server.
48372	googleapi.ServerResponse `json:"-"`
48373
48374	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
48375	// to unconditionally include in API requests. By default, fields with
48376	// empty values are omitted from API requests. However, any non-pointer,
48377	// non-interface field appearing in ForceSendFields will be sent to the
48378	// server regardless of whether the field is empty or not. This may be
48379	// used to include empty fields in Patch requests.
48380	ForceSendFields []string `json:"-"`
48381
48382	// NullFields is a list of field names (e.g. "CreationTimestamp") to
48383	// include in API requests with the JSON null value. By default, fields
48384	// with empty values are omitted from API requests. However, any field
48385	// with an empty value appearing in NullFields will be sent to the
48386	// server as null. It is an error if a field in this list has a
48387	// non-empty value. This may be used to include null fields in Patch
48388	// requests.
48389	NullFields []string `json:"-"`
48390}
48391
48392func (s *VpnGateway) MarshalJSON() ([]byte, error) {
48393	type NoMethod VpnGateway
48394	raw := NoMethod(*s)
48395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48396}
48397
48398type VpnGatewayAggregatedList struct {
48399	// Id: [Output Only] Unique identifier for the resource; defined by the
48400	// server.
48401	Id string `json:"id,omitempty"`
48402
48403	// Items: A list of VpnGateway resources.
48404	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
48405
48406	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
48407	// VPN gateways.
48408	Kind string `json:"kind,omitempty"`
48409
48410	// NextPageToken: [Output Only] This token allows you to get the next
48411	// page of results for list requests. If the number of results is larger
48412	// than maxResults, use the nextPageToken as a value for the query
48413	// parameter pageToken in the next list request. Subsequent list
48414	// requests will have their own nextPageToken to continue paging through
48415	// the results.
48416	NextPageToken string `json:"nextPageToken,omitempty"`
48417
48418	// SelfLink: [Output Only] Server-defined URL for this resource.
48419	SelfLink string `json:"selfLink,omitempty"`
48420
48421	// Unreachables: [Output Only] Unreachable resources.
48422	Unreachables []string `json:"unreachables,omitempty"`
48423
48424	// Warning: [Output Only] Informational warning message.
48425	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
48426
48427	// ServerResponse contains the HTTP response code and headers from the
48428	// server.
48429	googleapi.ServerResponse `json:"-"`
48430
48431	// ForceSendFields is a list of field names (e.g. "Id") to
48432	// unconditionally include in API requests. By default, fields with
48433	// empty values are omitted from API requests. However, any non-pointer,
48434	// non-interface field appearing in ForceSendFields will be sent to the
48435	// server regardless of whether the field is empty or not. This may be
48436	// used to include empty fields in Patch requests.
48437	ForceSendFields []string `json:"-"`
48438
48439	// NullFields is a list of field names (e.g. "Id") to include in API
48440	// requests with the JSON null value. By default, fields with empty
48441	// values are omitted from API requests. However, any field with an
48442	// empty value appearing in NullFields will be sent to the server as
48443	// null. It is an error if a field in this list has a non-empty value.
48444	// This may be used to include null fields in Patch requests.
48445	NullFields []string `json:"-"`
48446}
48447
48448func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
48449	type NoMethod VpnGatewayAggregatedList
48450	raw := NoMethod(*s)
48451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48452}
48453
48454// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
48455// message.
48456type VpnGatewayAggregatedListWarning struct {
48457	// Code: [Output Only] A warning code, if applicable. For example,
48458	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48459	// the response.
48460	//
48461	// Possible values:
48462	//   "CLEANUP_FAILED"
48463	//   "DEPRECATED_RESOURCE_USED"
48464	//   "DEPRECATED_TYPE_USED"
48465	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48466	//   "EXPERIMENTAL_TYPE_USED"
48467	//   "EXTERNAL_API_WARNING"
48468	//   "FIELD_VALUE_OVERRIDEN"
48469	//   "INJECTED_KERNELS_DEPRECATED"
48470	//   "LARGE_DEPLOYMENT_WARNING"
48471	//   "MISSING_TYPE_DEPENDENCY"
48472	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48473	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48474	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48475	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48476	//   "NEXT_HOP_NOT_RUNNING"
48477	//   "NOT_CRITICAL_ERROR"
48478	//   "NO_RESULTS_ON_PAGE"
48479	//   "PARTIAL_SUCCESS"
48480	//   "REQUIRED_TOS_AGREEMENT"
48481	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48482	//   "RESOURCE_NOT_DELETED"
48483	//   "SCHEMA_VALIDATION_IGNORED"
48484	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48485	//   "UNDECLARED_PROPERTIES"
48486	//   "UNREACHABLE"
48487	Code string `json:"code,omitempty"`
48488
48489	// Data: [Output Only] Metadata about this warning in key: value format.
48490	// For example:
48491	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48492	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
48493
48494	// Message: [Output Only] A human-readable description of the warning
48495	// code.
48496	Message string `json:"message,omitempty"`
48497
48498	// ForceSendFields is a list of field names (e.g. "Code") to
48499	// unconditionally include in API requests. By default, fields with
48500	// empty values are omitted from API requests. However, any non-pointer,
48501	// non-interface field appearing in ForceSendFields will be sent to the
48502	// server regardless of whether the field is empty or not. This may be
48503	// used to include empty fields in Patch requests.
48504	ForceSendFields []string `json:"-"`
48505
48506	// NullFields is a list of field names (e.g. "Code") to include in API
48507	// requests with the JSON null value. By default, fields with empty
48508	// values are omitted from API requests. However, any field with an
48509	// empty value appearing in NullFields will be sent to the server as
48510	// null. It is an error if a field in this list has a non-empty value.
48511	// This may be used to include null fields in Patch requests.
48512	NullFields []string `json:"-"`
48513}
48514
48515func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
48516	type NoMethod VpnGatewayAggregatedListWarning
48517	raw := NoMethod(*s)
48518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48519}
48520
48521type VpnGatewayAggregatedListWarningData struct {
48522	// Key: [Output Only] A key that provides more detail on the warning
48523	// being returned. For example, for warnings where there are no results
48524	// in a list request for a particular zone, this key might be scope and
48525	// the key value might be the zone name. Other examples might be a key
48526	// indicating a deprecated resource and a suggested replacement, or a
48527	// warning about invalid network settings (for example, if an instance
48528	// attempts to perform IP forwarding but is not enabled for IP
48529	// forwarding).
48530	Key string `json:"key,omitempty"`
48531
48532	// Value: [Output Only] A warning data value corresponding to the key.
48533	Value string `json:"value,omitempty"`
48534
48535	// ForceSendFields is a list of field names (e.g. "Key") to
48536	// unconditionally include in API requests. By default, fields with
48537	// empty values are omitted from API requests. However, any non-pointer,
48538	// non-interface field appearing in ForceSendFields will be sent to the
48539	// server regardless of whether the field is empty or not. This may be
48540	// used to include empty fields in Patch requests.
48541	ForceSendFields []string `json:"-"`
48542
48543	// NullFields is a list of field names (e.g. "Key") to include in API
48544	// requests with the JSON null value. By default, fields with empty
48545	// values are omitted from API requests. However, any field with an
48546	// empty value appearing in NullFields will be sent to the server as
48547	// null. It is an error if a field in this list has a non-empty value.
48548	// This may be used to include null fields in Patch requests.
48549	NullFields []string `json:"-"`
48550}
48551
48552func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48553	type NoMethod VpnGatewayAggregatedListWarningData
48554	raw := NoMethod(*s)
48555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48556}
48557
48558// VpnGatewayList: Contains a list of VpnGateway resources.
48559type VpnGatewayList struct {
48560	// Id: [Output Only] Unique identifier for the resource; defined by the
48561	// server.
48562	Id string `json:"id,omitempty"`
48563
48564	// Items: A list of VpnGateway resources.
48565	Items []*VpnGateway `json:"items,omitempty"`
48566
48567	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
48568	// VPN gateways.
48569	Kind string `json:"kind,omitempty"`
48570
48571	// NextPageToken: [Output Only] This token allows you to get the next
48572	// page of results for list requests. If the number of results is larger
48573	// than maxResults, use the nextPageToken as a value for the query
48574	// parameter pageToken in the next list request. Subsequent list
48575	// requests will have their own nextPageToken to continue paging through
48576	// the results.
48577	NextPageToken string `json:"nextPageToken,omitempty"`
48578
48579	// SelfLink: [Output Only] Server-defined URL for this resource.
48580	SelfLink string `json:"selfLink,omitempty"`
48581
48582	// Warning: [Output Only] Informational warning message.
48583	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
48584
48585	// ServerResponse contains the HTTP response code and headers from the
48586	// server.
48587	googleapi.ServerResponse `json:"-"`
48588
48589	// ForceSendFields is a list of field names (e.g. "Id") to
48590	// unconditionally include in API requests. By default, fields with
48591	// empty values are omitted from API requests. However, any non-pointer,
48592	// non-interface field appearing in ForceSendFields will be sent to the
48593	// server regardless of whether the field is empty or not. This may be
48594	// used to include empty fields in Patch requests.
48595	ForceSendFields []string `json:"-"`
48596
48597	// NullFields is a list of field names (e.g. "Id") to include in API
48598	// requests with the JSON null value. By default, fields with empty
48599	// values are omitted from API requests. However, any field with an
48600	// empty value appearing in NullFields will be sent to the server as
48601	// null. It is an error if a field in this list has a non-empty value.
48602	// This may be used to include null fields in Patch requests.
48603	NullFields []string `json:"-"`
48604}
48605
48606func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
48607	type NoMethod VpnGatewayList
48608	raw := NoMethod(*s)
48609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48610}
48611
48612// VpnGatewayListWarning: [Output Only] Informational warning message.
48613type VpnGatewayListWarning struct {
48614	// Code: [Output Only] A warning code, if applicable. For example,
48615	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48616	// the response.
48617	//
48618	// Possible values:
48619	//   "CLEANUP_FAILED"
48620	//   "DEPRECATED_RESOURCE_USED"
48621	//   "DEPRECATED_TYPE_USED"
48622	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48623	//   "EXPERIMENTAL_TYPE_USED"
48624	//   "EXTERNAL_API_WARNING"
48625	//   "FIELD_VALUE_OVERRIDEN"
48626	//   "INJECTED_KERNELS_DEPRECATED"
48627	//   "LARGE_DEPLOYMENT_WARNING"
48628	//   "MISSING_TYPE_DEPENDENCY"
48629	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48630	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48631	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48632	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48633	//   "NEXT_HOP_NOT_RUNNING"
48634	//   "NOT_CRITICAL_ERROR"
48635	//   "NO_RESULTS_ON_PAGE"
48636	//   "PARTIAL_SUCCESS"
48637	//   "REQUIRED_TOS_AGREEMENT"
48638	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48639	//   "RESOURCE_NOT_DELETED"
48640	//   "SCHEMA_VALIDATION_IGNORED"
48641	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48642	//   "UNDECLARED_PROPERTIES"
48643	//   "UNREACHABLE"
48644	Code string `json:"code,omitempty"`
48645
48646	// Data: [Output Only] Metadata about this warning in key: value format.
48647	// For example:
48648	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48649	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
48650
48651	// Message: [Output Only] A human-readable description of the warning
48652	// code.
48653	Message string `json:"message,omitempty"`
48654
48655	// ForceSendFields is a list of field names (e.g. "Code") to
48656	// unconditionally include in API requests. By default, fields with
48657	// empty values are omitted from API requests. However, any non-pointer,
48658	// non-interface field appearing in ForceSendFields will be sent to the
48659	// server regardless of whether the field is empty or not. This may be
48660	// used to include empty fields in Patch requests.
48661	ForceSendFields []string `json:"-"`
48662
48663	// NullFields is a list of field names (e.g. "Code") to include in API
48664	// requests with the JSON null value. By default, fields with empty
48665	// values are omitted from API requests. However, any field with an
48666	// empty value appearing in NullFields will be sent to the server as
48667	// null. It is an error if a field in this list has a non-empty value.
48668	// This may be used to include null fields in Patch requests.
48669	NullFields []string `json:"-"`
48670}
48671
48672func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
48673	type NoMethod VpnGatewayListWarning
48674	raw := NoMethod(*s)
48675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48676}
48677
48678type VpnGatewayListWarningData struct {
48679	// Key: [Output Only] A key that provides more detail on the warning
48680	// being returned. For example, for warnings where there are no results
48681	// in a list request for a particular zone, this key might be scope and
48682	// the key value might be the zone name. Other examples might be a key
48683	// indicating a deprecated resource and a suggested replacement, or a
48684	// warning about invalid network settings (for example, if an instance
48685	// attempts to perform IP forwarding but is not enabled for IP
48686	// forwarding).
48687	Key string `json:"key,omitempty"`
48688
48689	// Value: [Output Only] A warning data value corresponding to the key.
48690	Value string `json:"value,omitempty"`
48691
48692	// ForceSendFields is a list of field names (e.g. "Key") to
48693	// unconditionally include in API requests. By default, fields with
48694	// empty values are omitted from API requests. However, any non-pointer,
48695	// non-interface field appearing in ForceSendFields will be sent to the
48696	// server regardless of whether the field is empty or not. This may be
48697	// used to include empty fields in Patch requests.
48698	ForceSendFields []string `json:"-"`
48699
48700	// NullFields is a list of field names (e.g. "Key") to include in API
48701	// requests with the JSON null value. By default, fields with empty
48702	// values are omitted from API requests. However, any field with an
48703	// empty value appearing in NullFields will be sent to the server as
48704	// null. It is an error if a field in this list has a non-empty value.
48705	// This may be used to include null fields in Patch requests.
48706	NullFields []string `json:"-"`
48707}
48708
48709func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
48710	type NoMethod VpnGatewayListWarningData
48711	raw := NoMethod(*s)
48712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48713}
48714
48715type VpnGatewayStatus struct {
48716	// VpnConnections: List of VPN connection for this VpnGateway.
48717	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
48718
48719	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
48720	// unconditionally include in API requests. By default, fields with
48721	// empty values are omitted from API requests. However, any non-pointer,
48722	// non-interface field appearing in ForceSendFields will be sent to the
48723	// server regardless of whether the field is empty or not. This may be
48724	// used to include empty fields in Patch requests.
48725	ForceSendFields []string `json:"-"`
48726
48727	// NullFields is a list of field names (e.g. "VpnConnections") to
48728	// include in API requests with the JSON null value. By default, fields
48729	// with empty values are omitted from API requests. However, any field
48730	// with an empty value appearing in NullFields will be sent to the
48731	// server as null. It is an error if a field in this list has a
48732	// non-empty value. This may be used to include null fields in Patch
48733	// requests.
48734	NullFields []string `json:"-"`
48735}
48736
48737func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
48738	type NoMethod VpnGatewayStatus
48739	raw := NoMethod(*s)
48740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48741}
48742
48743// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
48744// availability requirement state for the VPN connection between this
48745// Cloud VPN gateway and a peer gateway.
48746type VpnGatewayStatusHighAvailabilityRequirementState struct {
48747	// State: Indicates the high availability requirement state for the VPN
48748	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
48749	// CONNECTION_REDUNDANCY_NOT_MET.
48750	//
48751	// Possible values:
48752	//   "CONNECTION_REDUNDANCY_MET"
48753	//   "CONNECTION_REDUNDANCY_NOT_MET"
48754	State string `json:"state,omitempty"`
48755
48756	// UnsatisfiedReason: Indicates the reason why the VPN connection does
48757	// not meet the high availability redundancy criteria/requirement. Valid
48758	// values is INCOMPLETE_TUNNELS_COVERAGE.
48759	//
48760	// Possible values:
48761	//   "INCOMPLETE_TUNNELS_COVERAGE"
48762	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
48763
48764	// ForceSendFields is a list of field names (e.g. "State") to
48765	// unconditionally include in API requests. By default, fields with
48766	// empty values are omitted from API requests. However, any non-pointer,
48767	// non-interface field appearing in ForceSendFields will be sent to the
48768	// server regardless of whether the field is empty or not. This may be
48769	// used to include empty fields in Patch requests.
48770	ForceSendFields []string `json:"-"`
48771
48772	// NullFields is a list of field names (e.g. "State") to include in API
48773	// requests with the JSON null value. By default, fields with empty
48774	// values are omitted from API requests. However, any field with an
48775	// empty value appearing in NullFields will be sent to the server as
48776	// null. It is an error if a field in this list has a non-empty value.
48777	// This may be used to include null fields in Patch requests.
48778	NullFields []string `json:"-"`
48779}
48780
48781func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
48782	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
48783	raw := NoMethod(*s)
48784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48785}
48786
48787// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
48788type VpnGatewayStatusTunnel struct {
48789	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
48790	// associated with.
48791	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
48792
48793	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
48794	// connected to, the peer gateway could either be an external VPN
48795	// gateway or GCP VPN gateway.
48796	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
48797
48798	// TunnelUrl: URL reference to the VPN tunnel.
48799	TunnelUrl string `json:"tunnelUrl,omitempty"`
48800
48801	// ForceSendFields is a list of field names (e.g.
48802	// "LocalGatewayInterface") to unconditionally include in API requests.
48803	// By default, fields with empty values are omitted from API requests.
48804	// However, any non-pointer, non-interface field appearing in
48805	// ForceSendFields will be sent to the server regardless of whether the
48806	// field is empty or not. This may be used to include empty fields in
48807	// Patch requests.
48808	ForceSendFields []string `json:"-"`
48809
48810	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
48811	// include in API requests with the JSON null value. By default, fields
48812	// with empty values are omitted from API requests. However, any field
48813	// with an empty value appearing in NullFields will be sent to the
48814	// server as null. It is an error if a field in this list has a
48815	// non-empty value. This may be used to include null fields in Patch
48816	// requests.
48817	NullFields []string `json:"-"`
48818}
48819
48820func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
48821	type NoMethod VpnGatewayStatusTunnel
48822	raw := NoMethod(*s)
48823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48824}
48825
48826// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
48827// tunnels connected from this VpnGateway to the same peer gateway. The
48828// peer gateway could either be a external VPN gateway or GCP VPN
48829// gateway.
48830type VpnGatewayStatusVpnConnection struct {
48831	// PeerExternalGateway: URL reference to the peer external VPN gateways
48832	// to which the VPN tunnels in this VPN connection are connected. This
48833	// field is mutually exclusive with peer_gcp_gateway.
48834	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
48835
48836	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
48837	// the VPN tunnels in this VPN connection are connected. This field is
48838	// mutually exclusive with peer_gcp_gateway.
48839	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
48840
48841	// State: HighAvailabilityRequirementState for the VPN connection.
48842	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
48843
48844	// Tunnels: List of VPN tunnels that are in this VPN connection.
48845	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
48846
48847	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
48848	// to unconditionally include in API requests. By default, fields with
48849	// empty values are omitted from API requests. However, any non-pointer,
48850	// non-interface field appearing in ForceSendFields will be sent to the
48851	// server regardless of whether the field is empty or not. This may be
48852	// used to include empty fields in Patch requests.
48853	ForceSendFields []string `json:"-"`
48854
48855	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
48856	// include in API requests with the JSON null value. By default, fields
48857	// with empty values are omitted from API requests. However, any field
48858	// with an empty value appearing in NullFields will be sent to the
48859	// server as null. It is an error if a field in this list has a
48860	// non-empty value. This may be used to include null fields in Patch
48861	// requests.
48862	NullFields []string `json:"-"`
48863}
48864
48865func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
48866	type NoMethod VpnGatewayStatusVpnConnection
48867	raw := NoMethod(*s)
48868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48869}
48870
48871// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
48872type VpnGatewayVpnGatewayInterface struct {
48873	// Id: [Output Only] Numeric identifier for this VPN interface
48874	// associated with the VPN gateway.
48875	Id int64 `json:"id,omitempty"`
48876
48877	// InterconnectAttachment: URL of the VLAN attachment
48878	// (interconnectAttachment) resource for this VPN gateway interface.
48879	// When the value of this field is present, the VPN gateway is used for
48880	// IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for
48881	// this VPN gateway interface goes through the specified VLAN attachment
48882	// resource.
48883	// Not currently available publicly.
48884	InterconnectAttachment string `json:"interconnectAttachment,omitempty"`
48885
48886	// IpAddress: [Output Only] IP address for this VPN interface associated
48887	// with the VPN gateway. The IP address could be either a regional
48888	// external IP address or a regional internal IP address. The two IP
48889	// addresses for a VPN gateway must be all regional external or regional
48890	// internal IP addresses. There cannot be a mix of regional external IP
48891	// addresses and regional internal IP addresses. For IPsec-encrypted
48892	// Cloud Interconnect, the IP addresses for both interfaces could either
48893	// be regional internal IP addresses or regional external IP addresses.
48894	// For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels,
48895	// the IP address must be a regional external IP address.
48896	IpAddress string `json:"ipAddress,omitempty"`
48897
48898	// ForceSendFields is a list of field names (e.g. "Id") to
48899	// unconditionally include in API requests. By default, fields with
48900	// empty values are omitted from API requests. However, any non-pointer,
48901	// non-interface field appearing in ForceSendFields will be sent to the
48902	// server regardless of whether the field is empty or not. This may be
48903	// used to include empty fields in Patch requests.
48904	ForceSendFields []string `json:"-"`
48905
48906	// NullFields is a list of field names (e.g. "Id") to include in API
48907	// requests with the JSON null value. By default, fields with empty
48908	// values are omitted from API requests. However, any field with an
48909	// empty value appearing in NullFields will be sent to the server as
48910	// null. It is an error if a field in this list has a non-empty value.
48911	// This may be used to include null fields in Patch requests.
48912	NullFields []string `json:"-"`
48913}
48914
48915func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
48916	type NoMethod VpnGatewayVpnGatewayInterface
48917	raw := NoMethod(*s)
48918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48919}
48920
48921type VpnGatewaysGetStatusResponse struct {
48922	Result *VpnGatewayStatus `json:"result,omitempty"`
48923
48924	// ServerResponse contains the HTTP response code and headers from the
48925	// server.
48926	googleapi.ServerResponse `json:"-"`
48927
48928	// ForceSendFields is a list of field names (e.g. "Result") to
48929	// unconditionally include in API requests. By default, fields with
48930	// empty values are omitted from API requests. However, any non-pointer,
48931	// non-interface field appearing in ForceSendFields will be sent to the
48932	// server regardless of whether the field is empty or not. This may be
48933	// used to include empty fields in Patch requests.
48934	ForceSendFields []string `json:"-"`
48935
48936	// NullFields is a list of field names (e.g. "Result") to include in API
48937	// requests with the JSON null value. By default, fields with empty
48938	// values are omitted from API requests. However, any field with an
48939	// empty value appearing in NullFields will be sent to the server as
48940	// null. It is an error if a field in this list has a non-empty value.
48941	// This may be used to include null fields in Patch requests.
48942	NullFields []string `json:"-"`
48943}
48944
48945func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
48946	type NoMethod VpnGatewaysGetStatusResponse
48947	raw := NoMethod(*s)
48948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48949}
48950
48951type VpnGatewaysScopedList struct {
48952	// VpnGateways: [Output Only] A list of VPN gateways contained in this
48953	// scope.
48954	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
48955
48956	// Warning: [Output Only] Informational warning which replaces the list
48957	// of addresses when the list is empty.
48958	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
48959
48960	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
48961	// unconditionally include in API requests. By default, fields with
48962	// empty values are omitted from API requests. However, any non-pointer,
48963	// non-interface field appearing in ForceSendFields will be sent to the
48964	// server regardless of whether the field is empty or not. This may be
48965	// used to include empty fields in Patch requests.
48966	ForceSendFields []string `json:"-"`
48967
48968	// NullFields is a list of field names (e.g. "VpnGateways") to include
48969	// in API requests with the JSON null value. By default, fields with
48970	// empty values are omitted from API requests. However, any field with
48971	// an empty value appearing in NullFields will be sent to the server as
48972	// null. It is an error if a field in this list has a non-empty value.
48973	// This may be used to include null fields in Patch requests.
48974	NullFields []string `json:"-"`
48975}
48976
48977func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
48978	type NoMethod VpnGatewaysScopedList
48979	raw := NoMethod(*s)
48980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48981}
48982
48983// VpnGatewaysScopedListWarning: [Output Only] Informational warning
48984// which replaces the list of addresses when the list is empty.
48985type VpnGatewaysScopedListWarning struct {
48986	// Code: [Output Only] A warning code, if applicable. For example,
48987	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48988	// the response.
48989	//
48990	// Possible values:
48991	//   "CLEANUP_FAILED"
48992	//   "DEPRECATED_RESOURCE_USED"
48993	//   "DEPRECATED_TYPE_USED"
48994	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48995	//   "EXPERIMENTAL_TYPE_USED"
48996	//   "EXTERNAL_API_WARNING"
48997	//   "FIELD_VALUE_OVERRIDEN"
48998	//   "INJECTED_KERNELS_DEPRECATED"
48999	//   "LARGE_DEPLOYMENT_WARNING"
49000	//   "MISSING_TYPE_DEPENDENCY"
49001	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49002	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49003	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49004	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49005	//   "NEXT_HOP_NOT_RUNNING"
49006	//   "NOT_CRITICAL_ERROR"
49007	//   "NO_RESULTS_ON_PAGE"
49008	//   "PARTIAL_SUCCESS"
49009	//   "REQUIRED_TOS_AGREEMENT"
49010	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49011	//   "RESOURCE_NOT_DELETED"
49012	//   "SCHEMA_VALIDATION_IGNORED"
49013	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49014	//   "UNDECLARED_PROPERTIES"
49015	//   "UNREACHABLE"
49016	Code string `json:"code,omitempty"`
49017
49018	// Data: [Output Only] Metadata about this warning in key: value format.
49019	// For example:
49020	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49021	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
49022
49023	// Message: [Output Only] A human-readable description of the warning
49024	// code.
49025	Message string `json:"message,omitempty"`
49026
49027	// ForceSendFields is a list of field names (e.g. "Code") to
49028	// unconditionally include in API requests. By default, fields with
49029	// empty values are omitted from API requests. However, any non-pointer,
49030	// non-interface field appearing in ForceSendFields will be sent to the
49031	// server regardless of whether the field is empty or not. This may be
49032	// used to include empty fields in Patch requests.
49033	ForceSendFields []string `json:"-"`
49034
49035	// NullFields is a list of field names (e.g. "Code") to include in API
49036	// requests with the JSON null value. By default, fields with empty
49037	// values are omitted from API requests. However, any field with an
49038	// empty value appearing in NullFields will be sent to the server as
49039	// null. It is an error if a field in this list has a non-empty value.
49040	// This may be used to include null fields in Patch requests.
49041	NullFields []string `json:"-"`
49042}
49043
49044func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
49045	type NoMethod VpnGatewaysScopedListWarning
49046	raw := NoMethod(*s)
49047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49048}
49049
49050type VpnGatewaysScopedListWarningData struct {
49051	// Key: [Output Only] A key that provides more detail on the warning
49052	// being returned. For example, for warnings where there are no results
49053	// in a list request for a particular zone, this key might be scope and
49054	// the key value might be the zone name. Other examples might be a key
49055	// indicating a deprecated resource and a suggested replacement, or a
49056	// warning about invalid network settings (for example, if an instance
49057	// attempts to perform IP forwarding but is not enabled for IP
49058	// forwarding).
49059	Key string `json:"key,omitempty"`
49060
49061	// Value: [Output Only] A warning data value corresponding to the key.
49062	Value string `json:"value,omitempty"`
49063
49064	// ForceSendFields is a list of field names (e.g. "Key") to
49065	// unconditionally include in API requests. By default, fields with
49066	// empty values are omitted from API requests. However, any non-pointer,
49067	// non-interface field appearing in ForceSendFields will be sent to the
49068	// server regardless of whether the field is empty or not. This may be
49069	// used to include empty fields in Patch requests.
49070	ForceSendFields []string `json:"-"`
49071
49072	// NullFields is a list of field names (e.g. "Key") to include in API
49073	// requests with the JSON null value. By default, fields with empty
49074	// values are omitted from API requests. However, any field with an
49075	// empty value appearing in NullFields will be sent to the server as
49076	// null. It is an error if a field in this list has a non-empty value.
49077	// This may be used to include null fields in Patch requests.
49078	NullFields []string `json:"-"`
49079}
49080
49081func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
49082	type NoMethod VpnGatewaysScopedListWarningData
49083	raw := NoMethod(*s)
49084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49085}
49086
49087// VpnTunnel: Represents a Cloud VPN Tunnel resource.
49088//
49089// For more information about VPN, read the  the Cloud VPN Overview. (==
49090// resource_for {$api_version}.vpnTunnels ==)
49091type VpnTunnel struct {
49092	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
49093	// format.
49094	CreationTimestamp string `json:"creationTimestamp,omitempty"`
49095
49096	// Description: An optional description of this resource. Provide this
49097	// property when you create the resource.
49098	Description string `json:"description,omitempty"`
49099
49100	// DetailedStatus: [Output Only] Detailed status message for the VPN
49101	// tunnel.
49102	DetailedStatus string `json:"detailedStatus,omitempty"`
49103
49104	// Id: [Output Only] The unique identifier for the resource. This
49105	// identifier is defined by the server.
49106	Id uint64 `json:"id,omitempty,string"`
49107
49108	// IkeVersion: IKE protocol version to use when establishing the VPN
49109	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
49110	// The default version is 2.
49111	IkeVersion int64 `json:"ikeVersion,omitempty"`
49112
49113	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
49114	// VPN tunnels.
49115	Kind string `json:"kind,omitempty"`
49116
49117	// LabelFingerprint: A fingerprint for the labels being applied to this
49118	// VpnTunnel, which is essentially a hash of the labels set used for
49119	// optimistic locking. The fingerprint is initially generated by Compute
49120	// Engine and changes after every request to modify or update labels.
49121	// You must always provide an up-to-date fingerprint hash in order to
49122	// update or change labels, otherwise the request will fail with error
49123	// 412 conditionNotMet.
49124	//
49125	// To see the latest fingerprint, make a get() request to retrieve a
49126	// VpnTunnel.
49127	LabelFingerprint string `json:"labelFingerprint,omitempty"`
49128
49129	// Labels: Labels for this resource. These can only be added or modified
49130	// by the setLabels method. Each label key/value pair must comply with
49131	// RFC1035. Label values may be empty.
49132	Labels map[string]string `json:"labels,omitempty"`
49133
49134	// LocalTrafficSelector: Local traffic selector to use when establishing
49135	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
49136	// formatted string, for example: 192.168.0.0/16. The ranges must be
49137	// disjoint. Only IPv4 is supported.
49138	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
49139
49140	// Name: Name of the resource. Provided by the client when the resource
49141	// is created. The name must be 1-63 characters long, and comply with
49142	// RFC1035. Specifically, the name must be 1-63 characters long and
49143	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
49144	// the first character must be a lowercase letter, and all following
49145	// characters must be a dash, lowercase letter, or digit, except the
49146	// last character, which cannot be a dash.
49147	Name string `json:"name,omitempty"`
49148
49149	// PeerExternalGateway: URL of the peer side external VPN gateway to
49150	// which this VPN tunnel is connected. Provided by the client when the
49151	// VPN tunnel is created. This field is exclusive with the field
49152	// peerGcpGateway.
49153	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
49154
49155	// PeerExternalGatewayInterface: The interface ID of the external VPN
49156	// gateway to which this VPN tunnel is connected. Provided by the client
49157	// when the VPN tunnel is created.
49158	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
49159
49160	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
49161	// VPN tunnel is connected. Provided by the client when the VPN tunnel
49162	// is created. This field can be used when creating highly available VPN
49163	// from VPC network to VPC network, the field is exclusive with the
49164	// field peerExternalGateway. If provided, the VPN tunnel will
49165	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
49166	// gateway.
49167	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
49168
49169	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
49170	PeerIp string `json:"peerIp,omitempty"`
49171
49172	// Region: [Output Only] URL of the region where the VPN tunnel resides.
49173	// You must specify this field as part of the HTTP request URL. It is
49174	// not settable as a field in the request body.
49175	Region string `json:"region,omitempty"`
49176
49177	// RemoteTrafficSelector: Remote traffic selectors to use when
49178	// establishing the VPN tunnel with the peer VPN gateway. The value
49179	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
49180	// ranges should be disjoint. Only IPv4 is supported.
49181	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
49182
49183	// Router: URL of the router resource to be used for dynamic routing.
49184	Router string `json:"router,omitempty"`
49185
49186	// SelfLink: [Output Only] Server-defined URL for the resource.
49187	SelfLink string `json:"selfLink,omitempty"`
49188
49189	// SharedSecret: Shared secret used to set the secure session between
49190	// the Cloud VPN gateway and the peer VPN gateway.
49191	SharedSecret string `json:"sharedSecret,omitempty"`
49192
49193	// SharedSecretHash: Hash of the shared secret.
49194	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
49195
49196	// Status: [Output Only] The status of the VPN tunnel, which can be one
49197	// of the following:
49198	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
49199	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
49200	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
49201	// and Route resources are needed to setup the VPN tunnel.
49202	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
49203	// - ESTABLISHED: Secure session is successfully established with the
49204	// peer VPN.
49205	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
49206	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
49207	//
49208	// - NEGOTIATION_FAILURE: Handshake failed.
49209	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
49210	//
49211	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
49212	// be used.
49213	// - NO_INCOMING_PACKETS: No incoming packets from peer.
49214	// - REJECTED: Tunnel configuration was rejected, can be result of being
49215	// denied access.
49216	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
49217	// required resources.
49218	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
49219	// deleted for Classic VPN tunnels or the project is in frozen state.
49220	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
49221	// probably behind NAT.
49222	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
49223	// for an HA-VPN tunnel.
49224	//
49225	// Possible values:
49226	//   "ALLOCATING_RESOURCES"
49227	//   "AUTHORIZATION_ERROR"
49228	//   "DEPROVISIONING"
49229	//   "ESTABLISHED"
49230	//   "FAILED"
49231	//   "FIRST_HANDSHAKE"
49232	//   "NEGOTIATION_FAILURE"
49233	//   "NETWORK_ERROR"
49234	//   "NO_INCOMING_PACKETS"
49235	//   "PROVISIONING"
49236	//   "REJECTED"
49237	//   "STOPPED"
49238	//   "WAITING_FOR_FULL_CONFIG"
49239	Status string `json:"status,omitempty"`
49240
49241	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
49242	// tunnel is associated. Provided by the client when the VPN tunnel is
49243	// created.
49244	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
49245
49246	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
49247	// associated. Provided by the client when the VPN tunnel is created.
49248	// This must be used (instead of target_vpn_gateway) if a High
49249	// Availability VPN gateway resource is created.
49250	VpnGateway string `json:"vpnGateway,omitempty"`
49251
49252	// VpnGatewayInterface: The interface ID of the VPN gateway with which
49253	// this VPN tunnel is associated.
49254	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
49255
49256	// ServerResponse contains the HTTP response code and headers from the
49257	// server.
49258	googleapi.ServerResponse `json:"-"`
49259
49260	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
49261	// to unconditionally include in API requests. By default, fields with
49262	// empty values are omitted from API requests. However, any non-pointer,
49263	// non-interface field appearing in ForceSendFields will be sent to the
49264	// server regardless of whether the field is empty or not. This may be
49265	// used to include empty fields in Patch requests.
49266	ForceSendFields []string `json:"-"`
49267
49268	// NullFields is a list of field names (e.g. "CreationTimestamp") to
49269	// include in API requests with the JSON null value. By default, fields
49270	// with empty values are omitted from API requests. However, any field
49271	// with an empty value appearing in NullFields will be sent to the
49272	// server as null. It is an error if a field in this list has a
49273	// non-empty value. This may be used to include null fields in Patch
49274	// requests.
49275	NullFields []string `json:"-"`
49276}
49277
49278func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
49279	type NoMethod VpnTunnel
49280	raw := NoMethod(*s)
49281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49282}
49283
49284type VpnTunnelAggregatedList struct {
49285	// Id: [Output Only] Unique identifier for the resource; defined by the
49286	// server.
49287	Id string `json:"id,omitempty"`
49288
49289	// Items: A list of VpnTunnelsScopedList resources.
49290	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
49291
49292	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
49293	// VPN tunnels.
49294	Kind string `json:"kind,omitempty"`
49295
49296	// NextPageToken: [Output Only] This token allows you to get the next
49297	// page of results for list requests. If the number of results is larger
49298	// than maxResults, use the nextPageToken as a value for the query
49299	// parameter pageToken in the next list request. Subsequent list
49300	// requests will have their own nextPageToken to continue paging through
49301	// the results.
49302	NextPageToken string `json:"nextPageToken,omitempty"`
49303
49304	// SelfLink: [Output Only] Server-defined URL for this resource.
49305	SelfLink string `json:"selfLink,omitempty"`
49306
49307	// Unreachables: [Output Only] Unreachable resources.
49308	Unreachables []string `json:"unreachables,omitempty"`
49309
49310	// Warning: [Output Only] Informational warning message.
49311	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
49312
49313	// ServerResponse contains the HTTP response code and headers from the
49314	// server.
49315	googleapi.ServerResponse `json:"-"`
49316
49317	// ForceSendFields is a list of field names (e.g. "Id") to
49318	// unconditionally include in API requests. By default, fields with
49319	// empty values are omitted from API requests. However, any non-pointer,
49320	// non-interface field appearing in ForceSendFields will be sent to the
49321	// server regardless of whether the field is empty or not. This may be
49322	// used to include empty fields in Patch requests.
49323	ForceSendFields []string `json:"-"`
49324
49325	// NullFields is a list of field names (e.g. "Id") to include in API
49326	// requests with the JSON null value. By default, fields with empty
49327	// values are omitted from API requests. However, any field with an
49328	// empty value appearing in NullFields will be sent to the server as
49329	// null. It is an error if a field in this list has a non-empty value.
49330	// This may be used to include null fields in Patch requests.
49331	NullFields []string `json:"-"`
49332}
49333
49334func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
49335	type NoMethod VpnTunnelAggregatedList
49336	raw := NoMethod(*s)
49337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49338}
49339
49340// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
49341// message.
49342type VpnTunnelAggregatedListWarning struct {
49343	// Code: [Output Only] A warning code, if applicable. For example,
49344	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49345	// the response.
49346	//
49347	// Possible values:
49348	//   "CLEANUP_FAILED"
49349	//   "DEPRECATED_RESOURCE_USED"
49350	//   "DEPRECATED_TYPE_USED"
49351	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49352	//   "EXPERIMENTAL_TYPE_USED"
49353	//   "EXTERNAL_API_WARNING"
49354	//   "FIELD_VALUE_OVERRIDEN"
49355	//   "INJECTED_KERNELS_DEPRECATED"
49356	//   "LARGE_DEPLOYMENT_WARNING"
49357	//   "MISSING_TYPE_DEPENDENCY"
49358	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49359	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49360	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49361	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49362	//   "NEXT_HOP_NOT_RUNNING"
49363	//   "NOT_CRITICAL_ERROR"
49364	//   "NO_RESULTS_ON_PAGE"
49365	//   "PARTIAL_SUCCESS"
49366	//   "REQUIRED_TOS_AGREEMENT"
49367	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49368	//   "RESOURCE_NOT_DELETED"
49369	//   "SCHEMA_VALIDATION_IGNORED"
49370	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49371	//   "UNDECLARED_PROPERTIES"
49372	//   "UNREACHABLE"
49373	Code string `json:"code,omitempty"`
49374
49375	// Data: [Output Only] Metadata about this warning in key: value format.
49376	// For example:
49377	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49378	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
49379
49380	// Message: [Output Only] A human-readable description of the warning
49381	// code.
49382	Message string `json:"message,omitempty"`
49383
49384	// ForceSendFields is a list of field names (e.g. "Code") to
49385	// unconditionally include in API requests. By default, fields with
49386	// empty values are omitted from API requests. However, any non-pointer,
49387	// non-interface field appearing in ForceSendFields will be sent to the
49388	// server regardless of whether the field is empty or not. This may be
49389	// used to include empty fields in Patch requests.
49390	ForceSendFields []string `json:"-"`
49391
49392	// NullFields is a list of field names (e.g. "Code") to include in API
49393	// requests with the JSON null value. By default, fields with empty
49394	// values are omitted from API requests. However, any field with an
49395	// empty value appearing in NullFields will be sent to the server as
49396	// null. It is an error if a field in this list has a non-empty value.
49397	// This may be used to include null fields in Patch requests.
49398	NullFields []string `json:"-"`
49399}
49400
49401func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
49402	type NoMethod VpnTunnelAggregatedListWarning
49403	raw := NoMethod(*s)
49404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49405}
49406
49407type VpnTunnelAggregatedListWarningData struct {
49408	// Key: [Output Only] A key that provides more detail on the warning
49409	// being returned. For example, for warnings where there are no results
49410	// in a list request for a particular zone, this key might be scope and
49411	// the key value might be the zone name. Other examples might be a key
49412	// indicating a deprecated resource and a suggested replacement, or a
49413	// warning about invalid network settings (for example, if an instance
49414	// attempts to perform IP forwarding but is not enabled for IP
49415	// forwarding).
49416	Key string `json:"key,omitempty"`
49417
49418	// Value: [Output Only] A warning data value corresponding to the key.
49419	Value string `json:"value,omitempty"`
49420
49421	// ForceSendFields is a list of field names (e.g. "Key") to
49422	// unconditionally include in API requests. By default, fields with
49423	// empty values are omitted from API requests. However, any non-pointer,
49424	// non-interface field appearing in ForceSendFields will be sent to the
49425	// server regardless of whether the field is empty or not. This may be
49426	// used to include empty fields in Patch requests.
49427	ForceSendFields []string `json:"-"`
49428
49429	// NullFields is a list of field names (e.g. "Key") to include in API
49430	// requests with the JSON null value. By default, fields with empty
49431	// values are omitted from API requests. However, any field with an
49432	// empty value appearing in NullFields will be sent to the server as
49433	// null. It is an error if a field in this list has a non-empty value.
49434	// This may be used to include null fields in Patch requests.
49435	NullFields []string `json:"-"`
49436}
49437
49438func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
49439	type NoMethod VpnTunnelAggregatedListWarningData
49440	raw := NoMethod(*s)
49441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49442}
49443
49444// VpnTunnelList: Contains a list of VpnTunnel resources.
49445type VpnTunnelList struct {
49446	// Id: [Output Only] Unique identifier for the resource; defined by the
49447	// server.
49448	Id string `json:"id,omitempty"`
49449
49450	// Items: A list of VpnTunnel resources.
49451	Items []*VpnTunnel `json:"items,omitempty"`
49452
49453	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
49454	// VPN tunnels.
49455	Kind string `json:"kind,omitempty"`
49456
49457	// NextPageToken: [Output Only] This token allows you to get the next
49458	// page of results for list requests. If the number of results is larger
49459	// than maxResults, use the nextPageToken as a value for the query
49460	// parameter pageToken in the next list request. Subsequent list
49461	// requests will have their own nextPageToken to continue paging through
49462	// the results.
49463	NextPageToken string `json:"nextPageToken,omitempty"`
49464
49465	// SelfLink: [Output Only] Server-defined URL for this resource.
49466	SelfLink string `json:"selfLink,omitempty"`
49467
49468	// Warning: [Output Only] Informational warning message.
49469	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
49470
49471	// ServerResponse contains the HTTP response code and headers from the
49472	// server.
49473	googleapi.ServerResponse `json:"-"`
49474
49475	// ForceSendFields is a list of field names (e.g. "Id") to
49476	// unconditionally include in API requests. By default, fields with
49477	// empty values are omitted from API requests. However, any non-pointer,
49478	// non-interface field appearing in ForceSendFields will be sent to the
49479	// server regardless of whether the field is empty or not. This may be
49480	// used to include empty fields in Patch requests.
49481	ForceSendFields []string `json:"-"`
49482
49483	// NullFields is a list of field names (e.g. "Id") to include in API
49484	// requests with the JSON null value. By default, fields with empty
49485	// values are omitted from API requests. However, any field with an
49486	// empty value appearing in NullFields will be sent to the server as
49487	// null. It is an error if a field in this list has a non-empty value.
49488	// This may be used to include null fields in Patch requests.
49489	NullFields []string `json:"-"`
49490}
49491
49492func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
49493	type NoMethod VpnTunnelList
49494	raw := NoMethod(*s)
49495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49496}
49497
49498// VpnTunnelListWarning: [Output Only] Informational warning message.
49499type VpnTunnelListWarning struct {
49500	// Code: [Output Only] A warning code, if applicable. For example,
49501	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49502	// the response.
49503	//
49504	// Possible values:
49505	//   "CLEANUP_FAILED"
49506	//   "DEPRECATED_RESOURCE_USED"
49507	//   "DEPRECATED_TYPE_USED"
49508	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49509	//   "EXPERIMENTAL_TYPE_USED"
49510	//   "EXTERNAL_API_WARNING"
49511	//   "FIELD_VALUE_OVERRIDEN"
49512	//   "INJECTED_KERNELS_DEPRECATED"
49513	//   "LARGE_DEPLOYMENT_WARNING"
49514	//   "MISSING_TYPE_DEPENDENCY"
49515	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49516	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49517	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49518	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49519	//   "NEXT_HOP_NOT_RUNNING"
49520	//   "NOT_CRITICAL_ERROR"
49521	//   "NO_RESULTS_ON_PAGE"
49522	//   "PARTIAL_SUCCESS"
49523	//   "REQUIRED_TOS_AGREEMENT"
49524	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49525	//   "RESOURCE_NOT_DELETED"
49526	//   "SCHEMA_VALIDATION_IGNORED"
49527	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49528	//   "UNDECLARED_PROPERTIES"
49529	//   "UNREACHABLE"
49530	Code string `json:"code,omitempty"`
49531
49532	// Data: [Output Only] Metadata about this warning in key: value format.
49533	// For example:
49534	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49535	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
49536
49537	// Message: [Output Only] A human-readable description of the warning
49538	// code.
49539	Message string `json:"message,omitempty"`
49540
49541	// ForceSendFields is a list of field names (e.g. "Code") to
49542	// unconditionally include in API requests. By default, fields with
49543	// empty values are omitted from API requests. However, any non-pointer,
49544	// non-interface field appearing in ForceSendFields will be sent to the
49545	// server regardless of whether the field is empty or not. This may be
49546	// used to include empty fields in Patch requests.
49547	ForceSendFields []string `json:"-"`
49548
49549	// NullFields is a list of field names (e.g. "Code") to include in API
49550	// requests with the JSON null value. By default, fields with empty
49551	// values are omitted from API requests. However, any field with an
49552	// empty value appearing in NullFields will be sent to the server as
49553	// null. It is an error if a field in this list has a non-empty value.
49554	// This may be used to include null fields in Patch requests.
49555	NullFields []string `json:"-"`
49556}
49557
49558func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
49559	type NoMethod VpnTunnelListWarning
49560	raw := NoMethod(*s)
49561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49562}
49563
49564type VpnTunnelListWarningData struct {
49565	// Key: [Output Only] A key that provides more detail on the warning
49566	// being returned. For example, for warnings where there are no results
49567	// in a list request for a particular zone, this key might be scope and
49568	// the key value might be the zone name. Other examples might be a key
49569	// indicating a deprecated resource and a suggested replacement, or a
49570	// warning about invalid network settings (for example, if an instance
49571	// attempts to perform IP forwarding but is not enabled for IP
49572	// forwarding).
49573	Key string `json:"key,omitempty"`
49574
49575	// Value: [Output Only] A warning data value corresponding to the key.
49576	Value string `json:"value,omitempty"`
49577
49578	// ForceSendFields is a list of field names (e.g. "Key") to
49579	// unconditionally include in API requests. By default, fields with
49580	// empty values are omitted from API requests. However, any non-pointer,
49581	// non-interface field appearing in ForceSendFields will be sent to the
49582	// server regardless of whether the field is empty or not. This may be
49583	// used to include empty fields in Patch requests.
49584	ForceSendFields []string `json:"-"`
49585
49586	// NullFields is a list of field names (e.g. "Key") to include in API
49587	// requests with the JSON null value. By default, fields with empty
49588	// values are omitted from API requests. However, any field with an
49589	// empty value appearing in NullFields will be sent to the server as
49590	// null. It is an error if a field in this list has a non-empty value.
49591	// This may be used to include null fields in Patch requests.
49592	NullFields []string `json:"-"`
49593}
49594
49595func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
49596	type NoMethod VpnTunnelListWarningData
49597	raw := NoMethod(*s)
49598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49599}
49600
49601type VpnTunnelsScopedList struct {
49602	// VpnTunnels: A list of VPN tunnels contained in this scope.
49603	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
49604
49605	// Warning: Informational warning which replaces the list of addresses
49606	// when the list is empty.
49607	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
49608
49609	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
49610	// unconditionally include in API requests. By default, fields with
49611	// empty values are omitted from API requests. However, any non-pointer,
49612	// non-interface field appearing in ForceSendFields will be sent to the
49613	// server regardless of whether the field is empty or not. This may be
49614	// used to include empty fields in Patch requests.
49615	ForceSendFields []string `json:"-"`
49616
49617	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
49618	// API requests with the JSON null value. By default, fields with empty
49619	// values are omitted from API requests. However, any field with an
49620	// empty value appearing in NullFields will be sent to the server as
49621	// null. It is an error if a field in this list has a non-empty value.
49622	// This may be used to include null fields in Patch requests.
49623	NullFields []string `json:"-"`
49624}
49625
49626func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
49627	type NoMethod VpnTunnelsScopedList
49628	raw := NoMethod(*s)
49629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49630}
49631
49632// VpnTunnelsScopedListWarning: Informational warning which replaces the
49633// list of addresses when the list is empty.
49634type VpnTunnelsScopedListWarning struct {
49635	// Code: [Output Only] A warning code, if applicable. For example,
49636	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49637	// the response.
49638	//
49639	// Possible values:
49640	//   "CLEANUP_FAILED"
49641	//   "DEPRECATED_RESOURCE_USED"
49642	//   "DEPRECATED_TYPE_USED"
49643	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49644	//   "EXPERIMENTAL_TYPE_USED"
49645	//   "EXTERNAL_API_WARNING"
49646	//   "FIELD_VALUE_OVERRIDEN"
49647	//   "INJECTED_KERNELS_DEPRECATED"
49648	//   "LARGE_DEPLOYMENT_WARNING"
49649	//   "MISSING_TYPE_DEPENDENCY"
49650	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49651	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49652	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49653	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49654	//   "NEXT_HOP_NOT_RUNNING"
49655	//   "NOT_CRITICAL_ERROR"
49656	//   "NO_RESULTS_ON_PAGE"
49657	//   "PARTIAL_SUCCESS"
49658	//   "REQUIRED_TOS_AGREEMENT"
49659	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49660	//   "RESOURCE_NOT_DELETED"
49661	//   "SCHEMA_VALIDATION_IGNORED"
49662	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49663	//   "UNDECLARED_PROPERTIES"
49664	//   "UNREACHABLE"
49665	Code string `json:"code,omitempty"`
49666
49667	// Data: [Output Only] Metadata about this warning in key: value format.
49668	// For example:
49669	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49670	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
49671
49672	// Message: [Output Only] A human-readable description of the warning
49673	// code.
49674	Message string `json:"message,omitempty"`
49675
49676	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
49694	type NoMethod VpnTunnelsScopedListWarning
49695	raw := NoMethod(*s)
49696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49697}
49698
49699type VpnTunnelsScopedListWarningData struct {
49700	// Key: [Output Only] A key that provides more detail on the warning
49701	// being returned. For example, for warnings where there are no results
49702	// in a list request for a particular zone, this key might be scope and
49703	// the key value might be the zone name. Other examples might be a key
49704	// indicating a deprecated resource and a suggested replacement, or a
49705	// warning about invalid network settings (for example, if an instance
49706	// attempts to perform IP forwarding but is not enabled for IP
49707	// forwarding).
49708	Key string `json:"key,omitempty"`
49709
49710	// Value: [Output Only] A warning data value corresponding to the key.
49711	Value string `json:"value,omitempty"`
49712
49713	// ForceSendFields is a list of field names (e.g. "Key") to
49714	// unconditionally include in API requests. By default, fields with
49715	// empty values are omitted from API requests. However, any non-pointer,
49716	// non-interface field appearing in ForceSendFields will be sent to the
49717	// server regardless of whether the field is empty or not. This may be
49718	// used to include empty fields in Patch requests.
49719	ForceSendFields []string `json:"-"`
49720
49721	// NullFields is a list of field names (e.g. "Key") to include in API
49722	// requests with the JSON null value. By default, fields with empty
49723	// values are omitted from API requests. However, any field with an
49724	// empty value appearing in NullFields will be sent to the server as
49725	// null. It is an error if a field in this list has a non-empty value.
49726	// This may be used to include null fields in Patch requests.
49727	NullFields []string `json:"-"`
49728}
49729
49730func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
49731	type NoMethod VpnTunnelsScopedListWarningData
49732	raw := NoMethod(*s)
49733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49734}
49735
49736type WafExpressionSet struct {
49737	// Aliases: A list of alternate IDs. The format should be: - E.g.
49738	// XSS-stable Generic suffix like "stable" is particularly useful if a
49739	// policy likes to avail newer set of expressions without having to
49740	// change the policy. A given alias name can't be used for more than one
49741	// entity set.
49742	Aliases []string `json:"aliases,omitempty"`
49743
49744	// Expressions: List of available expressions.
49745	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
49746
49747	// Id: Google specified expression set ID. The format should be: - E.g.
49748	// XSS-20170329
49749	Id string `json:"id,omitempty"`
49750
49751	// ForceSendFields is a list of field names (e.g. "Aliases") to
49752	// unconditionally include in API requests. By default, fields with
49753	// empty values are omitted from API requests. However, any non-pointer,
49754	// non-interface field appearing in ForceSendFields will be sent to the
49755	// server regardless of whether the field is empty or not. This may be
49756	// used to include empty fields in Patch requests.
49757	ForceSendFields []string `json:"-"`
49758
49759	// NullFields is a list of field names (e.g. "Aliases") to include in
49760	// API requests with the JSON null value. By default, fields with empty
49761	// values are omitted from API requests. However, any field with an
49762	// empty value appearing in NullFields will be sent to the server as
49763	// null. It is an error if a field in this list has a non-empty value.
49764	// This may be used to include null fields in Patch requests.
49765	NullFields []string `json:"-"`
49766}
49767
49768func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
49769	type NoMethod WafExpressionSet
49770	raw := NoMethod(*s)
49771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49772}
49773
49774type WafExpressionSetExpression struct {
49775	// Id: Expression ID should uniquely identify the origin of the
49776	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
49777	// rule set version 2.9.1 rule id 973337. The ID could be used to
49778	// determine the individual attack definition that has been detected. It
49779	// could also be used to exclude it from the policy in case of false
49780	// positive.
49781	Id string `json:"id,omitempty"`
49782
49783	// ForceSendFields is a list of field names (e.g. "Id") to
49784	// unconditionally include in API requests. By default, fields with
49785	// empty values are omitted from API requests. However, any non-pointer,
49786	// non-interface field appearing in ForceSendFields will be sent to the
49787	// server regardless of whether the field is empty or not. This may be
49788	// used to include empty fields in Patch requests.
49789	ForceSendFields []string `json:"-"`
49790
49791	// NullFields is a list of field names (e.g. "Id") to include in API
49792	// requests with the JSON null value. By default, fields with empty
49793	// values are omitted from API requests. However, any field with an
49794	// empty value appearing in NullFields will be sent to the server as
49795	// null. It is an error if a field in this list has a non-empty value.
49796	// This may be used to include null fields in Patch requests.
49797	NullFields []string `json:"-"`
49798}
49799
49800func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
49801	type NoMethod WafExpressionSetExpression
49802	raw := NoMethod(*s)
49803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49804}
49805
49806// WeightedBackendService: In contrast to a single BackendService in
49807// HttpRouteAction to which all matching traffic is directed to,
49808// WeightedBackendService allows traffic to be split across multiple
49809// BackendServices. The volume of traffic for each BackendService is
49810// proportional to the weight specified in each WeightedBackendService
49811type WeightedBackendService struct {
49812	// BackendService: The full or partial URL to the default BackendService
49813	// resource. Before forwarding the request to backendService, the
49814	// loadbalancer applies any relevant headerActions specified as part of
49815	// this backendServiceWeight.
49816	BackendService string `json:"backendService,omitempty"`
49817
49818	// HeaderAction: Specifies changes to request and response headers that
49819	// need to take effect for the selected backendService.
49820	// headerAction specified here take effect before headerAction in the
49821	// enclosing HttpRouteRule, PathMatcher and UrlMap.
49822	// Note that headerAction is not supported for Loadbalancers that have
49823	// their loadBalancingScheme set to EXTERNAL.
49824	// Not supported when the URL map is bound to target gRPC proxy that has
49825	// validateForProxyless field set to true.
49826	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
49827
49828	// Weight: Specifies the fraction of traffic sent to backendService,
49829	// computed as weight / (sum of all weightedBackendService weights in
49830	// routeAction) .
49831	// The selection of a backend service is determined only for new
49832	// traffic. Once a user's request has been directed to a backendService,
49833	// subsequent requests will be sent to the same backendService as
49834	// determined by the BackendService's session affinity policy.
49835	// The value must be between 0 and 1000
49836	Weight int64 `json:"weight,omitempty"`
49837
49838	// ForceSendFields is a list of field names (e.g. "BackendService") to
49839	// unconditionally include in API requests. By default, fields with
49840	// empty values are omitted from API requests. However, any non-pointer,
49841	// non-interface field appearing in ForceSendFields will be sent to the
49842	// server regardless of whether the field is empty or not. This may be
49843	// used to include empty fields in Patch requests.
49844	ForceSendFields []string `json:"-"`
49845
49846	// NullFields is a list of field names (e.g. "BackendService") to
49847	// include in API requests with the JSON null value. By default, fields
49848	// with empty values are omitted from API requests. However, any field
49849	// with an empty value appearing in NullFields will be sent to the
49850	// server as null. It is an error if a field in this list has a
49851	// non-empty value. This may be used to include null fields in Patch
49852	// requests.
49853	NullFields []string `json:"-"`
49854}
49855
49856func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
49857	type NoMethod WeightedBackendService
49858	raw := NoMethod(*s)
49859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49860}
49861
49862type XpnHostList struct {
49863	// Id: [Output Only] Unique identifier for the resource; defined by the
49864	// server.
49865	Id string `json:"id,omitempty"`
49866
49867	// Items: [Output Only] A list of shared VPC host project URLs.
49868	Items []*Project `json:"items,omitempty"`
49869
49870	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
49871	// lists of shared VPC hosts.
49872	Kind string `json:"kind,omitempty"`
49873
49874	// NextPageToken: [Output Only] This token allows you to get the next
49875	// page of results for list requests. If the number of results is larger
49876	// than maxResults, use the nextPageToken as a value for the query
49877	// parameter pageToken in the next list request. Subsequent list
49878	// requests will have their own nextPageToken to continue paging through
49879	// the results.
49880	NextPageToken string `json:"nextPageToken,omitempty"`
49881
49882	// SelfLink: [Output Only] Server-defined URL for this resource.
49883	SelfLink string `json:"selfLink,omitempty"`
49884
49885	// Warning: [Output Only] Informational warning message.
49886	Warning *XpnHostListWarning `json:"warning,omitempty"`
49887
49888	// ServerResponse contains the HTTP response code and headers from the
49889	// server.
49890	googleapi.ServerResponse `json:"-"`
49891
49892	// ForceSendFields is a list of field names (e.g. "Id") to
49893	// unconditionally include in API requests. By default, fields with
49894	// empty values are omitted from API requests. However, any non-pointer,
49895	// non-interface field appearing in ForceSendFields will be sent to the
49896	// server regardless of whether the field is empty or not. This may be
49897	// used to include empty fields in Patch requests.
49898	ForceSendFields []string `json:"-"`
49899
49900	// NullFields is a list of field names (e.g. "Id") to include in API
49901	// requests with the JSON null value. By default, fields with empty
49902	// values are omitted from API requests. However, any field with an
49903	// empty value appearing in NullFields will be sent to the server as
49904	// null. It is an error if a field in this list has a non-empty value.
49905	// This may be used to include null fields in Patch requests.
49906	NullFields []string `json:"-"`
49907}
49908
49909func (s *XpnHostList) MarshalJSON() ([]byte, error) {
49910	type NoMethod XpnHostList
49911	raw := NoMethod(*s)
49912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49913}
49914
49915// XpnHostListWarning: [Output Only] Informational warning message.
49916type XpnHostListWarning struct {
49917	// Code: [Output Only] A warning code, if applicable. For example,
49918	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49919	// the response.
49920	//
49921	// Possible values:
49922	//   "CLEANUP_FAILED"
49923	//   "DEPRECATED_RESOURCE_USED"
49924	//   "DEPRECATED_TYPE_USED"
49925	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49926	//   "EXPERIMENTAL_TYPE_USED"
49927	//   "EXTERNAL_API_WARNING"
49928	//   "FIELD_VALUE_OVERRIDEN"
49929	//   "INJECTED_KERNELS_DEPRECATED"
49930	//   "LARGE_DEPLOYMENT_WARNING"
49931	//   "MISSING_TYPE_DEPENDENCY"
49932	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49933	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49934	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49935	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49936	//   "NEXT_HOP_NOT_RUNNING"
49937	//   "NOT_CRITICAL_ERROR"
49938	//   "NO_RESULTS_ON_PAGE"
49939	//   "PARTIAL_SUCCESS"
49940	//   "REQUIRED_TOS_AGREEMENT"
49941	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49942	//   "RESOURCE_NOT_DELETED"
49943	//   "SCHEMA_VALIDATION_IGNORED"
49944	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49945	//   "UNDECLARED_PROPERTIES"
49946	//   "UNREACHABLE"
49947	Code string `json:"code,omitempty"`
49948
49949	// Data: [Output Only] Metadata about this warning in key: value format.
49950	// For example:
49951	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49952	Data []*XpnHostListWarningData `json:"data,omitempty"`
49953
49954	// Message: [Output Only] A human-readable description of the warning
49955	// code.
49956	Message string `json:"message,omitempty"`
49957
49958	// ForceSendFields is a list of field names (e.g. "Code") to
49959	// unconditionally include in API requests. By default, fields with
49960	// empty values are omitted from API requests. However, any non-pointer,
49961	// non-interface field appearing in ForceSendFields will be sent to the
49962	// server regardless of whether the field is empty or not. This may be
49963	// used to include empty fields in Patch requests.
49964	ForceSendFields []string `json:"-"`
49965
49966	// NullFields is a list of field names (e.g. "Code") to include in API
49967	// requests with the JSON null value. By default, fields with empty
49968	// values are omitted from API requests. However, any field with an
49969	// empty value appearing in NullFields will be sent to the server as
49970	// null. It is an error if a field in this list has a non-empty value.
49971	// This may be used to include null fields in Patch requests.
49972	NullFields []string `json:"-"`
49973}
49974
49975func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
49976	type NoMethod XpnHostListWarning
49977	raw := NoMethod(*s)
49978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49979}
49980
49981type XpnHostListWarningData struct {
49982	// Key: [Output Only] A key that provides more detail on the warning
49983	// being returned. For example, for warnings where there are no results
49984	// in a list request for a particular zone, this key might be scope and
49985	// the key value might be the zone name. Other examples might be a key
49986	// indicating a deprecated resource and a suggested replacement, or a
49987	// warning about invalid network settings (for example, if an instance
49988	// attempts to perform IP forwarding but is not enabled for IP
49989	// forwarding).
49990	Key string `json:"key,omitempty"`
49991
49992	// Value: [Output Only] A warning data value corresponding to the key.
49993	Value string `json:"value,omitempty"`
49994
49995	// ForceSendFields is a list of field names (e.g. "Key") to
49996	// unconditionally include in API requests. By default, fields with
49997	// empty values are omitted from API requests. However, any non-pointer,
49998	// non-interface field appearing in ForceSendFields will be sent to the
49999	// server regardless of whether the field is empty or not. This may be
50000	// used to include empty fields in Patch requests.
50001	ForceSendFields []string `json:"-"`
50002
50003	// NullFields is a list of field names (e.g. "Key") to include in API
50004	// requests with the JSON null value. By default, fields with empty
50005	// values are omitted from API requests. However, any field with an
50006	// empty value appearing in NullFields will be sent to the server as
50007	// null. It is an error if a field in this list has a non-empty value.
50008	// This may be used to include null fields in Patch requests.
50009	NullFields []string `json:"-"`
50010}
50011
50012func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
50013	type NoMethod XpnHostListWarningData
50014	raw := NoMethod(*s)
50015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50016}
50017
50018// XpnResourceId: Service resource (a.k.a service project) ID.
50019type XpnResourceId struct {
50020	// Id: The ID of the service resource. In the case of projects, this
50021	// field supports project id (e.g., my-project-123) and project number
50022	// (e.g. 12345678).
50023	Id string `json:"id,omitempty"`
50024
50025	// Type: The type of the service resource.
50026	//
50027	// Possible values:
50028	//   "PROJECT"
50029	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
50030	Type string `json:"type,omitempty"`
50031
50032	// ForceSendFields is a list of field names (e.g. "Id") to
50033	// unconditionally include in API requests. By default, fields with
50034	// empty values are omitted from API requests. However, any non-pointer,
50035	// non-interface field appearing in ForceSendFields will be sent to the
50036	// server regardless of whether the field is empty or not. This may be
50037	// used to include empty fields in Patch requests.
50038	ForceSendFields []string `json:"-"`
50039
50040	// NullFields is a list of field names (e.g. "Id") to include in API
50041	// requests with the JSON null value. By default, fields with empty
50042	// values are omitted from API requests. However, any field with an
50043	// empty value appearing in NullFields will be sent to the server as
50044	// null. It is an error if a field in this list has a non-empty value.
50045	// This may be used to include null fields in Patch requests.
50046	NullFields []string `json:"-"`
50047}
50048
50049func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
50050	type NoMethod XpnResourceId
50051	raw := NoMethod(*s)
50052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50053}
50054
50055// Zone: Represents a Zone resource.
50056//
50057// A zone is a deployment area. These deployment areas are subsets of a
50058// region. For example the zone us-east1-a is located in the us-east1
50059// region. For more information, read Regions and Zones. (==
50060// resource_for {$api_version}.zones ==)
50061type Zone struct {
50062	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
50063	// selections for the zone.
50064	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
50065
50066	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
50067	// format.
50068	CreationTimestamp string `json:"creationTimestamp,omitempty"`
50069
50070	// Deprecated -- [Output Only] The deprecation status associated with
50071	// this zone.
50072	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
50073
50074	// Description: [Output Only] Textual description of the resource.
50075	Description string `json:"description,omitempty"`
50076
50077	// Id: [Output Only] The unique identifier for the resource. This
50078	// identifier is defined by the server.
50079	Id uint64 `json:"id,omitempty,string"`
50080
50081	// Kind: [Output Only] Type of the resource. Always compute#zone for
50082	// zones.
50083	Kind string `json:"kind,omitempty"`
50084
50085	// Name: [Output Only] Name of the resource.
50086	Name string `json:"name,omitempty"`
50087
50088	// Region: [Output Only] Full URL reference to the region which hosts
50089	// the zone.
50090	Region string `json:"region,omitempty"`
50091
50092	// SelfLink: [Output Only] Server-defined URL for the resource.
50093	SelfLink string `json:"selfLink,omitempty"`
50094
50095	// Status: [Output Only] Status of the zone, either UP or DOWN.
50096	//
50097	// Possible values:
50098	//   "DOWN"
50099	//   "UP"
50100	Status string `json:"status,omitempty"`
50101
50102	// SupportsPzs: [Output Only] Reserved for future use.
50103	SupportsPzs bool `json:"supportsPzs,omitempty"`
50104
50105	// ServerResponse contains the HTTP response code and headers from the
50106	// server.
50107	googleapi.ServerResponse `json:"-"`
50108
50109	// ForceSendFields is a list of field names (e.g.
50110	// "AvailableCpuPlatforms") to unconditionally include in API requests.
50111	// By default, fields with empty values are omitted from API requests.
50112	// However, any non-pointer, non-interface field appearing in
50113	// ForceSendFields will be sent to the server regardless of whether the
50114	// field is empty or not. This may be used to include empty fields in
50115	// Patch requests.
50116	ForceSendFields []string `json:"-"`
50117
50118	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
50119	// include in API requests with the JSON null value. By default, fields
50120	// with empty values are omitted from API requests. However, any field
50121	// with an empty value appearing in NullFields will be sent to the
50122	// server as null. It is an error if a field in this list has a
50123	// non-empty value. This may be used to include null fields in Patch
50124	// requests.
50125	NullFields []string `json:"-"`
50126}
50127
50128func (s *Zone) MarshalJSON() ([]byte, error) {
50129	type NoMethod Zone
50130	raw := NoMethod(*s)
50131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50132}
50133
50134// ZoneList: Contains a list of zone resources.
50135type ZoneList struct {
50136	// Id: [Output Only] Unique identifier for the resource; defined by the
50137	// server.
50138	Id string `json:"id,omitempty"`
50139
50140	// Items: A list of Zone resources.
50141	Items []*Zone `json:"items,omitempty"`
50142
50143	// Kind: Type of resource.
50144	Kind string `json:"kind,omitempty"`
50145
50146	// NextPageToken: [Output Only] This token allows you to get the next
50147	// page of results for list requests. If the number of results is larger
50148	// than maxResults, use the nextPageToken as a value for the query
50149	// parameter pageToken in the next list request. Subsequent list
50150	// requests will have their own nextPageToken to continue paging through
50151	// the results.
50152	NextPageToken string `json:"nextPageToken,omitempty"`
50153
50154	// SelfLink: [Output Only] Server-defined URL for this resource.
50155	SelfLink string `json:"selfLink,omitempty"`
50156
50157	// Warning: [Output Only] Informational warning message.
50158	Warning *ZoneListWarning `json:"warning,omitempty"`
50159
50160	// ServerResponse contains the HTTP response code and headers from the
50161	// server.
50162	googleapi.ServerResponse `json:"-"`
50163
50164	// ForceSendFields is a list of field names (e.g. "Id") to
50165	// unconditionally include in API requests. By default, fields with
50166	// empty values are omitted from API requests. However, any non-pointer,
50167	// non-interface field appearing in ForceSendFields will be sent to the
50168	// server regardless of whether the field is empty or not. This may be
50169	// used to include empty fields in Patch requests.
50170	ForceSendFields []string `json:"-"`
50171
50172	// NullFields is a list of field names (e.g. "Id") to include in API
50173	// requests with the JSON null value. By default, fields with empty
50174	// values are omitted from API requests. However, any field with an
50175	// empty value appearing in NullFields will be sent to the server as
50176	// null. It is an error if a field in this list has a non-empty value.
50177	// This may be used to include null fields in Patch requests.
50178	NullFields []string `json:"-"`
50179}
50180
50181func (s *ZoneList) MarshalJSON() ([]byte, error) {
50182	type NoMethod ZoneList
50183	raw := NoMethod(*s)
50184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50185}
50186
50187// ZoneListWarning: [Output Only] Informational warning message.
50188type ZoneListWarning struct {
50189	// Code: [Output Only] A warning code, if applicable. For example,
50190	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50191	// the response.
50192	//
50193	// Possible values:
50194	//   "CLEANUP_FAILED"
50195	//   "DEPRECATED_RESOURCE_USED"
50196	//   "DEPRECATED_TYPE_USED"
50197	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
50198	//   "EXPERIMENTAL_TYPE_USED"
50199	//   "EXTERNAL_API_WARNING"
50200	//   "FIELD_VALUE_OVERRIDEN"
50201	//   "INJECTED_KERNELS_DEPRECATED"
50202	//   "LARGE_DEPLOYMENT_WARNING"
50203	//   "MISSING_TYPE_DEPENDENCY"
50204	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
50205	//   "NEXT_HOP_CANNOT_IP_FORWARD"
50206	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
50207	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
50208	//   "NEXT_HOP_NOT_RUNNING"
50209	//   "NOT_CRITICAL_ERROR"
50210	//   "NO_RESULTS_ON_PAGE"
50211	//   "PARTIAL_SUCCESS"
50212	//   "REQUIRED_TOS_AGREEMENT"
50213	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
50214	//   "RESOURCE_NOT_DELETED"
50215	//   "SCHEMA_VALIDATION_IGNORED"
50216	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
50217	//   "UNDECLARED_PROPERTIES"
50218	//   "UNREACHABLE"
50219	Code string `json:"code,omitempty"`
50220
50221	// Data: [Output Only] Metadata about this warning in key: value format.
50222	// For example:
50223	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
50224	Data []*ZoneListWarningData `json:"data,omitempty"`
50225
50226	// Message: [Output Only] A human-readable description of the warning
50227	// code.
50228	Message string `json:"message,omitempty"`
50229
50230	// ForceSendFields is a list of field names (e.g. "Code") to
50231	// unconditionally include in API requests. By default, fields with
50232	// empty values are omitted from API requests. However, any non-pointer,
50233	// non-interface field appearing in ForceSendFields will be sent to the
50234	// server regardless of whether the field is empty or not. This may be
50235	// used to include empty fields in Patch requests.
50236	ForceSendFields []string `json:"-"`
50237
50238	// NullFields is a list of field names (e.g. "Code") to include in API
50239	// requests with the JSON null value. By default, fields with empty
50240	// values are omitted from API requests. However, any field with an
50241	// empty value appearing in NullFields will be sent to the server as
50242	// null. It is an error if a field in this list has a non-empty value.
50243	// This may be used to include null fields in Patch requests.
50244	NullFields []string `json:"-"`
50245}
50246
50247func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
50248	type NoMethod ZoneListWarning
50249	raw := NoMethod(*s)
50250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50251}
50252
50253type ZoneListWarningData struct {
50254	// Key: [Output Only] A key that provides more detail on the warning
50255	// being returned. For example, for warnings where there are no results
50256	// in a list request for a particular zone, this key might be scope and
50257	// the key value might be the zone name. Other examples might be a key
50258	// indicating a deprecated resource and a suggested replacement, or a
50259	// warning about invalid network settings (for example, if an instance
50260	// attempts to perform IP forwarding but is not enabled for IP
50261	// forwarding).
50262	Key string `json:"key,omitempty"`
50263
50264	// Value: [Output Only] A warning data value corresponding to the key.
50265	Value string `json:"value,omitempty"`
50266
50267	// ForceSendFields is a list of field names (e.g. "Key") to
50268	// unconditionally include in API requests. By default, fields with
50269	// empty values are omitted from API requests. However, any non-pointer,
50270	// non-interface field appearing in ForceSendFields will be sent to the
50271	// server regardless of whether the field is empty or not. This may be
50272	// used to include empty fields in Patch requests.
50273	ForceSendFields []string `json:"-"`
50274
50275	// NullFields is a list of field names (e.g. "Key") to include in API
50276	// requests with the JSON null value. By default, fields with empty
50277	// values are omitted from API requests. However, any field with an
50278	// empty value appearing in NullFields will be sent to the server as
50279	// null. It is an error if a field in this list has a non-empty value.
50280	// This may be used to include null fields in Patch requests.
50281	NullFields []string `json:"-"`
50282}
50283
50284func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
50285	type NoMethod ZoneListWarningData
50286	raw := NoMethod(*s)
50287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50288}
50289
50290type ZoneSetLabelsRequest struct {
50291	// LabelFingerprint: The fingerprint of the previous set of labels for
50292	// this resource, used to detect conflicts. The fingerprint is initially
50293	// generated by Compute Engine and changes after every request to modify
50294	// or update labels. You must always provide an up-to-date fingerprint
50295	// hash in order to update or change labels. Make a get() request to the
50296	// resource to get the latest fingerprint.
50297	LabelFingerprint string `json:"labelFingerprint,omitempty"`
50298
50299	// Labels: The labels to set for this resource.
50300	Labels map[string]string `json:"labels,omitempty"`
50301
50302	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
50303	// unconditionally include in API requests. By default, fields with
50304	// empty values are omitted from API requests. However, any non-pointer,
50305	// non-interface field appearing in ForceSendFields will be sent to the
50306	// server regardless of whether the field is empty or not. This may be
50307	// used to include empty fields in Patch requests.
50308	ForceSendFields []string `json:"-"`
50309
50310	// NullFields is a list of field names (e.g. "LabelFingerprint") to
50311	// include in API requests with the JSON null value. By default, fields
50312	// with empty values are omitted from API requests. However, any field
50313	// with an empty value appearing in NullFields will be sent to the
50314	// server as null. It is an error if a field in this list has a
50315	// non-empty value. This may be used to include null fields in Patch
50316	// requests.
50317	NullFields []string `json:"-"`
50318}
50319
50320func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
50321	type NoMethod ZoneSetLabelsRequest
50322	raw := NoMethod(*s)
50323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50324}
50325
50326type ZoneSetPolicyRequest struct {
50327	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
50328	// Deprecated. Use 'policy' to specify bindings.
50329	Bindings []*Binding `json:"bindings,omitempty"`
50330
50331	// Etag: Flatten Policy to create a backward compatible wire-format.
50332	// Deprecated. Use 'policy' to specify the etag.
50333	Etag string `json:"etag,omitempty"`
50334
50335	// Policy: REQUIRED: The complete policy to be applied to the
50336	// 'resource'. The size of the policy is limited to a few 10s of KB. An
50337	// empty policy is in general a valid policy but certain services (like
50338	// Projects) might reject them.
50339	Policy *Policy `json:"policy,omitempty"`
50340
50341	// ForceSendFields is a list of field names (e.g. "Bindings") to
50342	// unconditionally include in API requests. By default, fields with
50343	// empty values are omitted from API requests. However, any non-pointer,
50344	// non-interface field appearing in ForceSendFields will be sent to the
50345	// server regardless of whether the field is empty or not. This may be
50346	// used to include empty fields in Patch requests.
50347	ForceSendFields []string `json:"-"`
50348
50349	// NullFields is a list of field names (e.g. "Bindings") to include in
50350	// API requests with the JSON null value. By default, fields with empty
50351	// values are omitted from API requests. However, any field with an
50352	// empty value appearing in NullFields will be sent to the server as
50353	// null. It is an error if a field in this list has a non-empty value.
50354	// This may be used to include null fields in Patch requests.
50355	NullFields []string `json:"-"`
50356}
50357
50358func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
50359	type NoMethod ZoneSetPolicyRequest
50360	raw := NoMethod(*s)
50361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50362}
50363
50364// method id "compute.acceleratorTypes.aggregatedList":
50365
50366type AcceleratorTypesAggregatedListCall struct {
50367	s            *Service
50368	project      string
50369	urlParams_   gensupport.URLParams
50370	ifNoneMatch_ string
50371	ctx_         context.Context
50372	header_      http.Header
50373}
50374
50375// AggregatedList: Retrieves an aggregated list of accelerator types.
50376//
50377// - project: Project ID for this request.
50378func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
50379	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50380	c.project = project
50381	return c
50382}
50383
50384// Filter sets the optional parameter "filter": A filter expression that
50385// filters resources listed in the response. The expression must specify
50386// the field name, a comparison operator, and the value that you want to
50387// use for filtering. The value must be a string, a number, or a
50388// boolean. The comparison operator must be either `=`, `!=`, `>`, or
50389// `<`.
50390//
50391// For example, if you are filtering Compute Engine instances, you can
50392// exclude instances named `example-instance` by specifying `name !=
50393// example-instance`.
50394//
50395// You can also filter nested fields. For example, you could specify
50396// `scheduling.automaticRestart = false` to include instances only if
50397// they are not scheduled for automatic restarts. You can use filtering
50398// on nested fields to filter based on resource labels.
50399//
50400// To filter on multiple expressions, provide each separate expression
50401// within parentheses. For example: ``` (scheduling.automaticRestart =
50402// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
50403// is an `AND` expression. However, you can include `AND` and `OR`
50404// expressions explicitly. For example: ``` (cpuPlatform = "Intel
50405// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
50406// (scheduling.automaticRestart = true) ```
50407func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
50408	c.urlParams_.Set("filter", filter)
50409	return c
50410}
50411
50412// IncludeAllScopes sets the optional parameter "includeAllScopes":
50413// Indicates whether every visible scope for each scope type (zone,
50414// region, global) should be included in the response. For new resource
50415// types added after this field, the flag has no effect as new resource
50416// types will always include every visible scope for each scope type in
50417// response. For resource types which predate this field, if this flag
50418// is omitted or false, only scopes of the scope types where the
50419// resource type is expected to be found will be included.
50420func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
50421	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
50422	return c
50423}
50424
50425// MaxResults sets the optional parameter "maxResults": The maximum
50426// number of results per page that should be returned. If the number of
50427// available results is larger than `maxResults`, Compute Engine returns
50428// a `nextPageToken` that can be used to get the next page of results in
50429// subsequent list requests. Acceptable values are `0` to `500`,
50430// inclusive. (Default: `500`)
50431func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
50432	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50433	return c
50434}
50435
50436// OrderBy sets the optional parameter "orderBy": Sorts list results by
50437// a certain order. By default, results are returned in alphanumerical
50438// order based on the resource name.
50439//
50440// You can also sort results in descending order based on the creation
50441// timestamp using `orderBy="creationTimestamp desc". This sorts
50442// results based on the `creationTimestamp` field in reverse
50443// chronological order (newest result first). Use this to sort resources
50444// like operations so that the newest operation is returned
50445// first.
50446//
50447// Currently, only sorting by `name` or `creationTimestamp desc` is
50448// supported.
50449func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
50450	c.urlParams_.Set("orderBy", orderBy)
50451	return c
50452}
50453
50454// PageToken sets the optional parameter "pageToken": Specifies a page
50455// token to use. Set `pageToken` to the `nextPageToken` returned by a
50456// previous list request to get the next page of results.
50457func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
50458	c.urlParams_.Set("pageToken", pageToken)
50459	return c
50460}
50461
50462// ReturnPartialSuccess sets the optional parameter
50463// "returnPartialSuccess": Opt-in for partial success behavior which
50464// provides partial results in case of failure. The default value is
50465// false.
50466func (c *AcceleratorTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesAggregatedListCall {
50467	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
50468	return c
50469}
50470
50471// Fields allows partial responses to be retrieved. See
50472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50473// for more information.
50474func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
50475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50476	return c
50477}
50478
50479// IfNoneMatch sets the optional parameter which makes the operation
50480// fail if the object's ETag matches the given value. This is useful for
50481// getting updates only after the object has changed since the last
50482// request. Use googleapi.IsNotModified to check whether the response
50483// error from Do is the result of In-None-Match.
50484func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
50485	c.ifNoneMatch_ = entityTag
50486	return c
50487}
50488
50489// Context sets the context to be used in this call's Do method. Any
50490// pending HTTP request will be aborted if the provided context is
50491// canceled.
50492func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
50493	c.ctx_ = ctx
50494	return c
50495}
50496
50497// Header returns an http.Header that can be modified by the caller to
50498// add HTTP headers to the request.
50499func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
50500	if c.header_ == nil {
50501		c.header_ = make(http.Header)
50502	}
50503	return c.header_
50504}
50505
50506func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50507	reqHeaders := make(http.Header)
50508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50509	for k, v := range c.header_ {
50510		reqHeaders[k] = v
50511	}
50512	reqHeaders.Set("User-Agent", c.s.userAgent())
50513	if c.ifNoneMatch_ != "" {
50514		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50515	}
50516	var body io.Reader = nil
50517	c.urlParams_.Set("alt", alt)
50518	c.urlParams_.Set("prettyPrint", "false")
50519	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/acceleratorTypes")
50520	urls += "?" + c.urlParams_.Encode()
50521	req, err := http.NewRequest("GET", urls, body)
50522	if err != nil {
50523		return nil, err
50524	}
50525	req.Header = reqHeaders
50526	googleapi.Expand(req.URL, map[string]string{
50527		"project": c.project,
50528	})
50529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50530}
50531
50532// Do executes the "compute.acceleratorTypes.aggregatedList" call.
50533// Exactly one of *AcceleratorTypeAggregatedList or error will be
50534// non-nil. Any non-2xx status code is an error. Response headers are in
50535// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
50536// response was returned at all) in error.(*googleapi.Error).Header. Use
50537// googleapi.IsNotModified to check whether the returned error was
50538// because http.StatusNotModified was returned.
50539func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
50540	gensupport.SetOptions(c.urlParams_, opts...)
50541	res, err := c.doRequest("json")
50542	if res != nil && res.StatusCode == http.StatusNotModified {
50543		if res.Body != nil {
50544			res.Body.Close()
50545		}
50546		return nil, &googleapi.Error{
50547			Code:   res.StatusCode,
50548			Header: res.Header,
50549		}
50550	}
50551	if err != nil {
50552		return nil, err
50553	}
50554	defer googleapi.CloseBody(res)
50555	if err := googleapi.CheckResponse(res); err != nil {
50556		return nil, err
50557	}
50558	ret := &AcceleratorTypeAggregatedList{
50559		ServerResponse: googleapi.ServerResponse{
50560			Header:         res.Header,
50561			HTTPStatusCode: res.StatusCode,
50562		},
50563	}
50564	target := &ret
50565	if err := gensupport.DecodeResponse(target, res); err != nil {
50566		return nil, err
50567	}
50568	return ret, nil
50569	// {
50570	//   "description": "Retrieves an aggregated list of accelerator types.",
50571	//   "httpMethod": "GET",
50572	//   "id": "compute.acceleratorTypes.aggregatedList",
50573	//   "parameterOrder": [
50574	//     "project"
50575	//   ],
50576	//   "parameters": {
50577	//     "filter": {
50578	//       "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) ```",
50579	//       "location": "query",
50580	//       "type": "string"
50581	//     },
50582	//     "includeAllScopes": {
50583	//       "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.",
50584	//       "location": "query",
50585	//       "type": "boolean"
50586	//     },
50587	//     "maxResults": {
50588	//       "default": "500",
50589	//       "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`)",
50590	//       "format": "uint32",
50591	//       "location": "query",
50592	//       "minimum": "0",
50593	//       "type": "integer"
50594	//     },
50595	//     "orderBy": {
50596	//       "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.",
50597	//       "location": "query",
50598	//       "type": "string"
50599	//     },
50600	//     "pageToken": {
50601	//       "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.",
50602	//       "location": "query",
50603	//       "type": "string"
50604	//     },
50605	//     "project": {
50606	//       "description": "Project ID for this request.",
50607	//       "location": "path",
50608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50609	//       "required": true,
50610	//       "type": "string"
50611	//     },
50612	//     "returnPartialSuccess": {
50613	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
50614	//       "location": "query",
50615	//       "type": "boolean"
50616	//     }
50617	//   },
50618	//   "path": "projects/{project}/aggregated/acceleratorTypes",
50619	//   "response": {
50620	//     "$ref": "AcceleratorTypeAggregatedList"
50621	//   },
50622	//   "scopes": [
50623	//     "https://www.googleapis.com/auth/cloud-platform",
50624	//     "https://www.googleapis.com/auth/compute",
50625	//     "https://www.googleapis.com/auth/compute.readonly"
50626	//   ]
50627	// }
50628
50629}
50630
50631// Pages invokes f for each page of results.
50632// A non-nil error returned from f will halt the iteration.
50633// The provided context supersedes any context provided to the Context method.
50634func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
50635	c.ctx_ = ctx
50636	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50637	for {
50638		x, err := c.Do()
50639		if err != nil {
50640			return err
50641		}
50642		if err := f(x); err != nil {
50643			return err
50644		}
50645		if x.NextPageToken == "" {
50646			return nil
50647		}
50648		c.PageToken(x.NextPageToken)
50649	}
50650}
50651
50652// method id "compute.acceleratorTypes.get":
50653
50654type AcceleratorTypesGetCall struct {
50655	s               *Service
50656	project         string
50657	zone            string
50658	acceleratorType string
50659	urlParams_      gensupport.URLParams
50660	ifNoneMatch_    string
50661	ctx_            context.Context
50662	header_         http.Header
50663}
50664
50665// Get: Returns the specified accelerator type.
50666//
50667// - acceleratorType: Name of the accelerator type to return.
50668// - project: Project ID for this request.
50669// - zone: The name of the zone for this request.
50670func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
50671	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50672	c.project = project
50673	c.zone = zone
50674	c.acceleratorType = acceleratorType
50675	return c
50676}
50677
50678// Fields allows partial responses to be retrieved. See
50679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50680// for more information.
50681func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
50682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50683	return c
50684}
50685
50686// IfNoneMatch sets the optional parameter which makes the operation
50687// fail if the object's ETag matches the given value. This is useful for
50688// getting updates only after the object has changed since the last
50689// request. Use googleapi.IsNotModified to check whether the response
50690// error from Do is the result of In-None-Match.
50691func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
50692	c.ifNoneMatch_ = entityTag
50693	return c
50694}
50695
50696// Context sets the context to be used in this call's Do method. Any
50697// pending HTTP request will be aborted if the provided context is
50698// canceled.
50699func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
50700	c.ctx_ = ctx
50701	return c
50702}
50703
50704// Header returns an http.Header that can be modified by the caller to
50705// add HTTP headers to the request.
50706func (c *AcceleratorTypesGetCall) Header() http.Header {
50707	if c.header_ == nil {
50708		c.header_ = make(http.Header)
50709	}
50710	return c.header_
50711}
50712
50713func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
50714	reqHeaders := make(http.Header)
50715	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50716	for k, v := range c.header_ {
50717		reqHeaders[k] = v
50718	}
50719	reqHeaders.Set("User-Agent", c.s.userAgent())
50720	if c.ifNoneMatch_ != "" {
50721		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50722	}
50723	var body io.Reader = nil
50724	c.urlParams_.Set("alt", alt)
50725	c.urlParams_.Set("prettyPrint", "false")
50726	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
50727	urls += "?" + c.urlParams_.Encode()
50728	req, err := http.NewRequest("GET", urls, body)
50729	if err != nil {
50730		return nil, err
50731	}
50732	req.Header = reqHeaders
50733	googleapi.Expand(req.URL, map[string]string{
50734		"project":         c.project,
50735		"zone":            c.zone,
50736		"acceleratorType": c.acceleratorType,
50737	})
50738	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50739}
50740
50741// Do executes the "compute.acceleratorTypes.get" call.
50742// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
50743// status code is an error. Response headers are in either
50744// *AcceleratorType.ServerResponse.Header or (if a response was returned
50745// at all) in error.(*googleapi.Error).Header. Use
50746// googleapi.IsNotModified to check whether the returned error was
50747// because http.StatusNotModified was returned.
50748func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
50749	gensupport.SetOptions(c.urlParams_, opts...)
50750	res, err := c.doRequest("json")
50751	if res != nil && res.StatusCode == http.StatusNotModified {
50752		if res.Body != nil {
50753			res.Body.Close()
50754		}
50755		return nil, &googleapi.Error{
50756			Code:   res.StatusCode,
50757			Header: res.Header,
50758		}
50759	}
50760	if err != nil {
50761		return nil, err
50762	}
50763	defer googleapi.CloseBody(res)
50764	if err := googleapi.CheckResponse(res); err != nil {
50765		return nil, err
50766	}
50767	ret := &AcceleratorType{
50768		ServerResponse: googleapi.ServerResponse{
50769			Header:         res.Header,
50770			HTTPStatusCode: res.StatusCode,
50771		},
50772	}
50773	target := &ret
50774	if err := gensupport.DecodeResponse(target, res); err != nil {
50775		return nil, err
50776	}
50777	return ret, nil
50778	// {
50779	//   "description": "Returns the specified accelerator type.",
50780	//   "httpMethod": "GET",
50781	//   "id": "compute.acceleratorTypes.get",
50782	//   "parameterOrder": [
50783	//     "project",
50784	//     "zone",
50785	//     "acceleratorType"
50786	//   ],
50787	//   "parameters": {
50788	//     "acceleratorType": {
50789	//       "description": "Name of the accelerator type to return.",
50790	//       "location": "path",
50791	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50792	//       "required": true,
50793	//       "type": "string"
50794	//     },
50795	//     "project": {
50796	//       "description": "Project ID for this request.",
50797	//       "location": "path",
50798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50799	//       "required": true,
50800	//       "type": "string"
50801	//     },
50802	//     "zone": {
50803	//       "description": "The name of the zone for this request.",
50804	//       "location": "path",
50805	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50806	//       "required": true,
50807	//       "type": "string"
50808	//     }
50809	//   },
50810	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
50811	//   "response": {
50812	//     "$ref": "AcceleratorType"
50813	//   },
50814	//   "scopes": [
50815	//     "https://www.googleapis.com/auth/cloud-platform",
50816	//     "https://www.googleapis.com/auth/compute",
50817	//     "https://www.googleapis.com/auth/compute.readonly"
50818	//   ]
50819	// }
50820
50821}
50822
50823// method id "compute.acceleratorTypes.list":
50824
50825type AcceleratorTypesListCall struct {
50826	s            *Service
50827	project      string
50828	zone         string
50829	urlParams_   gensupport.URLParams
50830	ifNoneMatch_ string
50831	ctx_         context.Context
50832	header_      http.Header
50833}
50834
50835// List: Retrieves a list of accelerator types that are available to the
50836// specified project.
50837//
50838// - project: Project ID for this request.
50839// - zone: The name of the zone for this request.
50840func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
50841	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50842	c.project = project
50843	c.zone = zone
50844	return c
50845}
50846
50847// Filter sets the optional parameter "filter": A filter expression that
50848// filters resources listed in the response. The expression must specify
50849// the field name, a comparison operator, and the value that you want to
50850// use for filtering. The value must be a string, a number, or a
50851// boolean. The comparison operator must be either `=`, `!=`, `>`, or
50852// `<`.
50853//
50854// For example, if you are filtering Compute Engine instances, you can
50855// exclude instances named `example-instance` by specifying `name !=
50856// example-instance`.
50857//
50858// You can also filter nested fields. For example, you could specify
50859// `scheduling.automaticRestart = false` to include instances only if
50860// they are not scheduled for automatic restarts. You can use filtering
50861// on nested fields to filter based on resource labels.
50862//
50863// To filter on multiple expressions, provide each separate expression
50864// within parentheses. For example: ``` (scheduling.automaticRestart =
50865// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
50866// is an `AND` expression. However, you can include `AND` and `OR`
50867// expressions explicitly. For example: ``` (cpuPlatform = "Intel
50868// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
50869// (scheduling.automaticRestart = true) ```
50870func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
50871	c.urlParams_.Set("filter", filter)
50872	return c
50873}
50874
50875// MaxResults sets the optional parameter "maxResults": The maximum
50876// number of results per page that should be returned. If the number of
50877// available results is larger than `maxResults`, Compute Engine returns
50878// a `nextPageToken` that can be used to get the next page of results in
50879// subsequent list requests. Acceptable values are `0` to `500`,
50880// inclusive. (Default: `500`)
50881func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
50882	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50883	return c
50884}
50885
50886// OrderBy sets the optional parameter "orderBy": Sorts list results by
50887// a certain order. By default, results are returned in alphanumerical
50888// order based on the resource name.
50889//
50890// You can also sort results in descending order based on the creation
50891// timestamp using `orderBy="creationTimestamp desc". This sorts
50892// results based on the `creationTimestamp` field in reverse
50893// chronological order (newest result first). Use this to sort resources
50894// like operations so that the newest operation is returned
50895// first.
50896//
50897// Currently, only sorting by `name` or `creationTimestamp desc` is
50898// supported.
50899func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
50900	c.urlParams_.Set("orderBy", orderBy)
50901	return c
50902}
50903
50904// PageToken sets the optional parameter "pageToken": Specifies a page
50905// token to use. Set `pageToken` to the `nextPageToken` returned by a
50906// previous list request to get the next page of results.
50907func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
50908	c.urlParams_.Set("pageToken", pageToken)
50909	return c
50910}
50911
50912// ReturnPartialSuccess sets the optional parameter
50913// "returnPartialSuccess": Opt-in for partial success behavior which
50914// provides partial results in case of failure. The default value is
50915// false.
50916func (c *AcceleratorTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesListCall {
50917	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
50918	return c
50919}
50920
50921// Fields allows partial responses to be retrieved. See
50922// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50923// for more information.
50924func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
50925	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50926	return c
50927}
50928
50929// IfNoneMatch sets the optional parameter which makes the operation
50930// fail if the object's ETag matches the given value. This is useful for
50931// getting updates only after the object has changed since the last
50932// request. Use googleapi.IsNotModified to check whether the response
50933// error from Do is the result of In-None-Match.
50934func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
50935	c.ifNoneMatch_ = entityTag
50936	return c
50937}
50938
50939// Context sets the context to be used in this call's Do method. Any
50940// pending HTTP request will be aborted if the provided context is
50941// canceled.
50942func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
50943	c.ctx_ = ctx
50944	return c
50945}
50946
50947// Header returns an http.Header that can be modified by the caller to
50948// add HTTP headers to the request.
50949func (c *AcceleratorTypesListCall) Header() http.Header {
50950	if c.header_ == nil {
50951		c.header_ = make(http.Header)
50952	}
50953	return c.header_
50954}
50955
50956func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
50957	reqHeaders := make(http.Header)
50958	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50959	for k, v := range c.header_ {
50960		reqHeaders[k] = v
50961	}
50962	reqHeaders.Set("User-Agent", c.s.userAgent())
50963	if c.ifNoneMatch_ != "" {
50964		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50965	}
50966	var body io.Reader = nil
50967	c.urlParams_.Set("alt", alt)
50968	c.urlParams_.Set("prettyPrint", "false")
50969	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes")
50970	urls += "?" + c.urlParams_.Encode()
50971	req, err := http.NewRequest("GET", urls, body)
50972	if err != nil {
50973		return nil, err
50974	}
50975	req.Header = reqHeaders
50976	googleapi.Expand(req.URL, map[string]string{
50977		"project": c.project,
50978		"zone":    c.zone,
50979	})
50980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50981}
50982
50983// Do executes the "compute.acceleratorTypes.list" call.
50984// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
50985// non-2xx status code is an error. Response headers are in either
50986// *AcceleratorTypeList.ServerResponse.Header or (if a response was
50987// returned at all) in error.(*googleapi.Error).Header. Use
50988// googleapi.IsNotModified to check whether the returned error was
50989// because http.StatusNotModified was returned.
50990func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
50991	gensupport.SetOptions(c.urlParams_, opts...)
50992	res, err := c.doRequest("json")
50993	if res != nil && res.StatusCode == http.StatusNotModified {
50994		if res.Body != nil {
50995			res.Body.Close()
50996		}
50997		return nil, &googleapi.Error{
50998			Code:   res.StatusCode,
50999			Header: res.Header,
51000		}
51001	}
51002	if err != nil {
51003		return nil, err
51004	}
51005	defer googleapi.CloseBody(res)
51006	if err := googleapi.CheckResponse(res); err != nil {
51007		return nil, err
51008	}
51009	ret := &AcceleratorTypeList{
51010		ServerResponse: googleapi.ServerResponse{
51011			Header:         res.Header,
51012			HTTPStatusCode: res.StatusCode,
51013		},
51014	}
51015	target := &ret
51016	if err := gensupport.DecodeResponse(target, res); err != nil {
51017		return nil, err
51018	}
51019	return ret, nil
51020	// {
51021	//   "description": "Retrieves a list of accelerator types that are available to the specified project.",
51022	//   "httpMethod": "GET",
51023	//   "id": "compute.acceleratorTypes.list",
51024	//   "parameterOrder": [
51025	//     "project",
51026	//     "zone"
51027	//   ],
51028	//   "parameters": {
51029	//     "filter": {
51030	//       "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) ```",
51031	//       "location": "query",
51032	//       "type": "string"
51033	//     },
51034	//     "maxResults": {
51035	//       "default": "500",
51036	//       "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`)",
51037	//       "format": "uint32",
51038	//       "location": "query",
51039	//       "minimum": "0",
51040	//       "type": "integer"
51041	//     },
51042	//     "orderBy": {
51043	//       "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.",
51044	//       "location": "query",
51045	//       "type": "string"
51046	//     },
51047	//     "pageToken": {
51048	//       "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.",
51049	//       "location": "query",
51050	//       "type": "string"
51051	//     },
51052	//     "project": {
51053	//       "description": "Project ID for this request.",
51054	//       "location": "path",
51055	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51056	//       "required": true,
51057	//       "type": "string"
51058	//     },
51059	//     "returnPartialSuccess": {
51060	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
51061	//       "location": "query",
51062	//       "type": "boolean"
51063	//     },
51064	//     "zone": {
51065	//       "description": "The name of the zone for this request.",
51066	//       "location": "path",
51067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51068	//       "required": true,
51069	//       "type": "string"
51070	//     }
51071	//   },
51072	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes",
51073	//   "response": {
51074	//     "$ref": "AcceleratorTypeList"
51075	//   },
51076	//   "scopes": [
51077	//     "https://www.googleapis.com/auth/cloud-platform",
51078	//     "https://www.googleapis.com/auth/compute",
51079	//     "https://www.googleapis.com/auth/compute.readonly"
51080	//   ]
51081	// }
51082
51083}
51084
51085// Pages invokes f for each page of results.
51086// A non-nil error returned from f will halt the iteration.
51087// The provided context supersedes any context provided to the Context method.
51088func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
51089	c.ctx_ = ctx
51090	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51091	for {
51092		x, err := c.Do()
51093		if err != nil {
51094			return err
51095		}
51096		if err := f(x); err != nil {
51097			return err
51098		}
51099		if x.NextPageToken == "" {
51100			return nil
51101		}
51102		c.PageToken(x.NextPageToken)
51103	}
51104}
51105
51106// method id "compute.addresses.aggregatedList":
51107
51108type AddressesAggregatedListCall struct {
51109	s            *Service
51110	project      string
51111	urlParams_   gensupport.URLParams
51112	ifNoneMatch_ string
51113	ctx_         context.Context
51114	header_      http.Header
51115}
51116
51117// AggregatedList: Retrieves an aggregated list of addresses.
51118//
51119// - project: Project ID for this request.
51120// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
51121func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
51122	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51123	c.project = project
51124	return c
51125}
51126
51127// Filter sets the optional parameter "filter": A filter expression that
51128// filters resources listed in the response. The expression must specify
51129// the field name, a comparison operator, and the value that you want to
51130// use for filtering. The value must be a string, a number, or a
51131// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51132// `<`.
51133//
51134// For example, if you are filtering Compute Engine instances, you can
51135// exclude instances named `example-instance` by specifying `name !=
51136// example-instance`.
51137//
51138// You can also filter nested fields. For example, you could specify
51139// `scheduling.automaticRestart = false` to include instances only if
51140// they are not scheduled for automatic restarts. You can use filtering
51141// on nested fields to filter based on resource labels.
51142//
51143// To filter on multiple expressions, provide each separate expression
51144// within parentheses. For example: ``` (scheduling.automaticRestart =
51145// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
51146// is an `AND` expression. However, you can include `AND` and `OR`
51147// expressions explicitly. For example: ``` (cpuPlatform = "Intel
51148// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
51149// (scheduling.automaticRestart = true) ```
51150func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
51151	c.urlParams_.Set("filter", filter)
51152	return c
51153}
51154
51155// IncludeAllScopes sets the optional parameter "includeAllScopes":
51156// Indicates whether every visible scope for each scope type (zone,
51157// region, global) should be included in the response. For new resource
51158// types added after this field, the flag has no effect as new resource
51159// types will always include every visible scope for each scope type in
51160// response. For resource types which predate this field, if this flag
51161// is omitted or false, only scopes of the scope types where the
51162// resource type is expected to be found will be included.
51163func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
51164	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
51165	return c
51166}
51167
51168// MaxResults sets the optional parameter "maxResults": The maximum
51169// number of results per page that should be returned. If the number of
51170// available results is larger than `maxResults`, Compute Engine returns
51171// a `nextPageToken` that can be used to get the next page of results in
51172// subsequent list requests. Acceptable values are `0` to `500`,
51173// inclusive. (Default: `500`)
51174func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
51175	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51176	return c
51177}
51178
51179// OrderBy sets the optional parameter "orderBy": Sorts list results by
51180// a certain order. By default, results are returned in alphanumerical
51181// order based on the resource name.
51182//
51183// You can also sort results in descending order based on the creation
51184// timestamp using `orderBy="creationTimestamp desc". This sorts
51185// results based on the `creationTimestamp` field in reverse
51186// chronological order (newest result first). Use this to sort resources
51187// like operations so that the newest operation is returned
51188// first.
51189//
51190// Currently, only sorting by `name` or `creationTimestamp desc` is
51191// supported.
51192func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
51193	c.urlParams_.Set("orderBy", orderBy)
51194	return c
51195}
51196
51197// PageToken sets the optional parameter "pageToken": Specifies a page
51198// token to use. Set `pageToken` to the `nextPageToken` returned by a
51199// previous list request to get the next page of results.
51200func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
51201	c.urlParams_.Set("pageToken", pageToken)
51202	return c
51203}
51204
51205// ReturnPartialSuccess sets the optional parameter
51206// "returnPartialSuccess": Opt-in for partial success behavior which
51207// provides partial results in case of failure. The default value is
51208// false.
51209func (c *AddressesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesAggregatedListCall {
51210	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
51211	return c
51212}
51213
51214// Fields allows partial responses to be retrieved. See
51215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51216// for more information.
51217func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
51218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51219	return c
51220}
51221
51222// IfNoneMatch sets the optional parameter which makes the operation
51223// fail if the object's ETag matches the given value. This is useful for
51224// getting updates only after the object has changed since the last
51225// request. Use googleapi.IsNotModified to check whether the response
51226// error from Do is the result of In-None-Match.
51227func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
51228	c.ifNoneMatch_ = entityTag
51229	return c
51230}
51231
51232// Context sets the context to be used in this call's Do method. Any
51233// pending HTTP request will be aborted if the provided context is
51234// canceled.
51235func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
51236	c.ctx_ = ctx
51237	return c
51238}
51239
51240// Header returns an http.Header that can be modified by the caller to
51241// add HTTP headers to the request.
51242func (c *AddressesAggregatedListCall) Header() http.Header {
51243	if c.header_ == nil {
51244		c.header_ = make(http.Header)
51245	}
51246	return c.header_
51247}
51248
51249func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
51250	reqHeaders := make(http.Header)
51251	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51252	for k, v := range c.header_ {
51253		reqHeaders[k] = v
51254	}
51255	reqHeaders.Set("User-Agent", c.s.userAgent())
51256	if c.ifNoneMatch_ != "" {
51257		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51258	}
51259	var body io.Reader = nil
51260	c.urlParams_.Set("alt", alt)
51261	c.urlParams_.Set("prettyPrint", "false")
51262	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/addresses")
51263	urls += "?" + c.urlParams_.Encode()
51264	req, err := http.NewRequest("GET", urls, body)
51265	if err != nil {
51266		return nil, err
51267	}
51268	req.Header = reqHeaders
51269	googleapi.Expand(req.URL, map[string]string{
51270		"project": c.project,
51271	})
51272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51273}
51274
51275// Do executes the "compute.addresses.aggregatedList" call.
51276// Exactly one of *AddressAggregatedList or error will be non-nil. Any
51277// non-2xx status code is an error. Response headers are in either
51278// *AddressAggregatedList.ServerResponse.Header or (if a response was
51279// returned at all) in error.(*googleapi.Error).Header. Use
51280// googleapi.IsNotModified to check whether the returned error was
51281// because http.StatusNotModified was returned.
51282func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
51283	gensupport.SetOptions(c.urlParams_, opts...)
51284	res, err := c.doRequest("json")
51285	if res != nil && res.StatusCode == http.StatusNotModified {
51286		if res.Body != nil {
51287			res.Body.Close()
51288		}
51289		return nil, &googleapi.Error{
51290			Code:   res.StatusCode,
51291			Header: res.Header,
51292		}
51293	}
51294	if err != nil {
51295		return nil, err
51296	}
51297	defer googleapi.CloseBody(res)
51298	if err := googleapi.CheckResponse(res); err != nil {
51299		return nil, err
51300	}
51301	ret := &AddressAggregatedList{
51302		ServerResponse: googleapi.ServerResponse{
51303			Header:         res.Header,
51304			HTTPStatusCode: res.StatusCode,
51305		},
51306	}
51307	target := &ret
51308	if err := gensupport.DecodeResponse(target, res); err != nil {
51309		return nil, err
51310	}
51311	return ret, nil
51312	// {
51313	//   "description": "Retrieves an aggregated list of addresses.",
51314	//   "httpMethod": "GET",
51315	//   "id": "compute.addresses.aggregatedList",
51316	//   "parameterOrder": [
51317	//     "project"
51318	//   ],
51319	//   "parameters": {
51320	//     "filter": {
51321	//       "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) ```",
51322	//       "location": "query",
51323	//       "type": "string"
51324	//     },
51325	//     "includeAllScopes": {
51326	//       "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.",
51327	//       "location": "query",
51328	//       "type": "boolean"
51329	//     },
51330	//     "maxResults": {
51331	//       "default": "500",
51332	//       "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`)",
51333	//       "format": "uint32",
51334	//       "location": "query",
51335	//       "minimum": "0",
51336	//       "type": "integer"
51337	//     },
51338	//     "orderBy": {
51339	//       "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.",
51340	//       "location": "query",
51341	//       "type": "string"
51342	//     },
51343	//     "pageToken": {
51344	//       "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.",
51345	//       "location": "query",
51346	//       "type": "string"
51347	//     },
51348	//     "project": {
51349	//       "description": "Project ID for this request.",
51350	//       "location": "path",
51351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51352	//       "required": true,
51353	//       "type": "string"
51354	//     },
51355	//     "returnPartialSuccess": {
51356	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
51357	//       "location": "query",
51358	//       "type": "boolean"
51359	//     }
51360	//   },
51361	//   "path": "projects/{project}/aggregated/addresses",
51362	//   "response": {
51363	//     "$ref": "AddressAggregatedList"
51364	//   },
51365	//   "scopes": [
51366	//     "https://www.googleapis.com/auth/cloud-platform",
51367	//     "https://www.googleapis.com/auth/compute",
51368	//     "https://www.googleapis.com/auth/compute.readonly"
51369	//   ]
51370	// }
51371
51372}
51373
51374// Pages invokes f for each page of results.
51375// A non-nil error returned from f will halt the iteration.
51376// The provided context supersedes any context provided to the Context method.
51377func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
51378	c.ctx_ = ctx
51379	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51380	for {
51381		x, err := c.Do()
51382		if err != nil {
51383			return err
51384		}
51385		if err := f(x); err != nil {
51386			return err
51387		}
51388		if x.NextPageToken == "" {
51389			return nil
51390		}
51391		c.PageToken(x.NextPageToken)
51392	}
51393}
51394
51395// method id "compute.addresses.delete":
51396
51397type AddressesDeleteCall struct {
51398	s          *Service
51399	project    string
51400	region     string
51401	address    string
51402	urlParams_ gensupport.URLParams
51403	ctx_       context.Context
51404	header_    http.Header
51405}
51406
51407// Delete: Deletes the specified address resource.
51408//
51409// - address: Name of the address resource to delete.
51410// - project: Project ID for this request.
51411// - region: Name of the region for this request.
51412// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
51413func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
51414	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51415	c.project = project
51416	c.region = region
51417	c.address = address
51418	return c
51419}
51420
51421// RequestId sets the optional parameter "requestId": An optional
51422// request ID to identify requests. Specify a unique request ID so that
51423// if you must retry your request, the server will know to ignore the
51424// request if it has already been completed.
51425//
51426// For example, consider a situation where you make an initial request
51427// and the request times out. If you make the request again with the
51428// same request ID, the server can check if original operation with the
51429// same request ID was received, and if so, will ignore the second
51430// request. This prevents clients from accidentally creating duplicate
51431// commitments.
51432//
51433// The request ID must be a valid UUID with the exception that zero UUID
51434// is not supported (00000000-0000-0000-0000-000000000000).
51435func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
51436	c.urlParams_.Set("requestId", requestId)
51437	return c
51438}
51439
51440// Fields allows partial responses to be retrieved. See
51441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51442// for more information.
51443func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
51444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51445	return c
51446}
51447
51448// Context sets the context to be used in this call's Do method. Any
51449// pending HTTP request will be aborted if the provided context is
51450// canceled.
51451func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
51452	c.ctx_ = ctx
51453	return c
51454}
51455
51456// Header returns an http.Header that can be modified by the caller to
51457// add HTTP headers to the request.
51458func (c *AddressesDeleteCall) Header() http.Header {
51459	if c.header_ == nil {
51460		c.header_ = make(http.Header)
51461	}
51462	return c.header_
51463}
51464
51465func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
51466	reqHeaders := make(http.Header)
51467	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51468	for k, v := range c.header_ {
51469		reqHeaders[k] = v
51470	}
51471	reqHeaders.Set("User-Agent", c.s.userAgent())
51472	var body io.Reader = nil
51473	c.urlParams_.Set("alt", alt)
51474	c.urlParams_.Set("prettyPrint", "false")
51475	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
51476	urls += "?" + c.urlParams_.Encode()
51477	req, err := http.NewRequest("DELETE", urls, body)
51478	if err != nil {
51479		return nil, err
51480	}
51481	req.Header = reqHeaders
51482	googleapi.Expand(req.URL, map[string]string{
51483		"project": c.project,
51484		"region":  c.region,
51485		"address": c.address,
51486	})
51487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51488}
51489
51490// Do executes the "compute.addresses.delete" call.
51491// Exactly one of *Operation or error will be non-nil. Any non-2xx
51492// status code is an error. Response headers are in either
51493// *Operation.ServerResponse.Header or (if a response was returned at
51494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51495// to check whether the returned error was because
51496// http.StatusNotModified was returned.
51497func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51498	gensupport.SetOptions(c.urlParams_, opts...)
51499	res, err := c.doRequest("json")
51500	if res != nil && res.StatusCode == http.StatusNotModified {
51501		if res.Body != nil {
51502			res.Body.Close()
51503		}
51504		return nil, &googleapi.Error{
51505			Code:   res.StatusCode,
51506			Header: res.Header,
51507		}
51508	}
51509	if err != nil {
51510		return nil, err
51511	}
51512	defer googleapi.CloseBody(res)
51513	if err := googleapi.CheckResponse(res); err != nil {
51514		return nil, err
51515	}
51516	ret := &Operation{
51517		ServerResponse: googleapi.ServerResponse{
51518			Header:         res.Header,
51519			HTTPStatusCode: res.StatusCode,
51520		},
51521	}
51522	target := &ret
51523	if err := gensupport.DecodeResponse(target, res); err != nil {
51524		return nil, err
51525	}
51526	return ret, nil
51527	// {
51528	//   "description": "Deletes the specified address resource.",
51529	//   "httpMethod": "DELETE",
51530	//   "id": "compute.addresses.delete",
51531	//   "parameterOrder": [
51532	//     "project",
51533	//     "region",
51534	//     "address"
51535	//   ],
51536	//   "parameters": {
51537	//     "address": {
51538	//       "description": "Name of the address resource to delete.",
51539	//       "location": "path",
51540	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51541	//       "required": true,
51542	//       "type": "string"
51543	//     },
51544	//     "project": {
51545	//       "description": "Project ID for this request.",
51546	//       "location": "path",
51547	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51548	//       "required": true,
51549	//       "type": "string"
51550	//     },
51551	//     "region": {
51552	//       "description": "Name of the region for this request.",
51553	//       "location": "path",
51554	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51555	//       "required": true,
51556	//       "type": "string"
51557	//     },
51558	//     "requestId": {
51559	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51560	//       "location": "query",
51561	//       "type": "string"
51562	//     }
51563	//   },
51564	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
51565	//   "response": {
51566	//     "$ref": "Operation"
51567	//   },
51568	//   "scopes": [
51569	//     "https://www.googleapis.com/auth/cloud-platform",
51570	//     "https://www.googleapis.com/auth/compute"
51571	//   ]
51572	// }
51573
51574}
51575
51576// method id "compute.addresses.get":
51577
51578type AddressesGetCall struct {
51579	s            *Service
51580	project      string
51581	region       string
51582	address      string
51583	urlParams_   gensupport.URLParams
51584	ifNoneMatch_ string
51585	ctx_         context.Context
51586	header_      http.Header
51587}
51588
51589// Get: Returns the specified address resource.
51590//
51591// - address: Name of the address resource to return.
51592// - project: Project ID for this request.
51593// - region: Name of the region for this request.
51594// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
51595func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
51596	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51597	c.project = project
51598	c.region = region
51599	c.address = address
51600	return c
51601}
51602
51603// Fields allows partial responses to be retrieved. See
51604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51605// for more information.
51606func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
51607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51608	return c
51609}
51610
51611// IfNoneMatch sets the optional parameter which makes the operation
51612// fail if the object's ETag matches the given value. This is useful for
51613// getting updates only after the object has changed since the last
51614// request. Use googleapi.IsNotModified to check whether the response
51615// error from Do is the result of In-None-Match.
51616func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
51617	c.ifNoneMatch_ = entityTag
51618	return c
51619}
51620
51621// Context sets the context to be used in this call's Do method. Any
51622// pending HTTP request will be aborted if the provided context is
51623// canceled.
51624func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
51625	c.ctx_ = ctx
51626	return c
51627}
51628
51629// Header returns an http.Header that can be modified by the caller to
51630// add HTTP headers to the request.
51631func (c *AddressesGetCall) Header() http.Header {
51632	if c.header_ == nil {
51633		c.header_ = make(http.Header)
51634	}
51635	return c.header_
51636}
51637
51638func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
51639	reqHeaders := make(http.Header)
51640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51641	for k, v := range c.header_ {
51642		reqHeaders[k] = v
51643	}
51644	reqHeaders.Set("User-Agent", c.s.userAgent())
51645	if c.ifNoneMatch_ != "" {
51646		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51647	}
51648	var body io.Reader = nil
51649	c.urlParams_.Set("alt", alt)
51650	c.urlParams_.Set("prettyPrint", "false")
51651	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
51652	urls += "?" + c.urlParams_.Encode()
51653	req, err := http.NewRequest("GET", urls, body)
51654	if err != nil {
51655		return nil, err
51656	}
51657	req.Header = reqHeaders
51658	googleapi.Expand(req.URL, map[string]string{
51659		"project": c.project,
51660		"region":  c.region,
51661		"address": c.address,
51662	})
51663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51664}
51665
51666// Do executes the "compute.addresses.get" call.
51667// Exactly one of *Address or error will be non-nil. Any non-2xx status
51668// code is an error. Response headers are in either
51669// *Address.ServerResponse.Header or (if a response was returned at all)
51670// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
51671// check whether the returned error was because http.StatusNotModified
51672// was returned.
51673func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
51674	gensupport.SetOptions(c.urlParams_, opts...)
51675	res, err := c.doRequest("json")
51676	if res != nil && res.StatusCode == http.StatusNotModified {
51677		if res.Body != nil {
51678			res.Body.Close()
51679		}
51680		return nil, &googleapi.Error{
51681			Code:   res.StatusCode,
51682			Header: res.Header,
51683		}
51684	}
51685	if err != nil {
51686		return nil, err
51687	}
51688	defer googleapi.CloseBody(res)
51689	if err := googleapi.CheckResponse(res); err != nil {
51690		return nil, err
51691	}
51692	ret := &Address{
51693		ServerResponse: googleapi.ServerResponse{
51694			Header:         res.Header,
51695			HTTPStatusCode: res.StatusCode,
51696		},
51697	}
51698	target := &ret
51699	if err := gensupport.DecodeResponse(target, res); err != nil {
51700		return nil, err
51701	}
51702	return ret, nil
51703	// {
51704	//   "description": "Returns the specified address resource.",
51705	//   "httpMethod": "GET",
51706	//   "id": "compute.addresses.get",
51707	//   "parameterOrder": [
51708	//     "project",
51709	//     "region",
51710	//     "address"
51711	//   ],
51712	//   "parameters": {
51713	//     "address": {
51714	//       "description": "Name of the address resource to return.",
51715	//       "location": "path",
51716	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51717	//       "required": true,
51718	//       "type": "string"
51719	//     },
51720	//     "project": {
51721	//       "description": "Project ID for this request.",
51722	//       "location": "path",
51723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51724	//       "required": true,
51725	//       "type": "string"
51726	//     },
51727	//     "region": {
51728	//       "description": "Name of the region for this request.",
51729	//       "location": "path",
51730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51731	//       "required": true,
51732	//       "type": "string"
51733	//     }
51734	//   },
51735	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
51736	//   "response": {
51737	//     "$ref": "Address"
51738	//   },
51739	//   "scopes": [
51740	//     "https://www.googleapis.com/auth/cloud-platform",
51741	//     "https://www.googleapis.com/auth/compute",
51742	//     "https://www.googleapis.com/auth/compute.readonly"
51743	//   ]
51744	// }
51745
51746}
51747
51748// method id "compute.addresses.insert":
51749
51750type AddressesInsertCall struct {
51751	s          *Service
51752	project    string
51753	region     string
51754	address    *Address
51755	urlParams_ gensupport.URLParams
51756	ctx_       context.Context
51757	header_    http.Header
51758}
51759
51760// Insert: Creates an address resource in the specified project by using
51761// the data included in the request.
51762//
51763// - project: Project ID for this request.
51764// - region: Name of the region for this request.
51765// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
51766func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
51767	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51768	c.project = project
51769	c.region = region
51770	c.address = address
51771	return c
51772}
51773
51774// RequestId sets the optional parameter "requestId": An optional
51775// request ID to identify requests. Specify a unique request ID so that
51776// if you must retry your request, the server will know to ignore the
51777// request if it has already been completed.
51778//
51779// For example, consider a situation where you make an initial request
51780// and the request times out. If you make the request again with the
51781// same request ID, the server can check if original operation with the
51782// same request ID was received, and if so, will ignore the second
51783// request. This prevents clients from accidentally creating duplicate
51784// commitments.
51785//
51786// The request ID must be a valid UUID with the exception that zero UUID
51787// is not supported (00000000-0000-0000-0000-000000000000).
51788func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
51789	c.urlParams_.Set("requestId", requestId)
51790	return c
51791}
51792
51793// Fields allows partial responses to be retrieved. See
51794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51795// for more information.
51796func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
51797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51798	return c
51799}
51800
51801// Context sets the context to be used in this call's Do method. Any
51802// pending HTTP request will be aborted if the provided context is
51803// canceled.
51804func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
51805	c.ctx_ = ctx
51806	return c
51807}
51808
51809// Header returns an http.Header that can be modified by the caller to
51810// add HTTP headers to the request.
51811func (c *AddressesInsertCall) Header() http.Header {
51812	if c.header_ == nil {
51813		c.header_ = make(http.Header)
51814	}
51815	return c.header_
51816}
51817
51818func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
51819	reqHeaders := make(http.Header)
51820	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51821	for k, v := range c.header_ {
51822		reqHeaders[k] = v
51823	}
51824	reqHeaders.Set("User-Agent", c.s.userAgent())
51825	var body io.Reader = nil
51826	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
51827	if err != nil {
51828		return nil, err
51829	}
51830	reqHeaders.Set("Content-Type", "application/json")
51831	c.urlParams_.Set("alt", alt)
51832	c.urlParams_.Set("prettyPrint", "false")
51833	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
51834	urls += "?" + c.urlParams_.Encode()
51835	req, err := http.NewRequest("POST", urls, body)
51836	if err != nil {
51837		return nil, err
51838	}
51839	req.Header = reqHeaders
51840	googleapi.Expand(req.URL, map[string]string{
51841		"project": c.project,
51842		"region":  c.region,
51843	})
51844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51845}
51846
51847// Do executes the "compute.addresses.insert" call.
51848// Exactly one of *Operation or error will be non-nil. Any non-2xx
51849// status code is an error. Response headers are in either
51850// *Operation.ServerResponse.Header or (if a response was returned at
51851// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51852// to check whether the returned error was because
51853// http.StatusNotModified was returned.
51854func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51855	gensupport.SetOptions(c.urlParams_, opts...)
51856	res, err := c.doRequest("json")
51857	if res != nil && res.StatusCode == http.StatusNotModified {
51858		if res.Body != nil {
51859			res.Body.Close()
51860		}
51861		return nil, &googleapi.Error{
51862			Code:   res.StatusCode,
51863			Header: res.Header,
51864		}
51865	}
51866	if err != nil {
51867		return nil, err
51868	}
51869	defer googleapi.CloseBody(res)
51870	if err := googleapi.CheckResponse(res); err != nil {
51871		return nil, err
51872	}
51873	ret := &Operation{
51874		ServerResponse: googleapi.ServerResponse{
51875			Header:         res.Header,
51876			HTTPStatusCode: res.StatusCode,
51877		},
51878	}
51879	target := &ret
51880	if err := gensupport.DecodeResponse(target, res); err != nil {
51881		return nil, err
51882	}
51883	return ret, nil
51884	// {
51885	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
51886	//   "httpMethod": "POST",
51887	//   "id": "compute.addresses.insert",
51888	//   "parameterOrder": [
51889	//     "project",
51890	//     "region"
51891	//   ],
51892	//   "parameters": {
51893	//     "project": {
51894	//       "description": "Project ID for this request.",
51895	//       "location": "path",
51896	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51897	//       "required": true,
51898	//       "type": "string"
51899	//     },
51900	//     "region": {
51901	//       "description": "Name of the region for this request.",
51902	//       "location": "path",
51903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51904	//       "required": true,
51905	//       "type": "string"
51906	//     },
51907	//     "requestId": {
51908	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51909	//       "location": "query",
51910	//       "type": "string"
51911	//     }
51912	//   },
51913	//   "path": "projects/{project}/regions/{region}/addresses",
51914	//   "request": {
51915	//     "$ref": "Address"
51916	//   },
51917	//   "response": {
51918	//     "$ref": "Operation"
51919	//   },
51920	//   "scopes": [
51921	//     "https://www.googleapis.com/auth/cloud-platform",
51922	//     "https://www.googleapis.com/auth/compute"
51923	//   ]
51924	// }
51925
51926}
51927
51928// method id "compute.addresses.list":
51929
51930type AddressesListCall struct {
51931	s            *Service
51932	project      string
51933	region       string
51934	urlParams_   gensupport.URLParams
51935	ifNoneMatch_ string
51936	ctx_         context.Context
51937	header_      http.Header
51938}
51939
51940// List: Retrieves a list of addresses contained within the specified
51941// region.
51942//
51943// - project: Project ID for this request.
51944// - region: Name of the region for this request.
51945// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
51946func (r *AddressesService) List(project string, region string) *AddressesListCall {
51947	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51948	c.project = project
51949	c.region = region
51950	return c
51951}
51952
51953// Filter sets the optional parameter "filter": A filter expression that
51954// filters resources listed in the response. The expression must specify
51955// the field name, a comparison operator, and the value that you want to
51956// use for filtering. The value must be a string, a number, or a
51957// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51958// `<`.
51959//
51960// For example, if you are filtering Compute Engine instances, you can
51961// exclude instances named `example-instance` by specifying `name !=
51962// example-instance`.
51963//
51964// You can also filter nested fields. For example, you could specify
51965// `scheduling.automaticRestart = false` to include instances only if
51966// they are not scheduled for automatic restarts. You can use filtering
51967// on nested fields to filter based on resource labels.
51968//
51969// To filter on multiple expressions, provide each separate expression
51970// within parentheses. For example: ``` (scheduling.automaticRestart =
51971// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
51972// is an `AND` expression. However, you can include `AND` and `OR`
51973// expressions explicitly. For example: ``` (cpuPlatform = "Intel
51974// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
51975// (scheduling.automaticRestart = true) ```
51976func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
51977	c.urlParams_.Set("filter", filter)
51978	return c
51979}
51980
51981// MaxResults sets the optional parameter "maxResults": The maximum
51982// number of results per page that should be returned. If the number of
51983// available results is larger than `maxResults`, Compute Engine returns
51984// a `nextPageToken` that can be used to get the next page of results in
51985// subsequent list requests. Acceptable values are `0` to `500`,
51986// inclusive. (Default: `500`)
51987func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
51988	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51989	return c
51990}
51991
51992// OrderBy sets the optional parameter "orderBy": Sorts list results by
51993// a certain order. By default, results are returned in alphanumerical
51994// order based on the resource name.
51995//
51996// You can also sort results in descending order based on the creation
51997// timestamp using `orderBy="creationTimestamp desc". This sorts
51998// results based on the `creationTimestamp` field in reverse
51999// chronological order (newest result first). Use this to sort resources
52000// like operations so that the newest operation is returned
52001// first.
52002//
52003// Currently, only sorting by `name` or `creationTimestamp desc` is
52004// supported.
52005func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
52006	c.urlParams_.Set("orderBy", orderBy)
52007	return c
52008}
52009
52010// PageToken sets the optional parameter "pageToken": Specifies a page
52011// token to use. Set `pageToken` to the `nextPageToken` returned by a
52012// previous list request to get the next page of results.
52013func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
52014	c.urlParams_.Set("pageToken", pageToken)
52015	return c
52016}
52017
52018// ReturnPartialSuccess sets the optional parameter
52019// "returnPartialSuccess": Opt-in for partial success behavior which
52020// provides partial results in case of failure. The default value is
52021// false.
52022func (c *AddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesListCall {
52023	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52024	return c
52025}
52026
52027// Fields allows partial responses to be retrieved. See
52028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52029// for more information.
52030func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
52031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52032	return c
52033}
52034
52035// IfNoneMatch sets the optional parameter which makes the operation
52036// fail if the object's ETag matches the given value. This is useful for
52037// getting updates only after the object has changed since the last
52038// request. Use googleapi.IsNotModified to check whether the response
52039// error from Do is the result of In-None-Match.
52040func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
52041	c.ifNoneMatch_ = entityTag
52042	return c
52043}
52044
52045// Context sets the context to be used in this call's Do method. Any
52046// pending HTTP request will be aborted if the provided context is
52047// canceled.
52048func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
52049	c.ctx_ = ctx
52050	return c
52051}
52052
52053// Header returns an http.Header that can be modified by the caller to
52054// add HTTP headers to the request.
52055func (c *AddressesListCall) Header() http.Header {
52056	if c.header_ == nil {
52057		c.header_ = make(http.Header)
52058	}
52059	return c.header_
52060}
52061
52062func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
52063	reqHeaders := make(http.Header)
52064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52065	for k, v := range c.header_ {
52066		reqHeaders[k] = v
52067	}
52068	reqHeaders.Set("User-Agent", c.s.userAgent())
52069	if c.ifNoneMatch_ != "" {
52070		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52071	}
52072	var body io.Reader = nil
52073	c.urlParams_.Set("alt", alt)
52074	c.urlParams_.Set("prettyPrint", "false")
52075	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
52076	urls += "?" + c.urlParams_.Encode()
52077	req, err := http.NewRequest("GET", urls, body)
52078	if err != nil {
52079		return nil, err
52080	}
52081	req.Header = reqHeaders
52082	googleapi.Expand(req.URL, map[string]string{
52083		"project": c.project,
52084		"region":  c.region,
52085	})
52086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52087}
52088
52089// Do executes the "compute.addresses.list" call.
52090// Exactly one of *AddressList or error will be non-nil. Any non-2xx
52091// status code is an error. Response headers are in either
52092// *AddressList.ServerResponse.Header or (if a response was returned at
52093// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52094// to check whether the returned error was because
52095// http.StatusNotModified was returned.
52096func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
52097	gensupport.SetOptions(c.urlParams_, opts...)
52098	res, err := c.doRequest("json")
52099	if res != nil && res.StatusCode == http.StatusNotModified {
52100		if res.Body != nil {
52101			res.Body.Close()
52102		}
52103		return nil, &googleapi.Error{
52104			Code:   res.StatusCode,
52105			Header: res.Header,
52106		}
52107	}
52108	if err != nil {
52109		return nil, err
52110	}
52111	defer googleapi.CloseBody(res)
52112	if err := googleapi.CheckResponse(res); err != nil {
52113		return nil, err
52114	}
52115	ret := &AddressList{
52116		ServerResponse: googleapi.ServerResponse{
52117			Header:         res.Header,
52118			HTTPStatusCode: res.StatusCode,
52119		},
52120	}
52121	target := &ret
52122	if err := gensupport.DecodeResponse(target, res); err != nil {
52123		return nil, err
52124	}
52125	return ret, nil
52126	// {
52127	//   "description": "Retrieves a list of addresses contained within the specified region.",
52128	//   "httpMethod": "GET",
52129	//   "id": "compute.addresses.list",
52130	//   "parameterOrder": [
52131	//     "project",
52132	//     "region"
52133	//   ],
52134	//   "parameters": {
52135	//     "filter": {
52136	//       "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) ```",
52137	//       "location": "query",
52138	//       "type": "string"
52139	//     },
52140	//     "maxResults": {
52141	//       "default": "500",
52142	//       "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`)",
52143	//       "format": "uint32",
52144	//       "location": "query",
52145	//       "minimum": "0",
52146	//       "type": "integer"
52147	//     },
52148	//     "orderBy": {
52149	//       "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.",
52150	//       "location": "query",
52151	//       "type": "string"
52152	//     },
52153	//     "pageToken": {
52154	//       "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.",
52155	//       "location": "query",
52156	//       "type": "string"
52157	//     },
52158	//     "project": {
52159	//       "description": "Project ID for this request.",
52160	//       "location": "path",
52161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52162	//       "required": true,
52163	//       "type": "string"
52164	//     },
52165	//     "region": {
52166	//       "description": "Name of the region for this request.",
52167	//       "location": "path",
52168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52169	//       "required": true,
52170	//       "type": "string"
52171	//     },
52172	//     "returnPartialSuccess": {
52173	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
52174	//       "location": "query",
52175	//       "type": "boolean"
52176	//     }
52177	//   },
52178	//   "path": "projects/{project}/regions/{region}/addresses",
52179	//   "response": {
52180	//     "$ref": "AddressList"
52181	//   },
52182	//   "scopes": [
52183	//     "https://www.googleapis.com/auth/cloud-platform",
52184	//     "https://www.googleapis.com/auth/compute",
52185	//     "https://www.googleapis.com/auth/compute.readonly"
52186	//   ]
52187	// }
52188
52189}
52190
52191// Pages invokes f for each page of results.
52192// A non-nil error returned from f will halt the iteration.
52193// The provided context supersedes any context provided to the Context method.
52194func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
52195	c.ctx_ = ctx
52196	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52197	for {
52198		x, err := c.Do()
52199		if err != nil {
52200			return err
52201		}
52202		if err := f(x); err != nil {
52203			return err
52204		}
52205		if x.NextPageToken == "" {
52206			return nil
52207		}
52208		c.PageToken(x.NextPageToken)
52209	}
52210}
52211
52212// method id "compute.addresses.setLabels":
52213
52214type AddressesSetLabelsCall struct {
52215	s                      *Service
52216	project                string
52217	region                 string
52218	resource               string
52219	regionsetlabelsrequest *RegionSetLabelsRequest
52220	urlParams_             gensupport.URLParams
52221	ctx_                   context.Context
52222	header_                http.Header
52223}
52224
52225// SetLabels: Sets the labels on an Address. To learn more about labels,
52226// read the Labeling Resources documentation.
52227//
52228// - project: Project ID for this request.
52229// - region: The region for this request.
52230// - resource: Name or id of the resource for this request.
52231func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall {
52232	c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52233	c.project = project
52234	c.region = region
52235	c.resource = resource
52236	c.regionsetlabelsrequest = regionsetlabelsrequest
52237	return c
52238}
52239
52240// RequestId sets the optional parameter "requestId": An optional
52241// request ID to identify requests. Specify a unique request ID so that
52242// if you must retry your request, the server will know to ignore the
52243// request if it has already been completed.
52244//
52245// For example, consider a situation where you make an initial request
52246// and the request times out. If you make the request again with the
52247// same request ID, the server can check if original operation with the
52248// same request ID was received, and if so, will ignore the second
52249// request. This prevents clients from accidentally creating duplicate
52250// commitments.
52251//
52252// The request ID must be a valid UUID with the exception that zero UUID
52253// is not supported (00000000-0000-0000-0000-000000000000).
52254func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall {
52255	c.urlParams_.Set("requestId", requestId)
52256	return c
52257}
52258
52259// Fields allows partial responses to be retrieved. See
52260// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52261// for more information.
52262func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall {
52263	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52264	return c
52265}
52266
52267// Context sets the context to be used in this call's Do method. Any
52268// pending HTTP request will be aborted if the provided context is
52269// canceled.
52270func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall {
52271	c.ctx_ = ctx
52272	return c
52273}
52274
52275// Header returns an http.Header that can be modified by the caller to
52276// add HTTP headers to the request.
52277func (c *AddressesSetLabelsCall) Header() http.Header {
52278	if c.header_ == nil {
52279		c.header_ = make(http.Header)
52280	}
52281	return c.header_
52282}
52283
52284func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
52285	reqHeaders := make(http.Header)
52286	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52287	for k, v := range c.header_ {
52288		reqHeaders[k] = v
52289	}
52290	reqHeaders.Set("User-Agent", c.s.userAgent())
52291	var body io.Reader = nil
52292	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
52293	if err != nil {
52294		return nil, err
52295	}
52296	reqHeaders.Set("Content-Type", "application/json")
52297	c.urlParams_.Set("alt", alt)
52298	c.urlParams_.Set("prettyPrint", "false")
52299	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{resource}/setLabels")
52300	urls += "?" + c.urlParams_.Encode()
52301	req, err := http.NewRequest("POST", urls, body)
52302	if err != nil {
52303		return nil, err
52304	}
52305	req.Header = reqHeaders
52306	googleapi.Expand(req.URL, map[string]string{
52307		"project":  c.project,
52308		"region":   c.region,
52309		"resource": c.resource,
52310	})
52311	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52312}
52313
52314// Do executes the "compute.addresses.setLabels" call.
52315// Exactly one of *Operation or error will be non-nil. Any non-2xx
52316// status code is an error. Response headers are in either
52317// *Operation.ServerResponse.Header or (if a response was returned at
52318// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52319// to check whether the returned error was because
52320// http.StatusNotModified was returned.
52321func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52322	gensupport.SetOptions(c.urlParams_, opts...)
52323	res, err := c.doRequest("json")
52324	if res != nil && res.StatusCode == http.StatusNotModified {
52325		if res.Body != nil {
52326			res.Body.Close()
52327		}
52328		return nil, &googleapi.Error{
52329			Code:   res.StatusCode,
52330			Header: res.Header,
52331		}
52332	}
52333	if err != nil {
52334		return nil, err
52335	}
52336	defer googleapi.CloseBody(res)
52337	if err := googleapi.CheckResponse(res); err != nil {
52338		return nil, err
52339	}
52340	ret := &Operation{
52341		ServerResponse: googleapi.ServerResponse{
52342			Header:         res.Header,
52343			HTTPStatusCode: res.StatusCode,
52344		},
52345	}
52346	target := &ret
52347	if err := gensupport.DecodeResponse(target, res); err != nil {
52348		return nil, err
52349	}
52350	return ret, nil
52351	// {
52352	//   "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.",
52353	//   "httpMethod": "POST",
52354	//   "id": "compute.addresses.setLabels",
52355	//   "parameterOrder": [
52356	//     "project",
52357	//     "region",
52358	//     "resource"
52359	//   ],
52360	//   "parameters": {
52361	//     "project": {
52362	//       "description": "Project ID for this request.",
52363	//       "location": "path",
52364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52365	//       "required": true,
52366	//       "type": "string"
52367	//     },
52368	//     "region": {
52369	//       "description": "The region for this request.",
52370	//       "location": "path",
52371	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52372	//       "required": true,
52373	//       "type": "string"
52374	//     },
52375	//     "requestId": {
52376	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52377	//       "location": "query",
52378	//       "type": "string"
52379	//     },
52380	//     "resource": {
52381	//       "description": "Name or id of the resource for this request.",
52382	//       "location": "path",
52383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52384	//       "required": true,
52385	//       "type": "string"
52386	//     }
52387	//   },
52388	//   "path": "projects/{project}/regions/{region}/addresses/{resource}/setLabels",
52389	//   "request": {
52390	//     "$ref": "RegionSetLabelsRequest"
52391	//   },
52392	//   "response": {
52393	//     "$ref": "Operation"
52394	//   },
52395	//   "scopes": [
52396	//     "https://www.googleapis.com/auth/cloud-platform",
52397	//     "https://www.googleapis.com/auth/compute"
52398	//   ]
52399	// }
52400
52401}
52402
52403// method id "compute.addresses.testIamPermissions":
52404
52405type AddressesTestIamPermissionsCall struct {
52406	s                      *Service
52407	project                string
52408	region                 string
52409	resource               string
52410	testpermissionsrequest *TestPermissionsRequest
52411	urlParams_             gensupport.URLParams
52412	ctx_                   context.Context
52413	header_                http.Header
52414}
52415
52416// TestIamPermissions: Returns permissions that a caller has on the
52417// specified resource.
52418//
52419// - project: Project ID for this request.
52420// - region: The name of the region for this request.
52421// - resource: Name or id of the resource for this request.
52422func (r *AddressesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *AddressesTestIamPermissionsCall {
52423	c := &AddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52424	c.project = project
52425	c.region = region
52426	c.resource = resource
52427	c.testpermissionsrequest = testpermissionsrequest
52428	return c
52429}
52430
52431// Fields allows partial responses to be retrieved. See
52432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52433// for more information.
52434func (c *AddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *AddressesTestIamPermissionsCall {
52435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52436	return c
52437}
52438
52439// Context sets the context to be used in this call's Do method. Any
52440// pending HTTP request will be aborted if the provided context is
52441// canceled.
52442func (c *AddressesTestIamPermissionsCall) Context(ctx context.Context) *AddressesTestIamPermissionsCall {
52443	c.ctx_ = ctx
52444	return c
52445}
52446
52447// Header returns an http.Header that can be modified by the caller to
52448// add HTTP headers to the request.
52449func (c *AddressesTestIamPermissionsCall) Header() http.Header {
52450	if c.header_ == nil {
52451		c.header_ = make(http.Header)
52452	}
52453	return c.header_
52454}
52455
52456func (c *AddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
52457	reqHeaders := make(http.Header)
52458	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52459	for k, v := range c.header_ {
52460		reqHeaders[k] = v
52461	}
52462	reqHeaders.Set("User-Agent", c.s.userAgent())
52463	var body io.Reader = nil
52464	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
52465	if err != nil {
52466		return nil, err
52467	}
52468	reqHeaders.Set("Content-Type", "application/json")
52469	c.urlParams_.Set("alt", alt)
52470	c.urlParams_.Set("prettyPrint", "false")
52471	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions")
52472	urls += "?" + c.urlParams_.Encode()
52473	req, err := http.NewRequest("POST", urls, body)
52474	if err != nil {
52475		return nil, err
52476	}
52477	req.Header = reqHeaders
52478	googleapi.Expand(req.URL, map[string]string{
52479		"project":  c.project,
52480		"region":   c.region,
52481		"resource": c.resource,
52482	})
52483	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52484}
52485
52486// Do executes the "compute.addresses.testIamPermissions" call.
52487// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
52488// non-2xx status code is an error. Response headers are in either
52489// *TestPermissionsResponse.ServerResponse.Header or (if a response was
52490// returned at all) in error.(*googleapi.Error).Header. Use
52491// googleapi.IsNotModified to check whether the returned error was
52492// because http.StatusNotModified was returned.
52493func (c *AddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
52494	gensupport.SetOptions(c.urlParams_, opts...)
52495	res, err := c.doRequest("json")
52496	if res != nil && res.StatusCode == http.StatusNotModified {
52497		if res.Body != nil {
52498			res.Body.Close()
52499		}
52500		return nil, &googleapi.Error{
52501			Code:   res.StatusCode,
52502			Header: res.Header,
52503		}
52504	}
52505	if err != nil {
52506		return nil, err
52507	}
52508	defer googleapi.CloseBody(res)
52509	if err := googleapi.CheckResponse(res); err != nil {
52510		return nil, err
52511	}
52512	ret := &TestPermissionsResponse{
52513		ServerResponse: googleapi.ServerResponse{
52514			Header:         res.Header,
52515			HTTPStatusCode: res.StatusCode,
52516		},
52517	}
52518	target := &ret
52519	if err := gensupport.DecodeResponse(target, res); err != nil {
52520		return nil, err
52521	}
52522	return ret, nil
52523	// {
52524	//   "description": "Returns permissions that a caller has on the specified resource.",
52525	//   "httpMethod": "POST",
52526	//   "id": "compute.addresses.testIamPermissions",
52527	//   "parameterOrder": [
52528	//     "project",
52529	//     "region",
52530	//     "resource"
52531	//   ],
52532	//   "parameters": {
52533	//     "project": {
52534	//       "description": "Project ID for this request.",
52535	//       "location": "path",
52536	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52537	//       "required": true,
52538	//       "type": "string"
52539	//     },
52540	//     "region": {
52541	//       "description": "The name of the region for this request.",
52542	//       "location": "path",
52543	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52544	//       "required": true,
52545	//       "type": "string"
52546	//     },
52547	//     "resource": {
52548	//       "description": "Name or id of the resource for this request.",
52549	//       "location": "path",
52550	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52551	//       "required": true,
52552	//       "type": "string"
52553	//     }
52554	//   },
52555	//   "path": "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions",
52556	//   "request": {
52557	//     "$ref": "TestPermissionsRequest"
52558	//   },
52559	//   "response": {
52560	//     "$ref": "TestPermissionsResponse"
52561	//   },
52562	//   "scopes": [
52563	//     "https://www.googleapis.com/auth/cloud-platform",
52564	//     "https://www.googleapis.com/auth/compute",
52565	//     "https://www.googleapis.com/auth/compute.readonly"
52566	//   ]
52567	// }
52568
52569}
52570
52571// method id "compute.autoscalers.aggregatedList":
52572
52573type AutoscalersAggregatedListCall struct {
52574	s            *Service
52575	project      string
52576	urlParams_   gensupport.URLParams
52577	ifNoneMatch_ string
52578	ctx_         context.Context
52579	header_      http.Header
52580}
52581
52582// AggregatedList: Retrieves an aggregated list of autoscalers.
52583//
52584// - project: Project ID for this request.
52585func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
52586	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52587	c.project = project
52588	return c
52589}
52590
52591// Filter sets the optional parameter "filter": A filter expression that
52592// filters resources listed in the response. The expression must specify
52593// the field name, a comparison operator, and the value that you want to
52594// use for filtering. The value must be a string, a number, or a
52595// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52596// `<`.
52597//
52598// For example, if you are filtering Compute Engine instances, you can
52599// exclude instances named `example-instance` by specifying `name !=
52600// example-instance`.
52601//
52602// You can also filter nested fields. For example, you could specify
52603// `scheduling.automaticRestart = false` to include instances only if
52604// they are not scheduled for automatic restarts. You can use filtering
52605// on nested fields to filter based on resource labels.
52606//
52607// To filter on multiple expressions, provide each separate expression
52608// within parentheses. For example: ``` (scheduling.automaticRestart =
52609// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
52610// is an `AND` expression. However, you can include `AND` and `OR`
52611// expressions explicitly. For example: ``` (cpuPlatform = "Intel
52612// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
52613// (scheduling.automaticRestart = true) ```
52614func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
52615	c.urlParams_.Set("filter", filter)
52616	return c
52617}
52618
52619// IncludeAllScopes sets the optional parameter "includeAllScopes":
52620// Indicates whether every visible scope for each scope type (zone,
52621// region, global) should be included in the response. For new resource
52622// types added after this field, the flag has no effect as new resource
52623// types will always include every visible scope for each scope type in
52624// response. For resource types which predate this field, if this flag
52625// is omitted or false, only scopes of the scope types where the
52626// resource type is expected to be found will be included.
52627func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
52628	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
52629	return c
52630}
52631
52632// MaxResults sets the optional parameter "maxResults": The maximum
52633// number of results per page that should be returned. If the number of
52634// available results is larger than `maxResults`, Compute Engine returns
52635// a `nextPageToken` that can be used to get the next page of results in
52636// subsequent list requests. Acceptable values are `0` to `500`,
52637// inclusive. (Default: `500`)
52638func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
52639	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52640	return c
52641}
52642
52643// OrderBy sets the optional parameter "orderBy": Sorts list results by
52644// a certain order. By default, results are returned in alphanumerical
52645// order based on the resource name.
52646//
52647// You can also sort results in descending order based on the creation
52648// timestamp using `orderBy="creationTimestamp desc". This sorts
52649// results based on the `creationTimestamp` field in reverse
52650// chronological order (newest result first). Use this to sort resources
52651// like operations so that the newest operation is returned
52652// first.
52653//
52654// Currently, only sorting by `name` or `creationTimestamp desc` is
52655// supported.
52656func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
52657	c.urlParams_.Set("orderBy", orderBy)
52658	return c
52659}
52660
52661// PageToken sets the optional parameter "pageToken": Specifies a page
52662// token to use. Set `pageToken` to the `nextPageToken` returned by a
52663// previous list request to get the next page of results.
52664func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
52665	c.urlParams_.Set("pageToken", pageToken)
52666	return c
52667}
52668
52669// ReturnPartialSuccess sets the optional parameter
52670// "returnPartialSuccess": Opt-in for partial success behavior which
52671// provides partial results in case of failure. The default value is
52672// false.
52673func (c *AutoscalersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersAggregatedListCall {
52674	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52675	return c
52676}
52677
52678// Fields allows partial responses to be retrieved. See
52679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52680// for more information.
52681func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
52682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52683	return c
52684}
52685
52686// IfNoneMatch sets the optional parameter which makes the operation
52687// fail if the object's ETag matches the given value. This is useful for
52688// getting updates only after the object has changed since the last
52689// request. Use googleapi.IsNotModified to check whether the response
52690// error from Do is the result of In-None-Match.
52691func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
52692	c.ifNoneMatch_ = entityTag
52693	return c
52694}
52695
52696// Context sets the context to be used in this call's Do method. Any
52697// pending HTTP request will be aborted if the provided context is
52698// canceled.
52699func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
52700	c.ctx_ = ctx
52701	return c
52702}
52703
52704// Header returns an http.Header that can be modified by the caller to
52705// add HTTP headers to the request.
52706func (c *AutoscalersAggregatedListCall) Header() http.Header {
52707	if c.header_ == nil {
52708		c.header_ = make(http.Header)
52709	}
52710	return c.header_
52711}
52712
52713func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
52714	reqHeaders := make(http.Header)
52715	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52716	for k, v := range c.header_ {
52717		reqHeaders[k] = v
52718	}
52719	reqHeaders.Set("User-Agent", c.s.userAgent())
52720	if c.ifNoneMatch_ != "" {
52721		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52722	}
52723	var body io.Reader = nil
52724	c.urlParams_.Set("alt", alt)
52725	c.urlParams_.Set("prettyPrint", "false")
52726	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/autoscalers")
52727	urls += "?" + c.urlParams_.Encode()
52728	req, err := http.NewRequest("GET", urls, body)
52729	if err != nil {
52730		return nil, err
52731	}
52732	req.Header = reqHeaders
52733	googleapi.Expand(req.URL, map[string]string{
52734		"project": c.project,
52735	})
52736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52737}
52738
52739// Do executes the "compute.autoscalers.aggregatedList" call.
52740// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
52741// Any non-2xx status code is an error. Response headers are in either
52742// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
52743// returned at all) in error.(*googleapi.Error).Header. Use
52744// googleapi.IsNotModified to check whether the returned error was
52745// because http.StatusNotModified was returned.
52746func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
52747	gensupport.SetOptions(c.urlParams_, opts...)
52748	res, err := c.doRequest("json")
52749	if res != nil && res.StatusCode == http.StatusNotModified {
52750		if res.Body != nil {
52751			res.Body.Close()
52752		}
52753		return nil, &googleapi.Error{
52754			Code:   res.StatusCode,
52755			Header: res.Header,
52756		}
52757	}
52758	if err != nil {
52759		return nil, err
52760	}
52761	defer googleapi.CloseBody(res)
52762	if err := googleapi.CheckResponse(res); err != nil {
52763		return nil, err
52764	}
52765	ret := &AutoscalerAggregatedList{
52766		ServerResponse: googleapi.ServerResponse{
52767			Header:         res.Header,
52768			HTTPStatusCode: res.StatusCode,
52769		},
52770	}
52771	target := &ret
52772	if err := gensupport.DecodeResponse(target, res); err != nil {
52773		return nil, err
52774	}
52775	return ret, nil
52776	// {
52777	//   "description": "Retrieves an aggregated list of autoscalers.",
52778	//   "httpMethod": "GET",
52779	//   "id": "compute.autoscalers.aggregatedList",
52780	//   "parameterOrder": [
52781	//     "project"
52782	//   ],
52783	//   "parameters": {
52784	//     "filter": {
52785	//       "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) ```",
52786	//       "location": "query",
52787	//       "type": "string"
52788	//     },
52789	//     "includeAllScopes": {
52790	//       "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.",
52791	//       "location": "query",
52792	//       "type": "boolean"
52793	//     },
52794	//     "maxResults": {
52795	//       "default": "500",
52796	//       "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`)",
52797	//       "format": "uint32",
52798	//       "location": "query",
52799	//       "minimum": "0",
52800	//       "type": "integer"
52801	//     },
52802	//     "orderBy": {
52803	//       "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.",
52804	//       "location": "query",
52805	//       "type": "string"
52806	//     },
52807	//     "pageToken": {
52808	//       "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.",
52809	//       "location": "query",
52810	//       "type": "string"
52811	//     },
52812	//     "project": {
52813	//       "description": "Project ID for this request.",
52814	//       "location": "path",
52815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52816	//       "required": true,
52817	//       "type": "string"
52818	//     },
52819	//     "returnPartialSuccess": {
52820	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
52821	//       "location": "query",
52822	//       "type": "boolean"
52823	//     }
52824	//   },
52825	//   "path": "projects/{project}/aggregated/autoscalers",
52826	//   "response": {
52827	//     "$ref": "AutoscalerAggregatedList"
52828	//   },
52829	//   "scopes": [
52830	//     "https://www.googleapis.com/auth/cloud-platform",
52831	//     "https://www.googleapis.com/auth/compute",
52832	//     "https://www.googleapis.com/auth/compute.readonly"
52833	//   ]
52834	// }
52835
52836}
52837
52838// Pages invokes f for each page of results.
52839// A non-nil error returned from f will halt the iteration.
52840// The provided context supersedes any context provided to the Context method.
52841func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
52842	c.ctx_ = ctx
52843	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52844	for {
52845		x, err := c.Do()
52846		if err != nil {
52847			return err
52848		}
52849		if err := f(x); err != nil {
52850			return err
52851		}
52852		if x.NextPageToken == "" {
52853			return nil
52854		}
52855		c.PageToken(x.NextPageToken)
52856	}
52857}
52858
52859// method id "compute.autoscalers.delete":
52860
52861type AutoscalersDeleteCall struct {
52862	s          *Service
52863	project    string
52864	zone       string
52865	autoscaler string
52866	urlParams_ gensupport.URLParams
52867	ctx_       context.Context
52868	header_    http.Header
52869}
52870
52871// Delete: Deletes the specified autoscaler.
52872//
52873// - autoscaler: Name of the autoscaler to delete.
52874// - project: Project ID for this request.
52875// - zone: Name of the zone for this request.
52876func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
52877	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52878	c.project = project
52879	c.zone = zone
52880	c.autoscaler = autoscaler
52881	return c
52882}
52883
52884// RequestId sets the optional parameter "requestId": An optional
52885// request ID to identify requests. Specify a unique request ID so that
52886// if you must retry your request, the server will know to ignore the
52887// request if it has already been completed.
52888//
52889// For example, consider a situation where you make an initial request
52890// and the request times out. If you make the request again with the
52891// same request ID, the server can check if original operation with the
52892// same request ID was received, and if so, will ignore the second
52893// request. This prevents clients from accidentally creating duplicate
52894// commitments.
52895//
52896// The request ID must be a valid UUID with the exception that zero UUID
52897// is not supported (00000000-0000-0000-0000-000000000000).
52898func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
52899	c.urlParams_.Set("requestId", requestId)
52900	return c
52901}
52902
52903// Fields allows partial responses to be retrieved. See
52904// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52905// for more information.
52906func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
52907	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52908	return c
52909}
52910
52911// Context sets the context to be used in this call's Do method. Any
52912// pending HTTP request will be aborted if the provided context is
52913// canceled.
52914func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
52915	c.ctx_ = ctx
52916	return c
52917}
52918
52919// Header returns an http.Header that can be modified by the caller to
52920// add HTTP headers to the request.
52921func (c *AutoscalersDeleteCall) Header() http.Header {
52922	if c.header_ == nil {
52923		c.header_ = make(http.Header)
52924	}
52925	return c.header_
52926}
52927
52928func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
52929	reqHeaders := make(http.Header)
52930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52931	for k, v := range c.header_ {
52932		reqHeaders[k] = v
52933	}
52934	reqHeaders.Set("User-Agent", c.s.userAgent())
52935	var body io.Reader = nil
52936	c.urlParams_.Set("alt", alt)
52937	c.urlParams_.Set("prettyPrint", "false")
52938	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
52939	urls += "?" + c.urlParams_.Encode()
52940	req, err := http.NewRequest("DELETE", urls, body)
52941	if err != nil {
52942		return nil, err
52943	}
52944	req.Header = reqHeaders
52945	googleapi.Expand(req.URL, map[string]string{
52946		"project":    c.project,
52947		"zone":       c.zone,
52948		"autoscaler": c.autoscaler,
52949	})
52950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52951}
52952
52953// Do executes the "compute.autoscalers.delete" call.
52954// Exactly one of *Operation or error will be non-nil. Any non-2xx
52955// status code is an error. Response headers are in either
52956// *Operation.ServerResponse.Header or (if a response was returned at
52957// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52958// to check whether the returned error was because
52959// http.StatusNotModified was returned.
52960func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52961	gensupport.SetOptions(c.urlParams_, opts...)
52962	res, err := c.doRequest("json")
52963	if res != nil && res.StatusCode == http.StatusNotModified {
52964		if res.Body != nil {
52965			res.Body.Close()
52966		}
52967		return nil, &googleapi.Error{
52968			Code:   res.StatusCode,
52969			Header: res.Header,
52970		}
52971	}
52972	if err != nil {
52973		return nil, err
52974	}
52975	defer googleapi.CloseBody(res)
52976	if err := googleapi.CheckResponse(res); err != nil {
52977		return nil, err
52978	}
52979	ret := &Operation{
52980		ServerResponse: googleapi.ServerResponse{
52981			Header:         res.Header,
52982			HTTPStatusCode: res.StatusCode,
52983		},
52984	}
52985	target := &ret
52986	if err := gensupport.DecodeResponse(target, res); err != nil {
52987		return nil, err
52988	}
52989	return ret, nil
52990	// {
52991	//   "description": "Deletes the specified autoscaler.",
52992	//   "httpMethod": "DELETE",
52993	//   "id": "compute.autoscalers.delete",
52994	//   "parameterOrder": [
52995	//     "project",
52996	//     "zone",
52997	//     "autoscaler"
52998	//   ],
52999	//   "parameters": {
53000	//     "autoscaler": {
53001	//       "description": "Name of the autoscaler to delete.",
53002	//       "location": "path",
53003	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53004	//       "required": true,
53005	//       "type": "string"
53006	//     },
53007	//     "project": {
53008	//       "description": "Project ID for this request.",
53009	//       "location": "path",
53010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53011	//       "required": true,
53012	//       "type": "string"
53013	//     },
53014	//     "requestId": {
53015	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53016	//       "location": "query",
53017	//       "type": "string"
53018	//     },
53019	//     "zone": {
53020	//       "description": "Name of the zone for this request.",
53021	//       "location": "path",
53022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53023	//       "required": true,
53024	//       "type": "string"
53025	//     }
53026	//   },
53027	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
53028	//   "response": {
53029	//     "$ref": "Operation"
53030	//   },
53031	//   "scopes": [
53032	//     "https://www.googleapis.com/auth/cloud-platform",
53033	//     "https://www.googleapis.com/auth/compute"
53034	//   ]
53035	// }
53036
53037}
53038
53039// method id "compute.autoscalers.get":
53040
53041type AutoscalersGetCall struct {
53042	s            *Service
53043	project      string
53044	zone         string
53045	autoscaler   string
53046	urlParams_   gensupport.URLParams
53047	ifNoneMatch_ string
53048	ctx_         context.Context
53049	header_      http.Header
53050}
53051
53052// Get: Returns the specified autoscaler resource. Gets a list of
53053// available autoscalers by making a list() request.
53054//
53055// - autoscaler: Name of the autoscaler to return.
53056// - project: Project ID for this request.
53057// - zone: Name of the zone for this request.
53058func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
53059	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53060	c.project = project
53061	c.zone = zone
53062	c.autoscaler = autoscaler
53063	return c
53064}
53065
53066// Fields allows partial responses to be retrieved. See
53067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53068// for more information.
53069func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
53070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53071	return c
53072}
53073
53074// IfNoneMatch sets the optional parameter which makes the operation
53075// fail if the object's ETag matches the given value. This is useful for
53076// getting updates only after the object has changed since the last
53077// request. Use googleapi.IsNotModified to check whether the response
53078// error from Do is the result of In-None-Match.
53079func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
53080	c.ifNoneMatch_ = entityTag
53081	return c
53082}
53083
53084// Context sets the context to be used in this call's Do method. Any
53085// pending HTTP request will be aborted if the provided context is
53086// canceled.
53087func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
53088	c.ctx_ = ctx
53089	return c
53090}
53091
53092// Header returns an http.Header that can be modified by the caller to
53093// add HTTP headers to the request.
53094func (c *AutoscalersGetCall) Header() http.Header {
53095	if c.header_ == nil {
53096		c.header_ = make(http.Header)
53097	}
53098	return c.header_
53099}
53100
53101func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
53102	reqHeaders := make(http.Header)
53103	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53104	for k, v := range c.header_ {
53105		reqHeaders[k] = v
53106	}
53107	reqHeaders.Set("User-Agent", c.s.userAgent())
53108	if c.ifNoneMatch_ != "" {
53109		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53110	}
53111	var body io.Reader = nil
53112	c.urlParams_.Set("alt", alt)
53113	c.urlParams_.Set("prettyPrint", "false")
53114	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
53115	urls += "?" + c.urlParams_.Encode()
53116	req, err := http.NewRequest("GET", urls, body)
53117	if err != nil {
53118		return nil, err
53119	}
53120	req.Header = reqHeaders
53121	googleapi.Expand(req.URL, map[string]string{
53122		"project":    c.project,
53123		"zone":       c.zone,
53124		"autoscaler": c.autoscaler,
53125	})
53126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53127}
53128
53129// Do executes the "compute.autoscalers.get" call.
53130// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
53131// status code is an error. Response headers are in either
53132// *Autoscaler.ServerResponse.Header or (if a response was returned at
53133// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53134// to check whether the returned error was because
53135// http.StatusNotModified was returned.
53136func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
53137	gensupport.SetOptions(c.urlParams_, opts...)
53138	res, err := c.doRequest("json")
53139	if res != nil && res.StatusCode == http.StatusNotModified {
53140		if res.Body != nil {
53141			res.Body.Close()
53142		}
53143		return nil, &googleapi.Error{
53144			Code:   res.StatusCode,
53145			Header: res.Header,
53146		}
53147	}
53148	if err != nil {
53149		return nil, err
53150	}
53151	defer googleapi.CloseBody(res)
53152	if err := googleapi.CheckResponse(res); err != nil {
53153		return nil, err
53154	}
53155	ret := &Autoscaler{
53156		ServerResponse: googleapi.ServerResponse{
53157			Header:         res.Header,
53158			HTTPStatusCode: res.StatusCode,
53159		},
53160	}
53161	target := &ret
53162	if err := gensupport.DecodeResponse(target, res); err != nil {
53163		return nil, err
53164	}
53165	return ret, nil
53166	// {
53167	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
53168	//   "httpMethod": "GET",
53169	//   "id": "compute.autoscalers.get",
53170	//   "parameterOrder": [
53171	//     "project",
53172	//     "zone",
53173	//     "autoscaler"
53174	//   ],
53175	//   "parameters": {
53176	//     "autoscaler": {
53177	//       "description": "Name of the autoscaler to return.",
53178	//       "location": "path",
53179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53180	//       "required": true,
53181	//       "type": "string"
53182	//     },
53183	//     "project": {
53184	//       "description": "Project ID for this request.",
53185	//       "location": "path",
53186	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53187	//       "required": true,
53188	//       "type": "string"
53189	//     },
53190	//     "zone": {
53191	//       "description": "Name of the zone for this request.",
53192	//       "location": "path",
53193	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53194	//       "required": true,
53195	//       "type": "string"
53196	//     }
53197	//   },
53198	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
53199	//   "response": {
53200	//     "$ref": "Autoscaler"
53201	//   },
53202	//   "scopes": [
53203	//     "https://www.googleapis.com/auth/cloud-platform",
53204	//     "https://www.googleapis.com/auth/compute",
53205	//     "https://www.googleapis.com/auth/compute.readonly"
53206	//   ]
53207	// }
53208
53209}
53210
53211// method id "compute.autoscalers.insert":
53212
53213type AutoscalersInsertCall struct {
53214	s          *Service
53215	project    string
53216	zone       string
53217	autoscaler *Autoscaler
53218	urlParams_ gensupport.URLParams
53219	ctx_       context.Context
53220	header_    http.Header
53221}
53222
53223// Insert: Creates an autoscaler in the specified project using the data
53224// included in the request.
53225//
53226// - project: Project ID for this request.
53227// - zone: Name of the zone for this request.
53228func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
53229	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53230	c.project = project
53231	c.zone = zone
53232	c.autoscaler = autoscaler
53233	return c
53234}
53235
53236// RequestId sets the optional parameter "requestId": An optional
53237// request ID to identify requests. Specify a unique request ID so that
53238// if you must retry your request, the server will know to ignore the
53239// request if it has already been completed.
53240//
53241// For example, consider a situation where you make an initial request
53242// and the request times out. If you make the request again with the
53243// same request ID, the server can check if original operation with the
53244// same request ID was received, and if so, will ignore the second
53245// request. This prevents clients from accidentally creating duplicate
53246// commitments.
53247//
53248// The request ID must be a valid UUID with the exception that zero UUID
53249// is not supported (00000000-0000-0000-0000-000000000000).
53250func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
53251	c.urlParams_.Set("requestId", requestId)
53252	return c
53253}
53254
53255// Fields allows partial responses to be retrieved. See
53256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53257// for more information.
53258func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
53259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53260	return c
53261}
53262
53263// Context sets the context to be used in this call's Do method. Any
53264// pending HTTP request will be aborted if the provided context is
53265// canceled.
53266func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
53267	c.ctx_ = ctx
53268	return c
53269}
53270
53271// Header returns an http.Header that can be modified by the caller to
53272// add HTTP headers to the request.
53273func (c *AutoscalersInsertCall) Header() http.Header {
53274	if c.header_ == nil {
53275		c.header_ = make(http.Header)
53276	}
53277	return c.header_
53278}
53279
53280func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
53281	reqHeaders := make(http.Header)
53282	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53283	for k, v := range c.header_ {
53284		reqHeaders[k] = v
53285	}
53286	reqHeaders.Set("User-Agent", c.s.userAgent())
53287	var body io.Reader = nil
53288	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
53289	if err != nil {
53290		return nil, err
53291	}
53292	reqHeaders.Set("Content-Type", "application/json")
53293	c.urlParams_.Set("alt", alt)
53294	c.urlParams_.Set("prettyPrint", "false")
53295	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
53296	urls += "?" + c.urlParams_.Encode()
53297	req, err := http.NewRequest("POST", urls, body)
53298	if err != nil {
53299		return nil, err
53300	}
53301	req.Header = reqHeaders
53302	googleapi.Expand(req.URL, map[string]string{
53303		"project": c.project,
53304		"zone":    c.zone,
53305	})
53306	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53307}
53308
53309// Do executes the "compute.autoscalers.insert" call.
53310// Exactly one of *Operation or error will be non-nil. Any non-2xx
53311// status code is an error. Response headers are in either
53312// *Operation.ServerResponse.Header or (if a response was returned at
53313// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53314// to check whether the returned error was because
53315// http.StatusNotModified was returned.
53316func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53317	gensupport.SetOptions(c.urlParams_, opts...)
53318	res, err := c.doRequest("json")
53319	if res != nil && res.StatusCode == http.StatusNotModified {
53320		if res.Body != nil {
53321			res.Body.Close()
53322		}
53323		return nil, &googleapi.Error{
53324			Code:   res.StatusCode,
53325			Header: res.Header,
53326		}
53327	}
53328	if err != nil {
53329		return nil, err
53330	}
53331	defer googleapi.CloseBody(res)
53332	if err := googleapi.CheckResponse(res); err != nil {
53333		return nil, err
53334	}
53335	ret := &Operation{
53336		ServerResponse: googleapi.ServerResponse{
53337			Header:         res.Header,
53338			HTTPStatusCode: res.StatusCode,
53339		},
53340	}
53341	target := &ret
53342	if err := gensupport.DecodeResponse(target, res); err != nil {
53343		return nil, err
53344	}
53345	return ret, nil
53346	// {
53347	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
53348	//   "httpMethod": "POST",
53349	//   "id": "compute.autoscalers.insert",
53350	//   "parameterOrder": [
53351	//     "project",
53352	//     "zone"
53353	//   ],
53354	//   "parameters": {
53355	//     "project": {
53356	//       "description": "Project ID for this request.",
53357	//       "location": "path",
53358	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53359	//       "required": true,
53360	//       "type": "string"
53361	//     },
53362	//     "requestId": {
53363	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53364	//       "location": "query",
53365	//       "type": "string"
53366	//     },
53367	//     "zone": {
53368	//       "description": "Name of the zone for this request.",
53369	//       "location": "path",
53370	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53371	//       "required": true,
53372	//       "type": "string"
53373	//     }
53374	//   },
53375	//   "path": "projects/{project}/zones/{zone}/autoscalers",
53376	//   "request": {
53377	//     "$ref": "Autoscaler"
53378	//   },
53379	//   "response": {
53380	//     "$ref": "Operation"
53381	//   },
53382	//   "scopes": [
53383	//     "https://www.googleapis.com/auth/cloud-platform",
53384	//     "https://www.googleapis.com/auth/compute"
53385	//   ]
53386	// }
53387
53388}
53389
53390// method id "compute.autoscalers.list":
53391
53392type AutoscalersListCall struct {
53393	s            *Service
53394	project      string
53395	zone         string
53396	urlParams_   gensupport.URLParams
53397	ifNoneMatch_ string
53398	ctx_         context.Context
53399	header_      http.Header
53400}
53401
53402// List: Retrieves a list of autoscalers contained within the specified
53403// zone.
53404//
53405// - project: Project ID for this request.
53406// - zone: Name of the zone for this request.
53407func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
53408	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53409	c.project = project
53410	c.zone = zone
53411	return c
53412}
53413
53414// Filter sets the optional parameter "filter": A filter expression that
53415// filters resources listed in the response. The expression must specify
53416// the field name, a comparison operator, and the value that you want to
53417// use for filtering. The value must be a string, a number, or a
53418// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53419// `<`.
53420//
53421// For example, if you are filtering Compute Engine instances, you can
53422// exclude instances named `example-instance` by specifying `name !=
53423// example-instance`.
53424//
53425// You can also filter nested fields. For example, you could specify
53426// `scheduling.automaticRestart = false` to include instances only if
53427// they are not scheduled for automatic restarts. You can use filtering
53428// on nested fields to filter based on resource labels.
53429//
53430// To filter on multiple expressions, provide each separate expression
53431// within parentheses. For example: ``` (scheduling.automaticRestart =
53432// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
53433// is an `AND` expression. However, you can include `AND` and `OR`
53434// expressions explicitly. For example: ``` (cpuPlatform = "Intel
53435// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
53436// (scheduling.automaticRestart = true) ```
53437func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
53438	c.urlParams_.Set("filter", filter)
53439	return c
53440}
53441
53442// MaxResults sets the optional parameter "maxResults": The maximum
53443// number of results per page that should be returned. If the number of
53444// available results is larger than `maxResults`, Compute Engine returns
53445// a `nextPageToken` that can be used to get the next page of results in
53446// subsequent list requests. Acceptable values are `0` to `500`,
53447// inclusive. (Default: `500`)
53448func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
53449	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53450	return c
53451}
53452
53453// OrderBy sets the optional parameter "orderBy": Sorts list results by
53454// a certain order. By default, results are returned in alphanumerical
53455// order based on the resource name.
53456//
53457// You can also sort results in descending order based on the creation
53458// timestamp using `orderBy="creationTimestamp desc". This sorts
53459// results based on the `creationTimestamp` field in reverse
53460// chronological order (newest result first). Use this to sort resources
53461// like operations so that the newest operation is returned
53462// first.
53463//
53464// Currently, only sorting by `name` or `creationTimestamp desc` is
53465// supported.
53466func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
53467	c.urlParams_.Set("orderBy", orderBy)
53468	return c
53469}
53470
53471// PageToken sets the optional parameter "pageToken": Specifies a page
53472// token to use. Set `pageToken` to the `nextPageToken` returned by a
53473// previous list request to get the next page of results.
53474func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
53475	c.urlParams_.Set("pageToken", pageToken)
53476	return c
53477}
53478
53479// ReturnPartialSuccess sets the optional parameter
53480// "returnPartialSuccess": Opt-in for partial success behavior which
53481// provides partial results in case of failure. The default value is
53482// false.
53483func (c *AutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersListCall {
53484	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
53485	return c
53486}
53487
53488// Fields allows partial responses to be retrieved. See
53489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53490// for more information.
53491func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
53492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53493	return c
53494}
53495
53496// IfNoneMatch sets the optional parameter which makes the operation
53497// fail if the object's ETag matches the given value. This is useful for
53498// getting updates only after the object has changed since the last
53499// request. Use googleapi.IsNotModified to check whether the response
53500// error from Do is the result of In-None-Match.
53501func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
53502	c.ifNoneMatch_ = entityTag
53503	return c
53504}
53505
53506// Context sets the context to be used in this call's Do method. Any
53507// pending HTTP request will be aborted if the provided context is
53508// canceled.
53509func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
53510	c.ctx_ = ctx
53511	return c
53512}
53513
53514// Header returns an http.Header that can be modified by the caller to
53515// add HTTP headers to the request.
53516func (c *AutoscalersListCall) Header() http.Header {
53517	if c.header_ == nil {
53518		c.header_ = make(http.Header)
53519	}
53520	return c.header_
53521}
53522
53523func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
53524	reqHeaders := make(http.Header)
53525	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53526	for k, v := range c.header_ {
53527		reqHeaders[k] = v
53528	}
53529	reqHeaders.Set("User-Agent", c.s.userAgent())
53530	if c.ifNoneMatch_ != "" {
53531		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53532	}
53533	var body io.Reader = nil
53534	c.urlParams_.Set("alt", alt)
53535	c.urlParams_.Set("prettyPrint", "false")
53536	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
53537	urls += "?" + c.urlParams_.Encode()
53538	req, err := http.NewRequest("GET", urls, body)
53539	if err != nil {
53540		return nil, err
53541	}
53542	req.Header = reqHeaders
53543	googleapi.Expand(req.URL, map[string]string{
53544		"project": c.project,
53545		"zone":    c.zone,
53546	})
53547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53548}
53549
53550// Do executes the "compute.autoscalers.list" call.
53551// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
53552// status code is an error. Response headers are in either
53553// *AutoscalerList.ServerResponse.Header or (if a response was returned
53554// at all) in error.(*googleapi.Error).Header. Use
53555// googleapi.IsNotModified to check whether the returned error was
53556// because http.StatusNotModified was returned.
53557func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
53558	gensupport.SetOptions(c.urlParams_, opts...)
53559	res, err := c.doRequest("json")
53560	if res != nil && res.StatusCode == http.StatusNotModified {
53561		if res.Body != nil {
53562			res.Body.Close()
53563		}
53564		return nil, &googleapi.Error{
53565			Code:   res.StatusCode,
53566			Header: res.Header,
53567		}
53568	}
53569	if err != nil {
53570		return nil, err
53571	}
53572	defer googleapi.CloseBody(res)
53573	if err := googleapi.CheckResponse(res); err != nil {
53574		return nil, err
53575	}
53576	ret := &AutoscalerList{
53577		ServerResponse: googleapi.ServerResponse{
53578			Header:         res.Header,
53579			HTTPStatusCode: res.StatusCode,
53580		},
53581	}
53582	target := &ret
53583	if err := gensupport.DecodeResponse(target, res); err != nil {
53584		return nil, err
53585	}
53586	return ret, nil
53587	// {
53588	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
53589	//   "httpMethod": "GET",
53590	//   "id": "compute.autoscalers.list",
53591	//   "parameterOrder": [
53592	//     "project",
53593	//     "zone"
53594	//   ],
53595	//   "parameters": {
53596	//     "filter": {
53597	//       "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) ```",
53598	//       "location": "query",
53599	//       "type": "string"
53600	//     },
53601	//     "maxResults": {
53602	//       "default": "500",
53603	//       "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`)",
53604	//       "format": "uint32",
53605	//       "location": "query",
53606	//       "minimum": "0",
53607	//       "type": "integer"
53608	//     },
53609	//     "orderBy": {
53610	//       "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.",
53611	//       "location": "query",
53612	//       "type": "string"
53613	//     },
53614	//     "pageToken": {
53615	//       "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.",
53616	//       "location": "query",
53617	//       "type": "string"
53618	//     },
53619	//     "project": {
53620	//       "description": "Project ID for this request.",
53621	//       "location": "path",
53622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53623	//       "required": true,
53624	//       "type": "string"
53625	//     },
53626	//     "returnPartialSuccess": {
53627	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
53628	//       "location": "query",
53629	//       "type": "boolean"
53630	//     },
53631	//     "zone": {
53632	//       "description": "Name of the zone for this request.",
53633	//       "location": "path",
53634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53635	//       "required": true,
53636	//       "type": "string"
53637	//     }
53638	//   },
53639	//   "path": "projects/{project}/zones/{zone}/autoscalers",
53640	//   "response": {
53641	//     "$ref": "AutoscalerList"
53642	//   },
53643	//   "scopes": [
53644	//     "https://www.googleapis.com/auth/cloud-platform",
53645	//     "https://www.googleapis.com/auth/compute",
53646	//     "https://www.googleapis.com/auth/compute.readonly"
53647	//   ]
53648	// }
53649
53650}
53651
53652// Pages invokes f for each page of results.
53653// A non-nil error returned from f will halt the iteration.
53654// The provided context supersedes any context provided to the Context method.
53655func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
53656	c.ctx_ = ctx
53657	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53658	for {
53659		x, err := c.Do()
53660		if err != nil {
53661			return err
53662		}
53663		if err := f(x); err != nil {
53664			return err
53665		}
53666		if x.NextPageToken == "" {
53667			return nil
53668		}
53669		c.PageToken(x.NextPageToken)
53670	}
53671}
53672
53673// method id "compute.autoscalers.patch":
53674
53675type AutoscalersPatchCall struct {
53676	s          *Service
53677	project    string
53678	zone       string
53679	autoscaler *Autoscaler
53680	urlParams_ gensupport.URLParams
53681	ctx_       context.Context
53682	header_    http.Header
53683}
53684
53685// Patch: Updates an autoscaler in the specified project using the data
53686// included in the request. This method supports PATCH semantics and
53687// uses the JSON merge patch format and processing rules.
53688//
53689// - project: Project ID for this request.
53690// - zone: Name of the zone for this request.
53691func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
53692	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53693	c.project = project
53694	c.zone = zone
53695	c.autoscaler = autoscaler
53696	return c
53697}
53698
53699// Autoscaler sets the optional parameter "autoscaler": Name of the
53700// autoscaler to patch.
53701func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
53702	c.urlParams_.Set("autoscaler", autoscaler)
53703	return c
53704}
53705
53706// RequestId sets the optional parameter "requestId": An optional
53707// request ID to identify requests. Specify a unique request ID so that
53708// if you must retry your request, the server will know to ignore the
53709// request if it has already been completed.
53710//
53711// For example, consider a situation where you make an initial request
53712// and the request times out. If you make the request again with the
53713// same request ID, the server can check if original operation with the
53714// same request ID was received, and if so, will ignore the second
53715// request. This prevents clients from accidentally creating duplicate
53716// commitments.
53717//
53718// The request ID must be a valid UUID with the exception that zero UUID
53719// is not supported (00000000-0000-0000-0000-000000000000).
53720func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
53721	c.urlParams_.Set("requestId", requestId)
53722	return c
53723}
53724
53725// Fields allows partial responses to be retrieved. See
53726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53727// for more information.
53728func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
53729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53730	return c
53731}
53732
53733// Context sets the context to be used in this call's Do method. Any
53734// pending HTTP request will be aborted if the provided context is
53735// canceled.
53736func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
53737	c.ctx_ = ctx
53738	return c
53739}
53740
53741// Header returns an http.Header that can be modified by the caller to
53742// add HTTP headers to the request.
53743func (c *AutoscalersPatchCall) Header() http.Header {
53744	if c.header_ == nil {
53745		c.header_ = make(http.Header)
53746	}
53747	return c.header_
53748}
53749
53750func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
53751	reqHeaders := make(http.Header)
53752	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53753	for k, v := range c.header_ {
53754		reqHeaders[k] = v
53755	}
53756	reqHeaders.Set("User-Agent", c.s.userAgent())
53757	var body io.Reader = nil
53758	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
53759	if err != nil {
53760		return nil, err
53761	}
53762	reqHeaders.Set("Content-Type", "application/json")
53763	c.urlParams_.Set("alt", alt)
53764	c.urlParams_.Set("prettyPrint", "false")
53765	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
53766	urls += "?" + c.urlParams_.Encode()
53767	req, err := http.NewRequest("PATCH", urls, body)
53768	if err != nil {
53769		return nil, err
53770	}
53771	req.Header = reqHeaders
53772	googleapi.Expand(req.URL, map[string]string{
53773		"project": c.project,
53774		"zone":    c.zone,
53775	})
53776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53777}
53778
53779// Do executes the "compute.autoscalers.patch" call.
53780// Exactly one of *Operation or error will be non-nil. Any non-2xx
53781// status code is an error. Response headers are in either
53782// *Operation.ServerResponse.Header or (if a response was returned at
53783// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53784// to check whether the returned error was because
53785// http.StatusNotModified was returned.
53786func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53787	gensupport.SetOptions(c.urlParams_, opts...)
53788	res, err := c.doRequest("json")
53789	if res != nil && res.StatusCode == http.StatusNotModified {
53790		if res.Body != nil {
53791			res.Body.Close()
53792		}
53793		return nil, &googleapi.Error{
53794			Code:   res.StatusCode,
53795			Header: res.Header,
53796		}
53797	}
53798	if err != nil {
53799		return nil, err
53800	}
53801	defer googleapi.CloseBody(res)
53802	if err := googleapi.CheckResponse(res); err != nil {
53803		return nil, err
53804	}
53805	ret := &Operation{
53806		ServerResponse: googleapi.ServerResponse{
53807			Header:         res.Header,
53808			HTTPStatusCode: res.StatusCode,
53809		},
53810	}
53811	target := &ret
53812	if err := gensupport.DecodeResponse(target, res); err != nil {
53813		return nil, err
53814	}
53815	return ret, nil
53816	// {
53817	//   "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.",
53818	//   "httpMethod": "PATCH",
53819	//   "id": "compute.autoscalers.patch",
53820	//   "parameterOrder": [
53821	//     "project",
53822	//     "zone"
53823	//   ],
53824	//   "parameters": {
53825	//     "autoscaler": {
53826	//       "description": "Name of the autoscaler to patch.",
53827	//       "location": "query",
53828	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53829	//       "type": "string"
53830	//     },
53831	//     "project": {
53832	//       "description": "Project ID for this request.",
53833	//       "location": "path",
53834	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53835	//       "required": true,
53836	//       "type": "string"
53837	//     },
53838	//     "requestId": {
53839	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53840	//       "location": "query",
53841	//       "type": "string"
53842	//     },
53843	//     "zone": {
53844	//       "description": "Name of the zone for this request.",
53845	//       "location": "path",
53846	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53847	//       "required": true,
53848	//       "type": "string"
53849	//     }
53850	//   },
53851	//   "path": "projects/{project}/zones/{zone}/autoscalers",
53852	//   "request": {
53853	//     "$ref": "Autoscaler"
53854	//   },
53855	//   "response": {
53856	//     "$ref": "Operation"
53857	//   },
53858	//   "scopes": [
53859	//     "https://www.googleapis.com/auth/cloud-platform",
53860	//     "https://www.googleapis.com/auth/compute"
53861	//   ]
53862	// }
53863
53864}
53865
53866// method id "compute.autoscalers.testIamPermissions":
53867
53868type AutoscalersTestIamPermissionsCall struct {
53869	s                      *Service
53870	project                string
53871	zone                   string
53872	resource               string
53873	testpermissionsrequest *TestPermissionsRequest
53874	urlParams_             gensupport.URLParams
53875	ctx_                   context.Context
53876	header_                http.Header
53877}
53878
53879// TestIamPermissions: Returns permissions that a caller has on the
53880// specified resource.
53881//
53882// - project: Project ID for this request.
53883// - resource: Name or id of the resource for this request.
53884// - zone: The name of the zone for this request.
53885func (r *AutoscalersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *AutoscalersTestIamPermissionsCall {
53886	c := &AutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53887	c.project = project
53888	c.zone = zone
53889	c.resource = resource
53890	c.testpermissionsrequest = testpermissionsrequest
53891	return c
53892}
53893
53894// Fields allows partial responses to be retrieved. See
53895// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53896// for more information.
53897func (c *AutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *AutoscalersTestIamPermissionsCall {
53898	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53899	return c
53900}
53901
53902// Context sets the context to be used in this call's Do method. Any
53903// pending HTTP request will be aborted if the provided context is
53904// canceled.
53905func (c *AutoscalersTestIamPermissionsCall) Context(ctx context.Context) *AutoscalersTestIamPermissionsCall {
53906	c.ctx_ = ctx
53907	return c
53908}
53909
53910// Header returns an http.Header that can be modified by the caller to
53911// add HTTP headers to the request.
53912func (c *AutoscalersTestIamPermissionsCall) Header() http.Header {
53913	if c.header_ == nil {
53914		c.header_ = make(http.Header)
53915	}
53916	return c.header_
53917}
53918
53919func (c *AutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
53920	reqHeaders := make(http.Header)
53921	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53922	for k, v := range c.header_ {
53923		reqHeaders[k] = v
53924	}
53925	reqHeaders.Set("User-Agent", c.s.userAgent())
53926	var body io.Reader = nil
53927	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
53928	if err != nil {
53929		return nil, err
53930	}
53931	reqHeaders.Set("Content-Type", "application/json")
53932	c.urlParams_.Set("alt", alt)
53933	c.urlParams_.Set("prettyPrint", "false")
53934	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions")
53935	urls += "?" + c.urlParams_.Encode()
53936	req, err := http.NewRequest("POST", urls, body)
53937	if err != nil {
53938		return nil, err
53939	}
53940	req.Header = reqHeaders
53941	googleapi.Expand(req.URL, map[string]string{
53942		"project":  c.project,
53943		"zone":     c.zone,
53944		"resource": c.resource,
53945	})
53946	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53947}
53948
53949// Do executes the "compute.autoscalers.testIamPermissions" call.
53950// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
53951// non-2xx status code is an error. Response headers are in either
53952// *TestPermissionsResponse.ServerResponse.Header or (if a response was
53953// returned at all) in error.(*googleapi.Error).Header. Use
53954// googleapi.IsNotModified to check whether the returned error was
53955// because http.StatusNotModified was returned.
53956func (c *AutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
53957	gensupport.SetOptions(c.urlParams_, opts...)
53958	res, err := c.doRequest("json")
53959	if res != nil && res.StatusCode == http.StatusNotModified {
53960		if res.Body != nil {
53961			res.Body.Close()
53962		}
53963		return nil, &googleapi.Error{
53964			Code:   res.StatusCode,
53965			Header: res.Header,
53966		}
53967	}
53968	if err != nil {
53969		return nil, err
53970	}
53971	defer googleapi.CloseBody(res)
53972	if err := googleapi.CheckResponse(res); err != nil {
53973		return nil, err
53974	}
53975	ret := &TestPermissionsResponse{
53976		ServerResponse: googleapi.ServerResponse{
53977			Header:         res.Header,
53978			HTTPStatusCode: res.StatusCode,
53979		},
53980	}
53981	target := &ret
53982	if err := gensupport.DecodeResponse(target, res); err != nil {
53983		return nil, err
53984	}
53985	return ret, nil
53986	// {
53987	//   "description": "Returns permissions that a caller has on the specified resource.",
53988	//   "httpMethod": "POST",
53989	//   "id": "compute.autoscalers.testIamPermissions",
53990	//   "parameterOrder": [
53991	//     "project",
53992	//     "zone",
53993	//     "resource"
53994	//   ],
53995	//   "parameters": {
53996	//     "project": {
53997	//       "description": "Project ID for this request.",
53998	//       "location": "path",
53999	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54000	//       "required": true,
54001	//       "type": "string"
54002	//     },
54003	//     "resource": {
54004	//       "description": "Name or id of the resource for this request.",
54005	//       "location": "path",
54006	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54007	//       "required": true,
54008	//       "type": "string"
54009	//     },
54010	//     "zone": {
54011	//       "description": "The name of the zone for this request.",
54012	//       "location": "path",
54013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54014	//       "required": true,
54015	//       "type": "string"
54016	//     }
54017	//   },
54018	//   "path": "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions",
54019	//   "request": {
54020	//     "$ref": "TestPermissionsRequest"
54021	//   },
54022	//   "response": {
54023	//     "$ref": "TestPermissionsResponse"
54024	//   },
54025	//   "scopes": [
54026	//     "https://www.googleapis.com/auth/cloud-platform",
54027	//     "https://www.googleapis.com/auth/compute",
54028	//     "https://www.googleapis.com/auth/compute.readonly"
54029	//   ]
54030	// }
54031
54032}
54033
54034// method id "compute.autoscalers.update":
54035
54036type AutoscalersUpdateCall struct {
54037	s          *Service
54038	project    string
54039	zone       string
54040	autoscaler *Autoscaler
54041	urlParams_ gensupport.URLParams
54042	ctx_       context.Context
54043	header_    http.Header
54044}
54045
54046// Update: Updates an autoscaler in the specified project using the data
54047// included in the request.
54048//
54049// - project: Project ID for this request.
54050// - zone: Name of the zone for this request.
54051func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
54052	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54053	c.project = project
54054	c.zone = zone
54055	c.autoscaler = autoscaler
54056	return c
54057}
54058
54059// Autoscaler sets the optional parameter "autoscaler": Name of the
54060// autoscaler to update.
54061func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
54062	c.urlParams_.Set("autoscaler", autoscaler)
54063	return c
54064}
54065
54066// RequestId sets the optional parameter "requestId": An optional
54067// request ID to identify requests. Specify a unique request ID so that
54068// if you must retry your request, the server will know to ignore the
54069// request if it has already been completed.
54070//
54071// For example, consider a situation where you make an initial request
54072// and the request times out. If you make the request again with the
54073// same request ID, the server can check if original operation with the
54074// same request ID was received, and if so, will ignore the second
54075// request. This prevents clients from accidentally creating duplicate
54076// commitments.
54077//
54078// The request ID must be a valid UUID with the exception that zero UUID
54079// is not supported (00000000-0000-0000-0000-000000000000).
54080func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
54081	c.urlParams_.Set("requestId", requestId)
54082	return c
54083}
54084
54085// Fields allows partial responses to be retrieved. See
54086// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54087// for more information.
54088func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
54089	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54090	return c
54091}
54092
54093// Context sets the context to be used in this call's Do method. Any
54094// pending HTTP request will be aborted if the provided context is
54095// canceled.
54096func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
54097	c.ctx_ = ctx
54098	return c
54099}
54100
54101// Header returns an http.Header that can be modified by the caller to
54102// add HTTP headers to the request.
54103func (c *AutoscalersUpdateCall) Header() http.Header {
54104	if c.header_ == nil {
54105		c.header_ = make(http.Header)
54106	}
54107	return c.header_
54108}
54109
54110func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
54111	reqHeaders := make(http.Header)
54112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54113	for k, v := range c.header_ {
54114		reqHeaders[k] = v
54115	}
54116	reqHeaders.Set("User-Agent", c.s.userAgent())
54117	var body io.Reader = nil
54118	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
54119	if err != nil {
54120		return nil, err
54121	}
54122	reqHeaders.Set("Content-Type", "application/json")
54123	c.urlParams_.Set("alt", alt)
54124	c.urlParams_.Set("prettyPrint", "false")
54125	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
54126	urls += "?" + c.urlParams_.Encode()
54127	req, err := http.NewRequest("PUT", urls, body)
54128	if err != nil {
54129		return nil, err
54130	}
54131	req.Header = reqHeaders
54132	googleapi.Expand(req.URL, map[string]string{
54133		"project": c.project,
54134		"zone":    c.zone,
54135	})
54136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54137}
54138
54139// Do executes the "compute.autoscalers.update" call.
54140// Exactly one of *Operation or error will be non-nil. Any non-2xx
54141// status code is an error. Response headers are in either
54142// *Operation.ServerResponse.Header or (if a response was returned at
54143// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54144// to check whether the returned error was because
54145// http.StatusNotModified was returned.
54146func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54147	gensupport.SetOptions(c.urlParams_, opts...)
54148	res, err := c.doRequest("json")
54149	if res != nil && res.StatusCode == http.StatusNotModified {
54150		if res.Body != nil {
54151			res.Body.Close()
54152		}
54153		return nil, &googleapi.Error{
54154			Code:   res.StatusCode,
54155			Header: res.Header,
54156		}
54157	}
54158	if err != nil {
54159		return nil, err
54160	}
54161	defer googleapi.CloseBody(res)
54162	if err := googleapi.CheckResponse(res); err != nil {
54163		return nil, err
54164	}
54165	ret := &Operation{
54166		ServerResponse: googleapi.ServerResponse{
54167			Header:         res.Header,
54168			HTTPStatusCode: res.StatusCode,
54169		},
54170	}
54171	target := &ret
54172	if err := gensupport.DecodeResponse(target, res); err != nil {
54173		return nil, err
54174	}
54175	return ret, nil
54176	// {
54177	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
54178	//   "httpMethod": "PUT",
54179	//   "id": "compute.autoscalers.update",
54180	//   "parameterOrder": [
54181	//     "project",
54182	//     "zone"
54183	//   ],
54184	//   "parameters": {
54185	//     "autoscaler": {
54186	//       "description": "Name of the autoscaler to update.",
54187	//       "location": "query",
54188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54189	//       "type": "string"
54190	//     },
54191	//     "project": {
54192	//       "description": "Project ID for this request.",
54193	//       "location": "path",
54194	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54195	//       "required": true,
54196	//       "type": "string"
54197	//     },
54198	//     "requestId": {
54199	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54200	//       "location": "query",
54201	//       "type": "string"
54202	//     },
54203	//     "zone": {
54204	//       "description": "Name of the zone for this request.",
54205	//       "location": "path",
54206	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54207	//       "required": true,
54208	//       "type": "string"
54209	//     }
54210	//   },
54211	//   "path": "projects/{project}/zones/{zone}/autoscalers",
54212	//   "request": {
54213	//     "$ref": "Autoscaler"
54214	//   },
54215	//   "response": {
54216	//     "$ref": "Operation"
54217	//   },
54218	//   "scopes": [
54219	//     "https://www.googleapis.com/auth/cloud-platform",
54220	//     "https://www.googleapis.com/auth/compute"
54221	//   ]
54222	// }
54223
54224}
54225
54226// method id "compute.backendBuckets.addSignedUrlKey":
54227
54228type BackendBucketsAddSignedUrlKeyCall struct {
54229	s             *Service
54230	project       string
54231	backendBucket string
54232	signedurlkey  *SignedUrlKey
54233	urlParams_    gensupport.URLParams
54234	ctx_          context.Context
54235	header_       http.Header
54236}
54237
54238// AddSignedUrlKey: Adds a key for validating requests with signed URLs
54239// for this backend bucket.
54240//
54241// - backendBucket: Name of the BackendBucket resource to which the
54242//   Signed URL Key should be added. The name should conform to RFC1035.
54243// - project: Project ID for this request.
54244func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
54245	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54246	c.project = project
54247	c.backendBucket = backendBucket
54248	c.signedurlkey = signedurlkey
54249	return c
54250}
54251
54252// RequestId sets the optional parameter "requestId": An optional
54253// request ID to identify requests. Specify a unique request ID so that
54254// if you must retry your request, the server will know to ignore the
54255// request if it has already been completed.
54256//
54257// For example, consider a situation where you make an initial request
54258// and the request times out. If you make the request again with the
54259// same request ID, the server can check if original operation with the
54260// same request ID was received, and if so, will ignore the second
54261// request. This prevents clients from accidentally creating duplicate
54262// commitments.
54263//
54264// The request ID must be a valid UUID with the exception that zero UUID
54265// is not supported (00000000-0000-0000-0000-000000000000).
54266func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
54267	c.urlParams_.Set("requestId", requestId)
54268	return c
54269}
54270
54271// Fields allows partial responses to be retrieved. See
54272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54273// for more information.
54274func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
54275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54276	return c
54277}
54278
54279// Context sets the context to be used in this call's Do method. Any
54280// pending HTTP request will be aborted if the provided context is
54281// canceled.
54282func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
54283	c.ctx_ = ctx
54284	return c
54285}
54286
54287// Header returns an http.Header that can be modified by the caller to
54288// add HTTP headers to the request.
54289func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
54290	if c.header_ == nil {
54291		c.header_ = make(http.Header)
54292	}
54293	return c.header_
54294}
54295
54296func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
54297	reqHeaders := make(http.Header)
54298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54299	for k, v := range c.header_ {
54300		reqHeaders[k] = v
54301	}
54302	reqHeaders.Set("User-Agent", c.s.userAgent())
54303	var body io.Reader = nil
54304	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
54305	if err != nil {
54306		return nil, err
54307	}
54308	reqHeaders.Set("Content-Type", "application/json")
54309	c.urlParams_.Set("alt", alt)
54310	c.urlParams_.Set("prettyPrint", "false")
54311	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
54312	urls += "?" + c.urlParams_.Encode()
54313	req, err := http.NewRequest("POST", urls, body)
54314	if err != nil {
54315		return nil, err
54316	}
54317	req.Header = reqHeaders
54318	googleapi.Expand(req.URL, map[string]string{
54319		"project":       c.project,
54320		"backendBucket": c.backendBucket,
54321	})
54322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54323}
54324
54325// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
54326// Exactly one of *Operation or error will be non-nil. Any non-2xx
54327// status code is an error. Response headers are in either
54328// *Operation.ServerResponse.Header or (if a response was returned at
54329// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54330// to check whether the returned error was because
54331// http.StatusNotModified was returned.
54332func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54333	gensupport.SetOptions(c.urlParams_, opts...)
54334	res, err := c.doRequest("json")
54335	if res != nil && res.StatusCode == http.StatusNotModified {
54336		if res.Body != nil {
54337			res.Body.Close()
54338		}
54339		return nil, &googleapi.Error{
54340			Code:   res.StatusCode,
54341			Header: res.Header,
54342		}
54343	}
54344	if err != nil {
54345		return nil, err
54346	}
54347	defer googleapi.CloseBody(res)
54348	if err := googleapi.CheckResponse(res); err != nil {
54349		return nil, err
54350	}
54351	ret := &Operation{
54352		ServerResponse: googleapi.ServerResponse{
54353			Header:         res.Header,
54354			HTTPStatusCode: res.StatusCode,
54355		},
54356	}
54357	target := &ret
54358	if err := gensupport.DecodeResponse(target, res); err != nil {
54359		return nil, err
54360	}
54361	return ret, nil
54362	// {
54363	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
54364	//   "httpMethod": "POST",
54365	//   "id": "compute.backendBuckets.addSignedUrlKey",
54366	//   "parameterOrder": [
54367	//     "project",
54368	//     "backendBucket"
54369	//   ],
54370	//   "parameters": {
54371	//     "backendBucket": {
54372	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
54373	//       "location": "path",
54374	//       "required": true,
54375	//       "type": "string"
54376	//     },
54377	//     "project": {
54378	//       "description": "Project ID for this request.",
54379	//       "location": "path",
54380	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54381	//       "required": true,
54382	//       "type": "string"
54383	//     },
54384	//     "requestId": {
54385	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54386	//       "location": "query",
54387	//       "type": "string"
54388	//     }
54389	//   },
54390	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
54391	//   "request": {
54392	//     "$ref": "SignedUrlKey"
54393	//   },
54394	//   "response": {
54395	//     "$ref": "Operation"
54396	//   },
54397	//   "scopes": [
54398	//     "https://www.googleapis.com/auth/cloud-platform",
54399	//     "https://www.googleapis.com/auth/compute"
54400	//   ]
54401	// }
54402
54403}
54404
54405// method id "compute.backendBuckets.delete":
54406
54407type BackendBucketsDeleteCall struct {
54408	s             *Service
54409	project       string
54410	backendBucket string
54411	urlParams_    gensupport.URLParams
54412	ctx_          context.Context
54413	header_       http.Header
54414}
54415
54416// Delete: Deletes the specified BackendBucket resource.
54417//
54418// - backendBucket: Name of the BackendBucket resource to delete.
54419// - project: Project ID for this request.
54420func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
54421	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54422	c.project = project
54423	c.backendBucket = backendBucket
54424	return c
54425}
54426
54427// RequestId sets the optional parameter "requestId": An optional
54428// request ID to identify requests. Specify a unique request ID so that
54429// if you must retry your request, the server will know to ignore the
54430// request if it has already been completed.
54431//
54432// For example, consider a situation where you make an initial request
54433// and the request times out. If you make the request again with the
54434// same request ID, the server can check if original operation with the
54435// same request ID was received, and if so, will ignore the second
54436// request. This prevents clients from accidentally creating duplicate
54437// commitments.
54438//
54439// The request ID must be a valid UUID with the exception that zero UUID
54440// is not supported (00000000-0000-0000-0000-000000000000).
54441func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
54442	c.urlParams_.Set("requestId", requestId)
54443	return c
54444}
54445
54446// Fields allows partial responses to be retrieved. See
54447// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54448// for more information.
54449func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
54450	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54451	return c
54452}
54453
54454// Context sets the context to be used in this call's Do method. Any
54455// pending HTTP request will be aborted if the provided context is
54456// canceled.
54457func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
54458	c.ctx_ = ctx
54459	return c
54460}
54461
54462// Header returns an http.Header that can be modified by the caller to
54463// add HTTP headers to the request.
54464func (c *BackendBucketsDeleteCall) Header() http.Header {
54465	if c.header_ == nil {
54466		c.header_ = make(http.Header)
54467	}
54468	return c.header_
54469}
54470
54471func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
54472	reqHeaders := make(http.Header)
54473	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54474	for k, v := range c.header_ {
54475		reqHeaders[k] = v
54476	}
54477	reqHeaders.Set("User-Agent", c.s.userAgent())
54478	var body io.Reader = nil
54479	c.urlParams_.Set("alt", alt)
54480	c.urlParams_.Set("prettyPrint", "false")
54481	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
54482	urls += "?" + c.urlParams_.Encode()
54483	req, err := http.NewRequest("DELETE", urls, body)
54484	if err != nil {
54485		return nil, err
54486	}
54487	req.Header = reqHeaders
54488	googleapi.Expand(req.URL, map[string]string{
54489		"project":       c.project,
54490		"backendBucket": c.backendBucket,
54491	})
54492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54493}
54494
54495// Do executes the "compute.backendBuckets.delete" call.
54496// Exactly one of *Operation or error will be non-nil. Any non-2xx
54497// status code is an error. Response headers are in either
54498// *Operation.ServerResponse.Header or (if a response was returned at
54499// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54500// to check whether the returned error was because
54501// http.StatusNotModified was returned.
54502func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54503	gensupport.SetOptions(c.urlParams_, opts...)
54504	res, err := c.doRequest("json")
54505	if res != nil && res.StatusCode == http.StatusNotModified {
54506		if res.Body != nil {
54507			res.Body.Close()
54508		}
54509		return nil, &googleapi.Error{
54510			Code:   res.StatusCode,
54511			Header: res.Header,
54512		}
54513	}
54514	if err != nil {
54515		return nil, err
54516	}
54517	defer googleapi.CloseBody(res)
54518	if err := googleapi.CheckResponse(res); err != nil {
54519		return nil, err
54520	}
54521	ret := &Operation{
54522		ServerResponse: googleapi.ServerResponse{
54523			Header:         res.Header,
54524			HTTPStatusCode: res.StatusCode,
54525		},
54526	}
54527	target := &ret
54528	if err := gensupport.DecodeResponse(target, res); err != nil {
54529		return nil, err
54530	}
54531	return ret, nil
54532	// {
54533	//   "description": "Deletes the specified BackendBucket resource.",
54534	//   "httpMethod": "DELETE",
54535	//   "id": "compute.backendBuckets.delete",
54536	//   "parameterOrder": [
54537	//     "project",
54538	//     "backendBucket"
54539	//   ],
54540	//   "parameters": {
54541	//     "backendBucket": {
54542	//       "description": "Name of the BackendBucket resource to delete.",
54543	//       "location": "path",
54544	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54545	//       "required": true,
54546	//       "type": "string"
54547	//     },
54548	//     "project": {
54549	//       "description": "Project ID for this request.",
54550	//       "location": "path",
54551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54552	//       "required": true,
54553	//       "type": "string"
54554	//     },
54555	//     "requestId": {
54556	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54557	//       "location": "query",
54558	//       "type": "string"
54559	//     }
54560	//   },
54561	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
54562	//   "response": {
54563	//     "$ref": "Operation"
54564	//   },
54565	//   "scopes": [
54566	//     "https://www.googleapis.com/auth/cloud-platform",
54567	//     "https://www.googleapis.com/auth/compute"
54568	//   ]
54569	// }
54570
54571}
54572
54573// method id "compute.backendBuckets.deleteSignedUrlKey":
54574
54575type BackendBucketsDeleteSignedUrlKeyCall struct {
54576	s             *Service
54577	project       string
54578	backendBucket string
54579	urlParams_    gensupport.URLParams
54580	ctx_          context.Context
54581	header_       http.Header
54582}
54583
54584// DeleteSignedUrlKey: Deletes a key for validating requests with signed
54585// URLs for this backend bucket.
54586//
54587// - backendBucket: Name of the BackendBucket resource to which the
54588//   Signed URL Key should be added. The name should conform to RFC1035.
54589// - keyName: The name of the Signed URL Key to delete.
54590// - project: Project ID for this request.
54591func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
54592	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54593	c.project = project
54594	c.backendBucket = backendBucket
54595	c.urlParams_.Set("keyName", keyName)
54596	return c
54597}
54598
54599// RequestId sets the optional parameter "requestId": An optional
54600// request ID to identify requests. Specify a unique request ID so that
54601// if you must retry your request, the server will know to ignore the
54602// request if it has already been completed.
54603//
54604// For example, consider a situation where you make an initial request
54605// and the request times out. If you make the request again with the
54606// same request ID, the server can check if original operation with the
54607// same request ID was received, and if so, will ignore the second
54608// request. This prevents clients from accidentally creating duplicate
54609// commitments.
54610//
54611// The request ID must be a valid UUID with the exception that zero UUID
54612// is not supported (00000000-0000-0000-0000-000000000000).
54613func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
54614	c.urlParams_.Set("requestId", requestId)
54615	return c
54616}
54617
54618// Fields allows partial responses to be retrieved. See
54619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54620// for more information.
54621func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
54622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54623	return c
54624}
54625
54626// Context sets the context to be used in this call's Do method. Any
54627// pending HTTP request will be aborted if the provided context is
54628// canceled.
54629func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
54630	c.ctx_ = ctx
54631	return c
54632}
54633
54634// Header returns an http.Header that can be modified by the caller to
54635// add HTTP headers to the request.
54636func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
54637	if c.header_ == nil {
54638		c.header_ = make(http.Header)
54639	}
54640	return c.header_
54641}
54642
54643func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
54644	reqHeaders := make(http.Header)
54645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54646	for k, v := range c.header_ {
54647		reqHeaders[k] = v
54648	}
54649	reqHeaders.Set("User-Agent", c.s.userAgent())
54650	var body io.Reader = nil
54651	c.urlParams_.Set("alt", alt)
54652	c.urlParams_.Set("prettyPrint", "false")
54653	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
54654	urls += "?" + c.urlParams_.Encode()
54655	req, err := http.NewRequest("POST", urls, body)
54656	if err != nil {
54657		return nil, err
54658	}
54659	req.Header = reqHeaders
54660	googleapi.Expand(req.URL, map[string]string{
54661		"project":       c.project,
54662		"backendBucket": c.backendBucket,
54663	})
54664	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54665}
54666
54667// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
54668// Exactly one of *Operation or error will be non-nil. Any non-2xx
54669// status code is an error. Response headers are in either
54670// *Operation.ServerResponse.Header or (if a response was returned at
54671// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54672// to check whether the returned error was because
54673// http.StatusNotModified was returned.
54674func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54675	gensupport.SetOptions(c.urlParams_, opts...)
54676	res, err := c.doRequest("json")
54677	if res != nil && res.StatusCode == http.StatusNotModified {
54678		if res.Body != nil {
54679			res.Body.Close()
54680		}
54681		return nil, &googleapi.Error{
54682			Code:   res.StatusCode,
54683			Header: res.Header,
54684		}
54685	}
54686	if err != nil {
54687		return nil, err
54688	}
54689	defer googleapi.CloseBody(res)
54690	if err := googleapi.CheckResponse(res); err != nil {
54691		return nil, err
54692	}
54693	ret := &Operation{
54694		ServerResponse: googleapi.ServerResponse{
54695			Header:         res.Header,
54696			HTTPStatusCode: res.StatusCode,
54697		},
54698	}
54699	target := &ret
54700	if err := gensupport.DecodeResponse(target, res); err != nil {
54701		return nil, err
54702	}
54703	return ret, nil
54704	// {
54705	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
54706	//   "httpMethod": "POST",
54707	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
54708	//   "parameterOrder": [
54709	//     "project",
54710	//     "backendBucket",
54711	//     "keyName"
54712	//   ],
54713	//   "parameters": {
54714	//     "backendBucket": {
54715	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
54716	//       "location": "path",
54717	//       "required": true,
54718	//       "type": "string"
54719	//     },
54720	//     "keyName": {
54721	//       "description": "The name of the Signed URL Key to delete.",
54722	//       "location": "query",
54723	//       "required": true,
54724	//       "type": "string"
54725	//     },
54726	//     "project": {
54727	//       "description": "Project ID for this request.",
54728	//       "location": "path",
54729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54730	//       "required": true,
54731	//       "type": "string"
54732	//     },
54733	//     "requestId": {
54734	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54735	//       "location": "query",
54736	//       "type": "string"
54737	//     }
54738	//   },
54739	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
54740	//   "response": {
54741	//     "$ref": "Operation"
54742	//   },
54743	//   "scopes": [
54744	//     "https://www.googleapis.com/auth/cloud-platform",
54745	//     "https://www.googleapis.com/auth/compute"
54746	//   ]
54747	// }
54748
54749}
54750
54751// method id "compute.backendBuckets.get":
54752
54753type BackendBucketsGetCall struct {
54754	s             *Service
54755	project       string
54756	backendBucket string
54757	urlParams_    gensupport.URLParams
54758	ifNoneMatch_  string
54759	ctx_          context.Context
54760	header_       http.Header
54761}
54762
54763// Get: Returns the specified BackendBucket resource. Gets a list of
54764// available backend buckets by making a list() request.
54765//
54766// - backendBucket: Name of the BackendBucket resource to return.
54767// - project: Project ID for this request.
54768func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
54769	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54770	c.project = project
54771	c.backendBucket = backendBucket
54772	return c
54773}
54774
54775// Fields allows partial responses to be retrieved. See
54776// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54777// for more information.
54778func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
54779	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54780	return c
54781}
54782
54783// IfNoneMatch sets the optional parameter which makes the operation
54784// fail if the object's ETag matches the given value. This is useful for
54785// getting updates only after the object has changed since the last
54786// request. Use googleapi.IsNotModified to check whether the response
54787// error from Do is the result of In-None-Match.
54788func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
54789	c.ifNoneMatch_ = entityTag
54790	return c
54791}
54792
54793// Context sets the context to be used in this call's Do method. Any
54794// pending HTTP request will be aborted if the provided context is
54795// canceled.
54796func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
54797	c.ctx_ = ctx
54798	return c
54799}
54800
54801// Header returns an http.Header that can be modified by the caller to
54802// add HTTP headers to the request.
54803func (c *BackendBucketsGetCall) Header() http.Header {
54804	if c.header_ == nil {
54805		c.header_ = make(http.Header)
54806	}
54807	return c.header_
54808}
54809
54810func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
54811	reqHeaders := make(http.Header)
54812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54813	for k, v := range c.header_ {
54814		reqHeaders[k] = v
54815	}
54816	reqHeaders.Set("User-Agent", c.s.userAgent())
54817	if c.ifNoneMatch_ != "" {
54818		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54819	}
54820	var body io.Reader = nil
54821	c.urlParams_.Set("alt", alt)
54822	c.urlParams_.Set("prettyPrint", "false")
54823	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
54824	urls += "?" + c.urlParams_.Encode()
54825	req, err := http.NewRequest("GET", urls, body)
54826	if err != nil {
54827		return nil, err
54828	}
54829	req.Header = reqHeaders
54830	googleapi.Expand(req.URL, map[string]string{
54831		"project":       c.project,
54832		"backendBucket": c.backendBucket,
54833	})
54834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54835}
54836
54837// Do executes the "compute.backendBuckets.get" call.
54838// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
54839// status code is an error. Response headers are in either
54840// *BackendBucket.ServerResponse.Header or (if a response was returned
54841// at all) in error.(*googleapi.Error).Header. Use
54842// googleapi.IsNotModified to check whether the returned error was
54843// because http.StatusNotModified was returned.
54844func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
54845	gensupport.SetOptions(c.urlParams_, opts...)
54846	res, err := c.doRequest("json")
54847	if res != nil && res.StatusCode == http.StatusNotModified {
54848		if res.Body != nil {
54849			res.Body.Close()
54850		}
54851		return nil, &googleapi.Error{
54852			Code:   res.StatusCode,
54853			Header: res.Header,
54854		}
54855	}
54856	if err != nil {
54857		return nil, err
54858	}
54859	defer googleapi.CloseBody(res)
54860	if err := googleapi.CheckResponse(res); err != nil {
54861		return nil, err
54862	}
54863	ret := &BackendBucket{
54864		ServerResponse: googleapi.ServerResponse{
54865			Header:         res.Header,
54866			HTTPStatusCode: res.StatusCode,
54867		},
54868	}
54869	target := &ret
54870	if err := gensupport.DecodeResponse(target, res); err != nil {
54871		return nil, err
54872	}
54873	return ret, nil
54874	// {
54875	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
54876	//   "httpMethod": "GET",
54877	//   "id": "compute.backendBuckets.get",
54878	//   "parameterOrder": [
54879	//     "project",
54880	//     "backendBucket"
54881	//   ],
54882	//   "parameters": {
54883	//     "backendBucket": {
54884	//       "description": "Name of the BackendBucket resource to return.",
54885	//       "location": "path",
54886	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54887	//       "required": true,
54888	//       "type": "string"
54889	//     },
54890	//     "project": {
54891	//       "description": "Project ID for this request.",
54892	//       "location": "path",
54893	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54894	//       "required": true,
54895	//       "type": "string"
54896	//     }
54897	//   },
54898	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
54899	//   "response": {
54900	//     "$ref": "BackendBucket"
54901	//   },
54902	//   "scopes": [
54903	//     "https://www.googleapis.com/auth/cloud-platform",
54904	//     "https://www.googleapis.com/auth/compute",
54905	//     "https://www.googleapis.com/auth/compute.readonly"
54906	//   ]
54907	// }
54908
54909}
54910
54911// method id "compute.backendBuckets.getIamPolicy":
54912
54913type BackendBucketsGetIamPolicyCall struct {
54914	s            *Service
54915	project      string
54916	resource     string
54917	urlParams_   gensupport.URLParams
54918	ifNoneMatch_ string
54919	ctx_         context.Context
54920	header_      http.Header
54921}
54922
54923// GetIamPolicy: Gets the access control policy for a resource. May be
54924// empty if no such policy or resource exists.
54925//
54926// - project: Project ID for this request.
54927// - resource: Name or id of the resource for this request.
54928func (r *BackendBucketsService) GetIamPolicy(project string, resource string) *BackendBucketsGetIamPolicyCall {
54929	c := &BackendBucketsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54930	c.project = project
54931	c.resource = resource
54932	return c
54933}
54934
54935// OptionsRequestedPolicyVersion sets the optional parameter
54936// "optionsRequestedPolicyVersion": Requested IAM Policy version.
54937func (c *BackendBucketsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *BackendBucketsGetIamPolicyCall {
54938	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
54939	return c
54940}
54941
54942// Fields allows partial responses to be retrieved. See
54943// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54944// for more information.
54945func (c *BackendBucketsGetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsGetIamPolicyCall {
54946	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54947	return c
54948}
54949
54950// IfNoneMatch sets the optional parameter which makes the operation
54951// fail if the object's ETag matches the given value. This is useful for
54952// getting updates only after the object has changed since the last
54953// request. Use googleapi.IsNotModified to check whether the response
54954// error from Do is the result of In-None-Match.
54955func (c *BackendBucketsGetIamPolicyCall) IfNoneMatch(entityTag string) *BackendBucketsGetIamPolicyCall {
54956	c.ifNoneMatch_ = entityTag
54957	return c
54958}
54959
54960// Context sets the context to be used in this call's Do method. Any
54961// pending HTTP request will be aborted if the provided context is
54962// canceled.
54963func (c *BackendBucketsGetIamPolicyCall) Context(ctx context.Context) *BackendBucketsGetIamPolicyCall {
54964	c.ctx_ = ctx
54965	return c
54966}
54967
54968// Header returns an http.Header that can be modified by the caller to
54969// add HTTP headers to the request.
54970func (c *BackendBucketsGetIamPolicyCall) Header() http.Header {
54971	if c.header_ == nil {
54972		c.header_ = make(http.Header)
54973	}
54974	return c.header_
54975}
54976
54977func (c *BackendBucketsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
54978	reqHeaders := make(http.Header)
54979	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54980	for k, v := range c.header_ {
54981		reqHeaders[k] = v
54982	}
54983	reqHeaders.Set("User-Agent", c.s.userAgent())
54984	if c.ifNoneMatch_ != "" {
54985		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54986	}
54987	var body io.Reader = nil
54988	c.urlParams_.Set("alt", alt)
54989	c.urlParams_.Set("prettyPrint", "false")
54990	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{resource}/getIamPolicy")
54991	urls += "?" + c.urlParams_.Encode()
54992	req, err := http.NewRequest("GET", urls, body)
54993	if err != nil {
54994		return nil, err
54995	}
54996	req.Header = reqHeaders
54997	googleapi.Expand(req.URL, map[string]string{
54998		"project":  c.project,
54999		"resource": c.resource,
55000	})
55001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55002}
55003
55004// Do executes the "compute.backendBuckets.getIamPolicy" call.
55005// Exactly one of *Policy or error will be non-nil. Any non-2xx status
55006// code is an error. Response headers are in either
55007// *Policy.ServerResponse.Header or (if a response was returned at all)
55008// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55009// check whether the returned error was because http.StatusNotModified
55010// was returned.
55011func (c *BackendBucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
55012	gensupport.SetOptions(c.urlParams_, opts...)
55013	res, err := c.doRequest("json")
55014	if res != nil && res.StatusCode == http.StatusNotModified {
55015		if res.Body != nil {
55016			res.Body.Close()
55017		}
55018		return nil, &googleapi.Error{
55019			Code:   res.StatusCode,
55020			Header: res.Header,
55021		}
55022	}
55023	if err != nil {
55024		return nil, err
55025	}
55026	defer googleapi.CloseBody(res)
55027	if err := googleapi.CheckResponse(res); err != nil {
55028		return nil, err
55029	}
55030	ret := &Policy{
55031		ServerResponse: googleapi.ServerResponse{
55032			Header:         res.Header,
55033			HTTPStatusCode: res.StatusCode,
55034		},
55035	}
55036	target := &ret
55037	if err := gensupport.DecodeResponse(target, res); err != nil {
55038		return nil, err
55039	}
55040	return ret, nil
55041	// {
55042	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
55043	//   "httpMethod": "GET",
55044	//   "id": "compute.backendBuckets.getIamPolicy",
55045	//   "parameterOrder": [
55046	//     "project",
55047	//     "resource"
55048	//   ],
55049	//   "parameters": {
55050	//     "optionsRequestedPolicyVersion": {
55051	//       "description": "Requested IAM Policy version.",
55052	//       "format": "int32",
55053	//       "location": "query",
55054	//       "type": "integer"
55055	//     },
55056	//     "project": {
55057	//       "description": "Project ID for this request.",
55058	//       "location": "path",
55059	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55060	//       "required": true,
55061	//       "type": "string"
55062	//     },
55063	//     "resource": {
55064	//       "description": "Name or id of the resource for this request.",
55065	//       "location": "path",
55066	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55067	//       "required": true,
55068	//       "type": "string"
55069	//     }
55070	//   },
55071	//   "path": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy",
55072	//   "response": {
55073	//     "$ref": "Policy"
55074	//   },
55075	//   "scopes": [
55076	//     "https://www.googleapis.com/auth/cloud-platform",
55077	//     "https://www.googleapis.com/auth/compute",
55078	//     "https://www.googleapis.com/auth/compute.readonly"
55079	//   ]
55080	// }
55081
55082}
55083
55084// method id "compute.backendBuckets.insert":
55085
55086type BackendBucketsInsertCall struct {
55087	s             *Service
55088	project       string
55089	backendbucket *BackendBucket
55090	urlParams_    gensupport.URLParams
55091	ctx_          context.Context
55092	header_       http.Header
55093}
55094
55095// Insert: Creates a BackendBucket resource in the specified project
55096// using the data included in the request.
55097//
55098// - project: Project ID for this request.
55099func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
55100	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55101	c.project = project
55102	c.backendbucket = backendbucket
55103	return c
55104}
55105
55106// RequestId sets the optional parameter "requestId": An optional
55107// request ID to identify requests. Specify a unique request ID so that
55108// if you must retry your request, the server will know to ignore the
55109// request if it has already been completed.
55110//
55111// For example, consider a situation where you make an initial request
55112// and the request times out. If you make the request again with the
55113// same request ID, the server can check if original operation with the
55114// same request ID was received, and if so, will ignore the second
55115// request. This prevents clients from accidentally creating duplicate
55116// commitments.
55117//
55118// The request ID must be a valid UUID with the exception that zero UUID
55119// is not supported (00000000-0000-0000-0000-000000000000).
55120func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
55121	c.urlParams_.Set("requestId", requestId)
55122	return c
55123}
55124
55125// Fields allows partial responses to be retrieved. See
55126// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55127// for more information.
55128func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
55129	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55130	return c
55131}
55132
55133// Context sets the context to be used in this call's Do method. Any
55134// pending HTTP request will be aborted if the provided context is
55135// canceled.
55136func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
55137	c.ctx_ = ctx
55138	return c
55139}
55140
55141// Header returns an http.Header that can be modified by the caller to
55142// add HTTP headers to the request.
55143func (c *BackendBucketsInsertCall) Header() http.Header {
55144	if c.header_ == nil {
55145		c.header_ = make(http.Header)
55146	}
55147	return c.header_
55148}
55149
55150func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
55151	reqHeaders := make(http.Header)
55152	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55153	for k, v := range c.header_ {
55154		reqHeaders[k] = v
55155	}
55156	reqHeaders.Set("User-Agent", c.s.userAgent())
55157	var body io.Reader = nil
55158	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55159	if err != nil {
55160		return nil, err
55161	}
55162	reqHeaders.Set("Content-Type", "application/json")
55163	c.urlParams_.Set("alt", alt)
55164	c.urlParams_.Set("prettyPrint", "false")
55165	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
55166	urls += "?" + c.urlParams_.Encode()
55167	req, err := http.NewRequest("POST", urls, body)
55168	if err != nil {
55169		return nil, err
55170	}
55171	req.Header = reqHeaders
55172	googleapi.Expand(req.URL, map[string]string{
55173		"project": c.project,
55174	})
55175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55176}
55177
55178// Do executes the "compute.backendBuckets.insert" call.
55179// Exactly one of *Operation or error will be non-nil. Any non-2xx
55180// status code is an error. Response headers are in either
55181// *Operation.ServerResponse.Header or (if a response was returned at
55182// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55183// to check whether the returned error was because
55184// http.StatusNotModified was returned.
55185func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55186	gensupport.SetOptions(c.urlParams_, opts...)
55187	res, err := c.doRequest("json")
55188	if res != nil && res.StatusCode == http.StatusNotModified {
55189		if res.Body != nil {
55190			res.Body.Close()
55191		}
55192		return nil, &googleapi.Error{
55193			Code:   res.StatusCode,
55194			Header: res.Header,
55195		}
55196	}
55197	if err != nil {
55198		return nil, err
55199	}
55200	defer googleapi.CloseBody(res)
55201	if err := googleapi.CheckResponse(res); err != nil {
55202		return nil, err
55203	}
55204	ret := &Operation{
55205		ServerResponse: googleapi.ServerResponse{
55206			Header:         res.Header,
55207			HTTPStatusCode: res.StatusCode,
55208		},
55209	}
55210	target := &ret
55211	if err := gensupport.DecodeResponse(target, res); err != nil {
55212		return nil, err
55213	}
55214	return ret, nil
55215	// {
55216	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
55217	//   "httpMethod": "POST",
55218	//   "id": "compute.backendBuckets.insert",
55219	//   "parameterOrder": [
55220	//     "project"
55221	//   ],
55222	//   "parameters": {
55223	//     "project": {
55224	//       "description": "Project ID for this request.",
55225	//       "location": "path",
55226	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55227	//       "required": true,
55228	//       "type": "string"
55229	//     },
55230	//     "requestId": {
55231	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55232	//       "location": "query",
55233	//       "type": "string"
55234	//     }
55235	//   },
55236	//   "path": "projects/{project}/global/backendBuckets",
55237	//   "request": {
55238	//     "$ref": "BackendBucket"
55239	//   },
55240	//   "response": {
55241	//     "$ref": "Operation"
55242	//   },
55243	//   "scopes": [
55244	//     "https://www.googleapis.com/auth/cloud-platform",
55245	//     "https://www.googleapis.com/auth/compute"
55246	//   ]
55247	// }
55248
55249}
55250
55251// method id "compute.backendBuckets.list":
55252
55253type BackendBucketsListCall struct {
55254	s            *Service
55255	project      string
55256	urlParams_   gensupport.URLParams
55257	ifNoneMatch_ string
55258	ctx_         context.Context
55259	header_      http.Header
55260}
55261
55262// List: Retrieves the list of BackendBucket resources available to the
55263// specified project.
55264//
55265// - project: Project ID for this request.
55266func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
55267	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55268	c.project = project
55269	return c
55270}
55271
55272// Filter sets the optional parameter "filter": A filter expression that
55273// filters resources listed in the response. The expression must specify
55274// the field name, a comparison operator, and the value that you want to
55275// use for filtering. The value must be a string, a number, or a
55276// boolean. The comparison operator must be either `=`, `!=`, `>`, or
55277// `<`.
55278//
55279// For example, if you are filtering Compute Engine instances, you can
55280// exclude instances named `example-instance` by specifying `name !=
55281// example-instance`.
55282//
55283// You can also filter nested fields. For example, you could specify
55284// `scheduling.automaticRestart = false` to include instances only if
55285// they are not scheduled for automatic restarts. You can use filtering
55286// on nested fields to filter based on resource labels.
55287//
55288// To filter on multiple expressions, provide each separate expression
55289// within parentheses. For example: ``` (scheduling.automaticRestart =
55290// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
55291// is an `AND` expression. However, you can include `AND` and `OR`
55292// expressions explicitly. For example: ``` (cpuPlatform = "Intel
55293// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
55294// (scheduling.automaticRestart = true) ```
55295func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
55296	c.urlParams_.Set("filter", filter)
55297	return c
55298}
55299
55300// MaxResults sets the optional parameter "maxResults": The maximum
55301// number of results per page that should be returned. If the number of
55302// available results is larger than `maxResults`, Compute Engine returns
55303// a `nextPageToken` that can be used to get the next page of results in
55304// subsequent list requests. Acceptable values are `0` to `500`,
55305// inclusive. (Default: `500`)
55306func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
55307	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55308	return c
55309}
55310
55311// OrderBy sets the optional parameter "orderBy": Sorts list results by
55312// a certain order. By default, results are returned in alphanumerical
55313// order based on the resource name.
55314//
55315// You can also sort results in descending order based on the creation
55316// timestamp using `orderBy="creationTimestamp desc". This sorts
55317// results based on the `creationTimestamp` field in reverse
55318// chronological order (newest result first). Use this to sort resources
55319// like operations so that the newest operation is returned
55320// first.
55321//
55322// Currently, only sorting by `name` or `creationTimestamp desc` is
55323// supported.
55324func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
55325	c.urlParams_.Set("orderBy", orderBy)
55326	return c
55327}
55328
55329// PageToken sets the optional parameter "pageToken": Specifies a page
55330// token to use. Set `pageToken` to the `nextPageToken` returned by a
55331// previous list request to get the next page of results.
55332func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
55333	c.urlParams_.Set("pageToken", pageToken)
55334	return c
55335}
55336
55337// ReturnPartialSuccess sets the optional parameter
55338// "returnPartialSuccess": Opt-in for partial success behavior which
55339// provides partial results in case of failure. The default value is
55340// false.
55341func (c *BackendBucketsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsListCall {
55342	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
55343	return c
55344}
55345
55346// Fields allows partial responses to be retrieved. See
55347// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55348// for more information.
55349func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
55350	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55351	return c
55352}
55353
55354// IfNoneMatch sets the optional parameter which makes the operation
55355// fail if the object's ETag matches the given value. This is useful for
55356// getting updates only after the object has changed since the last
55357// request. Use googleapi.IsNotModified to check whether the response
55358// error from Do is the result of In-None-Match.
55359func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
55360	c.ifNoneMatch_ = entityTag
55361	return c
55362}
55363
55364// Context sets the context to be used in this call's Do method. Any
55365// pending HTTP request will be aborted if the provided context is
55366// canceled.
55367func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
55368	c.ctx_ = ctx
55369	return c
55370}
55371
55372// Header returns an http.Header that can be modified by the caller to
55373// add HTTP headers to the request.
55374func (c *BackendBucketsListCall) Header() http.Header {
55375	if c.header_ == nil {
55376		c.header_ = make(http.Header)
55377	}
55378	return c.header_
55379}
55380
55381func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
55382	reqHeaders := make(http.Header)
55383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55384	for k, v := range c.header_ {
55385		reqHeaders[k] = v
55386	}
55387	reqHeaders.Set("User-Agent", c.s.userAgent())
55388	if c.ifNoneMatch_ != "" {
55389		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55390	}
55391	var body io.Reader = nil
55392	c.urlParams_.Set("alt", alt)
55393	c.urlParams_.Set("prettyPrint", "false")
55394	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
55395	urls += "?" + c.urlParams_.Encode()
55396	req, err := http.NewRequest("GET", urls, body)
55397	if err != nil {
55398		return nil, err
55399	}
55400	req.Header = reqHeaders
55401	googleapi.Expand(req.URL, map[string]string{
55402		"project": c.project,
55403	})
55404	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55405}
55406
55407// Do executes the "compute.backendBuckets.list" call.
55408// Exactly one of *BackendBucketList or error will be non-nil. Any
55409// non-2xx status code is an error. Response headers are in either
55410// *BackendBucketList.ServerResponse.Header or (if a response was
55411// returned at all) in error.(*googleapi.Error).Header. Use
55412// googleapi.IsNotModified to check whether the returned error was
55413// because http.StatusNotModified was returned.
55414func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
55415	gensupport.SetOptions(c.urlParams_, opts...)
55416	res, err := c.doRequest("json")
55417	if res != nil && res.StatusCode == http.StatusNotModified {
55418		if res.Body != nil {
55419			res.Body.Close()
55420		}
55421		return nil, &googleapi.Error{
55422			Code:   res.StatusCode,
55423			Header: res.Header,
55424		}
55425	}
55426	if err != nil {
55427		return nil, err
55428	}
55429	defer googleapi.CloseBody(res)
55430	if err := googleapi.CheckResponse(res); err != nil {
55431		return nil, err
55432	}
55433	ret := &BackendBucketList{
55434		ServerResponse: googleapi.ServerResponse{
55435			Header:         res.Header,
55436			HTTPStatusCode: res.StatusCode,
55437		},
55438	}
55439	target := &ret
55440	if err := gensupport.DecodeResponse(target, res); err != nil {
55441		return nil, err
55442	}
55443	return ret, nil
55444	// {
55445	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
55446	//   "httpMethod": "GET",
55447	//   "id": "compute.backendBuckets.list",
55448	//   "parameterOrder": [
55449	//     "project"
55450	//   ],
55451	//   "parameters": {
55452	//     "filter": {
55453	//       "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) ```",
55454	//       "location": "query",
55455	//       "type": "string"
55456	//     },
55457	//     "maxResults": {
55458	//       "default": "500",
55459	//       "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`)",
55460	//       "format": "uint32",
55461	//       "location": "query",
55462	//       "minimum": "0",
55463	//       "type": "integer"
55464	//     },
55465	//     "orderBy": {
55466	//       "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.",
55467	//       "location": "query",
55468	//       "type": "string"
55469	//     },
55470	//     "pageToken": {
55471	//       "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.",
55472	//       "location": "query",
55473	//       "type": "string"
55474	//     },
55475	//     "project": {
55476	//       "description": "Project ID for this request.",
55477	//       "location": "path",
55478	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55479	//       "required": true,
55480	//       "type": "string"
55481	//     },
55482	//     "returnPartialSuccess": {
55483	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
55484	//       "location": "query",
55485	//       "type": "boolean"
55486	//     }
55487	//   },
55488	//   "path": "projects/{project}/global/backendBuckets",
55489	//   "response": {
55490	//     "$ref": "BackendBucketList"
55491	//   },
55492	//   "scopes": [
55493	//     "https://www.googleapis.com/auth/cloud-platform",
55494	//     "https://www.googleapis.com/auth/compute",
55495	//     "https://www.googleapis.com/auth/compute.readonly"
55496	//   ]
55497	// }
55498
55499}
55500
55501// Pages invokes f for each page of results.
55502// A non-nil error returned from f will halt the iteration.
55503// The provided context supersedes any context provided to the Context method.
55504func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
55505	c.ctx_ = ctx
55506	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55507	for {
55508		x, err := c.Do()
55509		if err != nil {
55510			return err
55511		}
55512		if err := f(x); err != nil {
55513			return err
55514		}
55515		if x.NextPageToken == "" {
55516			return nil
55517		}
55518		c.PageToken(x.NextPageToken)
55519	}
55520}
55521
55522// method id "compute.backendBuckets.patch":
55523
55524type BackendBucketsPatchCall struct {
55525	s             *Service
55526	project       string
55527	backendBucket string
55528	backendbucket *BackendBucket
55529	urlParams_    gensupport.URLParams
55530	ctx_          context.Context
55531	header_       http.Header
55532}
55533
55534// Patch: Updates the specified BackendBucket resource with the data
55535// included in the request. This method supports PATCH semantics and
55536// uses the JSON merge patch format and processing rules.
55537//
55538// - backendBucket: Name of the BackendBucket resource to patch.
55539// - project: Project ID for this request.
55540func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
55541	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55542	c.project = project
55543	c.backendBucket = backendBucket
55544	c.backendbucket = backendbucket
55545	return c
55546}
55547
55548// RequestId sets the optional parameter "requestId": An optional
55549// request ID to identify requests. Specify a unique request ID so that
55550// if you must retry your request, the server will know to ignore the
55551// request if it has already been completed.
55552//
55553// For example, consider a situation where you make an initial request
55554// and the request times out. If you make the request again with the
55555// same request ID, the server can check if original operation with the
55556// same request ID was received, and if so, will ignore the second
55557// request. This prevents clients from accidentally creating duplicate
55558// commitments.
55559//
55560// The request ID must be a valid UUID with the exception that zero UUID
55561// is not supported (00000000-0000-0000-0000-000000000000).
55562func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
55563	c.urlParams_.Set("requestId", requestId)
55564	return c
55565}
55566
55567// Fields allows partial responses to be retrieved. See
55568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55569// for more information.
55570func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
55571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55572	return c
55573}
55574
55575// Context sets the context to be used in this call's Do method. Any
55576// pending HTTP request will be aborted if the provided context is
55577// canceled.
55578func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
55579	c.ctx_ = ctx
55580	return c
55581}
55582
55583// Header returns an http.Header that can be modified by the caller to
55584// add HTTP headers to the request.
55585func (c *BackendBucketsPatchCall) Header() http.Header {
55586	if c.header_ == nil {
55587		c.header_ = make(http.Header)
55588	}
55589	return c.header_
55590}
55591
55592func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
55593	reqHeaders := make(http.Header)
55594	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55595	for k, v := range c.header_ {
55596		reqHeaders[k] = v
55597	}
55598	reqHeaders.Set("User-Agent", c.s.userAgent())
55599	var body io.Reader = nil
55600	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55601	if err != nil {
55602		return nil, err
55603	}
55604	reqHeaders.Set("Content-Type", "application/json")
55605	c.urlParams_.Set("alt", alt)
55606	c.urlParams_.Set("prettyPrint", "false")
55607	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
55608	urls += "?" + c.urlParams_.Encode()
55609	req, err := http.NewRequest("PATCH", urls, body)
55610	if err != nil {
55611		return nil, err
55612	}
55613	req.Header = reqHeaders
55614	googleapi.Expand(req.URL, map[string]string{
55615		"project":       c.project,
55616		"backendBucket": c.backendBucket,
55617	})
55618	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55619}
55620
55621// Do executes the "compute.backendBuckets.patch" call.
55622// Exactly one of *Operation or error will be non-nil. Any non-2xx
55623// status code is an error. Response headers are in either
55624// *Operation.ServerResponse.Header or (if a response was returned at
55625// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55626// to check whether the returned error was because
55627// http.StatusNotModified was returned.
55628func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55629	gensupport.SetOptions(c.urlParams_, opts...)
55630	res, err := c.doRequest("json")
55631	if res != nil && res.StatusCode == http.StatusNotModified {
55632		if res.Body != nil {
55633			res.Body.Close()
55634		}
55635		return nil, &googleapi.Error{
55636			Code:   res.StatusCode,
55637			Header: res.Header,
55638		}
55639	}
55640	if err != nil {
55641		return nil, err
55642	}
55643	defer googleapi.CloseBody(res)
55644	if err := googleapi.CheckResponse(res); err != nil {
55645		return nil, err
55646	}
55647	ret := &Operation{
55648		ServerResponse: googleapi.ServerResponse{
55649			Header:         res.Header,
55650			HTTPStatusCode: res.StatusCode,
55651		},
55652	}
55653	target := &ret
55654	if err := gensupport.DecodeResponse(target, res); err != nil {
55655		return nil, err
55656	}
55657	return ret, nil
55658	// {
55659	//   "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.",
55660	//   "httpMethod": "PATCH",
55661	//   "id": "compute.backendBuckets.patch",
55662	//   "parameterOrder": [
55663	//     "project",
55664	//     "backendBucket"
55665	//   ],
55666	//   "parameters": {
55667	//     "backendBucket": {
55668	//       "description": "Name of the BackendBucket resource to patch.",
55669	//       "location": "path",
55670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55671	//       "required": true,
55672	//       "type": "string"
55673	//     },
55674	//     "project": {
55675	//       "description": "Project ID for this request.",
55676	//       "location": "path",
55677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55678	//       "required": true,
55679	//       "type": "string"
55680	//     },
55681	//     "requestId": {
55682	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55683	//       "location": "query",
55684	//       "type": "string"
55685	//     }
55686	//   },
55687	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
55688	//   "request": {
55689	//     "$ref": "BackendBucket"
55690	//   },
55691	//   "response": {
55692	//     "$ref": "Operation"
55693	//   },
55694	//   "scopes": [
55695	//     "https://www.googleapis.com/auth/cloud-platform",
55696	//     "https://www.googleapis.com/auth/compute"
55697	//   ]
55698	// }
55699
55700}
55701
55702// method id "compute.backendBuckets.setEdgeSecurityPolicy":
55703
55704type BackendBucketsSetEdgeSecurityPolicyCall struct {
55705	s                       *Service
55706	project                 string
55707	backendBucket           string
55708	securitypolicyreference *SecurityPolicyReference
55709	urlParams_              gensupport.URLParams
55710	ctx_                    context.Context
55711	header_                 http.Header
55712}
55713
55714// SetEdgeSecurityPolicy: Sets the edge security policy for the
55715// specified backend bucket.
55716//
55717// - backendBucket: Name of the BackendService resource to which the
55718//   security policy should be set. The name should conform to RFC1035.
55719// - project: Project ID for this request.
55720func (r *BackendBucketsService) SetEdgeSecurityPolicy(project string, backendBucket string, securitypolicyreference *SecurityPolicyReference) *BackendBucketsSetEdgeSecurityPolicyCall {
55721	c := &BackendBucketsSetEdgeSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55722	c.project = project
55723	c.backendBucket = backendBucket
55724	c.securitypolicyreference = securitypolicyreference
55725	return c
55726}
55727
55728// RequestId sets the optional parameter "requestId": An optional
55729// request ID to identify requests. Specify a unique request ID so that
55730// if you must retry your request, the server will know to ignore the
55731// request if it has already been completed.
55732//
55733// For example, consider a situation where you make an initial request
55734// and the request times out. If you make the request again with the
55735// same request ID, the server can check if original operation with the
55736// same request ID was received, and if so, will ignore the second
55737// request. This prevents clients from accidentally creating duplicate
55738// commitments.
55739//
55740// The request ID must be a valid UUID with the exception that zero UUID
55741// is not supported (00000000-0000-0000-0000-000000000000).
55742func (c *BackendBucketsSetEdgeSecurityPolicyCall) RequestId(requestId string) *BackendBucketsSetEdgeSecurityPolicyCall {
55743	c.urlParams_.Set("requestId", requestId)
55744	return c
55745}
55746
55747// Fields allows partial responses to be retrieved. See
55748// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55749// for more information.
55750func (c *BackendBucketsSetEdgeSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsSetEdgeSecurityPolicyCall {
55751	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55752	return c
55753}
55754
55755// Context sets the context to be used in this call's Do method. Any
55756// pending HTTP request will be aborted if the provided context is
55757// canceled.
55758func (c *BackendBucketsSetEdgeSecurityPolicyCall) Context(ctx context.Context) *BackendBucketsSetEdgeSecurityPolicyCall {
55759	c.ctx_ = ctx
55760	return c
55761}
55762
55763// Header returns an http.Header that can be modified by the caller to
55764// add HTTP headers to the request.
55765func (c *BackendBucketsSetEdgeSecurityPolicyCall) Header() http.Header {
55766	if c.header_ == nil {
55767		c.header_ = make(http.Header)
55768	}
55769	return c.header_
55770}
55771
55772func (c *BackendBucketsSetEdgeSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
55773	reqHeaders := make(http.Header)
55774	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55775	for k, v := range c.header_ {
55776		reqHeaders[k] = v
55777	}
55778	reqHeaders.Set("User-Agent", c.s.userAgent())
55779	var body io.Reader = nil
55780	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
55781	if err != nil {
55782		return nil, err
55783	}
55784	reqHeaders.Set("Content-Type", "application/json")
55785	c.urlParams_.Set("alt", alt)
55786	c.urlParams_.Set("prettyPrint", "false")
55787	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy")
55788	urls += "?" + c.urlParams_.Encode()
55789	req, err := http.NewRequest("POST", urls, body)
55790	if err != nil {
55791		return nil, err
55792	}
55793	req.Header = reqHeaders
55794	googleapi.Expand(req.URL, map[string]string{
55795		"project":       c.project,
55796		"backendBucket": c.backendBucket,
55797	})
55798	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55799}
55800
55801// Do executes the "compute.backendBuckets.setEdgeSecurityPolicy" call.
55802// Exactly one of *Operation or error will be non-nil. Any non-2xx
55803// status code is an error. Response headers are in either
55804// *Operation.ServerResponse.Header or (if a response was returned at
55805// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55806// to check whether the returned error was because
55807// http.StatusNotModified was returned.
55808func (c *BackendBucketsSetEdgeSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55809	gensupport.SetOptions(c.urlParams_, opts...)
55810	res, err := c.doRequest("json")
55811	if res != nil && res.StatusCode == http.StatusNotModified {
55812		if res.Body != nil {
55813			res.Body.Close()
55814		}
55815		return nil, &googleapi.Error{
55816			Code:   res.StatusCode,
55817			Header: res.Header,
55818		}
55819	}
55820	if err != nil {
55821		return nil, err
55822	}
55823	defer googleapi.CloseBody(res)
55824	if err := googleapi.CheckResponse(res); err != nil {
55825		return nil, err
55826	}
55827	ret := &Operation{
55828		ServerResponse: googleapi.ServerResponse{
55829			Header:         res.Header,
55830			HTTPStatusCode: res.StatusCode,
55831		},
55832	}
55833	target := &ret
55834	if err := gensupport.DecodeResponse(target, res); err != nil {
55835		return nil, err
55836	}
55837	return ret, nil
55838	// {
55839	//   "description": "Sets the edge security policy for the specified backend bucket.",
55840	//   "httpMethod": "POST",
55841	//   "id": "compute.backendBuckets.setEdgeSecurityPolicy",
55842	//   "parameterOrder": [
55843	//     "project",
55844	//     "backendBucket"
55845	//   ],
55846	//   "parameters": {
55847	//     "backendBucket": {
55848	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
55849	//       "location": "path",
55850	//       "required": true,
55851	//       "type": "string"
55852	//     },
55853	//     "project": {
55854	//       "description": "Project ID for this request.",
55855	//       "location": "path",
55856	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55857	//       "required": true,
55858	//       "type": "string"
55859	//     },
55860	//     "requestId": {
55861	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55862	//       "location": "query",
55863	//       "type": "string"
55864	//     }
55865	//   },
55866	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy",
55867	//   "request": {
55868	//     "$ref": "SecurityPolicyReference"
55869	//   },
55870	//   "response": {
55871	//     "$ref": "Operation"
55872	//   },
55873	//   "scopes": [
55874	//     "https://www.googleapis.com/auth/cloud-platform",
55875	//     "https://www.googleapis.com/auth/compute"
55876	//   ]
55877	// }
55878
55879}
55880
55881// method id "compute.backendBuckets.setIamPolicy":
55882
55883type BackendBucketsSetIamPolicyCall struct {
55884	s                      *Service
55885	project                string
55886	resource               string
55887	globalsetpolicyrequest *GlobalSetPolicyRequest
55888	urlParams_             gensupport.URLParams
55889	ctx_                   context.Context
55890	header_                http.Header
55891}
55892
55893// SetIamPolicy: Sets the access control policy on the specified
55894// resource. Replaces any existing policy.
55895//
55896// - project: Project ID for this request.
55897// - resource: Name or id of the resource for this request.
55898func (r *BackendBucketsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *BackendBucketsSetIamPolicyCall {
55899	c := &BackendBucketsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55900	c.project = project
55901	c.resource = resource
55902	c.globalsetpolicyrequest = globalsetpolicyrequest
55903	return c
55904}
55905
55906// Fields allows partial responses to be retrieved. See
55907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55908// for more information.
55909func (c *BackendBucketsSetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsSetIamPolicyCall {
55910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55911	return c
55912}
55913
55914// Context sets the context to be used in this call's Do method. Any
55915// pending HTTP request will be aborted if the provided context is
55916// canceled.
55917func (c *BackendBucketsSetIamPolicyCall) Context(ctx context.Context) *BackendBucketsSetIamPolicyCall {
55918	c.ctx_ = ctx
55919	return c
55920}
55921
55922// Header returns an http.Header that can be modified by the caller to
55923// add HTTP headers to the request.
55924func (c *BackendBucketsSetIamPolicyCall) Header() http.Header {
55925	if c.header_ == nil {
55926		c.header_ = make(http.Header)
55927	}
55928	return c.header_
55929}
55930
55931func (c *BackendBucketsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
55932	reqHeaders := make(http.Header)
55933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55934	for k, v := range c.header_ {
55935		reqHeaders[k] = v
55936	}
55937	reqHeaders.Set("User-Agent", c.s.userAgent())
55938	var body io.Reader = nil
55939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
55940	if err != nil {
55941		return nil, err
55942	}
55943	reqHeaders.Set("Content-Type", "application/json")
55944	c.urlParams_.Set("alt", alt)
55945	c.urlParams_.Set("prettyPrint", "false")
55946	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{resource}/setIamPolicy")
55947	urls += "?" + c.urlParams_.Encode()
55948	req, err := http.NewRequest("POST", urls, body)
55949	if err != nil {
55950		return nil, err
55951	}
55952	req.Header = reqHeaders
55953	googleapi.Expand(req.URL, map[string]string{
55954		"project":  c.project,
55955		"resource": c.resource,
55956	})
55957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55958}
55959
55960// Do executes the "compute.backendBuckets.setIamPolicy" call.
55961// Exactly one of *Policy or error will be non-nil. Any non-2xx status
55962// code is an error. Response headers are in either
55963// *Policy.ServerResponse.Header or (if a response was returned at all)
55964// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55965// check whether the returned error was because http.StatusNotModified
55966// was returned.
55967func (c *BackendBucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
55968	gensupport.SetOptions(c.urlParams_, opts...)
55969	res, err := c.doRequest("json")
55970	if res != nil && res.StatusCode == http.StatusNotModified {
55971		if res.Body != nil {
55972			res.Body.Close()
55973		}
55974		return nil, &googleapi.Error{
55975			Code:   res.StatusCode,
55976			Header: res.Header,
55977		}
55978	}
55979	if err != nil {
55980		return nil, err
55981	}
55982	defer googleapi.CloseBody(res)
55983	if err := googleapi.CheckResponse(res); err != nil {
55984		return nil, err
55985	}
55986	ret := &Policy{
55987		ServerResponse: googleapi.ServerResponse{
55988			Header:         res.Header,
55989			HTTPStatusCode: res.StatusCode,
55990		},
55991	}
55992	target := &ret
55993	if err := gensupport.DecodeResponse(target, res); err != nil {
55994		return nil, err
55995	}
55996	return ret, nil
55997	// {
55998	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
55999	//   "httpMethod": "POST",
56000	//   "id": "compute.backendBuckets.setIamPolicy",
56001	//   "parameterOrder": [
56002	//     "project",
56003	//     "resource"
56004	//   ],
56005	//   "parameters": {
56006	//     "project": {
56007	//       "description": "Project ID for this request.",
56008	//       "location": "path",
56009	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56010	//       "required": true,
56011	//       "type": "string"
56012	//     },
56013	//     "resource": {
56014	//       "description": "Name or id of the resource for this request.",
56015	//       "location": "path",
56016	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56017	//       "required": true,
56018	//       "type": "string"
56019	//     }
56020	//   },
56021	//   "path": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy",
56022	//   "request": {
56023	//     "$ref": "GlobalSetPolicyRequest"
56024	//   },
56025	//   "response": {
56026	//     "$ref": "Policy"
56027	//   },
56028	//   "scopes": [
56029	//     "https://www.googleapis.com/auth/cloud-platform",
56030	//     "https://www.googleapis.com/auth/compute"
56031	//   ]
56032	// }
56033
56034}
56035
56036// method id "compute.backendBuckets.testIamPermissions":
56037
56038type BackendBucketsTestIamPermissionsCall struct {
56039	s                      *Service
56040	project                string
56041	resource               string
56042	testpermissionsrequest *TestPermissionsRequest
56043	urlParams_             gensupport.URLParams
56044	ctx_                   context.Context
56045	header_                http.Header
56046}
56047
56048// TestIamPermissions: Returns permissions that a caller has on the
56049// specified resource.
56050//
56051// - project: Project ID for this request.
56052// - resource: Name or id of the resource for this request.
56053func (r *BackendBucketsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendBucketsTestIamPermissionsCall {
56054	c := &BackendBucketsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56055	c.project = project
56056	c.resource = resource
56057	c.testpermissionsrequest = testpermissionsrequest
56058	return c
56059}
56060
56061// Fields allows partial responses to be retrieved. See
56062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56063// for more information.
56064func (c *BackendBucketsTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendBucketsTestIamPermissionsCall {
56065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56066	return c
56067}
56068
56069// Context sets the context to be used in this call's Do method. Any
56070// pending HTTP request will be aborted if the provided context is
56071// canceled.
56072func (c *BackendBucketsTestIamPermissionsCall) Context(ctx context.Context) *BackendBucketsTestIamPermissionsCall {
56073	c.ctx_ = ctx
56074	return c
56075}
56076
56077// Header returns an http.Header that can be modified by the caller to
56078// add HTTP headers to the request.
56079func (c *BackendBucketsTestIamPermissionsCall) Header() http.Header {
56080	if c.header_ == nil {
56081		c.header_ = make(http.Header)
56082	}
56083	return c.header_
56084}
56085
56086func (c *BackendBucketsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
56087	reqHeaders := make(http.Header)
56088	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56089	for k, v := range c.header_ {
56090		reqHeaders[k] = v
56091	}
56092	reqHeaders.Set("User-Agent", c.s.userAgent())
56093	var body io.Reader = nil
56094	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
56095	if err != nil {
56096		return nil, err
56097	}
56098	reqHeaders.Set("Content-Type", "application/json")
56099	c.urlParams_.Set("alt", alt)
56100	c.urlParams_.Set("prettyPrint", "false")
56101	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{resource}/testIamPermissions")
56102	urls += "?" + c.urlParams_.Encode()
56103	req, err := http.NewRequest("POST", urls, body)
56104	if err != nil {
56105		return nil, err
56106	}
56107	req.Header = reqHeaders
56108	googleapi.Expand(req.URL, map[string]string{
56109		"project":  c.project,
56110		"resource": c.resource,
56111	})
56112	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56113}
56114
56115// Do executes the "compute.backendBuckets.testIamPermissions" call.
56116// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
56117// non-2xx status code is an error. Response headers are in either
56118// *TestPermissionsResponse.ServerResponse.Header or (if a response was
56119// returned at all) in error.(*googleapi.Error).Header. Use
56120// googleapi.IsNotModified to check whether the returned error was
56121// because http.StatusNotModified was returned.
56122func (c *BackendBucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
56123	gensupport.SetOptions(c.urlParams_, opts...)
56124	res, err := c.doRequest("json")
56125	if res != nil && res.StatusCode == http.StatusNotModified {
56126		if res.Body != nil {
56127			res.Body.Close()
56128		}
56129		return nil, &googleapi.Error{
56130			Code:   res.StatusCode,
56131			Header: res.Header,
56132		}
56133	}
56134	if err != nil {
56135		return nil, err
56136	}
56137	defer googleapi.CloseBody(res)
56138	if err := googleapi.CheckResponse(res); err != nil {
56139		return nil, err
56140	}
56141	ret := &TestPermissionsResponse{
56142		ServerResponse: googleapi.ServerResponse{
56143			Header:         res.Header,
56144			HTTPStatusCode: res.StatusCode,
56145		},
56146	}
56147	target := &ret
56148	if err := gensupport.DecodeResponse(target, res); err != nil {
56149		return nil, err
56150	}
56151	return ret, nil
56152	// {
56153	//   "description": "Returns permissions that a caller has on the specified resource.",
56154	//   "httpMethod": "POST",
56155	//   "id": "compute.backendBuckets.testIamPermissions",
56156	//   "parameterOrder": [
56157	//     "project",
56158	//     "resource"
56159	//   ],
56160	//   "parameters": {
56161	//     "project": {
56162	//       "description": "Project ID for this request.",
56163	//       "location": "path",
56164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56165	//       "required": true,
56166	//       "type": "string"
56167	//     },
56168	//     "resource": {
56169	//       "description": "Name or id of the resource for this request.",
56170	//       "location": "path",
56171	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56172	//       "required": true,
56173	//       "type": "string"
56174	//     }
56175	//   },
56176	//   "path": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions",
56177	//   "request": {
56178	//     "$ref": "TestPermissionsRequest"
56179	//   },
56180	//   "response": {
56181	//     "$ref": "TestPermissionsResponse"
56182	//   },
56183	//   "scopes": [
56184	//     "https://www.googleapis.com/auth/cloud-platform",
56185	//     "https://www.googleapis.com/auth/compute",
56186	//     "https://www.googleapis.com/auth/compute.readonly"
56187	//   ]
56188	// }
56189
56190}
56191
56192// method id "compute.backendBuckets.update":
56193
56194type BackendBucketsUpdateCall struct {
56195	s             *Service
56196	project       string
56197	backendBucket string
56198	backendbucket *BackendBucket
56199	urlParams_    gensupport.URLParams
56200	ctx_          context.Context
56201	header_       http.Header
56202}
56203
56204// Update: Updates the specified BackendBucket resource with the data
56205// included in the request.
56206//
56207// - backendBucket: Name of the BackendBucket resource to update.
56208// - project: Project ID for this request.
56209func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
56210	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56211	c.project = project
56212	c.backendBucket = backendBucket
56213	c.backendbucket = backendbucket
56214	return c
56215}
56216
56217// RequestId sets the optional parameter "requestId": An optional
56218// request ID to identify requests. Specify a unique request ID so that
56219// if you must retry your request, the server will know to ignore the
56220// request if it has already been completed.
56221//
56222// For example, consider a situation where you make an initial request
56223// and the request times out. If you make the request again with the
56224// same request ID, the server can check if original operation with the
56225// same request ID was received, and if so, will ignore the second
56226// request. This prevents clients from accidentally creating duplicate
56227// commitments.
56228//
56229// The request ID must be a valid UUID with the exception that zero UUID
56230// is not supported (00000000-0000-0000-0000-000000000000).
56231func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
56232	c.urlParams_.Set("requestId", requestId)
56233	return c
56234}
56235
56236// Fields allows partial responses to be retrieved. See
56237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56238// for more information.
56239func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
56240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56241	return c
56242}
56243
56244// Context sets the context to be used in this call's Do method. Any
56245// pending HTTP request will be aborted if the provided context is
56246// canceled.
56247func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
56248	c.ctx_ = ctx
56249	return c
56250}
56251
56252// Header returns an http.Header that can be modified by the caller to
56253// add HTTP headers to the request.
56254func (c *BackendBucketsUpdateCall) Header() http.Header {
56255	if c.header_ == nil {
56256		c.header_ = make(http.Header)
56257	}
56258	return c.header_
56259}
56260
56261func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
56262	reqHeaders := make(http.Header)
56263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56264	for k, v := range c.header_ {
56265		reqHeaders[k] = v
56266	}
56267	reqHeaders.Set("User-Agent", c.s.userAgent())
56268	var body io.Reader = nil
56269	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
56270	if err != nil {
56271		return nil, err
56272	}
56273	reqHeaders.Set("Content-Type", "application/json")
56274	c.urlParams_.Set("alt", alt)
56275	c.urlParams_.Set("prettyPrint", "false")
56276	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
56277	urls += "?" + c.urlParams_.Encode()
56278	req, err := http.NewRequest("PUT", urls, body)
56279	if err != nil {
56280		return nil, err
56281	}
56282	req.Header = reqHeaders
56283	googleapi.Expand(req.URL, map[string]string{
56284		"project":       c.project,
56285		"backendBucket": c.backendBucket,
56286	})
56287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56288}
56289
56290// Do executes the "compute.backendBuckets.update" call.
56291// Exactly one of *Operation or error will be non-nil. Any non-2xx
56292// status code is an error. Response headers are in either
56293// *Operation.ServerResponse.Header or (if a response was returned at
56294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56295// to check whether the returned error was because
56296// http.StatusNotModified was returned.
56297func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56298	gensupport.SetOptions(c.urlParams_, opts...)
56299	res, err := c.doRequest("json")
56300	if res != nil && res.StatusCode == http.StatusNotModified {
56301		if res.Body != nil {
56302			res.Body.Close()
56303		}
56304		return nil, &googleapi.Error{
56305			Code:   res.StatusCode,
56306			Header: res.Header,
56307		}
56308	}
56309	if err != nil {
56310		return nil, err
56311	}
56312	defer googleapi.CloseBody(res)
56313	if err := googleapi.CheckResponse(res); err != nil {
56314		return nil, err
56315	}
56316	ret := &Operation{
56317		ServerResponse: googleapi.ServerResponse{
56318			Header:         res.Header,
56319			HTTPStatusCode: res.StatusCode,
56320		},
56321	}
56322	target := &ret
56323	if err := gensupport.DecodeResponse(target, res); err != nil {
56324		return nil, err
56325	}
56326	return ret, nil
56327	// {
56328	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
56329	//   "httpMethod": "PUT",
56330	//   "id": "compute.backendBuckets.update",
56331	//   "parameterOrder": [
56332	//     "project",
56333	//     "backendBucket"
56334	//   ],
56335	//   "parameters": {
56336	//     "backendBucket": {
56337	//       "description": "Name of the BackendBucket resource to update.",
56338	//       "location": "path",
56339	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56340	//       "required": true,
56341	//       "type": "string"
56342	//     },
56343	//     "project": {
56344	//       "description": "Project ID for this request.",
56345	//       "location": "path",
56346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56347	//       "required": true,
56348	//       "type": "string"
56349	//     },
56350	//     "requestId": {
56351	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56352	//       "location": "query",
56353	//       "type": "string"
56354	//     }
56355	//   },
56356	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
56357	//   "request": {
56358	//     "$ref": "BackendBucket"
56359	//   },
56360	//   "response": {
56361	//     "$ref": "Operation"
56362	//   },
56363	//   "scopes": [
56364	//     "https://www.googleapis.com/auth/cloud-platform",
56365	//     "https://www.googleapis.com/auth/compute"
56366	//   ]
56367	// }
56368
56369}
56370
56371// method id "compute.backendServices.addSignedUrlKey":
56372
56373type BackendServicesAddSignedUrlKeyCall struct {
56374	s              *Service
56375	project        string
56376	backendService string
56377	signedurlkey   *SignedUrlKey
56378	urlParams_     gensupport.URLParams
56379	ctx_           context.Context
56380	header_        http.Header
56381}
56382
56383// AddSignedUrlKey: Adds a key for validating requests with signed URLs
56384// for this backend service.
56385//
56386// - backendService: Name of the BackendService resource to which the
56387//   Signed URL Key should be added. The name should conform to RFC1035.
56388// - project: Project ID for this request.
56389func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
56390	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56391	c.project = project
56392	c.backendService = backendService
56393	c.signedurlkey = signedurlkey
56394	return c
56395}
56396
56397// RequestId sets the optional parameter "requestId": An optional
56398// request ID to identify requests. Specify a unique request ID so that
56399// if you must retry your request, the server will know to ignore the
56400// request if it has already been completed.
56401//
56402// For example, consider a situation where you make an initial request
56403// and the request times out. If you make the request again with the
56404// same request ID, the server can check if original operation with the
56405// same request ID was received, and if so, will ignore the second
56406// request. This prevents clients from accidentally creating duplicate
56407// commitments.
56408//
56409// The request ID must be a valid UUID with the exception that zero UUID
56410// is not supported (00000000-0000-0000-0000-000000000000).
56411func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
56412	c.urlParams_.Set("requestId", requestId)
56413	return c
56414}
56415
56416// Fields allows partial responses to be retrieved. See
56417// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56418// for more information.
56419func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
56420	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56421	return c
56422}
56423
56424// Context sets the context to be used in this call's Do method. Any
56425// pending HTTP request will be aborted if the provided context is
56426// canceled.
56427func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
56428	c.ctx_ = ctx
56429	return c
56430}
56431
56432// Header returns an http.Header that can be modified by the caller to
56433// add HTTP headers to the request.
56434func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
56435	if c.header_ == nil {
56436		c.header_ = make(http.Header)
56437	}
56438	return c.header_
56439}
56440
56441func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
56442	reqHeaders := make(http.Header)
56443	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56444	for k, v := range c.header_ {
56445		reqHeaders[k] = v
56446	}
56447	reqHeaders.Set("User-Agent", c.s.userAgent())
56448	var body io.Reader = nil
56449	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
56450	if err != nil {
56451		return nil, err
56452	}
56453	reqHeaders.Set("Content-Type", "application/json")
56454	c.urlParams_.Set("alt", alt)
56455	c.urlParams_.Set("prettyPrint", "false")
56456	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey")
56457	urls += "?" + c.urlParams_.Encode()
56458	req, err := http.NewRequest("POST", urls, body)
56459	if err != nil {
56460		return nil, err
56461	}
56462	req.Header = reqHeaders
56463	googleapi.Expand(req.URL, map[string]string{
56464		"project":        c.project,
56465		"backendService": c.backendService,
56466	})
56467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56468}
56469
56470// Do executes the "compute.backendServices.addSignedUrlKey" call.
56471// Exactly one of *Operation or error will be non-nil. Any non-2xx
56472// status code is an error. Response headers are in either
56473// *Operation.ServerResponse.Header or (if a response was returned at
56474// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56475// to check whether the returned error was because
56476// http.StatusNotModified was returned.
56477func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56478	gensupport.SetOptions(c.urlParams_, opts...)
56479	res, err := c.doRequest("json")
56480	if res != nil && res.StatusCode == http.StatusNotModified {
56481		if res.Body != nil {
56482			res.Body.Close()
56483		}
56484		return nil, &googleapi.Error{
56485			Code:   res.StatusCode,
56486			Header: res.Header,
56487		}
56488	}
56489	if err != nil {
56490		return nil, err
56491	}
56492	defer googleapi.CloseBody(res)
56493	if err := googleapi.CheckResponse(res); err != nil {
56494		return nil, err
56495	}
56496	ret := &Operation{
56497		ServerResponse: googleapi.ServerResponse{
56498			Header:         res.Header,
56499			HTTPStatusCode: res.StatusCode,
56500		},
56501	}
56502	target := &ret
56503	if err := gensupport.DecodeResponse(target, res); err != nil {
56504		return nil, err
56505	}
56506	return ret, nil
56507	// {
56508	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
56509	//   "httpMethod": "POST",
56510	//   "id": "compute.backendServices.addSignedUrlKey",
56511	//   "parameterOrder": [
56512	//     "project",
56513	//     "backendService"
56514	//   ],
56515	//   "parameters": {
56516	//     "backendService": {
56517	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
56518	//       "location": "path",
56519	//       "required": true,
56520	//       "type": "string"
56521	//     },
56522	//     "project": {
56523	//       "description": "Project ID for this request.",
56524	//       "location": "path",
56525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56526	//       "required": true,
56527	//       "type": "string"
56528	//     },
56529	//     "requestId": {
56530	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56531	//       "location": "query",
56532	//       "type": "string"
56533	//     }
56534	//   },
56535	//   "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
56536	//   "request": {
56537	//     "$ref": "SignedUrlKey"
56538	//   },
56539	//   "response": {
56540	//     "$ref": "Operation"
56541	//   },
56542	//   "scopes": [
56543	//     "https://www.googleapis.com/auth/cloud-platform",
56544	//     "https://www.googleapis.com/auth/compute"
56545	//   ]
56546	// }
56547
56548}
56549
56550// method id "compute.backendServices.aggregatedList":
56551
56552type BackendServicesAggregatedListCall struct {
56553	s            *Service
56554	project      string
56555	urlParams_   gensupport.URLParams
56556	ifNoneMatch_ string
56557	ctx_         context.Context
56558	header_      http.Header
56559}
56560
56561// AggregatedList: Retrieves the list of all BackendService resources,
56562// regional and global, available to the specified project.
56563//
56564// - project: Name of the project scoping this request.
56565func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
56566	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56567	c.project = project
56568	return c
56569}
56570
56571// Filter sets the optional parameter "filter": A filter expression that
56572// filters resources listed in the response. The expression must specify
56573// the field name, a comparison operator, and the value that you want to
56574// use for filtering. The value must be a string, a number, or a
56575// boolean. The comparison operator must be either `=`, `!=`, `>`, or
56576// `<`.
56577//
56578// For example, if you are filtering Compute Engine instances, you can
56579// exclude instances named `example-instance` by specifying `name !=
56580// example-instance`.
56581//
56582// You can also filter nested fields. For example, you could specify
56583// `scheduling.automaticRestart = false` to include instances only if
56584// they are not scheduled for automatic restarts. You can use filtering
56585// on nested fields to filter based on resource labels.
56586//
56587// To filter on multiple expressions, provide each separate expression
56588// within parentheses. For example: ``` (scheduling.automaticRestart =
56589// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
56590// is an `AND` expression. However, you can include `AND` and `OR`
56591// expressions explicitly. For example: ``` (cpuPlatform = "Intel
56592// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
56593// (scheduling.automaticRestart = true) ```
56594func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
56595	c.urlParams_.Set("filter", filter)
56596	return c
56597}
56598
56599// IncludeAllScopes sets the optional parameter "includeAllScopes":
56600// Indicates whether every visible scope for each scope type (zone,
56601// region, global) should be included in the response. For new resource
56602// types added after this field, the flag has no effect as new resource
56603// types will always include every visible scope for each scope type in
56604// response. For resource types which predate this field, if this flag
56605// is omitted or false, only scopes of the scope types where the
56606// resource type is expected to be found will be included.
56607func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
56608	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
56609	return c
56610}
56611
56612// MaxResults sets the optional parameter "maxResults": The maximum
56613// number of results per page that should be returned. If the number of
56614// available results is larger than `maxResults`, Compute Engine returns
56615// a `nextPageToken` that can be used to get the next page of results in
56616// subsequent list requests. Acceptable values are `0` to `500`,
56617// inclusive. (Default: `500`)
56618func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
56619	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56620	return c
56621}
56622
56623// OrderBy sets the optional parameter "orderBy": Sorts list results by
56624// a certain order. By default, results are returned in alphanumerical
56625// order based on the resource name.
56626//
56627// You can also sort results in descending order based on the creation
56628// timestamp using `orderBy="creationTimestamp desc". This sorts
56629// results based on the `creationTimestamp` field in reverse
56630// chronological order (newest result first). Use this to sort resources
56631// like operations so that the newest operation is returned
56632// first.
56633//
56634// Currently, only sorting by `name` or `creationTimestamp desc` is
56635// supported.
56636func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
56637	c.urlParams_.Set("orderBy", orderBy)
56638	return c
56639}
56640
56641// PageToken sets the optional parameter "pageToken": Specifies a page
56642// token to use. Set `pageToken` to the `nextPageToken` returned by a
56643// previous list request to get the next page of results.
56644func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
56645	c.urlParams_.Set("pageToken", pageToken)
56646	return c
56647}
56648
56649// ReturnPartialSuccess sets the optional parameter
56650// "returnPartialSuccess": Opt-in for partial success behavior which
56651// provides partial results in case of failure. The default value is
56652// false.
56653func (c *BackendServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesAggregatedListCall {
56654	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
56655	return c
56656}
56657
56658// Fields allows partial responses to be retrieved. See
56659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56660// for more information.
56661func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
56662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56663	return c
56664}
56665
56666// IfNoneMatch sets the optional parameter which makes the operation
56667// fail if the object's ETag matches the given value. This is useful for
56668// getting updates only after the object has changed since the last
56669// request. Use googleapi.IsNotModified to check whether the response
56670// error from Do is the result of In-None-Match.
56671func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
56672	c.ifNoneMatch_ = entityTag
56673	return c
56674}
56675
56676// Context sets the context to be used in this call's Do method. Any
56677// pending HTTP request will be aborted if the provided context is
56678// canceled.
56679func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
56680	c.ctx_ = ctx
56681	return c
56682}
56683
56684// Header returns an http.Header that can be modified by the caller to
56685// add HTTP headers to the request.
56686func (c *BackendServicesAggregatedListCall) Header() http.Header {
56687	if c.header_ == nil {
56688		c.header_ = make(http.Header)
56689	}
56690	return c.header_
56691}
56692
56693func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
56694	reqHeaders := make(http.Header)
56695	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56696	for k, v := range c.header_ {
56697		reqHeaders[k] = v
56698	}
56699	reqHeaders.Set("User-Agent", c.s.userAgent())
56700	if c.ifNoneMatch_ != "" {
56701		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56702	}
56703	var body io.Reader = nil
56704	c.urlParams_.Set("alt", alt)
56705	c.urlParams_.Set("prettyPrint", "false")
56706	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/backendServices")
56707	urls += "?" + c.urlParams_.Encode()
56708	req, err := http.NewRequest("GET", urls, body)
56709	if err != nil {
56710		return nil, err
56711	}
56712	req.Header = reqHeaders
56713	googleapi.Expand(req.URL, map[string]string{
56714		"project": c.project,
56715	})
56716	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56717}
56718
56719// Do executes the "compute.backendServices.aggregatedList" call.
56720// Exactly one of *BackendServiceAggregatedList or error will be
56721// non-nil. Any non-2xx status code is an error. Response headers are in
56722// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
56723// response was returned at all) in error.(*googleapi.Error).Header. Use
56724// googleapi.IsNotModified to check whether the returned error was
56725// because http.StatusNotModified was returned.
56726func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
56727	gensupport.SetOptions(c.urlParams_, opts...)
56728	res, err := c.doRequest("json")
56729	if res != nil && res.StatusCode == http.StatusNotModified {
56730		if res.Body != nil {
56731			res.Body.Close()
56732		}
56733		return nil, &googleapi.Error{
56734			Code:   res.StatusCode,
56735			Header: res.Header,
56736		}
56737	}
56738	if err != nil {
56739		return nil, err
56740	}
56741	defer googleapi.CloseBody(res)
56742	if err := googleapi.CheckResponse(res); err != nil {
56743		return nil, err
56744	}
56745	ret := &BackendServiceAggregatedList{
56746		ServerResponse: googleapi.ServerResponse{
56747			Header:         res.Header,
56748			HTTPStatusCode: res.StatusCode,
56749		},
56750	}
56751	target := &ret
56752	if err := gensupport.DecodeResponse(target, res); err != nil {
56753		return nil, err
56754	}
56755	return ret, nil
56756	// {
56757	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
56758	//   "httpMethod": "GET",
56759	//   "id": "compute.backendServices.aggregatedList",
56760	//   "parameterOrder": [
56761	//     "project"
56762	//   ],
56763	//   "parameters": {
56764	//     "filter": {
56765	//       "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) ```",
56766	//       "location": "query",
56767	//       "type": "string"
56768	//     },
56769	//     "includeAllScopes": {
56770	//       "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.",
56771	//       "location": "query",
56772	//       "type": "boolean"
56773	//     },
56774	//     "maxResults": {
56775	//       "default": "500",
56776	//       "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`)",
56777	//       "format": "uint32",
56778	//       "location": "query",
56779	//       "minimum": "0",
56780	//       "type": "integer"
56781	//     },
56782	//     "orderBy": {
56783	//       "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.",
56784	//       "location": "query",
56785	//       "type": "string"
56786	//     },
56787	//     "pageToken": {
56788	//       "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.",
56789	//       "location": "query",
56790	//       "type": "string"
56791	//     },
56792	//     "project": {
56793	//       "description": "Name of the project scoping this request.",
56794	//       "location": "path",
56795	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56796	//       "required": true,
56797	//       "type": "string"
56798	//     },
56799	//     "returnPartialSuccess": {
56800	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
56801	//       "location": "query",
56802	//       "type": "boolean"
56803	//     }
56804	//   },
56805	//   "path": "projects/{project}/aggregated/backendServices",
56806	//   "response": {
56807	//     "$ref": "BackendServiceAggregatedList"
56808	//   },
56809	//   "scopes": [
56810	//     "https://www.googleapis.com/auth/cloud-platform",
56811	//     "https://www.googleapis.com/auth/compute",
56812	//     "https://www.googleapis.com/auth/compute.readonly"
56813	//   ]
56814	// }
56815
56816}
56817
56818// Pages invokes f for each page of results.
56819// A non-nil error returned from f will halt the iteration.
56820// The provided context supersedes any context provided to the Context method.
56821func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
56822	c.ctx_ = ctx
56823	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56824	for {
56825		x, err := c.Do()
56826		if err != nil {
56827			return err
56828		}
56829		if err := f(x); err != nil {
56830			return err
56831		}
56832		if x.NextPageToken == "" {
56833			return nil
56834		}
56835		c.PageToken(x.NextPageToken)
56836	}
56837}
56838
56839// method id "compute.backendServices.delete":
56840
56841type BackendServicesDeleteCall struct {
56842	s              *Service
56843	project        string
56844	backendService string
56845	urlParams_     gensupport.URLParams
56846	ctx_           context.Context
56847	header_        http.Header
56848}
56849
56850// Delete: Deletes the specified BackendService resource.
56851//
56852// - backendService: Name of the BackendService resource to delete.
56853// - project: Project ID for this request.
56854// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
56855func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
56856	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56857	c.project = project
56858	c.backendService = backendService
56859	return c
56860}
56861
56862// RequestId sets the optional parameter "requestId": An optional
56863// request ID to identify requests. Specify a unique request ID so that
56864// if you must retry your request, the server will know to ignore the
56865// request if it has already been completed.
56866//
56867// For example, consider a situation where you make an initial request
56868// and the request times out. If you make the request again with the
56869// same request ID, the server can check if original operation with the
56870// same request ID was received, and if so, will ignore the second
56871// request. This prevents clients from accidentally creating duplicate
56872// commitments.
56873//
56874// The request ID must be a valid UUID with the exception that zero UUID
56875// is not supported (00000000-0000-0000-0000-000000000000).
56876func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
56877	c.urlParams_.Set("requestId", requestId)
56878	return c
56879}
56880
56881// Fields allows partial responses to be retrieved. See
56882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56883// for more information.
56884func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
56885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56886	return c
56887}
56888
56889// Context sets the context to be used in this call's Do method. Any
56890// pending HTTP request will be aborted if the provided context is
56891// canceled.
56892func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
56893	c.ctx_ = ctx
56894	return c
56895}
56896
56897// Header returns an http.Header that can be modified by the caller to
56898// add HTTP headers to the request.
56899func (c *BackendServicesDeleteCall) Header() http.Header {
56900	if c.header_ == nil {
56901		c.header_ = make(http.Header)
56902	}
56903	return c.header_
56904}
56905
56906func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
56907	reqHeaders := make(http.Header)
56908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56909	for k, v := range c.header_ {
56910		reqHeaders[k] = v
56911	}
56912	reqHeaders.Set("User-Agent", c.s.userAgent())
56913	var body io.Reader = nil
56914	c.urlParams_.Set("alt", alt)
56915	c.urlParams_.Set("prettyPrint", "false")
56916	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
56917	urls += "?" + c.urlParams_.Encode()
56918	req, err := http.NewRequest("DELETE", urls, body)
56919	if err != nil {
56920		return nil, err
56921	}
56922	req.Header = reqHeaders
56923	googleapi.Expand(req.URL, map[string]string{
56924		"project":        c.project,
56925		"backendService": c.backendService,
56926	})
56927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56928}
56929
56930// Do executes the "compute.backendServices.delete" call.
56931// Exactly one of *Operation or error will be non-nil. Any non-2xx
56932// status code is an error. Response headers are in either
56933// *Operation.ServerResponse.Header or (if a response was returned at
56934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56935// to check whether the returned error was because
56936// http.StatusNotModified was returned.
56937func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56938	gensupport.SetOptions(c.urlParams_, opts...)
56939	res, err := c.doRequest("json")
56940	if res != nil && res.StatusCode == http.StatusNotModified {
56941		if res.Body != nil {
56942			res.Body.Close()
56943		}
56944		return nil, &googleapi.Error{
56945			Code:   res.StatusCode,
56946			Header: res.Header,
56947		}
56948	}
56949	if err != nil {
56950		return nil, err
56951	}
56952	defer googleapi.CloseBody(res)
56953	if err := googleapi.CheckResponse(res); err != nil {
56954		return nil, err
56955	}
56956	ret := &Operation{
56957		ServerResponse: googleapi.ServerResponse{
56958			Header:         res.Header,
56959			HTTPStatusCode: res.StatusCode,
56960		},
56961	}
56962	target := &ret
56963	if err := gensupport.DecodeResponse(target, res); err != nil {
56964		return nil, err
56965	}
56966	return ret, nil
56967	// {
56968	//   "description": "Deletes the specified BackendService resource.",
56969	//   "httpMethod": "DELETE",
56970	//   "id": "compute.backendServices.delete",
56971	//   "parameterOrder": [
56972	//     "project",
56973	//     "backendService"
56974	//   ],
56975	//   "parameters": {
56976	//     "backendService": {
56977	//       "description": "Name of the BackendService resource to delete.",
56978	//       "location": "path",
56979	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56980	//       "required": true,
56981	//       "type": "string"
56982	//     },
56983	//     "project": {
56984	//       "description": "Project ID for this request.",
56985	//       "location": "path",
56986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56987	//       "required": true,
56988	//       "type": "string"
56989	//     },
56990	//     "requestId": {
56991	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56992	//       "location": "query",
56993	//       "type": "string"
56994	//     }
56995	//   },
56996	//   "path": "projects/{project}/global/backendServices/{backendService}",
56997	//   "response": {
56998	//     "$ref": "Operation"
56999	//   },
57000	//   "scopes": [
57001	//     "https://www.googleapis.com/auth/cloud-platform",
57002	//     "https://www.googleapis.com/auth/compute"
57003	//   ]
57004	// }
57005
57006}
57007
57008// method id "compute.backendServices.deleteSignedUrlKey":
57009
57010type BackendServicesDeleteSignedUrlKeyCall struct {
57011	s              *Service
57012	project        string
57013	backendService string
57014	urlParams_     gensupport.URLParams
57015	ctx_           context.Context
57016	header_        http.Header
57017}
57018
57019// DeleteSignedUrlKey: Deletes a key for validating requests with signed
57020// URLs for this backend service.
57021//
57022// - backendService: Name of the BackendService resource to which the
57023//   Signed URL Key should be added. The name should conform to RFC1035.
57024// - keyName: The name of the Signed URL Key to delete.
57025// - project: Project ID for this request.
57026func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
57027	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57028	c.project = project
57029	c.backendService = backendService
57030	c.urlParams_.Set("keyName", keyName)
57031	return c
57032}
57033
57034// RequestId sets the optional parameter "requestId": An optional
57035// request ID to identify requests. Specify a unique request ID so that
57036// if you must retry your request, the server will know to ignore the
57037// request if it has already been completed.
57038//
57039// For example, consider a situation where you make an initial request
57040// and the request times out. If you make the request again with the
57041// same request ID, the server can check if original operation with the
57042// same request ID was received, and if so, will ignore the second
57043// request. This prevents clients from accidentally creating duplicate
57044// commitments.
57045//
57046// The request ID must be a valid UUID with the exception that zero UUID
57047// is not supported (00000000-0000-0000-0000-000000000000).
57048func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
57049	c.urlParams_.Set("requestId", requestId)
57050	return c
57051}
57052
57053// Fields allows partial responses to be retrieved. See
57054// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57055// for more information.
57056func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
57057	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57058	return c
57059}
57060
57061// Context sets the context to be used in this call's Do method. Any
57062// pending HTTP request will be aborted if the provided context is
57063// canceled.
57064func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
57065	c.ctx_ = ctx
57066	return c
57067}
57068
57069// Header returns an http.Header that can be modified by the caller to
57070// add HTTP headers to the request.
57071func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
57072	if c.header_ == nil {
57073		c.header_ = make(http.Header)
57074	}
57075	return c.header_
57076}
57077
57078func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
57079	reqHeaders := make(http.Header)
57080	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57081	for k, v := range c.header_ {
57082		reqHeaders[k] = v
57083	}
57084	reqHeaders.Set("User-Agent", c.s.userAgent())
57085	var body io.Reader = nil
57086	c.urlParams_.Set("alt", alt)
57087	c.urlParams_.Set("prettyPrint", "false")
57088	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
57089	urls += "?" + c.urlParams_.Encode()
57090	req, err := http.NewRequest("POST", urls, body)
57091	if err != nil {
57092		return nil, err
57093	}
57094	req.Header = reqHeaders
57095	googleapi.Expand(req.URL, map[string]string{
57096		"project":        c.project,
57097		"backendService": c.backendService,
57098	})
57099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57100}
57101
57102// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
57103// Exactly one of *Operation or error will be non-nil. Any non-2xx
57104// status code is an error. Response headers are in either
57105// *Operation.ServerResponse.Header or (if a response was returned at
57106// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57107// to check whether the returned error was because
57108// http.StatusNotModified was returned.
57109func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57110	gensupport.SetOptions(c.urlParams_, opts...)
57111	res, err := c.doRequest("json")
57112	if res != nil && res.StatusCode == http.StatusNotModified {
57113		if res.Body != nil {
57114			res.Body.Close()
57115		}
57116		return nil, &googleapi.Error{
57117			Code:   res.StatusCode,
57118			Header: res.Header,
57119		}
57120	}
57121	if err != nil {
57122		return nil, err
57123	}
57124	defer googleapi.CloseBody(res)
57125	if err := googleapi.CheckResponse(res); err != nil {
57126		return nil, err
57127	}
57128	ret := &Operation{
57129		ServerResponse: googleapi.ServerResponse{
57130			Header:         res.Header,
57131			HTTPStatusCode: res.StatusCode,
57132		},
57133	}
57134	target := &ret
57135	if err := gensupport.DecodeResponse(target, res); err != nil {
57136		return nil, err
57137	}
57138	return ret, nil
57139	// {
57140	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
57141	//   "httpMethod": "POST",
57142	//   "id": "compute.backendServices.deleteSignedUrlKey",
57143	//   "parameterOrder": [
57144	//     "project",
57145	//     "backendService",
57146	//     "keyName"
57147	//   ],
57148	//   "parameters": {
57149	//     "backendService": {
57150	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
57151	//       "location": "path",
57152	//       "required": true,
57153	//       "type": "string"
57154	//     },
57155	//     "keyName": {
57156	//       "description": "The name of the Signed URL Key to delete.",
57157	//       "location": "query",
57158	//       "required": true,
57159	//       "type": "string"
57160	//     },
57161	//     "project": {
57162	//       "description": "Project ID for this request.",
57163	//       "location": "path",
57164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57165	//       "required": true,
57166	//       "type": "string"
57167	//     },
57168	//     "requestId": {
57169	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57170	//       "location": "query",
57171	//       "type": "string"
57172	//     }
57173	//   },
57174	//   "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
57175	//   "response": {
57176	//     "$ref": "Operation"
57177	//   },
57178	//   "scopes": [
57179	//     "https://www.googleapis.com/auth/cloud-platform",
57180	//     "https://www.googleapis.com/auth/compute"
57181	//   ]
57182	// }
57183
57184}
57185
57186// method id "compute.backendServices.get":
57187
57188type BackendServicesGetCall struct {
57189	s              *Service
57190	project        string
57191	backendService string
57192	urlParams_     gensupport.URLParams
57193	ifNoneMatch_   string
57194	ctx_           context.Context
57195	header_        http.Header
57196}
57197
57198// Get: Returns the specified BackendService resource. Gets a list of
57199// available backend services.
57200//
57201// - backendService: Name of the BackendService resource to return.
57202// - project: Project ID for this request.
57203// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
57204func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
57205	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57206	c.project = project
57207	c.backendService = backendService
57208	return c
57209}
57210
57211// Fields allows partial responses to be retrieved. See
57212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57213// for more information.
57214func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
57215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57216	return c
57217}
57218
57219// IfNoneMatch sets the optional parameter which makes the operation
57220// fail if the object's ETag matches the given value. This is useful for
57221// getting updates only after the object has changed since the last
57222// request. Use googleapi.IsNotModified to check whether the response
57223// error from Do is the result of In-None-Match.
57224func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
57225	c.ifNoneMatch_ = entityTag
57226	return c
57227}
57228
57229// Context sets the context to be used in this call's Do method. Any
57230// pending HTTP request will be aborted if the provided context is
57231// canceled.
57232func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
57233	c.ctx_ = ctx
57234	return c
57235}
57236
57237// Header returns an http.Header that can be modified by the caller to
57238// add HTTP headers to the request.
57239func (c *BackendServicesGetCall) Header() http.Header {
57240	if c.header_ == nil {
57241		c.header_ = make(http.Header)
57242	}
57243	return c.header_
57244}
57245
57246func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
57247	reqHeaders := make(http.Header)
57248	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57249	for k, v := range c.header_ {
57250		reqHeaders[k] = v
57251	}
57252	reqHeaders.Set("User-Agent", c.s.userAgent())
57253	if c.ifNoneMatch_ != "" {
57254		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57255	}
57256	var body io.Reader = nil
57257	c.urlParams_.Set("alt", alt)
57258	c.urlParams_.Set("prettyPrint", "false")
57259	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
57260	urls += "?" + c.urlParams_.Encode()
57261	req, err := http.NewRequest("GET", urls, body)
57262	if err != nil {
57263		return nil, err
57264	}
57265	req.Header = reqHeaders
57266	googleapi.Expand(req.URL, map[string]string{
57267		"project":        c.project,
57268		"backendService": c.backendService,
57269	})
57270	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57271}
57272
57273// Do executes the "compute.backendServices.get" call.
57274// Exactly one of *BackendService or error will be non-nil. Any non-2xx
57275// status code is an error. Response headers are in either
57276// *BackendService.ServerResponse.Header or (if a response was returned
57277// at all) in error.(*googleapi.Error).Header. Use
57278// googleapi.IsNotModified to check whether the returned error was
57279// because http.StatusNotModified was returned.
57280func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
57281	gensupport.SetOptions(c.urlParams_, opts...)
57282	res, err := c.doRequest("json")
57283	if res != nil && res.StatusCode == http.StatusNotModified {
57284		if res.Body != nil {
57285			res.Body.Close()
57286		}
57287		return nil, &googleapi.Error{
57288			Code:   res.StatusCode,
57289			Header: res.Header,
57290		}
57291	}
57292	if err != nil {
57293		return nil, err
57294	}
57295	defer googleapi.CloseBody(res)
57296	if err := googleapi.CheckResponse(res); err != nil {
57297		return nil, err
57298	}
57299	ret := &BackendService{
57300		ServerResponse: googleapi.ServerResponse{
57301			Header:         res.Header,
57302			HTTPStatusCode: res.StatusCode,
57303		},
57304	}
57305	target := &ret
57306	if err := gensupport.DecodeResponse(target, res); err != nil {
57307		return nil, err
57308	}
57309	return ret, nil
57310	// {
57311	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
57312	//   "httpMethod": "GET",
57313	//   "id": "compute.backendServices.get",
57314	//   "parameterOrder": [
57315	//     "project",
57316	//     "backendService"
57317	//   ],
57318	//   "parameters": {
57319	//     "backendService": {
57320	//       "description": "Name of the BackendService resource to return.",
57321	//       "location": "path",
57322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57323	//       "required": true,
57324	//       "type": "string"
57325	//     },
57326	//     "project": {
57327	//       "description": "Project ID for this request.",
57328	//       "location": "path",
57329	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57330	//       "required": true,
57331	//       "type": "string"
57332	//     }
57333	//   },
57334	//   "path": "projects/{project}/global/backendServices/{backendService}",
57335	//   "response": {
57336	//     "$ref": "BackendService"
57337	//   },
57338	//   "scopes": [
57339	//     "https://www.googleapis.com/auth/cloud-platform",
57340	//     "https://www.googleapis.com/auth/compute",
57341	//     "https://www.googleapis.com/auth/compute.readonly"
57342	//   ]
57343	// }
57344
57345}
57346
57347// method id "compute.backendServices.getHealth":
57348
57349type BackendServicesGetHealthCall struct {
57350	s                      *Service
57351	project                string
57352	backendService         string
57353	resourcegroupreference *ResourceGroupReference
57354	urlParams_             gensupport.URLParams
57355	ctx_                   context.Context
57356	header_                http.Header
57357}
57358
57359// GetHealth: Gets the most recent health check results for this
57360// BackendService.
57361//
57362// Example request body:
57363//
57364// { "group": "/zones/us-east1-b/instanceGroups/lb-backend-example" }
57365//
57366// - backendService: Name of the BackendService resource to which the
57367//   queried instance belongs.
57368// - project: .
57369// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
57370func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
57371	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57372	c.project = project
57373	c.backendService = backendService
57374	c.resourcegroupreference = resourcegroupreference
57375	return c
57376}
57377
57378// Fields allows partial responses to be retrieved. See
57379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57380// for more information.
57381func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
57382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57383	return c
57384}
57385
57386// Context sets the context to be used in this call's Do method. Any
57387// pending HTTP request will be aborted if the provided context is
57388// canceled.
57389func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
57390	c.ctx_ = ctx
57391	return c
57392}
57393
57394// Header returns an http.Header that can be modified by the caller to
57395// add HTTP headers to the request.
57396func (c *BackendServicesGetHealthCall) Header() http.Header {
57397	if c.header_ == nil {
57398		c.header_ = make(http.Header)
57399	}
57400	return c.header_
57401}
57402
57403func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
57404	reqHeaders := make(http.Header)
57405	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57406	for k, v := range c.header_ {
57407		reqHeaders[k] = v
57408	}
57409	reqHeaders.Set("User-Agent", c.s.userAgent())
57410	var body io.Reader = nil
57411	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
57412	if err != nil {
57413		return nil, err
57414	}
57415	reqHeaders.Set("Content-Type", "application/json")
57416	c.urlParams_.Set("alt", alt)
57417	c.urlParams_.Set("prettyPrint", "false")
57418	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/getHealth")
57419	urls += "?" + c.urlParams_.Encode()
57420	req, err := http.NewRequest("POST", urls, body)
57421	if err != nil {
57422		return nil, err
57423	}
57424	req.Header = reqHeaders
57425	googleapi.Expand(req.URL, map[string]string{
57426		"project":        c.project,
57427		"backendService": c.backendService,
57428	})
57429	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57430}
57431
57432// Do executes the "compute.backendServices.getHealth" call.
57433// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
57434// Any non-2xx status code is an error. Response headers are in either
57435// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
57436// was returned at all) in error.(*googleapi.Error).Header. Use
57437// googleapi.IsNotModified to check whether the returned error was
57438// because http.StatusNotModified was returned.
57439func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
57440	gensupport.SetOptions(c.urlParams_, opts...)
57441	res, err := c.doRequest("json")
57442	if res != nil && res.StatusCode == http.StatusNotModified {
57443		if res.Body != nil {
57444			res.Body.Close()
57445		}
57446		return nil, &googleapi.Error{
57447			Code:   res.StatusCode,
57448			Header: res.Header,
57449		}
57450	}
57451	if err != nil {
57452		return nil, err
57453	}
57454	defer googleapi.CloseBody(res)
57455	if err := googleapi.CheckResponse(res); err != nil {
57456		return nil, err
57457	}
57458	ret := &BackendServiceGroupHealth{
57459		ServerResponse: googleapi.ServerResponse{
57460			Header:         res.Header,
57461			HTTPStatusCode: res.StatusCode,
57462		},
57463	}
57464	target := &ret
57465	if err := gensupport.DecodeResponse(target, res); err != nil {
57466		return nil, err
57467	}
57468	return ret, nil
57469	// {
57470	//   "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\" }",
57471	//   "httpMethod": "POST",
57472	//   "id": "compute.backendServices.getHealth",
57473	//   "parameterOrder": [
57474	//     "project",
57475	//     "backendService"
57476	//   ],
57477	//   "parameters": {
57478	//     "backendService": {
57479	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
57480	//       "location": "path",
57481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57482	//       "required": true,
57483	//       "type": "string"
57484	//     },
57485	//     "project": {
57486	//       "location": "path",
57487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57488	//       "required": true,
57489	//       "type": "string"
57490	//     }
57491	//   },
57492	//   "path": "projects/{project}/global/backendServices/{backendService}/getHealth",
57493	//   "request": {
57494	//     "$ref": "ResourceGroupReference"
57495	//   },
57496	//   "response": {
57497	//     "$ref": "BackendServiceGroupHealth"
57498	//   },
57499	//   "scopes": [
57500	//     "https://www.googleapis.com/auth/cloud-platform",
57501	//     "https://www.googleapis.com/auth/compute",
57502	//     "https://www.googleapis.com/auth/compute.readonly"
57503	//   ]
57504	// }
57505
57506}
57507
57508// method id "compute.backendServices.getIamPolicy":
57509
57510type BackendServicesGetIamPolicyCall struct {
57511	s            *Service
57512	project      string
57513	resource     string
57514	urlParams_   gensupport.URLParams
57515	ifNoneMatch_ string
57516	ctx_         context.Context
57517	header_      http.Header
57518}
57519
57520// GetIamPolicy: Gets the access control policy for a resource. May be
57521// empty if no such policy or resource exists.
57522//
57523// - project: Project ID for this request.
57524// - resource: Name or id of the resource for this request.
57525func (r *BackendServicesService) GetIamPolicy(project string, resource string) *BackendServicesGetIamPolicyCall {
57526	c := &BackendServicesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57527	c.project = project
57528	c.resource = resource
57529	return c
57530}
57531
57532// OptionsRequestedPolicyVersion sets the optional parameter
57533// "optionsRequestedPolicyVersion": Requested IAM Policy version.
57534func (c *BackendServicesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *BackendServicesGetIamPolicyCall {
57535	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
57536	return c
57537}
57538
57539// Fields allows partial responses to be retrieved. See
57540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57541// for more information.
57542func (c *BackendServicesGetIamPolicyCall) Fields(s ...googleapi.Field) *BackendServicesGetIamPolicyCall {
57543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57544	return c
57545}
57546
57547// IfNoneMatch sets the optional parameter which makes the operation
57548// fail if the object's ETag matches the given value. This is useful for
57549// getting updates only after the object has changed since the last
57550// request. Use googleapi.IsNotModified to check whether the response
57551// error from Do is the result of In-None-Match.
57552func (c *BackendServicesGetIamPolicyCall) IfNoneMatch(entityTag string) *BackendServicesGetIamPolicyCall {
57553	c.ifNoneMatch_ = entityTag
57554	return c
57555}
57556
57557// Context sets the context to be used in this call's Do method. Any
57558// pending HTTP request will be aborted if the provided context is
57559// canceled.
57560func (c *BackendServicesGetIamPolicyCall) Context(ctx context.Context) *BackendServicesGetIamPolicyCall {
57561	c.ctx_ = ctx
57562	return c
57563}
57564
57565// Header returns an http.Header that can be modified by the caller to
57566// add HTTP headers to the request.
57567func (c *BackendServicesGetIamPolicyCall) Header() http.Header {
57568	if c.header_ == nil {
57569		c.header_ = make(http.Header)
57570	}
57571	return c.header_
57572}
57573
57574func (c *BackendServicesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
57575	reqHeaders := make(http.Header)
57576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57577	for k, v := range c.header_ {
57578		reqHeaders[k] = v
57579	}
57580	reqHeaders.Set("User-Agent", c.s.userAgent())
57581	if c.ifNoneMatch_ != "" {
57582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57583	}
57584	var body io.Reader = nil
57585	c.urlParams_.Set("alt", alt)
57586	c.urlParams_.Set("prettyPrint", "false")
57587	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{resource}/getIamPolicy")
57588	urls += "?" + c.urlParams_.Encode()
57589	req, err := http.NewRequest("GET", urls, body)
57590	if err != nil {
57591		return nil, err
57592	}
57593	req.Header = reqHeaders
57594	googleapi.Expand(req.URL, map[string]string{
57595		"project":  c.project,
57596		"resource": c.resource,
57597	})
57598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57599}
57600
57601// Do executes the "compute.backendServices.getIamPolicy" call.
57602// Exactly one of *Policy or error will be non-nil. Any non-2xx status
57603// code is an error. Response headers are in either
57604// *Policy.ServerResponse.Header or (if a response was returned at all)
57605// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
57606// check whether the returned error was because http.StatusNotModified
57607// was returned.
57608func (c *BackendServicesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
57609	gensupport.SetOptions(c.urlParams_, opts...)
57610	res, err := c.doRequest("json")
57611	if res != nil && res.StatusCode == http.StatusNotModified {
57612		if res.Body != nil {
57613			res.Body.Close()
57614		}
57615		return nil, &googleapi.Error{
57616			Code:   res.StatusCode,
57617			Header: res.Header,
57618		}
57619	}
57620	if err != nil {
57621		return nil, err
57622	}
57623	defer googleapi.CloseBody(res)
57624	if err := googleapi.CheckResponse(res); err != nil {
57625		return nil, err
57626	}
57627	ret := &Policy{
57628		ServerResponse: googleapi.ServerResponse{
57629			Header:         res.Header,
57630			HTTPStatusCode: res.StatusCode,
57631		},
57632	}
57633	target := &ret
57634	if err := gensupport.DecodeResponse(target, res); err != nil {
57635		return nil, err
57636	}
57637	return ret, nil
57638	// {
57639	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
57640	//   "httpMethod": "GET",
57641	//   "id": "compute.backendServices.getIamPolicy",
57642	//   "parameterOrder": [
57643	//     "project",
57644	//     "resource"
57645	//   ],
57646	//   "parameters": {
57647	//     "optionsRequestedPolicyVersion": {
57648	//       "description": "Requested IAM Policy version.",
57649	//       "format": "int32",
57650	//       "location": "query",
57651	//       "type": "integer"
57652	//     },
57653	//     "project": {
57654	//       "description": "Project ID for this request.",
57655	//       "location": "path",
57656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57657	//       "required": true,
57658	//       "type": "string"
57659	//     },
57660	//     "resource": {
57661	//       "description": "Name or id of the resource for this request.",
57662	//       "location": "path",
57663	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57664	//       "required": true,
57665	//       "type": "string"
57666	//     }
57667	//   },
57668	//   "path": "projects/{project}/global/backendServices/{resource}/getIamPolicy",
57669	//   "response": {
57670	//     "$ref": "Policy"
57671	//   },
57672	//   "scopes": [
57673	//     "https://www.googleapis.com/auth/cloud-platform",
57674	//     "https://www.googleapis.com/auth/compute",
57675	//     "https://www.googleapis.com/auth/compute.readonly"
57676	//   ]
57677	// }
57678
57679}
57680
57681// method id "compute.backendServices.insert":
57682
57683type BackendServicesInsertCall struct {
57684	s              *Service
57685	project        string
57686	backendservice *BackendService
57687	urlParams_     gensupport.URLParams
57688	ctx_           context.Context
57689	header_        http.Header
57690}
57691
57692// Insert: Creates a BackendService resource in the specified project
57693// using the data included in the request. For more information, see
57694// Backend services overview.
57695//
57696// - project: Project ID for this request.
57697// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
57698func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
57699	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57700	c.project = project
57701	c.backendservice = backendservice
57702	return c
57703}
57704
57705// RequestId sets the optional parameter "requestId": An optional
57706// request ID to identify requests. Specify a unique request ID so that
57707// if you must retry your request, the server will know to ignore the
57708// request if it has already been completed.
57709//
57710// For example, consider a situation where you make an initial request
57711// and the request times out. If you make the request again with the
57712// same request ID, the server can check if original operation with the
57713// same request ID was received, and if so, will ignore the second
57714// request. This prevents clients from accidentally creating duplicate
57715// commitments.
57716//
57717// The request ID must be a valid UUID with the exception that zero UUID
57718// is not supported (00000000-0000-0000-0000-000000000000).
57719func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
57720	c.urlParams_.Set("requestId", requestId)
57721	return c
57722}
57723
57724// Fields allows partial responses to be retrieved. See
57725// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57726// for more information.
57727func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
57728	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57729	return c
57730}
57731
57732// Context sets the context to be used in this call's Do method. Any
57733// pending HTTP request will be aborted if the provided context is
57734// canceled.
57735func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
57736	c.ctx_ = ctx
57737	return c
57738}
57739
57740// Header returns an http.Header that can be modified by the caller to
57741// add HTTP headers to the request.
57742func (c *BackendServicesInsertCall) Header() http.Header {
57743	if c.header_ == nil {
57744		c.header_ = make(http.Header)
57745	}
57746	return c.header_
57747}
57748
57749func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
57750	reqHeaders := make(http.Header)
57751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57752	for k, v := range c.header_ {
57753		reqHeaders[k] = v
57754	}
57755	reqHeaders.Set("User-Agent", c.s.userAgent())
57756	var body io.Reader = nil
57757	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57758	if err != nil {
57759		return nil, err
57760	}
57761	reqHeaders.Set("Content-Type", "application/json")
57762	c.urlParams_.Set("alt", alt)
57763	c.urlParams_.Set("prettyPrint", "false")
57764	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
57765	urls += "?" + c.urlParams_.Encode()
57766	req, err := http.NewRequest("POST", urls, body)
57767	if err != nil {
57768		return nil, err
57769	}
57770	req.Header = reqHeaders
57771	googleapi.Expand(req.URL, map[string]string{
57772		"project": c.project,
57773	})
57774	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57775}
57776
57777// Do executes the "compute.backendServices.insert" call.
57778// Exactly one of *Operation or error will be non-nil. Any non-2xx
57779// status code is an error. Response headers are in either
57780// *Operation.ServerResponse.Header or (if a response was returned at
57781// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57782// to check whether the returned error was because
57783// http.StatusNotModified was returned.
57784func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57785	gensupport.SetOptions(c.urlParams_, opts...)
57786	res, err := c.doRequest("json")
57787	if res != nil && res.StatusCode == http.StatusNotModified {
57788		if res.Body != nil {
57789			res.Body.Close()
57790		}
57791		return nil, &googleapi.Error{
57792			Code:   res.StatusCode,
57793			Header: res.Header,
57794		}
57795	}
57796	if err != nil {
57797		return nil, err
57798	}
57799	defer googleapi.CloseBody(res)
57800	if err := googleapi.CheckResponse(res); err != nil {
57801		return nil, err
57802	}
57803	ret := &Operation{
57804		ServerResponse: googleapi.ServerResponse{
57805			Header:         res.Header,
57806			HTTPStatusCode: res.StatusCode,
57807		},
57808	}
57809	target := &ret
57810	if err := gensupport.DecodeResponse(target, res); err != nil {
57811		return nil, err
57812	}
57813	return ret, nil
57814	// {
57815	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
57816	//   "httpMethod": "POST",
57817	//   "id": "compute.backendServices.insert",
57818	//   "parameterOrder": [
57819	//     "project"
57820	//   ],
57821	//   "parameters": {
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",
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.backendServices.list":
57851
57852type BackendServicesListCall 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// List: Retrieves the list of BackendService resources available to the
57862// specified project.
57863//
57864// - project: Project ID for this request.
57865// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
57866func (r *BackendServicesService) List(project string) *BackendServicesListCall {
57867	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57868	c.project = project
57869	return c
57870}
57871
57872// Filter sets the optional parameter "filter": A filter expression that
57873// filters resources listed in the response. The expression must specify
57874// the field name, a comparison operator, and the value that you want to
57875// use for filtering. The value must be a string, a number, or a
57876// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57877// `<`.
57878//
57879// For example, if you are filtering Compute Engine instances, you can
57880// exclude instances named `example-instance` by specifying `name !=
57881// example-instance`.
57882//
57883// You can also filter nested fields. For example, you could specify
57884// `scheduling.automaticRestart = false` to include instances only if
57885// they are not scheduled for automatic restarts. You can use filtering
57886// on nested fields to filter based on resource labels.
57887//
57888// To filter on multiple expressions, provide each separate expression
57889// within parentheses. For example: ``` (scheduling.automaticRestart =
57890// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
57891// is an `AND` expression. However, you can include `AND` and `OR`
57892// expressions explicitly. For example: ``` (cpuPlatform = "Intel
57893// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
57894// (scheduling.automaticRestart = true) ```
57895func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
57896	c.urlParams_.Set("filter", filter)
57897	return c
57898}
57899
57900// MaxResults sets the optional parameter "maxResults": The maximum
57901// number of results per page that should be returned. If the number of
57902// available results is larger than `maxResults`, Compute Engine returns
57903// a `nextPageToken` that can be used to get the next page of results in
57904// subsequent list requests. Acceptable values are `0` to `500`,
57905// inclusive. (Default: `500`)
57906func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
57907	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57908	return c
57909}
57910
57911// OrderBy sets the optional parameter "orderBy": Sorts list results by
57912// a certain order. By default, results are returned in alphanumerical
57913// order based on the resource name.
57914//
57915// You can also sort results in descending order based on the creation
57916// timestamp using `orderBy="creationTimestamp desc". This sorts
57917// results based on the `creationTimestamp` field in reverse
57918// chronological order (newest result first). Use this to sort resources
57919// like operations so that the newest operation is returned
57920// first.
57921//
57922// Currently, only sorting by `name` or `creationTimestamp desc` is
57923// supported.
57924func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
57925	c.urlParams_.Set("orderBy", orderBy)
57926	return c
57927}
57928
57929// PageToken sets the optional parameter "pageToken": Specifies a page
57930// token to use. Set `pageToken` to the `nextPageToken` returned by a
57931// previous list request to get the next page of results.
57932func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
57933	c.urlParams_.Set("pageToken", pageToken)
57934	return c
57935}
57936
57937// ReturnPartialSuccess sets the optional parameter
57938// "returnPartialSuccess": Opt-in for partial success behavior which
57939// provides partial results in case of failure. The default value is
57940// false.
57941func (c *BackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesListCall {
57942	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
57943	return c
57944}
57945
57946// Fields allows partial responses to be retrieved. See
57947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57948// for more information.
57949func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
57950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57951	return c
57952}
57953
57954// IfNoneMatch sets the optional parameter which makes the operation
57955// fail if the object's ETag matches the given value. This is useful for
57956// getting updates only after the object has changed since the last
57957// request. Use googleapi.IsNotModified to check whether the response
57958// error from Do is the result of In-None-Match.
57959func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
57960	c.ifNoneMatch_ = entityTag
57961	return c
57962}
57963
57964// Context sets the context to be used in this call's Do method. Any
57965// pending HTTP request will be aborted if the provided context is
57966// canceled.
57967func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
57968	c.ctx_ = ctx
57969	return c
57970}
57971
57972// Header returns an http.Header that can be modified by the caller to
57973// add HTTP headers to the request.
57974func (c *BackendServicesListCall) Header() http.Header {
57975	if c.header_ == nil {
57976		c.header_ = make(http.Header)
57977	}
57978	return c.header_
57979}
57980
57981func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
57982	reqHeaders := make(http.Header)
57983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57984	for k, v := range c.header_ {
57985		reqHeaders[k] = v
57986	}
57987	reqHeaders.Set("User-Agent", c.s.userAgent())
57988	if c.ifNoneMatch_ != "" {
57989		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57990	}
57991	var body io.Reader = nil
57992	c.urlParams_.Set("alt", alt)
57993	c.urlParams_.Set("prettyPrint", "false")
57994	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
57995	urls += "?" + c.urlParams_.Encode()
57996	req, err := http.NewRequest("GET", urls, body)
57997	if err != nil {
57998		return nil, err
57999	}
58000	req.Header = reqHeaders
58001	googleapi.Expand(req.URL, map[string]string{
58002		"project": c.project,
58003	})
58004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58005}
58006
58007// Do executes the "compute.backendServices.list" call.
58008// Exactly one of *BackendServiceList or error will be non-nil. Any
58009// non-2xx status code is an error. Response headers are in either
58010// *BackendServiceList.ServerResponse.Header or (if a response was
58011// returned at all) in error.(*googleapi.Error).Header. Use
58012// googleapi.IsNotModified to check whether the returned error was
58013// because http.StatusNotModified was returned.
58014func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
58015	gensupport.SetOptions(c.urlParams_, opts...)
58016	res, err := c.doRequest("json")
58017	if res != nil && res.StatusCode == http.StatusNotModified {
58018		if res.Body != nil {
58019			res.Body.Close()
58020		}
58021		return nil, &googleapi.Error{
58022			Code:   res.StatusCode,
58023			Header: res.Header,
58024		}
58025	}
58026	if err != nil {
58027		return nil, err
58028	}
58029	defer googleapi.CloseBody(res)
58030	if err := googleapi.CheckResponse(res); err != nil {
58031		return nil, err
58032	}
58033	ret := &BackendServiceList{
58034		ServerResponse: googleapi.ServerResponse{
58035			Header:         res.Header,
58036			HTTPStatusCode: res.StatusCode,
58037		},
58038	}
58039	target := &ret
58040	if err := gensupport.DecodeResponse(target, res); err != nil {
58041		return nil, err
58042	}
58043	return ret, nil
58044	// {
58045	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
58046	//   "httpMethod": "GET",
58047	//   "id": "compute.backendServices.list",
58048	//   "parameterOrder": [
58049	//     "project"
58050	//   ],
58051	//   "parameters": {
58052	//     "filter": {
58053	//       "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) ```",
58054	//       "location": "query",
58055	//       "type": "string"
58056	//     },
58057	//     "maxResults": {
58058	//       "default": "500",
58059	//       "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`)",
58060	//       "format": "uint32",
58061	//       "location": "query",
58062	//       "minimum": "0",
58063	//       "type": "integer"
58064	//     },
58065	//     "orderBy": {
58066	//       "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.",
58067	//       "location": "query",
58068	//       "type": "string"
58069	//     },
58070	//     "pageToken": {
58071	//       "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.",
58072	//       "location": "query",
58073	//       "type": "string"
58074	//     },
58075	//     "project": {
58076	//       "description": "Project ID for this request.",
58077	//       "location": "path",
58078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58079	//       "required": true,
58080	//       "type": "string"
58081	//     },
58082	//     "returnPartialSuccess": {
58083	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
58084	//       "location": "query",
58085	//       "type": "boolean"
58086	//     }
58087	//   },
58088	//   "path": "projects/{project}/global/backendServices",
58089	//   "response": {
58090	//     "$ref": "BackendServiceList"
58091	//   },
58092	//   "scopes": [
58093	//     "https://www.googleapis.com/auth/cloud-platform",
58094	//     "https://www.googleapis.com/auth/compute",
58095	//     "https://www.googleapis.com/auth/compute.readonly"
58096	//   ]
58097	// }
58098
58099}
58100
58101// Pages invokes f for each page of results.
58102// A non-nil error returned from f will halt the iteration.
58103// The provided context supersedes any context provided to the Context method.
58104func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
58105	c.ctx_ = ctx
58106	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58107	for {
58108		x, err := c.Do()
58109		if err != nil {
58110			return err
58111		}
58112		if err := f(x); err != nil {
58113			return err
58114		}
58115		if x.NextPageToken == "" {
58116			return nil
58117		}
58118		c.PageToken(x.NextPageToken)
58119	}
58120}
58121
58122// method id "compute.backendServices.patch":
58123
58124type BackendServicesPatchCall struct {
58125	s              *Service
58126	project        string
58127	backendService string
58128	backendservice *BackendService
58129	urlParams_     gensupport.URLParams
58130	ctx_           context.Context
58131	header_        http.Header
58132}
58133
58134// Patch: Patches the specified BackendService resource with the data
58135// included in the request. For more information, see  Backend services
58136// overview. This method supports PATCH semantics and uses the JSON
58137// merge patch format and processing rules.
58138//
58139// - backendService: Name of the BackendService resource to patch.
58140// - project: Project ID for this request.
58141// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
58142func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
58143	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58144	c.project = project
58145	c.backendService = backendService
58146	c.backendservice = backendservice
58147	return c
58148}
58149
58150// RequestId sets the optional parameter "requestId": An optional
58151// request ID to identify requests. Specify a unique request ID so that
58152// if you must retry your request, the server will know to ignore the
58153// request if it has already been completed.
58154//
58155// For example, consider a situation where you make an initial request
58156// and the request times out. If you make the request again with the
58157// same request ID, the server can check if original operation with the
58158// same request ID was received, and if so, will ignore the second
58159// request. This prevents clients from accidentally creating duplicate
58160// commitments.
58161//
58162// The request ID must be a valid UUID with the exception that zero UUID
58163// is not supported (00000000-0000-0000-0000-000000000000).
58164func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
58165	c.urlParams_.Set("requestId", requestId)
58166	return c
58167}
58168
58169// Fields allows partial responses to be retrieved. See
58170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58171// for more information.
58172func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
58173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58174	return c
58175}
58176
58177// Context sets the context to be used in this call's Do method. Any
58178// pending HTTP request will be aborted if the provided context is
58179// canceled.
58180func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
58181	c.ctx_ = ctx
58182	return c
58183}
58184
58185// Header returns an http.Header that can be modified by the caller to
58186// add HTTP headers to the request.
58187func (c *BackendServicesPatchCall) Header() http.Header {
58188	if c.header_ == nil {
58189		c.header_ = make(http.Header)
58190	}
58191	return c.header_
58192}
58193
58194func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
58195	reqHeaders := make(http.Header)
58196	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58197	for k, v := range c.header_ {
58198		reqHeaders[k] = v
58199	}
58200	reqHeaders.Set("User-Agent", c.s.userAgent())
58201	var body io.Reader = nil
58202	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
58203	if err != nil {
58204		return nil, err
58205	}
58206	reqHeaders.Set("Content-Type", "application/json")
58207	c.urlParams_.Set("alt", alt)
58208	c.urlParams_.Set("prettyPrint", "false")
58209	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
58210	urls += "?" + c.urlParams_.Encode()
58211	req, err := http.NewRequest("PATCH", 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		"backendService": c.backendService,
58219	})
58220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58221}
58222
58223// Do executes the "compute.backendServices.patch" call.
58224// Exactly one of *Operation or error will be non-nil. Any non-2xx
58225// status code is an error. Response headers are in either
58226// *Operation.ServerResponse.Header or (if a response was returned at
58227// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58228// to check whether the returned error was because
58229// http.StatusNotModified was returned.
58230func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58231	gensupport.SetOptions(c.urlParams_, opts...)
58232	res, err := c.doRequest("json")
58233	if res != nil && res.StatusCode == http.StatusNotModified {
58234		if res.Body != nil {
58235			res.Body.Close()
58236		}
58237		return nil, &googleapi.Error{
58238			Code:   res.StatusCode,
58239			Header: res.Header,
58240		}
58241	}
58242	if err != nil {
58243		return nil, err
58244	}
58245	defer googleapi.CloseBody(res)
58246	if err := googleapi.CheckResponse(res); err != nil {
58247		return nil, err
58248	}
58249	ret := &Operation{
58250		ServerResponse: googleapi.ServerResponse{
58251			Header:         res.Header,
58252			HTTPStatusCode: res.StatusCode,
58253		},
58254	}
58255	target := &ret
58256	if err := gensupport.DecodeResponse(target, res); err != nil {
58257		return nil, err
58258	}
58259	return ret, nil
58260	// {
58261	//   "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.",
58262	//   "httpMethod": "PATCH",
58263	//   "id": "compute.backendServices.patch",
58264	//   "parameterOrder": [
58265	//     "project",
58266	//     "backendService"
58267	//   ],
58268	//   "parameters": {
58269	//     "backendService": {
58270	//       "description": "Name of the BackendService resource to patch.",
58271	//       "location": "path",
58272	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58273	//       "required": true,
58274	//       "type": "string"
58275	//     },
58276	//     "project": {
58277	//       "description": "Project ID for this request.",
58278	//       "location": "path",
58279	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58280	//       "required": true,
58281	//       "type": "string"
58282	//     },
58283	//     "requestId": {
58284	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58285	//       "location": "query",
58286	//       "type": "string"
58287	//     }
58288	//   },
58289	//   "path": "projects/{project}/global/backendServices/{backendService}",
58290	//   "request": {
58291	//     "$ref": "BackendService"
58292	//   },
58293	//   "response": {
58294	//     "$ref": "Operation"
58295	//   },
58296	//   "scopes": [
58297	//     "https://www.googleapis.com/auth/cloud-platform",
58298	//     "https://www.googleapis.com/auth/compute"
58299	//   ]
58300	// }
58301
58302}
58303
58304// method id "compute.backendServices.setEdgeSecurityPolicy":
58305
58306type BackendServicesSetEdgeSecurityPolicyCall struct {
58307	s                       *Service
58308	project                 string
58309	backendService          string
58310	securitypolicyreference *SecurityPolicyReference
58311	urlParams_              gensupport.URLParams
58312	ctx_                    context.Context
58313	header_                 http.Header
58314}
58315
58316// SetEdgeSecurityPolicy: Sets the edge security policy for the
58317// specified backend service.
58318//
58319// - backendService: Name of the BackendService resource to which the
58320//   edge security policy should be set. The name should conform to
58321//   RFC1035.
58322// - project: Project ID for this request.
58323func (r *BackendServicesService) SetEdgeSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetEdgeSecurityPolicyCall {
58324	c := &BackendServicesSetEdgeSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58325	c.project = project
58326	c.backendService = backendService
58327	c.securitypolicyreference = securitypolicyreference
58328	return c
58329}
58330
58331// RequestId sets the optional parameter "requestId": An optional
58332// request ID to identify requests. Specify a unique request ID so that
58333// if you must retry your request, the server will know to ignore the
58334// request if it has already been completed.
58335//
58336// For example, consider a situation where you make an initial request
58337// and the request times out. If you make the request again with the
58338// same request ID, the server can check if original operation with the
58339// same request ID was received, and if so, will ignore the second
58340// request. This prevents clients from accidentally creating duplicate
58341// commitments.
58342//
58343// The request ID must be a valid UUID with the exception that zero UUID
58344// is not supported (00000000-0000-0000-0000-000000000000).
58345func (c *BackendServicesSetEdgeSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetEdgeSecurityPolicyCall {
58346	c.urlParams_.Set("requestId", requestId)
58347	return c
58348}
58349
58350// Fields allows partial responses to be retrieved. See
58351// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58352// for more information.
58353func (c *BackendServicesSetEdgeSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetEdgeSecurityPolicyCall {
58354	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58355	return c
58356}
58357
58358// Context sets the context to be used in this call's Do method. Any
58359// pending HTTP request will be aborted if the provided context is
58360// canceled.
58361func (c *BackendServicesSetEdgeSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetEdgeSecurityPolicyCall {
58362	c.ctx_ = ctx
58363	return c
58364}
58365
58366// Header returns an http.Header that can be modified by the caller to
58367// add HTTP headers to the request.
58368func (c *BackendServicesSetEdgeSecurityPolicyCall) Header() http.Header {
58369	if c.header_ == nil {
58370		c.header_ = make(http.Header)
58371	}
58372	return c.header_
58373}
58374
58375func (c *BackendServicesSetEdgeSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
58376	reqHeaders := make(http.Header)
58377	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58378	for k, v := range c.header_ {
58379		reqHeaders[k] = v
58380	}
58381	reqHeaders.Set("User-Agent", c.s.userAgent())
58382	var body io.Reader = nil
58383	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
58384	if err != nil {
58385		return nil, err
58386	}
58387	reqHeaders.Set("Content-Type", "application/json")
58388	c.urlParams_.Set("alt", alt)
58389	c.urlParams_.Set("prettyPrint", "false")
58390	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy")
58391	urls += "?" + c.urlParams_.Encode()
58392	req, err := http.NewRequest("POST", urls, body)
58393	if err != nil {
58394		return nil, err
58395	}
58396	req.Header = reqHeaders
58397	googleapi.Expand(req.URL, map[string]string{
58398		"project":        c.project,
58399		"backendService": c.backendService,
58400	})
58401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58402}
58403
58404// Do executes the "compute.backendServices.setEdgeSecurityPolicy" call.
58405// Exactly one of *Operation or error will be non-nil. Any non-2xx
58406// status code is an error. Response headers are in either
58407// *Operation.ServerResponse.Header or (if a response was returned at
58408// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58409// to check whether the returned error was because
58410// http.StatusNotModified was returned.
58411func (c *BackendServicesSetEdgeSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58412	gensupport.SetOptions(c.urlParams_, opts...)
58413	res, err := c.doRequest("json")
58414	if res != nil && res.StatusCode == http.StatusNotModified {
58415		if res.Body != nil {
58416			res.Body.Close()
58417		}
58418		return nil, &googleapi.Error{
58419			Code:   res.StatusCode,
58420			Header: res.Header,
58421		}
58422	}
58423	if err != nil {
58424		return nil, err
58425	}
58426	defer googleapi.CloseBody(res)
58427	if err := googleapi.CheckResponse(res); err != nil {
58428		return nil, err
58429	}
58430	ret := &Operation{
58431		ServerResponse: googleapi.ServerResponse{
58432			Header:         res.Header,
58433			HTTPStatusCode: res.StatusCode,
58434		},
58435	}
58436	target := &ret
58437	if err := gensupport.DecodeResponse(target, res); err != nil {
58438		return nil, err
58439	}
58440	return ret, nil
58441	// {
58442	//   "description": "Sets the edge security policy for the specified backend service.",
58443	//   "httpMethod": "POST",
58444	//   "id": "compute.backendServices.setEdgeSecurityPolicy",
58445	//   "parameterOrder": [
58446	//     "project",
58447	//     "backendService"
58448	//   ],
58449	//   "parameters": {
58450	//     "backendService": {
58451	//       "description": "Name of the BackendService resource to which the edge security policy should be set. The name should conform to RFC1035.",
58452	//       "location": "path",
58453	//       "required": true,
58454	//       "type": "string"
58455	//     },
58456	//     "project": {
58457	//       "description": "Project ID for this request.",
58458	//       "location": "path",
58459	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58460	//       "required": true,
58461	//       "type": "string"
58462	//     },
58463	//     "requestId": {
58464	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58465	//       "location": "query",
58466	//       "type": "string"
58467	//     }
58468	//   },
58469	//   "path": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy",
58470	//   "request": {
58471	//     "$ref": "SecurityPolicyReference"
58472	//   },
58473	//   "response": {
58474	//     "$ref": "Operation"
58475	//   },
58476	//   "scopes": [
58477	//     "https://www.googleapis.com/auth/cloud-platform",
58478	//     "https://www.googleapis.com/auth/compute"
58479	//   ]
58480	// }
58481
58482}
58483
58484// method id "compute.backendServices.setIamPolicy":
58485
58486type BackendServicesSetIamPolicyCall struct {
58487	s                      *Service
58488	project                string
58489	resource               string
58490	globalsetpolicyrequest *GlobalSetPolicyRequest
58491	urlParams_             gensupport.URLParams
58492	ctx_                   context.Context
58493	header_                http.Header
58494}
58495
58496// SetIamPolicy: Sets the access control policy on the specified
58497// resource. Replaces any existing policy.
58498//
58499// - project: Project ID for this request.
58500// - resource: Name or id of the resource for this request.
58501func (r *BackendServicesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *BackendServicesSetIamPolicyCall {
58502	c := &BackendServicesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58503	c.project = project
58504	c.resource = resource
58505	c.globalsetpolicyrequest = globalsetpolicyrequest
58506	return c
58507}
58508
58509// Fields allows partial responses to be retrieved. See
58510// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58511// for more information.
58512func (c *BackendServicesSetIamPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetIamPolicyCall {
58513	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58514	return c
58515}
58516
58517// Context sets the context to be used in this call's Do method. Any
58518// pending HTTP request will be aborted if the provided context is
58519// canceled.
58520func (c *BackendServicesSetIamPolicyCall) Context(ctx context.Context) *BackendServicesSetIamPolicyCall {
58521	c.ctx_ = ctx
58522	return c
58523}
58524
58525// Header returns an http.Header that can be modified by the caller to
58526// add HTTP headers to the request.
58527func (c *BackendServicesSetIamPolicyCall) Header() http.Header {
58528	if c.header_ == nil {
58529		c.header_ = make(http.Header)
58530	}
58531	return c.header_
58532}
58533
58534func (c *BackendServicesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
58535	reqHeaders := make(http.Header)
58536	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58537	for k, v := range c.header_ {
58538		reqHeaders[k] = v
58539	}
58540	reqHeaders.Set("User-Agent", c.s.userAgent())
58541	var body io.Reader = nil
58542	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
58543	if err != nil {
58544		return nil, err
58545	}
58546	reqHeaders.Set("Content-Type", "application/json")
58547	c.urlParams_.Set("alt", alt)
58548	c.urlParams_.Set("prettyPrint", "false")
58549	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{resource}/setIamPolicy")
58550	urls += "?" + c.urlParams_.Encode()
58551	req, err := http.NewRequest("POST", urls, body)
58552	if err != nil {
58553		return nil, err
58554	}
58555	req.Header = reqHeaders
58556	googleapi.Expand(req.URL, map[string]string{
58557		"project":  c.project,
58558		"resource": c.resource,
58559	})
58560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58561}
58562
58563// Do executes the "compute.backendServices.setIamPolicy" call.
58564// Exactly one of *Policy or error will be non-nil. Any non-2xx status
58565// code is an error. Response headers are in either
58566// *Policy.ServerResponse.Header or (if a response was returned at all)
58567// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
58568// check whether the returned error was because http.StatusNotModified
58569// was returned.
58570func (c *BackendServicesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
58571	gensupport.SetOptions(c.urlParams_, opts...)
58572	res, err := c.doRequest("json")
58573	if res != nil && res.StatusCode == http.StatusNotModified {
58574		if res.Body != nil {
58575			res.Body.Close()
58576		}
58577		return nil, &googleapi.Error{
58578			Code:   res.StatusCode,
58579			Header: res.Header,
58580		}
58581	}
58582	if err != nil {
58583		return nil, err
58584	}
58585	defer googleapi.CloseBody(res)
58586	if err := googleapi.CheckResponse(res); err != nil {
58587		return nil, err
58588	}
58589	ret := &Policy{
58590		ServerResponse: googleapi.ServerResponse{
58591			Header:         res.Header,
58592			HTTPStatusCode: res.StatusCode,
58593		},
58594	}
58595	target := &ret
58596	if err := gensupport.DecodeResponse(target, res); err != nil {
58597		return nil, err
58598	}
58599	return ret, nil
58600	// {
58601	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
58602	//   "httpMethod": "POST",
58603	//   "id": "compute.backendServices.setIamPolicy",
58604	//   "parameterOrder": [
58605	//     "project",
58606	//     "resource"
58607	//   ],
58608	//   "parameters": {
58609	//     "project": {
58610	//       "description": "Project ID for this request.",
58611	//       "location": "path",
58612	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58613	//       "required": true,
58614	//       "type": "string"
58615	//     },
58616	//     "resource": {
58617	//       "description": "Name or id of the resource for this request.",
58618	//       "location": "path",
58619	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58620	//       "required": true,
58621	//       "type": "string"
58622	//     }
58623	//   },
58624	//   "path": "projects/{project}/global/backendServices/{resource}/setIamPolicy",
58625	//   "request": {
58626	//     "$ref": "GlobalSetPolicyRequest"
58627	//   },
58628	//   "response": {
58629	//     "$ref": "Policy"
58630	//   },
58631	//   "scopes": [
58632	//     "https://www.googleapis.com/auth/cloud-platform",
58633	//     "https://www.googleapis.com/auth/compute"
58634	//   ]
58635	// }
58636
58637}
58638
58639// method id "compute.backendServices.setSecurityPolicy":
58640
58641type BackendServicesSetSecurityPolicyCall struct {
58642	s                       *Service
58643	project                 string
58644	backendService          string
58645	securitypolicyreference *SecurityPolicyReference
58646	urlParams_              gensupport.URLParams
58647	ctx_                    context.Context
58648	header_                 http.Header
58649}
58650
58651// SetSecurityPolicy: Sets the Google Cloud Armor security policy for
58652// the specified backend service. For more information, see Google Cloud
58653// Armor Overview
58654//
58655// - backendService: Name of the BackendService resource to which the
58656//   security policy should be set. The name should conform to RFC1035.
58657// - project: Project ID for this request.
58658func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
58659	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58660	c.project = project
58661	c.backendService = backendService
58662	c.securitypolicyreference = securitypolicyreference
58663	return c
58664}
58665
58666// RequestId sets the optional parameter "requestId": An optional
58667// request ID to identify requests. Specify a unique request ID so that
58668// if you must retry your request, the server will know to ignore the
58669// request if it has already been completed.
58670//
58671// For example, consider a situation where you make an initial request
58672// and the request times out. If you make the request again with the
58673// same request ID, the server can check if original operation with the
58674// same request ID was received, and if so, will ignore the second
58675// request. This prevents clients from accidentally creating duplicate
58676// commitments.
58677//
58678// The request ID must be a valid UUID with the exception that zero UUID
58679// is not supported (00000000-0000-0000-0000-000000000000).
58680func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
58681	c.urlParams_.Set("requestId", requestId)
58682	return c
58683}
58684
58685// Fields allows partial responses to be retrieved. See
58686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58687// for more information.
58688func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
58689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58690	return c
58691}
58692
58693// Context sets the context to be used in this call's Do method. Any
58694// pending HTTP request will be aborted if the provided context is
58695// canceled.
58696func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
58697	c.ctx_ = ctx
58698	return c
58699}
58700
58701// Header returns an http.Header that can be modified by the caller to
58702// add HTTP headers to the request.
58703func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
58704	if c.header_ == nil {
58705		c.header_ = make(http.Header)
58706	}
58707	return c.header_
58708}
58709
58710func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
58711	reqHeaders := make(http.Header)
58712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58713	for k, v := range c.header_ {
58714		reqHeaders[k] = v
58715	}
58716	reqHeaders.Set("User-Agent", c.s.userAgent())
58717	var body io.Reader = nil
58718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
58719	if err != nil {
58720		return nil, err
58721	}
58722	reqHeaders.Set("Content-Type", "application/json")
58723	c.urlParams_.Set("alt", alt)
58724	c.urlParams_.Set("prettyPrint", "false")
58725	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy")
58726	urls += "?" + c.urlParams_.Encode()
58727	req, err := http.NewRequest("POST", urls, body)
58728	if err != nil {
58729		return nil, err
58730	}
58731	req.Header = reqHeaders
58732	googleapi.Expand(req.URL, map[string]string{
58733		"project":        c.project,
58734		"backendService": c.backendService,
58735	})
58736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58737}
58738
58739// Do executes the "compute.backendServices.setSecurityPolicy" call.
58740// Exactly one of *Operation or error will be non-nil. Any non-2xx
58741// status code is an error. Response headers are in either
58742// *Operation.ServerResponse.Header or (if a response was returned at
58743// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58744// to check whether the returned error was because
58745// http.StatusNotModified was returned.
58746func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58747	gensupport.SetOptions(c.urlParams_, opts...)
58748	res, err := c.doRequest("json")
58749	if res != nil && res.StatusCode == http.StatusNotModified {
58750		if res.Body != nil {
58751			res.Body.Close()
58752		}
58753		return nil, &googleapi.Error{
58754			Code:   res.StatusCode,
58755			Header: res.Header,
58756		}
58757	}
58758	if err != nil {
58759		return nil, err
58760	}
58761	defer googleapi.CloseBody(res)
58762	if err := googleapi.CheckResponse(res); err != nil {
58763		return nil, err
58764	}
58765	ret := &Operation{
58766		ServerResponse: googleapi.ServerResponse{
58767			Header:         res.Header,
58768			HTTPStatusCode: res.StatusCode,
58769		},
58770	}
58771	target := &ret
58772	if err := gensupport.DecodeResponse(target, res); err != nil {
58773		return nil, err
58774	}
58775	return ret, nil
58776	// {
58777	//   "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview",
58778	//   "httpMethod": "POST",
58779	//   "id": "compute.backendServices.setSecurityPolicy",
58780	//   "parameterOrder": [
58781	//     "project",
58782	//     "backendService"
58783	//   ],
58784	//   "parameters": {
58785	//     "backendService": {
58786	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
58787	//       "location": "path",
58788	//       "required": true,
58789	//       "type": "string"
58790	//     },
58791	//     "project": {
58792	//       "description": "Project ID for this request.",
58793	//       "location": "path",
58794	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58795	//       "required": true,
58796	//       "type": "string"
58797	//     },
58798	//     "requestId": {
58799	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58800	//       "location": "query",
58801	//       "type": "string"
58802	//     }
58803	//   },
58804	//   "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
58805	//   "request": {
58806	//     "$ref": "SecurityPolicyReference"
58807	//   },
58808	//   "response": {
58809	//     "$ref": "Operation"
58810	//   },
58811	//   "scopes": [
58812	//     "https://www.googleapis.com/auth/cloud-platform",
58813	//     "https://www.googleapis.com/auth/compute"
58814	//   ]
58815	// }
58816
58817}
58818
58819// method id "compute.backendServices.testIamPermissions":
58820
58821type BackendServicesTestIamPermissionsCall struct {
58822	s                      *Service
58823	project                string
58824	resource               string
58825	testpermissionsrequest *TestPermissionsRequest
58826	urlParams_             gensupport.URLParams
58827	ctx_                   context.Context
58828	header_                http.Header
58829}
58830
58831// TestIamPermissions: Returns permissions that a caller has on the
58832// specified resource.
58833//
58834// - project: Project ID for this request.
58835// - resource: Name or id of the resource for this request.
58836func (r *BackendServicesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendServicesTestIamPermissionsCall {
58837	c := &BackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58838	c.project = project
58839	c.resource = resource
58840	c.testpermissionsrequest = testpermissionsrequest
58841	return c
58842}
58843
58844// Fields allows partial responses to be retrieved. See
58845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58846// for more information.
58847func (c *BackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendServicesTestIamPermissionsCall {
58848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58849	return c
58850}
58851
58852// Context sets the context to be used in this call's Do method. Any
58853// pending HTTP request will be aborted if the provided context is
58854// canceled.
58855func (c *BackendServicesTestIamPermissionsCall) Context(ctx context.Context) *BackendServicesTestIamPermissionsCall {
58856	c.ctx_ = ctx
58857	return c
58858}
58859
58860// Header returns an http.Header that can be modified by the caller to
58861// add HTTP headers to the request.
58862func (c *BackendServicesTestIamPermissionsCall) Header() http.Header {
58863	if c.header_ == nil {
58864		c.header_ = make(http.Header)
58865	}
58866	return c.header_
58867}
58868
58869func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
58870	reqHeaders := make(http.Header)
58871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58872	for k, v := range c.header_ {
58873		reqHeaders[k] = v
58874	}
58875	reqHeaders.Set("User-Agent", c.s.userAgent())
58876	var body io.Reader = nil
58877	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
58878	if err != nil {
58879		return nil, err
58880	}
58881	reqHeaders.Set("Content-Type", "application/json")
58882	c.urlParams_.Set("alt", alt)
58883	c.urlParams_.Set("prettyPrint", "false")
58884	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{resource}/testIamPermissions")
58885	urls += "?" + c.urlParams_.Encode()
58886	req, err := http.NewRequest("POST", urls, body)
58887	if err != nil {
58888		return nil, err
58889	}
58890	req.Header = reqHeaders
58891	googleapi.Expand(req.URL, map[string]string{
58892		"project":  c.project,
58893		"resource": c.resource,
58894	})
58895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58896}
58897
58898// Do executes the "compute.backendServices.testIamPermissions" call.
58899// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
58900// non-2xx status code is an error. Response headers are in either
58901// *TestPermissionsResponse.ServerResponse.Header or (if a response was
58902// returned at all) in error.(*googleapi.Error).Header. Use
58903// googleapi.IsNotModified to check whether the returned error was
58904// because http.StatusNotModified was returned.
58905func (c *BackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
58906	gensupport.SetOptions(c.urlParams_, opts...)
58907	res, err := c.doRequest("json")
58908	if res != nil && res.StatusCode == http.StatusNotModified {
58909		if res.Body != nil {
58910			res.Body.Close()
58911		}
58912		return nil, &googleapi.Error{
58913			Code:   res.StatusCode,
58914			Header: res.Header,
58915		}
58916	}
58917	if err != nil {
58918		return nil, err
58919	}
58920	defer googleapi.CloseBody(res)
58921	if err := googleapi.CheckResponse(res); err != nil {
58922		return nil, err
58923	}
58924	ret := &TestPermissionsResponse{
58925		ServerResponse: googleapi.ServerResponse{
58926			Header:         res.Header,
58927			HTTPStatusCode: res.StatusCode,
58928		},
58929	}
58930	target := &ret
58931	if err := gensupport.DecodeResponse(target, res); err != nil {
58932		return nil, err
58933	}
58934	return ret, nil
58935	// {
58936	//   "description": "Returns permissions that a caller has on the specified resource.",
58937	//   "httpMethod": "POST",
58938	//   "id": "compute.backendServices.testIamPermissions",
58939	//   "parameterOrder": [
58940	//     "project",
58941	//     "resource"
58942	//   ],
58943	//   "parameters": {
58944	//     "project": {
58945	//       "description": "Project ID for this request.",
58946	//       "location": "path",
58947	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58948	//       "required": true,
58949	//       "type": "string"
58950	//     },
58951	//     "resource": {
58952	//       "description": "Name or id of the resource for this request.",
58953	//       "location": "path",
58954	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58955	//       "required": true,
58956	//       "type": "string"
58957	//     }
58958	//   },
58959	//   "path": "projects/{project}/global/backendServices/{resource}/testIamPermissions",
58960	//   "request": {
58961	//     "$ref": "TestPermissionsRequest"
58962	//   },
58963	//   "response": {
58964	//     "$ref": "TestPermissionsResponse"
58965	//   },
58966	//   "scopes": [
58967	//     "https://www.googleapis.com/auth/cloud-platform",
58968	//     "https://www.googleapis.com/auth/compute",
58969	//     "https://www.googleapis.com/auth/compute.readonly"
58970	//   ]
58971	// }
58972
58973}
58974
58975// method id "compute.backendServices.update":
58976
58977type BackendServicesUpdateCall struct {
58978	s              *Service
58979	project        string
58980	backendService string
58981	backendservice *BackendService
58982	urlParams_     gensupport.URLParams
58983	ctx_           context.Context
58984	header_        http.Header
58985}
58986
58987// Update: Updates the specified BackendService resource with the data
58988// included in the request. For more information, see Backend services
58989// overview.
58990//
58991// - backendService: Name of the BackendService resource to update.
58992// - project: Project ID for this request.
58993// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
58994func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
58995	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58996	c.project = project
58997	c.backendService = backendService
58998	c.backendservice = backendservice
58999	return c
59000}
59001
59002// RequestId sets the optional parameter "requestId": An optional
59003// request ID to identify requests. Specify a unique request ID so that
59004// if you must retry your request, the server will know to ignore the
59005// request if it has already been completed.
59006//
59007// For example, consider a situation where you make an initial request
59008// and the request times out. If you make the request again with the
59009// same request ID, the server can check if original operation with the
59010// same request ID was received, and if so, will ignore the second
59011// request. This prevents clients from accidentally creating duplicate
59012// commitments.
59013//
59014// The request ID must be a valid UUID with the exception that zero UUID
59015// is not supported (00000000-0000-0000-0000-000000000000).
59016func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
59017	c.urlParams_.Set("requestId", requestId)
59018	return c
59019}
59020
59021// Fields allows partial responses to be retrieved. See
59022// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59023// for more information.
59024func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
59025	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59026	return c
59027}
59028
59029// Context sets the context to be used in this call's Do method. Any
59030// pending HTTP request will be aborted if the provided context is
59031// canceled.
59032func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
59033	c.ctx_ = ctx
59034	return c
59035}
59036
59037// Header returns an http.Header that can be modified by the caller to
59038// add HTTP headers to the request.
59039func (c *BackendServicesUpdateCall) Header() http.Header {
59040	if c.header_ == nil {
59041		c.header_ = make(http.Header)
59042	}
59043	return c.header_
59044}
59045
59046func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
59047	reqHeaders := make(http.Header)
59048	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59049	for k, v := range c.header_ {
59050		reqHeaders[k] = v
59051	}
59052	reqHeaders.Set("User-Agent", c.s.userAgent())
59053	var body io.Reader = nil
59054	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
59055	if err != nil {
59056		return nil, err
59057	}
59058	reqHeaders.Set("Content-Type", "application/json")
59059	c.urlParams_.Set("alt", alt)
59060	c.urlParams_.Set("prettyPrint", "false")
59061	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
59062	urls += "?" + c.urlParams_.Encode()
59063	req, err := http.NewRequest("PUT", urls, body)
59064	if err != nil {
59065		return nil, err
59066	}
59067	req.Header = reqHeaders
59068	googleapi.Expand(req.URL, map[string]string{
59069		"project":        c.project,
59070		"backendService": c.backendService,
59071	})
59072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59073}
59074
59075// Do executes the "compute.backendServices.update" call.
59076// Exactly one of *Operation or error will be non-nil. Any non-2xx
59077// status code is an error. Response headers are in either
59078// *Operation.ServerResponse.Header or (if a response was returned at
59079// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59080// to check whether the returned error was because
59081// http.StatusNotModified was returned.
59082func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59083	gensupport.SetOptions(c.urlParams_, opts...)
59084	res, err := c.doRequest("json")
59085	if res != nil && res.StatusCode == http.StatusNotModified {
59086		if res.Body != nil {
59087			res.Body.Close()
59088		}
59089		return nil, &googleapi.Error{
59090			Code:   res.StatusCode,
59091			Header: res.Header,
59092		}
59093	}
59094	if err != nil {
59095		return nil, err
59096	}
59097	defer googleapi.CloseBody(res)
59098	if err := googleapi.CheckResponse(res); err != nil {
59099		return nil, err
59100	}
59101	ret := &Operation{
59102		ServerResponse: googleapi.ServerResponse{
59103			Header:         res.Header,
59104			HTTPStatusCode: res.StatusCode,
59105		},
59106	}
59107	target := &ret
59108	if err := gensupport.DecodeResponse(target, res); err != nil {
59109		return nil, err
59110	}
59111	return ret, nil
59112	// {
59113	//   "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.",
59114	//   "httpMethod": "PUT",
59115	//   "id": "compute.backendServices.update",
59116	//   "parameterOrder": [
59117	//     "project",
59118	//     "backendService"
59119	//   ],
59120	//   "parameters": {
59121	//     "backendService": {
59122	//       "description": "Name of the BackendService resource to update.",
59123	//       "location": "path",
59124	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59125	//       "required": true,
59126	//       "type": "string"
59127	//     },
59128	//     "project": {
59129	//       "description": "Project ID for this request.",
59130	//       "location": "path",
59131	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59132	//       "required": true,
59133	//       "type": "string"
59134	//     },
59135	//     "requestId": {
59136	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59137	//       "location": "query",
59138	//       "type": "string"
59139	//     }
59140	//   },
59141	//   "path": "projects/{project}/global/backendServices/{backendService}",
59142	//   "request": {
59143	//     "$ref": "BackendService"
59144	//   },
59145	//   "response": {
59146	//     "$ref": "Operation"
59147	//   },
59148	//   "scopes": [
59149	//     "https://www.googleapis.com/auth/cloud-platform",
59150	//     "https://www.googleapis.com/auth/compute"
59151	//   ]
59152	// }
59153
59154}
59155
59156// method id "compute.diskTypes.aggregatedList":
59157
59158type DiskTypesAggregatedListCall struct {
59159	s            *Service
59160	project      string
59161	urlParams_   gensupport.URLParams
59162	ifNoneMatch_ string
59163	ctx_         context.Context
59164	header_      http.Header
59165}
59166
59167// AggregatedList: Retrieves an aggregated list of disk types.
59168//
59169// - project: Project ID for this request.
59170// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
59171func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
59172	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59173	c.project = project
59174	return c
59175}
59176
59177// Filter sets the optional parameter "filter": A filter expression that
59178// filters resources listed in the response. The expression must specify
59179// the field name, a comparison operator, and the value that you want to
59180// use for filtering. The value must be a string, a number, or a
59181// boolean. The comparison operator must be either `=`, `!=`, `>`, or
59182// `<`.
59183//
59184// For example, if you are filtering Compute Engine instances, you can
59185// exclude instances named `example-instance` by specifying `name !=
59186// example-instance`.
59187//
59188// You can also filter nested fields. For example, you could specify
59189// `scheduling.automaticRestart = false` to include instances only if
59190// they are not scheduled for automatic restarts. You can use filtering
59191// on nested fields to filter based on resource labels.
59192//
59193// To filter on multiple expressions, provide each separate expression
59194// within parentheses. For example: ``` (scheduling.automaticRestart =
59195// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
59196// is an `AND` expression. However, you can include `AND` and `OR`
59197// expressions explicitly. For example: ``` (cpuPlatform = "Intel
59198// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
59199// (scheduling.automaticRestart = true) ```
59200func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
59201	c.urlParams_.Set("filter", filter)
59202	return c
59203}
59204
59205// IncludeAllScopes sets the optional parameter "includeAllScopes":
59206// Indicates whether every visible scope for each scope type (zone,
59207// region, global) should be included in the response. For new resource
59208// types added after this field, the flag has no effect as new resource
59209// types will always include every visible scope for each scope type in
59210// response. For resource types which predate this field, if this flag
59211// is omitted or false, only scopes of the scope types where the
59212// resource type is expected to be found will be included.
59213func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
59214	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
59215	return c
59216}
59217
59218// MaxResults sets the optional parameter "maxResults": The maximum
59219// number of results per page that should be returned. If the number of
59220// available results is larger than `maxResults`, Compute Engine returns
59221// a `nextPageToken` that can be used to get the next page of results in
59222// subsequent list requests. Acceptable values are `0` to `500`,
59223// inclusive. (Default: `500`)
59224func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
59225	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59226	return c
59227}
59228
59229// OrderBy sets the optional parameter "orderBy": Sorts list results by
59230// a certain order. By default, results are returned in alphanumerical
59231// order based on the resource name.
59232//
59233// You can also sort results in descending order based on the creation
59234// timestamp using `orderBy="creationTimestamp desc". This sorts
59235// results based on the `creationTimestamp` field in reverse
59236// chronological order (newest result first). Use this to sort resources
59237// like operations so that the newest operation is returned
59238// first.
59239//
59240// Currently, only sorting by `name` or `creationTimestamp desc` is
59241// supported.
59242func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
59243	c.urlParams_.Set("orderBy", orderBy)
59244	return c
59245}
59246
59247// PageToken sets the optional parameter "pageToken": Specifies a page
59248// token to use. Set `pageToken` to the `nextPageToken` returned by a
59249// previous list request to get the next page of results.
59250func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
59251	c.urlParams_.Set("pageToken", pageToken)
59252	return c
59253}
59254
59255// ReturnPartialSuccess sets the optional parameter
59256// "returnPartialSuccess": Opt-in for partial success behavior which
59257// provides partial results in case of failure. The default value is
59258// false.
59259func (c *DiskTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesAggregatedListCall {
59260	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
59261	return c
59262}
59263
59264// Fields allows partial responses to be retrieved. See
59265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59266// for more information.
59267func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
59268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59269	return c
59270}
59271
59272// IfNoneMatch sets the optional parameter which makes the operation
59273// fail if the object's ETag matches the given value. This is useful for
59274// getting updates only after the object has changed since the last
59275// request. Use googleapi.IsNotModified to check whether the response
59276// error from Do is the result of In-None-Match.
59277func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
59278	c.ifNoneMatch_ = entityTag
59279	return c
59280}
59281
59282// Context sets the context to be used in this call's Do method. Any
59283// pending HTTP request will be aborted if the provided context is
59284// canceled.
59285func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
59286	c.ctx_ = ctx
59287	return c
59288}
59289
59290// Header returns an http.Header that can be modified by the caller to
59291// add HTTP headers to the request.
59292func (c *DiskTypesAggregatedListCall) Header() http.Header {
59293	if c.header_ == nil {
59294		c.header_ = make(http.Header)
59295	}
59296	return c.header_
59297}
59298
59299func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
59300	reqHeaders := make(http.Header)
59301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59302	for k, v := range c.header_ {
59303		reqHeaders[k] = v
59304	}
59305	reqHeaders.Set("User-Agent", c.s.userAgent())
59306	if c.ifNoneMatch_ != "" {
59307		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59308	}
59309	var body io.Reader = nil
59310	c.urlParams_.Set("alt", alt)
59311	c.urlParams_.Set("prettyPrint", "false")
59312	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/diskTypes")
59313	urls += "?" + c.urlParams_.Encode()
59314	req, err := http.NewRequest("GET", urls, body)
59315	if err != nil {
59316		return nil, err
59317	}
59318	req.Header = reqHeaders
59319	googleapi.Expand(req.URL, map[string]string{
59320		"project": c.project,
59321	})
59322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59323}
59324
59325// Do executes the "compute.diskTypes.aggregatedList" call.
59326// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
59327// non-2xx status code is an error. Response headers are in either
59328// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
59329// returned at all) in error.(*googleapi.Error).Header. Use
59330// googleapi.IsNotModified to check whether the returned error was
59331// because http.StatusNotModified was returned.
59332func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
59333	gensupport.SetOptions(c.urlParams_, opts...)
59334	res, err := c.doRequest("json")
59335	if res != nil && res.StatusCode == http.StatusNotModified {
59336		if res.Body != nil {
59337			res.Body.Close()
59338		}
59339		return nil, &googleapi.Error{
59340			Code:   res.StatusCode,
59341			Header: res.Header,
59342		}
59343	}
59344	if err != nil {
59345		return nil, err
59346	}
59347	defer googleapi.CloseBody(res)
59348	if err := googleapi.CheckResponse(res); err != nil {
59349		return nil, err
59350	}
59351	ret := &DiskTypeAggregatedList{
59352		ServerResponse: googleapi.ServerResponse{
59353			Header:         res.Header,
59354			HTTPStatusCode: res.StatusCode,
59355		},
59356	}
59357	target := &ret
59358	if err := gensupport.DecodeResponse(target, res); err != nil {
59359		return nil, err
59360	}
59361	return ret, nil
59362	// {
59363	//   "description": "Retrieves an aggregated list of disk types.",
59364	//   "httpMethod": "GET",
59365	//   "id": "compute.diskTypes.aggregatedList",
59366	//   "parameterOrder": [
59367	//     "project"
59368	//   ],
59369	//   "parameters": {
59370	//     "filter": {
59371	//       "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) ```",
59372	//       "location": "query",
59373	//       "type": "string"
59374	//     },
59375	//     "includeAllScopes": {
59376	//       "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.",
59377	//       "location": "query",
59378	//       "type": "boolean"
59379	//     },
59380	//     "maxResults": {
59381	//       "default": "500",
59382	//       "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`)",
59383	//       "format": "uint32",
59384	//       "location": "query",
59385	//       "minimum": "0",
59386	//       "type": "integer"
59387	//     },
59388	//     "orderBy": {
59389	//       "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.",
59390	//       "location": "query",
59391	//       "type": "string"
59392	//     },
59393	//     "pageToken": {
59394	//       "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.",
59395	//       "location": "query",
59396	//       "type": "string"
59397	//     },
59398	//     "project": {
59399	//       "description": "Project ID for this request.",
59400	//       "location": "path",
59401	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59402	//       "required": true,
59403	//       "type": "string"
59404	//     },
59405	//     "returnPartialSuccess": {
59406	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
59407	//       "location": "query",
59408	//       "type": "boolean"
59409	//     }
59410	//   },
59411	//   "path": "projects/{project}/aggregated/diskTypes",
59412	//   "response": {
59413	//     "$ref": "DiskTypeAggregatedList"
59414	//   },
59415	//   "scopes": [
59416	//     "https://www.googleapis.com/auth/cloud-platform",
59417	//     "https://www.googleapis.com/auth/compute",
59418	//     "https://www.googleapis.com/auth/compute.readonly"
59419	//   ]
59420	// }
59421
59422}
59423
59424// Pages invokes f for each page of results.
59425// A non-nil error returned from f will halt the iteration.
59426// The provided context supersedes any context provided to the Context method.
59427func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
59428	c.ctx_ = ctx
59429	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59430	for {
59431		x, err := c.Do()
59432		if err != nil {
59433			return err
59434		}
59435		if err := f(x); err != nil {
59436			return err
59437		}
59438		if x.NextPageToken == "" {
59439			return nil
59440		}
59441		c.PageToken(x.NextPageToken)
59442	}
59443}
59444
59445// method id "compute.diskTypes.get":
59446
59447type DiskTypesGetCall struct {
59448	s            *Service
59449	project      string
59450	zone         string
59451	diskType     string
59452	urlParams_   gensupport.URLParams
59453	ifNoneMatch_ string
59454	ctx_         context.Context
59455	header_      http.Header
59456}
59457
59458// Get: Returns the specified disk type. Gets a list of available disk
59459// types by making a list() request.
59460//
59461// - diskType: Name of the disk type to return.
59462// - project: Project ID for this request.
59463// - zone: The name of the zone for this request.
59464// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
59465func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
59466	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59467	c.project = project
59468	c.zone = zone
59469	c.diskType = diskType
59470	return c
59471}
59472
59473// Fields allows partial responses to be retrieved. See
59474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59475// for more information.
59476func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
59477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59478	return c
59479}
59480
59481// IfNoneMatch sets the optional parameter which makes the operation
59482// fail if the object's ETag matches the given value. This is useful for
59483// getting updates only after the object has changed since the last
59484// request. Use googleapi.IsNotModified to check whether the response
59485// error from Do is the result of In-None-Match.
59486func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
59487	c.ifNoneMatch_ = entityTag
59488	return c
59489}
59490
59491// Context sets the context to be used in this call's Do method. Any
59492// pending HTTP request will be aborted if the provided context is
59493// canceled.
59494func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
59495	c.ctx_ = ctx
59496	return c
59497}
59498
59499// Header returns an http.Header that can be modified by the caller to
59500// add HTTP headers to the request.
59501func (c *DiskTypesGetCall) Header() http.Header {
59502	if c.header_ == nil {
59503		c.header_ = make(http.Header)
59504	}
59505	return c.header_
59506}
59507
59508func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
59509	reqHeaders := make(http.Header)
59510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59511	for k, v := range c.header_ {
59512		reqHeaders[k] = v
59513	}
59514	reqHeaders.Set("User-Agent", c.s.userAgent())
59515	if c.ifNoneMatch_ != "" {
59516		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59517	}
59518	var body io.Reader = nil
59519	c.urlParams_.Set("alt", alt)
59520	c.urlParams_.Set("prettyPrint", "false")
59521	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes/{diskType}")
59522	urls += "?" + c.urlParams_.Encode()
59523	req, err := http.NewRequest("GET", urls, body)
59524	if err != nil {
59525		return nil, err
59526	}
59527	req.Header = reqHeaders
59528	googleapi.Expand(req.URL, map[string]string{
59529		"project":  c.project,
59530		"zone":     c.zone,
59531		"diskType": c.diskType,
59532	})
59533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59534}
59535
59536// Do executes the "compute.diskTypes.get" call.
59537// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
59538// code is an error. Response headers are in either
59539// *DiskType.ServerResponse.Header or (if a response was returned at
59540// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59541// to check whether the returned error was because
59542// http.StatusNotModified was returned.
59543func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
59544	gensupport.SetOptions(c.urlParams_, opts...)
59545	res, err := c.doRequest("json")
59546	if res != nil && res.StatusCode == http.StatusNotModified {
59547		if res.Body != nil {
59548			res.Body.Close()
59549		}
59550		return nil, &googleapi.Error{
59551			Code:   res.StatusCode,
59552			Header: res.Header,
59553		}
59554	}
59555	if err != nil {
59556		return nil, err
59557	}
59558	defer googleapi.CloseBody(res)
59559	if err := googleapi.CheckResponse(res); err != nil {
59560		return nil, err
59561	}
59562	ret := &DiskType{
59563		ServerResponse: googleapi.ServerResponse{
59564			Header:         res.Header,
59565			HTTPStatusCode: res.StatusCode,
59566		},
59567	}
59568	target := &ret
59569	if err := gensupport.DecodeResponse(target, res); err != nil {
59570		return nil, err
59571	}
59572	return ret, nil
59573	// {
59574	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
59575	//   "httpMethod": "GET",
59576	//   "id": "compute.diskTypes.get",
59577	//   "parameterOrder": [
59578	//     "project",
59579	//     "zone",
59580	//     "diskType"
59581	//   ],
59582	//   "parameters": {
59583	//     "diskType": {
59584	//       "description": "Name of the disk type to return.",
59585	//       "location": "path",
59586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59587	//       "required": true,
59588	//       "type": "string"
59589	//     },
59590	//     "project": {
59591	//       "description": "Project ID for this request.",
59592	//       "location": "path",
59593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59594	//       "required": true,
59595	//       "type": "string"
59596	//     },
59597	//     "zone": {
59598	//       "description": "The name of the zone for this request.",
59599	//       "location": "path",
59600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59601	//       "required": true,
59602	//       "type": "string"
59603	//     }
59604	//   },
59605	//   "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
59606	//   "response": {
59607	//     "$ref": "DiskType"
59608	//   },
59609	//   "scopes": [
59610	//     "https://www.googleapis.com/auth/cloud-platform",
59611	//     "https://www.googleapis.com/auth/compute",
59612	//     "https://www.googleapis.com/auth/compute.readonly"
59613	//   ]
59614	// }
59615
59616}
59617
59618// method id "compute.diskTypes.list":
59619
59620type DiskTypesListCall struct {
59621	s            *Service
59622	project      string
59623	zone         string
59624	urlParams_   gensupport.URLParams
59625	ifNoneMatch_ string
59626	ctx_         context.Context
59627	header_      http.Header
59628}
59629
59630// List: Retrieves a list of disk types available to the specified
59631// project.
59632//
59633// - project: Project ID for this request.
59634// - zone: The name of the zone for this request.
59635// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
59636func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
59637	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59638	c.project = project
59639	c.zone = zone
59640	return c
59641}
59642
59643// Filter sets the optional parameter "filter": A filter expression that
59644// filters resources listed in the response. The expression must specify
59645// the field name, a comparison operator, and the value that you want to
59646// use for filtering. The value must be a string, a number, or a
59647// boolean. The comparison operator must be either `=`, `!=`, `>`, or
59648// `<`.
59649//
59650// For example, if you are filtering Compute Engine instances, you can
59651// exclude instances named `example-instance` by specifying `name !=
59652// example-instance`.
59653//
59654// You can also filter nested fields. For example, you could specify
59655// `scheduling.automaticRestart = false` to include instances only if
59656// they are not scheduled for automatic restarts. You can use filtering
59657// on nested fields to filter based on resource labels.
59658//
59659// To filter on multiple expressions, provide each separate expression
59660// within parentheses. For example: ``` (scheduling.automaticRestart =
59661// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
59662// is an `AND` expression. However, you can include `AND` and `OR`
59663// expressions explicitly. For example: ``` (cpuPlatform = "Intel
59664// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
59665// (scheduling.automaticRestart = true) ```
59666func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
59667	c.urlParams_.Set("filter", filter)
59668	return c
59669}
59670
59671// MaxResults sets the optional parameter "maxResults": The maximum
59672// number of results per page that should be returned. If the number of
59673// available results is larger than `maxResults`, Compute Engine returns
59674// a `nextPageToken` that can be used to get the next page of results in
59675// subsequent list requests. Acceptable values are `0` to `500`,
59676// inclusive. (Default: `500`)
59677func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
59678	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59679	return c
59680}
59681
59682// OrderBy sets the optional parameter "orderBy": Sorts list results by
59683// a certain order. By default, results are returned in alphanumerical
59684// order based on the resource name.
59685//
59686// You can also sort results in descending order based on the creation
59687// timestamp using `orderBy="creationTimestamp desc". This sorts
59688// results based on the `creationTimestamp` field in reverse
59689// chronological order (newest result first). Use this to sort resources
59690// like operations so that the newest operation is returned
59691// first.
59692//
59693// Currently, only sorting by `name` or `creationTimestamp desc` is
59694// supported.
59695func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
59696	c.urlParams_.Set("orderBy", orderBy)
59697	return c
59698}
59699
59700// PageToken sets the optional parameter "pageToken": Specifies a page
59701// token to use. Set `pageToken` to the `nextPageToken` returned by a
59702// previous list request to get the next page of results.
59703func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
59704	c.urlParams_.Set("pageToken", pageToken)
59705	return c
59706}
59707
59708// ReturnPartialSuccess sets the optional parameter
59709// "returnPartialSuccess": Opt-in for partial success behavior which
59710// provides partial results in case of failure. The default value is
59711// false.
59712func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesListCall {
59713	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
59714	return c
59715}
59716
59717// Fields allows partial responses to be retrieved. See
59718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59719// for more information.
59720func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
59721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59722	return c
59723}
59724
59725// IfNoneMatch sets the optional parameter which makes the operation
59726// fail if the object's ETag matches the given value. This is useful for
59727// getting updates only after the object has changed since the last
59728// request. Use googleapi.IsNotModified to check whether the response
59729// error from Do is the result of In-None-Match.
59730func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
59731	c.ifNoneMatch_ = entityTag
59732	return c
59733}
59734
59735// Context sets the context to be used in this call's Do method. Any
59736// pending HTTP request will be aborted if the provided context is
59737// canceled.
59738func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
59739	c.ctx_ = ctx
59740	return c
59741}
59742
59743// Header returns an http.Header that can be modified by the caller to
59744// add HTTP headers to the request.
59745func (c *DiskTypesListCall) Header() http.Header {
59746	if c.header_ == nil {
59747		c.header_ = make(http.Header)
59748	}
59749	return c.header_
59750}
59751
59752func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
59753	reqHeaders := make(http.Header)
59754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59755	for k, v := range c.header_ {
59756		reqHeaders[k] = v
59757	}
59758	reqHeaders.Set("User-Agent", c.s.userAgent())
59759	if c.ifNoneMatch_ != "" {
59760		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59761	}
59762	var body io.Reader = nil
59763	c.urlParams_.Set("alt", alt)
59764	c.urlParams_.Set("prettyPrint", "false")
59765	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes")
59766	urls += "?" + c.urlParams_.Encode()
59767	req, err := http.NewRequest("GET", urls, body)
59768	if err != nil {
59769		return nil, err
59770	}
59771	req.Header = reqHeaders
59772	googleapi.Expand(req.URL, map[string]string{
59773		"project": c.project,
59774		"zone":    c.zone,
59775	})
59776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59777}
59778
59779// Do executes the "compute.diskTypes.list" call.
59780// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
59781// status code is an error. Response headers are in either
59782// *DiskTypeList.ServerResponse.Header or (if a response was returned at
59783// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59784// to check whether the returned error was because
59785// http.StatusNotModified was returned.
59786func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
59787	gensupport.SetOptions(c.urlParams_, opts...)
59788	res, err := c.doRequest("json")
59789	if res != nil && res.StatusCode == http.StatusNotModified {
59790		if res.Body != nil {
59791			res.Body.Close()
59792		}
59793		return nil, &googleapi.Error{
59794			Code:   res.StatusCode,
59795			Header: res.Header,
59796		}
59797	}
59798	if err != nil {
59799		return nil, err
59800	}
59801	defer googleapi.CloseBody(res)
59802	if err := googleapi.CheckResponse(res); err != nil {
59803		return nil, err
59804	}
59805	ret := &DiskTypeList{
59806		ServerResponse: googleapi.ServerResponse{
59807			Header:         res.Header,
59808			HTTPStatusCode: res.StatusCode,
59809		},
59810	}
59811	target := &ret
59812	if err := gensupport.DecodeResponse(target, res); err != nil {
59813		return nil, err
59814	}
59815	return ret, nil
59816	// {
59817	//   "description": "Retrieves a list of disk types available to the specified project.",
59818	//   "httpMethod": "GET",
59819	//   "id": "compute.diskTypes.list",
59820	//   "parameterOrder": [
59821	//     "project",
59822	//     "zone"
59823	//   ],
59824	//   "parameters": {
59825	//     "filter": {
59826	//       "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) ```",
59827	//       "location": "query",
59828	//       "type": "string"
59829	//     },
59830	//     "maxResults": {
59831	//       "default": "500",
59832	//       "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`)",
59833	//       "format": "uint32",
59834	//       "location": "query",
59835	//       "minimum": "0",
59836	//       "type": "integer"
59837	//     },
59838	//     "orderBy": {
59839	//       "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.",
59840	//       "location": "query",
59841	//       "type": "string"
59842	//     },
59843	//     "pageToken": {
59844	//       "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.",
59845	//       "location": "query",
59846	//       "type": "string"
59847	//     },
59848	//     "project": {
59849	//       "description": "Project ID for this request.",
59850	//       "location": "path",
59851	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59852	//       "required": true,
59853	//       "type": "string"
59854	//     },
59855	//     "returnPartialSuccess": {
59856	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
59857	//       "location": "query",
59858	//       "type": "boolean"
59859	//     },
59860	//     "zone": {
59861	//       "description": "The name of the zone for this request.",
59862	//       "location": "path",
59863	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59864	//       "required": true,
59865	//       "type": "string"
59866	//     }
59867	//   },
59868	//   "path": "projects/{project}/zones/{zone}/diskTypes",
59869	//   "response": {
59870	//     "$ref": "DiskTypeList"
59871	//   },
59872	//   "scopes": [
59873	//     "https://www.googleapis.com/auth/cloud-platform",
59874	//     "https://www.googleapis.com/auth/compute",
59875	//     "https://www.googleapis.com/auth/compute.readonly"
59876	//   ]
59877	// }
59878
59879}
59880
59881// Pages invokes f for each page of results.
59882// A non-nil error returned from f will halt the iteration.
59883// The provided context supersedes any context provided to the Context method.
59884func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
59885	c.ctx_ = ctx
59886	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59887	for {
59888		x, err := c.Do()
59889		if err != nil {
59890			return err
59891		}
59892		if err := f(x); err != nil {
59893			return err
59894		}
59895		if x.NextPageToken == "" {
59896			return nil
59897		}
59898		c.PageToken(x.NextPageToken)
59899	}
59900}
59901
59902// method id "compute.disks.addResourcePolicies":
59903
59904type DisksAddResourcePoliciesCall struct {
59905	s                               *Service
59906	project                         string
59907	zone                            string
59908	disk                            string
59909	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
59910	urlParams_                      gensupport.URLParams
59911	ctx_                            context.Context
59912	header_                         http.Header
59913}
59914
59915// AddResourcePolicies: Adds existing resource policies to a disk. You
59916// can only add one policy which will be applied to this disk for
59917// scheduling snapshot creation.
59918//
59919// - disk: The disk name for this request.
59920// - project: Project ID for this request.
59921// - zone: The name of the zone for this request.
59922func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
59923	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59924	c.project = project
59925	c.zone = zone
59926	c.disk = disk
59927	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
59928	return c
59929}
59930
59931// RequestId sets the optional parameter "requestId": An optional
59932// request ID to identify requests. Specify a unique request ID so that
59933// if you must retry your request, the server will know to ignore the
59934// request if it has already been completed.
59935//
59936// For example, consider a situation where you make an initial request
59937// and the request times out. If you make the request again with the
59938// same request ID, the server can check if original operation with the
59939// same request ID was received, and if so, will ignore the second
59940// request. This prevents clients from accidentally creating duplicate
59941// commitments.
59942//
59943// The request ID must be a valid UUID with the exception that zero UUID
59944// is not supported (00000000-0000-0000-0000-000000000000).
59945func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
59946	c.urlParams_.Set("requestId", requestId)
59947	return c
59948}
59949
59950// Fields allows partial responses to be retrieved. See
59951// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59952// for more information.
59953func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
59954	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59955	return c
59956}
59957
59958// Context sets the context to be used in this call's Do method. Any
59959// pending HTTP request will be aborted if the provided context is
59960// canceled.
59961func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
59962	c.ctx_ = ctx
59963	return c
59964}
59965
59966// Header returns an http.Header that can be modified by the caller to
59967// add HTTP headers to the request.
59968func (c *DisksAddResourcePoliciesCall) Header() http.Header {
59969	if c.header_ == nil {
59970		c.header_ = make(http.Header)
59971	}
59972	return c.header_
59973}
59974
59975func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
59976	reqHeaders := make(http.Header)
59977	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59978	for k, v := range c.header_ {
59979		reqHeaders[k] = v
59980	}
59981	reqHeaders.Set("User-Agent", c.s.userAgent())
59982	var body io.Reader = nil
59983	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
59984	if err != nil {
59985		return nil, err
59986	}
59987	reqHeaders.Set("Content-Type", "application/json")
59988	c.urlParams_.Set("alt", alt)
59989	c.urlParams_.Set("prettyPrint", "false")
59990	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
59991	urls += "?" + c.urlParams_.Encode()
59992	req, err := http.NewRequest("POST", urls, body)
59993	if err != nil {
59994		return nil, err
59995	}
59996	req.Header = reqHeaders
59997	googleapi.Expand(req.URL, map[string]string{
59998		"project": c.project,
59999		"zone":    c.zone,
60000		"disk":    c.disk,
60001	})
60002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60003}
60004
60005// Do executes the "compute.disks.addResourcePolicies" call.
60006// Exactly one of *Operation or error will be non-nil. Any non-2xx
60007// status code is an error. Response headers are in either
60008// *Operation.ServerResponse.Header or (if a response was returned at
60009// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60010// to check whether the returned error was because
60011// http.StatusNotModified was returned.
60012func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60013	gensupport.SetOptions(c.urlParams_, opts...)
60014	res, err := c.doRequest("json")
60015	if res != nil && res.StatusCode == http.StatusNotModified {
60016		if res.Body != nil {
60017			res.Body.Close()
60018		}
60019		return nil, &googleapi.Error{
60020			Code:   res.StatusCode,
60021			Header: res.Header,
60022		}
60023	}
60024	if err != nil {
60025		return nil, err
60026	}
60027	defer googleapi.CloseBody(res)
60028	if err := googleapi.CheckResponse(res); err != nil {
60029		return nil, err
60030	}
60031	ret := &Operation{
60032		ServerResponse: googleapi.ServerResponse{
60033			Header:         res.Header,
60034			HTTPStatusCode: res.StatusCode,
60035		},
60036	}
60037	target := &ret
60038	if err := gensupport.DecodeResponse(target, res); err != nil {
60039		return nil, err
60040	}
60041	return ret, nil
60042	// {
60043	//   "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.",
60044	//   "httpMethod": "POST",
60045	//   "id": "compute.disks.addResourcePolicies",
60046	//   "parameterOrder": [
60047	//     "project",
60048	//     "zone",
60049	//     "disk"
60050	//   ],
60051	//   "parameters": {
60052	//     "disk": {
60053	//       "description": "The disk name for this request.",
60054	//       "location": "path",
60055	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60056	//       "required": true,
60057	//       "type": "string"
60058	//     },
60059	//     "project": {
60060	//       "description": "Project ID for this request.",
60061	//       "location": "path",
60062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60063	//       "required": true,
60064	//       "type": "string"
60065	//     },
60066	//     "requestId": {
60067	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60068	//       "location": "query",
60069	//       "type": "string"
60070	//     },
60071	//     "zone": {
60072	//       "description": "The name of the zone for this request.",
60073	//       "location": "path",
60074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60075	//       "required": true,
60076	//       "type": "string"
60077	//     }
60078	//   },
60079	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
60080	//   "request": {
60081	//     "$ref": "DisksAddResourcePoliciesRequest"
60082	//   },
60083	//   "response": {
60084	//     "$ref": "Operation"
60085	//   },
60086	//   "scopes": [
60087	//     "https://www.googleapis.com/auth/cloud-platform",
60088	//     "https://www.googleapis.com/auth/compute"
60089	//   ]
60090	// }
60091
60092}
60093
60094// method id "compute.disks.aggregatedList":
60095
60096type DisksAggregatedListCall struct {
60097	s            *Service
60098	project      string
60099	urlParams_   gensupport.URLParams
60100	ifNoneMatch_ string
60101	ctx_         context.Context
60102	header_      http.Header
60103}
60104
60105// AggregatedList: Retrieves an aggregated list of persistent disks.
60106//
60107// - project: Project ID for this request.
60108// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
60109func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
60110	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60111	c.project = project
60112	return c
60113}
60114
60115// Filter sets the optional parameter "filter": A filter expression that
60116// filters resources listed in the response. The expression must specify
60117// the field name, a comparison operator, and the value that you want to
60118// use for filtering. The value must be a string, a number, or a
60119// boolean. The comparison operator must be either `=`, `!=`, `>`, or
60120// `<`.
60121//
60122// For example, if you are filtering Compute Engine instances, you can
60123// exclude instances named `example-instance` by specifying `name !=
60124// example-instance`.
60125//
60126// You can also filter nested fields. For example, you could specify
60127// `scheduling.automaticRestart = false` to include instances only if
60128// they are not scheduled for automatic restarts. You can use filtering
60129// on nested fields to filter based on resource labels.
60130//
60131// To filter on multiple expressions, provide each separate expression
60132// within parentheses. For example: ``` (scheduling.automaticRestart =
60133// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
60134// is an `AND` expression. However, you can include `AND` and `OR`
60135// expressions explicitly. For example: ``` (cpuPlatform = "Intel
60136// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
60137// (scheduling.automaticRestart = true) ```
60138func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
60139	c.urlParams_.Set("filter", filter)
60140	return c
60141}
60142
60143// IncludeAllScopes sets the optional parameter "includeAllScopes":
60144// Indicates whether every visible scope for each scope type (zone,
60145// region, global) should be included in the response. For new resource
60146// types added after this field, the flag has no effect as new resource
60147// types will always include every visible scope for each scope type in
60148// response. For resource types which predate this field, if this flag
60149// is omitted or false, only scopes of the scope types where the
60150// resource type is expected to be found will be included.
60151func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
60152	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
60153	return c
60154}
60155
60156// MaxResults sets the optional parameter "maxResults": The maximum
60157// number of results per page that should be returned. If the number of
60158// available results is larger than `maxResults`, Compute Engine returns
60159// a `nextPageToken` that can be used to get the next page of results in
60160// subsequent list requests. Acceptable values are `0` to `500`,
60161// inclusive. (Default: `500`)
60162func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
60163	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60164	return c
60165}
60166
60167// OrderBy sets the optional parameter "orderBy": Sorts list results by
60168// a certain order. By default, results are returned in alphanumerical
60169// order based on the resource name.
60170//
60171// You can also sort results in descending order based on the creation
60172// timestamp using `orderBy="creationTimestamp desc". This sorts
60173// results based on the `creationTimestamp` field in reverse
60174// chronological order (newest result first). Use this to sort resources
60175// like operations so that the newest operation is returned
60176// first.
60177//
60178// Currently, only sorting by `name` or `creationTimestamp desc` is
60179// supported.
60180func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
60181	c.urlParams_.Set("orderBy", orderBy)
60182	return c
60183}
60184
60185// PageToken sets the optional parameter "pageToken": Specifies a page
60186// token to use. Set `pageToken` to the `nextPageToken` returned by a
60187// previous list request to get the next page of results.
60188func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
60189	c.urlParams_.Set("pageToken", pageToken)
60190	return c
60191}
60192
60193// ReturnPartialSuccess sets the optional parameter
60194// "returnPartialSuccess": Opt-in for partial success behavior which
60195// provides partial results in case of failure. The default value is
60196// false.
60197func (c *DisksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksAggregatedListCall {
60198	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
60199	return c
60200}
60201
60202// Fields allows partial responses to be retrieved. See
60203// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60204// for more information.
60205func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
60206	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60207	return c
60208}
60209
60210// IfNoneMatch sets the optional parameter which makes the operation
60211// fail if the object's ETag matches the given value. This is useful for
60212// getting updates only after the object has changed since the last
60213// request. Use googleapi.IsNotModified to check whether the response
60214// error from Do is the result of In-None-Match.
60215func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
60216	c.ifNoneMatch_ = entityTag
60217	return c
60218}
60219
60220// Context sets the context to be used in this call's Do method. Any
60221// pending HTTP request will be aborted if the provided context is
60222// canceled.
60223func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
60224	c.ctx_ = ctx
60225	return c
60226}
60227
60228// Header returns an http.Header that can be modified by the caller to
60229// add HTTP headers to the request.
60230func (c *DisksAggregatedListCall) Header() http.Header {
60231	if c.header_ == nil {
60232		c.header_ = make(http.Header)
60233	}
60234	return c.header_
60235}
60236
60237func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
60238	reqHeaders := make(http.Header)
60239	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
60240	for k, v := range c.header_ {
60241		reqHeaders[k] = v
60242	}
60243	reqHeaders.Set("User-Agent", c.s.userAgent())
60244	if c.ifNoneMatch_ != "" {
60245		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60246	}
60247	var body io.Reader = nil
60248	c.urlParams_.Set("alt", alt)
60249	c.urlParams_.Set("prettyPrint", "false")
60250	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/disks")
60251	urls += "?" + c.urlParams_.Encode()
60252	req, err := http.NewRequest("GET", urls, body)
60253	if err != nil {
60254		return nil, err
60255	}
60256	req.Header = reqHeaders
60257	googleapi.Expand(req.URL, map[string]string{
60258		"project": c.project,
60259	})
60260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60261}
60262
60263// Do executes the "compute.disks.aggregatedList" call.
60264// Exactly one of *DiskAggregatedList or error will be non-nil. Any
60265// non-2xx status code is an error. Response headers are in either
60266// *DiskAggregatedList.ServerResponse.Header or (if a response was
60267// returned at all) in error.(*googleapi.Error).Header. Use
60268// googleapi.IsNotModified to check whether the returned error was
60269// because http.StatusNotModified was returned.
60270func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
60271	gensupport.SetOptions(c.urlParams_, opts...)
60272	res, err := c.doRequest("json")
60273	if res != nil && res.StatusCode == http.StatusNotModified {
60274		if res.Body != nil {
60275			res.Body.Close()
60276		}
60277		return nil, &googleapi.Error{
60278			Code:   res.StatusCode,
60279			Header: res.Header,
60280		}
60281	}
60282	if err != nil {
60283		return nil, err
60284	}
60285	defer googleapi.CloseBody(res)
60286	if err := googleapi.CheckResponse(res); err != nil {
60287		return nil, err
60288	}
60289	ret := &DiskAggregatedList{
60290		ServerResponse: googleapi.ServerResponse{
60291			Header:         res.Header,
60292			HTTPStatusCode: res.StatusCode,
60293		},
60294	}
60295	target := &ret
60296	if err := gensupport.DecodeResponse(target, res); err != nil {
60297		return nil, err
60298	}
60299	return ret, nil
60300	// {
60301	//   "description": "Retrieves an aggregated list of persistent disks.",
60302	//   "httpMethod": "GET",
60303	//   "id": "compute.disks.aggregatedList",
60304	//   "parameterOrder": [
60305	//     "project"
60306	//   ],
60307	//   "parameters": {
60308	//     "filter": {
60309	//       "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) ```",
60310	//       "location": "query",
60311	//       "type": "string"
60312	//     },
60313	//     "includeAllScopes": {
60314	//       "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.",
60315	//       "location": "query",
60316	//       "type": "boolean"
60317	//     },
60318	//     "maxResults": {
60319	//       "default": "500",
60320	//       "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`)",
60321	//       "format": "uint32",
60322	//       "location": "query",
60323	//       "minimum": "0",
60324	//       "type": "integer"
60325	//     },
60326	//     "orderBy": {
60327	//       "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.",
60328	//       "location": "query",
60329	//       "type": "string"
60330	//     },
60331	//     "pageToken": {
60332	//       "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.",
60333	//       "location": "query",
60334	//       "type": "string"
60335	//     },
60336	//     "project": {
60337	//       "description": "Project ID for this request.",
60338	//       "location": "path",
60339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60340	//       "required": true,
60341	//       "type": "string"
60342	//     },
60343	//     "returnPartialSuccess": {
60344	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
60345	//       "location": "query",
60346	//       "type": "boolean"
60347	//     }
60348	//   },
60349	//   "path": "projects/{project}/aggregated/disks",
60350	//   "response": {
60351	//     "$ref": "DiskAggregatedList"
60352	//   },
60353	//   "scopes": [
60354	//     "https://www.googleapis.com/auth/cloud-platform",
60355	//     "https://www.googleapis.com/auth/compute",
60356	//     "https://www.googleapis.com/auth/compute.readonly"
60357	//   ]
60358	// }
60359
60360}
60361
60362// Pages invokes f for each page of results.
60363// A non-nil error returned from f will halt the iteration.
60364// The provided context supersedes any context provided to the Context method.
60365func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
60366	c.ctx_ = ctx
60367	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60368	for {
60369		x, err := c.Do()
60370		if err != nil {
60371			return err
60372		}
60373		if err := f(x); err != nil {
60374			return err
60375		}
60376		if x.NextPageToken == "" {
60377			return nil
60378		}
60379		c.PageToken(x.NextPageToken)
60380	}
60381}
60382
60383// method id "compute.disks.createSnapshot":
60384
60385type DisksCreateSnapshotCall struct {
60386	s          *Service
60387	project    string
60388	zone       string
60389	disk       string
60390	snapshot   *Snapshot
60391	urlParams_ gensupport.URLParams
60392	ctx_       context.Context
60393	header_    http.Header
60394}
60395
60396// CreateSnapshot: Creates a snapshot of a specified persistent disk.
60397//
60398// - disk: Name of the persistent disk to snapshot.
60399// - project: Project ID for this request.
60400// - zone: The name of the zone for this request.
60401// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
60402func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
60403	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60404	c.project = project
60405	c.zone = zone
60406	c.disk = disk
60407	c.snapshot = snapshot
60408	return c
60409}
60410
60411// GuestFlush sets the optional parameter "guestFlush": [Input Only]
60412// Whether to attempt an application consistent snapshot by informing
60413// the OS to prepare for the snapshot process. Currently only supported
60414// on Windows instances using the Volume Shadow Copy Service (VSS).
60415func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
60416	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
60417	return c
60418}
60419
60420// RequestId sets the optional parameter "requestId": An optional
60421// request ID to identify requests. Specify a unique request ID so that
60422// if you must retry your request, the server will know to ignore the
60423// request if it has already been completed.
60424//
60425// For example, consider a situation where you make an initial request
60426// and the request times out. If you make the request again with the
60427// same request ID, the server can check if original operation with the
60428// same request ID was received, and if so, will ignore the second
60429// request. This prevents clients from accidentally creating duplicate
60430// commitments.
60431//
60432// The request ID must be a valid UUID with the exception that zero UUID
60433// is not supported (00000000-0000-0000-0000-000000000000).
60434func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
60435	c.urlParams_.Set("requestId", requestId)
60436	return c
60437}
60438
60439// Fields allows partial responses to be retrieved. See
60440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60441// for more information.
60442func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
60443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60444	return c
60445}
60446
60447// Context sets the context to be used in this call's Do method. Any
60448// pending HTTP request will be aborted if the provided context is
60449// canceled.
60450func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
60451	c.ctx_ = ctx
60452	return c
60453}
60454
60455// Header returns an http.Header that can be modified by the caller to
60456// add HTTP headers to the request.
60457func (c *DisksCreateSnapshotCall) Header() http.Header {
60458	if c.header_ == nil {
60459		c.header_ = make(http.Header)
60460	}
60461	return c.header_
60462}
60463
60464func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
60465	reqHeaders := make(http.Header)
60466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
60467	for k, v := range c.header_ {
60468		reqHeaders[k] = v
60469	}
60470	reqHeaders.Set("User-Agent", c.s.userAgent())
60471	var body io.Reader = nil
60472	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
60473	if err != nil {
60474		return nil, err
60475	}
60476	reqHeaders.Set("Content-Type", "application/json")
60477	c.urlParams_.Set("alt", alt)
60478	c.urlParams_.Set("prettyPrint", "false")
60479	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot")
60480	urls += "?" + c.urlParams_.Encode()
60481	req, err := http.NewRequest("POST", urls, body)
60482	if err != nil {
60483		return nil, err
60484	}
60485	req.Header = reqHeaders
60486	googleapi.Expand(req.URL, map[string]string{
60487		"project": c.project,
60488		"zone":    c.zone,
60489		"disk":    c.disk,
60490	})
60491	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60492}
60493
60494// Do executes the "compute.disks.createSnapshot" call.
60495// Exactly one of *Operation or error will be non-nil. Any non-2xx
60496// status code is an error. Response headers are in either
60497// *Operation.ServerResponse.Header or (if a response was returned at
60498// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60499// to check whether the returned error was because
60500// http.StatusNotModified was returned.
60501func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60502	gensupport.SetOptions(c.urlParams_, opts...)
60503	res, err := c.doRequest("json")
60504	if res != nil && res.StatusCode == http.StatusNotModified {
60505		if res.Body != nil {
60506			res.Body.Close()
60507		}
60508		return nil, &googleapi.Error{
60509			Code:   res.StatusCode,
60510			Header: res.Header,
60511		}
60512	}
60513	if err != nil {
60514		return nil, err
60515	}
60516	defer googleapi.CloseBody(res)
60517	if err := googleapi.CheckResponse(res); err != nil {
60518		return nil, err
60519	}
60520	ret := &Operation{
60521		ServerResponse: googleapi.ServerResponse{
60522			Header:         res.Header,
60523			HTTPStatusCode: res.StatusCode,
60524		},
60525	}
60526	target := &ret
60527	if err := gensupport.DecodeResponse(target, res); err != nil {
60528		return nil, err
60529	}
60530	return ret, nil
60531	// {
60532	//   "description": "Creates a snapshot of a specified persistent disk.",
60533	//   "httpMethod": "POST",
60534	//   "id": "compute.disks.createSnapshot",
60535	//   "parameterOrder": [
60536	//     "project",
60537	//     "zone",
60538	//     "disk"
60539	//   ],
60540	//   "parameters": {
60541	//     "disk": {
60542	//       "description": "Name of the persistent disk to snapshot.",
60543	//       "location": "path",
60544	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60545	//       "required": true,
60546	//       "type": "string"
60547	//     },
60548	//     "guestFlush": {
60549	//       "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).",
60550	//       "location": "query",
60551	//       "type": "boolean"
60552	//     },
60553	//     "project": {
60554	//       "description": "Project ID for this request.",
60555	//       "location": "path",
60556	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60557	//       "required": true,
60558	//       "type": "string"
60559	//     },
60560	//     "requestId": {
60561	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60562	//       "location": "query",
60563	//       "type": "string"
60564	//     },
60565	//     "zone": {
60566	//       "description": "The name of the zone for this request.",
60567	//       "location": "path",
60568	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60569	//       "required": true,
60570	//       "type": "string"
60571	//     }
60572	//   },
60573	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
60574	//   "request": {
60575	//     "$ref": "Snapshot"
60576	//   },
60577	//   "response": {
60578	//     "$ref": "Operation"
60579	//   },
60580	//   "scopes": [
60581	//     "https://www.googleapis.com/auth/cloud-platform",
60582	//     "https://www.googleapis.com/auth/compute"
60583	//   ]
60584	// }
60585
60586}
60587
60588// method id "compute.disks.delete":
60589
60590type DisksDeleteCall struct {
60591	s          *Service
60592	project    string
60593	zone       string
60594	disk       string
60595	urlParams_ gensupport.URLParams
60596	ctx_       context.Context
60597	header_    http.Header
60598}
60599
60600// Delete: Deletes the specified persistent disk. Deleting a disk
60601// removes its data permanently and is irreversible. However, deleting a
60602// disk does not delete any snapshots previously made from the disk. You
60603// must separately delete snapshots.
60604//
60605// - disk: Name of the persistent disk to delete.
60606// - project: Project ID for this request.
60607// - zone: The name of the zone for this request.
60608// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
60609func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
60610	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60611	c.project = project
60612	c.zone = zone
60613	c.disk = disk
60614	return c
60615}
60616
60617// RequestId sets the optional parameter "requestId": An optional
60618// request ID to identify requests. Specify a unique request ID so that
60619// if you must retry your request, the server will know to ignore the
60620// request if it has already been completed.
60621//
60622// For example, consider a situation where you make an initial request
60623// and the request times out. If you make the request again with the
60624// same request ID, the server can check if original operation with the
60625// same request ID was received, and if so, will ignore the second
60626// request. This prevents clients from accidentally creating duplicate
60627// commitments.
60628//
60629// The request ID must be a valid UUID with the exception that zero UUID
60630// is not supported (00000000-0000-0000-0000-000000000000).
60631func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
60632	c.urlParams_.Set("requestId", requestId)
60633	return c
60634}
60635
60636// Fields allows partial responses to be retrieved. See
60637// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60638// for more information.
60639func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
60640	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60641	return c
60642}
60643
60644// Context sets the context to be used in this call's Do method. Any
60645// pending HTTP request will be aborted if the provided context is
60646// canceled.
60647func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
60648	c.ctx_ = ctx
60649	return c
60650}
60651
60652// Header returns an http.Header that can be modified by the caller to
60653// add HTTP headers to the request.
60654func (c *DisksDeleteCall) Header() http.Header {
60655	if c.header_ == nil {
60656		c.header_ = make(http.Header)
60657	}
60658	return c.header_
60659}
60660
60661func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
60662	reqHeaders := make(http.Header)
60663	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
60664	for k, v := range c.header_ {
60665		reqHeaders[k] = v
60666	}
60667	reqHeaders.Set("User-Agent", c.s.userAgent())
60668	var body io.Reader = nil
60669	c.urlParams_.Set("alt", alt)
60670	c.urlParams_.Set("prettyPrint", "false")
60671	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
60672	urls += "?" + c.urlParams_.Encode()
60673	req, err := http.NewRequest("DELETE", urls, body)
60674	if err != nil {
60675		return nil, err
60676	}
60677	req.Header = reqHeaders
60678	googleapi.Expand(req.URL, map[string]string{
60679		"project": c.project,
60680		"zone":    c.zone,
60681		"disk":    c.disk,
60682	})
60683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60684}
60685
60686// Do executes the "compute.disks.delete" call.
60687// Exactly one of *Operation or error will be non-nil. Any non-2xx
60688// status code is an error. Response headers are in either
60689// *Operation.ServerResponse.Header or (if a response was returned at
60690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60691// to check whether the returned error was because
60692// http.StatusNotModified was returned.
60693func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60694	gensupport.SetOptions(c.urlParams_, opts...)
60695	res, err := c.doRequest("json")
60696	if res != nil && res.StatusCode == http.StatusNotModified {
60697		if res.Body != nil {
60698			res.Body.Close()
60699		}
60700		return nil, &googleapi.Error{
60701			Code:   res.StatusCode,
60702			Header: res.Header,
60703		}
60704	}
60705	if err != nil {
60706		return nil, err
60707	}
60708	defer googleapi.CloseBody(res)
60709	if err := googleapi.CheckResponse(res); err != nil {
60710		return nil, err
60711	}
60712	ret := &Operation{
60713		ServerResponse: googleapi.ServerResponse{
60714			Header:         res.Header,
60715			HTTPStatusCode: res.StatusCode,
60716		},
60717	}
60718	target := &ret
60719	if err := gensupport.DecodeResponse(target, res); err != nil {
60720		return nil, err
60721	}
60722	return ret, nil
60723	// {
60724	//   "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.",
60725	//   "httpMethod": "DELETE",
60726	//   "id": "compute.disks.delete",
60727	//   "parameterOrder": [
60728	//     "project",
60729	//     "zone",
60730	//     "disk"
60731	//   ],
60732	//   "parameters": {
60733	//     "disk": {
60734	//       "description": "Name of the persistent disk to delete.",
60735	//       "location": "path",
60736	//       "required": true,
60737	//       "type": "string"
60738	//     },
60739	//     "project": {
60740	//       "description": "Project ID for this request.",
60741	//       "location": "path",
60742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60743	//       "required": true,
60744	//       "type": "string"
60745	//     },
60746	//     "requestId": {
60747	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60748	//       "location": "query",
60749	//       "type": "string"
60750	//     },
60751	//     "zone": {
60752	//       "description": "The name of the zone for this request.",
60753	//       "location": "path",
60754	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60755	//       "required": true,
60756	//       "type": "string"
60757	//     }
60758	//   },
60759	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
60760	//   "response": {
60761	//     "$ref": "Operation"
60762	//   },
60763	//   "scopes": [
60764	//     "https://www.googleapis.com/auth/cloud-platform",
60765	//     "https://www.googleapis.com/auth/compute"
60766	//   ]
60767	// }
60768
60769}
60770
60771// method id "compute.disks.get":
60772
60773type DisksGetCall struct {
60774	s            *Service
60775	project      string
60776	zone         string
60777	disk         string
60778	urlParams_   gensupport.URLParams
60779	ifNoneMatch_ string
60780	ctx_         context.Context
60781	header_      http.Header
60782}
60783
60784// Get: Returns a specified persistent disk. Gets a list of available
60785// persistent disks by making a list() request.
60786//
60787// - disk: Name of the persistent disk to return.
60788// - project: Project ID for this request.
60789// - zone: The name of the zone for this request.
60790// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
60791func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
60792	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60793	c.project = project
60794	c.zone = zone
60795	c.disk = disk
60796	return c
60797}
60798
60799// Fields allows partial responses to be retrieved. See
60800// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60801// for more information.
60802func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
60803	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60804	return c
60805}
60806
60807// IfNoneMatch sets the optional parameter which makes the operation
60808// fail if the object's ETag matches the given value. This is useful for
60809// getting updates only after the object has changed since the last
60810// request. Use googleapi.IsNotModified to check whether the response
60811// error from Do is the result of In-None-Match.
60812func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
60813	c.ifNoneMatch_ = entityTag
60814	return c
60815}
60816
60817// Context sets the context to be used in this call's Do method. Any
60818// pending HTTP request will be aborted if the provided context is
60819// canceled.
60820func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
60821	c.ctx_ = ctx
60822	return c
60823}
60824
60825// Header returns an http.Header that can be modified by the caller to
60826// add HTTP headers to the request.
60827func (c *DisksGetCall) Header() http.Header {
60828	if c.header_ == nil {
60829		c.header_ = make(http.Header)
60830	}
60831	return c.header_
60832}
60833
60834func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
60835	reqHeaders := make(http.Header)
60836	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
60837	for k, v := range c.header_ {
60838		reqHeaders[k] = v
60839	}
60840	reqHeaders.Set("User-Agent", c.s.userAgent())
60841	if c.ifNoneMatch_ != "" {
60842		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60843	}
60844	var body io.Reader = nil
60845	c.urlParams_.Set("alt", alt)
60846	c.urlParams_.Set("prettyPrint", "false")
60847	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
60848	urls += "?" + c.urlParams_.Encode()
60849	req, err := http.NewRequest("GET", urls, body)
60850	if err != nil {
60851		return nil, err
60852	}
60853	req.Header = reqHeaders
60854	googleapi.Expand(req.URL, map[string]string{
60855		"project": c.project,
60856		"zone":    c.zone,
60857		"disk":    c.disk,
60858	})
60859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60860}
60861
60862// Do executes the "compute.disks.get" call.
60863// Exactly one of *Disk or error will be non-nil. Any non-2xx status
60864// code is an error. Response headers are in either
60865// *Disk.ServerResponse.Header or (if a response was returned at all) in
60866// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
60867// whether the returned error was because http.StatusNotModified was
60868// returned.
60869func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
60870	gensupport.SetOptions(c.urlParams_, opts...)
60871	res, err := c.doRequest("json")
60872	if res != nil && res.StatusCode == http.StatusNotModified {
60873		if res.Body != nil {
60874			res.Body.Close()
60875		}
60876		return nil, &googleapi.Error{
60877			Code:   res.StatusCode,
60878			Header: res.Header,
60879		}
60880	}
60881	if err != nil {
60882		return nil, err
60883	}
60884	defer googleapi.CloseBody(res)
60885	if err := googleapi.CheckResponse(res); err != nil {
60886		return nil, err
60887	}
60888	ret := &Disk{
60889		ServerResponse: googleapi.ServerResponse{
60890			Header:         res.Header,
60891			HTTPStatusCode: res.StatusCode,
60892		},
60893	}
60894	target := &ret
60895	if err := gensupport.DecodeResponse(target, res); err != nil {
60896		return nil, err
60897	}
60898	return ret, nil
60899	// {
60900	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
60901	//   "httpMethod": "GET",
60902	//   "id": "compute.disks.get",
60903	//   "parameterOrder": [
60904	//     "project",
60905	//     "zone",
60906	//     "disk"
60907	//   ],
60908	//   "parameters": {
60909	//     "disk": {
60910	//       "description": "Name of the persistent disk to return.",
60911	//       "location": "path",
60912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60913	//       "required": true,
60914	//       "type": "string"
60915	//     },
60916	//     "project": {
60917	//       "description": "Project ID for this request.",
60918	//       "location": "path",
60919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60920	//       "required": true,
60921	//       "type": "string"
60922	//     },
60923	//     "zone": {
60924	//       "description": "The name of the zone for this request.",
60925	//       "location": "path",
60926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60927	//       "required": true,
60928	//       "type": "string"
60929	//     }
60930	//   },
60931	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
60932	//   "response": {
60933	//     "$ref": "Disk"
60934	//   },
60935	//   "scopes": [
60936	//     "https://www.googleapis.com/auth/cloud-platform",
60937	//     "https://www.googleapis.com/auth/compute",
60938	//     "https://www.googleapis.com/auth/compute.readonly"
60939	//   ]
60940	// }
60941
60942}
60943
60944// method id "compute.disks.getIamPolicy":
60945
60946type DisksGetIamPolicyCall struct {
60947	s            *Service
60948	project      string
60949	zone         string
60950	resource     string
60951	urlParams_   gensupport.URLParams
60952	ifNoneMatch_ string
60953	ctx_         context.Context
60954	header_      http.Header
60955}
60956
60957// GetIamPolicy: Gets the access control policy for a resource. May be
60958// empty if no such policy or resource exists.
60959//
60960// - project: Project ID for this request.
60961// - resource: Name or id of the resource for this request.
60962// - zone: The name of the zone for this request.
60963func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
60964	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60965	c.project = project
60966	c.zone = zone
60967	c.resource = resource
60968	return c
60969}
60970
60971// OptionsRequestedPolicyVersion sets the optional parameter
60972// "optionsRequestedPolicyVersion": Requested IAM Policy version.
60973func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
60974	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
60975	return c
60976}
60977
60978// Fields allows partial responses to be retrieved. See
60979// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60980// for more information.
60981func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
60982	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60983	return c
60984}
60985
60986// IfNoneMatch sets the optional parameter which makes the operation
60987// fail if the object's ETag matches the given value. This is useful for
60988// getting updates only after the object has changed since the last
60989// request. Use googleapi.IsNotModified to check whether the response
60990// error from Do is the result of In-None-Match.
60991func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
60992	c.ifNoneMatch_ = entityTag
60993	return c
60994}
60995
60996// Context sets the context to be used in this call's Do method. Any
60997// pending HTTP request will be aborted if the provided context is
60998// canceled.
60999func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
61000	c.ctx_ = ctx
61001	return c
61002}
61003
61004// Header returns an http.Header that can be modified by the caller to
61005// add HTTP headers to the request.
61006func (c *DisksGetIamPolicyCall) Header() http.Header {
61007	if c.header_ == nil {
61008		c.header_ = make(http.Header)
61009	}
61010	return c.header_
61011}
61012
61013func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
61014	reqHeaders := make(http.Header)
61015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61016	for k, v := range c.header_ {
61017		reqHeaders[k] = v
61018	}
61019	reqHeaders.Set("User-Agent", c.s.userAgent())
61020	if c.ifNoneMatch_ != "" {
61021		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61022	}
61023	var body io.Reader = nil
61024	c.urlParams_.Set("alt", alt)
61025	c.urlParams_.Set("prettyPrint", "false")
61026	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy")
61027	urls += "?" + c.urlParams_.Encode()
61028	req, err := http.NewRequest("GET", urls, body)
61029	if err != nil {
61030		return nil, err
61031	}
61032	req.Header = reqHeaders
61033	googleapi.Expand(req.URL, map[string]string{
61034		"project":  c.project,
61035		"zone":     c.zone,
61036		"resource": c.resource,
61037	})
61038	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61039}
61040
61041// Do executes the "compute.disks.getIamPolicy" call.
61042// Exactly one of *Policy or error will be non-nil. Any non-2xx status
61043// code is an error. Response headers are in either
61044// *Policy.ServerResponse.Header or (if a response was returned at all)
61045// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
61046// check whether the returned error was because http.StatusNotModified
61047// was returned.
61048func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
61049	gensupport.SetOptions(c.urlParams_, opts...)
61050	res, err := c.doRequest("json")
61051	if res != nil && res.StatusCode == http.StatusNotModified {
61052		if res.Body != nil {
61053			res.Body.Close()
61054		}
61055		return nil, &googleapi.Error{
61056			Code:   res.StatusCode,
61057			Header: res.Header,
61058		}
61059	}
61060	if err != nil {
61061		return nil, err
61062	}
61063	defer googleapi.CloseBody(res)
61064	if err := googleapi.CheckResponse(res); err != nil {
61065		return nil, err
61066	}
61067	ret := &Policy{
61068		ServerResponse: googleapi.ServerResponse{
61069			Header:         res.Header,
61070			HTTPStatusCode: res.StatusCode,
61071		},
61072	}
61073	target := &ret
61074	if err := gensupport.DecodeResponse(target, res); err != nil {
61075		return nil, err
61076	}
61077	return ret, nil
61078	// {
61079	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
61080	//   "httpMethod": "GET",
61081	//   "id": "compute.disks.getIamPolicy",
61082	//   "parameterOrder": [
61083	//     "project",
61084	//     "zone",
61085	//     "resource"
61086	//   ],
61087	//   "parameters": {
61088	//     "optionsRequestedPolicyVersion": {
61089	//       "description": "Requested IAM Policy version.",
61090	//       "format": "int32",
61091	//       "location": "query",
61092	//       "type": "integer"
61093	//     },
61094	//     "project": {
61095	//       "description": "Project ID for this request.",
61096	//       "location": "path",
61097	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61098	//       "required": true,
61099	//       "type": "string"
61100	//     },
61101	//     "resource": {
61102	//       "description": "Name or id of the resource for this request.",
61103	//       "location": "path",
61104	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61105	//       "required": true,
61106	//       "type": "string"
61107	//     },
61108	//     "zone": {
61109	//       "description": "The name of the zone for this request.",
61110	//       "location": "path",
61111	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61112	//       "required": true,
61113	//       "type": "string"
61114	//     }
61115	//   },
61116	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
61117	//   "response": {
61118	//     "$ref": "Policy"
61119	//   },
61120	//   "scopes": [
61121	//     "https://www.googleapis.com/auth/cloud-platform",
61122	//     "https://www.googleapis.com/auth/compute",
61123	//     "https://www.googleapis.com/auth/compute.readonly"
61124	//   ]
61125	// }
61126
61127}
61128
61129// method id "compute.disks.insert":
61130
61131type DisksInsertCall struct {
61132	s          *Service
61133	project    string
61134	zone       string
61135	disk       *Disk
61136	urlParams_ gensupport.URLParams
61137	ctx_       context.Context
61138	header_    http.Header
61139}
61140
61141// Insert: Creates a persistent disk in the specified project using the
61142// data in the request. You can create a disk from a source
61143// (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500
61144// GB data disk by omitting all properties. You can also create a disk
61145// that is larger than the default size by specifying the sizeGb
61146// property.
61147//
61148// - project: Project ID for this request.
61149// - zone: The name of the zone for this request.
61150// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
61151func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
61152	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61153	c.project = project
61154	c.zone = zone
61155	c.disk = disk
61156	return c
61157}
61158
61159// RequestId sets the optional parameter "requestId": An optional
61160// request ID to identify requests. Specify a unique request ID so that
61161// if you must retry your request, the server will know to ignore the
61162// request if it has already been completed.
61163//
61164// For example, consider a situation where you make an initial request
61165// and the request times out. If you make the request again with the
61166// same request ID, the server can check if original operation with the
61167// same request ID was received, and if so, will ignore the second
61168// request. This prevents clients from accidentally creating duplicate
61169// commitments.
61170//
61171// The request ID must be a valid UUID with the exception that zero UUID
61172// is not supported (00000000-0000-0000-0000-000000000000).
61173func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
61174	c.urlParams_.Set("requestId", requestId)
61175	return c
61176}
61177
61178// SourceImage sets the optional parameter "sourceImage": Source image
61179// to restore onto a disk. This field is optional.
61180func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
61181	c.urlParams_.Set("sourceImage", sourceImage)
61182	return c
61183}
61184
61185// Fields allows partial responses to be retrieved. See
61186// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61187// for more information.
61188func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
61189	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61190	return c
61191}
61192
61193// Context sets the context to be used in this call's Do method. Any
61194// pending HTTP request will be aborted if the provided context is
61195// canceled.
61196func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
61197	c.ctx_ = ctx
61198	return c
61199}
61200
61201// Header returns an http.Header that can be modified by the caller to
61202// add HTTP headers to the request.
61203func (c *DisksInsertCall) Header() http.Header {
61204	if c.header_ == nil {
61205		c.header_ = make(http.Header)
61206	}
61207	return c.header_
61208}
61209
61210func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
61211	reqHeaders := make(http.Header)
61212	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61213	for k, v := range c.header_ {
61214		reqHeaders[k] = v
61215	}
61216	reqHeaders.Set("User-Agent", c.s.userAgent())
61217	var body io.Reader = nil
61218	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
61219	if err != nil {
61220		return nil, err
61221	}
61222	reqHeaders.Set("Content-Type", "application/json")
61223	c.urlParams_.Set("alt", alt)
61224	c.urlParams_.Set("prettyPrint", "false")
61225	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
61226	urls += "?" + c.urlParams_.Encode()
61227	req, err := http.NewRequest("POST", urls, body)
61228	if err != nil {
61229		return nil, err
61230	}
61231	req.Header = reqHeaders
61232	googleapi.Expand(req.URL, map[string]string{
61233		"project": c.project,
61234		"zone":    c.zone,
61235	})
61236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61237}
61238
61239// Do executes the "compute.disks.insert" call.
61240// Exactly one of *Operation or error will be non-nil. Any non-2xx
61241// status code is an error. Response headers are in either
61242// *Operation.ServerResponse.Header or (if a response was returned at
61243// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61244// to check whether the returned error was because
61245// http.StatusNotModified was returned.
61246func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61247	gensupport.SetOptions(c.urlParams_, opts...)
61248	res, err := c.doRequest("json")
61249	if res != nil && res.StatusCode == http.StatusNotModified {
61250		if res.Body != nil {
61251			res.Body.Close()
61252		}
61253		return nil, &googleapi.Error{
61254			Code:   res.StatusCode,
61255			Header: res.Header,
61256		}
61257	}
61258	if err != nil {
61259		return nil, err
61260	}
61261	defer googleapi.CloseBody(res)
61262	if err := googleapi.CheckResponse(res); err != nil {
61263		return nil, err
61264	}
61265	ret := &Operation{
61266		ServerResponse: googleapi.ServerResponse{
61267			Header:         res.Header,
61268			HTTPStatusCode: res.StatusCode,
61269		},
61270	}
61271	target := &ret
61272	if err := gensupport.DecodeResponse(target, res); err != nil {
61273		return nil, err
61274	}
61275	return ret, nil
61276	// {
61277	//   "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.",
61278	//   "httpMethod": "POST",
61279	//   "id": "compute.disks.insert",
61280	//   "parameterOrder": [
61281	//     "project",
61282	//     "zone"
61283	//   ],
61284	//   "parameters": {
61285	//     "project": {
61286	//       "description": "Project ID for this request.",
61287	//       "location": "path",
61288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61289	//       "required": true,
61290	//       "type": "string"
61291	//     },
61292	//     "requestId": {
61293	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61294	//       "location": "query",
61295	//       "type": "string"
61296	//     },
61297	//     "sourceImage": {
61298	//       "description": "Source image to restore onto a disk. This field is optional.",
61299	//       "location": "query",
61300	//       "type": "string"
61301	//     },
61302	//     "zone": {
61303	//       "description": "The name of the zone for this request.",
61304	//       "location": "path",
61305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61306	//       "required": true,
61307	//       "type": "string"
61308	//     }
61309	//   },
61310	//   "path": "projects/{project}/zones/{zone}/disks",
61311	//   "request": {
61312	//     "$ref": "Disk"
61313	//   },
61314	//   "response": {
61315	//     "$ref": "Operation"
61316	//   },
61317	//   "scopes": [
61318	//     "https://www.googleapis.com/auth/cloud-platform",
61319	//     "https://www.googleapis.com/auth/compute"
61320	//   ]
61321	// }
61322
61323}
61324
61325// method id "compute.disks.list":
61326
61327type DisksListCall struct {
61328	s            *Service
61329	project      string
61330	zone         string
61331	urlParams_   gensupport.URLParams
61332	ifNoneMatch_ string
61333	ctx_         context.Context
61334	header_      http.Header
61335}
61336
61337// List: Retrieves a list of persistent disks contained within the
61338// specified zone.
61339//
61340// - project: Project ID for this request.
61341// - zone: The name of the zone for this request.
61342// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
61343func (r *DisksService) List(project string, zone string) *DisksListCall {
61344	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61345	c.project = project
61346	c.zone = zone
61347	return c
61348}
61349
61350// Filter sets the optional parameter "filter": A filter expression that
61351// filters resources listed in the response. The expression must specify
61352// the field name, a comparison operator, and the value that you want to
61353// use for filtering. The value must be a string, a number, or a
61354// boolean. The comparison operator must be either `=`, `!=`, `>`, or
61355// `<`.
61356//
61357// For example, if you are filtering Compute Engine instances, you can
61358// exclude instances named `example-instance` by specifying `name !=
61359// example-instance`.
61360//
61361// You can also filter nested fields. For example, you could specify
61362// `scheduling.automaticRestart = false` to include instances only if
61363// they are not scheduled for automatic restarts. You can use filtering
61364// on nested fields to filter based on resource labels.
61365//
61366// To filter on multiple expressions, provide each separate expression
61367// within parentheses. For example: ``` (scheduling.automaticRestart =
61368// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
61369// is an `AND` expression. However, you can include `AND` and `OR`
61370// expressions explicitly. For example: ``` (cpuPlatform = "Intel
61371// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
61372// (scheduling.automaticRestart = true) ```
61373func (c *DisksListCall) Filter(filter string) *DisksListCall {
61374	c.urlParams_.Set("filter", filter)
61375	return c
61376}
61377
61378// MaxResults sets the optional parameter "maxResults": The maximum
61379// number of results per page that should be returned. If the number of
61380// available results is larger than `maxResults`, Compute Engine returns
61381// a `nextPageToken` that can be used to get the next page of results in
61382// subsequent list requests. Acceptable values are `0` to `500`,
61383// inclusive. (Default: `500`)
61384func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
61385	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61386	return c
61387}
61388
61389// OrderBy sets the optional parameter "orderBy": Sorts list results by
61390// a certain order. By default, results are returned in alphanumerical
61391// order based on the resource name.
61392//
61393// You can also sort results in descending order based on the creation
61394// timestamp using `orderBy="creationTimestamp desc". This sorts
61395// results based on the `creationTimestamp` field in reverse
61396// chronological order (newest result first). Use this to sort resources
61397// like operations so that the newest operation is returned
61398// first.
61399//
61400// Currently, only sorting by `name` or `creationTimestamp desc` is
61401// supported.
61402func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
61403	c.urlParams_.Set("orderBy", orderBy)
61404	return c
61405}
61406
61407// PageToken sets the optional parameter "pageToken": Specifies a page
61408// token to use. Set `pageToken` to the `nextPageToken` returned by a
61409// previous list request to get the next page of results.
61410func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
61411	c.urlParams_.Set("pageToken", pageToken)
61412	return c
61413}
61414
61415// ReturnPartialSuccess sets the optional parameter
61416// "returnPartialSuccess": Opt-in for partial success behavior which
61417// provides partial results in case of failure. The default value is
61418// false.
61419func (c *DisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksListCall {
61420	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
61421	return c
61422}
61423
61424// Fields allows partial responses to be retrieved. See
61425// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61426// for more information.
61427func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
61428	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61429	return c
61430}
61431
61432// IfNoneMatch sets the optional parameter which makes the operation
61433// fail if the object's ETag matches the given value. This is useful for
61434// getting updates only after the object has changed since the last
61435// request. Use googleapi.IsNotModified to check whether the response
61436// error from Do is the result of In-None-Match.
61437func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
61438	c.ifNoneMatch_ = entityTag
61439	return c
61440}
61441
61442// Context sets the context to be used in this call's Do method. Any
61443// pending HTTP request will be aborted if the provided context is
61444// canceled.
61445func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
61446	c.ctx_ = ctx
61447	return c
61448}
61449
61450// Header returns an http.Header that can be modified by the caller to
61451// add HTTP headers to the request.
61452func (c *DisksListCall) Header() http.Header {
61453	if c.header_ == nil {
61454		c.header_ = make(http.Header)
61455	}
61456	return c.header_
61457}
61458
61459func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
61460	reqHeaders := make(http.Header)
61461	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61462	for k, v := range c.header_ {
61463		reqHeaders[k] = v
61464	}
61465	reqHeaders.Set("User-Agent", c.s.userAgent())
61466	if c.ifNoneMatch_ != "" {
61467		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61468	}
61469	var body io.Reader = nil
61470	c.urlParams_.Set("alt", alt)
61471	c.urlParams_.Set("prettyPrint", "false")
61472	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
61473	urls += "?" + c.urlParams_.Encode()
61474	req, err := http.NewRequest("GET", urls, body)
61475	if err != nil {
61476		return nil, err
61477	}
61478	req.Header = reqHeaders
61479	googleapi.Expand(req.URL, map[string]string{
61480		"project": c.project,
61481		"zone":    c.zone,
61482	})
61483	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61484}
61485
61486// Do executes the "compute.disks.list" call.
61487// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
61488// code is an error. Response headers are in either
61489// *DiskList.ServerResponse.Header or (if a response was returned at
61490// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61491// to check whether the returned error was because
61492// http.StatusNotModified was returned.
61493func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
61494	gensupport.SetOptions(c.urlParams_, opts...)
61495	res, err := c.doRequest("json")
61496	if res != nil && res.StatusCode == http.StatusNotModified {
61497		if res.Body != nil {
61498			res.Body.Close()
61499		}
61500		return nil, &googleapi.Error{
61501			Code:   res.StatusCode,
61502			Header: res.Header,
61503		}
61504	}
61505	if err != nil {
61506		return nil, err
61507	}
61508	defer googleapi.CloseBody(res)
61509	if err := googleapi.CheckResponse(res); err != nil {
61510		return nil, err
61511	}
61512	ret := &DiskList{
61513		ServerResponse: googleapi.ServerResponse{
61514			Header:         res.Header,
61515			HTTPStatusCode: res.StatusCode,
61516		},
61517	}
61518	target := &ret
61519	if err := gensupport.DecodeResponse(target, res); err != nil {
61520		return nil, err
61521	}
61522	return ret, nil
61523	// {
61524	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
61525	//   "httpMethod": "GET",
61526	//   "id": "compute.disks.list",
61527	//   "parameterOrder": [
61528	//     "project",
61529	//     "zone"
61530	//   ],
61531	//   "parameters": {
61532	//     "filter": {
61533	//       "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) ```",
61534	//       "location": "query",
61535	//       "type": "string"
61536	//     },
61537	//     "maxResults": {
61538	//       "default": "500",
61539	//       "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`)",
61540	//       "format": "uint32",
61541	//       "location": "query",
61542	//       "minimum": "0",
61543	//       "type": "integer"
61544	//     },
61545	//     "orderBy": {
61546	//       "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.",
61547	//       "location": "query",
61548	//       "type": "string"
61549	//     },
61550	//     "pageToken": {
61551	//       "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.",
61552	//       "location": "query",
61553	//       "type": "string"
61554	//     },
61555	//     "project": {
61556	//       "description": "Project ID for this request.",
61557	//       "location": "path",
61558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61559	//       "required": true,
61560	//       "type": "string"
61561	//     },
61562	//     "returnPartialSuccess": {
61563	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
61564	//       "location": "query",
61565	//       "type": "boolean"
61566	//     },
61567	//     "zone": {
61568	//       "description": "The name of the zone for this request.",
61569	//       "location": "path",
61570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61571	//       "required": true,
61572	//       "type": "string"
61573	//     }
61574	//   },
61575	//   "path": "projects/{project}/zones/{zone}/disks",
61576	//   "response": {
61577	//     "$ref": "DiskList"
61578	//   },
61579	//   "scopes": [
61580	//     "https://www.googleapis.com/auth/cloud-platform",
61581	//     "https://www.googleapis.com/auth/compute",
61582	//     "https://www.googleapis.com/auth/compute.readonly"
61583	//   ]
61584	// }
61585
61586}
61587
61588// Pages invokes f for each page of results.
61589// A non-nil error returned from f will halt the iteration.
61590// The provided context supersedes any context provided to the Context method.
61591func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
61592	c.ctx_ = ctx
61593	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61594	for {
61595		x, err := c.Do()
61596		if err != nil {
61597			return err
61598		}
61599		if err := f(x); err != nil {
61600			return err
61601		}
61602		if x.NextPageToken == "" {
61603			return nil
61604		}
61605		c.PageToken(x.NextPageToken)
61606	}
61607}
61608
61609// method id "compute.disks.removeResourcePolicies":
61610
61611type DisksRemoveResourcePoliciesCall struct {
61612	s                                  *Service
61613	project                            string
61614	zone                               string
61615	disk                               string
61616	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
61617	urlParams_                         gensupport.URLParams
61618	ctx_                               context.Context
61619	header_                            http.Header
61620}
61621
61622// RemoveResourcePolicies: Removes resource policies from a disk.
61623//
61624// - disk: The disk name for this request.
61625// - project: Project ID for this request.
61626// - zone: The name of the zone for this request.
61627func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
61628	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61629	c.project = project
61630	c.zone = zone
61631	c.disk = disk
61632	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
61633	return c
61634}
61635
61636// RequestId sets the optional parameter "requestId": An optional
61637// request ID to identify requests. Specify a unique request ID so that
61638// if you must retry your request, the server will know to ignore the
61639// request if it has already been completed.
61640//
61641// For example, consider a situation where you make an initial request
61642// and the request times out. If you make the request again with the
61643// same request ID, the server can check if original operation with the
61644// same request ID was received, and if so, will ignore the second
61645// request. This prevents clients from accidentally creating duplicate
61646// commitments.
61647//
61648// The request ID must be a valid UUID with the exception that zero UUID
61649// is not supported (00000000-0000-0000-0000-000000000000).
61650func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
61651	c.urlParams_.Set("requestId", requestId)
61652	return c
61653}
61654
61655// Fields allows partial responses to be retrieved. See
61656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61657// for more information.
61658func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
61659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61660	return c
61661}
61662
61663// Context sets the context to be used in this call's Do method. Any
61664// pending HTTP request will be aborted if the provided context is
61665// canceled.
61666func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
61667	c.ctx_ = ctx
61668	return c
61669}
61670
61671// Header returns an http.Header that can be modified by the caller to
61672// add HTTP headers to the request.
61673func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
61674	if c.header_ == nil {
61675		c.header_ = make(http.Header)
61676	}
61677	return c.header_
61678}
61679
61680func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
61681	reqHeaders := make(http.Header)
61682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61683	for k, v := range c.header_ {
61684		reqHeaders[k] = v
61685	}
61686	reqHeaders.Set("User-Agent", c.s.userAgent())
61687	var body io.Reader = nil
61688	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
61689	if err != nil {
61690		return nil, err
61691	}
61692	reqHeaders.Set("Content-Type", "application/json")
61693	c.urlParams_.Set("alt", alt)
61694	c.urlParams_.Set("prettyPrint", "false")
61695	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
61696	urls += "?" + c.urlParams_.Encode()
61697	req, err := http.NewRequest("POST", urls, body)
61698	if err != nil {
61699		return nil, err
61700	}
61701	req.Header = reqHeaders
61702	googleapi.Expand(req.URL, map[string]string{
61703		"project": c.project,
61704		"zone":    c.zone,
61705		"disk":    c.disk,
61706	})
61707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61708}
61709
61710// Do executes the "compute.disks.removeResourcePolicies" call.
61711// Exactly one of *Operation or error will be non-nil. Any non-2xx
61712// status code is an error. Response headers are in either
61713// *Operation.ServerResponse.Header or (if a response was returned at
61714// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61715// to check whether the returned error was because
61716// http.StatusNotModified was returned.
61717func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61718	gensupport.SetOptions(c.urlParams_, opts...)
61719	res, err := c.doRequest("json")
61720	if res != nil && res.StatusCode == http.StatusNotModified {
61721		if res.Body != nil {
61722			res.Body.Close()
61723		}
61724		return nil, &googleapi.Error{
61725			Code:   res.StatusCode,
61726			Header: res.Header,
61727		}
61728	}
61729	if err != nil {
61730		return nil, err
61731	}
61732	defer googleapi.CloseBody(res)
61733	if err := googleapi.CheckResponse(res); err != nil {
61734		return nil, err
61735	}
61736	ret := &Operation{
61737		ServerResponse: googleapi.ServerResponse{
61738			Header:         res.Header,
61739			HTTPStatusCode: res.StatusCode,
61740		},
61741	}
61742	target := &ret
61743	if err := gensupport.DecodeResponse(target, res); err != nil {
61744		return nil, err
61745	}
61746	return ret, nil
61747	// {
61748	//   "description": "Removes resource policies from a disk.",
61749	//   "httpMethod": "POST",
61750	//   "id": "compute.disks.removeResourcePolicies",
61751	//   "parameterOrder": [
61752	//     "project",
61753	//     "zone",
61754	//     "disk"
61755	//   ],
61756	//   "parameters": {
61757	//     "disk": {
61758	//       "description": "The disk name for this request.",
61759	//       "location": "path",
61760	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61761	//       "required": true,
61762	//       "type": "string"
61763	//     },
61764	//     "project": {
61765	//       "description": "Project ID for this request.",
61766	//       "location": "path",
61767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61768	//       "required": true,
61769	//       "type": "string"
61770	//     },
61771	//     "requestId": {
61772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61773	//       "location": "query",
61774	//       "type": "string"
61775	//     },
61776	//     "zone": {
61777	//       "description": "The name of the zone for this request.",
61778	//       "location": "path",
61779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61780	//       "required": true,
61781	//       "type": "string"
61782	//     }
61783	//   },
61784	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
61785	//   "request": {
61786	//     "$ref": "DisksRemoveResourcePoliciesRequest"
61787	//   },
61788	//   "response": {
61789	//     "$ref": "Operation"
61790	//   },
61791	//   "scopes": [
61792	//     "https://www.googleapis.com/auth/cloud-platform",
61793	//     "https://www.googleapis.com/auth/compute"
61794	//   ]
61795	// }
61796
61797}
61798
61799// method id "compute.disks.resize":
61800
61801type DisksResizeCall struct {
61802	s                  *Service
61803	project            string
61804	zone               string
61805	disk               string
61806	disksresizerequest *DisksResizeRequest
61807	urlParams_         gensupport.URLParams
61808	ctx_               context.Context
61809	header_            http.Header
61810}
61811
61812// Resize: Resizes the specified persistent disk. You can only increase
61813// the size of the disk.
61814//
61815// - disk: The name of the persistent disk.
61816// - project: Project ID for this request.
61817// - zone: The name of the zone for this request.
61818func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
61819	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61820	c.project = project
61821	c.zone = zone
61822	c.disk = disk
61823	c.disksresizerequest = disksresizerequest
61824	return c
61825}
61826
61827// RequestId sets the optional parameter "requestId": An optional
61828// request ID to identify requests. Specify a unique request ID so that
61829// if you must retry your request, the server will know to ignore the
61830// request if it has already been completed.
61831//
61832// For example, consider a situation where you make an initial request
61833// and the request times out. If you make the request again with the
61834// same request ID, the server can check if original operation with the
61835// same request ID was received, and if so, will ignore the second
61836// request. This prevents clients from accidentally creating duplicate
61837// commitments.
61838//
61839// The request ID must be a valid UUID with the exception that zero UUID
61840// is not supported (00000000-0000-0000-0000-000000000000).
61841func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
61842	c.urlParams_.Set("requestId", requestId)
61843	return c
61844}
61845
61846// Fields allows partial responses to be retrieved. See
61847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61848// for more information.
61849func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
61850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61851	return c
61852}
61853
61854// Context sets the context to be used in this call's Do method. Any
61855// pending HTTP request will be aborted if the provided context is
61856// canceled.
61857func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
61858	c.ctx_ = ctx
61859	return c
61860}
61861
61862// Header returns an http.Header that can be modified by the caller to
61863// add HTTP headers to the request.
61864func (c *DisksResizeCall) Header() http.Header {
61865	if c.header_ == nil {
61866		c.header_ = make(http.Header)
61867	}
61868	return c.header_
61869}
61870
61871func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
61872	reqHeaders := make(http.Header)
61873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61874	for k, v := range c.header_ {
61875		reqHeaders[k] = v
61876	}
61877	reqHeaders.Set("User-Agent", c.s.userAgent())
61878	var body io.Reader = nil
61879	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
61880	if err != nil {
61881		return nil, err
61882	}
61883	reqHeaders.Set("Content-Type", "application/json")
61884	c.urlParams_.Set("alt", alt)
61885	c.urlParams_.Set("prettyPrint", "false")
61886	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/resize")
61887	urls += "?" + c.urlParams_.Encode()
61888	req, err := http.NewRequest("POST", urls, body)
61889	if err != nil {
61890		return nil, err
61891	}
61892	req.Header = reqHeaders
61893	googleapi.Expand(req.URL, map[string]string{
61894		"project": c.project,
61895		"zone":    c.zone,
61896		"disk":    c.disk,
61897	})
61898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61899}
61900
61901// Do executes the "compute.disks.resize" call.
61902// Exactly one of *Operation or error will be non-nil. Any non-2xx
61903// status code is an error. Response headers are in either
61904// *Operation.ServerResponse.Header or (if a response was returned at
61905// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61906// to check whether the returned error was because
61907// http.StatusNotModified was returned.
61908func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61909	gensupport.SetOptions(c.urlParams_, opts...)
61910	res, err := c.doRequest("json")
61911	if res != nil && res.StatusCode == http.StatusNotModified {
61912		if res.Body != nil {
61913			res.Body.Close()
61914		}
61915		return nil, &googleapi.Error{
61916			Code:   res.StatusCode,
61917			Header: res.Header,
61918		}
61919	}
61920	if err != nil {
61921		return nil, err
61922	}
61923	defer googleapi.CloseBody(res)
61924	if err := googleapi.CheckResponse(res); err != nil {
61925		return nil, err
61926	}
61927	ret := &Operation{
61928		ServerResponse: googleapi.ServerResponse{
61929			Header:         res.Header,
61930			HTTPStatusCode: res.StatusCode,
61931		},
61932	}
61933	target := &ret
61934	if err := gensupport.DecodeResponse(target, res); err != nil {
61935		return nil, err
61936	}
61937	return ret, nil
61938	// {
61939	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
61940	//   "httpMethod": "POST",
61941	//   "id": "compute.disks.resize",
61942	//   "parameterOrder": [
61943	//     "project",
61944	//     "zone",
61945	//     "disk"
61946	//   ],
61947	//   "parameters": {
61948	//     "disk": {
61949	//       "description": "The name of the persistent disk.",
61950	//       "location": "path",
61951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61952	//       "required": true,
61953	//       "type": "string"
61954	//     },
61955	//     "project": {
61956	//       "description": "Project ID for this request.",
61957	//       "location": "path",
61958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61959	//       "required": true,
61960	//       "type": "string"
61961	//     },
61962	//     "requestId": {
61963	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61964	//       "location": "query",
61965	//       "type": "string"
61966	//     },
61967	//     "zone": {
61968	//       "description": "The name of the zone for this request.",
61969	//       "location": "path",
61970	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61971	//       "required": true,
61972	//       "type": "string"
61973	//     }
61974	//   },
61975	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/resize",
61976	//   "request": {
61977	//     "$ref": "DisksResizeRequest"
61978	//   },
61979	//   "response": {
61980	//     "$ref": "Operation"
61981	//   },
61982	//   "scopes": [
61983	//     "https://www.googleapis.com/auth/cloud-platform",
61984	//     "https://www.googleapis.com/auth/compute"
61985	//   ]
61986	// }
61987
61988}
61989
61990// method id "compute.disks.setIamPolicy":
61991
61992type DisksSetIamPolicyCall struct {
61993	s                    *Service
61994	project              string
61995	zone                 string
61996	resource             string
61997	zonesetpolicyrequest *ZoneSetPolicyRequest
61998	urlParams_           gensupport.URLParams
61999	ctx_                 context.Context
62000	header_              http.Header
62001}
62002
62003// SetIamPolicy: Sets the access control policy on the specified
62004// resource. Replaces any existing policy.
62005//
62006// - project: Project ID for this request.
62007// - resource: Name or id of the resource for this request.
62008// - zone: The name of the zone for this request.
62009func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
62010	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62011	c.project = project
62012	c.zone = zone
62013	c.resource = resource
62014	c.zonesetpolicyrequest = zonesetpolicyrequest
62015	return c
62016}
62017
62018// Fields allows partial responses to be retrieved. See
62019// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62020// for more information.
62021func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
62022	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62023	return c
62024}
62025
62026// Context sets the context to be used in this call's Do method. Any
62027// pending HTTP request will be aborted if the provided context is
62028// canceled.
62029func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
62030	c.ctx_ = ctx
62031	return c
62032}
62033
62034// Header returns an http.Header that can be modified by the caller to
62035// add HTTP headers to the request.
62036func (c *DisksSetIamPolicyCall) Header() http.Header {
62037	if c.header_ == nil {
62038		c.header_ = make(http.Header)
62039	}
62040	return c.header_
62041}
62042
62043func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
62044	reqHeaders := make(http.Header)
62045	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62046	for k, v := range c.header_ {
62047		reqHeaders[k] = v
62048	}
62049	reqHeaders.Set("User-Agent", c.s.userAgent())
62050	var body io.Reader = nil
62051	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
62052	if err != nil {
62053		return nil, err
62054	}
62055	reqHeaders.Set("Content-Type", "application/json")
62056	c.urlParams_.Set("alt", alt)
62057	c.urlParams_.Set("prettyPrint", "false")
62058	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy")
62059	urls += "?" + c.urlParams_.Encode()
62060	req, err := http.NewRequest("POST", urls, body)
62061	if err != nil {
62062		return nil, err
62063	}
62064	req.Header = reqHeaders
62065	googleapi.Expand(req.URL, map[string]string{
62066		"project":  c.project,
62067		"zone":     c.zone,
62068		"resource": c.resource,
62069	})
62070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62071}
62072
62073// Do executes the "compute.disks.setIamPolicy" call.
62074// Exactly one of *Policy or error will be non-nil. Any non-2xx status
62075// code is an error. Response headers are in either
62076// *Policy.ServerResponse.Header or (if a response was returned at all)
62077// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
62078// check whether the returned error was because http.StatusNotModified
62079// was returned.
62080func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
62081	gensupport.SetOptions(c.urlParams_, opts...)
62082	res, err := c.doRequest("json")
62083	if res != nil && res.StatusCode == http.StatusNotModified {
62084		if res.Body != nil {
62085			res.Body.Close()
62086		}
62087		return nil, &googleapi.Error{
62088			Code:   res.StatusCode,
62089			Header: res.Header,
62090		}
62091	}
62092	if err != nil {
62093		return nil, err
62094	}
62095	defer googleapi.CloseBody(res)
62096	if err := googleapi.CheckResponse(res); err != nil {
62097		return nil, err
62098	}
62099	ret := &Policy{
62100		ServerResponse: googleapi.ServerResponse{
62101			Header:         res.Header,
62102			HTTPStatusCode: res.StatusCode,
62103		},
62104	}
62105	target := &ret
62106	if err := gensupport.DecodeResponse(target, res); err != nil {
62107		return nil, err
62108	}
62109	return ret, nil
62110	// {
62111	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
62112	//   "httpMethod": "POST",
62113	//   "id": "compute.disks.setIamPolicy",
62114	//   "parameterOrder": [
62115	//     "project",
62116	//     "zone",
62117	//     "resource"
62118	//   ],
62119	//   "parameters": {
62120	//     "project": {
62121	//       "description": "Project ID for this request.",
62122	//       "location": "path",
62123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62124	//       "required": true,
62125	//       "type": "string"
62126	//     },
62127	//     "resource": {
62128	//       "description": "Name or id of the resource for this request.",
62129	//       "location": "path",
62130	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62131	//       "required": true,
62132	//       "type": "string"
62133	//     },
62134	//     "zone": {
62135	//       "description": "The name of the zone for this request.",
62136	//       "location": "path",
62137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62138	//       "required": true,
62139	//       "type": "string"
62140	//     }
62141	//   },
62142	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
62143	//   "request": {
62144	//     "$ref": "ZoneSetPolicyRequest"
62145	//   },
62146	//   "response": {
62147	//     "$ref": "Policy"
62148	//   },
62149	//   "scopes": [
62150	//     "https://www.googleapis.com/auth/cloud-platform",
62151	//     "https://www.googleapis.com/auth/compute"
62152	//   ]
62153	// }
62154
62155}
62156
62157// method id "compute.disks.setLabels":
62158
62159type DisksSetLabelsCall struct {
62160	s                    *Service
62161	project              string
62162	zone                 string
62163	resource             string
62164	zonesetlabelsrequest *ZoneSetLabelsRequest
62165	urlParams_           gensupport.URLParams
62166	ctx_                 context.Context
62167	header_              http.Header
62168}
62169
62170// SetLabels: Sets the labels on a disk. To learn more about labels,
62171// read the Labeling Resources documentation.
62172//
62173// - project: Project ID for this request.
62174// - resource: Name or id of the resource for this request.
62175// - zone: The name of the zone for this request.
62176func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
62177	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62178	c.project = project
62179	c.zone = zone
62180	c.resource = resource
62181	c.zonesetlabelsrequest = zonesetlabelsrequest
62182	return c
62183}
62184
62185// RequestId sets the optional parameter "requestId": An optional
62186// request ID to identify requests. Specify a unique request ID so that
62187// if you must retry your request, the server will know to ignore the
62188// request if it has already been completed.
62189//
62190// For example, consider a situation where you make an initial request
62191// and the request times out. If you make the request again with the
62192// same request ID, the server can check if original operation with the
62193// same request ID was received, and if so, will ignore the second
62194// request. This prevents clients from accidentally creating duplicate
62195// commitments.
62196//
62197// The request ID must be a valid UUID with the exception that zero UUID
62198// is not supported (00000000-0000-0000-0000-000000000000).
62199func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
62200	c.urlParams_.Set("requestId", requestId)
62201	return c
62202}
62203
62204// Fields allows partial responses to be retrieved. See
62205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62206// for more information.
62207func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
62208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62209	return c
62210}
62211
62212// Context sets the context to be used in this call's Do method. Any
62213// pending HTTP request will be aborted if the provided context is
62214// canceled.
62215func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
62216	c.ctx_ = ctx
62217	return c
62218}
62219
62220// Header returns an http.Header that can be modified by the caller to
62221// add HTTP headers to the request.
62222func (c *DisksSetLabelsCall) Header() http.Header {
62223	if c.header_ == nil {
62224		c.header_ = make(http.Header)
62225	}
62226	return c.header_
62227}
62228
62229func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
62230	reqHeaders := make(http.Header)
62231	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62232	for k, v := range c.header_ {
62233		reqHeaders[k] = v
62234	}
62235	reqHeaders.Set("User-Agent", c.s.userAgent())
62236	var body io.Reader = nil
62237	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
62238	if err != nil {
62239		return nil, err
62240	}
62241	reqHeaders.Set("Content-Type", "application/json")
62242	c.urlParams_.Set("alt", alt)
62243	c.urlParams_.Set("prettyPrint", "false")
62244	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setLabels")
62245	urls += "?" + c.urlParams_.Encode()
62246	req, err := http.NewRequest("POST", urls, body)
62247	if err != nil {
62248		return nil, err
62249	}
62250	req.Header = reqHeaders
62251	googleapi.Expand(req.URL, map[string]string{
62252		"project":  c.project,
62253		"zone":     c.zone,
62254		"resource": c.resource,
62255	})
62256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62257}
62258
62259// Do executes the "compute.disks.setLabels" call.
62260// Exactly one of *Operation or error will be non-nil. Any non-2xx
62261// status code is an error. Response headers are in either
62262// *Operation.ServerResponse.Header or (if a response was returned at
62263// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62264// to check whether the returned error was because
62265// http.StatusNotModified was returned.
62266func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62267	gensupport.SetOptions(c.urlParams_, opts...)
62268	res, err := c.doRequest("json")
62269	if res != nil && res.StatusCode == http.StatusNotModified {
62270		if res.Body != nil {
62271			res.Body.Close()
62272		}
62273		return nil, &googleapi.Error{
62274			Code:   res.StatusCode,
62275			Header: res.Header,
62276		}
62277	}
62278	if err != nil {
62279		return nil, err
62280	}
62281	defer googleapi.CloseBody(res)
62282	if err := googleapi.CheckResponse(res); err != nil {
62283		return nil, err
62284	}
62285	ret := &Operation{
62286		ServerResponse: googleapi.ServerResponse{
62287			Header:         res.Header,
62288			HTTPStatusCode: res.StatusCode,
62289		},
62290	}
62291	target := &ret
62292	if err := gensupport.DecodeResponse(target, res); err != nil {
62293		return nil, err
62294	}
62295	return ret, nil
62296	// {
62297	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
62298	//   "httpMethod": "POST",
62299	//   "id": "compute.disks.setLabels",
62300	//   "parameterOrder": [
62301	//     "project",
62302	//     "zone",
62303	//     "resource"
62304	//   ],
62305	//   "parameters": {
62306	//     "project": {
62307	//       "description": "Project ID for this request.",
62308	//       "location": "path",
62309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62310	//       "required": true,
62311	//       "type": "string"
62312	//     },
62313	//     "requestId": {
62314	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62315	//       "location": "query",
62316	//       "type": "string"
62317	//     },
62318	//     "resource": {
62319	//       "description": "Name or id of the resource for this request.",
62320	//       "location": "path",
62321	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62322	//       "required": true,
62323	//       "type": "string"
62324	//     },
62325	//     "zone": {
62326	//       "description": "The name of the zone for this request.",
62327	//       "location": "path",
62328	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62329	//       "required": true,
62330	//       "type": "string"
62331	//     }
62332	//   },
62333	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
62334	//   "request": {
62335	//     "$ref": "ZoneSetLabelsRequest"
62336	//   },
62337	//   "response": {
62338	//     "$ref": "Operation"
62339	//   },
62340	//   "scopes": [
62341	//     "https://www.googleapis.com/auth/cloud-platform",
62342	//     "https://www.googleapis.com/auth/compute"
62343	//   ]
62344	// }
62345
62346}
62347
62348// method id "compute.disks.testIamPermissions":
62349
62350type DisksTestIamPermissionsCall struct {
62351	s                      *Service
62352	project                string
62353	zone                   string
62354	resource               string
62355	testpermissionsrequest *TestPermissionsRequest
62356	urlParams_             gensupport.URLParams
62357	ctx_                   context.Context
62358	header_                http.Header
62359}
62360
62361// TestIamPermissions: Returns permissions that a caller has on the
62362// specified resource.
62363//
62364// - project: Project ID for this request.
62365// - resource: Name or id of the resource for this request.
62366// - zone: The name of the zone for this request.
62367func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
62368	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62369	c.project = project
62370	c.zone = zone
62371	c.resource = resource
62372	c.testpermissionsrequest = testpermissionsrequest
62373	return c
62374}
62375
62376// Fields allows partial responses to be retrieved. See
62377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62378// for more information.
62379func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
62380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62381	return c
62382}
62383
62384// Context sets the context to be used in this call's Do method. Any
62385// pending HTTP request will be aborted if the provided context is
62386// canceled.
62387func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
62388	c.ctx_ = ctx
62389	return c
62390}
62391
62392// Header returns an http.Header that can be modified by the caller to
62393// add HTTP headers to the request.
62394func (c *DisksTestIamPermissionsCall) Header() http.Header {
62395	if c.header_ == nil {
62396		c.header_ = make(http.Header)
62397	}
62398	return c.header_
62399}
62400
62401func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
62402	reqHeaders := make(http.Header)
62403	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62404	for k, v := range c.header_ {
62405		reqHeaders[k] = v
62406	}
62407	reqHeaders.Set("User-Agent", c.s.userAgent())
62408	var body io.Reader = nil
62409	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
62410	if err != nil {
62411		return nil, err
62412	}
62413	reqHeaders.Set("Content-Type", "application/json")
62414	c.urlParams_.Set("alt", alt)
62415	c.urlParams_.Set("prettyPrint", "false")
62416	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions")
62417	urls += "?" + c.urlParams_.Encode()
62418	req, err := http.NewRequest("POST", urls, body)
62419	if err != nil {
62420		return nil, err
62421	}
62422	req.Header = reqHeaders
62423	googleapi.Expand(req.URL, map[string]string{
62424		"project":  c.project,
62425		"zone":     c.zone,
62426		"resource": c.resource,
62427	})
62428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62429}
62430
62431// Do executes the "compute.disks.testIamPermissions" call.
62432// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
62433// non-2xx status code is an error. Response headers are in either
62434// *TestPermissionsResponse.ServerResponse.Header or (if a response was
62435// returned at all) in error.(*googleapi.Error).Header. Use
62436// googleapi.IsNotModified to check whether the returned error was
62437// because http.StatusNotModified was returned.
62438func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
62439	gensupport.SetOptions(c.urlParams_, opts...)
62440	res, err := c.doRequest("json")
62441	if res != nil && res.StatusCode == http.StatusNotModified {
62442		if res.Body != nil {
62443			res.Body.Close()
62444		}
62445		return nil, &googleapi.Error{
62446			Code:   res.StatusCode,
62447			Header: res.Header,
62448		}
62449	}
62450	if err != nil {
62451		return nil, err
62452	}
62453	defer googleapi.CloseBody(res)
62454	if err := googleapi.CheckResponse(res); err != nil {
62455		return nil, err
62456	}
62457	ret := &TestPermissionsResponse{
62458		ServerResponse: googleapi.ServerResponse{
62459			Header:         res.Header,
62460			HTTPStatusCode: res.StatusCode,
62461		},
62462	}
62463	target := &ret
62464	if err := gensupport.DecodeResponse(target, res); err != nil {
62465		return nil, err
62466	}
62467	return ret, nil
62468	// {
62469	//   "description": "Returns permissions that a caller has on the specified resource.",
62470	//   "httpMethod": "POST",
62471	//   "id": "compute.disks.testIamPermissions",
62472	//   "parameterOrder": [
62473	//     "project",
62474	//     "zone",
62475	//     "resource"
62476	//   ],
62477	//   "parameters": {
62478	//     "project": {
62479	//       "description": "Project ID for this request.",
62480	//       "location": "path",
62481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62482	//       "required": true,
62483	//       "type": "string"
62484	//     },
62485	//     "resource": {
62486	//       "description": "Name or id of the resource for this request.",
62487	//       "location": "path",
62488	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62489	//       "required": true,
62490	//       "type": "string"
62491	//     },
62492	//     "zone": {
62493	//       "description": "The name of the zone for this request.",
62494	//       "location": "path",
62495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62496	//       "required": true,
62497	//       "type": "string"
62498	//     }
62499	//   },
62500	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
62501	//   "request": {
62502	//     "$ref": "TestPermissionsRequest"
62503	//   },
62504	//   "response": {
62505	//     "$ref": "TestPermissionsResponse"
62506	//   },
62507	//   "scopes": [
62508	//     "https://www.googleapis.com/auth/cloud-platform",
62509	//     "https://www.googleapis.com/auth/compute",
62510	//     "https://www.googleapis.com/auth/compute.readonly"
62511	//   ]
62512	// }
62513
62514}
62515
62516// method id "compute.externalVpnGateways.delete":
62517
62518type ExternalVpnGatewaysDeleteCall struct {
62519	s                  *Service
62520	project            string
62521	externalVpnGateway string
62522	urlParams_         gensupport.URLParams
62523	ctx_               context.Context
62524	header_            http.Header
62525}
62526
62527// Delete: Deletes the specified externalVpnGateway.
62528//
62529// - externalVpnGateway: Name of the externalVpnGateways to delete.
62530// - project: Project ID for this request.
62531func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
62532	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62533	c.project = project
62534	c.externalVpnGateway = externalVpnGateway
62535	return c
62536}
62537
62538// RequestId sets the optional parameter "requestId": An optional
62539// request ID to identify requests. Specify a unique request ID so that
62540// if you must retry your request, the server will know to ignore the
62541// request if it has already been completed.
62542//
62543// For example, consider a situation where you make an initial request
62544// and the request times out. If you make the request again with the
62545// same request ID, the server can check if original operation with the
62546// same request ID was received, and if so, will ignore the second
62547// request. This prevents clients from accidentally creating duplicate
62548// commitments.
62549//
62550// The request ID must be a valid UUID with the exception that zero UUID
62551// is not supported (00000000-0000-0000-0000-000000000000).
62552func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
62553	c.urlParams_.Set("requestId", requestId)
62554	return c
62555}
62556
62557// Fields allows partial responses to be retrieved. See
62558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62559// for more information.
62560func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
62561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62562	return c
62563}
62564
62565// Context sets the context to be used in this call's Do method. Any
62566// pending HTTP request will be aborted if the provided context is
62567// canceled.
62568func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
62569	c.ctx_ = ctx
62570	return c
62571}
62572
62573// Header returns an http.Header that can be modified by the caller to
62574// add HTTP headers to the request.
62575func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
62576	if c.header_ == nil {
62577		c.header_ = make(http.Header)
62578	}
62579	return c.header_
62580}
62581
62582func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
62583	reqHeaders := make(http.Header)
62584	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62585	for k, v := range c.header_ {
62586		reqHeaders[k] = v
62587	}
62588	reqHeaders.Set("User-Agent", c.s.userAgent())
62589	var body io.Reader = nil
62590	c.urlParams_.Set("alt", alt)
62591	c.urlParams_.Set("prettyPrint", "false")
62592	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
62593	urls += "?" + c.urlParams_.Encode()
62594	req, err := http.NewRequest("DELETE", urls, body)
62595	if err != nil {
62596		return nil, err
62597	}
62598	req.Header = reqHeaders
62599	googleapi.Expand(req.URL, map[string]string{
62600		"project":            c.project,
62601		"externalVpnGateway": c.externalVpnGateway,
62602	})
62603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62604}
62605
62606// Do executes the "compute.externalVpnGateways.delete" call.
62607// Exactly one of *Operation or error will be non-nil. Any non-2xx
62608// status code is an error. Response headers are in either
62609// *Operation.ServerResponse.Header or (if a response was returned at
62610// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62611// to check whether the returned error was because
62612// http.StatusNotModified was returned.
62613func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62614	gensupport.SetOptions(c.urlParams_, opts...)
62615	res, err := c.doRequest("json")
62616	if res != nil && res.StatusCode == http.StatusNotModified {
62617		if res.Body != nil {
62618			res.Body.Close()
62619		}
62620		return nil, &googleapi.Error{
62621			Code:   res.StatusCode,
62622			Header: res.Header,
62623		}
62624	}
62625	if err != nil {
62626		return nil, err
62627	}
62628	defer googleapi.CloseBody(res)
62629	if err := googleapi.CheckResponse(res); err != nil {
62630		return nil, err
62631	}
62632	ret := &Operation{
62633		ServerResponse: googleapi.ServerResponse{
62634			Header:         res.Header,
62635			HTTPStatusCode: res.StatusCode,
62636		},
62637	}
62638	target := &ret
62639	if err := gensupport.DecodeResponse(target, res); err != nil {
62640		return nil, err
62641	}
62642	return ret, nil
62643	// {
62644	//   "description": "Deletes the specified externalVpnGateway.",
62645	//   "httpMethod": "DELETE",
62646	//   "id": "compute.externalVpnGateways.delete",
62647	//   "parameterOrder": [
62648	//     "project",
62649	//     "externalVpnGateway"
62650	//   ],
62651	//   "parameters": {
62652	//     "externalVpnGateway": {
62653	//       "description": "Name of the externalVpnGateways to delete.",
62654	//       "location": "path",
62655	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62656	//       "required": true,
62657	//       "type": "string"
62658	//     },
62659	//     "project": {
62660	//       "description": "Project ID for this request.",
62661	//       "location": "path",
62662	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62663	//       "required": true,
62664	//       "type": "string"
62665	//     },
62666	//     "requestId": {
62667	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62668	//       "location": "query",
62669	//       "type": "string"
62670	//     }
62671	//   },
62672	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
62673	//   "response": {
62674	//     "$ref": "Operation"
62675	//   },
62676	//   "scopes": [
62677	//     "https://www.googleapis.com/auth/cloud-platform",
62678	//     "https://www.googleapis.com/auth/compute"
62679	//   ]
62680	// }
62681
62682}
62683
62684// method id "compute.externalVpnGateways.get":
62685
62686type ExternalVpnGatewaysGetCall struct {
62687	s                  *Service
62688	project            string
62689	externalVpnGateway string
62690	urlParams_         gensupport.URLParams
62691	ifNoneMatch_       string
62692	ctx_               context.Context
62693	header_            http.Header
62694}
62695
62696// Get: Returns the specified externalVpnGateway. Get a list of
62697// available externalVpnGateways by making a list() request.
62698//
62699// - externalVpnGateway: Name of the externalVpnGateway to return.
62700// - project: Project ID for this request.
62701func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
62702	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62703	c.project = project
62704	c.externalVpnGateway = externalVpnGateway
62705	return c
62706}
62707
62708// Fields allows partial responses to be retrieved. See
62709// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62710// for more information.
62711func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
62712	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62713	return c
62714}
62715
62716// IfNoneMatch sets the optional parameter which makes the operation
62717// fail if the object's ETag matches the given value. This is useful for
62718// getting updates only after the object has changed since the last
62719// request. Use googleapi.IsNotModified to check whether the response
62720// error from Do is the result of In-None-Match.
62721func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
62722	c.ifNoneMatch_ = entityTag
62723	return c
62724}
62725
62726// Context sets the context to be used in this call's Do method. Any
62727// pending HTTP request will be aborted if the provided context is
62728// canceled.
62729func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
62730	c.ctx_ = ctx
62731	return c
62732}
62733
62734// Header returns an http.Header that can be modified by the caller to
62735// add HTTP headers to the request.
62736func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
62737	if c.header_ == nil {
62738		c.header_ = make(http.Header)
62739	}
62740	return c.header_
62741}
62742
62743func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
62744	reqHeaders := make(http.Header)
62745	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62746	for k, v := range c.header_ {
62747		reqHeaders[k] = v
62748	}
62749	reqHeaders.Set("User-Agent", c.s.userAgent())
62750	if c.ifNoneMatch_ != "" {
62751		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62752	}
62753	var body io.Reader = nil
62754	c.urlParams_.Set("alt", alt)
62755	c.urlParams_.Set("prettyPrint", "false")
62756	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
62757	urls += "?" + c.urlParams_.Encode()
62758	req, err := http.NewRequest("GET", urls, body)
62759	if err != nil {
62760		return nil, err
62761	}
62762	req.Header = reqHeaders
62763	googleapi.Expand(req.URL, map[string]string{
62764		"project":            c.project,
62765		"externalVpnGateway": c.externalVpnGateway,
62766	})
62767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62768}
62769
62770// Do executes the "compute.externalVpnGateways.get" call.
62771// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
62772// non-2xx status code is an error. Response headers are in either
62773// *ExternalVpnGateway.ServerResponse.Header or (if a response was
62774// returned at all) in error.(*googleapi.Error).Header. Use
62775// googleapi.IsNotModified to check whether the returned error was
62776// because http.StatusNotModified was returned.
62777func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
62778	gensupport.SetOptions(c.urlParams_, opts...)
62779	res, err := c.doRequest("json")
62780	if res != nil && res.StatusCode == http.StatusNotModified {
62781		if res.Body != nil {
62782			res.Body.Close()
62783		}
62784		return nil, &googleapi.Error{
62785			Code:   res.StatusCode,
62786			Header: res.Header,
62787		}
62788	}
62789	if err != nil {
62790		return nil, err
62791	}
62792	defer googleapi.CloseBody(res)
62793	if err := googleapi.CheckResponse(res); err != nil {
62794		return nil, err
62795	}
62796	ret := &ExternalVpnGateway{
62797		ServerResponse: googleapi.ServerResponse{
62798			Header:         res.Header,
62799			HTTPStatusCode: res.StatusCode,
62800		},
62801	}
62802	target := &ret
62803	if err := gensupport.DecodeResponse(target, res); err != nil {
62804		return nil, err
62805	}
62806	return ret, nil
62807	// {
62808	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
62809	//   "httpMethod": "GET",
62810	//   "id": "compute.externalVpnGateways.get",
62811	//   "parameterOrder": [
62812	//     "project",
62813	//     "externalVpnGateway"
62814	//   ],
62815	//   "parameters": {
62816	//     "externalVpnGateway": {
62817	//       "description": "Name of the externalVpnGateway to return.",
62818	//       "location": "path",
62819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62820	//       "required": true,
62821	//       "type": "string"
62822	//     },
62823	//     "project": {
62824	//       "description": "Project ID for this request.",
62825	//       "location": "path",
62826	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62827	//       "required": true,
62828	//       "type": "string"
62829	//     }
62830	//   },
62831	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
62832	//   "response": {
62833	//     "$ref": "ExternalVpnGateway"
62834	//   },
62835	//   "scopes": [
62836	//     "https://www.googleapis.com/auth/cloud-platform",
62837	//     "https://www.googleapis.com/auth/compute",
62838	//     "https://www.googleapis.com/auth/compute.readonly"
62839	//   ]
62840	// }
62841
62842}
62843
62844// method id "compute.externalVpnGateways.insert":
62845
62846type ExternalVpnGatewaysInsertCall struct {
62847	s                  *Service
62848	project            string
62849	externalvpngateway *ExternalVpnGateway
62850	urlParams_         gensupport.URLParams
62851	ctx_               context.Context
62852	header_            http.Header
62853}
62854
62855// Insert: Creates a ExternalVpnGateway in the specified project using
62856// the data included in the request.
62857//
62858// - project: Project ID for this request.
62859func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
62860	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62861	c.project = project
62862	c.externalvpngateway = externalvpngateway
62863	return c
62864}
62865
62866// RequestId sets the optional parameter "requestId": An optional
62867// request ID to identify requests. Specify a unique request ID so that
62868// if you must retry your request, the server will know to ignore the
62869// request if it has already been completed.
62870//
62871// For example, consider a situation where you make an initial request
62872// and the request times out. If you make the request again with the
62873// same request ID, the server can check if original operation with the
62874// same request ID was received, and if so, will ignore the second
62875// request. This prevents clients from accidentally creating duplicate
62876// commitments.
62877//
62878// The request ID must be a valid UUID with the exception that zero UUID
62879// is not supported (00000000-0000-0000-0000-000000000000).
62880func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
62881	c.urlParams_.Set("requestId", requestId)
62882	return c
62883}
62884
62885// Fields allows partial responses to be retrieved. See
62886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62887// for more information.
62888func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
62889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62890	return c
62891}
62892
62893// Context sets the context to be used in this call's Do method. Any
62894// pending HTTP request will be aborted if the provided context is
62895// canceled.
62896func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
62897	c.ctx_ = ctx
62898	return c
62899}
62900
62901// Header returns an http.Header that can be modified by the caller to
62902// add HTTP headers to the request.
62903func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
62904	if c.header_ == nil {
62905		c.header_ = make(http.Header)
62906	}
62907	return c.header_
62908}
62909
62910func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
62911	reqHeaders := make(http.Header)
62912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62913	for k, v := range c.header_ {
62914		reqHeaders[k] = v
62915	}
62916	reqHeaders.Set("User-Agent", c.s.userAgent())
62917	var body io.Reader = nil
62918	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
62919	if err != nil {
62920		return nil, err
62921	}
62922	reqHeaders.Set("Content-Type", "application/json")
62923	c.urlParams_.Set("alt", alt)
62924	c.urlParams_.Set("prettyPrint", "false")
62925	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
62926	urls += "?" + c.urlParams_.Encode()
62927	req, err := http.NewRequest("POST", urls, body)
62928	if err != nil {
62929		return nil, err
62930	}
62931	req.Header = reqHeaders
62932	googleapi.Expand(req.URL, map[string]string{
62933		"project": c.project,
62934	})
62935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62936}
62937
62938// Do executes the "compute.externalVpnGateways.insert" call.
62939// Exactly one of *Operation or error will be non-nil. Any non-2xx
62940// status code is an error. Response headers are in either
62941// *Operation.ServerResponse.Header or (if a response was returned at
62942// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62943// to check whether the returned error was because
62944// http.StatusNotModified was returned.
62945func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62946	gensupport.SetOptions(c.urlParams_, opts...)
62947	res, err := c.doRequest("json")
62948	if res != nil && res.StatusCode == http.StatusNotModified {
62949		if res.Body != nil {
62950			res.Body.Close()
62951		}
62952		return nil, &googleapi.Error{
62953			Code:   res.StatusCode,
62954			Header: res.Header,
62955		}
62956	}
62957	if err != nil {
62958		return nil, err
62959	}
62960	defer googleapi.CloseBody(res)
62961	if err := googleapi.CheckResponse(res); err != nil {
62962		return nil, err
62963	}
62964	ret := &Operation{
62965		ServerResponse: googleapi.ServerResponse{
62966			Header:         res.Header,
62967			HTTPStatusCode: res.StatusCode,
62968		},
62969	}
62970	target := &ret
62971	if err := gensupport.DecodeResponse(target, res); err != nil {
62972		return nil, err
62973	}
62974	return ret, nil
62975	// {
62976	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
62977	//   "httpMethod": "POST",
62978	//   "id": "compute.externalVpnGateways.insert",
62979	//   "parameterOrder": [
62980	//     "project"
62981	//   ],
62982	//   "parameters": {
62983	//     "project": {
62984	//       "description": "Project ID for this request.",
62985	//       "location": "path",
62986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62987	//       "required": true,
62988	//       "type": "string"
62989	//     },
62990	//     "requestId": {
62991	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62992	//       "location": "query",
62993	//       "type": "string"
62994	//     }
62995	//   },
62996	//   "path": "projects/{project}/global/externalVpnGateways",
62997	//   "request": {
62998	//     "$ref": "ExternalVpnGateway"
62999	//   },
63000	//   "response": {
63001	//     "$ref": "Operation"
63002	//   },
63003	//   "scopes": [
63004	//     "https://www.googleapis.com/auth/cloud-platform",
63005	//     "https://www.googleapis.com/auth/compute"
63006	//   ]
63007	// }
63008
63009}
63010
63011// method id "compute.externalVpnGateways.list":
63012
63013type ExternalVpnGatewaysListCall struct {
63014	s            *Service
63015	project      string
63016	urlParams_   gensupport.URLParams
63017	ifNoneMatch_ string
63018	ctx_         context.Context
63019	header_      http.Header
63020}
63021
63022// List: Retrieves the list of ExternalVpnGateway available to the
63023// specified project.
63024//
63025// - project: Project ID for this request.
63026func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
63027	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63028	c.project = project
63029	return c
63030}
63031
63032// Filter sets the optional parameter "filter": A filter expression that
63033// filters resources listed in the response. The expression must specify
63034// the field name, a comparison operator, and the value that you want to
63035// use for filtering. The value must be a string, a number, or a
63036// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63037// `<`.
63038//
63039// For example, if you are filtering Compute Engine instances, you can
63040// exclude instances named `example-instance` by specifying `name !=
63041// example-instance`.
63042//
63043// You can also filter nested fields. For example, you could specify
63044// `scheduling.automaticRestart = false` to include instances only if
63045// they are not scheduled for automatic restarts. You can use filtering
63046// on nested fields to filter based on resource labels.
63047//
63048// To filter on multiple expressions, provide each separate expression
63049// within parentheses. For example: ``` (scheduling.automaticRestart =
63050// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
63051// is an `AND` expression. However, you can include `AND` and `OR`
63052// expressions explicitly. For example: ``` (cpuPlatform = "Intel
63053// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
63054// (scheduling.automaticRestart = true) ```
63055func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
63056	c.urlParams_.Set("filter", filter)
63057	return c
63058}
63059
63060// MaxResults sets the optional parameter "maxResults": The maximum
63061// number of results per page that should be returned. If the number of
63062// available results is larger than `maxResults`, Compute Engine returns
63063// a `nextPageToken` that can be used to get the next page of results in
63064// subsequent list requests. Acceptable values are `0` to `500`,
63065// inclusive. (Default: `500`)
63066func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
63067	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63068	return c
63069}
63070
63071// OrderBy sets the optional parameter "orderBy": Sorts list results by
63072// a certain order. By default, results are returned in alphanumerical
63073// order based on the resource name.
63074//
63075// You can also sort results in descending order based on the creation
63076// timestamp using `orderBy="creationTimestamp desc". This sorts
63077// results based on the `creationTimestamp` field in reverse
63078// chronological order (newest result first). Use this to sort resources
63079// like operations so that the newest operation is returned
63080// first.
63081//
63082// Currently, only sorting by `name` or `creationTimestamp desc` is
63083// supported.
63084func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
63085	c.urlParams_.Set("orderBy", orderBy)
63086	return c
63087}
63088
63089// PageToken sets the optional parameter "pageToken": Specifies a page
63090// token to use. Set `pageToken` to the `nextPageToken` returned by a
63091// previous list request to get the next page of results.
63092func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
63093	c.urlParams_.Set("pageToken", pageToken)
63094	return c
63095}
63096
63097// ReturnPartialSuccess sets the optional parameter
63098// "returnPartialSuccess": Opt-in for partial success behavior which
63099// provides partial results in case of failure. The default value is
63100// false.
63101func (c *ExternalVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ExternalVpnGatewaysListCall {
63102	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
63103	return c
63104}
63105
63106// Fields allows partial responses to be retrieved. See
63107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63108// for more information.
63109func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
63110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63111	return c
63112}
63113
63114// IfNoneMatch sets the optional parameter which makes the operation
63115// fail if the object's ETag matches the given value. This is useful for
63116// getting updates only after the object has changed since the last
63117// request. Use googleapi.IsNotModified to check whether the response
63118// error from Do is the result of In-None-Match.
63119func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
63120	c.ifNoneMatch_ = entityTag
63121	return c
63122}
63123
63124// Context sets the context to be used in this call's Do method. Any
63125// pending HTTP request will be aborted if the provided context is
63126// canceled.
63127func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
63128	c.ctx_ = ctx
63129	return c
63130}
63131
63132// Header returns an http.Header that can be modified by the caller to
63133// add HTTP headers to the request.
63134func (c *ExternalVpnGatewaysListCall) Header() http.Header {
63135	if c.header_ == nil {
63136		c.header_ = make(http.Header)
63137	}
63138	return c.header_
63139}
63140
63141func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
63142	reqHeaders := make(http.Header)
63143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63144	for k, v := range c.header_ {
63145		reqHeaders[k] = v
63146	}
63147	reqHeaders.Set("User-Agent", c.s.userAgent())
63148	if c.ifNoneMatch_ != "" {
63149		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63150	}
63151	var body io.Reader = nil
63152	c.urlParams_.Set("alt", alt)
63153	c.urlParams_.Set("prettyPrint", "false")
63154	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
63155	urls += "?" + c.urlParams_.Encode()
63156	req, err := http.NewRequest("GET", urls, body)
63157	if err != nil {
63158		return nil, err
63159	}
63160	req.Header = reqHeaders
63161	googleapi.Expand(req.URL, map[string]string{
63162		"project": c.project,
63163	})
63164	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63165}
63166
63167// Do executes the "compute.externalVpnGateways.list" call.
63168// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
63169// non-2xx status code is an error. Response headers are in either
63170// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
63171// returned at all) in error.(*googleapi.Error).Header. Use
63172// googleapi.IsNotModified to check whether the returned error was
63173// because http.StatusNotModified was returned.
63174func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
63175	gensupport.SetOptions(c.urlParams_, opts...)
63176	res, err := c.doRequest("json")
63177	if res != nil && res.StatusCode == http.StatusNotModified {
63178		if res.Body != nil {
63179			res.Body.Close()
63180		}
63181		return nil, &googleapi.Error{
63182			Code:   res.StatusCode,
63183			Header: res.Header,
63184		}
63185	}
63186	if err != nil {
63187		return nil, err
63188	}
63189	defer googleapi.CloseBody(res)
63190	if err := googleapi.CheckResponse(res); err != nil {
63191		return nil, err
63192	}
63193	ret := &ExternalVpnGatewayList{
63194		ServerResponse: googleapi.ServerResponse{
63195			Header:         res.Header,
63196			HTTPStatusCode: res.StatusCode,
63197		},
63198	}
63199	target := &ret
63200	if err := gensupport.DecodeResponse(target, res); err != nil {
63201		return nil, err
63202	}
63203	return ret, nil
63204	// {
63205	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
63206	//   "httpMethod": "GET",
63207	//   "id": "compute.externalVpnGateways.list",
63208	//   "parameterOrder": [
63209	//     "project"
63210	//   ],
63211	//   "parameters": {
63212	//     "filter": {
63213	//       "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) ```",
63214	//       "location": "query",
63215	//       "type": "string"
63216	//     },
63217	//     "maxResults": {
63218	//       "default": "500",
63219	//       "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`)",
63220	//       "format": "uint32",
63221	//       "location": "query",
63222	//       "minimum": "0",
63223	//       "type": "integer"
63224	//     },
63225	//     "orderBy": {
63226	//       "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.",
63227	//       "location": "query",
63228	//       "type": "string"
63229	//     },
63230	//     "pageToken": {
63231	//       "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.",
63232	//       "location": "query",
63233	//       "type": "string"
63234	//     },
63235	//     "project": {
63236	//       "description": "Project ID for this request.",
63237	//       "location": "path",
63238	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63239	//       "required": true,
63240	//       "type": "string"
63241	//     },
63242	//     "returnPartialSuccess": {
63243	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
63244	//       "location": "query",
63245	//       "type": "boolean"
63246	//     }
63247	//   },
63248	//   "path": "projects/{project}/global/externalVpnGateways",
63249	//   "response": {
63250	//     "$ref": "ExternalVpnGatewayList"
63251	//   },
63252	//   "scopes": [
63253	//     "https://www.googleapis.com/auth/cloud-platform",
63254	//     "https://www.googleapis.com/auth/compute",
63255	//     "https://www.googleapis.com/auth/compute.readonly"
63256	//   ]
63257	// }
63258
63259}
63260
63261// Pages invokes f for each page of results.
63262// A non-nil error returned from f will halt the iteration.
63263// The provided context supersedes any context provided to the Context method.
63264func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
63265	c.ctx_ = ctx
63266	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63267	for {
63268		x, err := c.Do()
63269		if err != nil {
63270			return err
63271		}
63272		if err := f(x); err != nil {
63273			return err
63274		}
63275		if x.NextPageToken == "" {
63276			return nil
63277		}
63278		c.PageToken(x.NextPageToken)
63279	}
63280}
63281
63282// method id "compute.externalVpnGateways.setLabels":
63283
63284type ExternalVpnGatewaysSetLabelsCall struct {
63285	s                      *Service
63286	project                string
63287	resource               string
63288	globalsetlabelsrequest *GlobalSetLabelsRequest
63289	urlParams_             gensupport.URLParams
63290	ctx_                   context.Context
63291	header_                http.Header
63292}
63293
63294// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
63295// about labels, read the Labeling Resources documentation.
63296//
63297// - project: Project ID for this request.
63298// - resource: Name or id of the resource for this request.
63299func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
63300	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63301	c.project = project
63302	c.resource = resource
63303	c.globalsetlabelsrequest = globalsetlabelsrequest
63304	return c
63305}
63306
63307// Fields allows partial responses to be retrieved. See
63308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63309// for more information.
63310func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
63311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63312	return c
63313}
63314
63315// Context sets the context to be used in this call's Do method. Any
63316// pending HTTP request will be aborted if the provided context is
63317// canceled.
63318func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
63319	c.ctx_ = ctx
63320	return c
63321}
63322
63323// Header returns an http.Header that can be modified by the caller to
63324// add HTTP headers to the request.
63325func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
63326	if c.header_ == nil {
63327		c.header_ = make(http.Header)
63328	}
63329	return c.header_
63330}
63331
63332func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
63333	reqHeaders := make(http.Header)
63334	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63335	for k, v := range c.header_ {
63336		reqHeaders[k] = v
63337	}
63338	reqHeaders.Set("User-Agent", c.s.userAgent())
63339	var body io.Reader = nil
63340	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
63341	if err != nil {
63342		return nil, err
63343	}
63344	reqHeaders.Set("Content-Type", "application/json")
63345	c.urlParams_.Set("alt", alt)
63346	c.urlParams_.Set("prettyPrint", "false")
63347	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/setLabels")
63348	urls += "?" + c.urlParams_.Encode()
63349	req, err := http.NewRequest("POST", urls, body)
63350	if err != nil {
63351		return nil, err
63352	}
63353	req.Header = reqHeaders
63354	googleapi.Expand(req.URL, map[string]string{
63355		"project":  c.project,
63356		"resource": c.resource,
63357	})
63358	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63359}
63360
63361// Do executes the "compute.externalVpnGateways.setLabels" call.
63362// Exactly one of *Operation or error will be non-nil. Any non-2xx
63363// status code is an error. Response headers are in either
63364// *Operation.ServerResponse.Header or (if a response was returned at
63365// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63366// to check whether the returned error was because
63367// http.StatusNotModified was returned.
63368func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63369	gensupport.SetOptions(c.urlParams_, opts...)
63370	res, err := c.doRequest("json")
63371	if res != nil && res.StatusCode == http.StatusNotModified {
63372		if res.Body != nil {
63373			res.Body.Close()
63374		}
63375		return nil, &googleapi.Error{
63376			Code:   res.StatusCode,
63377			Header: res.Header,
63378		}
63379	}
63380	if err != nil {
63381		return nil, err
63382	}
63383	defer googleapi.CloseBody(res)
63384	if err := googleapi.CheckResponse(res); err != nil {
63385		return nil, err
63386	}
63387	ret := &Operation{
63388		ServerResponse: googleapi.ServerResponse{
63389			Header:         res.Header,
63390			HTTPStatusCode: res.StatusCode,
63391		},
63392	}
63393	target := &ret
63394	if err := gensupport.DecodeResponse(target, res); err != nil {
63395		return nil, err
63396	}
63397	return ret, nil
63398	// {
63399	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
63400	//   "httpMethod": "POST",
63401	//   "id": "compute.externalVpnGateways.setLabels",
63402	//   "parameterOrder": [
63403	//     "project",
63404	//     "resource"
63405	//   ],
63406	//   "parameters": {
63407	//     "project": {
63408	//       "description": "Project ID for this request.",
63409	//       "location": "path",
63410	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63411	//       "required": true,
63412	//       "type": "string"
63413	//     },
63414	//     "resource": {
63415	//       "description": "Name or id of the resource for this request.",
63416	//       "location": "path",
63417	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63418	//       "required": true,
63419	//       "type": "string"
63420	//     }
63421	//   },
63422	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
63423	//   "request": {
63424	//     "$ref": "GlobalSetLabelsRequest"
63425	//   },
63426	//   "response": {
63427	//     "$ref": "Operation"
63428	//   },
63429	//   "scopes": [
63430	//     "https://www.googleapis.com/auth/cloud-platform",
63431	//     "https://www.googleapis.com/auth/compute"
63432	//   ]
63433	// }
63434
63435}
63436
63437// method id "compute.externalVpnGateways.testIamPermissions":
63438
63439type ExternalVpnGatewaysTestIamPermissionsCall struct {
63440	s                      *Service
63441	project                string
63442	resource               string
63443	testpermissionsrequest *TestPermissionsRequest
63444	urlParams_             gensupport.URLParams
63445	ctx_                   context.Context
63446	header_                http.Header
63447}
63448
63449// TestIamPermissions: Returns permissions that a caller has on the
63450// specified resource.
63451//
63452// - project: Project ID for this request.
63453// - resource: Name or id of the resource for this request.
63454func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
63455	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63456	c.project = project
63457	c.resource = resource
63458	c.testpermissionsrequest = testpermissionsrequest
63459	return c
63460}
63461
63462// Fields allows partial responses to be retrieved. See
63463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63464// for more information.
63465func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
63466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63467	return c
63468}
63469
63470// Context sets the context to be used in this call's Do method. Any
63471// pending HTTP request will be aborted if the provided context is
63472// canceled.
63473func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
63474	c.ctx_ = ctx
63475	return c
63476}
63477
63478// Header returns an http.Header that can be modified by the caller to
63479// add HTTP headers to the request.
63480func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
63481	if c.header_ == nil {
63482		c.header_ = make(http.Header)
63483	}
63484	return c.header_
63485}
63486
63487func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
63488	reqHeaders := make(http.Header)
63489	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63490	for k, v := range c.header_ {
63491		reqHeaders[k] = v
63492	}
63493	reqHeaders.Set("User-Agent", c.s.userAgent())
63494	var body io.Reader = nil
63495	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
63496	if err != nil {
63497		return nil, err
63498	}
63499	reqHeaders.Set("Content-Type", "application/json")
63500	c.urlParams_.Set("alt", alt)
63501	c.urlParams_.Set("prettyPrint", "false")
63502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions")
63503	urls += "?" + c.urlParams_.Encode()
63504	req, err := http.NewRequest("POST", urls, body)
63505	if err != nil {
63506		return nil, err
63507	}
63508	req.Header = reqHeaders
63509	googleapi.Expand(req.URL, map[string]string{
63510		"project":  c.project,
63511		"resource": c.resource,
63512	})
63513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63514}
63515
63516// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
63517// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
63518// non-2xx status code is an error. Response headers are in either
63519// *TestPermissionsResponse.ServerResponse.Header or (if a response was
63520// returned at all) in error.(*googleapi.Error).Header. Use
63521// googleapi.IsNotModified to check whether the returned error was
63522// because http.StatusNotModified was returned.
63523func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
63524	gensupport.SetOptions(c.urlParams_, opts...)
63525	res, err := c.doRequest("json")
63526	if res != nil && res.StatusCode == http.StatusNotModified {
63527		if res.Body != nil {
63528			res.Body.Close()
63529		}
63530		return nil, &googleapi.Error{
63531			Code:   res.StatusCode,
63532			Header: res.Header,
63533		}
63534	}
63535	if err != nil {
63536		return nil, err
63537	}
63538	defer googleapi.CloseBody(res)
63539	if err := googleapi.CheckResponse(res); err != nil {
63540		return nil, err
63541	}
63542	ret := &TestPermissionsResponse{
63543		ServerResponse: googleapi.ServerResponse{
63544			Header:         res.Header,
63545			HTTPStatusCode: res.StatusCode,
63546		},
63547	}
63548	target := &ret
63549	if err := gensupport.DecodeResponse(target, res); err != nil {
63550		return nil, err
63551	}
63552	return ret, nil
63553	// {
63554	//   "description": "Returns permissions that a caller has on the specified resource.",
63555	//   "httpMethod": "POST",
63556	//   "id": "compute.externalVpnGateways.testIamPermissions",
63557	//   "parameterOrder": [
63558	//     "project",
63559	//     "resource"
63560	//   ],
63561	//   "parameters": {
63562	//     "project": {
63563	//       "description": "Project ID for this request.",
63564	//       "location": "path",
63565	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63566	//       "required": true,
63567	//       "type": "string"
63568	//     },
63569	//     "resource": {
63570	//       "description": "Name or id of the resource for this request.",
63571	//       "location": "path",
63572	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63573	//       "required": true,
63574	//       "type": "string"
63575	//     }
63576	//   },
63577	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
63578	//   "request": {
63579	//     "$ref": "TestPermissionsRequest"
63580	//   },
63581	//   "response": {
63582	//     "$ref": "TestPermissionsResponse"
63583	//   },
63584	//   "scopes": [
63585	//     "https://www.googleapis.com/auth/cloud-platform",
63586	//     "https://www.googleapis.com/auth/compute",
63587	//     "https://www.googleapis.com/auth/compute.readonly"
63588	//   ]
63589	// }
63590
63591}
63592
63593// method id "compute.firewallPolicies.addAssociation":
63594
63595type FirewallPoliciesAddAssociationCall struct {
63596	s                         *Service
63597	firewallPolicy            string
63598	firewallpolicyassociation *FirewallPolicyAssociation
63599	urlParams_                gensupport.URLParams
63600	ctx_                      context.Context
63601	header_                   http.Header
63602}
63603
63604// AddAssociation: Inserts an association for the specified firewall
63605// policy.
63606//
63607// - firewallPolicy: Name of the firewall policy to update.
63608func (r *FirewallPoliciesService) AddAssociation(firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *FirewallPoliciesAddAssociationCall {
63609	c := &FirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63610	c.firewallPolicy = firewallPolicy
63611	c.firewallpolicyassociation = firewallpolicyassociation
63612	return c
63613}
63614
63615// ReplaceExistingAssociation sets the optional parameter
63616// "replaceExistingAssociation": Indicates whether or not to replace it
63617// if an association of the attachment already exists. This is false by
63618// default, in which case an error will be returned if an association
63619// already exists.
63620func (c *FirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *FirewallPoliciesAddAssociationCall {
63621	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
63622	return c
63623}
63624
63625// RequestId sets the optional parameter "requestId": An optional
63626// request ID to identify requests. Specify a unique request ID so that
63627// if you must retry your request, the server will know to ignore the
63628// request if it has already been completed.
63629//
63630// For example, consider a situation where you make an initial request
63631// and the request times out. If you make the request again with the
63632// same request ID, the server can check if original operation with the
63633// same request ID was received, and if so, will ignore the second
63634// request. This prevents clients from accidentally creating duplicate
63635// commitments.
63636//
63637// The request ID must be a valid UUID with the exception that zero UUID
63638// is not supported (00000000-0000-0000-0000-000000000000).
63639func (c *FirewallPoliciesAddAssociationCall) RequestId(requestId string) *FirewallPoliciesAddAssociationCall {
63640	c.urlParams_.Set("requestId", requestId)
63641	return c
63642}
63643
63644// Fields allows partial responses to be retrieved. See
63645// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63646// for more information.
63647func (c *FirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddAssociationCall {
63648	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63649	return c
63650}
63651
63652// Context sets the context to be used in this call's Do method. Any
63653// pending HTTP request will be aborted if the provided context is
63654// canceled.
63655func (c *FirewallPoliciesAddAssociationCall) Context(ctx context.Context) *FirewallPoliciesAddAssociationCall {
63656	c.ctx_ = ctx
63657	return c
63658}
63659
63660// Header returns an http.Header that can be modified by the caller to
63661// add HTTP headers to the request.
63662func (c *FirewallPoliciesAddAssociationCall) Header() http.Header {
63663	if c.header_ == nil {
63664		c.header_ = make(http.Header)
63665	}
63666	return c.header_
63667}
63668
63669func (c *FirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
63670	reqHeaders := make(http.Header)
63671	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63672	for k, v := range c.header_ {
63673		reqHeaders[k] = v
63674	}
63675	reqHeaders.Set("User-Agent", c.s.userAgent())
63676	var body io.Reader = nil
63677	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyassociation)
63678	if err != nil {
63679		return nil, err
63680	}
63681	reqHeaders.Set("Content-Type", "application/json")
63682	c.urlParams_.Set("alt", alt)
63683	c.urlParams_.Set("prettyPrint", "false")
63684	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addAssociation")
63685	urls += "?" + c.urlParams_.Encode()
63686	req, err := http.NewRequest("POST", urls, body)
63687	if err != nil {
63688		return nil, err
63689	}
63690	req.Header = reqHeaders
63691	googleapi.Expand(req.URL, map[string]string{
63692		"firewallPolicy": c.firewallPolicy,
63693	})
63694	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63695}
63696
63697// Do executes the "compute.firewallPolicies.addAssociation" call.
63698// Exactly one of *Operation or error will be non-nil. Any non-2xx
63699// status code is an error. Response headers are in either
63700// *Operation.ServerResponse.Header or (if a response was returned at
63701// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63702// to check whether the returned error was because
63703// http.StatusNotModified was returned.
63704func (c *FirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63705	gensupport.SetOptions(c.urlParams_, opts...)
63706	res, err := c.doRequest("json")
63707	if res != nil && res.StatusCode == http.StatusNotModified {
63708		if res.Body != nil {
63709			res.Body.Close()
63710		}
63711		return nil, &googleapi.Error{
63712			Code:   res.StatusCode,
63713			Header: res.Header,
63714		}
63715	}
63716	if err != nil {
63717		return nil, err
63718	}
63719	defer googleapi.CloseBody(res)
63720	if err := googleapi.CheckResponse(res); err != nil {
63721		return nil, err
63722	}
63723	ret := &Operation{
63724		ServerResponse: googleapi.ServerResponse{
63725			Header:         res.Header,
63726			HTTPStatusCode: res.StatusCode,
63727		},
63728	}
63729	target := &ret
63730	if err := gensupport.DecodeResponse(target, res); err != nil {
63731		return nil, err
63732	}
63733	return ret, nil
63734	// {
63735	//   "description": "Inserts an association for the specified firewall policy.",
63736	//   "httpMethod": "POST",
63737	//   "id": "compute.firewallPolicies.addAssociation",
63738	//   "parameterOrder": [
63739	//     "firewallPolicy"
63740	//   ],
63741	//   "parameters": {
63742	//     "firewallPolicy": {
63743	//       "description": "Name of the firewall policy to update.",
63744	//       "location": "path",
63745	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63746	//       "required": true,
63747	//       "type": "string"
63748	//     },
63749	//     "replaceExistingAssociation": {
63750	//       "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.",
63751	//       "location": "query",
63752	//       "type": "boolean"
63753	//     },
63754	//     "requestId": {
63755	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63756	//       "location": "query",
63757	//       "type": "string"
63758	//     }
63759	//   },
63760	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
63761	//   "request": {
63762	//     "$ref": "FirewallPolicyAssociation"
63763	//   },
63764	//   "response": {
63765	//     "$ref": "Operation"
63766	//   },
63767	//   "scopes": [
63768	//     "https://www.googleapis.com/auth/cloud-platform",
63769	//     "https://www.googleapis.com/auth/compute"
63770	//   ]
63771	// }
63772
63773}
63774
63775// method id "compute.firewallPolicies.addRule":
63776
63777type FirewallPoliciesAddRuleCall struct {
63778	s                  *Service
63779	firewallPolicy     string
63780	firewallpolicyrule *FirewallPolicyRule
63781	urlParams_         gensupport.URLParams
63782	ctx_               context.Context
63783	header_            http.Header
63784}
63785
63786// AddRule: Inserts a rule into a firewall policy.
63787//
63788// - firewallPolicy: Name of the firewall policy to update.
63789func (r *FirewallPoliciesService) AddRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesAddRuleCall {
63790	c := &FirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63791	c.firewallPolicy = firewallPolicy
63792	c.firewallpolicyrule = firewallpolicyrule
63793	return c
63794}
63795
63796// RequestId sets the optional parameter "requestId": An optional
63797// request ID to identify requests. Specify a unique request ID so that
63798// if you must retry your request, the server will know to ignore the
63799// request if it has already been completed.
63800//
63801// For example, consider a situation where you make an initial request
63802// and the request times out. If you make the request again with the
63803// same request ID, the server can check if original operation with the
63804// same request ID was received, and if so, will ignore the second
63805// request. This prevents clients from accidentally creating duplicate
63806// commitments.
63807//
63808// The request ID must be a valid UUID with the exception that zero UUID
63809// is not supported (00000000-0000-0000-0000-000000000000).
63810func (c *FirewallPoliciesAddRuleCall) RequestId(requestId string) *FirewallPoliciesAddRuleCall {
63811	c.urlParams_.Set("requestId", requestId)
63812	return c
63813}
63814
63815// Fields allows partial responses to be retrieved. See
63816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63817// for more information.
63818func (c *FirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddRuleCall {
63819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63820	return c
63821}
63822
63823// Context sets the context to be used in this call's Do method. Any
63824// pending HTTP request will be aborted if the provided context is
63825// canceled.
63826func (c *FirewallPoliciesAddRuleCall) Context(ctx context.Context) *FirewallPoliciesAddRuleCall {
63827	c.ctx_ = ctx
63828	return c
63829}
63830
63831// Header returns an http.Header that can be modified by the caller to
63832// add HTTP headers to the request.
63833func (c *FirewallPoliciesAddRuleCall) Header() http.Header {
63834	if c.header_ == nil {
63835		c.header_ = make(http.Header)
63836	}
63837	return c.header_
63838}
63839
63840func (c *FirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
63841	reqHeaders := make(http.Header)
63842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63843	for k, v := range c.header_ {
63844		reqHeaders[k] = v
63845	}
63846	reqHeaders.Set("User-Agent", c.s.userAgent())
63847	var body io.Reader = nil
63848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
63849	if err != nil {
63850		return nil, err
63851	}
63852	reqHeaders.Set("Content-Type", "application/json")
63853	c.urlParams_.Set("alt", alt)
63854	c.urlParams_.Set("prettyPrint", "false")
63855	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addRule")
63856	urls += "?" + c.urlParams_.Encode()
63857	req, err := http.NewRequest("POST", urls, body)
63858	if err != nil {
63859		return nil, err
63860	}
63861	req.Header = reqHeaders
63862	googleapi.Expand(req.URL, map[string]string{
63863		"firewallPolicy": c.firewallPolicy,
63864	})
63865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63866}
63867
63868// Do executes the "compute.firewallPolicies.addRule" call.
63869// Exactly one of *Operation or error will be non-nil. Any non-2xx
63870// status code is an error. Response headers are in either
63871// *Operation.ServerResponse.Header or (if a response was returned at
63872// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63873// to check whether the returned error was because
63874// http.StatusNotModified was returned.
63875func (c *FirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63876	gensupport.SetOptions(c.urlParams_, opts...)
63877	res, err := c.doRequest("json")
63878	if res != nil && res.StatusCode == http.StatusNotModified {
63879		if res.Body != nil {
63880			res.Body.Close()
63881		}
63882		return nil, &googleapi.Error{
63883			Code:   res.StatusCode,
63884			Header: res.Header,
63885		}
63886	}
63887	if err != nil {
63888		return nil, err
63889	}
63890	defer googleapi.CloseBody(res)
63891	if err := googleapi.CheckResponse(res); err != nil {
63892		return nil, err
63893	}
63894	ret := &Operation{
63895		ServerResponse: googleapi.ServerResponse{
63896			Header:         res.Header,
63897			HTTPStatusCode: res.StatusCode,
63898		},
63899	}
63900	target := &ret
63901	if err := gensupport.DecodeResponse(target, res); err != nil {
63902		return nil, err
63903	}
63904	return ret, nil
63905	// {
63906	//   "description": "Inserts a rule into a firewall policy.",
63907	//   "httpMethod": "POST",
63908	//   "id": "compute.firewallPolicies.addRule",
63909	//   "parameterOrder": [
63910	//     "firewallPolicy"
63911	//   ],
63912	//   "parameters": {
63913	//     "firewallPolicy": {
63914	//       "description": "Name of the firewall policy to update.",
63915	//       "location": "path",
63916	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63917	//       "required": true,
63918	//       "type": "string"
63919	//     },
63920	//     "requestId": {
63921	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63922	//       "location": "query",
63923	//       "type": "string"
63924	//     }
63925	//   },
63926	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
63927	//   "request": {
63928	//     "$ref": "FirewallPolicyRule"
63929	//   },
63930	//   "response": {
63931	//     "$ref": "Operation"
63932	//   },
63933	//   "scopes": [
63934	//     "https://www.googleapis.com/auth/cloud-platform",
63935	//     "https://www.googleapis.com/auth/compute"
63936	//   ]
63937	// }
63938
63939}
63940
63941// method id "compute.firewallPolicies.cloneRules":
63942
63943type FirewallPoliciesCloneRulesCall struct {
63944	s              *Service
63945	firewallPolicy string
63946	urlParams_     gensupport.URLParams
63947	ctx_           context.Context
63948	header_        http.Header
63949}
63950
63951// CloneRules: Copies rules to the specified firewall policy.
63952//
63953// - firewallPolicy: Name of the firewall policy to update.
63954func (r *FirewallPoliciesService) CloneRules(firewallPolicy string) *FirewallPoliciesCloneRulesCall {
63955	c := &FirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63956	c.firewallPolicy = firewallPolicy
63957	return c
63958}
63959
63960// RequestId sets the optional parameter "requestId": An optional
63961// request ID to identify requests. Specify a unique request ID so that
63962// if you must retry your request, the server will know to ignore the
63963// request if it has already been completed.
63964//
63965// For example, consider a situation where you make an initial request
63966// and the request times out. If you make the request again with the
63967// same request ID, the server can check if original operation with the
63968// same request ID was received, and if so, will ignore the second
63969// request. This prevents clients from accidentally creating duplicate
63970// commitments.
63971//
63972// The request ID must be a valid UUID with the exception that zero UUID
63973// is not supported (00000000-0000-0000-0000-000000000000).
63974func (c *FirewallPoliciesCloneRulesCall) RequestId(requestId string) *FirewallPoliciesCloneRulesCall {
63975	c.urlParams_.Set("requestId", requestId)
63976	return c
63977}
63978
63979// SourceFirewallPolicy sets the optional parameter
63980// "sourceFirewallPolicy": The firewall policy from which to copy rules.
63981func (c *FirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *FirewallPoliciesCloneRulesCall {
63982	c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy)
63983	return c
63984}
63985
63986// Fields allows partial responses to be retrieved. See
63987// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63988// for more information.
63989func (c *FirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *FirewallPoliciesCloneRulesCall {
63990	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63991	return c
63992}
63993
63994// Context sets the context to be used in this call's Do method. Any
63995// pending HTTP request will be aborted if the provided context is
63996// canceled.
63997func (c *FirewallPoliciesCloneRulesCall) Context(ctx context.Context) *FirewallPoliciesCloneRulesCall {
63998	c.ctx_ = ctx
63999	return c
64000}
64001
64002// Header returns an http.Header that can be modified by the caller to
64003// add HTTP headers to the request.
64004func (c *FirewallPoliciesCloneRulesCall) Header() http.Header {
64005	if c.header_ == nil {
64006		c.header_ = make(http.Header)
64007	}
64008	return c.header_
64009}
64010
64011func (c *FirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) {
64012	reqHeaders := make(http.Header)
64013	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64014	for k, v := range c.header_ {
64015		reqHeaders[k] = v
64016	}
64017	reqHeaders.Set("User-Agent", c.s.userAgent())
64018	var body io.Reader = nil
64019	c.urlParams_.Set("alt", alt)
64020	c.urlParams_.Set("prettyPrint", "false")
64021	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/cloneRules")
64022	urls += "?" + c.urlParams_.Encode()
64023	req, err := http.NewRequest("POST", urls, body)
64024	if err != nil {
64025		return nil, err
64026	}
64027	req.Header = reqHeaders
64028	googleapi.Expand(req.URL, map[string]string{
64029		"firewallPolicy": c.firewallPolicy,
64030	})
64031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64032}
64033
64034// Do executes the "compute.firewallPolicies.cloneRules" call.
64035// Exactly one of *Operation or error will be non-nil. Any non-2xx
64036// status code is an error. Response headers are in either
64037// *Operation.ServerResponse.Header or (if a response was returned at
64038// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64039// to check whether the returned error was because
64040// http.StatusNotModified was returned.
64041func (c *FirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64042	gensupport.SetOptions(c.urlParams_, opts...)
64043	res, err := c.doRequest("json")
64044	if res != nil && res.StatusCode == http.StatusNotModified {
64045		if res.Body != nil {
64046			res.Body.Close()
64047		}
64048		return nil, &googleapi.Error{
64049			Code:   res.StatusCode,
64050			Header: res.Header,
64051		}
64052	}
64053	if err != nil {
64054		return nil, err
64055	}
64056	defer googleapi.CloseBody(res)
64057	if err := googleapi.CheckResponse(res); err != nil {
64058		return nil, err
64059	}
64060	ret := &Operation{
64061		ServerResponse: googleapi.ServerResponse{
64062			Header:         res.Header,
64063			HTTPStatusCode: res.StatusCode,
64064		},
64065	}
64066	target := &ret
64067	if err := gensupport.DecodeResponse(target, res); err != nil {
64068		return nil, err
64069	}
64070	return ret, nil
64071	// {
64072	//   "description": "Copies rules to the specified firewall policy.",
64073	//   "httpMethod": "POST",
64074	//   "id": "compute.firewallPolicies.cloneRules",
64075	//   "parameterOrder": [
64076	//     "firewallPolicy"
64077	//   ],
64078	//   "parameters": {
64079	//     "firewallPolicy": {
64080	//       "description": "Name of the firewall policy to update.",
64081	//       "location": "path",
64082	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64083	//       "required": true,
64084	//       "type": "string"
64085	//     },
64086	//     "requestId": {
64087	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64088	//       "location": "query",
64089	//       "type": "string"
64090	//     },
64091	//     "sourceFirewallPolicy": {
64092	//       "description": "The firewall policy from which to copy rules.",
64093	//       "location": "query",
64094	//       "type": "string"
64095	//     }
64096	//   },
64097	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules",
64098	//   "response": {
64099	//     "$ref": "Operation"
64100	//   },
64101	//   "scopes": [
64102	//     "https://www.googleapis.com/auth/cloud-platform",
64103	//     "https://www.googleapis.com/auth/compute"
64104	//   ]
64105	// }
64106
64107}
64108
64109// method id "compute.firewallPolicies.delete":
64110
64111type FirewallPoliciesDeleteCall struct {
64112	s              *Service
64113	firewallPolicy string
64114	urlParams_     gensupport.URLParams
64115	ctx_           context.Context
64116	header_        http.Header
64117}
64118
64119// Delete: Deletes the specified policy.
64120//
64121// - firewallPolicy: Name of the firewall policy to delete.
64122func (r *FirewallPoliciesService) Delete(firewallPolicy string) *FirewallPoliciesDeleteCall {
64123	c := &FirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64124	c.firewallPolicy = firewallPolicy
64125	return c
64126}
64127
64128// RequestId sets the optional parameter "requestId": An optional
64129// request ID to identify requests. Specify a unique request ID so that
64130// if you must retry your request, the server will know to ignore the
64131// request if it has already been completed.
64132//
64133// For example, consider a situation where you make an initial request
64134// and the request times out. If you make the request again with the
64135// same request ID, the server can check if original operation with the
64136// same request ID was received, and if so, will ignore the second
64137// request. This prevents clients from accidentally creating duplicate
64138// commitments.
64139//
64140// The request ID must be a valid UUID with the exception that zero UUID
64141// is not supported (00000000-0000-0000-0000-000000000000).
64142func (c *FirewallPoliciesDeleteCall) RequestId(requestId string) *FirewallPoliciesDeleteCall {
64143	c.urlParams_.Set("requestId", requestId)
64144	return c
64145}
64146
64147// Fields allows partial responses to be retrieved. See
64148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64149// for more information.
64150func (c *FirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *FirewallPoliciesDeleteCall {
64151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64152	return c
64153}
64154
64155// Context sets the context to be used in this call's Do method. Any
64156// pending HTTP request will be aborted if the provided context is
64157// canceled.
64158func (c *FirewallPoliciesDeleteCall) Context(ctx context.Context) *FirewallPoliciesDeleteCall {
64159	c.ctx_ = ctx
64160	return c
64161}
64162
64163// Header returns an http.Header that can be modified by the caller to
64164// add HTTP headers to the request.
64165func (c *FirewallPoliciesDeleteCall) Header() http.Header {
64166	if c.header_ == nil {
64167		c.header_ = make(http.Header)
64168	}
64169	return c.header_
64170}
64171
64172func (c *FirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
64173	reqHeaders := make(http.Header)
64174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64175	for k, v := range c.header_ {
64176		reqHeaders[k] = v
64177	}
64178	reqHeaders.Set("User-Agent", c.s.userAgent())
64179	var body io.Reader = nil
64180	c.urlParams_.Set("alt", alt)
64181	c.urlParams_.Set("prettyPrint", "false")
64182	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
64183	urls += "?" + c.urlParams_.Encode()
64184	req, err := http.NewRequest("DELETE", urls, body)
64185	if err != nil {
64186		return nil, err
64187	}
64188	req.Header = reqHeaders
64189	googleapi.Expand(req.URL, map[string]string{
64190		"firewallPolicy": c.firewallPolicy,
64191	})
64192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64193}
64194
64195// Do executes the "compute.firewallPolicies.delete" call.
64196// Exactly one of *Operation or error will be non-nil. Any non-2xx
64197// status code is an error. Response headers are in either
64198// *Operation.ServerResponse.Header or (if a response was returned at
64199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64200// to check whether the returned error was because
64201// http.StatusNotModified was returned.
64202func (c *FirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64203	gensupport.SetOptions(c.urlParams_, opts...)
64204	res, err := c.doRequest("json")
64205	if res != nil && res.StatusCode == http.StatusNotModified {
64206		if res.Body != nil {
64207			res.Body.Close()
64208		}
64209		return nil, &googleapi.Error{
64210			Code:   res.StatusCode,
64211			Header: res.Header,
64212		}
64213	}
64214	if err != nil {
64215		return nil, err
64216	}
64217	defer googleapi.CloseBody(res)
64218	if err := googleapi.CheckResponse(res); err != nil {
64219		return nil, err
64220	}
64221	ret := &Operation{
64222		ServerResponse: googleapi.ServerResponse{
64223			Header:         res.Header,
64224			HTTPStatusCode: res.StatusCode,
64225		},
64226	}
64227	target := &ret
64228	if err := gensupport.DecodeResponse(target, res); err != nil {
64229		return nil, err
64230	}
64231	return ret, nil
64232	// {
64233	//   "description": "Deletes the specified policy.",
64234	//   "httpMethod": "DELETE",
64235	//   "id": "compute.firewallPolicies.delete",
64236	//   "parameterOrder": [
64237	//     "firewallPolicy"
64238	//   ],
64239	//   "parameters": {
64240	//     "firewallPolicy": {
64241	//       "description": "Name of the firewall policy to delete.",
64242	//       "location": "path",
64243	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64244	//       "required": true,
64245	//       "type": "string"
64246	//     },
64247	//     "requestId": {
64248	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64249	//       "location": "query",
64250	//       "type": "string"
64251	//     }
64252	//   },
64253	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
64254	//   "response": {
64255	//     "$ref": "Operation"
64256	//   },
64257	//   "scopes": [
64258	//     "https://www.googleapis.com/auth/cloud-platform",
64259	//     "https://www.googleapis.com/auth/compute"
64260	//   ]
64261	// }
64262
64263}
64264
64265// method id "compute.firewallPolicies.get":
64266
64267type FirewallPoliciesGetCall struct {
64268	s              *Service
64269	firewallPolicy string
64270	urlParams_     gensupport.URLParams
64271	ifNoneMatch_   string
64272	ctx_           context.Context
64273	header_        http.Header
64274}
64275
64276// Get: Returns the specified firewall policy.
64277//
64278// - firewallPolicy: Name of the firewall policy to get.
64279func (r *FirewallPoliciesService) Get(firewallPolicy string) *FirewallPoliciesGetCall {
64280	c := &FirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64281	c.firewallPolicy = firewallPolicy
64282	return c
64283}
64284
64285// Fields allows partial responses to be retrieved. See
64286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64287// for more information.
64288func (c *FirewallPoliciesGetCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetCall {
64289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64290	return c
64291}
64292
64293// IfNoneMatch sets the optional parameter which makes the operation
64294// fail if the object's ETag matches the given value. This is useful for
64295// getting updates only after the object has changed since the last
64296// request. Use googleapi.IsNotModified to check whether the response
64297// error from Do is the result of In-None-Match.
64298func (c *FirewallPoliciesGetCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetCall {
64299	c.ifNoneMatch_ = entityTag
64300	return c
64301}
64302
64303// Context sets the context to be used in this call's Do method. Any
64304// pending HTTP request will be aborted if the provided context is
64305// canceled.
64306func (c *FirewallPoliciesGetCall) Context(ctx context.Context) *FirewallPoliciesGetCall {
64307	c.ctx_ = ctx
64308	return c
64309}
64310
64311// Header returns an http.Header that can be modified by the caller to
64312// add HTTP headers to the request.
64313func (c *FirewallPoliciesGetCall) Header() http.Header {
64314	if c.header_ == nil {
64315		c.header_ = make(http.Header)
64316	}
64317	return c.header_
64318}
64319
64320func (c *FirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
64321	reqHeaders := make(http.Header)
64322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64323	for k, v := range c.header_ {
64324		reqHeaders[k] = v
64325	}
64326	reqHeaders.Set("User-Agent", c.s.userAgent())
64327	if c.ifNoneMatch_ != "" {
64328		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64329	}
64330	var body io.Reader = nil
64331	c.urlParams_.Set("alt", alt)
64332	c.urlParams_.Set("prettyPrint", "false")
64333	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
64334	urls += "?" + c.urlParams_.Encode()
64335	req, err := http.NewRequest("GET", urls, body)
64336	if err != nil {
64337		return nil, err
64338	}
64339	req.Header = reqHeaders
64340	googleapi.Expand(req.URL, map[string]string{
64341		"firewallPolicy": c.firewallPolicy,
64342	})
64343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64344}
64345
64346// Do executes the "compute.firewallPolicies.get" call.
64347// Exactly one of *FirewallPolicy or error will be non-nil. Any non-2xx
64348// status code is an error. Response headers are in either
64349// *FirewallPolicy.ServerResponse.Header or (if a response was returned
64350// at all) in error.(*googleapi.Error).Header. Use
64351// googleapi.IsNotModified to check whether the returned error was
64352// because http.StatusNotModified was returned.
64353func (c *FirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) {
64354	gensupport.SetOptions(c.urlParams_, opts...)
64355	res, err := c.doRequest("json")
64356	if res != nil && res.StatusCode == http.StatusNotModified {
64357		if res.Body != nil {
64358			res.Body.Close()
64359		}
64360		return nil, &googleapi.Error{
64361			Code:   res.StatusCode,
64362			Header: res.Header,
64363		}
64364	}
64365	if err != nil {
64366		return nil, err
64367	}
64368	defer googleapi.CloseBody(res)
64369	if err := googleapi.CheckResponse(res); err != nil {
64370		return nil, err
64371	}
64372	ret := &FirewallPolicy{
64373		ServerResponse: googleapi.ServerResponse{
64374			Header:         res.Header,
64375			HTTPStatusCode: res.StatusCode,
64376		},
64377	}
64378	target := &ret
64379	if err := gensupport.DecodeResponse(target, res); err != nil {
64380		return nil, err
64381	}
64382	return ret, nil
64383	// {
64384	//   "description": "Returns the specified firewall policy.",
64385	//   "httpMethod": "GET",
64386	//   "id": "compute.firewallPolicies.get",
64387	//   "parameterOrder": [
64388	//     "firewallPolicy"
64389	//   ],
64390	//   "parameters": {
64391	//     "firewallPolicy": {
64392	//       "description": "Name of the firewall policy to get.",
64393	//       "location": "path",
64394	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64395	//       "required": true,
64396	//       "type": "string"
64397	//     }
64398	//   },
64399	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
64400	//   "response": {
64401	//     "$ref": "FirewallPolicy"
64402	//   },
64403	//   "scopes": [
64404	//     "https://www.googleapis.com/auth/cloud-platform",
64405	//     "https://www.googleapis.com/auth/compute",
64406	//     "https://www.googleapis.com/auth/compute.readonly"
64407	//   ]
64408	// }
64409
64410}
64411
64412// method id "compute.firewallPolicies.getAssociation":
64413
64414type FirewallPoliciesGetAssociationCall struct {
64415	s              *Service
64416	firewallPolicy string
64417	urlParams_     gensupport.URLParams
64418	ifNoneMatch_   string
64419	ctx_           context.Context
64420	header_        http.Header
64421}
64422
64423// GetAssociation: Gets an association with the specified name.
64424//
64425// - firewallPolicy: Name of the firewall policy to which the queried
64426//   rule belongs.
64427func (r *FirewallPoliciesService) GetAssociation(firewallPolicy string) *FirewallPoliciesGetAssociationCall {
64428	c := &FirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64429	c.firewallPolicy = firewallPolicy
64430	return c
64431}
64432
64433// Name sets the optional parameter "name": The name of the association
64434// to get from the firewall policy.
64435func (c *FirewallPoliciesGetAssociationCall) Name(name string) *FirewallPoliciesGetAssociationCall {
64436	c.urlParams_.Set("name", name)
64437	return c
64438}
64439
64440// Fields allows partial responses to be retrieved. See
64441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64442// for more information.
64443func (c *FirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetAssociationCall {
64444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64445	return c
64446}
64447
64448// IfNoneMatch sets the optional parameter which makes the operation
64449// fail if the object's ETag matches the given value. This is useful for
64450// getting updates only after the object has changed since the last
64451// request. Use googleapi.IsNotModified to check whether the response
64452// error from Do is the result of In-None-Match.
64453func (c *FirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetAssociationCall {
64454	c.ifNoneMatch_ = entityTag
64455	return c
64456}
64457
64458// Context sets the context to be used in this call's Do method. Any
64459// pending HTTP request will be aborted if the provided context is
64460// canceled.
64461func (c *FirewallPoliciesGetAssociationCall) Context(ctx context.Context) *FirewallPoliciesGetAssociationCall {
64462	c.ctx_ = ctx
64463	return c
64464}
64465
64466// Header returns an http.Header that can be modified by the caller to
64467// add HTTP headers to the request.
64468func (c *FirewallPoliciesGetAssociationCall) Header() http.Header {
64469	if c.header_ == nil {
64470		c.header_ = make(http.Header)
64471	}
64472	return c.header_
64473}
64474
64475func (c *FirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
64476	reqHeaders := make(http.Header)
64477	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64478	for k, v := range c.header_ {
64479		reqHeaders[k] = v
64480	}
64481	reqHeaders.Set("User-Agent", c.s.userAgent())
64482	if c.ifNoneMatch_ != "" {
64483		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64484	}
64485	var body io.Reader = nil
64486	c.urlParams_.Set("alt", alt)
64487	c.urlParams_.Set("prettyPrint", "false")
64488	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getAssociation")
64489	urls += "?" + c.urlParams_.Encode()
64490	req, err := http.NewRequest("GET", 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.getAssociation" call.
64502// Exactly one of *FirewallPolicyAssociation or error will be non-nil.
64503// Any non-2xx status code is an error. Response headers are in either
64504// *FirewallPolicyAssociation.ServerResponse.Header or (if a response
64505// was returned at all) in error.(*googleapi.Error).Header. Use
64506// googleapi.IsNotModified to check whether the returned error was
64507// because http.StatusNotModified was returned.
64508func (c *FirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, 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 := &FirewallPolicyAssociation{
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": "Gets an association with the specified name.",
64540	//   "httpMethod": "GET",
64541	//   "id": "compute.firewallPolicies.getAssociation",
64542	//   "parameterOrder": [
64543	//     "firewallPolicy"
64544	//   ],
64545	//   "parameters": {
64546	//     "firewallPolicy": {
64547	//       "description": "Name of the firewall policy to which the queried rule belongs.",
64548	//       "location": "path",
64549	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64550	//       "required": true,
64551	//       "type": "string"
64552	//     },
64553	//     "name": {
64554	//       "description": "The name of the association to get from the firewall policy.",
64555	//       "location": "query",
64556	//       "type": "string"
64557	//     }
64558	//   },
64559	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
64560	//   "response": {
64561	//     "$ref": "FirewallPolicyAssociation"
64562	//   },
64563	//   "scopes": [
64564	//     "https://www.googleapis.com/auth/cloud-platform",
64565	//     "https://www.googleapis.com/auth/compute",
64566	//     "https://www.googleapis.com/auth/compute.readonly"
64567	//   ]
64568	// }
64569
64570}
64571
64572// method id "compute.firewallPolicies.getIamPolicy":
64573
64574type FirewallPoliciesGetIamPolicyCall struct {
64575	s            *Service
64576	resource     string
64577	urlParams_   gensupport.URLParams
64578	ifNoneMatch_ string
64579	ctx_         context.Context
64580	header_      http.Header
64581}
64582
64583// GetIamPolicy: Gets the access control policy for a resource. May be
64584// empty if no such policy or resource exists.
64585//
64586// - resource: Name or id of the resource for this request.
64587func (r *FirewallPoliciesService) GetIamPolicy(resource string) *FirewallPoliciesGetIamPolicyCall {
64588	c := &FirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64589	c.resource = resource
64590	return c
64591}
64592
64593// OptionsRequestedPolicyVersion sets the optional parameter
64594// "optionsRequestedPolicyVersion": Requested IAM Policy version.
64595func (c *FirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *FirewallPoliciesGetIamPolicyCall {
64596	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
64597	return c
64598}
64599
64600// Fields allows partial responses to be retrieved. See
64601// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64602// for more information.
64603func (c *FirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetIamPolicyCall {
64604	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64605	return c
64606}
64607
64608// IfNoneMatch sets the optional parameter which makes the operation
64609// fail if the object's ETag matches the given value. This is useful for
64610// getting updates only after the object has changed since the last
64611// request. Use googleapi.IsNotModified to check whether the response
64612// error from Do is the result of In-None-Match.
64613func (c *FirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetIamPolicyCall {
64614	c.ifNoneMatch_ = entityTag
64615	return c
64616}
64617
64618// Context sets the context to be used in this call's Do method. Any
64619// pending HTTP request will be aborted if the provided context is
64620// canceled.
64621func (c *FirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesGetIamPolicyCall {
64622	c.ctx_ = ctx
64623	return c
64624}
64625
64626// Header returns an http.Header that can be modified by the caller to
64627// add HTTP headers to the request.
64628func (c *FirewallPoliciesGetIamPolicyCall) Header() http.Header {
64629	if c.header_ == nil {
64630		c.header_ = make(http.Header)
64631	}
64632	return c.header_
64633}
64634
64635func (c *FirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
64636	reqHeaders := make(http.Header)
64637	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64638	for k, v := range c.header_ {
64639		reqHeaders[k] = v
64640	}
64641	reqHeaders.Set("User-Agent", c.s.userAgent())
64642	if c.ifNoneMatch_ != "" {
64643		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64644	}
64645	var body io.Reader = nil
64646	c.urlParams_.Set("alt", alt)
64647	c.urlParams_.Set("prettyPrint", "false")
64648	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/getIamPolicy")
64649	urls += "?" + c.urlParams_.Encode()
64650	req, err := http.NewRequest("GET", urls, body)
64651	if err != nil {
64652		return nil, err
64653	}
64654	req.Header = reqHeaders
64655	googleapi.Expand(req.URL, map[string]string{
64656		"resource": c.resource,
64657	})
64658	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64659}
64660
64661// Do executes the "compute.firewallPolicies.getIamPolicy" call.
64662// Exactly one of *Policy or error will be non-nil. Any non-2xx status
64663// code is an error. Response headers are in either
64664// *Policy.ServerResponse.Header or (if a response was returned at all)
64665// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
64666// check whether the returned error was because http.StatusNotModified
64667// was returned.
64668func (c *FirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
64669	gensupport.SetOptions(c.urlParams_, opts...)
64670	res, err := c.doRequest("json")
64671	if res != nil && res.StatusCode == http.StatusNotModified {
64672		if res.Body != nil {
64673			res.Body.Close()
64674		}
64675		return nil, &googleapi.Error{
64676			Code:   res.StatusCode,
64677			Header: res.Header,
64678		}
64679	}
64680	if err != nil {
64681		return nil, err
64682	}
64683	defer googleapi.CloseBody(res)
64684	if err := googleapi.CheckResponse(res); err != nil {
64685		return nil, err
64686	}
64687	ret := &Policy{
64688		ServerResponse: googleapi.ServerResponse{
64689			Header:         res.Header,
64690			HTTPStatusCode: res.StatusCode,
64691		},
64692	}
64693	target := &ret
64694	if err := gensupport.DecodeResponse(target, res); err != nil {
64695		return nil, err
64696	}
64697	return ret, nil
64698	// {
64699	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
64700	//   "httpMethod": "GET",
64701	//   "id": "compute.firewallPolicies.getIamPolicy",
64702	//   "parameterOrder": [
64703	//     "resource"
64704	//   ],
64705	//   "parameters": {
64706	//     "optionsRequestedPolicyVersion": {
64707	//       "description": "Requested IAM Policy version.",
64708	//       "format": "int32",
64709	//       "location": "query",
64710	//       "type": "integer"
64711	//     },
64712	//     "resource": {
64713	//       "description": "Name or id of the resource for this request.",
64714	//       "location": "path",
64715	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64716	//       "required": true,
64717	//       "type": "string"
64718	//     }
64719	//   },
64720	//   "path": "locations/global/firewallPolicies/{resource}/getIamPolicy",
64721	//   "response": {
64722	//     "$ref": "Policy"
64723	//   },
64724	//   "scopes": [
64725	//     "https://www.googleapis.com/auth/cloud-platform",
64726	//     "https://www.googleapis.com/auth/compute",
64727	//     "https://www.googleapis.com/auth/compute.readonly"
64728	//   ]
64729	// }
64730
64731}
64732
64733// method id "compute.firewallPolicies.getRule":
64734
64735type FirewallPoliciesGetRuleCall struct {
64736	s              *Service
64737	firewallPolicy string
64738	urlParams_     gensupport.URLParams
64739	ifNoneMatch_   string
64740	ctx_           context.Context
64741	header_        http.Header
64742}
64743
64744// GetRule: Gets a rule of the specified priority.
64745//
64746// - firewallPolicy: Name of the firewall policy to which the queried
64747//   rule belongs.
64748func (r *FirewallPoliciesService) GetRule(firewallPolicy string) *FirewallPoliciesGetRuleCall {
64749	c := &FirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64750	c.firewallPolicy = firewallPolicy
64751	return c
64752}
64753
64754// Priority sets the optional parameter "priority": The priority of the
64755// rule to get from the firewall policy.
64756func (c *FirewallPoliciesGetRuleCall) Priority(priority int64) *FirewallPoliciesGetRuleCall {
64757	c.urlParams_.Set("priority", fmt.Sprint(priority))
64758	return c
64759}
64760
64761// Fields allows partial responses to be retrieved. See
64762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64763// for more information.
64764func (c *FirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetRuleCall {
64765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64766	return c
64767}
64768
64769// IfNoneMatch sets the optional parameter which makes the operation
64770// fail if the object's ETag matches the given value. This is useful for
64771// getting updates only after the object has changed since the last
64772// request. Use googleapi.IsNotModified to check whether the response
64773// error from Do is the result of In-None-Match.
64774func (c *FirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetRuleCall {
64775	c.ifNoneMatch_ = entityTag
64776	return c
64777}
64778
64779// Context sets the context to be used in this call's Do method. Any
64780// pending HTTP request will be aborted if the provided context is
64781// canceled.
64782func (c *FirewallPoliciesGetRuleCall) Context(ctx context.Context) *FirewallPoliciesGetRuleCall {
64783	c.ctx_ = ctx
64784	return c
64785}
64786
64787// Header returns an http.Header that can be modified by the caller to
64788// add HTTP headers to the request.
64789func (c *FirewallPoliciesGetRuleCall) Header() http.Header {
64790	if c.header_ == nil {
64791		c.header_ = make(http.Header)
64792	}
64793	return c.header_
64794}
64795
64796func (c *FirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
64797	reqHeaders := make(http.Header)
64798	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64799	for k, v := range c.header_ {
64800		reqHeaders[k] = v
64801	}
64802	reqHeaders.Set("User-Agent", c.s.userAgent())
64803	if c.ifNoneMatch_ != "" {
64804		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64805	}
64806	var body io.Reader = nil
64807	c.urlParams_.Set("alt", alt)
64808	c.urlParams_.Set("prettyPrint", "false")
64809	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getRule")
64810	urls += "?" + c.urlParams_.Encode()
64811	req, err := http.NewRequest("GET", urls, body)
64812	if err != nil {
64813		return nil, err
64814	}
64815	req.Header = reqHeaders
64816	googleapi.Expand(req.URL, map[string]string{
64817		"firewallPolicy": c.firewallPolicy,
64818	})
64819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64820}
64821
64822// Do executes the "compute.firewallPolicies.getRule" call.
64823// Exactly one of *FirewallPolicyRule or error will be non-nil. Any
64824// non-2xx status code is an error. Response headers are in either
64825// *FirewallPolicyRule.ServerResponse.Header or (if a response was
64826// returned at all) in error.(*googleapi.Error).Header. Use
64827// googleapi.IsNotModified to check whether the returned error was
64828// because http.StatusNotModified was returned.
64829func (c *FirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) {
64830	gensupport.SetOptions(c.urlParams_, opts...)
64831	res, err := c.doRequest("json")
64832	if res != nil && res.StatusCode == http.StatusNotModified {
64833		if res.Body != nil {
64834			res.Body.Close()
64835		}
64836		return nil, &googleapi.Error{
64837			Code:   res.StatusCode,
64838			Header: res.Header,
64839		}
64840	}
64841	if err != nil {
64842		return nil, err
64843	}
64844	defer googleapi.CloseBody(res)
64845	if err := googleapi.CheckResponse(res); err != nil {
64846		return nil, err
64847	}
64848	ret := &FirewallPolicyRule{
64849		ServerResponse: googleapi.ServerResponse{
64850			Header:         res.Header,
64851			HTTPStatusCode: res.StatusCode,
64852		},
64853	}
64854	target := &ret
64855	if err := gensupport.DecodeResponse(target, res); err != nil {
64856		return nil, err
64857	}
64858	return ret, nil
64859	// {
64860	//   "description": "Gets a rule of the specified priority.",
64861	//   "httpMethod": "GET",
64862	//   "id": "compute.firewallPolicies.getRule",
64863	//   "parameterOrder": [
64864	//     "firewallPolicy"
64865	//   ],
64866	//   "parameters": {
64867	//     "firewallPolicy": {
64868	//       "description": "Name of the firewall policy to which the queried rule belongs.",
64869	//       "location": "path",
64870	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64871	//       "required": true,
64872	//       "type": "string"
64873	//     },
64874	//     "priority": {
64875	//       "description": "The priority of the rule to get from the firewall policy.",
64876	//       "format": "int32",
64877	//       "location": "query",
64878	//       "type": "integer"
64879	//     }
64880	//   },
64881	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
64882	//   "response": {
64883	//     "$ref": "FirewallPolicyRule"
64884	//   },
64885	//   "scopes": [
64886	//     "https://www.googleapis.com/auth/cloud-platform",
64887	//     "https://www.googleapis.com/auth/compute",
64888	//     "https://www.googleapis.com/auth/compute.readonly"
64889	//   ]
64890	// }
64891
64892}
64893
64894// method id "compute.firewallPolicies.insert":
64895
64896type FirewallPoliciesInsertCall struct {
64897	s              *Service
64898	firewallpolicy *FirewallPolicy
64899	urlParams_     gensupport.URLParams
64900	ctx_           context.Context
64901	header_        http.Header
64902}
64903
64904// Insert: Creates a new policy in the specified project using the data
64905// included in the request.
64906func (r *FirewallPoliciesService) Insert(firewallpolicy *FirewallPolicy) *FirewallPoliciesInsertCall {
64907	c := &FirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64908	c.firewallpolicy = firewallpolicy
64909	return c
64910}
64911
64912// ParentId sets the optional parameter "parentId": Parent ID for this
64913// request. The ID can be either be "folders/[FOLDER_ID]" if the parent
64914// is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an
64915// organization.
64916func (c *FirewallPoliciesInsertCall) ParentId(parentId string) *FirewallPoliciesInsertCall {
64917	c.urlParams_.Set("parentId", parentId)
64918	return c
64919}
64920
64921// RequestId sets the optional parameter "requestId": An optional
64922// request ID to identify requests. Specify a unique request ID so that
64923// if you must retry your request, the server will know to ignore the
64924// request if it has already been completed.
64925//
64926// For example, consider a situation where you make an initial request
64927// and the request times out. If you make the request again with the
64928// same request ID, the server can check if original operation with the
64929// same request ID was received, and if so, will ignore the second
64930// request. This prevents clients from accidentally creating duplicate
64931// commitments.
64932//
64933// The request ID must be a valid UUID with the exception that zero UUID
64934// is not supported (00000000-0000-0000-0000-000000000000).
64935func (c *FirewallPoliciesInsertCall) RequestId(requestId string) *FirewallPoliciesInsertCall {
64936	c.urlParams_.Set("requestId", requestId)
64937	return c
64938}
64939
64940// Fields allows partial responses to be retrieved. See
64941// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64942// for more information.
64943func (c *FirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *FirewallPoliciesInsertCall {
64944	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64945	return c
64946}
64947
64948// Context sets the context to be used in this call's Do method. Any
64949// pending HTTP request will be aborted if the provided context is
64950// canceled.
64951func (c *FirewallPoliciesInsertCall) Context(ctx context.Context) *FirewallPoliciesInsertCall {
64952	c.ctx_ = ctx
64953	return c
64954}
64955
64956// Header returns an http.Header that can be modified by the caller to
64957// add HTTP headers to the request.
64958func (c *FirewallPoliciesInsertCall) Header() http.Header {
64959	if c.header_ == nil {
64960		c.header_ = make(http.Header)
64961	}
64962	return c.header_
64963}
64964
64965func (c *FirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
64966	reqHeaders := make(http.Header)
64967	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64968	for k, v := range c.header_ {
64969		reqHeaders[k] = v
64970	}
64971	reqHeaders.Set("User-Agent", c.s.userAgent())
64972	var body io.Reader = nil
64973	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
64974	if err != nil {
64975		return nil, err
64976	}
64977	reqHeaders.Set("Content-Type", "application/json")
64978	c.urlParams_.Set("alt", alt)
64979	c.urlParams_.Set("prettyPrint", "false")
64980	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
64981	urls += "?" + c.urlParams_.Encode()
64982	req, err := http.NewRequest("POST", urls, body)
64983	if err != nil {
64984		return nil, err
64985	}
64986	req.Header = reqHeaders
64987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64988}
64989
64990// Do executes the "compute.firewallPolicies.insert" call.
64991// Exactly one of *Operation or error will be non-nil. Any non-2xx
64992// status code is an error. Response headers are in either
64993// *Operation.ServerResponse.Header or (if a response was returned at
64994// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64995// to check whether the returned error was because
64996// http.StatusNotModified was returned.
64997func (c *FirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64998	gensupport.SetOptions(c.urlParams_, opts...)
64999	res, err := c.doRequest("json")
65000	if res != nil && res.StatusCode == http.StatusNotModified {
65001		if res.Body != nil {
65002			res.Body.Close()
65003		}
65004		return nil, &googleapi.Error{
65005			Code:   res.StatusCode,
65006			Header: res.Header,
65007		}
65008	}
65009	if err != nil {
65010		return nil, err
65011	}
65012	defer googleapi.CloseBody(res)
65013	if err := googleapi.CheckResponse(res); err != nil {
65014		return nil, err
65015	}
65016	ret := &Operation{
65017		ServerResponse: googleapi.ServerResponse{
65018			Header:         res.Header,
65019			HTTPStatusCode: res.StatusCode,
65020		},
65021	}
65022	target := &ret
65023	if err := gensupport.DecodeResponse(target, res); err != nil {
65024		return nil, err
65025	}
65026	return ret, nil
65027	// {
65028	//   "description": "Creates a new policy in the specified project using the data included in the request.",
65029	//   "httpMethod": "POST",
65030	//   "id": "compute.firewallPolicies.insert",
65031	//   "parameters": {
65032	//     "parentId": {
65033	//       "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.",
65034	//       "location": "query",
65035	//       "type": "string"
65036	//     },
65037	//     "requestId": {
65038	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65039	//       "location": "query",
65040	//       "type": "string"
65041	//     }
65042	//   },
65043	//   "path": "locations/global/firewallPolicies",
65044	//   "request": {
65045	//     "$ref": "FirewallPolicy"
65046	//   },
65047	//   "response": {
65048	//     "$ref": "Operation"
65049	//   },
65050	//   "scopes": [
65051	//     "https://www.googleapis.com/auth/cloud-platform",
65052	//     "https://www.googleapis.com/auth/compute"
65053	//   ]
65054	// }
65055
65056}
65057
65058// method id "compute.firewallPolicies.list":
65059
65060type FirewallPoliciesListCall struct {
65061	s            *Service
65062	urlParams_   gensupport.URLParams
65063	ifNoneMatch_ string
65064	ctx_         context.Context
65065	header_      http.Header
65066}
65067
65068// List: Lists all the policies that have been configured for the
65069// specified folder or organization.
65070func (r *FirewallPoliciesService) List() *FirewallPoliciesListCall {
65071	c := &FirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65072	return c
65073}
65074
65075// Filter sets the optional parameter "filter": A filter expression that
65076// filters resources listed in the response. The expression must specify
65077// the field name, a comparison operator, and the value that you want to
65078// use for filtering. The value must be a string, a number, or a
65079// boolean. The comparison operator must be either `=`, `!=`, `>`, or
65080// `<`.
65081//
65082// For example, if you are filtering Compute Engine instances, you can
65083// exclude instances named `example-instance` by specifying `name !=
65084// example-instance`.
65085//
65086// You can also filter nested fields. For example, you could specify
65087// `scheduling.automaticRestart = false` to include instances only if
65088// they are not scheduled for automatic restarts. You can use filtering
65089// on nested fields to filter based on resource labels.
65090//
65091// To filter on multiple expressions, provide each separate expression
65092// within parentheses. For example: ``` (scheduling.automaticRestart =
65093// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
65094// is an `AND` expression. However, you can include `AND` and `OR`
65095// expressions explicitly. For example: ``` (cpuPlatform = "Intel
65096// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
65097// (scheduling.automaticRestart = true) ```
65098func (c *FirewallPoliciesListCall) Filter(filter string) *FirewallPoliciesListCall {
65099	c.urlParams_.Set("filter", filter)
65100	return c
65101}
65102
65103// MaxResults sets the optional parameter "maxResults": The maximum
65104// number of results per page that should be returned. If the number of
65105// available results is larger than `maxResults`, Compute Engine returns
65106// a `nextPageToken` that can be used to get the next page of results in
65107// subsequent list requests. Acceptable values are `0` to `500`,
65108// inclusive. (Default: `500`)
65109func (c *FirewallPoliciesListCall) MaxResults(maxResults int64) *FirewallPoliciesListCall {
65110	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65111	return c
65112}
65113
65114// OrderBy sets the optional parameter "orderBy": Sorts list results by
65115// a certain order. By default, results are returned in alphanumerical
65116// order based on the resource name.
65117//
65118// You can also sort results in descending order based on the creation
65119// timestamp using `orderBy="creationTimestamp desc". This sorts
65120// results based on the `creationTimestamp` field in reverse
65121// chronological order (newest result first). Use this to sort resources
65122// like operations so that the newest operation is returned
65123// first.
65124//
65125// Currently, only sorting by `name` or `creationTimestamp desc` is
65126// supported.
65127func (c *FirewallPoliciesListCall) OrderBy(orderBy string) *FirewallPoliciesListCall {
65128	c.urlParams_.Set("orderBy", orderBy)
65129	return c
65130}
65131
65132// PageToken sets the optional parameter "pageToken": Specifies a page
65133// token to use. Set `pageToken` to the `nextPageToken` returned by a
65134// previous list request to get the next page of results.
65135func (c *FirewallPoliciesListCall) PageToken(pageToken string) *FirewallPoliciesListCall {
65136	c.urlParams_.Set("pageToken", pageToken)
65137	return c
65138}
65139
65140// ParentId sets the optional parameter "parentId": Parent ID for this
65141// request.
65142func (c *FirewallPoliciesListCall) ParentId(parentId string) *FirewallPoliciesListCall {
65143	c.urlParams_.Set("parentId", parentId)
65144	return c
65145}
65146
65147// ReturnPartialSuccess sets the optional parameter
65148// "returnPartialSuccess": Opt-in for partial success behavior which
65149// provides partial results in case of failure. The default value is
65150// false.
65151func (c *FirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallPoliciesListCall {
65152	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
65153	return c
65154}
65155
65156// Fields allows partial responses to be retrieved. See
65157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65158// for more information.
65159func (c *FirewallPoliciesListCall) Fields(s ...googleapi.Field) *FirewallPoliciesListCall {
65160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65161	return c
65162}
65163
65164// IfNoneMatch sets the optional parameter which makes the operation
65165// fail if the object's ETag matches the given value. This is useful for
65166// getting updates only after the object has changed since the last
65167// request. Use googleapi.IsNotModified to check whether the response
65168// error from Do is the result of In-None-Match.
65169func (c *FirewallPoliciesListCall) IfNoneMatch(entityTag string) *FirewallPoliciesListCall {
65170	c.ifNoneMatch_ = entityTag
65171	return c
65172}
65173
65174// Context sets the context to be used in this call's Do method. Any
65175// pending HTTP request will be aborted if the provided context is
65176// canceled.
65177func (c *FirewallPoliciesListCall) Context(ctx context.Context) *FirewallPoliciesListCall {
65178	c.ctx_ = ctx
65179	return c
65180}
65181
65182// Header returns an http.Header that can be modified by the caller to
65183// add HTTP headers to the request.
65184func (c *FirewallPoliciesListCall) Header() http.Header {
65185	if c.header_ == nil {
65186		c.header_ = make(http.Header)
65187	}
65188	return c.header_
65189}
65190
65191func (c *FirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) {
65192	reqHeaders := make(http.Header)
65193	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65194	for k, v := range c.header_ {
65195		reqHeaders[k] = v
65196	}
65197	reqHeaders.Set("User-Agent", c.s.userAgent())
65198	if c.ifNoneMatch_ != "" {
65199		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65200	}
65201	var body io.Reader = nil
65202	c.urlParams_.Set("alt", alt)
65203	c.urlParams_.Set("prettyPrint", "false")
65204	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
65205	urls += "?" + c.urlParams_.Encode()
65206	req, err := http.NewRequest("GET", urls, body)
65207	if err != nil {
65208		return nil, err
65209	}
65210	req.Header = reqHeaders
65211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65212}
65213
65214// Do executes the "compute.firewallPolicies.list" call.
65215// Exactly one of *FirewallPolicyList or error will be non-nil. Any
65216// non-2xx status code is an error. Response headers are in either
65217// *FirewallPolicyList.ServerResponse.Header or (if a response was
65218// returned at all) in error.(*googleapi.Error).Header. Use
65219// googleapi.IsNotModified to check whether the returned error was
65220// because http.StatusNotModified was returned.
65221func (c *FirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) {
65222	gensupport.SetOptions(c.urlParams_, opts...)
65223	res, err := c.doRequest("json")
65224	if res != nil && res.StatusCode == http.StatusNotModified {
65225		if res.Body != nil {
65226			res.Body.Close()
65227		}
65228		return nil, &googleapi.Error{
65229			Code:   res.StatusCode,
65230			Header: res.Header,
65231		}
65232	}
65233	if err != nil {
65234		return nil, err
65235	}
65236	defer googleapi.CloseBody(res)
65237	if err := googleapi.CheckResponse(res); err != nil {
65238		return nil, err
65239	}
65240	ret := &FirewallPolicyList{
65241		ServerResponse: googleapi.ServerResponse{
65242			Header:         res.Header,
65243			HTTPStatusCode: res.StatusCode,
65244		},
65245	}
65246	target := &ret
65247	if err := gensupport.DecodeResponse(target, res); err != nil {
65248		return nil, err
65249	}
65250	return ret, nil
65251	// {
65252	//   "description": "Lists all the policies that have been configured for the specified folder or organization.",
65253	//   "httpMethod": "GET",
65254	//   "id": "compute.firewallPolicies.list",
65255	//   "parameters": {
65256	//     "filter": {
65257	//       "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) ```",
65258	//       "location": "query",
65259	//       "type": "string"
65260	//     },
65261	//     "maxResults": {
65262	//       "default": "500",
65263	//       "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`)",
65264	//       "format": "uint32",
65265	//       "location": "query",
65266	//       "minimum": "0",
65267	//       "type": "integer"
65268	//     },
65269	//     "orderBy": {
65270	//       "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.",
65271	//       "location": "query",
65272	//       "type": "string"
65273	//     },
65274	//     "pageToken": {
65275	//       "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.",
65276	//       "location": "query",
65277	//       "type": "string"
65278	//     },
65279	//     "parentId": {
65280	//       "description": "Parent ID for this request.",
65281	//       "location": "query",
65282	//       "type": "string"
65283	//     },
65284	//     "returnPartialSuccess": {
65285	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
65286	//       "location": "query",
65287	//       "type": "boolean"
65288	//     }
65289	//   },
65290	//   "path": "locations/global/firewallPolicies",
65291	//   "response": {
65292	//     "$ref": "FirewallPolicyList"
65293	//   },
65294	//   "scopes": [
65295	//     "https://www.googleapis.com/auth/cloud-platform",
65296	//     "https://www.googleapis.com/auth/compute",
65297	//     "https://www.googleapis.com/auth/compute.readonly"
65298	//   ]
65299	// }
65300
65301}
65302
65303// Pages invokes f for each page of results.
65304// A non-nil error returned from f will halt the iteration.
65305// The provided context supersedes any context provided to the Context method.
65306func (c *FirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error {
65307	c.ctx_ = ctx
65308	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65309	for {
65310		x, err := c.Do()
65311		if err != nil {
65312			return err
65313		}
65314		if err := f(x); err != nil {
65315			return err
65316		}
65317		if x.NextPageToken == "" {
65318			return nil
65319		}
65320		c.PageToken(x.NextPageToken)
65321	}
65322}
65323
65324// method id "compute.firewallPolicies.listAssociations":
65325
65326type FirewallPoliciesListAssociationsCall struct {
65327	s            *Service
65328	urlParams_   gensupport.URLParams
65329	ifNoneMatch_ string
65330	ctx_         context.Context
65331	header_      http.Header
65332}
65333
65334// ListAssociations: Lists associations of a specified target, i.e.,
65335// organization or folder.
65336func (r *FirewallPoliciesService) ListAssociations() *FirewallPoliciesListAssociationsCall {
65337	c := &FirewallPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65338	return c
65339}
65340
65341// TargetResource sets the optional parameter "targetResource": The
65342// target resource to list associations. It is an organization, or a
65343// folder.
65344func (c *FirewallPoliciesListAssociationsCall) TargetResource(targetResource string) *FirewallPoliciesListAssociationsCall {
65345	c.urlParams_.Set("targetResource", targetResource)
65346	return c
65347}
65348
65349// Fields allows partial responses to be retrieved. See
65350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65351// for more information.
65352func (c *FirewallPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *FirewallPoliciesListAssociationsCall {
65353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65354	return c
65355}
65356
65357// IfNoneMatch sets the optional parameter which makes the operation
65358// fail if the object's ETag matches the given value. This is useful for
65359// getting updates only after the object has changed since the last
65360// request. Use googleapi.IsNotModified to check whether the response
65361// error from Do is the result of In-None-Match.
65362func (c *FirewallPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *FirewallPoliciesListAssociationsCall {
65363	c.ifNoneMatch_ = entityTag
65364	return c
65365}
65366
65367// Context sets the context to be used in this call's Do method. Any
65368// pending HTTP request will be aborted if the provided context is
65369// canceled.
65370func (c *FirewallPoliciesListAssociationsCall) Context(ctx context.Context) *FirewallPoliciesListAssociationsCall {
65371	c.ctx_ = ctx
65372	return c
65373}
65374
65375// Header returns an http.Header that can be modified by the caller to
65376// add HTTP headers to the request.
65377func (c *FirewallPoliciesListAssociationsCall) Header() http.Header {
65378	if c.header_ == nil {
65379		c.header_ = make(http.Header)
65380	}
65381	return c.header_
65382}
65383
65384func (c *FirewallPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
65385	reqHeaders := make(http.Header)
65386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65387	for k, v := range c.header_ {
65388		reqHeaders[k] = v
65389	}
65390	reqHeaders.Set("User-Agent", c.s.userAgent())
65391	if c.ifNoneMatch_ != "" {
65392		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65393	}
65394	var body io.Reader = nil
65395	c.urlParams_.Set("alt", alt)
65396	c.urlParams_.Set("prettyPrint", "false")
65397	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/listAssociations")
65398	urls += "?" + c.urlParams_.Encode()
65399	req, err := http.NewRequest("GET", urls, body)
65400	if err != nil {
65401		return nil, err
65402	}
65403	req.Header = reqHeaders
65404	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65405}
65406
65407// Do executes the "compute.firewallPolicies.listAssociations" call.
65408// Exactly one of *FirewallPoliciesListAssociationsResponse or error
65409// will be non-nil. Any non-2xx status code is an error. Response
65410// headers are in either
65411// *FirewallPoliciesListAssociationsResponse.ServerResponse.Header or
65412// (if a response was returned at all) in
65413// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
65414// whether the returned error was because http.StatusNotModified was
65415// returned.
65416func (c *FirewallPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*FirewallPoliciesListAssociationsResponse, error) {
65417	gensupport.SetOptions(c.urlParams_, opts...)
65418	res, err := c.doRequest("json")
65419	if res != nil && res.StatusCode == http.StatusNotModified {
65420		if res.Body != nil {
65421			res.Body.Close()
65422		}
65423		return nil, &googleapi.Error{
65424			Code:   res.StatusCode,
65425			Header: res.Header,
65426		}
65427	}
65428	if err != nil {
65429		return nil, err
65430	}
65431	defer googleapi.CloseBody(res)
65432	if err := googleapi.CheckResponse(res); err != nil {
65433		return nil, err
65434	}
65435	ret := &FirewallPoliciesListAssociationsResponse{
65436		ServerResponse: googleapi.ServerResponse{
65437			Header:         res.Header,
65438			HTTPStatusCode: res.StatusCode,
65439		},
65440	}
65441	target := &ret
65442	if err := gensupport.DecodeResponse(target, res); err != nil {
65443		return nil, err
65444	}
65445	return ret, nil
65446	// {
65447	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
65448	//   "httpMethod": "GET",
65449	//   "id": "compute.firewallPolicies.listAssociations",
65450	//   "parameters": {
65451	//     "targetResource": {
65452	//       "description": "The target resource to list associations. It is an organization, or a folder.",
65453	//       "location": "query",
65454	//       "type": "string"
65455	//     }
65456	//   },
65457	//   "path": "locations/global/firewallPolicies/listAssociations",
65458	//   "response": {
65459	//     "$ref": "FirewallPoliciesListAssociationsResponse"
65460	//   },
65461	//   "scopes": [
65462	//     "https://www.googleapis.com/auth/cloud-platform",
65463	//     "https://www.googleapis.com/auth/compute"
65464	//   ]
65465	// }
65466
65467}
65468
65469// method id "compute.firewallPolicies.move":
65470
65471type FirewallPoliciesMoveCall struct {
65472	s              *Service
65473	firewallPolicy string
65474	urlParams_     gensupport.URLParams
65475	ctx_           context.Context
65476	header_        http.Header
65477}
65478
65479// Move: Moves the specified firewall policy.
65480//
65481// - firewallPolicy: Name of the firewall policy to update.
65482func (r *FirewallPoliciesService) Move(firewallPolicy string) *FirewallPoliciesMoveCall {
65483	c := &FirewallPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65484	c.firewallPolicy = firewallPolicy
65485	return c
65486}
65487
65488// ParentId sets the optional parameter "parentId": The new parent of
65489// the firewall policy.
65490func (c *FirewallPoliciesMoveCall) ParentId(parentId string) *FirewallPoliciesMoveCall {
65491	c.urlParams_.Set("parentId", parentId)
65492	return c
65493}
65494
65495// RequestId sets the optional parameter "requestId": An optional
65496// request ID to identify requests. Specify a unique request ID so that
65497// if you must retry your request, the server will know to ignore the
65498// request if it has already been completed.
65499//
65500// For example, consider a situation where you make an initial request
65501// and the request times out. If you make the request again with the
65502// same request ID, the server can check if original operation with the
65503// same request ID was received, and if so, will ignore the second
65504// request. This prevents clients from accidentally creating duplicate
65505// commitments.
65506//
65507// The request ID must be a valid UUID with the exception that zero UUID
65508// is not supported (00000000-0000-0000-0000-000000000000).
65509func (c *FirewallPoliciesMoveCall) RequestId(requestId string) *FirewallPoliciesMoveCall {
65510	c.urlParams_.Set("requestId", requestId)
65511	return c
65512}
65513
65514// Fields allows partial responses to be retrieved. See
65515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65516// for more information.
65517func (c *FirewallPoliciesMoveCall) Fields(s ...googleapi.Field) *FirewallPoliciesMoveCall {
65518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65519	return c
65520}
65521
65522// Context sets the context to be used in this call's Do method. Any
65523// pending HTTP request will be aborted if the provided context is
65524// canceled.
65525func (c *FirewallPoliciesMoveCall) Context(ctx context.Context) *FirewallPoliciesMoveCall {
65526	c.ctx_ = ctx
65527	return c
65528}
65529
65530// Header returns an http.Header that can be modified by the caller to
65531// add HTTP headers to the request.
65532func (c *FirewallPoliciesMoveCall) Header() http.Header {
65533	if c.header_ == nil {
65534		c.header_ = make(http.Header)
65535	}
65536	return c.header_
65537}
65538
65539func (c *FirewallPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
65540	reqHeaders := make(http.Header)
65541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65542	for k, v := range c.header_ {
65543		reqHeaders[k] = v
65544	}
65545	reqHeaders.Set("User-Agent", c.s.userAgent())
65546	var body io.Reader = nil
65547	c.urlParams_.Set("alt", alt)
65548	c.urlParams_.Set("prettyPrint", "false")
65549	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/move")
65550	urls += "?" + c.urlParams_.Encode()
65551	req, err := http.NewRequest("POST", urls, body)
65552	if err != nil {
65553		return nil, err
65554	}
65555	req.Header = reqHeaders
65556	googleapi.Expand(req.URL, map[string]string{
65557		"firewallPolicy": c.firewallPolicy,
65558	})
65559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65560}
65561
65562// Do executes the "compute.firewallPolicies.move" call.
65563// Exactly one of *Operation or error will be non-nil. Any non-2xx
65564// status code is an error. Response headers are in either
65565// *Operation.ServerResponse.Header or (if a response was returned at
65566// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65567// to check whether the returned error was because
65568// http.StatusNotModified was returned.
65569func (c *FirewallPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65570	gensupport.SetOptions(c.urlParams_, opts...)
65571	res, err := c.doRequest("json")
65572	if res != nil && res.StatusCode == http.StatusNotModified {
65573		if res.Body != nil {
65574			res.Body.Close()
65575		}
65576		return nil, &googleapi.Error{
65577			Code:   res.StatusCode,
65578			Header: res.Header,
65579		}
65580	}
65581	if err != nil {
65582		return nil, err
65583	}
65584	defer googleapi.CloseBody(res)
65585	if err := googleapi.CheckResponse(res); err != nil {
65586		return nil, err
65587	}
65588	ret := &Operation{
65589		ServerResponse: googleapi.ServerResponse{
65590			Header:         res.Header,
65591			HTTPStatusCode: res.StatusCode,
65592		},
65593	}
65594	target := &ret
65595	if err := gensupport.DecodeResponse(target, res); err != nil {
65596		return nil, err
65597	}
65598	return ret, nil
65599	// {
65600	//   "description": "Moves the specified firewall policy.",
65601	//   "httpMethod": "POST",
65602	//   "id": "compute.firewallPolicies.move",
65603	//   "parameterOrder": [
65604	//     "firewallPolicy"
65605	//   ],
65606	//   "parameters": {
65607	//     "firewallPolicy": {
65608	//       "description": "Name of the firewall policy to update.",
65609	//       "location": "path",
65610	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65611	//       "required": true,
65612	//       "type": "string"
65613	//     },
65614	//     "parentId": {
65615	//       "description": "The new parent of the firewall policy.",
65616	//       "location": "query",
65617	//       "type": "string"
65618	//     },
65619	//     "requestId": {
65620	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65621	//       "location": "query",
65622	//       "type": "string"
65623	//     }
65624	//   },
65625	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/move",
65626	//   "response": {
65627	//     "$ref": "Operation"
65628	//   },
65629	//   "scopes": [
65630	//     "https://www.googleapis.com/auth/cloud-platform",
65631	//     "https://www.googleapis.com/auth/compute"
65632	//   ]
65633	// }
65634
65635}
65636
65637// method id "compute.firewallPolicies.patch":
65638
65639type FirewallPoliciesPatchCall struct {
65640	s              *Service
65641	firewallPolicy string
65642	firewallpolicy *FirewallPolicy
65643	urlParams_     gensupport.URLParams
65644	ctx_           context.Context
65645	header_        http.Header
65646}
65647
65648// Patch: Patches the specified policy with the data included in the
65649// request.
65650//
65651// - firewallPolicy: Name of the firewall policy to update.
65652func (r *FirewallPoliciesService) Patch(firewallPolicy string, firewallpolicy *FirewallPolicy) *FirewallPoliciesPatchCall {
65653	c := &FirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65654	c.firewallPolicy = firewallPolicy
65655	c.firewallpolicy = firewallpolicy
65656	return c
65657}
65658
65659// RequestId sets the optional parameter "requestId": An optional
65660// request ID to identify requests. Specify a unique request ID so that
65661// if you must retry your request, the server will know to ignore the
65662// request if it has already been completed.
65663//
65664// For example, consider a situation where you make an initial request
65665// and the request times out. If you make the request again with the
65666// same request ID, the server can check if original operation with the
65667// same request ID was received, and if so, will ignore the second
65668// request. This prevents clients from accidentally creating duplicate
65669// commitments.
65670//
65671// The request ID must be a valid UUID with the exception that zero UUID
65672// is not supported (00000000-0000-0000-0000-000000000000).
65673func (c *FirewallPoliciesPatchCall) RequestId(requestId string) *FirewallPoliciesPatchCall {
65674	c.urlParams_.Set("requestId", requestId)
65675	return c
65676}
65677
65678// Fields allows partial responses to be retrieved. See
65679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65680// for more information.
65681func (c *FirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchCall {
65682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65683	return c
65684}
65685
65686// Context sets the context to be used in this call's Do method. Any
65687// pending HTTP request will be aborted if the provided context is
65688// canceled.
65689func (c *FirewallPoliciesPatchCall) Context(ctx context.Context) *FirewallPoliciesPatchCall {
65690	c.ctx_ = ctx
65691	return c
65692}
65693
65694// Header returns an http.Header that can be modified by the caller to
65695// add HTTP headers to the request.
65696func (c *FirewallPoliciesPatchCall) Header() http.Header {
65697	if c.header_ == nil {
65698		c.header_ = make(http.Header)
65699	}
65700	return c.header_
65701}
65702
65703func (c *FirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
65704	reqHeaders := make(http.Header)
65705	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65706	for k, v := range c.header_ {
65707		reqHeaders[k] = v
65708	}
65709	reqHeaders.Set("User-Agent", c.s.userAgent())
65710	var body io.Reader = nil
65711	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
65712	if err != nil {
65713		return nil, err
65714	}
65715	reqHeaders.Set("Content-Type", "application/json")
65716	c.urlParams_.Set("alt", alt)
65717	c.urlParams_.Set("prettyPrint", "false")
65718	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
65719	urls += "?" + c.urlParams_.Encode()
65720	req, err := http.NewRequest("PATCH", urls, body)
65721	if err != nil {
65722		return nil, err
65723	}
65724	req.Header = reqHeaders
65725	googleapi.Expand(req.URL, map[string]string{
65726		"firewallPolicy": c.firewallPolicy,
65727	})
65728	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65729}
65730
65731// Do executes the "compute.firewallPolicies.patch" call.
65732// Exactly one of *Operation or error will be non-nil. Any non-2xx
65733// status code is an error. Response headers are in either
65734// *Operation.ServerResponse.Header or (if a response was returned at
65735// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65736// to check whether the returned error was because
65737// http.StatusNotModified was returned.
65738func (c *FirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65739	gensupport.SetOptions(c.urlParams_, opts...)
65740	res, err := c.doRequest("json")
65741	if res != nil && res.StatusCode == http.StatusNotModified {
65742		if res.Body != nil {
65743			res.Body.Close()
65744		}
65745		return nil, &googleapi.Error{
65746			Code:   res.StatusCode,
65747			Header: res.Header,
65748		}
65749	}
65750	if err != nil {
65751		return nil, err
65752	}
65753	defer googleapi.CloseBody(res)
65754	if err := googleapi.CheckResponse(res); err != nil {
65755		return nil, err
65756	}
65757	ret := &Operation{
65758		ServerResponse: googleapi.ServerResponse{
65759			Header:         res.Header,
65760			HTTPStatusCode: res.StatusCode,
65761		},
65762	}
65763	target := &ret
65764	if err := gensupport.DecodeResponse(target, res); err != nil {
65765		return nil, err
65766	}
65767	return ret, nil
65768	// {
65769	//   "description": "Patches the specified policy with the data included in the request.",
65770	//   "httpMethod": "PATCH",
65771	//   "id": "compute.firewallPolicies.patch",
65772	//   "parameterOrder": [
65773	//     "firewallPolicy"
65774	//   ],
65775	//   "parameters": {
65776	//     "firewallPolicy": {
65777	//       "description": "Name of the firewall policy to update.",
65778	//       "location": "path",
65779	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65780	//       "required": true,
65781	//       "type": "string"
65782	//     },
65783	//     "requestId": {
65784	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65785	//       "location": "query",
65786	//       "type": "string"
65787	//     }
65788	//   },
65789	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
65790	//   "request": {
65791	//     "$ref": "FirewallPolicy"
65792	//   },
65793	//   "response": {
65794	//     "$ref": "Operation"
65795	//   },
65796	//   "scopes": [
65797	//     "https://www.googleapis.com/auth/cloud-platform",
65798	//     "https://www.googleapis.com/auth/compute"
65799	//   ]
65800	// }
65801
65802}
65803
65804// method id "compute.firewallPolicies.patchRule":
65805
65806type FirewallPoliciesPatchRuleCall struct {
65807	s                  *Service
65808	firewallPolicy     string
65809	firewallpolicyrule *FirewallPolicyRule
65810	urlParams_         gensupport.URLParams
65811	ctx_               context.Context
65812	header_            http.Header
65813}
65814
65815// PatchRule: Patches a rule of the specified priority.
65816//
65817// - firewallPolicy: Name of the firewall policy to update.
65818func (r *FirewallPoliciesService) PatchRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesPatchRuleCall {
65819	c := &FirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65820	c.firewallPolicy = firewallPolicy
65821	c.firewallpolicyrule = firewallpolicyrule
65822	return c
65823}
65824
65825// Priority sets the optional parameter "priority": The priority of the
65826// rule to patch.
65827func (c *FirewallPoliciesPatchRuleCall) Priority(priority int64) *FirewallPoliciesPatchRuleCall {
65828	c.urlParams_.Set("priority", fmt.Sprint(priority))
65829	return c
65830}
65831
65832// RequestId sets the optional parameter "requestId": An optional
65833// request ID to identify requests. Specify a unique request ID so that
65834// if you must retry your request, the server will know to ignore the
65835// request if it has already been completed.
65836//
65837// For example, consider a situation where you make an initial request
65838// and the request times out. If you make the request again with the
65839// same request ID, the server can check if original operation with the
65840// same request ID was received, and if so, will ignore the second
65841// request. This prevents clients from accidentally creating duplicate
65842// commitments.
65843//
65844// The request ID must be a valid UUID with the exception that zero UUID
65845// is not supported (00000000-0000-0000-0000-000000000000).
65846func (c *FirewallPoliciesPatchRuleCall) RequestId(requestId string) *FirewallPoliciesPatchRuleCall {
65847	c.urlParams_.Set("requestId", requestId)
65848	return c
65849}
65850
65851// Fields allows partial responses to be retrieved. See
65852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65853// for more information.
65854func (c *FirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchRuleCall {
65855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65856	return c
65857}
65858
65859// Context sets the context to be used in this call's Do method. Any
65860// pending HTTP request will be aborted if the provided context is
65861// canceled.
65862func (c *FirewallPoliciesPatchRuleCall) Context(ctx context.Context) *FirewallPoliciesPatchRuleCall {
65863	c.ctx_ = ctx
65864	return c
65865}
65866
65867// Header returns an http.Header that can be modified by the caller to
65868// add HTTP headers to the request.
65869func (c *FirewallPoliciesPatchRuleCall) Header() http.Header {
65870	if c.header_ == nil {
65871		c.header_ = make(http.Header)
65872	}
65873	return c.header_
65874}
65875
65876func (c *FirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
65877	reqHeaders := make(http.Header)
65878	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65879	for k, v := range c.header_ {
65880		reqHeaders[k] = v
65881	}
65882	reqHeaders.Set("User-Agent", c.s.userAgent())
65883	var body io.Reader = nil
65884	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
65885	if err != nil {
65886		return nil, err
65887	}
65888	reqHeaders.Set("Content-Type", "application/json")
65889	c.urlParams_.Set("alt", alt)
65890	c.urlParams_.Set("prettyPrint", "false")
65891	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/patchRule")
65892	urls += "?" + c.urlParams_.Encode()
65893	req, err := http.NewRequest("POST", urls, body)
65894	if err != nil {
65895		return nil, err
65896	}
65897	req.Header = reqHeaders
65898	googleapi.Expand(req.URL, map[string]string{
65899		"firewallPolicy": c.firewallPolicy,
65900	})
65901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65902}
65903
65904// Do executes the "compute.firewallPolicies.patchRule" call.
65905// Exactly one of *Operation or error will be non-nil. Any non-2xx
65906// status code is an error. Response headers are in either
65907// *Operation.ServerResponse.Header or (if a response was returned at
65908// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65909// to check whether the returned error was because
65910// http.StatusNotModified was returned.
65911func (c *FirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65912	gensupport.SetOptions(c.urlParams_, opts...)
65913	res, err := c.doRequest("json")
65914	if res != nil && res.StatusCode == http.StatusNotModified {
65915		if res.Body != nil {
65916			res.Body.Close()
65917		}
65918		return nil, &googleapi.Error{
65919			Code:   res.StatusCode,
65920			Header: res.Header,
65921		}
65922	}
65923	if err != nil {
65924		return nil, err
65925	}
65926	defer googleapi.CloseBody(res)
65927	if err := googleapi.CheckResponse(res); err != nil {
65928		return nil, err
65929	}
65930	ret := &Operation{
65931		ServerResponse: googleapi.ServerResponse{
65932			Header:         res.Header,
65933			HTTPStatusCode: res.StatusCode,
65934		},
65935	}
65936	target := &ret
65937	if err := gensupport.DecodeResponse(target, res); err != nil {
65938		return nil, err
65939	}
65940	return ret, nil
65941	// {
65942	//   "description": "Patches a rule of the specified priority.",
65943	//   "httpMethod": "POST",
65944	//   "id": "compute.firewallPolicies.patchRule",
65945	//   "parameterOrder": [
65946	//     "firewallPolicy"
65947	//   ],
65948	//   "parameters": {
65949	//     "firewallPolicy": {
65950	//       "description": "Name of the firewall policy to update.",
65951	//       "location": "path",
65952	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65953	//       "required": true,
65954	//       "type": "string"
65955	//     },
65956	//     "priority": {
65957	//       "description": "The priority of the rule to patch.",
65958	//       "format": "int32",
65959	//       "location": "query",
65960	//       "type": "integer"
65961	//     },
65962	//     "requestId": {
65963	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65964	//       "location": "query",
65965	//       "type": "string"
65966	//     }
65967	//   },
65968	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
65969	//   "request": {
65970	//     "$ref": "FirewallPolicyRule"
65971	//   },
65972	//   "response": {
65973	//     "$ref": "Operation"
65974	//   },
65975	//   "scopes": [
65976	//     "https://www.googleapis.com/auth/cloud-platform",
65977	//     "https://www.googleapis.com/auth/compute"
65978	//   ]
65979	// }
65980
65981}
65982
65983// method id "compute.firewallPolicies.removeAssociation":
65984
65985type FirewallPoliciesRemoveAssociationCall struct {
65986	s              *Service
65987	firewallPolicy string
65988	urlParams_     gensupport.URLParams
65989	ctx_           context.Context
65990	header_        http.Header
65991}
65992
65993// RemoveAssociation: Removes an association for the specified firewall
65994// policy.
65995//
65996// - firewallPolicy: Name of the firewall policy to update.
65997func (r *FirewallPoliciesService) RemoveAssociation(firewallPolicy string) *FirewallPoliciesRemoveAssociationCall {
65998	c := &FirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65999	c.firewallPolicy = firewallPolicy
66000	return c
66001}
66002
66003// Name sets the optional parameter "name": Name for the attachment that
66004// will be removed.
66005func (c *FirewallPoliciesRemoveAssociationCall) Name(name string) *FirewallPoliciesRemoveAssociationCall {
66006	c.urlParams_.Set("name", name)
66007	return c
66008}
66009
66010// RequestId sets the optional parameter "requestId": An optional
66011// request ID to identify requests. Specify a unique request ID so that
66012// if you must retry your request, the server will know to ignore the
66013// request if it has already been completed.
66014//
66015// For example, consider a situation where you make an initial request
66016// and the request times out. If you make the request again with the
66017// same request ID, the server can check if original operation with the
66018// same request ID was received, and if so, will ignore the second
66019// request. This prevents clients from accidentally creating duplicate
66020// commitments.
66021//
66022// The request ID must be a valid UUID with the exception that zero UUID
66023// is not supported (00000000-0000-0000-0000-000000000000).
66024func (c *FirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *FirewallPoliciesRemoveAssociationCall {
66025	c.urlParams_.Set("requestId", requestId)
66026	return c
66027}
66028
66029// Fields allows partial responses to be retrieved. See
66030// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66031// for more information.
66032func (c *FirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveAssociationCall {
66033	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66034	return c
66035}
66036
66037// Context sets the context to be used in this call's Do method. Any
66038// pending HTTP request will be aborted if the provided context is
66039// canceled.
66040func (c *FirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *FirewallPoliciesRemoveAssociationCall {
66041	c.ctx_ = ctx
66042	return c
66043}
66044
66045// Header returns an http.Header that can be modified by the caller to
66046// add HTTP headers to the request.
66047func (c *FirewallPoliciesRemoveAssociationCall) Header() http.Header {
66048	if c.header_ == nil {
66049		c.header_ = make(http.Header)
66050	}
66051	return c.header_
66052}
66053
66054func (c *FirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
66055	reqHeaders := make(http.Header)
66056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66057	for k, v := range c.header_ {
66058		reqHeaders[k] = v
66059	}
66060	reqHeaders.Set("User-Agent", c.s.userAgent())
66061	var body io.Reader = nil
66062	c.urlParams_.Set("alt", alt)
66063	c.urlParams_.Set("prettyPrint", "false")
66064	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation")
66065	urls += "?" + c.urlParams_.Encode()
66066	req, err := http.NewRequest("POST", urls, body)
66067	if err != nil {
66068		return nil, err
66069	}
66070	req.Header = reqHeaders
66071	googleapi.Expand(req.URL, map[string]string{
66072		"firewallPolicy": c.firewallPolicy,
66073	})
66074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66075}
66076
66077// Do executes the "compute.firewallPolicies.removeAssociation" call.
66078// Exactly one of *Operation or error will be non-nil. Any non-2xx
66079// status code is an error. Response headers are in either
66080// *Operation.ServerResponse.Header or (if a response was returned at
66081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66082// to check whether the returned error was because
66083// http.StatusNotModified was returned.
66084func (c *FirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66085	gensupport.SetOptions(c.urlParams_, opts...)
66086	res, err := c.doRequest("json")
66087	if res != nil && res.StatusCode == http.StatusNotModified {
66088		if res.Body != nil {
66089			res.Body.Close()
66090		}
66091		return nil, &googleapi.Error{
66092			Code:   res.StatusCode,
66093			Header: res.Header,
66094		}
66095	}
66096	if err != nil {
66097		return nil, err
66098	}
66099	defer googleapi.CloseBody(res)
66100	if err := googleapi.CheckResponse(res); err != nil {
66101		return nil, err
66102	}
66103	ret := &Operation{
66104		ServerResponse: googleapi.ServerResponse{
66105			Header:         res.Header,
66106			HTTPStatusCode: res.StatusCode,
66107		},
66108	}
66109	target := &ret
66110	if err := gensupport.DecodeResponse(target, res); err != nil {
66111		return nil, err
66112	}
66113	return ret, nil
66114	// {
66115	//   "description": "Removes an association for the specified firewall policy.",
66116	//   "httpMethod": "POST",
66117	//   "id": "compute.firewallPolicies.removeAssociation",
66118	//   "parameterOrder": [
66119	//     "firewallPolicy"
66120	//   ],
66121	//   "parameters": {
66122	//     "firewallPolicy": {
66123	//       "description": "Name of the firewall policy to update.",
66124	//       "location": "path",
66125	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
66126	//       "required": true,
66127	//       "type": "string"
66128	//     },
66129	//     "name": {
66130	//       "description": "Name for the attachment that will be removed.",
66131	//       "location": "query",
66132	//       "type": "string"
66133	//     },
66134	//     "requestId": {
66135	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66136	//       "location": "query",
66137	//       "type": "string"
66138	//     }
66139	//   },
66140	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
66141	//   "response": {
66142	//     "$ref": "Operation"
66143	//   },
66144	//   "scopes": [
66145	//     "https://www.googleapis.com/auth/cloud-platform",
66146	//     "https://www.googleapis.com/auth/compute"
66147	//   ]
66148	// }
66149
66150}
66151
66152// method id "compute.firewallPolicies.removeRule":
66153
66154type FirewallPoliciesRemoveRuleCall struct {
66155	s              *Service
66156	firewallPolicy string
66157	urlParams_     gensupport.URLParams
66158	ctx_           context.Context
66159	header_        http.Header
66160}
66161
66162// RemoveRule: Deletes a rule of the specified priority.
66163//
66164// - firewallPolicy: Name of the firewall policy to update.
66165func (r *FirewallPoliciesService) RemoveRule(firewallPolicy string) *FirewallPoliciesRemoveRuleCall {
66166	c := &FirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66167	c.firewallPolicy = firewallPolicy
66168	return c
66169}
66170
66171// Priority sets the optional parameter "priority": The priority of the
66172// rule to remove from the firewall policy.
66173func (c *FirewallPoliciesRemoveRuleCall) Priority(priority int64) *FirewallPoliciesRemoveRuleCall {
66174	c.urlParams_.Set("priority", fmt.Sprint(priority))
66175	return c
66176}
66177
66178// RequestId sets the optional parameter "requestId": An optional
66179// request ID to identify requests. Specify a unique request ID so that
66180// if you must retry your request, the server will know to ignore the
66181// request if it has already been completed.
66182//
66183// For example, consider a situation where you make an initial request
66184// and the request times out. If you make the request again with the
66185// same request ID, the server can check if original operation with the
66186// same request ID was received, and if so, will ignore the second
66187// request. This prevents clients from accidentally creating duplicate
66188// commitments.
66189//
66190// The request ID must be a valid UUID with the exception that zero UUID
66191// is not supported (00000000-0000-0000-0000-000000000000).
66192func (c *FirewallPoliciesRemoveRuleCall) RequestId(requestId string) *FirewallPoliciesRemoveRuleCall {
66193	c.urlParams_.Set("requestId", requestId)
66194	return c
66195}
66196
66197// Fields allows partial responses to be retrieved. See
66198// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66199// for more information.
66200func (c *FirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveRuleCall {
66201	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66202	return c
66203}
66204
66205// Context sets the context to be used in this call's Do method. Any
66206// pending HTTP request will be aborted if the provided context is
66207// canceled.
66208func (c *FirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *FirewallPoliciesRemoveRuleCall {
66209	c.ctx_ = ctx
66210	return c
66211}
66212
66213// Header returns an http.Header that can be modified by the caller to
66214// add HTTP headers to the request.
66215func (c *FirewallPoliciesRemoveRuleCall) Header() http.Header {
66216	if c.header_ == nil {
66217		c.header_ = make(http.Header)
66218	}
66219	return c.header_
66220}
66221
66222func (c *FirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
66223	reqHeaders := make(http.Header)
66224	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66225	for k, v := range c.header_ {
66226		reqHeaders[k] = v
66227	}
66228	reqHeaders.Set("User-Agent", c.s.userAgent())
66229	var body io.Reader = nil
66230	c.urlParams_.Set("alt", alt)
66231	c.urlParams_.Set("prettyPrint", "false")
66232	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeRule")
66233	urls += "?" + c.urlParams_.Encode()
66234	req, err := http.NewRequest("POST", urls, body)
66235	if err != nil {
66236		return nil, err
66237	}
66238	req.Header = reqHeaders
66239	googleapi.Expand(req.URL, map[string]string{
66240		"firewallPolicy": c.firewallPolicy,
66241	})
66242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66243}
66244
66245// Do executes the "compute.firewallPolicies.removeRule" call.
66246// Exactly one of *Operation or error will be non-nil. Any non-2xx
66247// status code is an error. Response headers are in either
66248// *Operation.ServerResponse.Header or (if a response was returned at
66249// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66250// to check whether the returned error was because
66251// http.StatusNotModified was returned.
66252func (c *FirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66253	gensupport.SetOptions(c.urlParams_, opts...)
66254	res, err := c.doRequest("json")
66255	if res != nil && res.StatusCode == http.StatusNotModified {
66256		if res.Body != nil {
66257			res.Body.Close()
66258		}
66259		return nil, &googleapi.Error{
66260			Code:   res.StatusCode,
66261			Header: res.Header,
66262		}
66263	}
66264	if err != nil {
66265		return nil, err
66266	}
66267	defer googleapi.CloseBody(res)
66268	if err := googleapi.CheckResponse(res); err != nil {
66269		return nil, err
66270	}
66271	ret := &Operation{
66272		ServerResponse: googleapi.ServerResponse{
66273			Header:         res.Header,
66274			HTTPStatusCode: res.StatusCode,
66275		},
66276	}
66277	target := &ret
66278	if err := gensupport.DecodeResponse(target, res); err != nil {
66279		return nil, err
66280	}
66281	return ret, nil
66282	// {
66283	//   "description": "Deletes a rule of the specified priority.",
66284	//   "httpMethod": "POST",
66285	//   "id": "compute.firewallPolicies.removeRule",
66286	//   "parameterOrder": [
66287	//     "firewallPolicy"
66288	//   ],
66289	//   "parameters": {
66290	//     "firewallPolicy": {
66291	//       "description": "Name of the firewall policy to update.",
66292	//       "location": "path",
66293	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
66294	//       "required": true,
66295	//       "type": "string"
66296	//     },
66297	//     "priority": {
66298	//       "description": "The priority of the rule to remove from the firewall policy.",
66299	//       "format": "int32",
66300	//       "location": "query",
66301	//       "type": "integer"
66302	//     },
66303	//     "requestId": {
66304	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66305	//       "location": "query",
66306	//       "type": "string"
66307	//     }
66308	//   },
66309	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule",
66310	//   "response": {
66311	//     "$ref": "Operation"
66312	//   },
66313	//   "scopes": [
66314	//     "https://www.googleapis.com/auth/cloud-platform",
66315	//     "https://www.googleapis.com/auth/compute"
66316	//   ]
66317	// }
66318
66319}
66320
66321// method id "compute.firewallPolicies.setIamPolicy":
66322
66323type FirewallPoliciesSetIamPolicyCall struct {
66324	s                                  *Service
66325	resource                           string
66326	globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest
66327	urlParams_                         gensupport.URLParams
66328	ctx_                               context.Context
66329	header_                            http.Header
66330}
66331
66332// SetIamPolicy: Sets the access control policy on the specified
66333// resource. Replaces any existing policy.
66334//
66335// - resource: Name or id of the resource for this request.
66336func (r *FirewallPoliciesService) SetIamPolicy(resource string, globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest) *FirewallPoliciesSetIamPolicyCall {
66337	c := &FirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66338	c.resource = resource
66339	c.globalorganizationsetpolicyrequest = globalorganizationsetpolicyrequest
66340	return c
66341}
66342
66343// Fields allows partial responses to be retrieved. See
66344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66345// for more information.
66346func (c *FirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesSetIamPolicyCall {
66347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66348	return c
66349}
66350
66351// Context sets the context to be used in this call's Do method. Any
66352// pending HTTP request will be aborted if the provided context is
66353// canceled.
66354func (c *FirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesSetIamPolicyCall {
66355	c.ctx_ = ctx
66356	return c
66357}
66358
66359// Header returns an http.Header that can be modified by the caller to
66360// add HTTP headers to the request.
66361func (c *FirewallPoliciesSetIamPolicyCall) Header() http.Header {
66362	if c.header_ == nil {
66363		c.header_ = make(http.Header)
66364	}
66365	return c.header_
66366}
66367
66368func (c *FirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
66369	reqHeaders := make(http.Header)
66370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66371	for k, v := range c.header_ {
66372		reqHeaders[k] = v
66373	}
66374	reqHeaders.Set("User-Agent", c.s.userAgent())
66375	var body io.Reader = nil
66376	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalorganizationsetpolicyrequest)
66377	if err != nil {
66378		return nil, err
66379	}
66380	reqHeaders.Set("Content-Type", "application/json")
66381	c.urlParams_.Set("alt", alt)
66382	c.urlParams_.Set("prettyPrint", "false")
66383	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/setIamPolicy")
66384	urls += "?" + c.urlParams_.Encode()
66385	req, err := http.NewRequest("POST", urls, body)
66386	if err != nil {
66387		return nil, err
66388	}
66389	req.Header = reqHeaders
66390	googleapi.Expand(req.URL, map[string]string{
66391		"resource": c.resource,
66392	})
66393	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66394}
66395
66396// Do executes the "compute.firewallPolicies.setIamPolicy" call.
66397// Exactly one of *Policy or error will be non-nil. Any non-2xx status
66398// code is an error. Response headers are in either
66399// *Policy.ServerResponse.Header or (if a response was returned at all)
66400// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
66401// check whether the returned error was because http.StatusNotModified
66402// was returned.
66403func (c *FirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
66404	gensupport.SetOptions(c.urlParams_, opts...)
66405	res, err := c.doRequest("json")
66406	if res != nil && res.StatusCode == http.StatusNotModified {
66407		if res.Body != nil {
66408			res.Body.Close()
66409		}
66410		return nil, &googleapi.Error{
66411			Code:   res.StatusCode,
66412			Header: res.Header,
66413		}
66414	}
66415	if err != nil {
66416		return nil, err
66417	}
66418	defer googleapi.CloseBody(res)
66419	if err := googleapi.CheckResponse(res); err != nil {
66420		return nil, err
66421	}
66422	ret := &Policy{
66423		ServerResponse: googleapi.ServerResponse{
66424			Header:         res.Header,
66425			HTTPStatusCode: res.StatusCode,
66426		},
66427	}
66428	target := &ret
66429	if err := gensupport.DecodeResponse(target, res); err != nil {
66430		return nil, err
66431	}
66432	return ret, nil
66433	// {
66434	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
66435	//   "httpMethod": "POST",
66436	//   "id": "compute.firewallPolicies.setIamPolicy",
66437	//   "parameterOrder": [
66438	//     "resource"
66439	//   ],
66440	//   "parameters": {
66441	//     "resource": {
66442	//       "description": "Name or id of the resource for this request.",
66443	//       "location": "path",
66444	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
66445	//       "required": true,
66446	//       "type": "string"
66447	//     }
66448	//   },
66449	//   "path": "locations/global/firewallPolicies/{resource}/setIamPolicy",
66450	//   "request": {
66451	//     "$ref": "GlobalOrganizationSetPolicyRequest"
66452	//   },
66453	//   "response": {
66454	//     "$ref": "Policy"
66455	//   },
66456	//   "scopes": [
66457	//     "https://www.googleapis.com/auth/cloud-platform",
66458	//     "https://www.googleapis.com/auth/compute"
66459	//   ]
66460	// }
66461
66462}
66463
66464// method id "compute.firewallPolicies.testIamPermissions":
66465
66466type FirewallPoliciesTestIamPermissionsCall struct {
66467	s                      *Service
66468	resource               string
66469	testpermissionsrequest *TestPermissionsRequest
66470	urlParams_             gensupport.URLParams
66471	ctx_                   context.Context
66472	header_                http.Header
66473}
66474
66475// TestIamPermissions: Returns permissions that a caller has on the
66476// specified resource.
66477//
66478// - resource: Name or id of the resource for this request.
66479func (r *FirewallPoliciesService) TestIamPermissions(resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallPoliciesTestIamPermissionsCall {
66480	c := &FirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66481	c.resource = resource
66482	c.testpermissionsrequest = testpermissionsrequest
66483	return c
66484}
66485
66486// Fields allows partial responses to be retrieved. See
66487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66488// for more information.
66489func (c *FirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallPoliciesTestIamPermissionsCall {
66490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66491	return c
66492}
66493
66494// Context sets the context to be used in this call's Do method. Any
66495// pending HTTP request will be aborted if the provided context is
66496// canceled.
66497func (c *FirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *FirewallPoliciesTestIamPermissionsCall {
66498	c.ctx_ = ctx
66499	return c
66500}
66501
66502// Header returns an http.Header that can be modified by the caller to
66503// add HTTP headers to the request.
66504func (c *FirewallPoliciesTestIamPermissionsCall) Header() http.Header {
66505	if c.header_ == nil {
66506		c.header_ = make(http.Header)
66507	}
66508	return c.header_
66509}
66510
66511func (c *FirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
66512	reqHeaders := make(http.Header)
66513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66514	for k, v := range c.header_ {
66515		reqHeaders[k] = v
66516	}
66517	reqHeaders.Set("User-Agent", c.s.userAgent())
66518	var body io.Reader = nil
66519	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
66520	if err != nil {
66521		return nil, err
66522	}
66523	reqHeaders.Set("Content-Type", "application/json")
66524	c.urlParams_.Set("alt", alt)
66525	c.urlParams_.Set("prettyPrint", "false")
66526	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/testIamPermissions")
66527	urls += "?" + c.urlParams_.Encode()
66528	req, err := http.NewRequest("POST", urls, body)
66529	if err != nil {
66530		return nil, err
66531	}
66532	req.Header = reqHeaders
66533	googleapi.Expand(req.URL, map[string]string{
66534		"resource": c.resource,
66535	})
66536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66537}
66538
66539// Do executes the "compute.firewallPolicies.testIamPermissions" call.
66540// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
66541// non-2xx status code is an error. Response headers are in either
66542// *TestPermissionsResponse.ServerResponse.Header or (if a response was
66543// returned at all) in error.(*googleapi.Error).Header. Use
66544// googleapi.IsNotModified to check whether the returned error was
66545// because http.StatusNotModified was returned.
66546func (c *FirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
66547	gensupport.SetOptions(c.urlParams_, opts...)
66548	res, err := c.doRequest("json")
66549	if res != nil && res.StatusCode == http.StatusNotModified {
66550		if res.Body != nil {
66551			res.Body.Close()
66552		}
66553		return nil, &googleapi.Error{
66554			Code:   res.StatusCode,
66555			Header: res.Header,
66556		}
66557	}
66558	if err != nil {
66559		return nil, err
66560	}
66561	defer googleapi.CloseBody(res)
66562	if err := googleapi.CheckResponse(res); err != nil {
66563		return nil, err
66564	}
66565	ret := &TestPermissionsResponse{
66566		ServerResponse: googleapi.ServerResponse{
66567			Header:         res.Header,
66568			HTTPStatusCode: res.StatusCode,
66569		},
66570	}
66571	target := &ret
66572	if err := gensupport.DecodeResponse(target, res); err != nil {
66573		return nil, err
66574	}
66575	return ret, nil
66576	// {
66577	//   "description": "Returns permissions that a caller has on the specified resource.",
66578	//   "httpMethod": "POST",
66579	//   "id": "compute.firewallPolicies.testIamPermissions",
66580	//   "parameterOrder": [
66581	//     "resource"
66582	//   ],
66583	//   "parameters": {
66584	//     "resource": {
66585	//       "description": "Name or id of the resource for this request.",
66586	//       "location": "path",
66587	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
66588	//       "required": true,
66589	//       "type": "string"
66590	//     }
66591	//   },
66592	//   "path": "locations/global/firewallPolicies/{resource}/testIamPermissions",
66593	//   "request": {
66594	//     "$ref": "TestPermissionsRequest"
66595	//   },
66596	//   "response": {
66597	//     "$ref": "TestPermissionsResponse"
66598	//   },
66599	//   "scopes": [
66600	//     "https://www.googleapis.com/auth/cloud-platform",
66601	//     "https://www.googleapis.com/auth/compute",
66602	//     "https://www.googleapis.com/auth/compute.readonly"
66603	//   ]
66604	// }
66605
66606}
66607
66608// method id "compute.firewalls.delete":
66609
66610type FirewallsDeleteCall struct {
66611	s          *Service
66612	project    string
66613	firewall   string
66614	urlParams_ gensupport.URLParams
66615	ctx_       context.Context
66616	header_    http.Header
66617}
66618
66619// Delete: Deletes the specified firewall.
66620//
66621// - firewall: Name of the firewall rule to delete.
66622// - project: Project ID for this request.
66623// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
66624func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
66625	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66626	c.project = project
66627	c.firewall = firewall
66628	return c
66629}
66630
66631// RequestId sets the optional parameter "requestId": An optional
66632// request ID to identify requests. Specify a unique request ID so that
66633// if you must retry your request, the server will know to ignore the
66634// request if it has already been completed.
66635//
66636// For example, consider a situation where you make an initial request
66637// and the request times out. If you make the request again with the
66638// same request ID, the server can check if original operation with the
66639// same request ID was received, and if so, will ignore the second
66640// request. This prevents clients from accidentally creating duplicate
66641// commitments.
66642//
66643// The request ID must be a valid UUID with the exception that zero UUID
66644// is not supported (00000000-0000-0000-0000-000000000000).
66645func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
66646	c.urlParams_.Set("requestId", requestId)
66647	return c
66648}
66649
66650// Fields allows partial responses to be retrieved. See
66651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66652// for more information.
66653func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
66654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66655	return c
66656}
66657
66658// Context sets the context to be used in this call's Do method. Any
66659// pending HTTP request will be aborted if the provided context is
66660// canceled.
66661func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
66662	c.ctx_ = ctx
66663	return c
66664}
66665
66666// Header returns an http.Header that can be modified by the caller to
66667// add HTTP headers to the request.
66668func (c *FirewallsDeleteCall) Header() http.Header {
66669	if c.header_ == nil {
66670		c.header_ = make(http.Header)
66671	}
66672	return c.header_
66673}
66674
66675func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
66676	reqHeaders := make(http.Header)
66677	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66678	for k, v := range c.header_ {
66679		reqHeaders[k] = v
66680	}
66681	reqHeaders.Set("User-Agent", c.s.userAgent())
66682	var body io.Reader = nil
66683	c.urlParams_.Set("alt", alt)
66684	c.urlParams_.Set("prettyPrint", "false")
66685	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66686	urls += "?" + c.urlParams_.Encode()
66687	req, err := http.NewRequest("DELETE", urls, body)
66688	if err != nil {
66689		return nil, err
66690	}
66691	req.Header = reqHeaders
66692	googleapi.Expand(req.URL, map[string]string{
66693		"project":  c.project,
66694		"firewall": c.firewall,
66695	})
66696	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66697}
66698
66699// Do executes the "compute.firewalls.delete" call.
66700// Exactly one of *Operation or error will be non-nil. Any non-2xx
66701// status code is an error. Response headers are in either
66702// *Operation.ServerResponse.Header or (if a response was returned at
66703// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66704// to check whether the returned error was because
66705// http.StatusNotModified was returned.
66706func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66707	gensupport.SetOptions(c.urlParams_, opts...)
66708	res, err := c.doRequest("json")
66709	if res != nil && res.StatusCode == http.StatusNotModified {
66710		if res.Body != nil {
66711			res.Body.Close()
66712		}
66713		return nil, &googleapi.Error{
66714			Code:   res.StatusCode,
66715			Header: res.Header,
66716		}
66717	}
66718	if err != nil {
66719		return nil, err
66720	}
66721	defer googleapi.CloseBody(res)
66722	if err := googleapi.CheckResponse(res); err != nil {
66723		return nil, err
66724	}
66725	ret := &Operation{
66726		ServerResponse: googleapi.ServerResponse{
66727			Header:         res.Header,
66728			HTTPStatusCode: res.StatusCode,
66729		},
66730	}
66731	target := &ret
66732	if err := gensupport.DecodeResponse(target, res); err != nil {
66733		return nil, err
66734	}
66735	return ret, nil
66736	// {
66737	//   "description": "Deletes the specified firewall.",
66738	//   "httpMethod": "DELETE",
66739	//   "id": "compute.firewalls.delete",
66740	//   "parameterOrder": [
66741	//     "project",
66742	//     "firewall"
66743	//   ],
66744	//   "parameters": {
66745	//     "firewall": {
66746	//       "description": "Name of the firewall rule to delete.",
66747	//       "location": "path",
66748	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66749	//       "required": true,
66750	//       "type": "string"
66751	//     },
66752	//     "project": {
66753	//       "description": "Project ID for this request.",
66754	//       "location": "path",
66755	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66756	//       "required": true,
66757	//       "type": "string"
66758	//     },
66759	//     "requestId": {
66760	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66761	//       "location": "query",
66762	//       "type": "string"
66763	//     }
66764	//   },
66765	//   "path": "projects/{project}/global/firewalls/{firewall}",
66766	//   "response": {
66767	//     "$ref": "Operation"
66768	//   },
66769	//   "scopes": [
66770	//     "https://www.googleapis.com/auth/cloud-platform",
66771	//     "https://www.googleapis.com/auth/compute"
66772	//   ]
66773	// }
66774
66775}
66776
66777// method id "compute.firewalls.get":
66778
66779type FirewallsGetCall struct {
66780	s            *Service
66781	project      string
66782	firewall     string
66783	urlParams_   gensupport.URLParams
66784	ifNoneMatch_ string
66785	ctx_         context.Context
66786	header_      http.Header
66787}
66788
66789// Get: Returns the specified firewall.
66790//
66791// - firewall: Name of the firewall rule to return.
66792// - project: Project ID for this request.
66793// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
66794func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
66795	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66796	c.project = project
66797	c.firewall = firewall
66798	return c
66799}
66800
66801// Fields allows partial responses to be retrieved. See
66802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66803// for more information.
66804func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
66805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66806	return c
66807}
66808
66809// IfNoneMatch sets the optional parameter which makes the operation
66810// fail if the object's ETag matches the given value. This is useful for
66811// getting updates only after the object has changed since the last
66812// request. Use googleapi.IsNotModified to check whether the response
66813// error from Do is the result of In-None-Match.
66814func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
66815	c.ifNoneMatch_ = entityTag
66816	return c
66817}
66818
66819// Context sets the context to be used in this call's Do method. Any
66820// pending HTTP request will be aborted if the provided context is
66821// canceled.
66822func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
66823	c.ctx_ = ctx
66824	return c
66825}
66826
66827// Header returns an http.Header that can be modified by the caller to
66828// add HTTP headers to the request.
66829func (c *FirewallsGetCall) Header() http.Header {
66830	if c.header_ == nil {
66831		c.header_ = make(http.Header)
66832	}
66833	return c.header_
66834}
66835
66836func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
66837	reqHeaders := make(http.Header)
66838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66839	for k, v := range c.header_ {
66840		reqHeaders[k] = v
66841	}
66842	reqHeaders.Set("User-Agent", c.s.userAgent())
66843	if c.ifNoneMatch_ != "" {
66844		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66845	}
66846	var body io.Reader = nil
66847	c.urlParams_.Set("alt", alt)
66848	c.urlParams_.Set("prettyPrint", "false")
66849	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66850	urls += "?" + c.urlParams_.Encode()
66851	req, err := http.NewRequest("GET", urls, body)
66852	if err != nil {
66853		return nil, err
66854	}
66855	req.Header = reqHeaders
66856	googleapi.Expand(req.URL, map[string]string{
66857		"project":  c.project,
66858		"firewall": c.firewall,
66859	})
66860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66861}
66862
66863// Do executes the "compute.firewalls.get" call.
66864// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
66865// code is an error. Response headers are in either
66866// *Firewall.ServerResponse.Header or (if a response was returned at
66867// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66868// to check whether the returned error was because
66869// http.StatusNotModified was returned.
66870func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
66871	gensupport.SetOptions(c.urlParams_, opts...)
66872	res, err := c.doRequest("json")
66873	if res != nil && res.StatusCode == http.StatusNotModified {
66874		if res.Body != nil {
66875			res.Body.Close()
66876		}
66877		return nil, &googleapi.Error{
66878			Code:   res.StatusCode,
66879			Header: res.Header,
66880		}
66881	}
66882	if err != nil {
66883		return nil, err
66884	}
66885	defer googleapi.CloseBody(res)
66886	if err := googleapi.CheckResponse(res); err != nil {
66887		return nil, err
66888	}
66889	ret := &Firewall{
66890		ServerResponse: googleapi.ServerResponse{
66891			Header:         res.Header,
66892			HTTPStatusCode: res.StatusCode,
66893		},
66894	}
66895	target := &ret
66896	if err := gensupport.DecodeResponse(target, res); err != nil {
66897		return nil, err
66898	}
66899	return ret, nil
66900	// {
66901	//   "description": "Returns the specified firewall.",
66902	//   "httpMethod": "GET",
66903	//   "id": "compute.firewalls.get",
66904	//   "parameterOrder": [
66905	//     "project",
66906	//     "firewall"
66907	//   ],
66908	//   "parameters": {
66909	//     "firewall": {
66910	//       "description": "Name of the firewall rule to return.",
66911	//       "location": "path",
66912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66913	//       "required": true,
66914	//       "type": "string"
66915	//     },
66916	//     "project": {
66917	//       "description": "Project ID for this request.",
66918	//       "location": "path",
66919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66920	//       "required": true,
66921	//       "type": "string"
66922	//     }
66923	//   },
66924	//   "path": "projects/{project}/global/firewalls/{firewall}",
66925	//   "response": {
66926	//     "$ref": "Firewall"
66927	//   },
66928	//   "scopes": [
66929	//     "https://www.googleapis.com/auth/cloud-platform",
66930	//     "https://www.googleapis.com/auth/compute",
66931	//     "https://www.googleapis.com/auth/compute.readonly"
66932	//   ]
66933	// }
66934
66935}
66936
66937// method id "compute.firewalls.insert":
66938
66939type FirewallsInsertCall struct {
66940	s          *Service
66941	project    string
66942	firewall   *Firewall
66943	urlParams_ gensupport.URLParams
66944	ctx_       context.Context
66945	header_    http.Header
66946}
66947
66948// Insert: Creates a firewall rule in the specified project using the
66949// data included in the request.
66950//
66951// - project: Project ID for this request.
66952// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
66953func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
66954	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66955	c.project = project
66956	c.firewall = firewall
66957	return c
66958}
66959
66960// RequestId sets the optional parameter "requestId": An optional
66961// request ID to identify requests. Specify a unique request ID so that
66962// if you must retry your request, the server will know to ignore the
66963// request if it has already been completed.
66964//
66965// For example, consider a situation where you make an initial request
66966// and the request times out. If you make the request again with the
66967// same request ID, the server can check if original operation with the
66968// same request ID was received, and if so, will ignore the second
66969// request. This prevents clients from accidentally creating duplicate
66970// commitments.
66971//
66972// The request ID must be a valid UUID with the exception that zero UUID
66973// is not supported (00000000-0000-0000-0000-000000000000).
66974func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
66975	c.urlParams_.Set("requestId", requestId)
66976	return c
66977}
66978
66979// Fields allows partial responses to be retrieved. See
66980// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66981// for more information.
66982func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
66983	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66984	return c
66985}
66986
66987// Context sets the context to be used in this call's Do method. Any
66988// pending HTTP request will be aborted if the provided context is
66989// canceled.
66990func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
66991	c.ctx_ = ctx
66992	return c
66993}
66994
66995// Header returns an http.Header that can be modified by the caller to
66996// add HTTP headers to the request.
66997func (c *FirewallsInsertCall) Header() http.Header {
66998	if c.header_ == nil {
66999		c.header_ = make(http.Header)
67000	}
67001	return c.header_
67002}
67003
67004func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
67005	reqHeaders := make(http.Header)
67006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67007	for k, v := range c.header_ {
67008		reqHeaders[k] = v
67009	}
67010	reqHeaders.Set("User-Agent", c.s.userAgent())
67011	var body io.Reader = nil
67012	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
67013	if err != nil {
67014		return nil, err
67015	}
67016	reqHeaders.Set("Content-Type", "application/json")
67017	c.urlParams_.Set("alt", alt)
67018	c.urlParams_.Set("prettyPrint", "false")
67019	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
67020	urls += "?" + c.urlParams_.Encode()
67021	req, err := http.NewRequest("POST", urls, body)
67022	if err != nil {
67023		return nil, err
67024	}
67025	req.Header = reqHeaders
67026	googleapi.Expand(req.URL, map[string]string{
67027		"project": c.project,
67028	})
67029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67030}
67031
67032// Do executes the "compute.firewalls.insert" call.
67033// Exactly one of *Operation or error will be non-nil. Any non-2xx
67034// status code is an error. Response headers are in either
67035// *Operation.ServerResponse.Header or (if a response was returned at
67036// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67037// to check whether the returned error was because
67038// http.StatusNotModified was returned.
67039func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67040	gensupport.SetOptions(c.urlParams_, opts...)
67041	res, err := c.doRequest("json")
67042	if res != nil && res.StatusCode == http.StatusNotModified {
67043		if res.Body != nil {
67044			res.Body.Close()
67045		}
67046		return nil, &googleapi.Error{
67047			Code:   res.StatusCode,
67048			Header: res.Header,
67049		}
67050	}
67051	if err != nil {
67052		return nil, err
67053	}
67054	defer googleapi.CloseBody(res)
67055	if err := googleapi.CheckResponse(res); err != nil {
67056		return nil, err
67057	}
67058	ret := &Operation{
67059		ServerResponse: googleapi.ServerResponse{
67060			Header:         res.Header,
67061			HTTPStatusCode: res.StatusCode,
67062		},
67063	}
67064	target := &ret
67065	if err := gensupport.DecodeResponse(target, res); err != nil {
67066		return nil, err
67067	}
67068	return ret, nil
67069	// {
67070	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
67071	//   "httpMethod": "POST",
67072	//   "id": "compute.firewalls.insert",
67073	//   "parameterOrder": [
67074	//     "project"
67075	//   ],
67076	//   "parameters": {
67077	//     "project": {
67078	//       "description": "Project ID for this request.",
67079	//       "location": "path",
67080	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67081	//       "required": true,
67082	//       "type": "string"
67083	//     },
67084	//     "requestId": {
67085	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67086	//       "location": "query",
67087	//       "type": "string"
67088	//     }
67089	//   },
67090	//   "path": "projects/{project}/global/firewalls",
67091	//   "request": {
67092	//     "$ref": "Firewall"
67093	//   },
67094	//   "response": {
67095	//     "$ref": "Operation"
67096	//   },
67097	//   "scopes": [
67098	//     "https://www.googleapis.com/auth/cloud-platform",
67099	//     "https://www.googleapis.com/auth/compute"
67100	//   ]
67101	// }
67102
67103}
67104
67105// method id "compute.firewalls.list":
67106
67107type FirewallsListCall struct {
67108	s            *Service
67109	project      string
67110	urlParams_   gensupport.URLParams
67111	ifNoneMatch_ string
67112	ctx_         context.Context
67113	header_      http.Header
67114}
67115
67116// List: Retrieves the list of firewall rules available to the specified
67117// project.
67118//
67119// - project: Project ID for this request.
67120// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
67121func (r *FirewallsService) List(project string) *FirewallsListCall {
67122	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67123	c.project = project
67124	return c
67125}
67126
67127// Filter sets the optional parameter "filter": A filter expression that
67128// filters resources listed in the response. The expression must specify
67129// the field name, a comparison operator, and the value that you want to
67130// use for filtering. The value must be a string, a number, or a
67131// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67132// `<`.
67133//
67134// For example, if you are filtering Compute Engine instances, you can
67135// exclude instances named `example-instance` by specifying `name !=
67136// example-instance`.
67137//
67138// You can also filter nested fields. For example, you could specify
67139// `scheduling.automaticRestart = false` to include instances only if
67140// they are not scheduled for automatic restarts. You can use filtering
67141// on nested fields to filter based on resource labels.
67142//
67143// To filter on multiple expressions, provide each separate expression
67144// within parentheses. For example: ``` (scheduling.automaticRestart =
67145// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
67146// is an `AND` expression. However, you can include `AND` and `OR`
67147// expressions explicitly. For example: ``` (cpuPlatform = "Intel
67148// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
67149// (scheduling.automaticRestart = true) ```
67150func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
67151	c.urlParams_.Set("filter", filter)
67152	return c
67153}
67154
67155// MaxResults sets the optional parameter "maxResults": The maximum
67156// number of results per page that should be returned. If the number of
67157// available results is larger than `maxResults`, Compute Engine returns
67158// a `nextPageToken` that can be used to get the next page of results in
67159// subsequent list requests. Acceptable values are `0` to `500`,
67160// inclusive. (Default: `500`)
67161func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
67162	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67163	return c
67164}
67165
67166// OrderBy sets the optional parameter "orderBy": Sorts list results by
67167// a certain order. By default, results are returned in alphanumerical
67168// order based on the resource name.
67169//
67170// You can also sort results in descending order based on the creation
67171// timestamp using `orderBy="creationTimestamp desc". This sorts
67172// results based on the `creationTimestamp` field in reverse
67173// chronological order (newest result first). Use this to sort resources
67174// like operations so that the newest operation is returned
67175// first.
67176//
67177// Currently, only sorting by `name` or `creationTimestamp desc` is
67178// supported.
67179func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
67180	c.urlParams_.Set("orderBy", orderBy)
67181	return c
67182}
67183
67184// PageToken sets the optional parameter "pageToken": Specifies a page
67185// token to use. Set `pageToken` to the `nextPageToken` returned by a
67186// previous list request to get the next page of results.
67187func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
67188	c.urlParams_.Set("pageToken", pageToken)
67189	return c
67190}
67191
67192// ReturnPartialSuccess sets the optional parameter
67193// "returnPartialSuccess": Opt-in for partial success behavior which
67194// provides partial results in case of failure. The default value is
67195// false.
67196func (c *FirewallsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallsListCall {
67197	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
67198	return c
67199}
67200
67201// Fields allows partial responses to be retrieved. See
67202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67203// for more information.
67204func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
67205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67206	return c
67207}
67208
67209// IfNoneMatch sets the optional parameter which makes the operation
67210// fail if the object's ETag matches the given value. This is useful for
67211// getting updates only after the object has changed since the last
67212// request. Use googleapi.IsNotModified to check whether the response
67213// error from Do is the result of In-None-Match.
67214func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
67215	c.ifNoneMatch_ = entityTag
67216	return c
67217}
67218
67219// Context sets the context to be used in this call's Do method. Any
67220// pending HTTP request will be aborted if the provided context is
67221// canceled.
67222func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
67223	c.ctx_ = ctx
67224	return c
67225}
67226
67227// Header returns an http.Header that can be modified by the caller to
67228// add HTTP headers to the request.
67229func (c *FirewallsListCall) Header() http.Header {
67230	if c.header_ == nil {
67231		c.header_ = make(http.Header)
67232	}
67233	return c.header_
67234}
67235
67236func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
67237	reqHeaders := make(http.Header)
67238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67239	for k, v := range c.header_ {
67240		reqHeaders[k] = v
67241	}
67242	reqHeaders.Set("User-Agent", c.s.userAgent())
67243	if c.ifNoneMatch_ != "" {
67244		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67245	}
67246	var body io.Reader = nil
67247	c.urlParams_.Set("alt", alt)
67248	c.urlParams_.Set("prettyPrint", "false")
67249	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
67250	urls += "?" + c.urlParams_.Encode()
67251	req, err := http.NewRequest("GET", urls, body)
67252	if err != nil {
67253		return nil, err
67254	}
67255	req.Header = reqHeaders
67256	googleapi.Expand(req.URL, map[string]string{
67257		"project": c.project,
67258	})
67259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67260}
67261
67262// Do executes the "compute.firewalls.list" call.
67263// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
67264// status code is an error. Response headers are in either
67265// *FirewallList.ServerResponse.Header or (if a response was returned at
67266// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67267// to check whether the returned error was because
67268// http.StatusNotModified was returned.
67269func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
67270	gensupport.SetOptions(c.urlParams_, opts...)
67271	res, err := c.doRequest("json")
67272	if res != nil && res.StatusCode == http.StatusNotModified {
67273		if res.Body != nil {
67274			res.Body.Close()
67275		}
67276		return nil, &googleapi.Error{
67277			Code:   res.StatusCode,
67278			Header: res.Header,
67279		}
67280	}
67281	if err != nil {
67282		return nil, err
67283	}
67284	defer googleapi.CloseBody(res)
67285	if err := googleapi.CheckResponse(res); err != nil {
67286		return nil, err
67287	}
67288	ret := &FirewallList{
67289		ServerResponse: googleapi.ServerResponse{
67290			Header:         res.Header,
67291			HTTPStatusCode: res.StatusCode,
67292		},
67293	}
67294	target := &ret
67295	if err := gensupport.DecodeResponse(target, res); err != nil {
67296		return nil, err
67297	}
67298	return ret, nil
67299	// {
67300	//   "description": "Retrieves the list of firewall rules available to the specified project.",
67301	//   "httpMethod": "GET",
67302	//   "id": "compute.firewalls.list",
67303	//   "parameterOrder": [
67304	//     "project"
67305	//   ],
67306	//   "parameters": {
67307	//     "filter": {
67308	//       "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) ```",
67309	//       "location": "query",
67310	//       "type": "string"
67311	//     },
67312	//     "maxResults": {
67313	//       "default": "500",
67314	//       "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`)",
67315	//       "format": "uint32",
67316	//       "location": "query",
67317	//       "minimum": "0",
67318	//       "type": "integer"
67319	//     },
67320	//     "orderBy": {
67321	//       "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.",
67322	//       "location": "query",
67323	//       "type": "string"
67324	//     },
67325	//     "pageToken": {
67326	//       "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.",
67327	//       "location": "query",
67328	//       "type": "string"
67329	//     },
67330	//     "project": {
67331	//       "description": "Project ID for this request.",
67332	//       "location": "path",
67333	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67334	//       "required": true,
67335	//       "type": "string"
67336	//     },
67337	//     "returnPartialSuccess": {
67338	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
67339	//       "location": "query",
67340	//       "type": "boolean"
67341	//     }
67342	//   },
67343	//   "path": "projects/{project}/global/firewalls",
67344	//   "response": {
67345	//     "$ref": "FirewallList"
67346	//   },
67347	//   "scopes": [
67348	//     "https://www.googleapis.com/auth/cloud-platform",
67349	//     "https://www.googleapis.com/auth/compute",
67350	//     "https://www.googleapis.com/auth/compute.readonly"
67351	//   ]
67352	// }
67353
67354}
67355
67356// Pages invokes f for each page of results.
67357// A non-nil error returned from f will halt the iteration.
67358// The provided context supersedes any context provided to the Context method.
67359func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
67360	c.ctx_ = ctx
67361	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67362	for {
67363		x, err := c.Do()
67364		if err != nil {
67365			return err
67366		}
67367		if err := f(x); err != nil {
67368			return err
67369		}
67370		if x.NextPageToken == "" {
67371			return nil
67372		}
67373		c.PageToken(x.NextPageToken)
67374	}
67375}
67376
67377// method id "compute.firewalls.patch":
67378
67379type FirewallsPatchCall struct {
67380	s          *Service
67381	project    string
67382	firewall   string
67383	firewall2  *Firewall
67384	urlParams_ gensupport.URLParams
67385	ctx_       context.Context
67386	header_    http.Header
67387}
67388
67389// Patch: Updates the specified firewall rule with the data included in
67390// the request. This method supports PATCH semantics and uses the JSON
67391// merge patch format and processing rules.
67392//
67393// - firewall: Name of the firewall rule to patch.
67394// - project: Project ID for this request.
67395// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
67396func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
67397	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67398	c.project = project
67399	c.firewall = firewall
67400	c.firewall2 = firewall2
67401	return c
67402}
67403
67404// RequestId sets the optional parameter "requestId": An optional
67405// request ID to identify requests. Specify a unique request ID so that
67406// if you must retry your request, the server will know to ignore the
67407// request if it has already been completed.
67408//
67409// For example, consider a situation where you make an initial request
67410// and the request times out. If you make the request again with the
67411// same request ID, the server can check if original operation with the
67412// same request ID was received, and if so, will ignore the second
67413// request. This prevents clients from accidentally creating duplicate
67414// commitments.
67415//
67416// The request ID must be a valid UUID with the exception that zero UUID
67417// is not supported (00000000-0000-0000-0000-000000000000).
67418func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
67419	c.urlParams_.Set("requestId", requestId)
67420	return c
67421}
67422
67423// Fields allows partial responses to be retrieved. See
67424// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67425// for more information.
67426func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
67427	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67428	return c
67429}
67430
67431// Context sets the context to be used in this call's Do method. Any
67432// pending HTTP request will be aborted if the provided context is
67433// canceled.
67434func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
67435	c.ctx_ = ctx
67436	return c
67437}
67438
67439// Header returns an http.Header that can be modified by the caller to
67440// add HTTP headers to the request.
67441func (c *FirewallsPatchCall) Header() http.Header {
67442	if c.header_ == nil {
67443		c.header_ = make(http.Header)
67444	}
67445	return c.header_
67446}
67447
67448func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
67449	reqHeaders := make(http.Header)
67450	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67451	for k, v := range c.header_ {
67452		reqHeaders[k] = v
67453	}
67454	reqHeaders.Set("User-Agent", c.s.userAgent())
67455	var body io.Reader = nil
67456	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
67457	if err != nil {
67458		return nil, err
67459	}
67460	reqHeaders.Set("Content-Type", "application/json")
67461	c.urlParams_.Set("alt", alt)
67462	c.urlParams_.Set("prettyPrint", "false")
67463	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
67464	urls += "?" + c.urlParams_.Encode()
67465	req, err := http.NewRequest("PATCH", urls, body)
67466	if err != nil {
67467		return nil, err
67468	}
67469	req.Header = reqHeaders
67470	googleapi.Expand(req.URL, map[string]string{
67471		"project":  c.project,
67472		"firewall": c.firewall,
67473	})
67474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67475}
67476
67477// Do executes the "compute.firewalls.patch" call.
67478// Exactly one of *Operation or error will be non-nil. Any non-2xx
67479// status code is an error. Response headers are in either
67480// *Operation.ServerResponse.Header or (if a response was returned at
67481// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67482// to check whether the returned error was because
67483// http.StatusNotModified was returned.
67484func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67485	gensupport.SetOptions(c.urlParams_, opts...)
67486	res, err := c.doRequest("json")
67487	if res != nil && res.StatusCode == http.StatusNotModified {
67488		if res.Body != nil {
67489			res.Body.Close()
67490		}
67491		return nil, &googleapi.Error{
67492			Code:   res.StatusCode,
67493			Header: res.Header,
67494		}
67495	}
67496	if err != nil {
67497		return nil, err
67498	}
67499	defer googleapi.CloseBody(res)
67500	if err := googleapi.CheckResponse(res); err != nil {
67501		return nil, err
67502	}
67503	ret := &Operation{
67504		ServerResponse: googleapi.ServerResponse{
67505			Header:         res.Header,
67506			HTTPStatusCode: res.StatusCode,
67507		},
67508	}
67509	target := &ret
67510	if err := gensupport.DecodeResponse(target, res); err != nil {
67511		return nil, err
67512	}
67513	return ret, nil
67514	// {
67515	//   "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.",
67516	//   "httpMethod": "PATCH",
67517	//   "id": "compute.firewalls.patch",
67518	//   "parameterOrder": [
67519	//     "project",
67520	//     "firewall"
67521	//   ],
67522	//   "parameters": {
67523	//     "firewall": {
67524	//       "description": "Name of the firewall rule to patch.",
67525	//       "location": "path",
67526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67527	//       "required": true,
67528	//       "type": "string"
67529	//     },
67530	//     "project": {
67531	//       "description": "Project ID for this request.",
67532	//       "location": "path",
67533	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67534	//       "required": true,
67535	//       "type": "string"
67536	//     },
67537	//     "requestId": {
67538	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67539	//       "location": "query",
67540	//       "type": "string"
67541	//     }
67542	//   },
67543	//   "path": "projects/{project}/global/firewalls/{firewall}",
67544	//   "request": {
67545	//     "$ref": "Firewall"
67546	//   },
67547	//   "response": {
67548	//     "$ref": "Operation"
67549	//   },
67550	//   "scopes": [
67551	//     "https://www.googleapis.com/auth/cloud-platform",
67552	//     "https://www.googleapis.com/auth/compute"
67553	//   ]
67554	// }
67555
67556}
67557
67558// method id "compute.firewalls.testIamPermissions":
67559
67560type FirewallsTestIamPermissionsCall struct {
67561	s                      *Service
67562	project                string
67563	resource               string
67564	testpermissionsrequest *TestPermissionsRequest
67565	urlParams_             gensupport.URLParams
67566	ctx_                   context.Context
67567	header_                http.Header
67568}
67569
67570// TestIamPermissions: Returns permissions that a caller has on the
67571// specified resource.
67572//
67573// - project: Project ID for this request.
67574// - resource: Name or id of the resource for this request.
67575func (r *FirewallsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallsTestIamPermissionsCall {
67576	c := &FirewallsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67577	c.project = project
67578	c.resource = resource
67579	c.testpermissionsrequest = testpermissionsrequest
67580	return c
67581}
67582
67583// Fields allows partial responses to be retrieved. See
67584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67585// for more information.
67586func (c *FirewallsTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallsTestIamPermissionsCall {
67587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67588	return c
67589}
67590
67591// Context sets the context to be used in this call's Do method. Any
67592// pending HTTP request will be aborted if the provided context is
67593// canceled.
67594func (c *FirewallsTestIamPermissionsCall) Context(ctx context.Context) *FirewallsTestIamPermissionsCall {
67595	c.ctx_ = ctx
67596	return c
67597}
67598
67599// Header returns an http.Header that can be modified by the caller to
67600// add HTTP headers to the request.
67601func (c *FirewallsTestIamPermissionsCall) Header() http.Header {
67602	if c.header_ == nil {
67603		c.header_ = make(http.Header)
67604	}
67605	return c.header_
67606}
67607
67608func (c *FirewallsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
67609	reqHeaders := make(http.Header)
67610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67611	for k, v := range c.header_ {
67612		reqHeaders[k] = v
67613	}
67614	reqHeaders.Set("User-Agent", c.s.userAgent())
67615	var body io.Reader = nil
67616	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
67617	if err != nil {
67618		return nil, err
67619	}
67620	reqHeaders.Set("Content-Type", "application/json")
67621	c.urlParams_.Set("alt", alt)
67622	c.urlParams_.Set("prettyPrint", "false")
67623	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{resource}/testIamPermissions")
67624	urls += "?" + c.urlParams_.Encode()
67625	req, err := http.NewRequest("POST", urls, body)
67626	if err != nil {
67627		return nil, err
67628	}
67629	req.Header = reqHeaders
67630	googleapi.Expand(req.URL, map[string]string{
67631		"project":  c.project,
67632		"resource": c.resource,
67633	})
67634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67635}
67636
67637// Do executes the "compute.firewalls.testIamPermissions" call.
67638// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
67639// non-2xx status code is an error. Response headers are in either
67640// *TestPermissionsResponse.ServerResponse.Header or (if a response was
67641// returned at all) in error.(*googleapi.Error).Header. Use
67642// googleapi.IsNotModified to check whether the returned error was
67643// because http.StatusNotModified was returned.
67644func (c *FirewallsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
67645	gensupport.SetOptions(c.urlParams_, opts...)
67646	res, err := c.doRequest("json")
67647	if res != nil && res.StatusCode == http.StatusNotModified {
67648		if res.Body != nil {
67649			res.Body.Close()
67650		}
67651		return nil, &googleapi.Error{
67652			Code:   res.StatusCode,
67653			Header: res.Header,
67654		}
67655	}
67656	if err != nil {
67657		return nil, err
67658	}
67659	defer googleapi.CloseBody(res)
67660	if err := googleapi.CheckResponse(res); err != nil {
67661		return nil, err
67662	}
67663	ret := &TestPermissionsResponse{
67664		ServerResponse: googleapi.ServerResponse{
67665			Header:         res.Header,
67666			HTTPStatusCode: res.StatusCode,
67667		},
67668	}
67669	target := &ret
67670	if err := gensupport.DecodeResponse(target, res); err != nil {
67671		return nil, err
67672	}
67673	return ret, nil
67674	// {
67675	//   "description": "Returns permissions that a caller has on the specified resource.",
67676	//   "httpMethod": "POST",
67677	//   "id": "compute.firewalls.testIamPermissions",
67678	//   "parameterOrder": [
67679	//     "project",
67680	//     "resource"
67681	//   ],
67682	//   "parameters": {
67683	//     "project": {
67684	//       "description": "Project ID for this request.",
67685	//       "location": "path",
67686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67687	//       "required": true,
67688	//       "type": "string"
67689	//     },
67690	//     "resource": {
67691	//       "description": "Name or id of the resource for this request.",
67692	//       "location": "path",
67693	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67694	//       "required": true,
67695	//       "type": "string"
67696	//     }
67697	//   },
67698	//   "path": "projects/{project}/global/firewalls/{resource}/testIamPermissions",
67699	//   "request": {
67700	//     "$ref": "TestPermissionsRequest"
67701	//   },
67702	//   "response": {
67703	//     "$ref": "TestPermissionsResponse"
67704	//   },
67705	//   "scopes": [
67706	//     "https://www.googleapis.com/auth/cloud-platform",
67707	//     "https://www.googleapis.com/auth/compute",
67708	//     "https://www.googleapis.com/auth/compute.readonly"
67709	//   ]
67710	// }
67711
67712}
67713
67714// method id "compute.firewalls.update":
67715
67716type FirewallsUpdateCall struct {
67717	s          *Service
67718	project    string
67719	firewall   string
67720	firewall2  *Firewall
67721	urlParams_ gensupport.URLParams
67722	ctx_       context.Context
67723	header_    http.Header
67724}
67725
67726// Update: Updates the specified firewall rule with the data included in
67727// the request. Note that all fields will be updated if using PUT, even
67728// fields that are not specified. To update individual fields, please
67729// use PATCH instead.
67730//
67731// - firewall: Name of the firewall rule to update.
67732// - project: Project ID for this request.
67733// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
67734func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
67735	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67736	c.project = project
67737	c.firewall = firewall
67738	c.firewall2 = firewall2
67739	return c
67740}
67741
67742// RequestId sets the optional parameter "requestId": An optional
67743// request ID to identify requests. Specify a unique request ID so that
67744// if you must retry your request, the server will know to ignore the
67745// request if it has already been completed.
67746//
67747// For example, consider a situation where you make an initial request
67748// and the request times out. If you make the request again with the
67749// same request ID, the server can check if original operation with the
67750// same request ID was received, and if so, will ignore the second
67751// request. This prevents clients from accidentally creating duplicate
67752// commitments.
67753//
67754// The request ID must be a valid UUID with the exception that zero UUID
67755// is not supported (00000000-0000-0000-0000-000000000000).
67756func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
67757	c.urlParams_.Set("requestId", requestId)
67758	return c
67759}
67760
67761// Fields allows partial responses to be retrieved. See
67762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67763// for more information.
67764func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
67765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67766	return c
67767}
67768
67769// Context sets the context to be used in this call's Do method. Any
67770// pending HTTP request will be aborted if the provided context is
67771// canceled.
67772func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
67773	c.ctx_ = ctx
67774	return c
67775}
67776
67777// Header returns an http.Header that can be modified by the caller to
67778// add HTTP headers to the request.
67779func (c *FirewallsUpdateCall) Header() http.Header {
67780	if c.header_ == nil {
67781		c.header_ = make(http.Header)
67782	}
67783	return c.header_
67784}
67785
67786func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
67787	reqHeaders := make(http.Header)
67788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67789	for k, v := range c.header_ {
67790		reqHeaders[k] = v
67791	}
67792	reqHeaders.Set("User-Agent", c.s.userAgent())
67793	var body io.Reader = nil
67794	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
67795	if err != nil {
67796		return nil, err
67797	}
67798	reqHeaders.Set("Content-Type", "application/json")
67799	c.urlParams_.Set("alt", alt)
67800	c.urlParams_.Set("prettyPrint", "false")
67801	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
67802	urls += "?" + c.urlParams_.Encode()
67803	req, err := http.NewRequest("PUT", urls, body)
67804	if err != nil {
67805		return nil, err
67806	}
67807	req.Header = reqHeaders
67808	googleapi.Expand(req.URL, map[string]string{
67809		"project":  c.project,
67810		"firewall": c.firewall,
67811	})
67812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67813}
67814
67815// Do executes the "compute.firewalls.update" call.
67816// Exactly one of *Operation or error will be non-nil. Any non-2xx
67817// status code is an error. Response headers are in either
67818// *Operation.ServerResponse.Header or (if a response was returned at
67819// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67820// to check whether the returned error was because
67821// http.StatusNotModified was returned.
67822func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67823	gensupport.SetOptions(c.urlParams_, opts...)
67824	res, err := c.doRequest("json")
67825	if res != nil && res.StatusCode == http.StatusNotModified {
67826		if res.Body != nil {
67827			res.Body.Close()
67828		}
67829		return nil, &googleapi.Error{
67830			Code:   res.StatusCode,
67831			Header: res.Header,
67832		}
67833	}
67834	if err != nil {
67835		return nil, err
67836	}
67837	defer googleapi.CloseBody(res)
67838	if err := googleapi.CheckResponse(res); err != nil {
67839		return nil, err
67840	}
67841	ret := &Operation{
67842		ServerResponse: googleapi.ServerResponse{
67843			Header:         res.Header,
67844			HTTPStatusCode: res.StatusCode,
67845		},
67846	}
67847	target := &ret
67848	if err := gensupport.DecodeResponse(target, res); err != nil {
67849		return nil, err
67850	}
67851	return ret, nil
67852	// {
67853	//   "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.",
67854	//   "httpMethod": "PUT",
67855	//   "id": "compute.firewalls.update",
67856	//   "parameterOrder": [
67857	//     "project",
67858	//     "firewall"
67859	//   ],
67860	//   "parameters": {
67861	//     "firewall": {
67862	//       "description": "Name of the firewall rule to update.",
67863	//       "location": "path",
67864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67865	//       "required": true,
67866	//       "type": "string"
67867	//     },
67868	//     "project": {
67869	//       "description": "Project ID for this request.",
67870	//       "location": "path",
67871	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67872	//       "required": true,
67873	//       "type": "string"
67874	//     },
67875	//     "requestId": {
67876	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67877	//       "location": "query",
67878	//       "type": "string"
67879	//     }
67880	//   },
67881	//   "path": "projects/{project}/global/firewalls/{firewall}",
67882	//   "request": {
67883	//     "$ref": "Firewall"
67884	//   },
67885	//   "response": {
67886	//     "$ref": "Operation"
67887	//   },
67888	//   "scopes": [
67889	//     "https://www.googleapis.com/auth/cloud-platform",
67890	//     "https://www.googleapis.com/auth/compute"
67891	//   ]
67892	// }
67893
67894}
67895
67896// method id "compute.forwardingRules.aggregatedList":
67897
67898type ForwardingRulesAggregatedListCall struct {
67899	s            *Service
67900	project      string
67901	urlParams_   gensupport.URLParams
67902	ifNoneMatch_ string
67903	ctx_         context.Context
67904	header_      http.Header
67905}
67906
67907// AggregatedList: Retrieves an aggregated list of forwarding rules.
67908//
67909// - project: Project ID for this request.
67910// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
67911func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
67912	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67913	c.project = project
67914	return c
67915}
67916
67917// Filter sets the optional parameter "filter": A filter expression that
67918// filters resources listed in the response. The expression must specify
67919// the field name, a comparison operator, and the value that you want to
67920// use for filtering. The value must be a string, a number, or a
67921// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67922// `<`.
67923//
67924// For example, if you are filtering Compute Engine instances, you can
67925// exclude instances named `example-instance` by specifying `name !=
67926// example-instance`.
67927//
67928// You can also filter nested fields. For example, you could specify
67929// `scheduling.automaticRestart = false` to include instances only if
67930// they are not scheduled for automatic restarts. You can use filtering
67931// on nested fields to filter based on resource labels.
67932//
67933// To filter on multiple expressions, provide each separate expression
67934// within parentheses. For example: ``` (scheduling.automaticRestart =
67935// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
67936// is an `AND` expression. However, you can include `AND` and `OR`
67937// expressions explicitly. For example: ``` (cpuPlatform = "Intel
67938// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
67939// (scheduling.automaticRestart = true) ```
67940func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
67941	c.urlParams_.Set("filter", filter)
67942	return c
67943}
67944
67945// IncludeAllScopes sets the optional parameter "includeAllScopes":
67946// Indicates whether every visible scope for each scope type (zone,
67947// region, global) should be included in the response. For new resource
67948// types added after this field, the flag has no effect as new resource
67949// types will always include every visible scope for each scope type in
67950// response. For resource types which predate this field, if this flag
67951// is omitted or false, only scopes of the scope types where the
67952// resource type is expected to be found will be included.
67953func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
67954	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
67955	return c
67956}
67957
67958// MaxResults sets the optional parameter "maxResults": The maximum
67959// number of results per page that should be returned. If the number of
67960// available results is larger than `maxResults`, Compute Engine returns
67961// a `nextPageToken` that can be used to get the next page of results in
67962// subsequent list requests. Acceptable values are `0` to `500`,
67963// inclusive. (Default: `500`)
67964func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
67965	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67966	return c
67967}
67968
67969// OrderBy sets the optional parameter "orderBy": Sorts list results by
67970// a certain order. By default, results are returned in alphanumerical
67971// order based on the resource name.
67972//
67973// You can also sort results in descending order based on the creation
67974// timestamp using `orderBy="creationTimestamp desc". This sorts
67975// results based on the `creationTimestamp` field in reverse
67976// chronological order (newest result first). Use this to sort resources
67977// like operations so that the newest operation is returned
67978// first.
67979//
67980// Currently, only sorting by `name` or `creationTimestamp desc` is
67981// supported.
67982func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
67983	c.urlParams_.Set("orderBy", orderBy)
67984	return c
67985}
67986
67987// PageToken sets the optional parameter "pageToken": Specifies a page
67988// token to use. Set `pageToken` to the `nextPageToken` returned by a
67989// previous list request to get the next page of results.
67990func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
67991	c.urlParams_.Set("pageToken", pageToken)
67992	return c
67993}
67994
67995// ReturnPartialSuccess sets the optional parameter
67996// "returnPartialSuccess": Opt-in for partial success behavior which
67997// provides partial results in case of failure. The default value is
67998// false.
67999func (c *ForwardingRulesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesAggregatedListCall {
68000	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
68001	return c
68002}
68003
68004// Fields allows partial responses to be retrieved. See
68005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68006// for more information.
68007func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
68008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68009	return c
68010}
68011
68012// IfNoneMatch sets the optional parameter which makes the operation
68013// fail if the object's ETag matches the given value. This is useful for
68014// getting updates only after the object has changed since the last
68015// request. Use googleapi.IsNotModified to check whether the response
68016// error from Do is the result of In-None-Match.
68017func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
68018	c.ifNoneMatch_ = entityTag
68019	return c
68020}
68021
68022// Context sets the context to be used in this call's Do method. Any
68023// pending HTTP request will be aborted if the provided context is
68024// canceled.
68025func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
68026	c.ctx_ = ctx
68027	return c
68028}
68029
68030// Header returns an http.Header that can be modified by the caller to
68031// add HTTP headers to the request.
68032func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
68033	if c.header_ == nil {
68034		c.header_ = make(http.Header)
68035	}
68036	return c.header_
68037}
68038
68039func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
68040	reqHeaders := make(http.Header)
68041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68042	for k, v := range c.header_ {
68043		reqHeaders[k] = v
68044	}
68045	reqHeaders.Set("User-Agent", c.s.userAgent())
68046	if c.ifNoneMatch_ != "" {
68047		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68048	}
68049	var body io.Reader = nil
68050	c.urlParams_.Set("alt", alt)
68051	c.urlParams_.Set("prettyPrint", "false")
68052	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/forwardingRules")
68053	urls += "?" + c.urlParams_.Encode()
68054	req, err := http.NewRequest("GET", urls, body)
68055	if err != nil {
68056		return nil, err
68057	}
68058	req.Header = reqHeaders
68059	googleapi.Expand(req.URL, map[string]string{
68060		"project": c.project,
68061	})
68062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68063}
68064
68065// Do executes the "compute.forwardingRules.aggregatedList" call.
68066// Exactly one of *ForwardingRuleAggregatedList or error will be
68067// non-nil. Any non-2xx status code is an error. Response headers are in
68068// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
68069// response was returned at all) in error.(*googleapi.Error).Header. Use
68070// googleapi.IsNotModified to check whether the returned error was
68071// because http.StatusNotModified was returned.
68072func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
68073	gensupport.SetOptions(c.urlParams_, opts...)
68074	res, err := c.doRequest("json")
68075	if res != nil && res.StatusCode == http.StatusNotModified {
68076		if res.Body != nil {
68077			res.Body.Close()
68078		}
68079		return nil, &googleapi.Error{
68080			Code:   res.StatusCode,
68081			Header: res.Header,
68082		}
68083	}
68084	if err != nil {
68085		return nil, err
68086	}
68087	defer googleapi.CloseBody(res)
68088	if err := googleapi.CheckResponse(res); err != nil {
68089		return nil, err
68090	}
68091	ret := &ForwardingRuleAggregatedList{
68092		ServerResponse: googleapi.ServerResponse{
68093			Header:         res.Header,
68094			HTTPStatusCode: res.StatusCode,
68095		},
68096	}
68097	target := &ret
68098	if err := gensupport.DecodeResponse(target, res); err != nil {
68099		return nil, err
68100	}
68101	return ret, nil
68102	// {
68103	//   "description": "Retrieves an aggregated list of forwarding rules.",
68104	//   "httpMethod": "GET",
68105	//   "id": "compute.forwardingRules.aggregatedList",
68106	//   "parameterOrder": [
68107	//     "project"
68108	//   ],
68109	//   "parameters": {
68110	//     "filter": {
68111	//       "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) ```",
68112	//       "location": "query",
68113	//       "type": "string"
68114	//     },
68115	//     "includeAllScopes": {
68116	//       "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.",
68117	//       "location": "query",
68118	//       "type": "boolean"
68119	//     },
68120	//     "maxResults": {
68121	//       "default": "500",
68122	//       "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`)",
68123	//       "format": "uint32",
68124	//       "location": "query",
68125	//       "minimum": "0",
68126	//       "type": "integer"
68127	//     },
68128	//     "orderBy": {
68129	//       "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.",
68130	//       "location": "query",
68131	//       "type": "string"
68132	//     },
68133	//     "pageToken": {
68134	//       "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.",
68135	//       "location": "query",
68136	//       "type": "string"
68137	//     },
68138	//     "project": {
68139	//       "description": "Project ID for this request.",
68140	//       "location": "path",
68141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68142	//       "required": true,
68143	//       "type": "string"
68144	//     },
68145	//     "returnPartialSuccess": {
68146	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
68147	//       "location": "query",
68148	//       "type": "boolean"
68149	//     }
68150	//   },
68151	//   "path": "projects/{project}/aggregated/forwardingRules",
68152	//   "response": {
68153	//     "$ref": "ForwardingRuleAggregatedList"
68154	//   },
68155	//   "scopes": [
68156	//     "https://www.googleapis.com/auth/cloud-platform",
68157	//     "https://www.googleapis.com/auth/compute",
68158	//     "https://www.googleapis.com/auth/compute.readonly"
68159	//   ]
68160	// }
68161
68162}
68163
68164// Pages invokes f for each page of results.
68165// A non-nil error returned from f will halt the iteration.
68166// The provided context supersedes any context provided to the Context method.
68167func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
68168	c.ctx_ = ctx
68169	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68170	for {
68171		x, err := c.Do()
68172		if err != nil {
68173			return err
68174		}
68175		if err := f(x); err != nil {
68176			return err
68177		}
68178		if x.NextPageToken == "" {
68179			return nil
68180		}
68181		c.PageToken(x.NextPageToken)
68182	}
68183}
68184
68185// method id "compute.forwardingRules.delete":
68186
68187type ForwardingRulesDeleteCall struct {
68188	s              *Service
68189	project        string
68190	region         string
68191	forwardingRule string
68192	urlParams_     gensupport.URLParams
68193	ctx_           context.Context
68194	header_        http.Header
68195}
68196
68197// Delete: Deletes the specified ForwardingRule resource.
68198//
68199// - forwardingRule: Name of the ForwardingRule resource to delete.
68200// - project: Project ID for this request.
68201// - region: Name of the region scoping this request.
68202// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
68203func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
68204	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68205	c.project = project
68206	c.region = region
68207	c.forwardingRule = forwardingRule
68208	return c
68209}
68210
68211// RequestId sets the optional parameter "requestId": An optional
68212// request ID to identify requests. Specify a unique request ID so that
68213// if you must retry your request, the server will know to ignore the
68214// request if it has already been completed.
68215//
68216// For example, consider a situation where you make an initial request
68217// and the request times out. If you make the request again with the
68218// same request ID, the server can check if original operation with the
68219// same request ID was received, and if so, will ignore the second
68220// request. This prevents clients from accidentally creating duplicate
68221// commitments.
68222//
68223// The request ID must be a valid UUID with the exception that zero UUID
68224// is not supported (00000000-0000-0000-0000-000000000000).
68225func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
68226	c.urlParams_.Set("requestId", requestId)
68227	return c
68228}
68229
68230// Fields allows partial responses to be retrieved. See
68231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68232// for more information.
68233func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
68234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68235	return c
68236}
68237
68238// Context sets the context to be used in this call's Do method. Any
68239// pending HTTP request will be aborted if the provided context is
68240// canceled.
68241func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
68242	c.ctx_ = ctx
68243	return c
68244}
68245
68246// Header returns an http.Header that can be modified by the caller to
68247// add HTTP headers to the request.
68248func (c *ForwardingRulesDeleteCall) Header() http.Header {
68249	if c.header_ == nil {
68250		c.header_ = make(http.Header)
68251	}
68252	return c.header_
68253}
68254
68255func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
68256	reqHeaders := make(http.Header)
68257	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68258	for k, v := range c.header_ {
68259		reqHeaders[k] = v
68260	}
68261	reqHeaders.Set("User-Agent", c.s.userAgent())
68262	var body io.Reader = nil
68263	c.urlParams_.Set("alt", alt)
68264	c.urlParams_.Set("prettyPrint", "false")
68265	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
68266	urls += "?" + c.urlParams_.Encode()
68267	req, err := http.NewRequest("DELETE", urls, body)
68268	if err != nil {
68269		return nil, err
68270	}
68271	req.Header = reqHeaders
68272	googleapi.Expand(req.URL, map[string]string{
68273		"project":        c.project,
68274		"region":         c.region,
68275		"forwardingRule": c.forwardingRule,
68276	})
68277	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68278}
68279
68280// Do executes the "compute.forwardingRules.delete" call.
68281// Exactly one of *Operation or error will be non-nil. Any non-2xx
68282// status code is an error. Response headers are in either
68283// *Operation.ServerResponse.Header or (if a response was returned at
68284// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68285// to check whether the returned error was because
68286// http.StatusNotModified was returned.
68287func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68288	gensupport.SetOptions(c.urlParams_, opts...)
68289	res, err := c.doRequest("json")
68290	if res != nil && res.StatusCode == http.StatusNotModified {
68291		if res.Body != nil {
68292			res.Body.Close()
68293		}
68294		return nil, &googleapi.Error{
68295			Code:   res.StatusCode,
68296			Header: res.Header,
68297		}
68298	}
68299	if err != nil {
68300		return nil, err
68301	}
68302	defer googleapi.CloseBody(res)
68303	if err := googleapi.CheckResponse(res); err != nil {
68304		return nil, err
68305	}
68306	ret := &Operation{
68307		ServerResponse: googleapi.ServerResponse{
68308			Header:         res.Header,
68309			HTTPStatusCode: res.StatusCode,
68310		},
68311	}
68312	target := &ret
68313	if err := gensupport.DecodeResponse(target, res); err != nil {
68314		return nil, err
68315	}
68316	return ret, nil
68317	// {
68318	//   "description": "Deletes the specified ForwardingRule resource.",
68319	//   "httpMethod": "DELETE",
68320	//   "id": "compute.forwardingRules.delete",
68321	//   "parameterOrder": [
68322	//     "project",
68323	//     "region",
68324	//     "forwardingRule"
68325	//   ],
68326	//   "parameters": {
68327	//     "forwardingRule": {
68328	//       "description": "Name of the ForwardingRule resource to delete.",
68329	//       "location": "path",
68330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68331	//       "required": true,
68332	//       "type": "string"
68333	//     },
68334	//     "project": {
68335	//       "description": "Project ID for this request.",
68336	//       "location": "path",
68337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68338	//       "required": true,
68339	//       "type": "string"
68340	//     },
68341	//     "region": {
68342	//       "description": "Name of the region scoping this request.",
68343	//       "location": "path",
68344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68345	//       "required": true,
68346	//       "type": "string"
68347	//     },
68348	//     "requestId": {
68349	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68350	//       "location": "query",
68351	//       "type": "string"
68352	//     }
68353	//   },
68354	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
68355	//   "response": {
68356	//     "$ref": "Operation"
68357	//   },
68358	//   "scopes": [
68359	//     "https://www.googleapis.com/auth/cloud-platform",
68360	//     "https://www.googleapis.com/auth/compute"
68361	//   ]
68362	// }
68363
68364}
68365
68366// method id "compute.forwardingRules.get":
68367
68368type ForwardingRulesGetCall struct {
68369	s              *Service
68370	project        string
68371	region         string
68372	forwardingRule string
68373	urlParams_     gensupport.URLParams
68374	ifNoneMatch_   string
68375	ctx_           context.Context
68376	header_        http.Header
68377}
68378
68379// Get: Returns the specified ForwardingRule resource.
68380//
68381// - forwardingRule: Name of the ForwardingRule resource to return.
68382// - project: Project ID for this request.
68383// - region: Name of the region scoping this request.
68384// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
68385func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
68386	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68387	c.project = project
68388	c.region = region
68389	c.forwardingRule = forwardingRule
68390	return c
68391}
68392
68393// Fields allows partial responses to be retrieved. See
68394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68395// for more information.
68396func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
68397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68398	return c
68399}
68400
68401// IfNoneMatch sets the optional parameter which makes the operation
68402// fail if the object's ETag matches the given value. This is useful for
68403// getting updates only after the object has changed since the last
68404// request. Use googleapi.IsNotModified to check whether the response
68405// error from Do is the result of In-None-Match.
68406func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
68407	c.ifNoneMatch_ = entityTag
68408	return c
68409}
68410
68411// Context sets the context to be used in this call's Do method. Any
68412// pending HTTP request will be aborted if the provided context is
68413// canceled.
68414func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
68415	c.ctx_ = ctx
68416	return c
68417}
68418
68419// Header returns an http.Header that can be modified by the caller to
68420// add HTTP headers to the request.
68421func (c *ForwardingRulesGetCall) Header() http.Header {
68422	if c.header_ == nil {
68423		c.header_ = make(http.Header)
68424	}
68425	return c.header_
68426}
68427
68428func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
68429	reqHeaders := make(http.Header)
68430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68431	for k, v := range c.header_ {
68432		reqHeaders[k] = v
68433	}
68434	reqHeaders.Set("User-Agent", c.s.userAgent())
68435	if c.ifNoneMatch_ != "" {
68436		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68437	}
68438	var body io.Reader = nil
68439	c.urlParams_.Set("alt", alt)
68440	c.urlParams_.Set("prettyPrint", "false")
68441	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
68442	urls += "?" + c.urlParams_.Encode()
68443	req, err := http.NewRequest("GET", urls, body)
68444	if err != nil {
68445		return nil, err
68446	}
68447	req.Header = reqHeaders
68448	googleapi.Expand(req.URL, map[string]string{
68449		"project":        c.project,
68450		"region":         c.region,
68451		"forwardingRule": c.forwardingRule,
68452	})
68453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68454}
68455
68456// Do executes the "compute.forwardingRules.get" call.
68457// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
68458// status code is an error. Response headers are in either
68459// *ForwardingRule.ServerResponse.Header or (if a response was returned
68460// at all) in error.(*googleapi.Error).Header. Use
68461// googleapi.IsNotModified to check whether the returned error was
68462// because http.StatusNotModified was returned.
68463func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
68464	gensupport.SetOptions(c.urlParams_, opts...)
68465	res, err := c.doRequest("json")
68466	if res != nil && res.StatusCode == http.StatusNotModified {
68467		if res.Body != nil {
68468			res.Body.Close()
68469		}
68470		return nil, &googleapi.Error{
68471			Code:   res.StatusCode,
68472			Header: res.Header,
68473		}
68474	}
68475	if err != nil {
68476		return nil, err
68477	}
68478	defer googleapi.CloseBody(res)
68479	if err := googleapi.CheckResponse(res); err != nil {
68480		return nil, err
68481	}
68482	ret := &ForwardingRule{
68483		ServerResponse: googleapi.ServerResponse{
68484			Header:         res.Header,
68485			HTTPStatusCode: res.StatusCode,
68486		},
68487	}
68488	target := &ret
68489	if err := gensupport.DecodeResponse(target, res); err != nil {
68490		return nil, err
68491	}
68492	return ret, nil
68493	// {
68494	//   "description": "Returns the specified ForwardingRule resource.",
68495	//   "httpMethod": "GET",
68496	//   "id": "compute.forwardingRules.get",
68497	//   "parameterOrder": [
68498	//     "project",
68499	//     "region",
68500	//     "forwardingRule"
68501	//   ],
68502	//   "parameters": {
68503	//     "forwardingRule": {
68504	//       "description": "Name of the ForwardingRule resource to return.",
68505	//       "location": "path",
68506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68507	//       "required": true,
68508	//       "type": "string"
68509	//     },
68510	//     "project": {
68511	//       "description": "Project ID for this request.",
68512	//       "location": "path",
68513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68514	//       "required": true,
68515	//       "type": "string"
68516	//     },
68517	//     "region": {
68518	//       "description": "Name of the region scoping this request.",
68519	//       "location": "path",
68520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68521	//       "required": true,
68522	//       "type": "string"
68523	//     }
68524	//   },
68525	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
68526	//   "response": {
68527	//     "$ref": "ForwardingRule"
68528	//   },
68529	//   "scopes": [
68530	//     "https://www.googleapis.com/auth/cloud-platform",
68531	//     "https://www.googleapis.com/auth/compute",
68532	//     "https://www.googleapis.com/auth/compute.readonly"
68533	//   ]
68534	// }
68535
68536}
68537
68538// method id "compute.forwardingRules.insert":
68539
68540type ForwardingRulesInsertCall struct {
68541	s              *Service
68542	project        string
68543	region         string
68544	forwardingrule *ForwardingRule
68545	urlParams_     gensupport.URLParams
68546	ctx_           context.Context
68547	header_        http.Header
68548}
68549
68550// Insert: Creates a ForwardingRule resource in the specified project
68551// and region using the data included in the request.
68552//
68553// - project: Project ID for this request.
68554// - region: Name of the region scoping this request.
68555// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
68556func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
68557	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68558	c.project = project
68559	c.region = region
68560	c.forwardingrule = forwardingrule
68561	return c
68562}
68563
68564// RequestId sets the optional parameter "requestId": An optional
68565// request ID to identify requests. Specify a unique request ID so that
68566// if you must retry your request, the server will know to ignore the
68567// request if it has already been completed.
68568//
68569// For example, consider a situation where you make an initial request
68570// and the request times out. If you make the request again with the
68571// same request ID, the server can check if original operation with the
68572// same request ID was received, and if so, will ignore the second
68573// request. This prevents clients from accidentally creating duplicate
68574// commitments.
68575//
68576// The request ID must be a valid UUID with the exception that zero UUID
68577// is not supported (00000000-0000-0000-0000-000000000000).
68578func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
68579	c.urlParams_.Set("requestId", requestId)
68580	return c
68581}
68582
68583// Fields allows partial responses to be retrieved. See
68584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68585// for more information.
68586func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
68587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68588	return c
68589}
68590
68591// Context sets the context to be used in this call's Do method. Any
68592// pending HTTP request will be aborted if the provided context is
68593// canceled.
68594func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
68595	c.ctx_ = ctx
68596	return c
68597}
68598
68599// Header returns an http.Header that can be modified by the caller to
68600// add HTTP headers to the request.
68601func (c *ForwardingRulesInsertCall) Header() http.Header {
68602	if c.header_ == nil {
68603		c.header_ = make(http.Header)
68604	}
68605	return c.header_
68606}
68607
68608func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
68609	reqHeaders := make(http.Header)
68610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68611	for k, v := range c.header_ {
68612		reqHeaders[k] = v
68613	}
68614	reqHeaders.Set("User-Agent", c.s.userAgent())
68615	var body io.Reader = nil
68616	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
68617	if err != nil {
68618		return nil, err
68619	}
68620	reqHeaders.Set("Content-Type", "application/json")
68621	c.urlParams_.Set("alt", alt)
68622	c.urlParams_.Set("prettyPrint", "false")
68623	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
68624	urls += "?" + c.urlParams_.Encode()
68625	req, err := http.NewRequest("POST", urls, body)
68626	if err != nil {
68627		return nil, err
68628	}
68629	req.Header = reqHeaders
68630	googleapi.Expand(req.URL, map[string]string{
68631		"project": c.project,
68632		"region":  c.region,
68633	})
68634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68635}
68636
68637// Do executes the "compute.forwardingRules.insert" call.
68638// Exactly one of *Operation or error will be non-nil. Any non-2xx
68639// status code is an error. Response headers are in either
68640// *Operation.ServerResponse.Header or (if a response was returned at
68641// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68642// to check whether the returned error was because
68643// http.StatusNotModified was returned.
68644func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68645	gensupport.SetOptions(c.urlParams_, opts...)
68646	res, err := c.doRequest("json")
68647	if res != nil && res.StatusCode == http.StatusNotModified {
68648		if res.Body != nil {
68649			res.Body.Close()
68650		}
68651		return nil, &googleapi.Error{
68652			Code:   res.StatusCode,
68653			Header: res.Header,
68654		}
68655	}
68656	if err != nil {
68657		return nil, err
68658	}
68659	defer googleapi.CloseBody(res)
68660	if err := googleapi.CheckResponse(res); err != nil {
68661		return nil, err
68662	}
68663	ret := &Operation{
68664		ServerResponse: googleapi.ServerResponse{
68665			Header:         res.Header,
68666			HTTPStatusCode: res.StatusCode,
68667		},
68668	}
68669	target := &ret
68670	if err := gensupport.DecodeResponse(target, res); err != nil {
68671		return nil, err
68672	}
68673	return ret, nil
68674	// {
68675	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
68676	//   "httpMethod": "POST",
68677	//   "id": "compute.forwardingRules.insert",
68678	//   "parameterOrder": [
68679	//     "project",
68680	//     "region"
68681	//   ],
68682	//   "parameters": {
68683	//     "project": {
68684	//       "description": "Project ID for this request.",
68685	//       "location": "path",
68686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68687	//       "required": true,
68688	//       "type": "string"
68689	//     },
68690	//     "region": {
68691	//       "description": "Name of the region scoping this request.",
68692	//       "location": "path",
68693	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68694	//       "required": true,
68695	//       "type": "string"
68696	//     },
68697	//     "requestId": {
68698	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68699	//       "location": "query",
68700	//       "type": "string"
68701	//     }
68702	//   },
68703	//   "path": "projects/{project}/regions/{region}/forwardingRules",
68704	//   "request": {
68705	//     "$ref": "ForwardingRule"
68706	//   },
68707	//   "response": {
68708	//     "$ref": "Operation"
68709	//   },
68710	//   "scopes": [
68711	//     "https://www.googleapis.com/auth/cloud-platform",
68712	//     "https://www.googleapis.com/auth/compute"
68713	//   ]
68714	// }
68715
68716}
68717
68718// method id "compute.forwardingRules.list":
68719
68720type ForwardingRulesListCall struct {
68721	s            *Service
68722	project      string
68723	region       string
68724	urlParams_   gensupport.URLParams
68725	ifNoneMatch_ string
68726	ctx_         context.Context
68727	header_      http.Header
68728}
68729
68730// List: Retrieves a list of ForwardingRule resources available to the
68731// specified project and region.
68732//
68733// - project: Project ID for this request.
68734// - region: Name of the region scoping this request.
68735// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
68736func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
68737	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68738	c.project = project
68739	c.region = region
68740	return c
68741}
68742
68743// Filter sets the optional parameter "filter": A filter expression that
68744// filters resources listed in the response. The expression must specify
68745// the field name, a comparison operator, and the value that you want to
68746// use for filtering. The value must be a string, a number, or a
68747// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68748// `<`.
68749//
68750// For example, if you are filtering Compute Engine instances, you can
68751// exclude instances named `example-instance` by specifying `name !=
68752// example-instance`.
68753//
68754// You can also filter nested fields. For example, you could specify
68755// `scheduling.automaticRestart = false` to include instances only if
68756// they are not scheduled for automatic restarts. You can use filtering
68757// on nested fields to filter based on resource labels.
68758//
68759// To filter on multiple expressions, provide each separate expression
68760// within parentheses. For example: ``` (scheduling.automaticRestart =
68761// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68762// is an `AND` expression. However, you can include `AND` and `OR`
68763// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68764// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68765// (scheduling.automaticRestart = true) ```
68766func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
68767	c.urlParams_.Set("filter", filter)
68768	return c
68769}
68770
68771// MaxResults sets the optional parameter "maxResults": The maximum
68772// number of results per page that should be returned. If the number of
68773// available results is larger than `maxResults`, Compute Engine returns
68774// a `nextPageToken` that can be used to get the next page of results in
68775// subsequent list requests. Acceptable values are `0` to `500`,
68776// inclusive. (Default: `500`)
68777func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
68778	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68779	return c
68780}
68781
68782// OrderBy sets the optional parameter "orderBy": Sorts list results by
68783// a certain order. By default, results are returned in alphanumerical
68784// order based on the resource name.
68785//
68786// You can also sort results in descending order based on the creation
68787// timestamp using `orderBy="creationTimestamp desc". This sorts
68788// results based on the `creationTimestamp` field in reverse
68789// chronological order (newest result first). Use this to sort resources
68790// like operations so that the newest operation is returned
68791// first.
68792//
68793// Currently, only sorting by `name` or `creationTimestamp desc` is
68794// supported.
68795func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
68796	c.urlParams_.Set("orderBy", orderBy)
68797	return c
68798}
68799
68800// PageToken sets the optional parameter "pageToken": Specifies a page
68801// token to use. Set `pageToken` to the `nextPageToken` returned by a
68802// previous list request to get the next page of results.
68803func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
68804	c.urlParams_.Set("pageToken", pageToken)
68805	return c
68806}
68807
68808// ReturnPartialSuccess sets the optional parameter
68809// "returnPartialSuccess": Opt-in for partial success behavior which
68810// provides partial results in case of failure. The default value is
68811// false.
68812func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesListCall {
68813	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
68814	return c
68815}
68816
68817// Fields allows partial responses to be retrieved. See
68818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68819// for more information.
68820func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
68821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68822	return c
68823}
68824
68825// IfNoneMatch sets the optional parameter which makes the operation
68826// fail if the object's ETag matches the given value. This is useful for
68827// getting updates only after the object has changed since the last
68828// request. Use googleapi.IsNotModified to check whether the response
68829// error from Do is the result of In-None-Match.
68830func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
68831	c.ifNoneMatch_ = entityTag
68832	return c
68833}
68834
68835// Context sets the context to be used in this call's Do method. Any
68836// pending HTTP request will be aborted if the provided context is
68837// canceled.
68838func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
68839	c.ctx_ = ctx
68840	return c
68841}
68842
68843// Header returns an http.Header that can be modified by the caller to
68844// add HTTP headers to the request.
68845func (c *ForwardingRulesListCall) Header() http.Header {
68846	if c.header_ == nil {
68847		c.header_ = make(http.Header)
68848	}
68849	return c.header_
68850}
68851
68852func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
68853	reqHeaders := make(http.Header)
68854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68855	for k, v := range c.header_ {
68856		reqHeaders[k] = v
68857	}
68858	reqHeaders.Set("User-Agent", c.s.userAgent())
68859	if c.ifNoneMatch_ != "" {
68860		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68861	}
68862	var body io.Reader = nil
68863	c.urlParams_.Set("alt", alt)
68864	c.urlParams_.Set("prettyPrint", "false")
68865	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
68866	urls += "?" + c.urlParams_.Encode()
68867	req, err := http.NewRequest("GET", urls, body)
68868	if err != nil {
68869		return nil, err
68870	}
68871	req.Header = reqHeaders
68872	googleapi.Expand(req.URL, map[string]string{
68873		"project": c.project,
68874		"region":  c.region,
68875	})
68876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68877}
68878
68879// Do executes the "compute.forwardingRules.list" call.
68880// Exactly one of *ForwardingRuleList or error will be non-nil. Any
68881// non-2xx status code is an error. Response headers are in either
68882// *ForwardingRuleList.ServerResponse.Header or (if a response was
68883// returned at all) in error.(*googleapi.Error).Header. Use
68884// googleapi.IsNotModified to check whether the returned error was
68885// because http.StatusNotModified was returned.
68886func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
68887	gensupport.SetOptions(c.urlParams_, opts...)
68888	res, err := c.doRequest("json")
68889	if res != nil && res.StatusCode == http.StatusNotModified {
68890		if res.Body != nil {
68891			res.Body.Close()
68892		}
68893		return nil, &googleapi.Error{
68894			Code:   res.StatusCode,
68895			Header: res.Header,
68896		}
68897	}
68898	if err != nil {
68899		return nil, err
68900	}
68901	defer googleapi.CloseBody(res)
68902	if err := googleapi.CheckResponse(res); err != nil {
68903		return nil, err
68904	}
68905	ret := &ForwardingRuleList{
68906		ServerResponse: googleapi.ServerResponse{
68907			Header:         res.Header,
68908			HTTPStatusCode: res.StatusCode,
68909		},
68910	}
68911	target := &ret
68912	if err := gensupport.DecodeResponse(target, res); err != nil {
68913		return nil, err
68914	}
68915	return ret, nil
68916	// {
68917	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
68918	//   "httpMethod": "GET",
68919	//   "id": "compute.forwardingRules.list",
68920	//   "parameterOrder": [
68921	//     "project",
68922	//     "region"
68923	//   ],
68924	//   "parameters": {
68925	//     "filter": {
68926	//       "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) ```",
68927	//       "location": "query",
68928	//       "type": "string"
68929	//     },
68930	//     "maxResults": {
68931	//       "default": "500",
68932	//       "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`)",
68933	//       "format": "uint32",
68934	//       "location": "query",
68935	//       "minimum": "0",
68936	//       "type": "integer"
68937	//     },
68938	//     "orderBy": {
68939	//       "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.",
68940	//       "location": "query",
68941	//       "type": "string"
68942	//     },
68943	//     "pageToken": {
68944	//       "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.",
68945	//       "location": "query",
68946	//       "type": "string"
68947	//     },
68948	//     "project": {
68949	//       "description": "Project ID for this request.",
68950	//       "location": "path",
68951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68952	//       "required": true,
68953	//       "type": "string"
68954	//     },
68955	//     "region": {
68956	//       "description": "Name of the region scoping this request.",
68957	//       "location": "path",
68958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68959	//       "required": true,
68960	//       "type": "string"
68961	//     },
68962	//     "returnPartialSuccess": {
68963	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
68964	//       "location": "query",
68965	//       "type": "boolean"
68966	//     }
68967	//   },
68968	//   "path": "projects/{project}/regions/{region}/forwardingRules",
68969	//   "response": {
68970	//     "$ref": "ForwardingRuleList"
68971	//   },
68972	//   "scopes": [
68973	//     "https://www.googleapis.com/auth/cloud-platform",
68974	//     "https://www.googleapis.com/auth/compute",
68975	//     "https://www.googleapis.com/auth/compute.readonly"
68976	//   ]
68977	// }
68978
68979}
68980
68981// Pages invokes f for each page of results.
68982// A non-nil error returned from f will halt the iteration.
68983// The provided context supersedes any context provided to the Context method.
68984func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
68985	c.ctx_ = ctx
68986	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68987	for {
68988		x, err := c.Do()
68989		if err != nil {
68990			return err
68991		}
68992		if err := f(x); err != nil {
68993			return err
68994		}
68995		if x.NextPageToken == "" {
68996			return nil
68997		}
68998		c.PageToken(x.NextPageToken)
68999	}
69000}
69001
69002// method id "compute.forwardingRules.patch":
69003
69004type ForwardingRulesPatchCall struct {
69005	s              *Service
69006	project        string
69007	region         string
69008	forwardingRule string
69009	forwardingrule *ForwardingRule
69010	urlParams_     gensupport.URLParams
69011	ctx_           context.Context
69012	header_        http.Header
69013}
69014
69015// Patch: Updates the specified forwarding rule with the data included
69016// in the request. This method supports PATCH semantics and uses the
69017// JSON merge patch format and processing rules. Currently, you can only
69018// patch the network_tier field.
69019//
69020// - forwardingRule: Name of the ForwardingRule resource to patch.
69021// - project: Project ID for this request.
69022// - region: Name of the region scoping this request.
69023func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
69024	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69025	c.project = project
69026	c.region = region
69027	c.forwardingRule = forwardingRule
69028	c.forwardingrule = forwardingrule
69029	return c
69030}
69031
69032// RequestId sets the optional parameter "requestId": An optional
69033// request ID to identify requests. Specify a unique request ID so that
69034// if you must retry your request, the server will know to ignore the
69035// request if it has already been completed.
69036//
69037// For example, consider a situation where you make an initial request
69038// and the request times out. If you make the request again with the
69039// same request ID, the server can check if original operation with the
69040// same request ID was received, and if so, will ignore the second
69041// request. This prevents clients from accidentally creating duplicate
69042// commitments.
69043//
69044// The request ID must be a valid UUID with the exception that zero UUID
69045// is not supported (00000000-0000-0000-0000-000000000000).
69046func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
69047	c.urlParams_.Set("requestId", requestId)
69048	return c
69049}
69050
69051// Fields allows partial responses to be retrieved. See
69052// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69053// for more information.
69054func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
69055	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69056	return c
69057}
69058
69059// Context sets the context to be used in this call's Do method. Any
69060// pending HTTP request will be aborted if the provided context is
69061// canceled.
69062func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
69063	c.ctx_ = ctx
69064	return c
69065}
69066
69067// Header returns an http.Header that can be modified by the caller to
69068// add HTTP headers to the request.
69069func (c *ForwardingRulesPatchCall) Header() http.Header {
69070	if c.header_ == nil {
69071		c.header_ = make(http.Header)
69072	}
69073	return c.header_
69074}
69075
69076func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
69077	reqHeaders := make(http.Header)
69078	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69079	for k, v := range c.header_ {
69080		reqHeaders[k] = v
69081	}
69082	reqHeaders.Set("User-Agent", c.s.userAgent())
69083	var body io.Reader = nil
69084	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
69085	if err != nil {
69086		return nil, err
69087	}
69088	reqHeaders.Set("Content-Type", "application/json")
69089	c.urlParams_.Set("alt", alt)
69090	c.urlParams_.Set("prettyPrint", "false")
69091	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
69092	urls += "?" + c.urlParams_.Encode()
69093	req, err := http.NewRequest("PATCH", urls, body)
69094	if err != nil {
69095		return nil, err
69096	}
69097	req.Header = reqHeaders
69098	googleapi.Expand(req.URL, map[string]string{
69099		"project":        c.project,
69100		"region":         c.region,
69101		"forwardingRule": c.forwardingRule,
69102	})
69103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69104}
69105
69106// Do executes the "compute.forwardingRules.patch" call.
69107// Exactly one of *Operation or error will be non-nil. Any non-2xx
69108// status code is an error. Response headers are in either
69109// *Operation.ServerResponse.Header or (if a response was returned at
69110// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69111// to check whether the returned error was because
69112// http.StatusNotModified was returned.
69113func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69114	gensupport.SetOptions(c.urlParams_, opts...)
69115	res, err := c.doRequest("json")
69116	if res != nil && res.StatusCode == http.StatusNotModified {
69117		if res.Body != nil {
69118			res.Body.Close()
69119		}
69120		return nil, &googleapi.Error{
69121			Code:   res.StatusCode,
69122			Header: res.Header,
69123		}
69124	}
69125	if err != nil {
69126		return nil, err
69127	}
69128	defer googleapi.CloseBody(res)
69129	if err := googleapi.CheckResponse(res); err != nil {
69130		return nil, err
69131	}
69132	ret := &Operation{
69133		ServerResponse: googleapi.ServerResponse{
69134			Header:         res.Header,
69135			HTTPStatusCode: res.StatusCode,
69136		},
69137	}
69138	target := &ret
69139	if err := gensupport.DecodeResponse(target, res); err != nil {
69140		return nil, err
69141	}
69142	return ret, nil
69143	// {
69144	//   "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.",
69145	//   "httpMethod": "PATCH",
69146	//   "id": "compute.forwardingRules.patch",
69147	//   "parameterOrder": [
69148	//     "project",
69149	//     "region",
69150	//     "forwardingRule"
69151	//   ],
69152	//   "parameters": {
69153	//     "forwardingRule": {
69154	//       "description": "Name of the ForwardingRule resource to patch.",
69155	//       "location": "path",
69156	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69157	//       "required": true,
69158	//       "type": "string"
69159	//     },
69160	//     "project": {
69161	//       "description": "Project ID for this request.",
69162	//       "location": "path",
69163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69164	//       "required": true,
69165	//       "type": "string"
69166	//     },
69167	//     "region": {
69168	//       "description": "Name of the region scoping this request.",
69169	//       "location": "path",
69170	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69171	//       "required": true,
69172	//       "type": "string"
69173	//     },
69174	//     "requestId": {
69175	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69176	//       "location": "query",
69177	//       "type": "string"
69178	//     }
69179	//   },
69180	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
69181	//   "request": {
69182	//     "$ref": "ForwardingRule"
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.forwardingRules.setLabels":
69196
69197type ForwardingRulesSetLabelsCall struct {
69198	s                      *Service
69199	project                string
69200	region                 string
69201	resource               string
69202	regionsetlabelsrequest *RegionSetLabelsRequest
69203	urlParams_             gensupport.URLParams
69204	ctx_                   context.Context
69205	header_                http.Header
69206}
69207
69208// SetLabels: Sets the labels on the specified resource. To learn more
69209// about labels, read the Labeling Resources documentation.
69210//
69211// - project: Project ID for this request.
69212// - region: The region for this request.
69213// - resource: Name or id of the resource for this request.
69214func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
69215	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69216	c.project = project
69217	c.region = region
69218	c.resource = resource
69219	c.regionsetlabelsrequest = regionsetlabelsrequest
69220	return c
69221}
69222
69223// RequestId sets the optional parameter "requestId": An optional
69224// request ID to identify requests. Specify a unique request ID so that
69225// if you must retry your request, the server will know to ignore the
69226// request if it has already been completed.
69227//
69228// For example, consider a situation where you make an initial request
69229// and the request times out. If you make the request again with the
69230// same request ID, the server can check if original operation with the
69231// same request ID was received, and if so, will ignore the second
69232// request. This prevents clients from accidentally creating duplicate
69233// commitments.
69234//
69235// The request ID must be a valid UUID with the exception that zero UUID
69236// is not supported (00000000-0000-0000-0000-000000000000).
69237func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
69238	c.urlParams_.Set("requestId", requestId)
69239	return c
69240}
69241
69242// Fields allows partial responses to be retrieved. See
69243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69244// for more information.
69245func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
69246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69247	return c
69248}
69249
69250// Context sets the context to be used in this call's Do method. Any
69251// pending HTTP request will be aborted if the provided context is
69252// canceled.
69253func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
69254	c.ctx_ = ctx
69255	return c
69256}
69257
69258// Header returns an http.Header that can be modified by the caller to
69259// add HTTP headers to the request.
69260func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
69261	if c.header_ == nil {
69262		c.header_ = make(http.Header)
69263	}
69264	return c.header_
69265}
69266
69267func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
69268	reqHeaders := make(http.Header)
69269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69270	for k, v := range c.header_ {
69271		reqHeaders[k] = v
69272	}
69273	reqHeaders.Set("User-Agent", c.s.userAgent())
69274	var body io.Reader = nil
69275	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
69276	if err != nil {
69277		return nil, err
69278	}
69279	reqHeaders.Set("Content-Type", "application/json")
69280	c.urlParams_.Set("alt", alt)
69281	c.urlParams_.Set("prettyPrint", "false")
69282	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels")
69283	urls += "?" + c.urlParams_.Encode()
69284	req, err := http.NewRequest("POST", urls, body)
69285	if err != nil {
69286		return nil, err
69287	}
69288	req.Header = reqHeaders
69289	googleapi.Expand(req.URL, map[string]string{
69290		"project":  c.project,
69291		"region":   c.region,
69292		"resource": c.resource,
69293	})
69294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69295}
69296
69297// Do executes the "compute.forwardingRules.setLabels" call.
69298// Exactly one of *Operation or error will be non-nil. Any non-2xx
69299// status code is an error. Response headers are in either
69300// *Operation.ServerResponse.Header or (if a response was returned at
69301// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69302// to check whether the returned error was because
69303// http.StatusNotModified was returned.
69304func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69305	gensupport.SetOptions(c.urlParams_, opts...)
69306	res, err := c.doRequest("json")
69307	if res != nil && res.StatusCode == http.StatusNotModified {
69308		if res.Body != nil {
69309			res.Body.Close()
69310		}
69311		return nil, &googleapi.Error{
69312			Code:   res.StatusCode,
69313			Header: res.Header,
69314		}
69315	}
69316	if err != nil {
69317		return nil, err
69318	}
69319	defer googleapi.CloseBody(res)
69320	if err := googleapi.CheckResponse(res); err != nil {
69321		return nil, err
69322	}
69323	ret := &Operation{
69324		ServerResponse: googleapi.ServerResponse{
69325			Header:         res.Header,
69326			HTTPStatusCode: res.StatusCode,
69327		},
69328	}
69329	target := &ret
69330	if err := gensupport.DecodeResponse(target, res); err != nil {
69331		return nil, err
69332	}
69333	return ret, nil
69334	// {
69335	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
69336	//   "httpMethod": "POST",
69337	//   "id": "compute.forwardingRules.setLabels",
69338	//   "parameterOrder": [
69339	//     "project",
69340	//     "region",
69341	//     "resource"
69342	//   ],
69343	//   "parameters": {
69344	//     "project": {
69345	//       "description": "Project ID for this request.",
69346	//       "location": "path",
69347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69348	//       "required": true,
69349	//       "type": "string"
69350	//     },
69351	//     "region": {
69352	//       "description": "The region for this request.",
69353	//       "location": "path",
69354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69355	//       "required": true,
69356	//       "type": "string"
69357	//     },
69358	//     "requestId": {
69359	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69360	//       "location": "query",
69361	//       "type": "string"
69362	//     },
69363	//     "resource": {
69364	//       "description": "Name or id of the resource for this request.",
69365	//       "location": "path",
69366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69367	//       "required": true,
69368	//       "type": "string"
69369	//     }
69370	//   },
69371	//   "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
69372	//   "request": {
69373	//     "$ref": "RegionSetLabelsRequest"
69374	//   },
69375	//   "response": {
69376	//     "$ref": "Operation"
69377	//   },
69378	//   "scopes": [
69379	//     "https://www.googleapis.com/auth/cloud-platform",
69380	//     "https://www.googleapis.com/auth/compute"
69381	//   ]
69382	// }
69383
69384}
69385
69386// method id "compute.forwardingRules.setTarget":
69387
69388type ForwardingRulesSetTargetCall struct {
69389	s               *Service
69390	project         string
69391	region          string
69392	forwardingRule  string
69393	targetreference *TargetReference
69394	urlParams_      gensupport.URLParams
69395	ctx_            context.Context
69396	header_         http.Header
69397}
69398
69399// SetTarget: Changes target URL for forwarding rule. The new target
69400// should be of the same type as the old target.
69401//
69402// - forwardingRule: Name of the ForwardingRule resource in which target
69403//   is to be set.
69404// - project: Project ID for this request.
69405// - region: Name of the region scoping this request.
69406// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
69407func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
69408	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69409	c.project = project
69410	c.region = region
69411	c.forwardingRule = forwardingRule
69412	c.targetreference = targetreference
69413	return c
69414}
69415
69416// RequestId sets the optional parameter "requestId": An optional
69417// request ID to identify requests. Specify a unique request ID so that
69418// if you must retry your request, the server will know to ignore the
69419// request if it has already been completed.
69420//
69421// For example, consider a situation where you make an initial request
69422// and the request times out. If you make the request again with the
69423// same request ID, the server can check if original operation with the
69424// same request ID was received, and if so, will ignore the second
69425// request. This prevents clients from accidentally creating duplicate
69426// commitments.
69427//
69428// The request ID must be a valid UUID with the exception that zero UUID
69429// is not supported (00000000-0000-0000-0000-000000000000).
69430func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
69431	c.urlParams_.Set("requestId", requestId)
69432	return c
69433}
69434
69435// Fields allows partial responses to be retrieved. See
69436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69437// for more information.
69438func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
69439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69440	return c
69441}
69442
69443// Context sets the context to be used in this call's Do method. Any
69444// pending HTTP request will be aborted if the provided context is
69445// canceled.
69446func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
69447	c.ctx_ = ctx
69448	return c
69449}
69450
69451// Header returns an http.Header that can be modified by the caller to
69452// add HTTP headers to the request.
69453func (c *ForwardingRulesSetTargetCall) Header() http.Header {
69454	if c.header_ == nil {
69455		c.header_ = make(http.Header)
69456	}
69457	return c.header_
69458}
69459
69460func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
69461	reqHeaders := make(http.Header)
69462	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69463	for k, v := range c.header_ {
69464		reqHeaders[k] = v
69465	}
69466	reqHeaders.Set("User-Agent", c.s.userAgent())
69467	var body io.Reader = nil
69468	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
69469	if err != nil {
69470		return nil, err
69471	}
69472	reqHeaders.Set("Content-Type", "application/json")
69473	c.urlParams_.Set("alt", alt)
69474	c.urlParams_.Set("prettyPrint", "false")
69475	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
69476	urls += "?" + c.urlParams_.Encode()
69477	req, err := http.NewRequest("POST", urls, body)
69478	if err != nil {
69479		return nil, err
69480	}
69481	req.Header = reqHeaders
69482	googleapi.Expand(req.URL, map[string]string{
69483		"project":        c.project,
69484		"region":         c.region,
69485		"forwardingRule": c.forwardingRule,
69486	})
69487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69488}
69489
69490// Do executes the "compute.forwardingRules.setTarget" call.
69491// Exactly one of *Operation or error will be non-nil. Any non-2xx
69492// status code is an error. Response headers are in either
69493// *Operation.ServerResponse.Header or (if a response was returned at
69494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69495// to check whether the returned error was because
69496// http.StatusNotModified was returned.
69497func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69498	gensupport.SetOptions(c.urlParams_, opts...)
69499	res, err := c.doRequest("json")
69500	if res != nil && res.StatusCode == http.StatusNotModified {
69501		if res.Body != nil {
69502			res.Body.Close()
69503		}
69504		return nil, &googleapi.Error{
69505			Code:   res.StatusCode,
69506			Header: res.Header,
69507		}
69508	}
69509	if err != nil {
69510		return nil, err
69511	}
69512	defer googleapi.CloseBody(res)
69513	if err := googleapi.CheckResponse(res); err != nil {
69514		return nil, err
69515	}
69516	ret := &Operation{
69517		ServerResponse: googleapi.ServerResponse{
69518			Header:         res.Header,
69519			HTTPStatusCode: res.StatusCode,
69520		},
69521	}
69522	target := &ret
69523	if err := gensupport.DecodeResponse(target, res); err != nil {
69524		return nil, err
69525	}
69526	return ret, nil
69527	// {
69528	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
69529	//   "httpMethod": "POST",
69530	//   "id": "compute.forwardingRules.setTarget",
69531	//   "parameterOrder": [
69532	//     "project",
69533	//     "region",
69534	//     "forwardingRule"
69535	//   ],
69536	//   "parameters": {
69537	//     "forwardingRule": {
69538	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
69539	//       "location": "path",
69540	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69541	//       "required": true,
69542	//       "type": "string"
69543	//     },
69544	//     "project": {
69545	//       "description": "Project ID for this request.",
69546	//       "location": "path",
69547	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69548	//       "required": true,
69549	//       "type": "string"
69550	//     },
69551	//     "region": {
69552	//       "description": "Name of the region scoping this request.",
69553	//       "location": "path",
69554	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69555	//       "required": true,
69556	//       "type": "string"
69557	//     },
69558	//     "requestId": {
69559	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69560	//       "location": "query",
69561	//       "type": "string"
69562	//     }
69563	//   },
69564	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
69565	//   "request": {
69566	//     "$ref": "TargetReference"
69567	//   },
69568	//   "response": {
69569	//     "$ref": "Operation"
69570	//   },
69571	//   "scopes": [
69572	//     "https://www.googleapis.com/auth/cloud-platform",
69573	//     "https://www.googleapis.com/auth/compute"
69574	//   ]
69575	// }
69576
69577}
69578
69579// method id "compute.forwardingRules.testIamPermissions":
69580
69581type ForwardingRulesTestIamPermissionsCall struct {
69582	s                      *Service
69583	project                string
69584	region                 string
69585	resource               string
69586	testpermissionsrequest *TestPermissionsRequest
69587	urlParams_             gensupport.URLParams
69588	ctx_                   context.Context
69589	header_                http.Header
69590}
69591
69592// TestIamPermissions: Returns permissions that a caller has on the
69593// specified resource.
69594//
69595// - project: Project ID for this request.
69596// - region: The name of the region for this request.
69597// - resource: Name or id of the resource for this request.
69598func (r *ForwardingRulesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ForwardingRulesTestIamPermissionsCall {
69599	c := &ForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69600	c.project = project
69601	c.region = region
69602	c.resource = resource
69603	c.testpermissionsrequest = testpermissionsrequest
69604	return c
69605}
69606
69607// Fields allows partial responses to be retrieved. See
69608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69609// for more information.
69610func (c *ForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ForwardingRulesTestIamPermissionsCall {
69611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69612	return c
69613}
69614
69615// Context sets the context to be used in this call's Do method. Any
69616// pending HTTP request will be aborted if the provided context is
69617// canceled.
69618func (c *ForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *ForwardingRulesTestIamPermissionsCall {
69619	c.ctx_ = ctx
69620	return c
69621}
69622
69623// Header returns an http.Header that can be modified by the caller to
69624// add HTTP headers to the request.
69625func (c *ForwardingRulesTestIamPermissionsCall) Header() http.Header {
69626	if c.header_ == nil {
69627		c.header_ = make(http.Header)
69628	}
69629	return c.header_
69630}
69631
69632func (c *ForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
69633	reqHeaders := make(http.Header)
69634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69635	for k, v := range c.header_ {
69636		reqHeaders[k] = v
69637	}
69638	reqHeaders.Set("User-Agent", c.s.userAgent())
69639	var body io.Reader = nil
69640	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
69641	if err != nil {
69642		return nil, err
69643	}
69644	reqHeaders.Set("Content-Type", "application/json")
69645	c.urlParams_.Set("alt", alt)
69646	c.urlParams_.Set("prettyPrint", "false")
69647	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions")
69648	urls += "?" + c.urlParams_.Encode()
69649	req, err := http.NewRequest("POST", urls, body)
69650	if err != nil {
69651		return nil, err
69652	}
69653	req.Header = reqHeaders
69654	googleapi.Expand(req.URL, map[string]string{
69655		"project":  c.project,
69656		"region":   c.region,
69657		"resource": c.resource,
69658	})
69659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69660}
69661
69662// Do executes the "compute.forwardingRules.testIamPermissions" call.
69663// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
69664// non-2xx status code is an error. Response headers are in either
69665// *TestPermissionsResponse.ServerResponse.Header or (if a response was
69666// returned at all) in error.(*googleapi.Error).Header. Use
69667// googleapi.IsNotModified to check whether the returned error was
69668// because http.StatusNotModified was returned.
69669func (c *ForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
69670	gensupport.SetOptions(c.urlParams_, opts...)
69671	res, err := c.doRequest("json")
69672	if res != nil && res.StatusCode == http.StatusNotModified {
69673		if res.Body != nil {
69674			res.Body.Close()
69675		}
69676		return nil, &googleapi.Error{
69677			Code:   res.StatusCode,
69678			Header: res.Header,
69679		}
69680	}
69681	if err != nil {
69682		return nil, err
69683	}
69684	defer googleapi.CloseBody(res)
69685	if err := googleapi.CheckResponse(res); err != nil {
69686		return nil, err
69687	}
69688	ret := &TestPermissionsResponse{
69689		ServerResponse: googleapi.ServerResponse{
69690			Header:         res.Header,
69691			HTTPStatusCode: res.StatusCode,
69692		},
69693	}
69694	target := &ret
69695	if err := gensupport.DecodeResponse(target, res); err != nil {
69696		return nil, err
69697	}
69698	return ret, nil
69699	// {
69700	//   "description": "Returns permissions that a caller has on the specified resource.",
69701	//   "httpMethod": "POST",
69702	//   "id": "compute.forwardingRules.testIamPermissions",
69703	//   "parameterOrder": [
69704	//     "project",
69705	//     "region",
69706	//     "resource"
69707	//   ],
69708	//   "parameters": {
69709	//     "project": {
69710	//       "description": "Project ID for this request.",
69711	//       "location": "path",
69712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69713	//       "required": true,
69714	//       "type": "string"
69715	//     },
69716	//     "region": {
69717	//       "description": "The name of the region for this request.",
69718	//       "location": "path",
69719	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69720	//       "required": true,
69721	//       "type": "string"
69722	//     },
69723	//     "resource": {
69724	//       "description": "Name or id of the resource for this request.",
69725	//       "location": "path",
69726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69727	//       "required": true,
69728	//       "type": "string"
69729	//     }
69730	//   },
69731	//   "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions",
69732	//   "request": {
69733	//     "$ref": "TestPermissionsRequest"
69734	//   },
69735	//   "response": {
69736	//     "$ref": "TestPermissionsResponse"
69737	//   },
69738	//   "scopes": [
69739	//     "https://www.googleapis.com/auth/cloud-platform",
69740	//     "https://www.googleapis.com/auth/compute",
69741	//     "https://www.googleapis.com/auth/compute.readonly"
69742	//   ]
69743	// }
69744
69745}
69746
69747// method id "compute.globalAddresses.delete":
69748
69749type GlobalAddressesDeleteCall struct {
69750	s          *Service
69751	project    string
69752	address    string
69753	urlParams_ gensupport.URLParams
69754	ctx_       context.Context
69755	header_    http.Header
69756}
69757
69758// Delete: Deletes the specified address resource.
69759//
69760// - address: Name of the address resource to delete.
69761// - project: Project ID for this request.
69762// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
69763func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
69764	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69765	c.project = project
69766	c.address = address
69767	return c
69768}
69769
69770// RequestId sets the optional parameter "requestId": An optional
69771// request ID to identify requests. Specify a unique request ID so that
69772// if you must retry your request, the server will know to ignore the
69773// request if it has already been completed.
69774//
69775// For example, consider a situation where you make an initial request
69776// and the request times out. If you make the request again with the
69777// same request ID, the server can check if original operation with the
69778// same request ID was received, and if so, will ignore the second
69779// request. This prevents clients from accidentally creating duplicate
69780// commitments.
69781//
69782// The request ID must be a valid UUID with the exception that zero UUID
69783// is not supported (00000000-0000-0000-0000-000000000000).
69784func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
69785	c.urlParams_.Set("requestId", requestId)
69786	return c
69787}
69788
69789// Fields allows partial responses to be retrieved. See
69790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69791// for more information.
69792func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
69793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69794	return c
69795}
69796
69797// Context sets the context to be used in this call's Do method. Any
69798// pending HTTP request will be aborted if the provided context is
69799// canceled.
69800func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
69801	c.ctx_ = ctx
69802	return c
69803}
69804
69805// Header returns an http.Header that can be modified by the caller to
69806// add HTTP headers to the request.
69807func (c *GlobalAddressesDeleteCall) Header() http.Header {
69808	if c.header_ == nil {
69809		c.header_ = make(http.Header)
69810	}
69811	return c.header_
69812}
69813
69814func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
69815	reqHeaders := make(http.Header)
69816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69817	for k, v := range c.header_ {
69818		reqHeaders[k] = v
69819	}
69820	reqHeaders.Set("User-Agent", c.s.userAgent())
69821	var body io.Reader = nil
69822	c.urlParams_.Set("alt", alt)
69823	c.urlParams_.Set("prettyPrint", "false")
69824	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
69825	urls += "?" + c.urlParams_.Encode()
69826	req, err := http.NewRequest("DELETE", urls, body)
69827	if err != nil {
69828		return nil, err
69829	}
69830	req.Header = reqHeaders
69831	googleapi.Expand(req.URL, map[string]string{
69832		"project": c.project,
69833		"address": c.address,
69834	})
69835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69836}
69837
69838// Do executes the "compute.globalAddresses.delete" call.
69839// Exactly one of *Operation or error will be non-nil. Any non-2xx
69840// status code is an error. Response headers are in either
69841// *Operation.ServerResponse.Header or (if a response was returned at
69842// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69843// to check whether the returned error was because
69844// http.StatusNotModified was returned.
69845func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69846	gensupport.SetOptions(c.urlParams_, opts...)
69847	res, err := c.doRequest("json")
69848	if res != nil && res.StatusCode == http.StatusNotModified {
69849		if res.Body != nil {
69850			res.Body.Close()
69851		}
69852		return nil, &googleapi.Error{
69853			Code:   res.StatusCode,
69854			Header: res.Header,
69855		}
69856	}
69857	if err != nil {
69858		return nil, err
69859	}
69860	defer googleapi.CloseBody(res)
69861	if err := googleapi.CheckResponse(res); err != nil {
69862		return nil, err
69863	}
69864	ret := &Operation{
69865		ServerResponse: googleapi.ServerResponse{
69866			Header:         res.Header,
69867			HTTPStatusCode: res.StatusCode,
69868		},
69869	}
69870	target := &ret
69871	if err := gensupport.DecodeResponse(target, res); err != nil {
69872		return nil, err
69873	}
69874	return ret, nil
69875	// {
69876	//   "description": "Deletes the specified address resource.",
69877	//   "httpMethod": "DELETE",
69878	//   "id": "compute.globalAddresses.delete",
69879	//   "parameterOrder": [
69880	//     "project",
69881	//     "address"
69882	//   ],
69883	//   "parameters": {
69884	//     "address": {
69885	//       "description": "Name of the address resource to delete.",
69886	//       "location": "path",
69887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69888	//       "required": true,
69889	//       "type": "string"
69890	//     },
69891	//     "project": {
69892	//       "description": "Project ID for this request.",
69893	//       "location": "path",
69894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69895	//       "required": true,
69896	//       "type": "string"
69897	//     },
69898	//     "requestId": {
69899	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69900	//       "location": "query",
69901	//       "type": "string"
69902	//     }
69903	//   },
69904	//   "path": "projects/{project}/global/addresses/{address}",
69905	//   "response": {
69906	//     "$ref": "Operation"
69907	//   },
69908	//   "scopes": [
69909	//     "https://www.googleapis.com/auth/cloud-platform",
69910	//     "https://www.googleapis.com/auth/compute"
69911	//   ]
69912	// }
69913
69914}
69915
69916// method id "compute.globalAddresses.get":
69917
69918type GlobalAddressesGetCall struct {
69919	s            *Service
69920	project      string
69921	address      string
69922	urlParams_   gensupport.URLParams
69923	ifNoneMatch_ string
69924	ctx_         context.Context
69925	header_      http.Header
69926}
69927
69928// Get: Returns the specified address resource. Gets a list of available
69929// addresses by making a list() request.
69930//
69931// - address: Name of the address resource to return.
69932// - project: Project ID for this request.
69933// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
69934func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
69935	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69936	c.project = project
69937	c.address = address
69938	return c
69939}
69940
69941// Fields allows partial responses to be retrieved. See
69942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69943// for more information.
69944func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
69945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69946	return c
69947}
69948
69949// IfNoneMatch sets the optional parameter which makes the operation
69950// fail if the object's ETag matches the given value. This is useful for
69951// getting updates only after the object has changed since the last
69952// request. Use googleapi.IsNotModified to check whether the response
69953// error from Do is the result of In-None-Match.
69954func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
69955	c.ifNoneMatch_ = entityTag
69956	return c
69957}
69958
69959// Context sets the context to be used in this call's Do method. Any
69960// pending HTTP request will be aborted if the provided context is
69961// canceled.
69962func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
69963	c.ctx_ = ctx
69964	return c
69965}
69966
69967// Header returns an http.Header that can be modified by the caller to
69968// add HTTP headers to the request.
69969func (c *GlobalAddressesGetCall) Header() http.Header {
69970	if c.header_ == nil {
69971		c.header_ = make(http.Header)
69972	}
69973	return c.header_
69974}
69975
69976func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
69977	reqHeaders := make(http.Header)
69978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69979	for k, v := range c.header_ {
69980		reqHeaders[k] = v
69981	}
69982	reqHeaders.Set("User-Agent", c.s.userAgent())
69983	if c.ifNoneMatch_ != "" {
69984		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69985	}
69986	var body io.Reader = nil
69987	c.urlParams_.Set("alt", alt)
69988	c.urlParams_.Set("prettyPrint", "false")
69989	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
69990	urls += "?" + c.urlParams_.Encode()
69991	req, err := http.NewRequest("GET", urls, body)
69992	if err != nil {
69993		return nil, err
69994	}
69995	req.Header = reqHeaders
69996	googleapi.Expand(req.URL, map[string]string{
69997		"project": c.project,
69998		"address": c.address,
69999	})
70000	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70001}
70002
70003// Do executes the "compute.globalAddresses.get" call.
70004// Exactly one of *Address or error will be non-nil. Any non-2xx status
70005// code is an error. Response headers are in either
70006// *Address.ServerResponse.Header or (if a response was returned at all)
70007// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
70008// check whether the returned error was because http.StatusNotModified
70009// was returned.
70010func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
70011	gensupport.SetOptions(c.urlParams_, opts...)
70012	res, err := c.doRequest("json")
70013	if res != nil && res.StatusCode == http.StatusNotModified {
70014		if res.Body != nil {
70015			res.Body.Close()
70016		}
70017		return nil, &googleapi.Error{
70018			Code:   res.StatusCode,
70019			Header: res.Header,
70020		}
70021	}
70022	if err != nil {
70023		return nil, err
70024	}
70025	defer googleapi.CloseBody(res)
70026	if err := googleapi.CheckResponse(res); err != nil {
70027		return nil, err
70028	}
70029	ret := &Address{
70030		ServerResponse: googleapi.ServerResponse{
70031			Header:         res.Header,
70032			HTTPStatusCode: res.StatusCode,
70033		},
70034	}
70035	target := &ret
70036	if err := gensupport.DecodeResponse(target, res); err != nil {
70037		return nil, err
70038	}
70039	return ret, nil
70040	// {
70041	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
70042	//   "httpMethod": "GET",
70043	//   "id": "compute.globalAddresses.get",
70044	//   "parameterOrder": [
70045	//     "project",
70046	//     "address"
70047	//   ],
70048	//   "parameters": {
70049	//     "address": {
70050	//       "description": "Name of the address resource to return.",
70051	//       "location": "path",
70052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70053	//       "required": true,
70054	//       "type": "string"
70055	//     },
70056	//     "project": {
70057	//       "description": "Project ID for this request.",
70058	//       "location": "path",
70059	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70060	//       "required": true,
70061	//       "type": "string"
70062	//     }
70063	//   },
70064	//   "path": "projects/{project}/global/addresses/{address}",
70065	//   "response": {
70066	//     "$ref": "Address"
70067	//   },
70068	//   "scopes": [
70069	//     "https://www.googleapis.com/auth/cloud-platform",
70070	//     "https://www.googleapis.com/auth/compute",
70071	//     "https://www.googleapis.com/auth/compute.readonly"
70072	//   ]
70073	// }
70074
70075}
70076
70077// method id "compute.globalAddresses.insert":
70078
70079type GlobalAddressesInsertCall struct {
70080	s          *Service
70081	project    string
70082	address    *Address
70083	urlParams_ gensupport.URLParams
70084	ctx_       context.Context
70085	header_    http.Header
70086}
70087
70088// Insert: Creates an address resource in the specified project by using
70089// the data included in the request.
70090//
70091// - project: Project ID for this request.
70092// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
70093func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
70094	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70095	c.project = project
70096	c.address = address
70097	return c
70098}
70099
70100// RequestId sets the optional parameter "requestId": An optional
70101// request ID to identify requests. Specify a unique request ID so that
70102// if you must retry your request, the server will know to ignore the
70103// request if it has already been completed.
70104//
70105// For example, consider a situation where you make an initial request
70106// and the request times out. If you make the request again with the
70107// same request ID, the server can check if original operation with the
70108// same request ID was received, and if so, will ignore the second
70109// request. This prevents clients from accidentally creating duplicate
70110// commitments.
70111//
70112// The request ID must be a valid UUID with the exception that zero UUID
70113// is not supported (00000000-0000-0000-0000-000000000000).
70114func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
70115	c.urlParams_.Set("requestId", requestId)
70116	return c
70117}
70118
70119// Fields allows partial responses to be retrieved. See
70120// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70121// for more information.
70122func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
70123	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70124	return c
70125}
70126
70127// Context sets the context to be used in this call's Do method. Any
70128// pending HTTP request will be aborted if the provided context is
70129// canceled.
70130func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
70131	c.ctx_ = ctx
70132	return c
70133}
70134
70135// Header returns an http.Header that can be modified by the caller to
70136// add HTTP headers to the request.
70137func (c *GlobalAddressesInsertCall) Header() http.Header {
70138	if c.header_ == nil {
70139		c.header_ = make(http.Header)
70140	}
70141	return c.header_
70142}
70143
70144func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
70145	reqHeaders := make(http.Header)
70146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70147	for k, v := range c.header_ {
70148		reqHeaders[k] = v
70149	}
70150	reqHeaders.Set("User-Agent", c.s.userAgent())
70151	var body io.Reader = nil
70152	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
70153	if err != nil {
70154		return nil, err
70155	}
70156	reqHeaders.Set("Content-Type", "application/json")
70157	c.urlParams_.Set("alt", alt)
70158	c.urlParams_.Set("prettyPrint", "false")
70159	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
70160	urls += "?" + c.urlParams_.Encode()
70161	req, err := http.NewRequest("POST", urls, body)
70162	if err != nil {
70163		return nil, err
70164	}
70165	req.Header = reqHeaders
70166	googleapi.Expand(req.URL, map[string]string{
70167		"project": c.project,
70168	})
70169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70170}
70171
70172// Do executes the "compute.globalAddresses.insert" call.
70173// Exactly one of *Operation or error will be non-nil. Any non-2xx
70174// status code is an error. Response headers are in either
70175// *Operation.ServerResponse.Header or (if a response was returned at
70176// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70177// to check whether the returned error was because
70178// http.StatusNotModified was returned.
70179func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70180	gensupport.SetOptions(c.urlParams_, opts...)
70181	res, err := c.doRequest("json")
70182	if res != nil && res.StatusCode == http.StatusNotModified {
70183		if res.Body != nil {
70184			res.Body.Close()
70185		}
70186		return nil, &googleapi.Error{
70187			Code:   res.StatusCode,
70188			Header: res.Header,
70189		}
70190	}
70191	if err != nil {
70192		return nil, err
70193	}
70194	defer googleapi.CloseBody(res)
70195	if err := googleapi.CheckResponse(res); err != nil {
70196		return nil, err
70197	}
70198	ret := &Operation{
70199		ServerResponse: googleapi.ServerResponse{
70200			Header:         res.Header,
70201			HTTPStatusCode: res.StatusCode,
70202		},
70203	}
70204	target := &ret
70205	if err := gensupport.DecodeResponse(target, res); err != nil {
70206		return nil, err
70207	}
70208	return ret, nil
70209	// {
70210	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
70211	//   "httpMethod": "POST",
70212	//   "id": "compute.globalAddresses.insert",
70213	//   "parameterOrder": [
70214	//     "project"
70215	//   ],
70216	//   "parameters": {
70217	//     "project": {
70218	//       "description": "Project ID for this request.",
70219	//       "location": "path",
70220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70221	//       "required": true,
70222	//       "type": "string"
70223	//     },
70224	//     "requestId": {
70225	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70226	//       "location": "query",
70227	//       "type": "string"
70228	//     }
70229	//   },
70230	//   "path": "projects/{project}/global/addresses",
70231	//   "request": {
70232	//     "$ref": "Address"
70233	//   },
70234	//   "response": {
70235	//     "$ref": "Operation"
70236	//   },
70237	//   "scopes": [
70238	//     "https://www.googleapis.com/auth/cloud-platform",
70239	//     "https://www.googleapis.com/auth/compute"
70240	//   ]
70241	// }
70242
70243}
70244
70245// method id "compute.globalAddresses.list":
70246
70247type GlobalAddressesListCall struct {
70248	s            *Service
70249	project      string
70250	urlParams_   gensupport.URLParams
70251	ifNoneMatch_ string
70252	ctx_         context.Context
70253	header_      http.Header
70254}
70255
70256// List: Retrieves a list of global addresses.
70257//
70258// - project: Project ID for this request.
70259// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
70260func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
70261	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70262	c.project = project
70263	return c
70264}
70265
70266// Filter sets the optional parameter "filter": A filter expression that
70267// filters resources listed in the response. The expression must specify
70268// the field name, a comparison operator, and the value that you want to
70269// use for filtering. The value must be a string, a number, or a
70270// boolean. The comparison operator must be either `=`, `!=`, `>`, or
70271// `<`.
70272//
70273// For example, if you are filtering Compute Engine instances, you can
70274// exclude instances named `example-instance` by specifying `name !=
70275// example-instance`.
70276//
70277// You can also filter nested fields. For example, you could specify
70278// `scheduling.automaticRestart = false` to include instances only if
70279// they are not scheduled for automatic restarts. You can use filtering
70280// on nested fields to filter based on resource labels.
70281//
70282// To filter on multiple expressions, provide each separate expression
70283// within parentheses. For example: ``` (scheduling.automaticRestart =
70284// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
70285// is an `AND` expression. However, you can include `AND` and `OR`
70286// expressions explicitly. For example: ``` (cpuPlatform = "Intel
70287// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
70288// (scheduling.automaticRestart = true) ```
70289func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
70290	c.urlParams_.Set("filter", filter)
70291	return c
70292}
70293
70294// MaxResults sets the optional parameter "maxResults": The maximum
70295// number of results per page that should be returned. If the number of
70296// available results is larger than `maxResults`, Compute Engine returns
70297// a `nextPageToken` that can be used to get the next page of results in
70298// subsequent list requests. Acceptable values are `0` to `500`,
70299// inclusive. (Default: `500`)
70300func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
70301	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70302	return c
70303}
70304
70305// OrderBy sets the optional parameter "orderBy": Sorts list results by
70306// a certain order. By default, results are returned in alphanumerical
70307// order based on the resource name.
70308//
70309// You can also sort results in descending order based on the creation
70310// timestamp using `orderBy="creationTimestamp desc". This sorts
70311// results based on the `creationTimestamp` field in reverse
70312// chronological order (newest result first). Use this to sort resources
70313// like operations so that the newest operation is returned
70314// first.
70315//
70316// Currently, only sorting by `name` or `creationTimestamp desc` is
70317// supported.
70318func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
70319	c.urlParams_.Set("orderBy", orderBy)
70320	return c
70321}
70322
70323// PageToken sets the optional parameter "pageToken": Specifies a page
70324// token to use. Set `pageToken` to the `nextPageToken` returned by a
70325// previous list request to get the next page of results.
70326func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
70327	c.urlParams_.Set("pageToken", pageToken)
70328	return c
70329}
70330
70331// ReturnPartialSuccess sets the optional parameter
70332// "returnPartialSuccess": Opt-in for partial success behavior which
70333// provides partial results in case of failure. The default value is
70334// false.
70335func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalAddressesListCall {
70336	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
70337	return c
70338}
70339
70340// Fields allows partial responses to be retrieved. See
70341// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70342// for more information.
70343func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
70344	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70345	return c
70346}
70347
70348// IfNoneMatch sets the optional parameter which makes the operation
70349// fail if the object's ETag matches the given value. This is useful for
70350// getting updates only after the object has changed since the last
70351// request. Use googleapi.IsNotModified to check whether the response
70352// error from Do is the result of In-None-Match.
70353func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
70354	c.ifNoneMatch_ = entityTag
70355	return c
70356}
70357
70358// Context sets the context to be used in this call's Do method. Any
70359// pending HTTP request will be aborted if the provided context is
70360// canceled.
70361func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
70362	c.ctx_ = ctx
70363	return c
70364}
70365
70366// Header returns an http.Header that can be modified by the caller to
70367// add HTTP headers to the request.
70368func (c *GlobalAddressesListCall) Header() http.Header {
70369	if c.header_ == nil {
70370		c.header_ = make(http.Header)
70371	}
70372	return c.header_
70373}
70374
70375func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
70376	reqHeaders := make(http.Header)
70377	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70378	for k, v := range c.header_ {
70379		reqHeaders[k] = v
70380	}
70381	reqHeaders.Set("User-Agent", c.s.userAgent())
70382	if c.ifNoneMatch_ != "" {
70383		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70384	}
70385	var body io.Reader = nil
70386	c.urlParams_.Set("alt", alt)
70387	c.urlParams_.Set("prettyPrint", "false")
70388	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
70389	urls += "?" + c.urlParams_.Encode()
70390	req, err := http.NewRequest("GET", urls, body)
70391	if err != nil {
70392		return nil, err
70393	}
70394	req.Header = reqHeaders
70395	googleapi.Expand(req.URL, map[string]string{
70396		"project": c.project,
70397	})
70398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70399}
70400
70401// Do executes the "compute.globalAddresses.list" call.
70402// Exactly one of *AddressList or error will be non-nil. Any non-2xx
70403// status code is an error. Response headers are in either
70404// *AddressList.ServerResponse.Header or (if a response was returned at
70405// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70406// to check whether the returned error was because
70407// http.StatusNotModified was returned.
70408func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
70409	gensupport.SetOptions(c.urlParams_, opts...)
70410	res, err := c.doRequest("json")
70411	if res != nil && res.StatusCode == http.StatusNotModified {
70412		if res.Body != nil {
70413			res.Body.Close()
70414		}
70415		return nil, &googleapi.Error{
70416			Code:   res.StatusCode,
70417			Header: res.Header,
70418		}
70419	}
70420	if err != nil {
70421		return nil, err
70422	}
70423	defer googleapi.CloseBody(res)
70424	if err := googleapi.CheckResponse(res); err != nil {
70425		return nil, err
70426	}
70427	ret := &AddressList{
70428		ServerResponse: googleapi.ServerResponse{
70429			Header:         res.Header,
70430			HTTPStatusCode: res.StatusCode,
70431		},
70432	}
70433	target := &ret
70434	if err := gensupport.DecodeResponse(target, res); err != nil {
70435		return nil, err
70436	}
70437	return ret, nil
70438	// {
70439	//   "description": "Retrieves a list of global addresses.",
70440	//   "httpMethod": "GET",
70441	//   "id": "compute.globalAddresses.list",
70442	//   "parameterOrder": [
70443	//     "project"
70444	//   ],
70445	//   "parameters": {
70446	//     "filter": {
70447	//       "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) ```",
70448	//       "location": "query",
70449	//       "type": "string"
70450	//     },
70451	//     "maxResults": {
70452	//       "default": "500",
70453	//       "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`)",
70454	//       "format": "uint32",
70455	//       "location": "query",
70456	//       "minimum": "0",
70457	//       "type": "integer"
70458	//     },
70459	//     "orderBy": {
70460	//       "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.",
70461	//       "location": "query",
70462	//       "type": "string"
70463	//     },
70464	//     "pageToken": {
70465	//       "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.",
70466	//       "location": "query",
70467	//       "type": "string"
70468	//     },
70469	//     "project": {
70470	//       "description": "Project ID for this request.",
70471	//       "location": "path",
70472	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70473	//       "required": true,
70474	//       "type": "string"
70475	//     },
70476	//     "returnPartialSuccess": {
70477	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
70478	//       "location": "query",
70479	//       "type": "boolean"
70480	//     }
70481	//   },
70482	//   "path": "projects/{project}/global/addresses",
70483	//   "response": {
70484	//     "$ref": "AddressList"
70485	//   },
70486	//   "scopes": [
70487	//     "https://www.googleapis.com/auth/cloud-platform",
70488	//     "https://www.googleapis.com/auth/compute",
70489	//     "https://www.googleapis.com/auth/compute.readonly"
70490	//   ]
70491	// }
70492
70493}
70494
70495// Pages invokes f for each page of results.
70496// A non-nil error returned from f will halt the iteration.
70497// The provided context supersedes any context provided to the Context method.
70498func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
70499	c.ctx_ = ctx
70500	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70501	for {
70502		x, err := c.Do()
70503		if err != nil {
70504			return err
70505		}
70506		if err := f(x); err != nil {
70507			return err
70508		}
70509		if x.NextPageToken == "" {
70510			return nil
70511		}
70512		c.PageToken(x.NextPageToken)
70513	}
70514}
70515
70516// method id "compute.globalAddresses.setLabels":
70517
70518type GlobalAddressesSetLabelsCall struct {
70519	s                      *Service
70520	project                string
70521	resource               string
70522	globalsetlabelsrequest *GlobalSetLabelsRequest
70523	urlParams_             gensupport.URLParams
70524	ctx_                   context.Context
70525	header_                http.Header
70526}
70527
70528// SetLabels: Sets the labels on a GlobalAddress. To learn more about
70529// labels, read the Labeling Resources documentation.
70530//
70531// - project: Project ID for this request.
70532// - resource: Name or id of the resource for this request.
70533func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall {
70534	c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70535	c.project = project
70536	c.resource = resource
70537	c.globalsetlabelsrequest = globalsetlabelsrequest
70538	return c
70539}
70540
70541// Fields allows partial responses to be retrieved. See
70542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70543// for more information.
70544func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall {
70545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70546	return c
70547}
70548
70549// Context sets the context to be used in this call's Do method. Any
70550// pending HTTP request will be aborted if the provided context is
70551// canceled.
70552func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall {
70553	c.ctx_ = ctx
70554	return c
70555}
70556
70557// Header returns an http.Header that can be modified by the caller to
70558// add HTTP headers to the request.
70559func (c *GlobalAddressesSetLabelsCall) Header() http.Header {
70560	if c.header_ == nil {
70561		c.header_ = make(http.Header)
70562	}
70563	return c.header_
70564}
70565
70566func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
70567	reqHeaders := make(http.Header)
70568	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70569	for k, v := range c.header_ {
70570		reqHeaders[k] = v
70571	}
70572	reqHeaders.Set("User-Agent", c.s.userAgent())
70573	var body io.Reader = nil
70574	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
70575	if err != nil {
70576		return nil, err
70577	}
70578	reqHeaders.Set("Content-Type", "application/json")
70579	c.urlParams_.Set("alt", alt)
70580	c.urlParams_.Set("prettyPrint", "false")
70581	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/setLabels")
70582	urls += "?" + c.urlParams_.Encode()
70583	req, err := http.NewRequest("POST", urls, body)
70584	if err != nil {
70585		return nil, err
70586	}
70587	req.Header = reqHeaders
70588	googleapi.Expand(req.URL, map[string]string{
70589		"project":  c.project,
70590		"resource": c.resource,
70591	})
70592	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70593}
70594
70595// Do executes the "compute.globalAddresses.setLabels" call.
70596// Exactly one of *Operation or error will be non-nil. Any non-2xx
70597// status code is an error. Response headers are in either
70598// *Operation.ServerResponse.Header or (if a response was returned at
70599// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70600// to check whether the returned error was because
70601// http.StatusNotModified was returned.
70602func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70603	gensupport.SetOptions(c.urlParams_, opts...)
70604	res, err := c.doRequest("json")
70605	if res != nil && res.StatusCode == http.StatusNotModified {
70606		if res.Body != nil {
70607			res.Body.Close()
70608		}
70609		return nil, &googleapi.Error{
70610			Code:   res.StatusCode,
70611			Header: res.Header,
70612		}
70613	}
70614	if err != nil {
70615		return nil, err
70616	}
70617	defer googleapi.CloseBody(res)
70618	if err := googleapi.CheckResponse(res); err != nil {
70619		return nil, err
70620	}
70621	ret := &Operation{
70622		ServerResponse: googleapi.ServerResponse{
70623			Header:         res.Header,
70624			HTTPStatusCode: res.StatusCode,
70625		},
70626	}
70627	target := &ret
70628	if err := gensupport.DecodeResponse(target, res); err != nil {
70629		return nil, err
70630	}
70631	return ret, nil
70632	// {
70633	//   "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.",
70634	//   "httpMethod": "POST",
70635	//   "id": "compute.globalAddresses.setLabels",
70636	//   "parameterOrder": [
70637	//     "project",
70638	//     "resource"
70639	//   ],
70640	//   "parameters": {
70641	//     "project": {
70642	//       "description": "Project ID for this request.",
70643	//       "location": "path",
70644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70645	//       "required": true,
70646	//       "type": "string"
70647	//     },
70648	//     "resource": {
70649	//       "description": "Name or id of the resource for this request.",
70650	//       "location": "path",
70651	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70652	//       "required": true,
70653	//       "type": "string"
70654	//     }
70655	//   },
70656	//   "path": "projects/{project}/global/addresses/{resource}/setLabels",
70657	//   "request": {
70658	//     "$ref": "GlobalSetLabelsRequest"
70659	//   },
70660	//   "response": {
70661	//     "$ref": "Operation"
70662	//   },
70663	//   "scopes": [
70664	//     "https://www.googleapis.com/auth/cloud-platform",
70665	//     "https://www.googleapis.com/auth/compute"
70666	//   ]
70667	// }
70668
70669}
70670
70671// method id "compute.globalAddresses.testIamPermissions":
70672
70673type GlobalAddressesTestIamPermissionsCall struct {
70674	s                      *Service
70675	project                string
70676	resource               string
70677	testpermissionsrequest *TestPermissionsRequest
70678	urlParams_             gensupport.URLParams
70679	ctx_                   context.Context
70680	header_                http.Header
70681}
70682
70683// TestIamPermissions: Returns permissions that a caller has on the
70684// specified resource.
70685//
70686// - project: Project ID for this request.
70687// - resource: Name or id of the resource for this request.
70688func (r *GlobalAddressesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalAddressesTestIamPermissionsCall {
70689	c := &GlobalAddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70690	c.project = project
70691	c.resource = resource
70692	c.testpermissionsrequest = testpermissionsrequest
70693	return c
70694}
70695
70696// Fields allows partial responses to be retrieved. See
70697// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70698// for more information.
70699func (c *GlobalAddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalAddressesTestIamPermissionsCall {
70700	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70701	return c
70702}
70703
70704// Context sets the context to be used in this call's Do method. Any
70705// pending HTTP request will be aborted if the provided context is
70706// canceled.
70707func (c *GlobalAddressesTestIamPermissionsCall) Context(ctx context.Context) *GlobalAddressesTestIamPermissionsCall {
70708	c.ctx_ = ctx
70709	return c
70710}
70711
70712// Header returns an http.Header that can be modified by the caller to
70713// add HTTP headers to the request.
70714func (c *GlobalAddressesTestIamPermissionsCall) Header() http.Header {
70715	if c.header_ == nil {
70716		c.header_ = make(http.Header)
70717	}
70718	return c.header_
70719}
70720
70721func (c *GlobalAddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
70722	reqHeaders := make(http.Header)
70723	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70724	for k, v := range c.header_ {
70725		reqHeaders[k] = v
70726	}
70727	reqHeaders.Set("User-Agent", c.s.userAgent())
70728	var body io.Reader = nil
70729	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
70730	if err != nil {
70731		return nil, err
70732	}
70733	reqHeaders.Set("Content-Type", "application/json")
70734	c.urlParams_.Set("alt", alt)
70735	c.urlParams_.Set("prettyPrint", "false")
70736	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/testIamPermissions")
70737	urls += "?" + c.urlParams_.Encode()
70738	req, err := http.NewRequest("POST", urls, body)
70739	if err != nil {
70740		return nil, err
70741	}
70742	req.Header = reqHeaders
70743	googleapi.Expand(req.URL, map[string]string{
70744		"project":  c.project,
70745		"resource": c.resource,
70746	})
70747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70748}
70749
70750// Do executes the "compute.globalAddresses.testIamPermissions" call.
70751// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
70752// non-2xx status code is an error. Response headers are in either
70753// *TestPermissionsResponse.ServerResponse.Header or (if a response was
70754// returned at all) in error.(*googleapi.Error).Header. Use
70755// googleapi.IsNotModified to check whether the returned error was
70756// because http.StatusNotModified was returned.
70757func (c *GlobalAddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
70758	gensupport.SetOptions(c.urlParams_, opts...)
70759	res, err := c.doRequest("json")
70760	if res != nil && res.StatusCode == http.StatusNotModified {
70761		if res.Body != nil {
70762			res.Body.Close()
70763		}
70764		return nil, &googleapi.Error{
70765			Code:   res.StatusCode,
70766			Header: res.Header,
70767		}
70768	}
70769	if err != nil {
70770		return nil, err
70771	}
70772	defer googleapi.CloseBody(res)
70773	if err := googleapi.CheckResponse(res); err != nil {
70774		return nil, err
70775	}
70776	ret := &TestPermissionsResponse{
70777		ServerResponse: googleapi.ServerResponse{
70778			Header:         res.Header,
70779			HTTPStatusCode: res.StatusCode,
70780		},
70781	}
70782	target := &ret
70783	if err := gensupport.DecodeResponse(target, res); err != nil {
70784		return nil, err
70785	}
70786	return ret, nil
70787	// {
70788	//   "description": "Returns permissions that a caller has on the specified resource.",
70789	//   "httpMethod": "POST",
70790	//   "id": "compute.globalAddresses.testIamPermissions",
70791	//   "parameterOrder": [
70792	//     "project",
70793	//     "resource"
70794	//   ],
70795	//   "parameters": {
70796	//     "project": {
70797	//       "description": "Project ID for this request.",
70798	//       "location": "path",
70799	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70800	//       "required": true,
70801	//       "type": "string"
70802	//     },
70803	//     "resource": {
70804	//       "description": "Name or id of the resource for this request.",
70805	//       "location": "path",
70806	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70807	//       "required": true,
70808	//       "type": "string"
70809	//     }
70810	//   },
70811	//   "path": "projects/{project}/global/addresses/{resource}/testIamPermissions",
70812	//   "request": {
70813	//     "$ref": "TestPermissionsRequest"
70814	//   },
70815	//   "response": {
70816	//     "$ref": "TestPermissionsResponse"
70817	//   },
70818	//   "scopes": [
70819	//     "https://www.googleapis.com/auth/cloud-platform",
70820	//     "https://www.googleapis.com/auth/compute",
70821	//     "https://www.googleapis.com/auth/compute.readonly"
70822	//   ]
70823	// }
70824
70825}
70826
70827// method id "compute.globalForwardingRules.delete":
70828
70829type GlobalForwardingRulesDeleteCall struct {
70830	s              *Service
70831	project        string
70832	forwardingRule string
70833	urlParams_     gensupport.URLParams
70834	ctx_           context.Context
70835	header_        http.Header
70836}
70837
70838// Delete: Deletes the specified GlobalForwardingRule resource.
70839//
70840// - forwardingRule: Name of the ForwardingRule resource to delete.
70841// - project: Project ID for this request.
70842// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
70843func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
70844	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70845	c.project = project
70846	c.forwardingRule = forwardingRule
70847	return c
70848}
70849
70850// RequestId sets the optional parameter "requestId": An optional
70851// request ID to identify requests. Specify a unique request ID so that
70852// if you must retry your request, the server will know to ignore the
70853// request if it has already been completed.
70854//
70855// For example, consider a situation where you make an initial request
70856// and the request times out. If you make the request again with the
70857// same request ID, the server can check if original operation with the
70858// same request ID was received, and if so, will ignore the second
70859// request. This prevents clients from accidentally creating duplicate
70860// commitments.
70861//
70862// The request ID must be a valid UUID with the exception that zero UUID
70863// is not supported (00000000-0000-0000-0000-000000000000).
70864func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
70865	c.urlParams_.Set("requestId", requestId)
70866	return c
70867}
70868
70869// Fields allows partial responses to be retrieved. See
70870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70871// for more information.
70872func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
70873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70874	return c
70875}
70876
70877// Context sets the context to be used in this call's Do method. Any
70878// pending HTTP request will be aborted if the provided context is
70879// canceled.
70880func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
70881	c.ctx_ = ctx
70882	return c
70883}
70884
70885// Header returns an http.Header that can be modified by the caller to
70886// add HTTP headers to the request.
70887func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
70888	if c.header_ == nil {
70889		c.header_ = make(http.Header)
70890	}
70891	return c.header_
70892}
70893
70894func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
70895	reqHeaders := make(http.Header)
70896	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70897	for k, v := range c.header_ {
70898		reqHeaders[k] = v
70899	}
70900	reqHeaders.Set("User-Agent", c.s.userAgent())
70901	var body io.Reader = nil
70902	c.urlParams_.Set("alt", alt)
70903	c.urlParams_.Set("prettyPrint", "false")
70904	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
70905	urls += "?" + c.urlParams_.Encode()
70906	req, err := http.NewRequest("DELETE", urls, body)
70907	if err != nil {
70908		return nil, err
70909	}
70910	req.Header = reqHeaders
70911	googleapi.Expand(req.URL, map[string]string{
70912		"project":        c.project,
70913		"forwardingRule": c.forwardingRule,
70914	})
70915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70916}
70917
70918// Do executes the "compute.globalForwardingRules.delete" call.
70919// Exactly one of *Operation or error will be non-nil. Any non-2xx
70920// status code is an error. Response headers are in either
70921// *Operation.ServerResponse.Header or (if a response was returned at
70922// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70923// to check whether the returned error was because
70924// http.StatusNotModified was returned.
70925func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70926	gensupport.SetOptions(c.urlParams_, opts...)
70927	res, err := c.doRequest("json")
70928	if res != nil && res.StatusCode == http.StatusNotModified {
70929		if res.Body != nil {
70930			res.Body.Close()
70931		}
70932		return nil, &googleapi.Error{
70933			Code:   res.StatusCode,
70934			Header: res.Header,
70935		}
70936	}
70937	if err != nil {
70938		return nil, err
70939	}
70940	defer googleapi.CloseBody(res)
70941	if err := googleapi.CheckResponse(res); err != nil {
70942		return nil, err
70943	}
70944	ret := &Operation{
70945		ServerResponse: googleapi.ServerResponse{
70946			Header:         res.Header,
70947			HTTPStatusCode: res.StatusCode,
70948		},
70949	}
70950	target := &ret
70951	if err := gensupport.DecodeResponse(target, res); err != nil {
70952		return nil, err
70953	}
70954	return ret, nil
70955	// {
70956	//   "description": "Deletes the specified GlobalForwardingRule resource.",
70957	//   "httpMethod": "DELETE",
70958	//   "id": "compute.globalForwardingRules.delete",
70959	//   "parameterOrder": [
70960	//     "project",
70961	//     "forwardingRule"
70962	//   ],
70963	//   "parameters": {
70964	//     "forwardingRule": {
70965	//       "description": "Name of the ForwardingRule resource to delete.",
70966	//       "location": "path",
70967	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70968	//       "required": true,
70969	//       "type": "string"
70970	//     },
70971	//     "project": {
70972	//       "description": "Project ID for this request.",
70973	//       "location": "path",
70974	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70975	//       "required": true,
70976	//       "type": "string"
70977	//     },
70978	//     "requestId": {
70979	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70980	//       "location": "query",
70981	//       "type": "string"
70982	//     }
70983	//   },
70984	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
70985	//   "response": {
70986	//     "$ref": "Operation"
70987	//   },
70988	//   "scopes": [
70989	//     "https://www.googleapis.com/auth/cloud-platform",
70990	//     "https://www.googleapis.com/auth/compute"
70991	//   ]
70992	// }
70993
70994}
70995
70996// method id "compute.globalForwardingRules.get":
70997
70998type GlobalForwardingRulesGetCall struct {
70999	s              *Service
71000	project        string
71001	forwardingRule string
71002	urlParams_     gensupport.URLParams
71003	ifNoneMatch_   string
71004	ctx_           context.Context
71005	header_        http.Header
71006}
71007
71008// Get: Returns the specified GlobalForwardingRule resource. Gets a list
71009// of available forwarding rules by making a list() request.
71010//
71011// - forwardingRule: Name of the ForwardingRule resource to return.
71012// - project: Project ID for this request.
71013// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
71014func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
71015	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71016	c.project = project
71017	c.forwardingRule = forwardingRule
71018	return c
71019}
71020
71021// Fields allows partial responses to be retrieved. See
71022// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71023// for more information.
71024func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
71025	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71026	return c
71027}
71028
71029// IfNoneMatch sets the optional parameter which makes the operation
71030// fail if the object's ETag matches the given value. This is useful for
71031// getting updates only after the object has changed since the last
71032// request. Use googleapi.IsNotModified to check whether the response
71033// error from Do is the result of In-None-Match.
71034func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
71035	c.ifNoneMatch_ = entityTag
71036	return c
71037}
71038
71039// Context sets the context to be used in this call's Do method. Any
71040// pending HTTP request will be aborted if the provided context is
71041// canceled.
71042func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
71043	c.ctx_ = ctx
71044	return c
71045}
71046
71047// Header returns an http.Header that can be modified by the caller to
71048// add HTTP headers to the request.
71049func (c *GlobalForwardingRulesGetCall) Header() http.Header {
71050	if c.header_ == nil {
71051		c.header_ = make(http.Header)
71052	}
71053	return c.header_
71054}
71055
71056func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
71057	reqHeaders := make(http.Header)
71058	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71059	for k, v := range c.header_ {
71060		reqHeaders[k] = v
71061	}
71062	reqHeaders.Set("User-Agent", c.s.userAgent())
71063	if c.ifNoneMatch_ != "" {
71064		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71065	}
71066	var body io.Reader = nil
71067	c.urlParams_.Set("alt", alt)
71068	c.urlParams_.Set("prettyPrint", "false")
71069	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
71070	urls += "?" + c.urlParams_.Encode()
71071	req, err := http.NewRequest("GET", urls, body)
71072	if err != nil {
71073		return nil, err
71074	}
71075	req.Header = reqHeaders
71076	googleapi.Expand(req.URL, map[string]string{
71077		"project":        c.project,
71078		"forwardingRule": c.forwardingRule,
71079	})
71080	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71081}
71082
71083// Do executes the "compute.globalForwardingRules.get" call.
71084// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
71085// status code is an error. Response headers are in either
71086// *ForwardingRule.ServerResponse.Header or (if a response was returned
71087// at all) in error.(*googleapi.Error).Header. Use
71088// googleapi.IsNotModified to check whether the returned error was
71089// because http.StatusNotModified was returned.
71090func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
71091	gensupport.SetOptions(c.urlParams_, opts...)
71092	res, err := c.doRequest("json")
71093	if res != nil && res.StatusCode == http.StatusNotModified {
71094		if res.Body != nil {
71095			res.Body.Close()
71096		}
71097		return nil, &googleapi.Error{
71098			Code:   res.StatusCode,
71099			Header: res.Header,
71100		}
71101	}
71102	if err != nil {
71103		return nil, err
71104	}
71105	defer googleapi.CloseBody(res)
71106	if err := googleapi.CheckResponse(res); err != nil {
71107		return nil, err
71108	}
71109	ret := &ForwardingRule{
71110		ServerResponse: googleapi.ServerResponse{
71111			Header:         res.Header,
71112			HTTPStatusCode: res.StatusCode,
71113		},
71114	}
71115	target := &ret
71116	if err := gensupport.DecodeResponse(target, res); err != nil {
71117		return nil, err
71118	}
71119	return ret, nil
71120	// {
71121	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
71122	//   "httpMethod": "GET",
71123	//   "id": "compute.globalForwardingRules.get",
71124	//   "parameterOrder": [
71125	//     "project",
71126	//     "forwardingRule"
71127	//   ],
71128	//   "parameters": {
71129	//     "forwardingRule": {
71130	//       "description": "Name of the ForwardingRule resource to return.",
71131	//       "location": "path",
71132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71133	//       "required": true,
71134	//       "type": "string"
71135	//     },
71136	//     "project": {
71137	//       "description": "Project ID for this request.",
71138	//       "location": "path",
71139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71140	//       "required": true,
71141	//       "type": "string"
71142	//     }
71143	//   },
71144	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
71145	//   "response": {
71146	//     "$ref": "ForwardingRule"
71147	//   },
71148	//   "scopes": [
71149	//     "https://www.googleapis.com/auth/cloud-platform",
71150	//     "https://www.googleapis.com/auth/compute",
71151	//     "https://www.googleapis.com/auth/compute.readonly"
71152	//   ]
71153	// }
71154
71155}
71156
71157// method id "compute.globalForwardingRules.insert":
71158
71159type GlobalForwardingRulesInsertCall struct {
71160	s              *Service
71161	project        string
71162	forwardingrule *ForwardingRule
71163	urlParams_     gensupport.URLParams
71164	ctx_           context.Context
71165	header_        http.Header
71166}
71167
71168// Insert: Creates a GlobalForwardingRule resource in the specified
71169// project using the data included in the request.
71170//
71171// - project: Project ID for this request.
71172// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
71173func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
71174	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71175	c.project = project
71176	c.forwardingrule = forwardingrule
71177	return c
71178}
71179
71180// RequestId sets the optional parameter "requestId": An optional
71181// request ID to identify requests. Specify a unique request ID so that
71182// if you must retry your request, the server will know to ignore the
71183// request if it has already been completed.
71184//
71185// For example, consider a situation where you make an initial request
71186// and the request times out. If you make the request again with the
71187// same request ID, the server can check if original operation with the
71188// same request ID was received, and if so, will ignore the second
71189// request. This prevents clients from accidentally creating duplicate
71190// commitments.
71191//
71192// The request ID must be a valid UUID with the exception that zero UUID
71193// is not supported (00000000-0000-0000-0000-000000000000).
71194func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
71195	c.urlParams_.Set("requestId", requestId)
71196	return c
71197}
71198
71199// Fields allows partial responses to be retrieved. See
71200// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71201// for more information.
71202func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
71203	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71204	return c
71205}
71206
71207// Context sets the context to be used in this call's Do method. Any
71208// pending HTTP request will be aborted if the provided context is
71209// canceled.
71210func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
71211	c.ctx_ = ctx
71212	return c
71213}
71214
71215// Header returns an http.Header that can be modified by the caller to
71216// add HTTP headers to the request.
71217func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
71218	if c.header_ == nil {
71219		c.header_ = make(http.Header)
71220	}
71221	return c.header_
71222}
71223
71224func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
71225	reqHeaders := make(http.Header)
71226	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71227	for k, v := range c.header_ {
71228		reqHeaders[k] = v
71229	}
71230	reqHeaders.Set("User-Agent", c.s.userAgent())
71231	var body io.Reader = nil
71232	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
71233	if err != nil {
71234		return nil, err
71235	}
71236	reqHeaders.Set("Content-Type", "application/json")
71237	c.urlParams_.Set("alt", alt)
71238	c.urlParams_.Set("prettyPrint", "false")
71239	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
71240	urls += "?" + c.urlParams_.Encode()
71241	req, err := http.NewRequest("POST", urls, body)
71242	if err != nil {
71243		return nil, err
71244	}
71245	req.Header = reqHeaders
71246	googleapi.Expand(req.URL, map[string]string{
71247		"project": c.project,
71248	})
71249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71250}
71251
71252// Do executes the "compute.globalForwardingRules.insert" call.
71253// Exactly one of *Operation or error will be non-nil. Any non-2xx
71254// status code is an error. Response headers are in either
71255// *Operation.ServerResponse.Header or (if a response was returned at
71256// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71257// to check whether the returned error was because
71258// http.StatusNotModified was returned.
71259func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71260	gensupport.SetOptions(c.urlParams_, opts...)
71261	res, err := c.doRequest("json")
71262	if res != nil && res.StatusCode == http.StatusNotModified {
71263		if res.Body != nil {
71264			res.Body.Close()
71265		}
71266		return nil, &googleapi.Error{
71267			Code:   res.StatusCode,
71268			Header: res.Header,
71269		}
71270	}
71271	if err != nil {
71272		return nil, err
71273	}
71274	defer googleapi.CloseBody(res)
71275	if err := googleapi.CheckResponse(res); err != nil {
71276		return nil, err
71277	}
71278	ret := &Operation{
71279		ServerResponse: googleapi.ServerResponse{
71280			Header:         res.Header,
71281			HTTPStatusCode: res.StatusCode,
71282		},
71283	}
71284	target := &ret
71285	if err := gensupport.DecodeResponse(target, res); err != nil {
71286		return nil, err
71287	}
71288	return ret, nil
71289	// {
71290	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
71291	//   "httpMethod": "POST",
71292	//   "id": "compute.globalForwardingRules.insert",
71293	//   "parameterOrder": [
71294	//     "project"
71295	//   ],
71296	//   "parameters": {
71297	//     "project": {
71298	//       "description": "Project ID for this request.",
71299	//       "location": "path",
71300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71301	//       "required": true,
71302	//       "type": "string"
71303	//     },
71304	//     "requestId": {
71305	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71306	//       "location": "query",
71307	//       "type": "string"
71308	//     }
71309	//   },
71310	//   "path": "projects/{project}/global/forwardingRules",
71311	//   "request": {
71312	//     "$ref": "ForwardingRule"
71313	//   },
71314	//   "response": {
71315	//     "$ref": "Operation"
71316	//   },
71317	//   "scopes": [
71318	//     "https://www.googleapis.com/auth/cloud-platform",
71319	//     "https://www.googleapis.com/auth/compute"
71320	//   ]
71321	// }
71322
71323}
71324
71325// method id "compute.globalForwardingRules.list":
71326
71327type GlobalForwardingRulesListCall struct {
71328	s            *Service
71329	project      string
71330	urlParams_   gensupport.URLParams
71331	ifNoneMatch_ string
71332	ctx_         context.Context
71333	header_      http.Header
71334}
71335
71336// List: Retrieves a list of GlobalForwardingRule resources available to
71337// the specified project.
71338//
71339// - project: Project ID for this request.
71340// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
71341func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
71342	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71343	c.project = project
71344	return c
71345}
71346
71347// Filter sets the optional parameter "filter": A filter expression that
71348// filters resources listed in the response. The expression must specify
71349// the field name, a comparison operator, and the value that you want to
71350// use for filtering. The value must be a string, a number, or a
71351// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71352// `<`.
71353//
71354// For example, if you are filtering Compute Engine instances, you can
71355// exclude instances named `example-instance` by specifying `name !=
71356// example-instance`.
71357//
71358// You can also filter nested fields. For example, you could specify
71359// `scheduling.automaticRestart = false` to include instances only if
71360// they are not scheduled for automatic restarts. You can use filtering
71361// on nested fields to filter based on resource labels.
71362//
71363// To filter on multiple expressions, provide each separate expression
71364// within parentheses. For example: ``` (scheduling.automaticRestart =
71365// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
71366// is an `AND` expression. However, you can include `AND` and `OR`
71367// expressions explicitly. For example: ``` (cpuPlatform = "Intel
71368// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
71369// (scheduling.automaticRestart = true) ```
71370func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
71371	c.urlParams_.Set("filter", filter)
71372	return c
71373}
71374
71375// MaxResults sets the optional parameter "maxResults": The maximum
71376// number of results per page that should be returned. If the number of
71377// available results is larger than `maxResults`, Compute Engine returns
71378// a `nextPageToken` that can be used to get the next page of results in
71379// subsequent list requests. Acceptable values are `0` to `500`,
71380// inclusive. (Default: `500`)
71381func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
71382	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71383	return c
71384}
71385
71386// OrderBy sets the optional parameter "orderBy": Sorts list results by
71387// a certain order. By default, results are returned in alphanumerical
71388// order based on the resource name.
71389//
71390// You can also sort results in descending order based on the creation
71391// timestamp using `orderBy="creationTimestamp desc". This sorts
71392// results based on the `creationTimestamp` field in reverse
71393// chronological order (newest result first). Use this to sort resources
71394// like operations so that the newest operation is returned
71395// first.
71396//
71397// Currently, only sorting by `name` or `creationTimestamp desc` is
71398// supported.
71399func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
71400	c.urlParams_.Set("orderBy", orderBy)
71401	return c
71402}
71403
71404// PageToken sets the optional parameter "pageToken": Specifies a page
71405// token to use. Set `pageToken` to the `nextPageToken` returned by a
71406// previous list request to get the next page of results.
71407func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
71408	c.urlParams_.Set("pageToken", pageToken)
71409	return c
71410}
71411
71412// ReturnPartialSuccess sets the optional parameter
71413// "returnPartialSuccess": Opt-in for partial success behavior which
71414// provides partial results in case of failure. The default value is
71415// false.
71416func (c *GlobalForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalForwardingRulesListCall {
71417	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71418	return c
71419}
71420
71421// Fields allows partial responses to be retrieved. See
71422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71423// for more information.
71424func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
71425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71426	return c
71427}
71428
71429// IfNoneMatch sets the optional parameter which makes the operation
71430// fail if the object's ETag matches the given value. This is useful for
71431// getting updates only after the object has changed since the last
71432// request. Use googleapi.IsNotModified to check whether the response
71433// error from Do is the result of In-None-Match.
71434func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
71435	c.ifNoneMatch_ = entityTag
71436	return c
71437}
71438
71439// Context sets the context to be used in this call's Do method. Any
71440// pending HTTP request will be aborted if the provided context is
71441// canceled.
71442func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
71443	c.ctx_ = ctx
71444	return c
71445}
71446
71447// Header returns an http.Header that can be modified by the caller to
71448// add HTTP headers to the request.
71449func (c *GlobalForwardingRulesListCall) Header() http.Header {
71450	if c.header_ == nil {
71451		c.header_ = make(http.Header)
71452	}
71453	return c.header_
71454}
71455
71456func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
71457	reqHeaders := make(http.Header)
71458	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71459	for k, v := range c.header_ {
71460		reqHeaders[k] = v
71461	}
71462	reqHeaders.Set("User-Agent", c.s.userAgent())
71463	if c.ifNoneMatch_ != "" {
71464		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71465	}
71466	var body io.Reader = nil
71467	c.urlParams_.Set("alt", alt)
71468	c.urlParams_.Set("prettyPrint", "false")
71469	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
71470	urls += "?" + c.urlParams_.Encode()
71471	req, err := http.NewRequest("GET", urls, body)
71472	if err != nil {
71473		return nil, err
71474	}
71475	req.Header = reqHeaders
71476	googleapi.Expand(req.URL, map[string]string{
71477		"project": c.project,
71478	})
71479	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71480}
71481
71482// Do executes the "compute.globalForwardingRules.list" call.
71483// Exactly one of *ForwardingRuleList or error will be non-nil. Any
71484// non-2xx status code is an error. Response headers are in either
71485// *ForwardingRuleList.ServerResponse.Header or (if a response was
71486// returned at all) in error.(*googleapi.Error).Header. Use
71487// googleapi.IsNotModified to check whether the returned error was
71488// because http.StatusNotModified was returned.
71489func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
71490	gensupport.SetOptions(c.urlParams_, opts...)
71491	res, err := c.doRequest("json")
71492	if res != nil && res.StatusCode == http.StatusNotModified {
71493		if res.Body != nil {
71494			res.Body.Close()
71495		}
71496		return nil, &googleapi.Error{
71497			Code:   res.StatusCode,
71498			Header: res.Header,
71499		}
71500	}
71501	if err != nil {
71502		return nil, err
71503	}
71504	defer googleapi.CloseBody(res)
71505	if err := googleapi.CheckResponse(res); err != nil {
71506		return nil, err
71507	}
71508	ret := &ForwardingRuleList{
71509		ServerResponse: googleapi.ServerResponse{
71510			Header:         res.Header,
71511			HTTPStatusCode: res.StatusCode,
71512		},
71513	}
71514	target := &ret
71515	if err := gensupport.DecodeResponse(target, res); err != nil {
71516		return nil, err
71517	}
71518	return ret, nil
71519	// {
71520	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
71521	//   "httpMethod": "GET",
71522	//   "id": "compute.globalForwardingRules.list",
71523	//   "parameterOrder": [
71524	//     "project"
71525	//   ],
71526	//   "parameters": {
71527	//     "filter": {
71528	//       "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) ```",
71529	//       "location": "query",
71530	//       "type": "string"
71531	//     },
71532	//     "maxResults": {
71533	//       "default": "500",
71534	//       "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`)",
71535	//       "format": "uint32",
71536	//       "location": "query",
71537	//       "minimum": "0",
71538	//       "type": "integer"
71539	//     },
71540	//     "orderBy": {
71541	//       "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.",
71542	//       "location": "query",
71543	//       "type": "string"
71544	//     },
71545	//     "pageToken": {
71546	//       "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.",
71547	//       "location": "query",
71548	//       "type": "string"
71549	//     },
71550	//     "project": {
71551	//       "description": "Project ID for this request.",
71552	//       "location": "path",
71553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71554	//       "required": true,
71555	//       "type": "string"
71556	//     },
71557	//     "returnPartialSuccess": {
71558	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
71559	//       "location": "query",
71560	//       "type": "boolean"
71561	//     }
71562	//   },
71563	//   "path": "projects/{project}/global/forwardingRules",
71564	//   "response": {
71565	//     "$ref": "ForwardingRuleList"
71566	//   },
71567	//   "scopes": [
71568	//     "https://www.googleapis.com/auth/cloud-platform",
71569	//     "https://www.googleapis.com/auth/compute",
71570	//     "https://www.googleapis.com/auth/compute.readonly"
71571	//   ]
71572	// }
71573
71574}
71575
71576// Pages invokes f for each page of results.
71577// A non-nil error returned from f will halt the iteration.
71578// The provided context supersedes any context provided to the Context method.
71579func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
71580	c.ctx_ = ctx
71581	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71582	for {
71583		x, err := c.Do()
71584		if err != nil {
71585			return err
71586		}
71587		if err := f(x); err != nil {
71588			return err
71589		}
71590		if x.NextPageToken == "" {
71591			return nil
71592		}
71593		c.PageToken(x.NextPageToken)
71594	}
71595}
71596
71597// method id "compute.globalForwardingRules.patch":
71598
71599type GlobalForwardingRulesPatchCall struct {
71600	s              *Service
71601	project        string
71602	forwardingRule string
71603	forwardingrule *ForwardingRule
71604	urlParams_     gensupport.URLParams
71605	ctx_           context.Context
71606	header_        http.Header
71607}
71608
71609// Patch: Updates the specified forwarding rule with the data included
71610// in the request. This method supports PATCH semantics and uses the
71611// JSON merge patch format and processing rules. Currently, you can only
71612// patch the network_tier field.
71613//
71614// - forwardingRule: Name of the ForwardingRule resource to patch.
71615// - project: Project ID for this request.
71616func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
71617	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71618	c.project = project
71619	c.forwardingRule = forwardingRule
71620	c.forwardingrule = forwardingrule
71621	return c
71622}
71623
71624// RequestId sets the optional parameter "requestId": An optional
71625// request ID to identify requests. Specify a unique request ID so that
71626// if you must retry your request, the server will know to ignore the
71627// request if it has already been completed.
71628//
71629// For example, consider a situation where you make an initial request
71630// and the request times out. If you make the request again with the
71631// same request ID, the server can check if original operation with the
71632// same request ID was received, and if so, will ignore the second
71633// request. This prevents clients from accidentally creating duplicate
71634// commitments.
71635//
71636// The request ID must be a valid UUID with the exception that zero UUID
71637// is not supported (00000000-0000-0000-0000-000000000000).
71638func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
71639	c.urlParams_.Set("requestId", requestId)
71640	return c
71641}
71642
71643// Fields allows partial responses to be retrieved. See
71644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71645// for more information.
71646func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
71647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71648	return c
71649}
71650
71651// Context sets the context to be used in this call's Do method. Any
71652// pending HTTP request will be aborted if the provided context is
71653// canceled.
71654func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
71655	c.ctx_ = ctx
71656	return c
71657}
71658
71659// Header returns an http.Header that can be modified by the caller to
71660// add HTTP headers to the request.
71661func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
71662	if c.header_ == nil {
71663		c.header_ = make(http.Header)
71664	}
71665	return c.header_
71666}
71667
71668func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
71669	reqHeaders := make(http.Header)
71670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71671	for k, v := range c.header_ {
71672		reqHeaders[k] = v
71673	}
71674	reqHeaders.Set("User-Agent", c.s.userAgent())
71675	var body io.Reader = nil
71676	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
71677	if err != nil {
71678		return nil, err
71679	}
71680	reqHeaders.Set("Content-Type", "application/json")
71681	c.urlParams_.Set("alt", alt)
71682	c.urlParams_.Set("prettyPrint", "false")
71683	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
71684	urls += "?" + c.urlParams_.Encode()
71685	req, err := http.NewRequest("PATCH", urls, body)
71686	if err != nil {
71687		return nil, err
71688	}
71689	req.Header = reqHeaders
71690	googleapi.Expand(req.URL, map[string]string{
71691		"project":        c.project,
71692		"forwardingRule": c.forwardingRule,
71693	})
71694	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71695}
71696
71697// Do executes the "compute.globalForwardingRules.patch" call.
71698// Exactly one of *Operation or error will be non-nil. Any non-2xx
71699// status code is an error. Response headers are in either
71700// *Operation.ServerResponse.Header or (if a response was returned at
71701// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71702// to check whether the returned error was because
71703// http.StatusNotModified was returned.
71704func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71705	gensupport.SetOptions(c.urlParams_, opts...)
71706	res, err := c.doRequest("json")
71707	if res != nil && res.StatusCode == http.StatusNotModified {
71708		if res.Body != nil {
71709			res.Body.Close()
71710		}
71711		return nil, &googleapi.Error{
71712			Code:   res.StatusCode,
71713			Header: res.Header,
71714		}
71715	}
71716	if err != nil {
71717		return nil, err
71718	}
71719	defer googleapi.CloseBody(res)
71720	if err := googleapi.CheckResponse(res); err != nil {
71721		return nil, err
71722	}
71723	ret := &Operation{
71724		ServerResponse: googleapi.ServerResponse{
71725			Header:         res.Header,
71726			HTTPStatusCode: res.StatusCode,
71727		},
71728	}
71729	target := &ret
71730	if err := gensupport.DecodeResponse(target, res); err != nil {
71731		return nil, err
71732	}
71733	return ret, nil
71734	// {
71735	//   "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.",
71736	//   "httpMethod": "PATCH",
71737	//   "id": "compute.globalForwardingRules.patch",
71738	//   "parameterOrder": [
71739	//     "project",
71740	//     "forwardingRule"
71741	//   ],
71742	//   "parameters": {
71743	//     "forwardingRule": {
71744	//       "description": "Name of the ForwardingRule resource to patch.",
71745	//       "location": "path",
71746	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71747	//       "required": true,
71748	//       "type": "string"
71749	//     },
71750	//     "project": {
71751	//       "description": "Project ID for this request.",
71752	//       "location": "path",
71753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71754	//       "required": true,
71755	//       "type": "string"
71756	//     },
71757	//     "requestId": {
71758	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71759	//       "location": "query",
71760	//       "type": "string"
71761	//     }
71762	//   },
71763	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
71764	//   "request": {
71765	//     "$ref": "ForwardingRule"
71766	//   },
71767	//   "response": {
71768	//     "$ref": "Operation"
71769	//   },
71770	//   "scopes": [
71771	//     "https://www.googleapis.com/auth/cloud-platform",
71772	//     "https://www.googleapis.com/auth/compute"
71773	//   ]
71774	// }
71775
71776}
71777
71778// method id "compute.globalForwardingRules.setLabels":
71779
71780type GlobalForwardingRulesSetLabelsCall struct {
71781	s                      *Service
71782	project                string
71783	resource               string
71784	globalsetlabelsrequest *GlobalSetLabelsRequest
71785	urlParams_             gensupport.URLParams
71786	ctx_                   context.Context
71787	header_                http.Header
71788}
71789
71790// SetLabels: Sets the labels on the specified resource. To learn more
71791// about labels, read the Labeling Resources documentation.
71792//
71793// - project: Project ID for this request.
71794// - resource: Name or id of the resource for this request.
71795func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
71796	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71797	c.project = project
71798	c.resource = resource
71799	c.globalsetlabelsrequest = globalsetlabelsrequest
71800	return c
71801}
71802
71803// Fields allows partial responses to be retrieved. See
71804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71805// for more information.
71806func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
71807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71808	return c
71809}
71810
71811// Context sets the context to be used in this call's Do method. Any
71812// pending HTTP request will be aborted if the provided context is
71813// canceled.
71814func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
71815	c.ctx_ = ctx
71816	return c
71817}
71818
71819// Header returns an http.Header that can be modified by the caller to
71820// add HTTP headers to the request.
71821func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
71822	if c.header_ == nil {
71823		c.header_ = make(http.Header)
71824	}
71825	return c.header_
71826}
71827
71828func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
71829	reqHeaders := make(http.Header)
71830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71831	for k, v := range c.header_ {
71832		reqHeaders[k] = v
71833	}
71834	reqHeaders.Set("User-Agent", c.s.userAgent())
71835	var body io.Reader = nil
71836	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
71837	if err != nil {
71838		return nil, err
71839	}
71840	reqHeaders.Set("Content-Type", "application/json")
71841	c.urlParams_.Set("alt", alt)
71842	c.urlParams_.Set("prettyPrint", "false")
71843	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/setLabels")
71844	urls += "?" + c.urlParams_.Encode()
71845	req, err := http.NewRequest("POST", urls, body)
71846	if err != nil {
71847		return nil, err
71848	}
71849	req.Header = reqHeaders
71850	googleapi.Expand(req.URL, map[string]string{
71851		"project":  c.project,
71852		"resource": c.resource,
71853	})
71854	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71855}
71856
71857// Do executes the "compute.globalForwardingRules.setLabels" call.
71858// Exactly one of *Operation or error will be non-nil. Any non-2xx
71859// status code is an error. Response headers are in either
71860// *Operation.ServerResponse.Header or (if a response was returned at
71861// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71862// to check whether the returned error was because
71863// http.StatusNotModified was returned.
71864func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71865	gensupport.SetOptions(c.urlParams_, opts...)
71866	res, err := c.doRequest("json")
71867	if res != nil && res.StatusCode == http.StatusNotModified {
71868		if res.Body != nil {
71869			res.Body.Close()
71870		}
71871		return nil, &googleapi.Error{
71872			Code:   res.StatusCode,
71873			Header: res.Header,
71874		}
71875	}
71876	if err != nil {
71877		return nil, err
71878	}
71879	defer googleapi.CloseBody(res)
71880	if err := googleapi.CheckResponse(res); err != nil {
71881		return nil, err
71882	}
71883	ret := &Operation{
71884		ServerResponse: googleapi.ServerResponse{
71885			Header:         res.Header,
71886			HTTPStatusCode: res.StatusCode,
71887		},
71888	}
71889	target := &ret
71890	if err := gensupport.DecodeResponse(target, res); err != nil {
71891		return nil, err
71892	}
71893	return ret, nil
71894	// {
71895	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
71896	//   "httpMethod": "POST",
71897	//   "id": "compute.globalForwardingRules.setLabels",
71898	//   "parameterOrder": [
71899	//     "project",
71900	//     "resource"
71901	//   ],
71902	//   "parameters": {
71903	//     "project": {
71904	//       "description": "Project ID for this request.",
71905	//       "location": "path",
71906	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71907	//       "required": true,
71908	//       "type": "string"
71909	//     },
71910	//     "resource": {
71911	//       "description": "Name or id of the resource for this request.",
71912	//       "location": "path",
71913	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71914	//       "required": true,
71915	//       "type": "string"
71916	//     }
71917	//   },
71918	//   "path": "projects/{project}/global/forwardingRules/{resource}/setLabels",
71919	//   "request": {
71920	//     "$ref": "GlobalSetLabelsRequest"
71921	//   },
71922	//   "response": {
71923	//     "$ref": "Operation"
71924	//   },
71925	//   "scopes": [
71926	//     "https://www.googleapis.com/auth/cloud-platform",
71927	//     "https://www.googleapis.com/auth/compute"
71928	//   ]
71929	// }
71930
71931}
71932
71933// method id "compute.globalForwardingRules.setTarget":
71934
71935type GlobalForwardingRulesSetTargetCall struct {
71936	s               *Service
71937	project         string
71938	forwardingRule  string
71939	targetreference *TargetReference
71940	urlParams_      gensupport.URLParams
71941	ctx_            context.Context
71942	header_         http.Header
71943}
71944
71945// SetTarget: Changes target URL for the GlobalForwardingRule resource.
71946// The new target should be of the same type as the old target.
71947//
71948// - forwardingRule: Name of the ForwardingRule resource in which target
71949//   is to be set.
71950// - project: Project ID for this request.
71951// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
71952func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
71953	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71954	c.project = project
71955	c.forwardingRule = forwardingRule
71956	c.targetreference = targetreference
71957	return c
71958}
71959
71960// RequestId sets the optional parameter "requestId": An optional
71961// request ID to identify requests. Specify a unique request ID so that
71962// if you must retry your request, the server will know to ignore the
71963// request if it has already been completed.
71964//
71965// For example, consider a situation where you make an initial request
71966// and the request times out. If you make the request again with the
71967// same request ID, the server can check if original operation with the
71968// same request ID was received, and if so, will ignore the second
71969// request. This prevents clients from accidentally creating duplicate
71970// commitments.
71971//
71972// The request ID must be a valid UUID with the exception that zero UUID
71973// is not supported (00000000-0000-0000-0000-000000000000).
71974func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
71975	c.urlParams_.Set("requestId", requestId)
71976	return c
71977}
71978
71979// Fields allows partial responses to be retrieved. See
71980// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71981// for more information.
71982func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
71983	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71984	return c
71985}
71986
71987// Context sets the context to be used in this call's Do method. Any
71988// pending HTTP request will be aborted if the provided context is
71989// canceled.
71990func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
71991	c.ctx_ = ctx
71992	return c
71993}
71994
71995// Header returns an http.Header that can be modified by the caller to
71996// add HTTP headers to the request.
71997func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
71998	if c.header_ == nil {
71999		c.header_ = make(http.Header)
72000	}
72001	return c.header_
72002}
72003
72004func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
72005	reqHeaders := make(http.Header)
72006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72007	for k, v := range c.header_ {
72008		reqHeaders[k] = v
72009	}
72010	reqHeaders.Set("User-Agent", c.s.userAgent())
72011	var body io.Reader = nil
72012	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
72013	if err != nil {
72014		return nil, err
72015	}
72016	reqHeaders.Set("Content-Type", "application/json")
72017	c.urlParams_.Set("alt", alt)
72018	c.urlParams_.Set("prettyPrint", "false")
72019	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget")
72020	urls += "?" + c.urlParams_.Encode()
72021	req, err := http.NewRequest("POST", urls, body)
72022	if err != nil {
72023		return nil, err
72024	}
72025	req.Header = reqHeaders
72026	googleapi.Expand(req.URL, map[string]string{
72027		"project":        c.project,
72028		"forwardingRule": c.forwardingRule,
72029	})
72030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72031}
72032
72033// Do executes the "compute.globalForwardingRules.setTarget" call.
72034// Exactly one of *Operation or error will be non-nil. Any non-2xx
72035// status code is an error. Response headers are in either
72036// *Operation.ServerResponse.Header or (if a response was returned at
72037// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72038// to check whether the returned error was because
72039// http.StatusNotModified was returned.
72040func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72041	gensupport.SetOptions(c.urlParams_, opts...)
72042	res, err := c.doRequest("json")
72043	if res != nil && res.StatusCode == http.StatusNotModified {
72044		if res.Body != nil {
72045			res.Body.Close()
72046		}
72047		return nil, &googleapi.Error{
72048			Code:   res.StatusCode,
72049			Header: res.Header,
72050		}
72051	}
72052	if err != nil {
72053		return nil, err
72054	}
72055	defer googleapi.CloseBody(res)
72056	if err := googleapi.CheckResponse(res); err != nil {
72057		return nil, err
72058	}
72059	ret := &Operation{
72060		ServerResponse: googleapi.ServerResponse{
72061			Header:         res.Header,
72062			HTTPStatusCode: res.StatusCode,
72063		},
72064	}
72065	target := &ret
72066	if err := gensupport.DecodeResponse(target, res); err != nil {
72067		return nil, err
72068	}
72069	return ret, nil
72070	// {
72071	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
72072	//   "httpMethod": "POST",
72073	//   "id": "compute.globalForwardingRules.setTarget",
72074	//   "parameterOrder": [
72075	//     "project",
72076	//     "forwardingRule"
72077	//   ],
72078	//   "parameters": {
72079	//     "forwardingRule": {
72080	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
72081	//       "location": "path",
72082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72083	//       "required": true,
72084	//       "type": "string"
72085	//     },
72086	//     "project": {
72087	//       "description": "Project ID for this request.",
72088	//       "location": "path",
72089	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72090	//       "required": true,
72091	//       "type": "string"
72092	//     },
72093	//     "requestId": {
72094	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72095	//       "location": "query",
72096	//       "type": "string"
72097	//     }
72098	//   },
72099	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
72100	//   "request": {
72101	//     "$ref": "TargetReference"
72102	//   },
72103	//   "response": {
72104	//     "$ref": "Operation"
72105	//   },
72106	//   "scopes": [
72107	//     "https://www.googleapis.com/auth/cloud-platform",
72108	//     "https://www.googleapis.com/auth/compute"
72109	//   ]
72110	// }
72111
72112}
72113
72114// method id "compute.globalForwardingRules.testIamPermissions":
72115
72116type GlobalForwardingRulesTestIamPermissionsCall struct {
72117	s                      *Service
72118	project                string
72119	resource               string
72120	testpermissionsrequest *TestPermissionsRequest
72121	urlParams_             gensupport.URLParams
72122	ctx_                   context.Context
72123	header_                http.Header
72124}
72125
72126// TestIamPermissions: Returns permissions that a caller has on the
72127// specified resource.
72128//
72129// - project: Project ID for this request.
72130// - resource: Name or id of the resource for this request.
72131func (r *GlobalForwardingRulesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalForwardingRulesTestIamPermissionsCall {
72132	c := &GlobalForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72133	c.project = project
72134	c.resource = resource
72135	c.testpermissionsrequest = testpermissionsrequest
72136	return c
72137}
72138
72139// Fields allows partial responses to be retrieved. See
72140// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72141// for more information.
72142func (c *GlobalForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesTestIamPermissionsCall {
72143	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72144	return c
72145}
72146
72147// Context sets the context to be used in this call's Do method. Any
72148// pending HTTP request will be aborted if the provided context is
72149// canceled.
72150func (c *GlobalForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *GlobalForwardingRulesTestIamPermissionsCall {
72151	c.ctx_ = ctx
72152	return c
72153}
72154
72155// Header returns an http.Header that can be modified by the caller to
72156// add HTTP headers to the request.
72157func (c *GlobalForwardingRulesTestIamPermissionsCall) Header() http.Header {
72158	if c.header_ == nil {
72159		c.header_ = make(http.Header)
72160	}
72161	return c.header_
72162}
72163
72164func (c *GlobalForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
72165	reqHeaders := make(http.Header)
72166	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72167	for k, v := range c.header_ {
72168		reqHeaders[k] = v
72169	}
72170	reqHeaders.Set("User-Agent", c.s.userAgent())
72171	var body io.Reader = nil
72172	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
72173	if err != nil {
72174		return nil, err
72175	}
72176	reqHeaders.Set("Content-Type", "application/json")
72177	c.urlParams_.Set("alt", alt)
72178	c.urlParams_.Set("prettyPrint", "false")
72179	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/testIamPermissions")
72180	urls += "?" + c.urlParams_.Encode()
72181	req, err := http.NewRequest("POST", urls, body)
72182	if err != nil {
72183		return nil, err
72184	}
72185	req.Header = reqHeaders
72186	googleapi.Expand(req.URL, map[string]string{
72187		"project":  c.project,
72188		"resource": c.resource,
72189	})
72190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72191}
72192
72193// Do executes the "compute.globalForwardingRules.testIamPermissions" call.
72194// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
72195// non-2xx status code is an error. Response headers are in either
72196// *TestPermissionsResponse.ServerResponse.Header or (if a response was
72197// returned at all) in error.(*googleapi.Error).Header. Use
72198// googleapi.IsNotModified to check whether the returned error was
72199// because http.StatusNotModified was returned.
72200func (c *GlobalForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
72201	gensupport.SetOptions(c.urlParams_, opts...)
72202	res, err := c.doRequest("json")
72203	if res != nil && res.StatusCode == http.StatusNotModified {
72204		if res.Body != nil {
72205			res.Body.Close()
72206		}
72207		return nil, &googleapi.Error{
72208			Code:   res.StatusCode,
72209			Header: res.Header,
72210		}
72211	}
72212	if err != nil {
72213		return nil, err
72214	}
72215	defer googleapi.CloseBody(res)
72216	if err := googleapi.CheckResponse(res); err != nil {
72217		return nil, err
72218	}
72219	ret := &TestPermissionsResponse{
72220		ServerResponse: googleapi.ServerResponse{
72221			Header:         res.Header,
72222			HTTPStatusCode: res.StatusCode,
72223		},
72224	}
72225	target := &ret
72226	if err := gensupport.DecodeResponse(target, res); err != nil {
72227		return nil, err
72228	}
72229	return ret, nil
72230	// {
72231	//   "description": "Returns permissions that a caller has on the specified resource.",
72232	//   "httpMethod": "POST",
72233	//   "id": "compute.globalForwardingRules.testIamPermissions",
72234	//   "parameterOrder": [
72235	//     "project",
72236	//     "resource"
72237	//   ],
72238	//   "parameters": {
72239	//     "project": {
72240	//       "description": "Project ID for this request.",
72241	//       "location": "path",
72242	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72243	//       "required": true,
72244	//       "type": "string"
72245	//     },
72246	//     "resource": {
72247	//       "description": "Name or id of the resource for this request.",
72248	//       "location": "path",
72249	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72250	//       "required": true,
72251	//       "type": "string"
72252	//     }
72253	//   },
72254	//   "path": "projects/{project}/global/forwardingRules/{resource}/testIamPermissions",
72255	//   "request": {
72256	//     "$ref": "TestPermissionsRequest"
72257	//   },
72258	//   "response": {
72259	//     "$ref": "TestPermissionsResponse"
72260	//   },
72261	//   "scopes": [
72262	//     "https://www.googleapis.com/auth/cloud-platform",
72263	//     "https://www.googleapis.com/auth/compute",
72264	//     "https://www.googleapis.com/auth/compute.readonly"
72265	//   ]
72266	// }
72267
72268}
72269
72270// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
72271
72272type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
72273	s                                                 *Service
72274	project                                           string
72275	networkEndpointGroup                              string
72276	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
72277	urlParams_                                        gensupport.URLParams
72278	ctx_                                              context.Context
72279	header_                                           http.Header
72280}
72281
72282// AttachNetworkEndpoints: Attach a network endpoint to the specified
72283// network endpoint group.
72284//
72285// - networkEndpointGroup: The name of the network endpoint group where
72286//   you are attaching network endpoints to. It should comply with
72287//   RFC1035.
72288// - project: Project ID for this request.
72289func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
72290	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72291	c.project = project
72292	c.networkEndpointGroup = networkEndpointGroup
72293	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
72294	return c
72295}
72296
72297// RequestId sets the optional parameter "requestId": An optional
72298// request ID to identify requests. Specify a unique request ID so that
72299// if you must retry your request, the server will know to ignore the
72300// request if it has already been completed.
72301//
72302// For example, consider a situation where you make an initial request
72303// and the request times out. If you make the request again with the
72304// same request ID, the server can check if original operation with the
72305// same request ID was received, and if so, will ignore the second
72306// request. This prevents clients from accidentally creating duplicate
72307// commitments.
72308//
72309// The request ID must be a valid UUID with the exception that zero UUID
72310// is not supported (00000000-0000-0000-0000-000000000000).
72311func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
72312	c.urlParams_.Set("requestId", requestId)
72313	return c
72314}
72315
72316// Fields allows partial responses to be retrieved. See
72317// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72318// for more information.
72319func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
72320	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72321	return c
72322}
72323
72324// Context sets the context to be used in this call's Do method. Any
72325// pending HTTP request will be aborted if the provided context is
72326// canceled.
72327func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
72328	c.ctx_ = ctx
72329	return c
72330}
72331
72332// Header returns an http.Header that can be modified by the caller to
72333// add HTTP headers to the request.
72334func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
72335	if c.header_ == nil {
72336		c.header_ = make(http.Header)
72337	}
72338	return c.header_
72339}
72340
72341func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
72342	reqHeaders := make(http.Header)
72343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72344	for k, v := range c.header_ {
72345		reqHeaders[k] = v
72346	}
72347	reqHeaders.Set("User-Agent", c.s.userAgent())
72348	var body io.Reader = nil
72349	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
72350	if err != nil {
72351		return nil, err
72352	}
72353	reqHeaders.Set("Content-Type", "application/json")
72354	c.urlParams_.Set("alt", alt)
72355	c.urlParams_.Set("prettyPrint", "false")
72356	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
72357	urls += "?" + c.urlParams_.Encode()
72358	req, err := http.NewRequest("POST", urls, body)
72359	if err != nil {
72360		return nil, err
72361	}
72362	req.Header = reqHeaders
72363	googleapi.Expand(req.URL, map[string]string{
72364		"project":              c.project,
72365		"networkEndpointGroup": c.networkEndpointGroup,
72366	})
72367	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72368}
72369
72370// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
72371// Exactly one of *Operation or error will be non-nil. Any non-2xx
72372// status code is an error. Response headers are in either
72373// *Operation.ServerResponse.Header or (if a response was returned at
72374// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72375// to check whether the returned error was because
72376// http.StatusNotModified was returned.
72377func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72378	gensupport.SetOptions(c.urlParams_, opts...)
72379	res, err := c.doRequest("json")
72380	if res != nil && res.StatusCode == http.StatusNotModified {
72381		if res.Body != nil {
72382			res.Body.Close()
72383		}
72384		return nil, &googleapi.Error{
72385			Code:   res.StatusCode,
72386			Header: res.Header,
72387		}
72388	}
72389	if err != nil {
72390		return nil, err
72391	}
72392	defer googleapi.CloseBody(res)
72393	if err := googleapi.CheckResponse(res); err != nil {
72394		return nil, err
72395	}
72396	ret := &Operation{
72397		ServerResponse: googleapi.ServerResponse{
72398			Header:         res.Header,
72399			HTTPStatusCode: res.StatusCode,
72400		},
72401	}
72402	target := &ret
72403	if err := gensupport.DecodeResponse(target, res); err != nil {
72404		return nil, err
72405	}
72406	return ret, nil
72407	// {
72408	//   "description": "Attach a network endpoint to the specified network endpoint group.",
72409	//   "httpMethod": "POST",
72410	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
72411	//   "parameterOrder": [
72412	//     "project",
72413	//     "networkEndpointGroup"
72414	//   ],
72415	//   "parameters": {
72416	//     "networkEndpointGroup": {
72417	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
72418	//       "location": "path",
72419	//       "required": true,
72420	//       "type": "string"
72421	//     },
72422	//     "project": {
72423	//       "description": "Project ID for this request.",
72424	//       "location": "path",
72425	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72426	//       "required": true,
72427	//       "type": "string"
72428	//     },
72429	//     "requestId": {
72430	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72431	//       "location": "query",
72432	//       "type": "string"
72433	//     }
72434	//   },
72435	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
72436	//   "request": {
72437	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
72438	//   },
72439	//   "response": {
72440	//     "$ref": "Operation"
72441	//   },
72442	//   "scopes": [
72443	//     "https://www.googleapis.com/auth/cloud-platform",
72444	//     "https://www.googleapis.com/auth/compute"
72445	//   ]
72446	// }
72447
72448}
72449
72450// method id "compute.globalNetworkEndpointGroups.delete":
72451
72452type GlobalNetworkEndpointGroupsDeleteCall struct {
72453	s                    *Service
72454	project              string
72455	networkEndpointGroup string
72456	urlParams_           gensupport.URLParams
72457	ctx_                 context.Context
72458	header_              http.Header
72459}
72460
72461// Delete: Deletes the specified network endpoint group.Note that the
72462// NEG cannot be deleted if there are backend services referencing it.
72463//
72464// - networkEndpointGroup: The name of the network endpoint group to
72465//   delete. It should comply with RFC1035.
72466// - project: Project ID for this request.
72467func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
72468	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72469	c.project = project
72470	c.networkEndpointGroup = networkEndpointGroup
72471	return c
72472}
72473
72474// RequestId sets the optional parameter "requestId": An optional
72475// request ID to identify requests. Specify a unique request ID so that
72476// if you must retry your request, the server will know to ignore the
72477// request if it has already been completed.
72478//
72479// For example, consider a situation where you make an initial request
72480// and the request times out. If you make the request again with the
72481// same request ID, the server can check if original operation with the
72482// same request ID was received, and if so, will ignore the second
72483// request. This prevents clients from accidentally creating duplicate
72484// commitments.
72485//
72486// The request ID must be a valid UUID with the exception that zero UUID
72487// is not supported (00000000-0000-0000-0000-000000000000).
72488func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
72489	c.urlParams_.Set("requestId", requestId)
72490	return c
72491}
72492
72493// Fields allows partial responses to be retrieved. See
72494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72495// for more information.
72496func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
72497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72498	return c
72499}
72500
72501// Context sets the context to be used in this call's Do method. Any
72502// pending HTTP request will be aborted if the provided context is
72503// canceled.
72504func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
72505	c.ctx_ = ctx
72506	return c
72507}
72508
72509// Header returns an http.Header that can be modified by the caller to
72510// add HTTP headers to the request.
72511func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
72512	if c.header_ == nil {
72513		c.header_ = make(http.Header)
72514	}
72515	return c.header_
72516}
72517
72518func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
72519	reqHeaders := make(http.Header)
72520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72521	for k, v := range c.header_ {
72522		reqHeaders[k] = v
72523	}
72524	reqHeaders.Set("User-Agent", c.s.userAgent())
72525	var body io.Reader = nil
72526	c.urlParams_.Set("alt", alt)
72527	c.urlParams_.Set("prettyPrint", "false")
72528	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
72529	urls += "?" + c.urlParams_.Encode()
72530	req, err := http.NewRequest("DELETE", urls, body)
72531	if err != nil {
72532		return nil, err
72533	}
72534	req.Header = reqHeaders
72535	googleapi.Expand(req.URL, map[string]string{
72536		"project":              c.project,
72537		"networkEndpointGroup": c.networkEndpointGroup,
72538	})
72539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72540}
72541
72542// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
72543// Exactly one of *Operation or error will be non-nil. Any non-2xx
72544// status code is an error. Response headers are in either
72545// *Operation.ServerResponse.Header or (if a response was returned at
72546// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72547// to check whether the returned error was because
72548// http.StatusNotModified was returned.
72549func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72550	gensupport.SetOptions(c.urlParams_, opts...)
72551	res, err := c.doRequest("json")
72552	if res != nil && res.StatusCode == http.StatusNotModified {
72553		if res.Body != nil {
72554			res.Body.Close()
72555		}
72556		return nil, &googleapi.Error{
72557			Code:   res.StatusCode,
72558			Header: res.Header,
72559		}
72560	}
72561	if err != nil {
72562		return nil, err
72563	}
72564	defer googleapi.CloseBody(res)
72565	if err := googleapi.CheckResponse(res); err != nil {
72566		return nil, err
72567	}
72568	ret := &Operation{
72569		ServerResponse: googleapi.ServerResponse{
72570			Header:         res.Header,
72571			HTTPStatusCode: res.StatusCode,
72572		},
72573	}
72574	target := &ret
72575	if err := gensupport.DecodeResponse(target, res); err != nil {
72576		return nil, err
72577	}
72578	return ret, nil
72579	// {
72580	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
72581	//   "httpMethod": "DELETE",
72582	//   "id": "compute.globalNetworkEndpointGroups.delete",
72583	//   "parameterOrder": [
72584	//     "project",
72585	//     "networkEndpointGroup"
72586	//   ],
72587	//   "parameters": {
72588	//     "networkEndpointGroup": {
72589	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
72590	//       "location": "path",
72591	//       "required": true,
72592	//       "type": "string"
72593	//     },
72594	//     "project": {
72595	//       "description": "Project ID for this request.",
72596	//       "location": "path",
72597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72598	//       "required": true,
72599	//       "type": "string"
72600	//     },
72601	//     "requestId": {
72602	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72603	//       "location": "query",
72604	//       "type": "string"
72605	//     }
72606	//   },
72607	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
72608	//   "response": {
72609	//     "$ref": "Operation"
72610	//   },
72611	//   "scopes": [
72612	//     "https://www.googleapis.com/auth/cloud-platform",
72613	//     "https://www.googleapis.com/auth/compute"
72614	//   ]
72615	// }
72616
72617}
72618
72619// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
72620
72621type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
72622	s                                                 *Service
72623	project                                           string
72624	networkEndpointGroup                              string
72625	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
72626	urlParams_                                        gensupport.URLParams
72627	ctx_                                              context.Context
72628	header_                                           http.Header
72629}
72630
72631// DetachNetworkEndpoints: Detach the network endpoint from the
72632// specified network endpoint group.
72633//
72634// - networkEndpointGroup: The name of the network endpoint group where
72635//   you are removing network endpoints. It should comply with RFC1035.
72636// - project: Project ID for this request.
72637func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
72638	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72639	c.project = project
72640	c.networkEndpointGroup = networkEndpointGroup
72641	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
72642	return c
72643}
72644
72645// RequestId sets the optional parameter "requestId": An optional
72646// request ID to identify requests. Specify a unique request ID so that
72647// if you must retry your request, the server will know to ignore the
72648// request if it has already been completed.
72649//
72650// For example, consider a situation where you make an initial request
72651// and the request times out. If you make the request again with the
72652// same request ID, the server can check if original operation with the
72653// same request ID was received, and if so, will ignore the second
72654// request. This prevents clients from accidentally creating duplicate
72655// commitments.
72656//
72657// The request ID must be a valid UUID with the exception that zero UUID
72658// is not supported (00000000-0000-0000-0000-000000000000).
72659func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
72660	c.urlParams_.Set("requestId", requestId)
72661	return c
72662}
72663
72664// Fields allows partial responses to be retrieved. See
72665// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72666// for more information.
72667func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
72668	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72669	return c
72670}
72671
72672// Context sets the context to be used in this call's Do method. Any
72673// pending HTTP request will be aborted if the provided context is
72674// canceled.
72675func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
72676	c.ctx_ = ctx
72677	return c
72678}
72679
72680// Header returns an http.Header that can be modified by the caller to
72681// add HTTP headers to the request.
72682func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
72683	if c.header_ == nil {
72684		c.header_ = make(http.Header)
72685	}
72686	return c.header_
72687}
72688
72689func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
72690	reqHeaders := make(http.Header)
72691	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72692	for k, v := range c.header_ {
72693		reqHeaders[k] = v
72694	}
72695	reqHeaders.Set("User-Agent", c.s.userAgent())
72696	var body io.Reader = nil
72697	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
72698	if err != nil {
72699		return nil, err
72700	}
72701	reqHeaders.Set("Content-Type", "application/json")
72702	c.urlParams_.Set("alt", alt)
72703	c.urlParams_.Set("prettyPrint", "false")
72704	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
72705	urls += "?" + c.urlParams_.Encode()
72706	req, err := http.NewRequest("POST", urls, body)
72707	if err != nil {
72708		return nil, err
72709	}
72710	req.Header = reqHeaders
72711	googleapi.Expand(req.URL, map[string]string{
72712		"project":              c.project,
72713		"networkEndpointGroup": c.networkEndpointGroup,
72714	})
72715	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72716}
72717
72718// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
72719// Exactly one of *Operation or error will be non-nil. Any non-2xx
72720// status code is an error. Response headers are in either
72721// *Operation.ServerResponse.Header or (if a response was returned at
72722// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72723// to check whether the returned error was because
72724// http.StatusNotModified was returned.
72725func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72726	gensupport.SetOptions(c.urlParams_, opts...)
72727	res, err := c.doRequest("json")
72728	if res != nil && res.StatusCode == http.StatusNotModified {
72729		if res.Body != nil {
72730			res.Body.Close()
72731		}
72732		return nil, &googleapi.Error{
72733			Code:   res.StatusCode,
72734			Header: res.Header,
72735		}
72736	}
72737	if err != nil {
72738		return nil, err
72739	}
72740	defer googleapi.CloseBody(res)
72741	if err := googleapi.CheckResponse(res); err != nil {
72742		return nil, err
72743	}
72744	ret := &Operation{
72745		ServerResponse: googleapi.ServerResponse{
72746			Header:         res.Header,
72747			HTTPStatusCode: res.StatusCode,
72748		},
72749	}
72750	target := &ret
72751	if err := gensupport.DecodeResponse(target, res); err != nil {
72752		return nil, err
72753	}
72754	return ret, nil
72755	// {
72756	//   "description": "Detach the network endpoint from the specified network endpoint group.",
72757	//   "httpMethod": "POST",
72758	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
72759	//   "parameterOrder": [
72760	//     "project",
72761	//     "networkEndpointGroup"
72762	//   ],
72763	//   "parameters": {
72764	//     "networkEndpointGroup": {
72765	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
72766	//       "location": "path",
72767	//       "required": true,
72768	//       "type": "string"
72769	//     },
72770	//     "project": {
72771	//       "description": "Project ID for this request.",
72772	//       "location": "path",
72773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72774	//       "required": true,
72775	//       "type": "string"
72776	//     },
72777	//     "requestId": {
72778	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72779	//       "location": "query",
72780	//       "type": "string"
72781	//     }
72782	//   },
72783	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
72784	//   "request": {
72785	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
72786	//   },
72787	//   "response": {
72788	//     "$ref": "Operation"
72789	//   },
72790	//   "scopes": [
72791	//     "https://www.googleapis.com/auth/cloud-platform",
72792	//     "https://www.googleapis.com/auth/compute"
72793	//   ]
72794	// }
72795
72796}
72797
72798// method id "compute.globalNetworkEndpointGroups.get":
72799
72800type GlobalNetworkEndpointGroupsGetCall struct {
72801	s                    *Service
72802	project              string
72803	networkEndpointGroup string
72804	urlParams_           gensupport.URLParams
72805	ifNoneMatch_         string
72806	ctx_                 context.Context
72807	header_              http.Header
72808}
72809
72810// Get: Returns the specified network endpoint group. Gets a list of
72811// available network endpoint groups by making a list() request.
72812//
72813// - networkEndpointGroup: The name of the network endpoint group. It
72814//   should comply with RFC1035.
72815// - project: Project ID for this request.
72816func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
72817	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72818	c.project = project
72819	c.networkEndpointGroup = networkEndpointGroup
72820	return c
72821}
72822
72823// Fields allows partial responses to be retrieved. See
72824// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72825// for more information.
72826func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
72827	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72828	return c
72829}
72830
72831// IfNoneMatch sets the optional parameter which makes the operation
72832// fail if the object's ETag matches the given value. This is useful for
72833// getting updates only after the object has changed since the last
72834// request. Use googleapi.IsNotModified to check whether the response
72835// error from Do is the result of In-None-Match.
72836func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
72837	c.ifNoneMatch_ = entityTag
72838	return c
72839}
72840
72841// Context sets the context to be used in this call's Do method. Any
72842// pending HTTP request will be aborted if the provided context is
72843// canceled.
72844func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
72845	c.ctx_ = ctx
72846	return c
72847}
72848
72849// Header returns an http.Header that can be modified by the caller to
72850// add HTTP headers to the request.
72851func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
72852	if c.header_ == nil {
72853		c.header_ = make(http.Header)
72854	}
72855	return c.header_
72856}
72857
72858func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
72859	reqHeaders := make(http.Header)
72860	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72861	for k, v := range c.header_ {
72862		reqHeaders[k] = v
72863	}
72864	reqHeaders.Set("User-Agent", c.s.userAgent())
72865	if c.ifNoneMatch_ != "" {
72866		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72867	}
72868	var body io.Reader = nil
72869	c.urlParams_.Set("alt", alt)
72870	c.urlParams_.Set("prettyPrint", "false")
72871	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
72872	urls += "?" + c.urlParams_.Encode()
72873	req, err := http.NewRequest("GET", urls, body)
72874	if err != nil {
72875		return nil, err
72876	}
72877	req.Header = reqHeaders
72878	googleapi.Expand(req.URL, map[string]string{
72879		"project":              c.project,
72880		"networkEndpointGroup": c.networkEndpointGroup,
72881	})
72882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72883}
72884
72885// Do executes the "compute.globalNetworkEndpointGroups.get" call.
72886// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
72887// non-2xx status code is an error. Response headers are in either
72888// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
72889// returned at all) in error.(*googleapi.Error).Header. Use
72890// googleapi.IsNotModified to check whether the returned error was
72891// because http.StatusNotModified was returned.
72892func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
72893	gensupport.SetOptions(c.urlParams_, opts...)
72894	res, err := c.doRequest("json")
72895	if res != nil && res.StatusCode == http.StatusNotModified {
72896		if res.Body != nil {
72897			res.Body.Close()
72898		}
72899		return nil, &googleapi.Error{
72900			Code:   res.StatusCode,
72901			Header: res.Header,
72902		}
72903	}
72904	if err != nil {
72905		return nil, err
72906	}
72907	defer googleapi.CloseBody(res)
72908	if err := googleapi.CheckResponse(res); err != nil {
72909		return nil, err
72910	}
72911	ret := &NetworkEndpointGroup{
72912		ServerResponse: googleapi.ServerResponse{
72913			Header:         res.Header,
72914			HTTPStatusCode: res.StatusCode,
72915		},
72916	}
72917	target := &ret
72918	if err := gensupport.DecodeResponse(target, res); err != nil {
72919		return nil, err
72920	}
72921	return ret, nil
72922	// {
72923	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
72924	//   "httpMethod": "GET",
72925	//   "id": "compute.globalNetworkEndpointGroups.get",
72926	//   "parameterOrder": [
72927	//     "project",
72928	//     "networkEndpointGroup"
72929	//   ],
72930	//   "parameters": {
72931	//     "networkEndpointGroup": {
72932	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
72933	//       "location": "path",
72934	//       "required": true,
72935	//       "type": "string"
72936	//     },
72937	//     "project": {
72938	//       "description": "Project ID for this request.",
72939	//       "location": "path",
72940	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72941	//       "required": true,
72942	//       "type": "string"
72943	//     }
72944	//   },
72945	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
72946	//   "response": {
72947	//     "$ref": "NetworkEndpointGroup"
72948	//   },
72949	//   "scopes": [
72950	//     "https://www.googleapis.com/auth/cloud-platform",
72951	//     "https://www.googleapis.com/auth/compute",
72952	//     "https://www.googleapis.com/auth/compute.readonly"
72953	//   ]
72954	// }
72955
72956}
72957
72958// method id "compute.globalNetworkEndpointGroups.insert":
72959
72960type GlobalNetworkEndpointGroupsInsertCall struct {
72961	s                    *Service
72962	project              string
72963	networkendpointgroup *NetworkEndpointGroup
72964	urlParams_           gensupport.URLParams
72965	ctx_                 context.Context
72966	header_              http.Header
72967}
72968
72969// Insert: Creates a network endpoint group in the specified project
72970// using the parameters that are included in the request.
72971//
72972// - project: Project ID for this request.
72973func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
72974	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72975	c.project = project
72976	c.networkendpointgroup = networkendpointgroup
72977	return c
72978}
72979
72980// RequestId sets the optional parameter "requestId": An optional
72981// request ID to identify requests. Specify a unique request ID so that
72982// if you must retry your request, the server will know to ignore the
72983// request if it has already been completed.
72984//
72985// For example, consider a situation where you make an initial request
72986// and the request times out. If you make the request again with the
72987// same request ID, the server can check if original operation with the
72988// same request ID was received, and if so, will ignore the second
72989// request. This prevents clients from accidentally creating duplicate
72990// commitments.
72991//
72992// The request ID must be a valid UUID with the exception that zero UUID
72993// is not supported (00000000-0000-0000-0000-000000000000).
72994func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
72995	c.urlParams_.Set("requestId", requestId)
72996	return c
72997}
72998
72999// Fields allows partial responses to be retrieved. See
73000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73001// for more information.
73002func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
73003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73004	return c
73005}
73006
73007// Context sets the context to be used in this call's Do method. Any
73008// pending HTTP request will be aborted if the provided context is
73009// canceled.
73010func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
73011	c.ctx_ = ctx
73012	return c
73013}
73014
73015// Header returns an http.Header that can be modified by the caller to
73016// add HTTP headers to the request.
73017func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
73018	if c.header_ == nil {
73019		c.header_ = make(http.Header)
73020	}
73021	return c.header_
73022}
73023
73024func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
73025	reqHeaders := make(http.Header)
73026	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73027	for k, v := range c.header_ {
73028		reqHeaders[k] = v
73029	}
73030	reqHeaders.Set("User-Agent", c.s.userAgent())
73031	var body io.Reader = nil
73032	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
73033	if err != nil {
73034		return nil, err
73035	}
73036	reqHeaders.Set("Content-Type", "application/json")
73037	c.urlParams_.Set("alt", alt)
73038	c.urlParams_.Set("prettyPrint", "false")
73039	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
73040	urls += "?" + c.urlParams_.Encode()
73041	req, err := http.NewRequest("POST", urls, body)
73042	if err != nil {
73043		return nil, err
73044	}
73045	req.Header = reqHeaders
73046	googleapi.Expand(req.URL, map[string]string{
73047		"project": c.project,
73048	})
73049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73050}
73051
73052// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
73053// Exactly one of *Operation or error will be non-nil. Any non-2xx
73054// status code is an error. Response headers are in either
73055// *Operation.ServerResponse.Header or (if a response was returned at
73056// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73057// to check whether the returned error was because
73058// http.StatusNotModified was returned.
73059func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73060	gensupport.SetOptions(c.urlParams_, opts...)
73061	res, err := c.doRequest("json")
73062	if res != nil && res.StatusCode == http.StatusNotModified {
73063		if res.Body != nil {
73064			res.Body.Close()
73065		}
73066		return nil, &googleapi.Error{
73067			Code:   res.StatusCode,
73068			Header: res.Header,
73069		}
73070	}
73071	if err != nil {
73072		return nil, err
73073	}
73074	defer googleapi.CloseBody(res)
73075	if err := googleapi.CheckResponse(res); err != nil {
73076		return nil, err
73077	}
73078	ret := &Operation{
73079		ServerResponse: googleapi.ServerResponse{
73080			Header:         res.Header,
73081			HTTPStatusCode: res.StatusCode,
73082		},
73083	}
73084	target := &ret
73085	if err := gensupport.DecodeResponse(target, res); err != nil {
73086		return nil, err
73087	}
73088	return ret, nil
73089	// {
73090	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
73091	//   "httpMethod": "POST",
73092	//   "id": "compute.globalNetworkEndpointGroups.insert",
73093	//   "parameterOrder": [
73094	//     "project"
73095	//   ],
73096	//   "parameters": {
73097	//     "project": {
73098	//       "description": "Project ID for this request.",
73099	//       "location": "path",
73100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73101	//       "required": true,
73102	//       "type": "string"
73103	//     },
73104	//     "requestId": {
73105	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73106	//       "location": "query",
73107	//       "type": "string"
73108	//     }
73109	//   },
73110	//   "path": "projects/{project}/global/networkEndpointGroups",
73111	//   "request": {
73112	//     "$ref": "NetworkEndpointGroup"
73113	//   },
73114	//   "response": {
73115	//     "$ref": "Operation"
73116	//   },
73117	//   "scopes": [
73118	//     "https://www.googleapis.com/auth/cloud-platform",
73119	//     "https://www.googleapis.com/auth/compute"
73120	//   ]
73121	// }
73122
73123}
73124
73125// method id "compute.globalNetworkEndpointGroups.list":
73126
73127type GlobalNetworkEndpointGroupsListCall struct {
73128	s            *Service
73129	project      string
73130	urlParams_   gensupport.URLParams
73131	ifNoneMatch_ string
73132	ctx_         context.Context
73133	header_      http.Header
73134}
73135
73136// List: Retrieves the list of network endpoint groups that are located
73137// in the specified project.
73138//
73139// - project: Project ID for this request.
73140func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
73141	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73142	c.project = project
73143	return c
73144}
73145
73146// Filter sets the optional parameter "filter": A filter expression that
73147// filters resources listed in the response. The expression must specify
73148// the field name, a comparison operator, and the value that you want to
73149// use for filtering. The value must be a string, a number, or a
73150// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73151// `<`.
73152//
73153// For example, if you are filtering Compute Engine instances, you can
73154// exclude instances named `example-instance` by specifying `name !=
73155// example-instance`.
73156//
73157// You can also filter nested fields. For example, you could specify
73158// `scheduling.automaticRestart = false` to include instances only if
73159// they are not scheduled for automatic restarts. You can use filtering
73160// on nested fields to filter based on resource labels.
73161//
73162// To filter on multiple expressions, provide each separate expression
73163// within parentheses. For example: ``` (scheduling.automaticRestart =
73164// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73165// is an `AND` expression. However, you can include `AND` and `OR`
73166// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73167// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73168// (scheduling.automaticRestart = true) ```
73169func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
73170	c.urlParams_.Set("filter", filter)
73171	return c
73172}
73173
73174// MaxResults sets the optional parameter "maxResults": The maximum
73175// number of results per page that should be returned. If the number of
73176// available results is larger than `maxResults`, Compute Engine returns
73177// a `nextPageToken` that can be used to get the next page of results in
73178// subsequent list requests. Acceptable values are `0` to `500`,
73179// inclusive. (Default: `500`)
73180func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
73181	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73182	return c
73183}
73184
73185// OrderBy sets the optional parameter "orderBy": Sorts list results by
73186// a certain order. By default, results are returned in alphanumerical
73187// order based on the resource name.
73188//
73189// You can also sort results in descending order based on the creation
73190// timestamp using `orderBy="creationTimestamp desc". This sorts
73191// results based on the `creationTimestamp` field in reverse
73192// chronological order (newest result first). Use this to sort resources
73193// like operations so that the newest operation is returned
73194// first.
73195//
73196// Currently, only sorting by `name` or `creationTimestamp desc` is
73197// supported.
73198func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
73199	c.urlParams_.Set("orderBy", orderBy)
73200	return c
73201}
73202
73203// PageToken sets the optional parameter "pageToken": Specifies a page
73204// token to use. Set `pageToken` to the `nextPageToken` returned by a
73205// previous list request to get the next page of results.
73206func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
73207	c.urlParams_.Set("pageToken", pageToken)
73208	return c
73209}
73210
73211// ReturnPartialSuccess sets the optional parameter
73212// "returnPartialSuccess": Opt-in for partial success behavior which
73213// provides partial results in case of failure. The default value is
73214// false.
73215func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListCall {
73216	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
73217	return c
73218}
73219
73220// Fields allows partial responses to be retrieved. See
73221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73222// for more information.
73223func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
73224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73225	return c
73226}
73227
73228// IfNoneMatch sets the optional parameter which makes the operation
73229// fail if the object's ETag matches the given value. This is useful for
73230// getting updates only after the object has changed since the last
73231// request. Use googleapi.IsNotModified to check whether the response
73232// error from Do is the result of In-None-Match.
73233func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
73234	c.ifNoneMatch_ = entityTag
73235	return c
73236}
73237
73238// Context sets the context to be used in this call's Do method. Any
73239// pending HTTP request will be aborted if the provided context is
73240// canceled.
73241func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
73242	c.ctx_ = ctx
73243	return c
73244}
73245
73246// Header returns an http.Header that can be modified by the caller to
73247// add HTTP headers to the request.
73248func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
73249	if c.header_ == nil {
73250		c.header_ = make(http.Header)
73251	}
73252	return c.header_
73253}
73254
73255func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
73256	reqHeaders := make(http.Header)
73257	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73258	for k, v := range c.header_ {
73259		reqHeaders[k] = v
73260	}
73261	reqHeaders.Set("User-Agent", c.s.userAgent())
73262	if c.ifNoneMatch_ != "" {
73263		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73264	}
73265	var body io.Reader = nil
73266	c.urlParams_.Set("alt", alt)
73267	c.urlParams_.Set("prettyPrint", "false")
73268	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
73269	urls += "?" + c.urlParams_.Encode()
73270	req, err := http.NewRequest("GET", urls, body)
73271	if err != nil {
73272		return nil, err
73273	}
73274	req.Header = reqHeaders
73275	googleapi.Expand(req.URL, map[string]string{
73276		"project": c.project,
73277	})
73278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73279}
73280
73281// Do executes the "compute.globalNetworkEndpointGroups.list" call.
73282// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
73283// Any non-2xx status code is an error. Response headers are in either
73284// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
73285// returned at all) in error.(*googleapi.Error).Header. Use
73286// googleapi.IsNotModified to check whether the returned error was
73287// because http.StatusNotModified was returned.
73288func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
73289	gensupport.SetOptions(c.urlParams_, opts...)
73290	res, err := c.doRequest("json")
73291	if res != nil && res.StatusCode == http.StatusNotModified {
73292		if res.Body != nil {
73293			res.Body.Close()
73294		}
73295		return nil, &googleapi.Error{
73296			Code:   res.StatusCode,
73297			Header: res.Header,
73298		}
73299	}
73300	if err != nil {
73301		return nil, err
73302	}
73303	defer googleapi.CloseBody(res)
73304	if err := googleapi.CheckResponse(res); err != nil {
73305		return nil, err
73306	}
73307	ret := &NetworkEndpointGroupList{
73308		ServerResponse: googleapi.ServerResponse{
73309			Header:         res.Header,
73310			HTTPStatusCode: res.StatusCode,
73311		},
73312	}
73313	target := &ret
73314	if err := gensupport.DecodeResponse(target, res); err != nil {
73315		return nil, err
73316	}
73317	return ret, nil
73318	// {
73319	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
73320	//   "httpMethod": "GET",
73321	//   "id": "compute.globalNetworkEndpointGroups.list",
73322	//   "parameterOrder": [
73323	//     "project"
73324	//   ],
73325	//   "parameters": {
73326	//     "filter": {
73327	//       "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) ```",
73328	//       "location": "query",
73329	//       "type": "string"
73330	//     },
73331	//     "maxResults": {
73332	//       "default": "500",
73333	//       "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`)",
73334	//       "format": "uint32",
73335	//       "location": "query",
73336	//       "minimum": "0",
73337	//       "type": "integer"
73338	//     },
73339	//     "orderBy": {
73340	//       "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.",
73341	//       "location": "query",
73342	//       "type": "string"
73343	//     },
73344	//     "pageToken": {
73345	//       "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.",
73346	//       "location": "query",
73347	//       "type": "string"
73348	//     },
73349	//     "project": {
73350	//       "description": "Project ID for this request.",
73351	//       "location": "path",
73352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73353	//       "required": true,
73354	//       "type": "string"
73355	//     },
73356	//     "returnPartialSuccess": {
73357	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
73358	//       "location": "query",
73359	//       "type": "boolean"
73360	//     }
73361	//   },
73362	//   "path": "projects/{project}/global/networkEndpointGroups",
73363	//   "response": {
73364	//     "$ref": "NetworkEndpointGroupList"
73365	//   },
73366	//   "scopes": [
73367	//     "https://www.googleapis.com/auth/cloud-platform",
73368	//     "https://www.googleapis.com/auth/compute",
73369	//     "https://www.googleapis.com/auth/compute.readonly"
73370	//   ]
73371	// }
73372
73373}
73374
73375// Pages invokes f for each page of results.
73376// A non-nil error returned from f will halt the iteration.
73377// The provided context supersedes any context provided to the Context method.
73378func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
73379	c.ctx_ = ctx
73380	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73381	for {
73382		x, err := c.Do()
73383		if err != nil {
73384			return err
73385		}
73386		if err := f(x); err != nil {
73387			return err
73388		}
73389		if x.NextPageToken == "" {
73390			return nil
73391		}
73392		c.PageToken(x.NextPageToken)
73393	}
73394}
73395
73396// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
73397
73398type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
73399	s                    *Service
73400	project              string
73401	networkEndpointGroup string
73402	urlParams_           gensupport.URLParams
73403	ctx_                 context.Context
73404	header_              http.Header
73405}
73406
73407// ListNetworkEndpoints: Lists the network endpoints in the specified
73408// network endpoint group.
73409//
73410// - networkEndpointGroup: The name of the network endpoint group from
73411//   which you want to generate a list of included network endpoints. It
73412//   should comply with RFC1035.
73413// - project: Project ID for this request.
73414func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
73415	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73416	c.project = project
73417	c.networkEndpointGroup = networkEndpointGroup
73418	return c
73419}
73420
73421// Filter sets the optional parameter "filter": A filter expression that
73422// filters resources listed in the response. The expression must specify
73423// the field name, a comparison operator, and the value that you want to
73424// use for filtering. The value must be a string, a number, or a
73425// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73426// `<`.
73427//
73428// For example, if you are filtering Compute Engine instances, you can
73429// exclude instances named `example-instance` by specifying `name !=
73430// example-instance`.
73431//
73432// You can also filter nested fields. For example, you could specify
73433// `scheduling.automaticRestart = false` to include instances only if
73434// they are not scheduled for automatic restarts. You can use filtering
73435// on nested fields to filter based on resource labels.
73436//
73437// To filter on multiple expressions, provide each separate expression
73438// within parentheses. For example: ``` (scheduling.automaticRestart =
73439// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73440// is an `AND` expression. However, you can include `AND` and `OR`
73441// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73442// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73443// (scheduling.automaticRestart = true) ```
73444func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
73445	c.urlParams_.Set("filter", filter)
73446	return c
73447}
73448
73449// MaxResults sets the optional parameter "maxResults": The maximum
73450// number of results per page that should be returned. If the number of
73451// available results is larger than `maxResults`, Compute Engine returns
73452// a `nextPageToken` that can be used to get the next page of results in
73453// subsequent list requests. Acceptable values are `0` to `500`,
73454// inclusive. (Default: `500`)
73455func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
73456	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73457	return c
73458}
73459
73460// OrderBy sets the optional parameter "orderBy": Sorts list results by
73461// a certain order. By default, results are returned in alphanumerical
73462// order based on the resource name.
73463//
73464// You can also sort results in descending order based on the creation
73465// timestamp using `orderBy="creationTimestamp desc". This sorts
73466// results based on the `creationTimestamp` field in reverse
73467// chronological order (newest result first). Use this to sort resources
73468// like operations so that the newest operation is returned
73469// first.
73470//
73471// Currently, only sorting by `name` or `creationTimestamp desc` is
73472// supported.
73473func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
73474	c.urlParams_.Set("orderBy", orderBy)
73475	return c
73476}
73477
73478// PageToken sets the optional parameter "pageToken": Specifies a page
73479// token to use. Set `pageToken` to the `nextPageToken` returned by a
73480// previous list request to get the next page of results.
73481func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
73482	c.urlParams_.Set("pageToken", pageToken)
73483	return c
73484}
73485
73486// ReturnPartialSuccess sets the optional parameter
73487// "returnPartialSuccess": Opt-in for partial success behavior which
73488// provides partial results in case of failure. The default value is
73489// false.
73490func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
73491	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
73492	return c
73493}
73494
73495// Fields allows partial responses to be retrieved. See
73496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73497// for more information.
73498func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
73499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73500	return c
73501}
73502
73503// Context sets the context to be used in this call's Do method. Any
73504// pending HTTP request will be aborted if the provided context is
73505// canceled.
73506func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
73507	c.ctx_ = ctx
73508	return c
73509}
73510
73511// Header returns an http.Header that can be modified by the caller to
73512// add HTTP headers to the request.
73513func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
73514	if c.header_ == nil {
73515		c.header_ = make(http.Header)
73516	}
73517	return c.header_
73518}
73519
73520func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
73521	reqHeaders := make(http.Header)
73522	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73523	for k, v := range c.header_ {
73524		reqHeaders[k] = v
73525	}
73526	reqHeaders.Set("User-Agent", c.s.userAgent())
73527	var body io.Reader = nil
73528	c.urlParams_.Set("alt", alt)
73529	c.urlParams_.Set("prettyPrint", "false")
73530	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
73531	urls += "?" + c.urlParams_.Encode()
73532	req, err := http.NewRequest("POST", urls, body)
73533	if err != nil {
73534		return nil, err
73535	}
73536	req.Header = reqHeaders
73537	googleapi.Expand(req.URL, map[string]string{
73538		"project":              c.project,
73539		"networkEndpointGroup": c.networkEndpointGroup,
73540	})
73541	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73542}
73543
73544// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
73545// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
73546// will be non-nil. Any non-2xx status code is an error. Response
73547// headers are in either
73548// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
73549// (if a response was returned at all) in
73550// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
73551// whether the returned error was because http.StatusNotModified was
73552// returned.
73553func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
73554	gensupport.SetOptions(c.urlParams_, opts...)
73555	res, err := c.doRequest("json")
73556	if res != nil && res.StatusCode == http.StatusNotModified {
73557		if res.Body != nil {
73558			res.Body.Close()
73559		}
73560		return nil, &googleapi.Error{
73561			Code:   res.StatusCode,
73562			Header: res.Header,
73563		}
73564	}
73565	if err != nil {
73566		return nil, err
73567	}
73568	defer googleapi.CloseBody(res)
73569	if err := googleapi.CheckResponse(res); err != nil {
73570		return nil, err
73571	}
73572	ret := &NetworkEndpointGroupsListNetworkEndpoints{
73573		ServerResponse: googleapi.ServerResponse{
73574			Header:         res.Header,
73575			HTTPStatusCode: res.StatusCode,
73576		},
73577	}
73578	target := &ret
73579	if err := gensupport.DecodeResponse(target, res); err != nil {
73580		return nil, err
73581	}
73582	return ret, nil
73583	// {
73584	//   "description": "Lists the network endpoints in the specified network endpoint group.",
73585	//   "httpMethod": "POST",
73586	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
73587	//   "parameterOrder": [
73588	//     "project",
73589	//     "networkEndpointGroup"
73590	//   ],
73591	//   "parameters": {
73592	//     "filter": {
73593	//       "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) ```",
73594	//       "location": "query",
73595	//       "type": "string"
73596	//     },
73597	//     "maxResults": {
73598	//       "default": "500",
73599	//       "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`)",
73600	//       "format": "uint32",
73601	//       "location": "query",
73602	//       "minimum": "0",
73603	//       "type": "integer"
73604	//     },
73605	//     "networkEndpointGroup": {
73606	//       "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.",
73607	//       "location": "path",
73608	//       "required": true,
73609	//       "type": "string"
73610	//     },
73611	//     "orderBy": {
73612	//       "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.",
73613	//       "location": "query",
73614	//       "type": "string"
73615	//     },
73616	//     "pageToken": {
73617	//       "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.",
73618	//       "location": "query",
73619	//       "type": "string"
73620	//     },
73621	//     "project": {
73622	//       "description": "Project ID for this request.",
73623	//       "location": "path",
73624	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73625	//       "required": true,
73626	//       "type": "string"
73627	//     },
73628	//     "returnPartialSuccess": {
73629	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
73630	//       "location": "query",
73631	//       "type": "boolean"
73632	//     }
73633	//   },
73634	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
73635	//   "response": {
73636	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
73637	//   },
73638	//   "scopes": [
73639	//     "https://www.googleapis.com/auth/cloud-platform",
73640	//     "https://www.googleapis.com/auth/compute",
73641	//     "https://www.googleapis.com/auth/compute.readonly"
73642	//   ]
73643	// }
73644
73645}
73646
73647// Pages invokes f for each page of results.
73648// A non-nil error returned from f will halt the iteration.
73649// The provided context supersedes any context provided to the Context method.
73650func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
73651	c.ctx_ = ctx
73652	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73653	for {
73654		x, err := c.Do()
73655		if err != nil {
73656			return err
73657		}
73658		if err := f(x); err != nil {
73659			return err
73660		}
73661		if x.NextPageToken == "" {
73662			return nil
73663		}
73664		c.PageToken(x.NextPageToken)
73665	}
73666}
73667
73668// method id "compute.globalOperations.aggregatedList":
73669
73670type GlobalOperationsAggregatedListCall struct {
73671	s            *Service
73672	project      string
73673	urlParams_   gensupport.URLParams
73674	ifNoneMatch_ string
73675	ctx_         context.Context
73676	header_      http.Header
73677}
73678
73679// AggregatedList: Retrieves an aggregated list of all operations.
73680//
73681// - project: Project ID for this request.
73682// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
73683func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
73684	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73685	c.project = project
73686	return c
73687}
73688
73689// Filter sets the optional parameter "filter": A filter expression that
73690// filters resources listed in the response. The expression must specify
73691// the field name, a comparison operator, and the value that you want to
73692// use for filtering. The value must be a string, a number, or a
73693// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73694// `<`.
73695//
73696// For example, if you are filtering Compute Engine instances, you can
73697// exclude instances named `example-instance` by specifying `name !=
73698// example-instance`.
73699//
73700// You can also filter nested fields. For example, you could specify
73701// `scheduling.automaticRestart = false` to include instances only if
73702// they are not scheduled for automatic restarts. You can use filtering
73703// on nested fields to filter based on resource labels.
73704//
73705// To filter on multiple expressions, provide each separate expression
73706// within parentheses. For example: ``` (scheduling.automaticRestart =
73707// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73708// is an `AND` expression. However, you can include `AND` and `OR`
73709// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73710// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73711// (scheduling.automaticRestart = true) ```
73712func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
73713	c.urlParams_.Set("filter", filter)
73714	return c
73715}
73716
73717// IncludeAllScopes sets the optional parameter "includeAllScopes":
73718// Indicates whether every visible scope for each scope type (zone,
73719// region, global) should be included in the response. For new resource
73720// types added after this field, the flag has no effect as new resource
73721// types will always include every visible scope for each scope type in
73722// response. For resource types which predate this field, if this flag
73723// is omitted or false, only scopes of the scope types where the
73724// resource type is expected to be found will be included.
73725func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
73726	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
73727	return c
73728}
73729
73730// MaxResults sets the optional parameter "maxResults": The maximum
73731// number of results per page that should be returned. If the number of
73732// available results is larger than `maxResults`, Compute Engine returns
73733// a `nextPageToken` that can be used to get the next page of results in
73734// subsequent list requests. Acceptable values are `0` to `500`,
73735// inclusive. (Default: `500`)
73736func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
73737	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73738	return c
73739}
73740
73741// OrderBy sets the optional parameter "orderBy": Sorts list results by
73742// a certain order. By default, results are returned in alphanumerical
73743// order based on the resource name.
73744//
73745// You can also sort results in descending order based on the creation
73746// timestamp using `orderBy="creationTimestamp desc". This sorts
73747// results based on the `creationTimestamp` field in reverse
73748// chronological order (newest result first). Use this to sort resources
73749// like operations so that the newest operation is returned
73750// first.
73751//
73752// Currently, only sorting by `name` or `creationTimestamp desc` is
73753// supported.
73754func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
73755	c.urlParams_.Set("orderBy", orderBy)
73756	return c
73757}
73758
73759// PageToken sets the optional parameter "pageToken": Specifies a page
73760// token to use. Set `pageToken` to the `nextPageToken` returned by a
73761// previous list request to get the next page of results.
73762func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
73763	c.urlParams_.Set("pageToken", pageToken)
73764	return c
73765}
73766
73767// ReturnPartialSuccess sets the optional parameter
73768// "returnPartialSuccess": Opt-in for partial success behavior which
73769// provides partial results in case of failure. The default value is
73770// false.
73771func (c *GlobalOperationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsAggregatedListCall {
73772	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
73773	return c
73774}
73775
73776// Fields allows partial responses to be retrieved. See
73777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73778// for more information.
73779func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
73780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73781	return c
73782}
73783
73784// IfNoneMatch sets the optional parameter which makes the operation
73785// fail if the object's ETag matches the given value. This is useful for
73786// getting updates only after the object has changed since the last
73787// request. Use googleapi.IsNotModified to check whether the response
73788// error from Do is the result of In-None-Match.
73789func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
73790	c.ifNoneMatch_ = entityTag
73791	return c
73792}
73793
73794// Context sets the context to be used in this call's Do method. Any
73795// pending HTTP request will be aborted if the provided context is
73796// canceled.
73797func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
73798	c.ctx_ = ctx
73799	return c
73800}
73801
73802// Header returns an http.Header that can be modified by the caller to
73803// add HTTP headers to the request.
73804func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
73805	if c.header_ == nil {
73806		c.header_ = make(http.Header)
73807	}
73808	return c.header_
73809}
73810
73811func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
73812	reqHeaders := make(http.Header)
73813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73814	for k, v := range c.header_ {
73815		reqHeaders[k] = v
73816	}
73817	reqHeaders.Set("User-Agent", c.s.userAgent())
73818	if c.ifNoneMatch_ != "" {
73819		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73820	}
73821	var body io.Reader = nil
73822	c.urlParams_.Set("alt", alt)
73823	c.urlParams_.Set("prettyPrint", "false")
73824	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/operations")
73825	urls += "?" + c.urlParams_.Encode()
73826	req, err := http.NewRequest("GET", urls, body)
73827	if err != nil {
73828		return nil, err
73829	}
73830	req.Header = reqHeaders
73831	googleapi.Expand(req.URL, map[string]string{
73832		"project": c.project,
73833	})
73834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73835}
73836
73837// Do executes the "compute.globalOperations.aggregatedList" call.
73838// Exactly one of *OperationAggregatedList or error will be non-nil. Any
73839// non-2xx status code is an error. Response headers are in either
73840// *OperationAggregatedList.ServerResponse.Header or (if a response was
73841// returned at all) in error.(*googleapi.Error).Header. Use
73842// googleapi.IsNotModified to check whether the returned error was
73843// because http.StatusNotModified was returned.
73844func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
73845	gensupport.SetOptions(c.urlParams_, opts...)
73846	res, err := c.doRequest("json")
73847	if res != nil && res.StatusCode == http.StatusNotModified {
73848		if res.Body != nil {
73849			res.Body.Close()
73850		}
73851		return nil, &googleapi.Error{
73852			Code:   res.StatusCode,
73853			Header: res.Header,
73854		}
73855	}
73856	if err != nil {
73857		return nil, err
73858	}
73859	defer googleapi.CloseBody(res)
73860	if err := googleapi.CheckResponse(res); err != nil {
73861		return nil, err
73862	}
73863	ret := &OperationAggregatedList{
73864		ServerResponse: googleapi.ServerResponse{
73865			Header:         res.Header,
73866			HTTPStatusCode: res.StatusCode,
73867		},
73868	}
73869	target := &ret
73870	if err := gensupport.DecodeResponse(target, res); err != nil {
73871		return nil, err
73872	}
73873	return ret, nil
73874	// {
73875	//   "description": "Retrieves an aggregated list of all operations.",
73876	//   "httpMethod": "GET",
73877	//   "id": "compute.globalOperations.aggregatedList",
73878	//   "parameterOrder": [
73879	//     "project"
73880	//   ],
73881	//   "parameters": {
73882	//     "filter": {
73883	//       "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) ```",
73884	//       "location": "query",
73885	//       "type": "string"
73886	//     },
73887	//     "includeAllScopes": {
73888	//       "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.",
73889	//       "location": "query",
73890	//       "type": "boolean"
73891	//     },
73892	//     "maxResults": {
73893	//       "default": "500",
73894	//       "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`)",
73895	//       "format": "uint32",
73896	//       "location": "query",
73897	//       "minimum": "0",
73898	//       "type": "integer"
73899	//     },
73900	//     "orderBy": {
73901	//       "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.",
73902	//       "location": "query",
73903	//       "type": "string"
73904	//     },
73905	//     "pageToken": {
73906	//       "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.",
73907	//       "location": "query",
73908	//       "type": "string"
73909	//     },
73910	//     "project": {
73911	//       "description": "Project ID for this request.",
73912	//       "location": "path",
73913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73914	//       "required": true,
73915	//       "type": "string"
73916	//     },
73917	//     "returnPartialSuccess": {
73918	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
73919	//       "location": "query",
73920	//       "type": "boolean"
73921	//     }
73922	//   },
73923	//   "path": "projects/{project}/aggregated/operations",
73924	//   "response": {
73925	//     "$ref": "OperationAggregatedList"
73926	//   },
73927	//   "scopes": [
73928	//     "https://www.googleapis.com/auth/cloud-platform",
73929	//     "https://www.googleapis.com/auth/compute",
73930	//     "https://www.googleapis.com/auth/compute.readonly"
73931	//   ]
73932	// }
73933
73934}
73935
73936// Pages invokes f for each page of results.
73937// A non-nil error returned from f will halt the iteration.
73938// The provided context supersedes any context provided to the Context method.
73939func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
73940	c.ctx_ = ctx
73941	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73942	for {
73943		x, err := c.Do()
73944		if err != nil {
73945			return err
73946		}
73947		if err := f(x); err != nil {
73948			return err
73949		}
73950		if x.NextPageToken == "" {
73951			return nil
73952		}
73953		c.PageToken(x.NextPageToken)
73954	}
73955}
73956
73957// method id "compute.globalOperations.delete":
73958
73959type GlobalOperationsDeleteCall struct {
73960	s          *Service
73961	project    string
73962	operation  string
73963	urlParams_ gensupport.URLParams
73964	ctx_       context.Context
73965	header_    http.Header
73966}
73967
73968// Delete: Deletes the specified Operations resource.
73969//
73970// - operation: Name of the Operations resource to delete.
73971// - project: Project ID for this request.
73972// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
73973func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
73974	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73975	c.project = project
73976	c.operation = operation
73977	return c
73978}
73979
73980// Fields allows partial responses to be retrieved. See
73981// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73982// for more information.
73983func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
73984	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73985	return c
73986}
73987
73988// Context sets the context to be used in this call's Do method. Any
73989// pending HTTP request will be aborted if the provided context is
73990// canceled.
73991func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
73992	c.ctx_ = ctx
73993	return c
73994}
73995
73996// Header returns an http.Header that can be modified by the caller to
73997// add HTTP headers to the request.
73998func (c *GlobalOperationsDeleteCall) Header() http.Header {
73999	if c.header_ == nil {
74000		c.header_ = make(http.Header)
74001	}
74002	return c.header_
74003}
74004
74005func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
74006	reqHeaders := make(http.Header)
74007	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74008	for k, v := range c.header_ {
74009		reqHeaders[k] = v
74010	}
74011	reqHeaders.Set("User-Agent", c.s.userAgent())
74012	var body io.Reader = nil
74013	c.urlParams_.Set("alt", alt)
74014	c.urlParams_.Set("prettyPrint", "false")
74015	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
74016	urls += "?" + c.urlParams_.Encode()
74017	req, err := http.NewRequest("DELETE", urls, body)
74018	if err != nil {
74019		return nil, err
74020	}
74021	req.Header = reqHeaders
74022	googleapi.Expand(req.URL, map[string]string{
74023		"project":   c.project,
74024		"operation": c.operation,
74025	})
74026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74027}
74028
74029// Do executes the "compute.globalOperations.delete" call.
74030func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
74031	gensupport.SetOptions(c.urlParams_, opts...)
74032	res, err := c.doRequest("json")
74033	if err != nil {
74034		return err
74035	}
74036	defer googleapi.CloseBody(res)
74037	if err := googleapi.CheckResponse(res); err != nil {
74038		return err
74039	}
74040	return nil
74041	// {
74042	//   "description": "Deletes the specified Operations resource.",
74043	//   "httpMethod": "DELETE",
74044	//   "id": "compute.globalOperations.delete",
74045	//   "parameterOrder": [
74046	//     "project",
74047	//     "operation"
74048	//   ],
74049	//   "parameters": {
74050	//     "operation": {
74051	//       "description": "Name of the Operations resource to delete.",
74052	//       "location": "path",
74053	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74054	//       "required": true,
74055	//       "type": "string"
74056	//     },
74057	//     "project": {
74058	//       "description": "Project ID for this request.",
74059	//       "location": "path",
74060	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74061	//       "required": true,
74062	//       "type": "string"
74063	//     }
74064	//   },
74065	//   "path": "projects/{project}/global/operations/{operation}",
74066	//   "scopes": [
74067	//     "https://www.googleapis.com/auth/cloud-platform",
74068	//     "https://www.googleapis.com/auth/compute"
74069	//   ]
74070	// }
74071
74072}
74073
74074// method id "compute.globalOperations.get":
74075
74076type GlobalOperationsGetCall struct {
74077	s            *Service
74078	project      string
74079	operation    string
74080	urlParams_   gensupport.URLParams
74081	ifNoneMatch_ string
74082	ctx_         context.Context
74083	header_      http.Header
74084}
74085
74086// Get: Retrieves the specified Operations resource. Gets a list of
74087// operations by making a `list()` request.
74088//
74089// - operation: Name of the Operations resource to return.
74090// - project: Project ID for this request.
74091// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
74092func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
74093	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74094	c.project = project
74095	c.operation = operation
74096	return c
74097}
74098
74099// Fields allows partial responses to be retrieved. See
74100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74101// for more information.
74102func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
74103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74104	return c
74105}
74106
74107// IfNoneMatch sets the optional parameter which makes the operation
74108// fail if the object's ETag matches the given value. This is useful for
74109// getting updates only after the object has changed since the last
74110// request. Use googleapi.IsNotModified to check whether the response
74111// error from Do is the result of In-None-Match.
74112func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
74113	c.ifNoneMatch_ = entityTag
74114	return c
74115}
74116
74117// Context sets the context to be used in this call's Do method. Any
74118// pending HTTP request will be aborted if the provided context is
74119// canceled.
74120func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
74121	c.ctx_ = ctx
74122	return c
74123}
74124
74125// Header returns an http.Header that can be modified by the caller to
74126// add HTTP headers to the request.
74127func (c *GlobalOperationsGetCall) Header() http.Header {
74128	if c.header_ == nil {
74129		c.header_ = make(http.Header)
74130	}
74131	return c.header_
74132}
74133
74134func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
74135	reqHeaders := make(http.Header)
74136	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74137	for k, v := range c.header_ {
74138		reqHeaders[k] = v
74139	}
74140	reqHeaders.Set("User-Agent", c.s.userAgent())
74141	if c.ifNoneMatch_ != "" {
74142		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74143	}
74144	var body io.Reader = nil
74145	c.urlParams_.Set("alt", alt)
74146	c.urlParams_.Set("prettyPrint", "false")
74147	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
74148	urls += "?" + c.urlParams_.Encode()
74149	req, err := http.NewRequest("GET", urls, body)
74150	if err != nil {
74151		return nil, err
74152	}
74153	req.Header = reqHeaders
74154	googleapi.Expand(req.URL, map[string]string{
74155		"project":   c.project,
74156		"operation": c.operation,
74157	})
74158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74159}
74160
74161// Do executes the "compute.globalOperations.get" call.
74162// Exactly one of *Operation or error will be non-nil. Any non-2xx
74163// status code is an error. Response headers are in either
74164// *Operation.ServerResponse.Header or (if a response was returned at
74165// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74166// to check whether the returned error was because
74167// http.StatusNotModified was returned.
74168func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74169	gensupport.SetOptions(c.urlParams_, opts...)
74170	res, err := c.doRequest("json")
74171	if res != nil && res.StatusCode == http.StatusNotModified {
74172		if res.Body != nil {
74173			res.Body.Close()
74174		}
74175		return nil, &googleapi.Error{
74176			Code:   res.StatusCode,
74177			Header: res.Header,
74178		}
74179	}
74180	if err != nil {
74181		return nil, err
74182	}
74183	defer googleapi.CloseBody(res)
74184	if err := googleapi.CheckResponse(res); err != nil {
74185		return nil, err
74186	}
74187	ret := &Operation{
74188		ServerResponse: googleapi.ServerResponse{
74189			Header:         res.Header,
74190			HTTPStatusCode: res.StatusCode,
74191		},
74192	}
74193	target := &ret
74194	if err := gensupport.DecodeResponse(target, res); err != nil {
74195		return nil, err
74196	}
74197	return ret, nil
74198	// {
74199	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
74200	//   "httpMethod": "GET",
74201	//   "id": "compute.globalOperations.get",
74202	//   "parameterOrder": [
74203	//     "project",
74204	//     "operation"
74205	//   ],
74206	//   "parameters": {
74207	//     "operation": {
74208	//       "description": "Name of the Operations resource to return.",
74209	//       "location": "path",
74210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74211	//       "required": true,
74212	//       "type": "string"
74213	//     },
74214	//     "project": {
74215	//       "description": "Project ID for this request.",
74216	//       "location": "path",
74217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74218	//       "required": true,
74219	//       "type": "string"
74220	//     }
74221	//   },
74222	//   "path": "projects/{project}/global/operations/{operation}",
74223	//   "response": {
74224	//     "$ref": "Operation"
74225	//   },
74226	//   "scopes": [
74227	//     "https://www.googleapis.com/auth/cloud-platform",
74228	//     "https://www.googleapis.com/auth/compute",
74229	//     "https://www.googleapis.com/auth/compute.readonly"
74230	//   ]
74231	// }
74232
74233}
74234
74235// method id "compute.globalOperations.list":
74236
74237type GlobalOperationsListCall struct {
74238	s            *Service
74239	project      string
74240	urlParams_   gensupport.URLParams
74241	ifNoneMatch_ string
74242	ctx_         context.Context
74243	header_      http.Header
74244}
74245
74246// List: Retrieves a list of Operation resources contained within the
74247// specified project.
74248//
74249// - project: Project ID for this request.
74250// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
74251func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
74252	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74253	c.project = project
74254	return c
74255}
74256
74257// Filter sets the optional parameter "filter": A filter expression that
74258// filters resources listed in the response. The expression must specify
74259// the field name, a comparison operator, and the value that you want to
74260// use for filtering. The value must be a string, a number, or a
74261// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74262// `<`.
74263//
74264// For example, if you are filtering Compute Engine instances, you can
74265// exclude instances named `example-instance` by specifying `name !=
74266// example-instance`.
74267//
74268// You can also filter nested fields. For example, you could specify
74269// `scheduling.automaticRestart = false` to include instances only if
74270// they are not scheduled for automatic restarts. You can use filtering
74271// on nested fields to filter based on resource labels.
74272//
74273// To filter on multiple expressions, provide each separate expression
74274// within parentheses. For example: ``` (scheduling.automaticRestart =
74275// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
74276// is an `AND` expression. However, you can include `AND` and `OR`
74277// expressions explicitly. For example: ``` (cpuPlatform = "Intel
74278// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
74279// (scheduling.automaticRestart = true) ```
74280func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
74281	c.urlParams_.Set("filter", filter)
74282	return c
74283}
74284
74285// MaxResults sets the optional parameter "maxResults": The maximum
74286// number of results per page that should be returned. If the number of
74287// available results is larger than `maxResults`, Compute Engine returns
74288// a `nextPageToken` that can be used to get the next page of results in
74289// subsequent list requests. Acceptable values are `0` to `500`,
74290// inclusive. (Default: `500`)
74291func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
74292	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74293	return c
74294}
74295
74296// OrderBy sets the optional parameter "orderBy": Sorts list results by
74297// a certain order. By default, results are returned in alphanumerical
74298// order based on the resource name.
74299//
74300// You can also sort results in descending order based on the creation
74301// timestamp using `orderBy="creationTimestamp desc". This sorts
74302// results based on the `creationTimestamp` field in reverse
74303// chronological order (newest result first). Use this to sort resources
74304// like operations so that the newest operation is returned
74305// first.
74306//
74307// Currently, only sorting by `name` or `creationTimestamp desc` is
74308// supported.
74309func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
74310	c.urlParams_.Set("orderBy", orderBy)
74311	return c
74312}
74313
74314// PageToken sets the optional parameter "pageToken": Specifies a page
74315// token to use. Set `pageToken` to the `nextPageToken` returned by a
74316// previous list request to get the next page of results.
74317func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
74318	c.urlParams_.Set("pageToken", pageToken)
74319	return c
74320}
74321
74322// ReturnPartialSuccess sets the optional parameter
74323// "returnPartialSuccess": Opt-in for partial success behavior which
74324// provides partial results in case of failure. The default value is
74325// false.
74326func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsListCall {
74327	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74328	return c
74329}
74330
74331// Fields allows partial responses to be retrieved. See
74332// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74333// for more information.
74334func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
74335	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74336	return c
74337}
74338
74339// IfNoneMatch sets the optional parameter which makes the operation
74340// fail if the object's ETag matches the given value. This is useful for
74341// getting updates only after the object has changed since the last
74342// request. Use googleapi.IsNotModified to check whether the response
74343// error from Do is the result of In-None-Match.
74344func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
74345	c.ifNoneMatch_ = entityTag
74346	return c
74347}
74348
74349// Context sets the context to be used in this call's Do method. Any
74350// pending HTTP request will be aborted if the provided context is
74351// canceled.
74352func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
74353	c.ctx_ = ctx
74354	return c
74355}
74356
74357// Header returns an http.Header that can be modified by the caller to
74358// add HTTP headers to the request.
74359func (c *GlobalOperationsListCall) Header() http.Header {
74360	if c.header_ == nil {
74361		c.header_ = make(http.Header)
74362	}
74363	return c.header_
74364}
74365
74366func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
74367	reqHeaders := make(http.Header)
74368	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74369	for k, v := range c.header_ {
74370		reqHeaders[k] = v
74371	}
74372	reqHeaders.Set("User-Agent", c.s.userAgent())
74373	if c.ifNoneMatch_ != "" {
74374		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74375	}
74376	var body io.Reader = nil
74377	c.urlParams_.Set("alt", alt)
74378	c.urlParams_.Set("prettyPrint", "false")
74379	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations")
74380	urls += "?" + c.urlParams_.Encode()
74381	req, err := http.NewRequest("GET", urls, body)
74382	if err != nil {
74383		return nil, err
74384	}
74385	req.Header = reqHeaders
74386	googleapi.Expand(req.URL, map[string]string{
74387		"project": c.project,
74388	})
74389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74390}
74391
74392// Do executes the "compute.globalOperations.list" call.
74393// Exactly one of *OperationList or error will be non-nil. Any non-2xx
74394// status code is an error. Response headers are in either
74395// *OperationList.ServerResponse.Header or (if a response was returned
74396// at all) in error.(*googleapi.Error).Header. Use
74397// googleapi.IsNotModified to check whether the returned error was
74398// because http.StatusNotModified was returned.
74399func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
74400	gensupport.SetOptions(c.urlParams_, opts...)
74401	res, err := c.doRequest("json")
74402	if res != nil && res.StatusCode == http.StatusNotModified {
74403		if res.Body != nil {
74404			res.Body.Close()
74405		}
74406		return nil, &googleapi.Error{
74407			Code:   res.StatusCode,
74408			Header: res.Header,
74409		}
74410	}
74411	if err != nil {
74412		return nil, err
74413	}
74414	defer googleapi.CloseBody(res)
74415	if err := googleapi.CheckResponse(res); err != nil {
74416		return nil, err
74417	}
74418	ret := &OperationList{
74419		ServerResponse: googleapi.ServerResponse{
74420			Header:         res.Header,
74421			HTTPStatusCode: res.StatusCode,
74422		},
74423	}
74424	target := &ret
74425	if err := gensupport.DecodeResponse(target, res); err != nil {
74426		return nil, err
74427	}
74428	return ret, nil
74429	// {
74430	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
74431	//   "httpMethod": "GET",
74432	//   "id": "compute.globalOperations.list",
74433	//   "parameterOrder": [
74434	//     "project"
74435	//   ],
74436	//   "parameters": {
74437	//     "filter": {
74438	//       "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) ```",
74439	//       "location": "query",
74440	//       "type": "string"
74441	//     },
74442	//     "maxResults": {
74443	//       "default": "500",
74444	//       "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`)",
74445	//       "format": "uint32",
74446	//       "location": "query",
74447	//       "minimum": "0",
74448	//       "type": "integer"
74449	//     },
74450	//     "orderBy": {
74451	//       "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.",
74452	//       "location": "query",
74453	//       "type": "string"
74454	//     },
74455	//     "pageToken": {
74456	//       "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.",
74457	//       "location": "query",
74458	//       "type": "string"
74459	//     },
74460	//     "project": {
74461	//       "description": "Project ID for this request.",
74462	//       "location": "path",
74463	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74464	//       "required": true,
74465	//       "type": "string"
74466	//     },
74467	//     "returnPartialSuccess": {
74468	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
74469	//       "location": "query",
74470	//       "type": "boolean"
74471	//     }
74472	//   },
74473	//   "path": "projects/{project}/global/operations",
74474	//   "response": {
74475	//     "$ref": "OperationList"
74476	//   },
74477	//   "scopes": [
74478	//     "https://www.googleapis.com/auth/cloud-platform",
74479	//     "https://www.googleapis.com/auth/compute",
74480	//     "https://www.googleapis.com/auth/compute.readonly"
74481	//   ]
74482	// }
74483
74484}
74485
74486// Pages invokes f for each page of results.
74487// A non-nil error returned from f will halt the iteration.
74488// The provided context supersedes any context provided to the Context method.
74489func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
74490	c.ctx_ = ctx
74491	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74492	for {
74493		x, err := c.Do()
74494		if err != nil {
74495			return err
74496		}
74497		if err := f(x); err != nil {
74498			return err
74499		}
74500		if x.NextPageToken == "" {
74501			return nil
74502		}
74503		c.PageToken(x.NextPageToken)
74504	}
74505}
74506
74507// method id "compute.globalOperations.wait":
74508
74509type GlobalOperationsWaitCall struct {
74510	s          *Service
74511	project    string
74512	operation  string
74513	urlParams_ gensupport.URLParams
74514	ctx_       context.Context
74515	header_    http.Header
74516}
74517
74518// Wait: Waits for the specified Operation resource to return as `DONE`
74519// or for the request to approach the 2 minute deadline, and retrieves
74520// the specified Operation resource. This method differs from the `GET`
74521// method in that it waits for no more than the default deadline (2
74522// minutes) and then returns the current state of the operation, which
74523// might be `DONE` or still in progress.
74524//
74525// This method is called on a best-effort basis. Specifically:
74526// - In uncommon cases, when the server is overloaded, the request might
74527// return before the default deadline is reached, or might return after
74528// zero seconds.
74529// - If the default deadline is reached, there is no guarantee that the
74530// operation is actually done when the method returns. Be prepared to
74531// retry if the operation is not `DONE`.
74532//
74533// - operation: Name of the Operations resource to return.
74534// - project: Project ID for this request.
74535func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
74536	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74537	c.project = project
74538	c.operation = operation
74539	return c
74540}
74541
74542// Fields allows partial responses to be retrieved. See
74543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74544// for more information.
74545func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
74546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74547	return c
74548}
74549
74550// Context sets the context to be used in this call's Do method. Any
74551// pending HTTP request will be aborted if the provided context is
74552// canceled.
74553func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
74554	c.ctx_ = ctx
74555	return c
74556}
74557
74558// Header returns an http.Header that can be modified by the caller to
74559// add HTTP headers to the request.
74560func (c *GlobalOperationsWaitCall) Header() http.Header {
74561	if c.header_ == nil {
74562		c.header_ = make(http.Header)
74563	}
74564	return c.header_
74565}
74566
74567func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
74568	reqHeaders := make(http.Header)
74569	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74570	for k, v := range c.header_ {
74571		reqHeaders[k] = v
74572	}
74573	reqHeaders.Set("User-Agent", c.s.userAgent())
74574	var body io.Reader = nil
74575	c.urlParams_.Set("alt", alt)
74576	c.urlParams_.Set("prettyPrint", "false")
74577	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}/wait")
74578	urls += "?" + c.urlParams_.Encode()
74579	req, err := http.NewRequest("POST", urls, body)
74580	if err != nil {
74581		return nil, err
74582	}
74583	req.Header = reqHeaders
74584	googleapi.Expand(req.URL, map[string]string{
74585		"project":   c.project,
74586		"operation": c.operation,
74587	})
74588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74589}
74590
74591// Do executes the "compute.globalOperations.wait" call.
74592// Exactly one of *Operation or error will be non-nil. Any non-2xx
74593// status code is an error. Response headers are in either
74594// *Operation.ServerResponse.Header or (if a response was returned at
74595// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74596// to check whether the returned error was because
74597// http.StatusNotModified was returned.
74598func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74599	gensupport.SetOptions(c.urlParams_, opts...)
74600	res, err := c.doRequest("json")
74601	if res != nil && res.StatusCode == http.StatusNotModified {
74602		if res.Body != nil {
74603			res.Body.Close()
74604		}
74605		return nil, &googleapi.Error{
74606			Code:   res.StatusCode,
74607			Header: res.Header,
74608		}
74609	}
74610	if err != nil {
74611		return nil, err
74612	}
74613	defer googleapi.CloseBody(res)
74614	if err := googleapi.CheckResponse(res); err != nil {
74615		return nil, err
74616	}
74617	ret := &Operation{
74618		ServerResponse: googleapi.ServerResponse{
74619			Header:         res.Header,
74620			HTTPStatusCode: res.StatusCode,
74621		},
74622	}
74623	target := &ret
74624	if err := gensupport.DecodeResponse(target, res); err != nil {
74625		return nil, err
74626	}
74627	return ret, nil
74628	// {
74629	//   "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`.",
74630	//   "httpMethod": "POST",
74631	//   "id": "compute.globalOperations.wait",
74632	//   "parameterOrder": [
74633	//     "project",
74634	//     "operation"
74635	//   ],
74636	//   "parameters": {
74637	//     "operation": {
74638	//       "description": "Name of the Operations resource to return.",
74639	//       "location": "path",
74640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74641	//       "required": true,
74642	//       "type": "string"
74643	//     },
74644	//     "project": {
74645	//       "description": "Project ID for this request.",
74646	//       "location": "path",
74647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74648	//       "required": true,
74649	//       "type": "string"
74650	//     }
74651	//   },
74652	//   "path": "projects/{project}/global/operations/{operation}/wait",
74653	//   "response": {
74654	//     "$ref": "Operation"
74655	//   },
74656	//   "scopes": [
74657	//     "https://www.googleapis.com/auth/cloud-platform",
74658	//     "https://www.googleapis.com/auth/compute",
74659	//     "https://www.googleapis.com/auth/compute.readonly"
74660	//   ]
74661	// }
74662
74663}
74664
74665// method id "compute.globalOrganizationOperations.delete":
74666
74667type GlobalOrganizationOperationsDeleteCall struct {
74668	s          *Service
74669	operation  string
74670	urlParams_ gensupport.URLParams
74671	ctx_       context.Context
74672	header_    http.Header
74673}
74674
74675// Delete: Deletes the specified Operations resource.
74676//
74677// - operation: Name of the Operations resource to delete.
74678func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
74679	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74680	c.operation = operation
74681	return c
74682}
74683
74684// ParentId sets the optional parameter "parentId": Parent ID for this
74685// request.
74686func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
74687	c.urlParams_.Set("parentId", parentId)
74688	return c
74689}
74690
74691// Fields allows partial responses to be retrieved. See
74692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74693// for more information.
74694func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
74695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74696	return c
74697}
74698
74699// Context sets the context to be used in this call's Do method. Any
74700// pending HTTP request will be aborted if the provided context is
74701// canceled.
74702func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
74703	c.ctx_ = ctx
74704	return c
74705}
74706
74707// Header returns an http.Header that can be modified by the caller to
74708// add HTTP headers to the request.
74709func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
74710	if c.header_ == nil {
74711		c.header_ = make(http.Header)
74712	}
74713	return c.header_
74714}
74715
74716func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
74717	reqHeaders := make(http.Header)
74718	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74719	for k, v := range c.header_ {
74720		reqHeaders[k] = v
74721	}
74722	reqHeaders.Set("User-Agent", c.s.userAgent())
74723	var body io.Reader = nil
74724	c.urlParams_.Set("alt", alt)
74725	c.urlParams_.Set("prettyPrint", "false")
74726	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
74727	urls += "?" + c.urlParams_.Encode()
74728	req, err := http.NewRequest("DELETE", urls, body)
74729	if err != nil {
74730		return nil, err
74731	}
74732	req.Header = reqHeaders
74733	googleapi.Expand(req.URL, map[string]string{
74734		"operation": c.operation,
74735	})
74736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74737}
74738
74739// Do executes the "compute.globalOrganizationOperations.delete" call.
74740func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
74741	gensupport.SetOptions(c.urlParams_, opts...)
74742	res, err := c.doRequest("json")
74743	if err != nil {
74744		return err
74745	}
74746	defer googleapi.CloseBody(res)
74747	if err := googleapi.CheckResponse(res); err != nil {
74748		return err
74749	}
74750	return nil
74751	// {
74752	//   "description": "Deletes the specified Operations resource.",
74753	//   "httpMethod": "DELETE",
74754	//   "id": "compute.globalOrganizationOperations.delete",
74755	//   "parameterOrder": [
74756	//     "operation"
74757	//   ],
74758	//   "parameters": {
74759	//     "operation": {
74760	//       "description": "Name of the Operations resource to delete.",
74761	//       "location": "path",
74762	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74763	//       "required": true,
74764	//       "type": "string"
74765	//     },
74766	//     "parentId": {
74767	//       "description": "Parent ID for this request.",
74768	//       "location": "query",
74769	//       "type": "string"
74770	//     }
74771	//   },
74772	//   "path": "locations/global/operations/{operation}",
74773	//   "scopes": [
74774	//     "https://www.googleapis.com/auth/cloud-platform",
74775	//     "https://www.googleapis.com/auth/compute"
74776	//   ]
74777	// }
74778
74779}
74780
74781// method id "compute.globalOrganizationOperations.get":
74782
74783type GlobalOrganizationOperationsGetCall struct {
74784	s            *Service
74785	operation    string
74786	urlParams_   gensupport.URLParams
74787	ifNoneMatch_ string
74788	ctx_         context.Context
74789	header_      http.Header
74790}
74791
74792// Get: Retrieves the specified Operations resource. Gets a list of
74793// operations by making a `list()` request.
74794//
74795// - operation: Name of the Operations resource to return.
74796func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
74797	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74798	c.operation = operation
74799	return c
74800}
74801
74802// ParentId sets the optional parameter "parentId": Parent ID for this
74803// request.
74804func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
74805	c.urlParams_.Set("parentId", parentId)
74806	return c
74807}
74808
74809// Fields allows partial responses to be retrieved. See
74810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74811// for more information.
74812func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
74813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74814	return c
74815}
74816
74817// IfNoneMatch sets the optional parameter which makes the operation
74818// fail if the object's ETag matches the given value. This is useful for
74819// getting updates only after the object has changed since the last
74820// request. Use googleapi.IsNotModified to check whether the response
74821// error from Do is the result of In-None-Match.
74822func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
74823	c.ifNoneMatch_ = entityTag
74824	return c
74825}
74826
74827// Context sets the context to be used in this call's Do method. Any
74828// pending HTTP request will be aborted if the provided context is
74829// canceled.
74830func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
74831	c.ctx_ = ctx
74832	return c
74833}
74834
74835// Header returns an http.Header that can be modified by the caller to
74836// add HTTP headers to the request.
74837func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
74838	if c.header_ == nil {
74839		c.header_ = make(http.Header)
74840	}
74841	return c.header_
74842}
74843
74844func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
74845	reqHeaders := make(http.Header)
74846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74847	for k, v := range c.header_ {
74848		reqHeaders[k] = v
74849	}
74850	reqHeaders.Set("User-Agent", c.s.userAgent())
74851	if c.ifNoneMatch_ != "" {
74852		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74853	}
74854	var body io.Reader = nil
74855	c.urlParams_.Set("alt", alt)
74856	c.urlParams_.Set("prettyPrint", "false")
74857	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
74858	urls += "?" + c.urlParams_.Encode()
74859	req, err := http.NewRequest("GET", urls, body)
74860	if err != nil {
74861		return nil, err
74862	}
74863	req.Header = reqHeaders
74864	googleapi.Expand(req.URL, map[string]string{
74865		"operation": c.operation,
74866	})
74867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74868}
74869
74870// Do executes the "compute.globalOrganizationOperations.get" call.
74871// Exactly one of *Operation or error will be non-nil. Any non-2xx
74872// status code is an error. Response headers are in either
74873// *Operation.ServerResponse.Header or (if a response was returned at
74874// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74875// to check whether the returned error was because
74876// http.StatusNotModified was returned.
74877func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74878	gensupport.SetOptions(c.urlParams_, opts...)
74879	res, err := c.doRequest("json")
74880	if res != nil && res.StatusCode == http.StatusNotModified {
74881		if res.Body != nil {
74882			res.Body.Close()
74883		}
74884		return nil, &googleapi.Error{
74885			Code:   res.StatusCode,
74886			Header: res.Header,
74887		}
74888	}
74889	if err != nil {
74890		return nil, err
74891	}
74892	defer googleapi.CloseBody(res)
74893	if err := googleapi.CheckResponse(res); err != nil {
74894		return nil, err
74895	}
74896	ret := &Operation{
74897		ServerResponse: googleapi.ServerResponse{
74898			Header:         res.Header,
74899			HTTPStatusCode: res.StatusCode,
74900		},
74901	}
74902	target := &ret
74903	if err := gensupport.DecodeResponse(target, res); err != nil {
74904		return nil, err
74905	}
74906	return ret, nil
74907	// {
74908	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
74909	//   "httpMethod": "GET",
74910	//   "id": "compute.globalOrganizationOperations.get",
74911	//   "parameterOrder": [
74912	//     "operation"
74913	//   ],
74914	//   "parameters": {
74915	//     "operation": {
74916	//       "description": "Name of the Operations resource to return.",
74917	//       "location": "path",
74918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74919	//       "required": true,
74920	//       "type": "string"
74921	//     },
74922	//     "parentId": {
74923	//       "description": "Parent ID for this request.",
74924	//       "location": "query",
74925	//       "type": "string"
74926	//     }
74927	//   },
74928	//   "path": "locations/global/operations/{operation}",
74929	//   "response": {
74930	//     "$ref": "Operation"
74931	//   },
74932	//   "scopes": [
74933	//     "https://www.googleapis.com/auth/cloud-platform",
74934	//     "https://www.googleapis.com/auth/compute",
74935	//     "https://www.googleapis.com/auth/compute.readonly"
74936	//   ]
74937	// }
74938
74939}
74940
74941// method id "compute.globalOrganizationOperations.list":
74942
74943type GlobalOrganizationOperationsListCall struct {
74944	s            *Service
74945	urlParams_   gensupport.URLParams
74946	ifNoneMatch_ string
74947	ctx_         context.Context
74948	header_      http.Header
74949}
74950
74951// List: Retrieves a list of Operation resources contained within the
74952// specified organization.
74953func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
74954	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74955	return c
74956}
74957
74958// Filter sets the optional parameter "filter": A filter expression that
74959// filters resources listed in the response. The expression must specify
74960// the field name, a comparison operator, and the value that you want to
74961// use for filtering. The value must be a string, a number, or a
74962// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74963// `<`.
74964//
74965// For example, if you are filtering Compute Engine instances, you can
74966// exclude instances named `example-instance` by specifying `name !=
74967// example-instance`.
74968//
74969// You can also filter nested fields. For example, you could specify
74970// `scheduling.automaticRestart = false` to include instances only if
74971// they are not scheduled for automatic restarts. You can use filtering
74972// on nested fields to filter based on resource labels.
74973//
74974// To filter on multiple expressions, provide each separate expression
74975// within parentheses. For example: ``` (scheduling.automaticRestart =
74976// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
74977// is an `AND` expression. However, you can include `AND` and `OR`
74978// expressions explicitly. For example: ``` (cpuPlatform = "Intel
74979// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
74980// (scheduling.automaticRestart = true) ```
74981func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
74982	c.urlParams_.Set("filter", filter)
74983	return c
74984}
74985
74986// MaxResults sets the optional parameter "maxResults": The maximum
74987// number of results per page that should be returned. If the number of
74988// available results is larger than `maxResults`, Compute Engine returns
74989// a `nextPageToken` that can be used to get the next page of results in
74990// subsequent list requests. Acceptable values are `0` to `500`,
74991// inclusive. (Default: `500`)
74992func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
74993	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74994	return c
74995}
74996
74997// OrderBy sets the optional parameter "orderBy": Sorts list results by
74998// a certain order. By default, results are returned in alphanumerical
74999// order based on the resource name.
75000//
75001// You can also sort results in descending order based on the creation
75002// timestamp using `orderBy="creationTimestamp desc". This sorts
75003// results based on the `creationTimestamp` field in reverse
75004// chronological order (newest result first). Use this to sort resources
75005// like operations so that the newest operation is returned
75006// first.
75007//
75008// Currently, only sorting by `name` or `creationTimestamp desc` is
75009// supported.
75010func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
75011	c.urlParams_.Set("orderBy", orderBy)
75012	return c
75013}
75014
75015// PageToken sets the optional parameter "pageToken": Specifies a page
75016// token to use. Set `pageToken` to the `nextPageToken` returned by a
75017// previous list request to get the next page of results.
75018func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
75019	c.urlParams_.Set("pageToken", pageToken)
75020	return c
75021}
75022
75023// ParentId sets the optional parameter "parentId": Parent ID for this
75024// request.
75025func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
75026	c.urlParams_.Set("parentId", parentId)
75027	return c
75028}
75029
75030// ReturnPartialSuccess sets the optional parameter
75031// "returnPartialSuccess": Opt-in for partial success behavior which
75032// provides partial results in case of failure. The default value is
75033// false.
75034func (c *GlobalOrganizationOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOrganizationOperationsListCall {
75035	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
75036	return c
75037}
75038
75039// Fields allows partial responses to be retrieved. See
75040// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75041// for more information.
75042func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
75043	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75044	return c
75045}
75046
75047// IfNoneMatch sets the optional parameter which makes the operation
75048// fail if the object's ETag matches the given value. This is useful for
75049// getting updates only after the object has changed since the last
75050// request. Use googleapi.IsNotModified to check whether the response
75051// error from Do is the result of In-None-Match.
75052func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
75053	c.ifNoneMatch_ = entityTag
75054	return c
75055}
75056
75057// Context sets the context to be used in this call's Do method. Any
75058// pending HTTP request will be aborted if the provided context is
75059// canceled.
75060func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
75061	c.ctx_ = ctx
75062	return c
75063}
75064
75065// Header returns an http.Header that can be modified by the caller to
75066// add HTTP headers to the request.
75067func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
75068	if c.header_ == nil {
75069		c.header_ = make(http.Header)
75070	}
75071	return c.header_
75072}
75073
75074func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
75075	reqHeaders := make(http.Header)
75076	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75077	for k, v := range c.header_ {
75078		reqHeaders[k] = v
75079	}
75080	reqHeaders.Set("User-Agent", c.s.userAgent())
75081	if c.ifNoneMatch_ != "" {
75082		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75083	}
75084	var body io.Reader = nil
75085	c.urlParams_.Set("alt", alt)
75086	c.urlParams_.Set("prettyPrint", "false")
75087	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
75088	urls += "?" + c.urlParams_.Encode()
75089	req, err := http.NewRequest("GET", urls, body)
75090	if err != nil {
75091		return nil, err
75092	}
75093	req.Header = reqHeaders
75094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75095}
75096
75097// Do executes the "compute.globalOrganizationOperations.list" call.
75098// Exactly one of *OperationList or error will be non-nil. Any non-2xx
75099// status code is an error. Response headers are in either
75100// *OperationList.ServerResponse.Header or (if a response was returned
75101// at all) in error.(*googleapi.Error).Header. Use
75102// googleapi.IsNotModified to check whether the returned error was
75103// because http.StatusNotModified was returned.
75104func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
75105	gensupport.SetOptions(c.urlParams_, opts...)
75106	res, err := c.doRequest("json")
75107	if res != nil && res.StatusCode == http.StatusNotModified {
75108		if res.Body != nil {
75109			res.Body.Close()
75110		}
75111		return nil, &googleapi.Error{
75112			Code:   res.StatusCode,
75113			Header: res.Header,
75114		}
75115	}
75116	if err != nil {
75117		return nil, err
75118	}
75119	defer googleapi.CloseBody(res)
75120	if err := googleapi.CheckResponse(res); err != nil {
75121		return nil, err
75122	}
75123	ret := &OperationList{
75124		ServerResponse: googleapi.ServerResponse{
75125			Header:         res.Header,
75126			HTTPStatusCode: res.StatusCode,
75127		},
75128	}
75129	target := &ret
75130	if err := gensupport.DecodeResponse(target, res); err != nil {
75131		return nil, err
75132	}
75133	return ret, nil
75134	// {
75135	//   "description": "Retrieves a list of Operation resources contained within the specified organization.",
75136	//   "httpMethod": "GET",
75137	//   "id": "compute.globalOrganizationOperations.list",
75138	//   "parameters": {
75139	//     "filter": {
75140	//       "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) ```",
75141	//       "location": "query",
75142	//       "type": "string"
75143	//     },
75144	//     "maxResults": {
75145	//       "default": "500",
75146	//       "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`)",
75147	//       "format": "uint32",
75148	//       "location": "query",
75149	//       "minimum": "0",
75150	//       "type": "integer"
75151	//     },
75152	//     "orderBy": {
75153	//       "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.",
75154	//       "location": "query",
75155	//       "type": "string"
75156	//     },
75157	//     "pageToken": {
75158	//       "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.",
75159	//       "location": "query",
75160	//       "type": "string"
75161	//     },
75162	//     "parentId": {
75163	//       "description": "Parent ID for this request.",
75164	//       "location": "query",
75165	//       "type": "string"
75166	//     },
75167	//     "returnPartialSuccess": {
75168	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
75169	//       "location": "query",
75170	//       "type": "boolean"
75171	//     }
75172	//   },
75173	//   "path": "locations/global/operations",
75174	//   "response": {
75175	//     "$ref": "OperationList"
75176	//   },
75177	//   "scopes": [
75178	//     "https://www.googleapis.com/auth/cloud-platform",
75179	//     "https://www.googleapis.com/auth/compute",
75180	//     "https://www.googleapis.com/auth/compute.readonly"
75181	//   ]
75182	// }
75183
75184}
75185
75186// Pages invokes f for each page of results.
75187// A non-nil error returned from f will halt the iteration.
75188// The provided context supersedes any context provided to the Context method.
75189func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
75190	c.ctx_ = ctx
75191	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75192	for {
75193		x, err := c.Do()
75194		if err != nil {
75195			return err
75196		}
75197		if err := f(x); err != nil {
75198			return err
75199		}
75200		if x.NextPageToken == "" {
75201			return nil
75202		}
75203		c.PageToken(x.NextPageToken)
75204	}
75205}
75206
75207// method id "compute.globalPublicDelegatedPrefixes.delete":
75208
75209type GlobalPublicDelegatedPrefixesDeleteCall struct {
75210	s                     *Service
75211	project               string
75212	publicDelegatedPrefix string
75213	urlParams_            gensupport.URLParams
75214	ctx_                  context.Context
75215	header_               http.Header
75216}
75217
75218// Delete: Deletes the specified global PublicDelegatedPrefix.
75219//
75220// - project: Project ID for this request.
75221// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
75222//   to delete.
75223func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall {
75224	c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75225	c.project = project
75226	c.publicDelegatedPrefix = publicDelegatedPrefix
75227	return c
75228}
75229
75230// RequestId sets the optional parameter "requestId": An optional
75231// request ID to identify requests. Specify a unique request ID so that
75232// if you must retry your request, the server will know to ignore the
75233// request if it has already been completed.
75234//
75235// For example, consider a situation where you make an initial request
75236// and the request times out. If you make the request again with the
75237// same request ID, the server can check if original operation with the
75238// same request ID was received, and if so, will ignore the second
75239// request. This prevents clients from accidentally creating duplicate
75240// commitments.
75241//
75242// The request ID must be a valid UUID with the exception that zero UUID
75243// is not supported (00000000-0000-0000-0000-000000000000).
75244func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall {
75245	c.urlParams_.Set("requestId", requestId)
75246	return c
75247}
75248
75249// Fields allows partial responses to be retrieved. See
75250// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75251// for more information.
75252func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall {
75253	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75254	return c
75255}
75256
75257// Context sets the context to be used in this call's Do method. Any
75258// pending HTTP request will be aborted if the provided context is
75259// canceled.
75260func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall {
75261	c.ctx_ = ctx
75262	return c
75263}
75264
75265// Header returns an http.Header that can be modified by the caller to
75266// add HTTP headers to the request.
75267func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header {
75268	if c.header_ == nil {
75269		c.header_ = make(http.Header)
75270	}
75271	return c.header_
75272}
75273
75274func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
75275	reqHeaders := make(http.Header)
75276	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75277	for k, v := range c.header_ {
75278		reqHeaders[k] = v
75279	}
75280	reqHeaders.Set("User-Agent", c.s.userAgent())
75281	var body io.Reader = nil
75282	c.urlParams_.Set("alt", alt)
75283	c.urlParams_.Set("prettyPrint", "false")
75284	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
75285	urls += "?" + c.urlParams_.Encode()
75286	req, err := http.NewRequest("DELETE", urls, body)
75287	if err != nil {
75288		return nil, err
75289	}
75290	req.Header = reqHeaders
75291	googleapi.Expand(req.URL, map[string]string{
75292		"project":               c.project,
75293		"publicDelegatedPrefix": c.publicDelegatedPrefix,
75294	})
75295	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75296}
75297
75298// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call.
75299// Exactly one of *Operation or error will be non-nil. Any non-2xx
75300// status code is an error. Response headers are in either
75301// *Operation.ServerResponse.Header or (if a response was returned at
75302// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75303// to check whether the returned error was because
75304// http.StatusNotModified was returned.
75305func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75306	gensupport.SetOptions(c.urlParams_, opts...)
75307	res, err := c.doRequest("json")
75308	if res != nil && res.StatusCode == http.StatusNotModified {
75309		if res.Body != nil {
75310			res.Body.Close()
75311		}
75312		return nil, &googleapi.Error{
75313			Code:   res.StatusCode,
75314			Header: res.Header,
75315		}
75316	}
75317	if err != nil {
75318		return nil, err
75319	}
75320	defer googleapi.CloseBody(res)
75321	if err := googleapi.CheckResponse(res); err != nil {
75322		return nil, err
75323	}
75324	ret := &Operation{
75325		ServerResponse: googleapi.ServerResponse{
75326			Header:         res.Header,
75327			HTTPStatusCode: res.StatusCode,
75328		},
75329	}
75330	target := &ret
75331	if err := gensupport.DecodeResponse(target, res); err != nil {
75332		return nil, err
75333	}
75334	return ret, nil
75335	// {
75336	//   "description": "Deletes the specified global PublicDelegatedPrefix.",
75337	//   "httpMethod": "DELETE",
75338	//   "id": "compute.globalPublicDelegatedPrefixes.delete",
75339	//   "parameterOrder": [
75340	//     "project",
75341	//     "publicDelegatedPrefix"
75342	//   ],
75343	//   "parameters": {
75344	//     "project": {
75345	//       "description": "Project ID for this request.",
75346	//       "location": "path",
75347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75348	//       "required": true,
75349	//       "type": "string"
75350	//     },
75351	//     "publicDelegatedPrefix": {
75352	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
75353	//       "location": "path",
75354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75355	//       "required": true,
75356	//       "type": "string"
75357	//     },
75358	//     "requestId": {
75359	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75360	//       "location": "query",
75361	//       "type": "string"
75362	//     }
75363	//   },
75364	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
75365	//   "response": {
75366	//     "$ref": "Operation"
75367	//   },
75368	//   "scopes": [
75369	//     "https://www.googleapis.com/auth/cloud-platform",
75370	//     "https://www.googleapis.com/auth/compute"
75371	//   ]
75372	// }
75373
75374}
75375
75376// method id "compute.globalPublicDelegatedPrefixes.get":
75377
75378type GlobalPublicDelegatedPrefixesGetCall struct {
75379	s                     *Service
75380	project               string
75381	publicDelegatedPrefix string
75382	urlParams_            gensupport.URLParams
75383	ifNoneMatch_          string
75384	ctx_                  context.Context
75385	header_               http.Header
75386}
75387
75388// Get: Returns the specified global PublicDelegatedPrefix resource.
75389//
75390// - project: Project ID for this request.
75391// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
75392//   to return.
75393func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall {
75394	c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75395	c.project = project
75396	c.publicDelegatedPrefix = publicDelegatedPrefix
75397	return c
75398}
75399
75400// Fields allows partial responses to be retrieved. See
75401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75402// for more information.
75403func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall {
75404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75405	return c
75406}
75407
75408// IfNoneMatch sets the optional parameter which makes the operation
75409// fail if the object's ETag matches the given value. This is useful for
75410// getting updates only after the object has changed since the last
75411// request. Use googleapi.IsNotModified to check whether the response
75412// error from Do is the result of In-None-Match.
75413func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall {
75414	c.ifNoneMatch_ = entityTag
75415	return c
75416}
75417
75418// Context sets the context to be used in this call's Do method. Any
75419// pending HTTP request will be aborted if the provided context is
75420// canceled.
75421func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall {
75422	c.ctx_ = ctx
75423	return c
75424}
75425
75426// Header returns an http.Header that can be modified by the caller to
75427// add HTTP headers to the request.
75428func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header {
75429	if c.header_ == nil {
75430		c.header_ = make(http.Header)
75431	}
75432	return c.header_
75433}
75434
75435func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
75436	reqHeaders := make(http.Header)
75437	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75438	for k, v := range c.header_ {
75439		reqHeaders[k] = v
75440	}
75441	reqHeaders.Set("User-Agent", c.s.userAgent())
75442	if c.ifNoneMatch_ != "" {
75443		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75444	}
75445	var body io.Reader = nil
75446	c.urlParams_.Set("alt", alt)
75447	c.urlParams_.Set("prettyPrint", "false")
75448	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
75449	urls += "?" + c.urlParams_.Encode()
75450	req, err := http.NewRequest("GET", urls, body)
75451	if err != nil {
75452		return nil, err
75453	}
75454	req.Header = reqHeaders
75455	googleapi.Expand(req.URL, map[string]string{
75456		"project":               c.project,
75457		"publicDelegatedPrefix": c.publicDelegatedPrefix,
75458	})
75459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75460}
75461
75462// Do executes the "compute.globalPublicDelegatedPrefixes.get" call.
75463// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
75464// non-2xx status code is an error. Response headers are in either
75465// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
75466// returned at all) in error.(*googleapi.Error).Header. Use
75467// googleapi.IsNotModified to check whether the returned error was
75468// because http.StatusNotModified was returned.
75469func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
75470	gensupport.SetOptions(c.urlParams_, opts...)
75471	res, err := c.doRequest("json")
75472	if res != nil && res.StatusCode == http.StatusNotModified {
75473		if res.Body != nil {
75474			res.Body.Close()
75475		}
75476		return nil, &googleapi.Error{
75477			Code:   res.StatusCode,
75478			Header: res.Header,
75479		}
75480	}
75481	if err != nil {
75482		return nil, err
75483	}
75484	defer googleapi.CloseBody(res)
75485	if err := googleapi.CheckResponse(res); err != nil {
75486		return nil, err
75487	}
75488	ret := &PublicDelegatedPrefix{
75489		ServerResponse: googleapi.ServerResponse{
75490			Header:         res.Header,
75491			HTTPStatusCode: res.StatusCode,
75492		},
75493	}
75494	target := &ret
75495	if err := gensupport.DecodeResponse(target, res); err != nil {
75496		return nil, err
75497	}
75498	return ret, nil
75499	// {
75500	//   "description": "Returns the specified global PublicDelegatedPrefix resource.",
75501	//   "httpMethod": "GET",
75502	//   "id": "compute.globalPublicDelegatedPrefixes.get",
75503	//   "parameterOrder": [
75504	//     "project",
75505	//     "publicDelegatedPrefix"
75506	//   ],
75507	//   "parameters": {
75508	//     "project": {
75509	//       "description": "Project ID for this request.",
75510	//       "location": "path",
75511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75512	//       "required": true,
75513	//       "type": "string"
75514	//     },
75515	//     "publicDelegatedPrefix": {
75516	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
75517	//       "location": "path",
75518	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75519	//       "required": true,
75520	//       "type": "string"
75521	//     }
75522	//   },
75523	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
75524	//   "response": {
75525	//     "$ref": "PublicDelegatedPrefix"
75526	//   },
75527	//   "scopes": [
75528	//     "https://www.googleapis.com/auth/cloud-platform",
75529	//     "https://www.googleapis.com/auth/compute",
75530	//     "https://www.googleapis.com/auth/compute.readonly"
75531	//   ]
75532	// }
75533
75534}
75535
75536// method id "compute.globalPublicDelegatedPrefixes.insert":
75537
75538type GlobalPublicDelegatedPrefixesInsertCall struct {
75539	s                     *Service
75540	project               string
75541	publicdelegatedprefix *PublicDelegatedPrefix
75542	urlParams_            gensupport.URLParams
75543	ctx_                  context.Context
75544	header_               http.Header
75545}
75546
75547// Insert: Creates a global PublicDelegatedPrefix in the specified
75548// project using the parameters that are included in the request.
75549//
75550// - project: Project ID for this request.
75551func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall {
75552	c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75553	c.project = project
75554	c.publicdelegatedprefix = publicdelegatedprefix
75555	return c
75556}
75557
75558// RequestId sets the optional parameter "requestId": An optional
75559// request ID to identify requests. Specify a unique request ID so that
75560// if you must retry your request, the server will know to ignore the
75561// request if it has already been completed.
75562//
75563// For example, consider a situation where you make an initial request
75564// and the request times out. If you make the request again with the
75565// same request ID, the server can check if original operation with the
75566// same request ID was received, and if so, will ignore the second
75567// request. This prevents clients from accidentally creating duplicate
75568// commitments.
75569//
75570// The request ID must be a valid UUID with the exception that zero UUID
75571// is not supported (00000000-0000-0000-0000-000000000000).
75572func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall {
75573	c.urlParams_.Set("requestId", requestId)
75574	return c
75575}
75576
75577// Fields allows partial responses to be retrieved. See
75578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75579// for more information.
75580func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall {
75581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75582	return c
75583}
75584
75585// Context sets the context to be used in this call's Do method. Any
75586// pending HTTP request will be aborted if the provided context is
75587// canceled.
75588func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall {
75589	c.ctx_ = ctx
75590	return c
75591}
75592
75593// Header returns an http.Header that can be modified by the caller to
75594// add HTTP headers to the request.
75595func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header {
75596	if c.header_ == nil {
75597		c.header_ = make(http.Header)
75598	}
75599	return c.header_
75600}
75601
75602func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
75603	reqHeaders := make(http.Header)
75604	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75605	for k, v := range c.header_ {
75606		reqHeaders[k] = v
75607	}
75608	reqHeaders.Set("User-Agent", c.s.userAgent())
75609	var body io.Reader = nil
75610	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
75611	if err != nil {
75612		return nil, err
75613	}
75614	reqHeaders.Set("Content-Type", "application/json")
75615	c.urlParams_.Set("alt", alt)
75616	c.urlParams_.Set("prettyPrint", "false")
75617	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
75618	urls += "?" + c.urlParams_.Encode()
75619	req, err := http.NewRequest("POST", urls, body)
75620	if err != nil {
75621		return nil, err
75622	}
75623	req.Header = reqHeaders
75624	googleapi.Expand(req.URL, map[string]string{
75625		"project": c.project,
75626	})
75627	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75628}
75629
75630// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call.
75631// Exactly one of *Operation or error will be non-nil. Any non-2xx
75632// status code is an error. Response headers are in either
75633// *Operation.ServerResponse.Header or (if a response was returned at
75634// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75635// to check whether the returned error was because
75636// http.StatusNotModified was returned.
75637func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75638	gensupport.SetOptions(c.urlParams_, opts...)
75639	res, err := c.doRequest("json")
75640	if res != nil && res.StatusCode == http.StatusNotModified {
75641		if res.Body != nil {
75642			res.Body.Close()
75643		}
75644		return nil, &googleapi.Error{
75645			Code:   res.StatusCode,
75646			Header: res.Header,
75647		}
75648	}
75649	if err != nil {
75650		return nil, err
75651	}
75652	defer googleapi.CloseBody(res)
75653	if err := googleapi.CheckResponse(res); err != nil {
75654		return nil, err
75655	}
75656	ret := &Operation{
75657		ServerResponse: googleapi.ServerResponse{
75658			Header:         res.Header,
75659			HTTPStatusCode: res.StatusCode,
75660		},
75661	}
75662	target := &ret
75663	if err := gensupport.DecodeResponse(target, res); err != nil {
75664		return nil, err
75665	}
75666	return ret, nil
75667	// {
75668	//   "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.",
75669	//   "httpMethod": "POST",
75670	//   "id": "compute.globalPublicDelegatedPrefixes.insert",
75671	//   "parameterOrder": [
75672	//     "project"
75673	//   ],
75674	//   "parameters": {
75675	//     "project": {
75676	//       "description": "Project ID for this request.",
75677	//       "location": "path",
75678	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75679	//       "required": true,
75680	//       "type": "string"
75681	//     },
75682	//     "requestId": {
75683	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75684	//       "location": "query",
75685	//       "type": "string"
75686	//     }
75687	//   },
75688	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
75689	//   "request": {
75690	//     "$ref": "PublicDelegatedPrefix"
75691	//   },
75692	//   "response": {
75693	//     "$ref": "Operation"
75694	//   },
75695	//   "scopes": [
75696	//     "https://www.googleapis.com/auth/cloud-platform",
75697	//     "https://www.googleapis.com/auth/compute"
75698	//   ]
75699	// }
75700
75701}
75702
75703// method id "compute.globalPublicDelegatedPrefixes.list":
75704
75705type GlobalPublicDelegatedPrefixesListCall struct {
75706	s            *Service
75707	project      string
75708	urlParams_   gensupport.URLParams
75709	ifNoneMatch_ string
75710	ctx_         context.Context
75711	header_      http.Header
75712}
75713
75714// List: Lists the global PublicDelegatedPrefixes for a project.
75715//
75716// - project: Project ID for this request.
75717func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall {
75718	c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75719	c.project = project
75720	return c
75721}
75722
75723// Filter sets the optional parameter "filter": A filter expression that
75724// filters resources listed in the response. The expression must specify
75725// the field name, a comparison operator, and the value that you want to
75726// use for filtering. The value must be a string, a number, or a
75727// boolean. The comparison operator must be either `=`, `!=`, `>`, or
75728// `<`.
75729//
75730// For example, if you are filtering Compute Engine instances, you can
75731// exclude instances named `example-instance` by specifying `name !=
75732// example-instance`.
75733//
75734// You can also filter nested fields. For example, you could specify
75735// `scheduling.automaticRestart = false` to include instances only if
75736// they are not scheduled for automatic restarts. You can use filtering
75737// on nested fields to filter based on resource labels.
75738//
75739// To filter on multiple expressions, provide each separate expression
75740// within parentheses. For example: ``` (scheduling.automaticRestart =
75741// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
75742// is an `AND` expression. However, you can include `AND` and `OR`
75743// expressions explicitly. For example: ``` (cpuPlatform = "Intel
75744// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
75745// (scheduling.automaticRestart = true) ```
75746func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall {
75747	c.urlParams_.Set("filter", filter)
75748	return c
75749}
75750
75751// MaxResults sets the optional parameter "maxResults": The maximum
75752// number of results per page that should be returned. If the number of
75753// available results is larger than `maxResults`, Compute Engine returns
75754// a `nextPageToken` that can be used to get the next page of results in
75755// subsequent list requests. Acceptable values are `0` to `500`,
75756// inclusive. (Default: `500`)
75757func (c *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall {
75758	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75759	return c
75760}
75761
75762// OrderBy sets the optional parameter "orderBy": Sorts list results by
75763// a certain order. By default, results are returned in alphanumerical
75764// order based on the resource name.
75765//
75766// You can also sort results in descending order based on the creation
75767// timestamp using `orderBy="creationTimestamp desc". This sorts
75768// results based on the `creationTimestamp` field in reverse
75769// chronological order (newest result first). Use this to sort resources
75770// like operations so that the newest operation is returned
75771// first.
75772//
75773// Currently, only sorting by `name` or `creationTimestamp desc` is
75774// supported.
75775func (c *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall {
75776	c.urlParams_.Set("orderBy", orderBy)
75777	return c
75778}
75779
75780// PageToken sets the optional parameter "pageToken": Specifies a page
75781// token to use. Set `pageToken` to the `nextPageToken` returned by a
75782// previous list request to get the next page of results.
75783func (c *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall {
75784	c.urlParams_.Set("pageToken", pageToken)
75785	return c
75786}
75787
75788// ReturnPartialSuccess sets the optional parameter
75789// "returnPartialSuccess": Opt-in for partial success behavior which
75790// provides partial results in case of failure. The default value is
75791// false.
75792func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalPublicDelegatedPrefixesListCall {
75793	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
75794	return c
75795}
75796
75797// Fields allows partial responses to be retrieved. See
75798// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75799// for more information.
75800func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall {
75801	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75802	return c
75803}
75804
75805// IfNoneMatch sets the optional parameter which makes the operation
75806// fail if the object's ETag matches the given value. This is useful for
75807// getting updates only after the object has changed since the last
75808// request. Use googleapi.IsNotModified to check whether the response
75809// error from Do is the result of In-None-Match.
75810func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall {
75811	c.ifNoneMatch_ = entityTag
75812	return c
75813}
75814
75815// Context sets the context to be used in this call's Do method. Any
75816// pending HTTP request will be aborted if the provided context is
75817// canceled.
75818func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall {
75819	c.ctx_ = ctx
75820	return c
75821}
75822
75823// Header returns an http.Header that can be modified by the caller to
75824// add HTTP headers to the request.
75825func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header {
75826	if c.header_ == nil {
75827		c.header_ = make(http.Header)
75828	}
75829	return c.header_
75830}
75831
75832func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
75833	reqHeaders := make(http.Header)
75834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75835	for k, v := range c.header_ {
75836		reqHeaders[k] = v
75837	}
75838	reqHeaders.Set("User-Agent", c.s.userAgent())
75839	if c.ifNoneMatch_ != "" {
75840		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75841	}
75842	var body io.Reader = nil
75843	c.urlParams_.Set("alt", alt)
75844	c.urlParams_.Set("prettyPrint", "false")
75845	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
75846	urls += "?" + c.urlParams_.Encode()
75847	req, err := http.NewRequest("GET", urls, body)
75848	if err != nil {
75849		return nil, err
75850	}
75851	req.Header = reqHeaders
75852	googleapi.Expand(req.URL, map[string]string{
75853		"project": c.project,
75854	})
75855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75856}
75857
75858// Do executes the "compute.globalPublicDelegatedPrefixes.list" call.
75859// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
75860// Any non-2xx status code is an error. Response headers are in either
75861// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
75862// was returned at all) in error.(*googleapi.Error).Header. Use
75863// googleapi.IsNotModified to check whether the returned error was
75864// because http.StatusNotModified was returned.
75865func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
75866	gensupport.SetOptions(c.urlParams_, opts...)
75867	res, err := c.doRequest("json")
75868	if res != nil && res.StatusCode == http.StatusNotModified {
75869		if res.Body != nil {
75870			res.Body.Close()
75871		}
75872		return nil, &googleapi.Error{
75873			Code:   res.StatusCode,
75874			Header: res.Header,
75875		}
75876	}
75877	if err != nil {
75878		return nil, err
75879	}
75880	defer googleapi.CloseBody(res)
75881	if err := googleapi.CheckResponse(res); err != nil {
75882		return nil, err
75883	}
75884	ret := &PublicDelegatedPrefixList{
75885		ServerResponse: googleapi.ServerResponse{
75886			Header:         res.Header,
75887			HTTPStatusCode: res.StatusCode,
75888		},
75889	}
75890	target := &ret
75891	if err := gensupport.DecodeResponse(target, res); err != nil {
75892		return nil, err
75893	}
75894	return ret, nil
75895	// {
75896	//   "description": "Lists the global PublicDelegatedPrefixes for a project.",
75897	//   "httpMethod": "GET",
75898	//   "id": "compute.globalPublicDelegatedPrefixes.list",
75899	//   "parameterOrder": [
75900	//     "project"
75901	//   ],
75902	//   "parameters": {
75903	//     "filter": {
75904	//       "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) ```",
75905	//       "location": "query",
75906	//       "type": "string"
75907	//     },
75908	//     "maxResults": {
75909	//       "default": "500",
75910	//       "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`)",
75911	//       "format": "uint32",
75912	//       "location": "query",
75913	//       "minimum": "0",
75914	//       "type": "integer"
75915	//     },
75916	//     "orderBy": {
75917	//       "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.",
75918	//       "location": "query",
75919	//       "type": "string"
75920	//     },
75921	//     "pageToken": {
75922	//       "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.",
75923	//       "location": "query",
75924	//       "type": "string"
75925	//     },
75926	//     "project": {
75927	//       "description": "Project ID for this request.",
75928	//       "location": "path",
75929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75930	//       "required": true,
75931	//       "type": "string"
75932	//     },
75933	//     "returnPartialSuccess": {
75934	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
75935	//       "location": "query",
75936	//       "type": "boolean"
75937	//     }
75938	//   },
75939	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
75940	//   "response": {
75941	//     "$ref": "PublicDelegatedPrefixList"
75942	//   },
75943	//   "scopes": [
75944	//     "https://www.googleapis.com/auth/cloud-platform",
75945	//     "https://www.googleapis.com/auth/compute",
75946	//     "https://www.googleapis.com/auth/compute.readonly"
75947	//   ]
75948	// }
75949
75950}
75951
75952// Pages invokes f for each page of results.
75953// A non-nil error returned from f will halt the iteration.
75954// The provided context supersedes any context provided to the Context method.
75955func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
75956	c.ctx_ = ctx
75957	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75958	for {
75959		x, err := c.Do()
75960		if err != nil {
75961			return err
75962		}
75963		if err := f(x); err != nil {
75964			return err
75965		}
75966		if x.NextPageToken == "" {
75967			return nil
75968		}
75969		c.PageToken(x.NextPageToken)
75970	}
75971}
75972
75973// method id "compute.globalPublicDelegatedPrefixes.patch":
75974
75975type GlobalPublicDelegatedPrefixesPatchCall struct {
75976	s                     *Service
75977	project               string
75978	publicDelegatedPrefix string
75979	publicdelegatedprefix *PublicDelegatedPrefix
75980	urlParams_            gensupport.URLParams
75981	ctx_                  context.Context
75982	header_               http.Header
75983}
75984
75985// Patch: Patches the specified global PublicDelegatedPrefix resource
75986// with the data included in the request. This method supports PATCH
75987// semantics and uses JSON merge patch format and processing rules.
75988//
75989// - project: Project ID for this request.
75990// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
75991//   to patch.
75992func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall {
75993	c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75994	c.project = project
75995	c.publicDelegatedPrefix = publicDelegatedPrefix
75996	c.publicdelegatedprefix = publicdelegatedprefix
75997	return c
75998}
75999
76000// RequestId sets the optional parameter "requestId": An optional
76001// request ID to identify requests. Specify a unique request ID so that
76002// if you must retry your request, the server will know to ignore the
76003// request if it has already been completed.
76004//
76005// For example, consider a situation where you make an initial request
76006// and the request times out. If you make the request again with the
76007// same request ID, the server can check if original operation with the
76008// same request ID was received, and if so, will ignore the second
76009// request. This prevents clients from accidentally creating duplicate
76010// commitments.
76011//
76012// The request ID must be a valid UUID with the exception that zero UUID
76013// is not supported (00000000-0000-0000-0000-000000000000).
76014func (c *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall {
76015	c.urlParams_.Set("requestId", requestId)
76016	return c
76017}
76018
76019// Fields allows partial responses to be retrieved. See
76020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76021// for more information.
76022func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall {
76023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76024	return c
76025}
76026
76027// Context sets the context to be used in this call's Do method. Any
76028// pending HTTP request will be aborted if the provided context is
76029// canceled.
76030func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall {
76031	c.ctx_ = ctx
76032	return c
76033}
76034
76035// Header returns an http.Header that can be modified by the caller to
76036// add HTTP headers to the request.
76037func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header {
76038	if c.header_ == nil {
76039		c.header_ = make(http.Header)
76040	}
76041	return c.header_
76042}
76043
76044func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
76045	reqHeaders := make(http.Header)
76046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76047	for k, v := range c.header_ {
76048		reqHeaders[k] = v
76049	}
76050	reqHeaders.Set("User-Agent", c.s.userAgent())
76051	var body io.Reader = nil
76052	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
76053	if err != nil {
76054		return nil, err
76055	}
76056	reqHeaders.Set("Content-Type", "application/json")
76057	c.urlParams_.Set("alt", alt)
76058	c.urlParams_.Set("prettyPrint", "false")
76059	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
76060	urls += "?" + c.urlParams_.Encode()
76061	req, err := http.NewRequest("PATCH", urls, body)
76062	if err != nil {
76063		return nil, err
76064	}
76065	req.Header = reqHeaders
76066	googleapi.Expand(req.URL, map[string]string{
76067		"project":               c.project,
76068		"publicDelegatedPrefix": c.publicDelegatedPrefix,
76069	})
76070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76071}
76072
76073// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call.
76074// Exactly one of *Operation or error will be non-nil. Any non-2xx
76075// status code is an error. Response headers are in either
76076// *Operation.ServerResponse.Header or (if a response was returned at
76077// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76078// to check whether the returned error was because
76079// http.StatusNotModified was returned.
76080func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76081	gensupport.SetOptions(c.urlParams_, opts...)
76082	res, err := c.doRequest("json")
76083	if res != nil && res.StatusCode == http.StatusNotModified {
76084		if res.Body != nil {
76085			res.Body.Close()
76086		}
76087		return nil, &googleapi.Error{
76088			Code:   res.StatusCode,
76089			Header: res.Header,
76090		}
76091	}
76092	if err != nil {
76093		return nil, err
76094	}
76095	defer googleapi.CloseBody(res)
76096	if err := googleapi.CheckResponse(res); err != nil {
76097		return nil, err
76098	}
76099	ret := &Operation{
76100		ServerResponse: googleapi.ServerResponse{
76101			Header:         res.Header,
76102			HTTPStatusCode: res.StatusCode,
76103		},
76104	}
76105	target := &ret
76106	if err := gensupport.DecodeResponse(target, res); err != nil {
76107		return nil, err
76108	}
76109	return ret, nil
76110	// {
76111	//   "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.",
76112	//   "httpMethod": "PATCH",
76113	//   "id": "compute.globalPublicDelegatedPrefixes.patch",
76114	//   "parameterOrder": [
76115	//     "project",
76116	//     "publicDelegatedPrefix"
76117	//   ],
76118	//   "parameters": {
76119	//     "project": {
76120	//       "description": "Project ID for this request.",
76121	//       "location": "path",
76122	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76123	//       "required": true,
76124	//       "type": "string"
76125	//     },
76126	//     "publicDelegatedPrefix": {
76127	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
76128	//       "location": "path",
76129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76130	//       "required": true,
76131	//       "type": "string"
76132	//     },
76133	//     "requestId": {
76134	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76135	//       "location": "query",
76136	//       "type": "string"
76137	//     }
76138	//   },
76139	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
76140	//   "request": {
76141	//     "$ref": "PublicDelegatedPrefix"
76142	//   },
76143	//   "response": {
76144	//     "$ref": "Operation"
76145	//   },
76146	//   "scopes": [
76147	//     "https://www.googleapis.com/auth/cloud-platform",
76148	//     "https://www.googleapis.com/auth/compute"
76149	//   ]
76150	// }
76151
76152}
76153
76154// method id "compute.healthChecks.aggregatedList":
76155
76156type HealthChecksAggregatedListCall struct {
76157	s            *Service
76158	project      string
76159	urlParams_   gensupport.URLParams
76160	ifNoneMatch_ string
76161	ctx_         context.Context
76162	header_      http.Header
76163}
76164
76165// AggregatedList: Retrieves the list of all HealthCheck resources,
76166// regional and global, available to the specified project.
76167//
76168// - project: Name of the project scoping this request.
76169func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
76170	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76171	c.project = project
76172	return c
76173}
76174
76175// Filter sets the optional parameter "filter": A filter expression that
76176// filters resources listed in the response. The expression must specify
76177// the field name, a comparison operator, and the value that you want to
76178// use for filtering. The value must be a string, a number, or a
76179// boolean. The comparison operator must be either `=`, `!=`, `>`, or
76180// `<`.
76181//
76182// For example, if you are filtering Compute Engine instances, you can
76183// exclude instances named `example-instance` by specifying `name !=
76184// example-instance`.
76185//
76186// You can also filter nested fields. For example, you could specify
76187// `scheduling.automaticRestart = false` to include instances only if
76188// they are not scheduled for automatic restarts. You can use filtering
76189// on nested fields to filter based on resource labels.
76190//
76191// To filter on multiple expressions, provide each separate expression
76192// within parentheses. For example: ``` (scheduling.automaticRestart =
76193// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
76194// is an `AND` expression. However, you can include `AND` and `OR`
76195// expressions explicitly. For example: ``` (cpuPlatform = "Intel
76196// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
76197// (scheduling.automaticRestart = true) ```
76198func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
76199	c.urlParams_.Set("filter", filter)
76200	return c
76201}
76202
76203// IncludeAllScopes sets the optional parameter "includeAllScopes":
76204// Indicates whether every visible scope for each scope type (zone,
76205// region, global) should be included in the response. For new resource
76206// types added after this field, the flag has no effect as new resource
76207// types will always include every visible scope for each scope type in
76208// response. For resource types which predate this field, if this flag
76209// is omitted or false, only scopes of the scope types where the
76210// resource type is expected to be found will be included.
76211func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
76212	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
76213	return c
76214}
76215
76216// MaxResults sets the optional parameter "maxResults": The maximum
76217// number of results per page that should be returned. If the number of
76218// available results is larger than `maxResults`, Compute Engine returns
76219// a `nextPageToken` that can be used to get the next page of results in
76220// subsequent list requests. Acceptable values are `0` to `500`,
76221// inclusive. (Default: `500`)
76222func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
76223	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76224	return c
76225}
76226
76227// OrderBy sets the optional parameter "orderBy": Sorts list results by
76228// a certain order. By default, results are returned in alphanumerical
76229// order based on the resource name.
76230//
76231// You can also sort results in descending order based on the creation
76232// timestamp using `orderBy="creationTimestamp desc". This sorts
76233// results based on the `creationTimestamp` field in reverse
76234// chronological order (newest result first). Use this to sort resources
76235// like operations so that the newest operation is returned
76236// first.
76237//
76238// Currently, only sorting by `name` or `creationTimestamp desc` is
76239// supported.
76240func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
76241	c.urlParams_.Set("orderBy", orderBy)
76242	return c
76243}
76244
76245// PageToken sets the optional parameter "pageToken": Specifies a page
76246// token to use. Set `pageToken` to the `nextPageToken` returned by a
76247// previous list request to get the next page of results.
76248func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
76249	c.urlParams_.Set("pageToken", pageToken)
76250	return c
76251}
76252
76253// ReturnPartialSuccess sets the optional parameter
76254// "returnPartialSuccess": Opt-in for partial success behavior which
76255// provides partial results in case of failure. The default value is
76256// false.
76257func (c *HealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksAggregatedListCall {
76258	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
76259	return c
76260}
76261
76262// Fields allows partial responses to be retrieved. See
76263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76264// for more information.
76265func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
76266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76267	return c
76268}
76269
76270// IfNoneMatch sets the optional parameter which makes the operation
76271// fail if the object's ETag matches the given value. This is useful for
76272// getting updates only after the object has changed since the last
76273// request. Use googleapi.IsNotModified to check whether the response
76274// error from Do is the result of In-None-Match.
76275func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
76276	c.ifNoneMatch_ = entityTag
76277	return c
76278}
76279
76280// Context sets the context to be used in this call's Do method. Any
76281// pending HTTP request will be aborted if the provided context is
76282// canceled.
76283func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
76284	c.ctx_ = ctx
76285	return c
76286}
76287
76288// Header returns an http.Header that can be modified by the caller to
76289// add HTTP headers to the request.
76290func (c *HealthChecksAggregatedListCall) Header() http.Header {
76291	if c.header_ == nil {
76292		c.header_ = make(http.Header)
76293	}
76294	return c.header_
76295}
76296
76297func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
76298	reqHeaders := make(http.Header)
76299	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76300	for k, v := range c.header_ {
76301		reqHeaders[k] = v
76302	}
76303	reqHeaders.Set("User-Agent", c.s.userAgent())
76304	if c.ifNoneMatch_ != "" {
76305		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76306	}
76307	var body io.Reader = nil
76308	c.urlParams_.Set("alt", alt)
76309	c.urlParams_.Set("prettyPrint", "false")
76310	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthChecks")
76311	urls += "?" + c.urlParams_.Encode()
76312	req, err := http.NewRequest("GET", urls, body)
76313	if err != nil {
76314		return nil, err
76315	}
76316	req.Header = reqHeaders
76317	googleapi.Expand(req.URL, map[string]string{
76318		"project": c.project,
76319	})
76320	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76321}
76322
76323// Do executes the "compute.healthChecks.aggregatedList" call.
76324// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
76325// Any non-2xx status code is an error. Response headers are in either
76326// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
76327// was returned at all) in error.(*googleapi.Error).Header. Use
76328// googleapi.IsNotModified to check whether the returned error was
76329// because http.StatusNotModified was returned.
76330func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
76331	gensupport.SetOptions(c.urlParams_, opts...)
76332	res, err := c.doRequest("json")
76333	if res != nil && res.StatusCode == http.StatusNotModified {
76334		if res.Body != nil {
76335			res.Body.Close()
76336		}
76337		return nil, &googleapi.Error{
76338			Code:   res.StatusCode,
76339			Header: res.Header,
76340		}
76341	}
76342	if err != nil {
76343		return nil, err
76344	}
76345	defer googleapi.CloseBody(res)
76346	if err := googleapi.CheckResponse(res); err != nil {
76347		return nil, err
76348	}
76349	ret := &HealthChecksAggregatedList{
76350		ServerResponse: googleapi.ServerResponse{
76351			Header:         res.Header,
76352			HTTPStatusCode: res.StatusCode,
76353		},
76354	}
76355	target := &ret
76356	if err := gensupport.DecodeResponse(target, res); err != nil {
76357		return nil, err
76358	}
76359	return ret, nil
76360	// {
76361	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
76362	//   "httpMethod": "GET",
76363	//   "id": "compute.healthChecks.aggregatedList",
76364	//   "parameterOrder": [
76365	//     "project"
76366	//   ],
76367	//   "parameters": {
76368	//     "filter": {
76369	//       "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) ```",
76370	//       "location": "query",
76371	//       "type": "string"
76372	//     },
76373	//     "includeAllScopes": {
76374	//       "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.",
76375	//       "location": "query",
76376	//       "type": "boolean"
76377	//     },
76378	//     "maxResults": {
76379	//       "default": "500",
76380	//       "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`)",
76381	//       "format": "uint32",
76382	//       "location": "query",
76383	//       "minimum": "0",
76384	//       "type": "integer"
76385	//     },
76386	//     "orderBy": {
76387	//       "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.",
76388	//       "location": "query",
76389	//       "type": "string"
76390	//     },
76391	//     "pageToken": {
76392	//       "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.",
76393	//       "location": "query",
76394	//       "type": "string"
76395	//     },
76396	//     "project": {
76397	//       "description": "Name of the project scoping this request.",
76398	//       "location": "path",
76399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76400	//       "required": true,
76401	//       "type": "string"
76402	//     },
76403	//     "returnPartialSuccess": {
76404	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
76405	//       "location": "query",
76406	//       "type": "boolean"
76407	//     }
76408	//   },
76409	//   "path": "projects/{project}/aggregated/healthChecks",
76410	//   "response": {
76411	//     "$ref": "HealthChecksAggregatedList"
76412	//   },
76413	//   "scopes": [
76414	//     "https://www.googleapis.com/auth/cloud-platform",
76415	//     "https://www.googleapis.com/auth/compute",
76416	//     "https://www.googleapis.com/auth/compute.readonly"
76417	//   ]
76418	// }
76419
76420}
76421
76422// Pages invokes f for each page of results.
76423// A non-nil error returned from f will halt the iteration.
76424// The provided context supersedes any context provided to the Context method.
76425func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
76426	c.ctx_ = ctx
76427	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76428	for {
76429		x, err := c.Do()
76430		if err != nil {
76431			return err
76432		}
76433		if err := f(x); err != nil {
76434			return err
76435		}
76436		if x.NextPageToken == "" {
76437			return nil
76438		}
76439		c.PageToken(x.NextPageToken)
76440	}
76441}
76442
76443// method id "compute.healthChecks.delete":
76444
76445type HealthChecksDeleteCall struct {
76446	s           *Service
76447	project     string
76448	healthCheck string
76449	urlParams_  gensupport.URLParams
76450	ctx_        context.Context
76451	header_     http.Header
76452}
76453
76454// Delete: Deletes the specified HealthCheck resource.
76455//
76456// - healthCheck: Name of the HealthCheck resource to delete.
76457// - project: Project ID for this request.
76458func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
76459	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76460	c.project = project
76461	c.healthCheck = healthCheck
76462	return c
76463}
76464
76465// RequestId sets the optional parameter "requestId": An optional
76466// request ID to identify requests. Specify a unique request ID so that
76467// if you must retry your request, the server will know to ignore the
76468// request if it has already been completed.
76469//
76470// For example, consider a situation where you make an initial request
76471// and the request times out. If you make the request again with the
76472// same request ID, the server can check if original operation with the
76473// same request ID was received, and if so, will ignore the second
76474// request. This prevents clients from accidentally creating duplicate
76475// commitments.
76476//
76477// The request ID must be a valid UUID with the exception that zero UUID
76478// is not supported (00000000-0000-0000-0000-000000000000).
76479func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
76480	c.urlParams_.Set("requestId", requestId)
76481	return c
76482}
76483
76484// Fields allows partial responses to be retrieved. See
76485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76486// for more information.
76487func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
76488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76489	return c
76490}
76491
76492// Context sets the context to be used in this call's Do method. Any
76493// pending HTTP request will be aborted if the provided context is
76494// canceled.
76495func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
76496	c.ctx_ = ctx
76497	return c
76498}
76499
76500// Header returns an http.Header that can be modified by the caller to
76501// add HTTP headers to the request.
76502func (c *HealthChecksDeleteCall) Header() http.Header {
76503	if c.header_ == nil {
76504		c.header_ = make(http.Header)
76505	}
76506	return c.header_
76507}
76508
76509func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
76510	reqHeaders := make(http.Header)
76511	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76512	for k, v := range c.header_ {
76513		reqHeaders[k] = v
76514	}
76515	reqHeaders.Set("User-Agent", c.s.userAgent())
76516	var body io.Reader = nil
76517	c.urlParams_.Set("alt", alt)
76518	c.urlParams_.Set("prettyPrint", "false")
76519	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
76520	urls += "?" + c.urlParams_.Encode()
76521	req, err := http.NewRequest("DELETE", urls, body)
76522	if err != nil {
76523		return nil, err
76524	}
76525	req.Header = reqHeaders
76526	googleapi.Expand(req.URL, map[string]string{
76527		"project":     c.project,
76528		"healthCheck": c.healthCheck,
76529	})
76530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76531}
76532
76533// Do executes the "compute.healthChecks.delete" call.
76534// Exactly one of *Operation or error will be non-nil. Any non-2xx
76535// status code is an error. Response headers are in either
76536// *Operation.ServerResponse.Header or (if a response was returned at
76537// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76538// to check whether the returned error was because
76539// http.StatusNotModified was returned.
76540func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76541	gensupport.SetOptions(c.urlParams_, opts...)
76542	res, err := c.doRequest("json")
76543	if res != nil && res.StatusCode == http.StatusNotModified {
76544		if res.Body != nil {
76545			res.Body.Close()
76546		}
76547		return nil, &googleapi.Error{
76548			Code:   res.StatusCode,
76549			Header: res.Header,
76550		}
76551	}
76552	if err != nil {
76553		return nil, err
76554	}
76555	defer googleapi.CloseBody(res)
76556	if err := googleapi.CheckResponse(res); err != nil {
76557		return nil, err
76558	}
76559	ret := &Operation{
76560		ServerResponse: googleapi.ServerResponse{
76561			Header:         res.Header,
76562			HTTPStatusCode: res.StatusCode,
76563		},
76564	}
76565	target := &ret
76566	if err := gensupport.DecodeResponse(target, res); err != nil {
76567		return nil, err
76568	}
76569	return ret, nil
76570	// {
76571	//   "description": "Deletes the specified HealthCheck resource.",
76572	//   "httpMethod": "DELETE",
76573	//   "id": "compute.healthChecks.delete",
76574	//   "parameterOrder": [
76575	//     "project",
76576	//     "healthCheck"
76577	//   ],
76578	//   "parameters": {
76579	//     "healthCheck": {
76580	//       "description": "Name of the HealthCheck resource to delete.",
76581	//       "location": "path",
76582	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76583	//       "required": true,
76584	//       "type": "string"
76585	//     },
76586	//     "project": {
76587	//       "description": "Project ID for this request.",
76588	//       "location": "path",
76589	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76590	//       "required": true,
76591	//       "type": "string"
76592	//     },
76593	//     "requestId": {
76594	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76595	//       "location": "query",
76596	//       "type": "string"
76597	//     }
76598	//   },
76599	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
76600	//   "response": {
76601	//     "$ref": "Operation"
76602	//   },
76603	//   "scopes": [
76604	//     "https://www.googleapis.com/auth/cloud-platform",
76605	//     "https://www.googleapis.com/auth/compute"
76606	//   ]
76607	// }
76608
76609}
76610
76611// method id "compute.healthChecks.get":
76612
76613type HealthChecksGetCall struct {
76614	s            *Service
76615	project      string
76616	healthCheck  string
76617	urlParams_   gensupport.URLParams
76618	ifNoneMatch_ string
76619	ctx_         context.Context
76620	header_      http.Header
76621}
76622
76623// Get: Returns the specified HealthCheck resource. Gets a list of
76624// available health checks by making a list() request.
76625//
76626// - healthCheck: Name of the HealthCheck resource to return.
76627// - project: Project ID for this request.
76628func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
76629	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76630	c.project = project
76631	c.healthCheck = healthCheck
76632	return c
76633}
76634
76635// Fields allows partial responses to be retrieved. See
76636// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76637// for more information.
76638func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
76639	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76640	return c
76641}
76642
76643// IfNoneMatch sets the optional parameter which makes the operation
76644// fail if the object's ETag matches the given value. This is useful for
76645// getting updates only after the object has changed since the last
76646// request. Use googleapi.IsNotModified to check whether the response
76647// error from Do is the result of In-None-Match.
76648func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
76649	c.ifNoneMatch_ = entityTag
76650	return c
76651}
76652
76653// Context sets the context to be used in this call's Do method. Any
76654// pending HTTP request will be aborted if the provided context is
76655// canceled.
76656func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
76657	c.ctx_ = ctx
76658	return c
76659}
76660
76661// Header returns an http.Header that can be modified by the caller to
76662// add HTTP headers to the request.
76663func (c *HealthChecksGetCall) Header() http.Header {
76664	if c.header_ == nil {
76665		c.header_ = make(http.Header)
76666	}
76667	return c.header_
76668}
76669
76670func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
76671	reqHeaders := make(http.Header)
76672	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76673	for k, v := range c.header_ {
76674		reqHeaders[k] = v
76675	}
76676	reqHeaders.Set("User-Agent", c.s.userAgent())
76677	if c.ifNoneMatch_ != "" {
76678		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76679	}
76680	var body io.Reader = nil
76681	c.urlParams_.Set("alt", alt)
76682	c.urlParams_.Set("prettyPrint", "false")
76683	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
76684	urls += "?" + c.urlParams_.Encode()
76685	req, err := http.NewRequest("GET", urls, body)
76686	if err != nil {
76687		return nil, err
76688	}
76689	req.Header = reqHeaders
76690	googleapi.Expand(req.URL, map[string]string{
76691		"project":     c.project,
76692		"healthCheck": c.healthCheck,
76693	})
76694	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76695}
76696
76697// Do executes the "compute.healthChecks.get" call.
76698// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
76699// status code is an error. Response headers are in either
76700// *HealthCheck.ServerResponse.Header or (if a response was returned at
76701// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76702// to check whether the returned error was because
76703// http.StatusNotModified was returned.
76704func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
76705	gensupport.SetOptions(c.urlParams_, opts...)
76706	res, err := c.doRequest("json")
76707	if res != nil && res.StatusCode == http.StatusNotModified {
76708		if res.Body != nil {
76709			res.Body.Close()
76710		}
76711		return nil, &googleapi.Error{
76712			Code:   res.StatusCode,
76713			Header: res.Header,
76714		}
76715	}
76716	if err != nil {
76717		return nil, err
76718	}
76719	defer googleapi.CloseBody(res)
76720	if err := googleapi.CheckResponse(res); err != nil {
76721		return nil, err
76722	}
76723	ret := &HealthCheck{
76724		ServerResponse: googleapi.ServerResponse{
76725			Header:         res.Header,
76726			HTTPStatusCode: res.StatusCode,
76727		},
76728	}
76729	target := &ret
76730	if err := gensupport.DecodeResponse(target, res); err != nil {
76731		return nil, err
76732	}
76733	return ret, nil
76734	// {
76735	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
76736	//   "httpMethod": "GET",
76737	//   "id": "compute.healthChecks.get",
76738	//   "parameterOrder": [
76739	//     "project",
76740	//     "healthCheck"
76741	//   ],
76742	//   "parameters": {
76743	//     "healthCheck": {
76744	//       "description": "Name of the HealthCheck resource to return.",
76745	//       "location": "path",
76746	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76747	//       "required": true,
76748	//       "type": "string"
76749	//     },
76750	//     "project": {
76751	//       "description": "Project ID for this request.",
76752	//       "location": "path",
76753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76754	//       "required": true,
76755	//       "type": "string"
76756	//     }
76757	//   },
76758	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
76759	//   "response": {
76760	//     "$ref": "HealthCheck"
76761	//   },
76762	//   "scopes": [
76763	//     "https://www.googleapis.com/auth/cloud-platform",
76764	//     "https://www.googleapis.com/auth/compute",
76765	//     "https://www.googleapis.com/auth/compute.readonly"
76766	//   ]
76767	// }
76768
76769}
76770
76771// method id "compute.healthChecks.insert":
76772
76773type HealthChecksInsertCall struct {
76774	s           *Service
76775	project     string
76776	healthcheck *HealthCheck
76777	urlParams_  gensupport.URLParams
76778	ctx_        context.Context
76779	header_     http.Header
76780}
76781
76782// Insert: Creates a HealthCheck resource in the specified project using
76783// the data included in the request.
76784//
76785// - project: Project ID for this request.
76786func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
76787	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76788	c.project = project
76789	c.healthcheck = healthcheck
76790	return c
76791}
76792
76793// RequestId sets the optional parameter "requestId": An optional
76794// request ID to identify requests. Specify a unique request ID so that
76795// if you must retry your request, the server will know to ignore the
76796// request if it has already been completed.
76797//
76798// For example, consider a situation where you make an initial request
76799// and the request times out. If you make the request again with the
76800// same request ID, the server can check if original operation with the
76801// same request ID was received, and if so, will ignore the second
76802// request. This prevents clients from accidentally creating duplicate
76803// commitments.
76804//
76805// The request ID must be a valid UUID with the exception that zero UUID
76806// is not supported (00000000-0000-0000-0000-000000000000).
76807func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
76808	c.urlParams_.Set("requestId", requestId)
76809	return c
76810}
76811
76812// Fields allows partial responses to be retrieved. See
76813// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76814// for more information.
76815func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
76816	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76817	return c
76818}
76819
76820// Context sets the context to be used in this call's Do method. Any
76821// pending HTTP request will be aborted if the provided context is
76822// canceled.
76823func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
76824	c.ctx_ = ctx
76825	return c
76826}
76827
76828// Header returns an http.Header that can be modified by the caller to
76829// add HTTP headers to the request.
76830func (c *HealthChecksInsertCall) Header() http.Header {
76831	if c.header_ == nil {
76832		c.header_ = make(http.Header)
76833	}
76834	return c.header_
76835}
76836
76837func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
76838	reqHeaders := make(http.Header)
76839	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76840	for k, v := range c.header_ {
76841		reqHeaders[k] = v
76842	}
76843	reqHeaders.Set("User-Agent", c.s.userAgent())
76844	var body io.Reader = nil
76845	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
76846	if err != nil {
76847		return nil, err
76848	}
76849	reqHeaders.Set("Content-Type", "application/json")
76850	c.urlParams_.Set("alt", alt)
76851	c.urlParams_.Set("prettyPrint", "false")
76852	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
76853	urls += "?" + c.urlParams_.Encode()
76854	req, err := http.NewRequest("POST", urls, body)
76855	if err != nil {
76856		return nil, err
76857	}
76858	req.Header = reqHeaders
76859	googleapi.Expand(req.URL, map[string]string{
76860		"project": c.project,
76861	})
76862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76863}
76864
76865// Do executes the "compute.healthChecks.insert" call.
76866// Exactly one of *Operation or error will be non-nil. Any non-2xx
76867// status code is an error. Response headers are in either
76868// *Operation.ServerResponse.Header or (if a response was returned at
76869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76870// to check whether the returned error was because
76871// http.StatusNotModified was returned.
76872func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76873	gensupport.SetOptions(c.urlParams_, opts...)
76874	res, err := c.doRequest("json")
76875	if res != nil && res.StatusCode == http.StatusNotModified {
76876		if res.Body != nil {
76877			res.Body.Close()
76878		}
76879		return nil, &googleapi.Error{
76880			Code:   res.StatusCode,
76881			Header: res.Header,
76882		}
76883	}
76884	if err != nil {
76885		return nil, err
76886	}
76887	defer googleapi.CloseBody(res)
76888	if err := googleapi.CheckResponse(res); err != nil {
76889		return nil, err
76890	}
76891	ret := &Operation{
76892		ServerResponse: googleapi.ServerResponse{
76893			Header:         res.Header,
76894			HTTPStatusCode: res.StatusCode,
76895		},
76896	}
76897	target := &ret
76898	if err := gensupport.DecodeResponse(target, res); err != nil {
76899		return nil, err
76900	}
76901	return ret, nil
76902	// {
76903	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
76904	//   "httpMethod": "POST",
76905	//   "id": "compute.healthChecks.insert",
76906	//   "parameterOrder": [
76907	//     "project"
76908	//   ],
76909	//   "parameters": {
76910	//     "project": {
76911	//       "description": "Project ID for this request.",
76912	//       "location": "path",
76913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76914	//       "required": true,
76915	//       "type": "string"
76916	//     },
76917	//     "requestId": {
76918	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76919	//       "location": "query",
76920	//       "type": "string"
76921	//     }
76922	//   },
76923	//   "path": "projects/{project}/global/healthChecks",
76924	//   "request": {
76925	//     "$ref": "HealthCheck"
76926	//   },
76927	//   "response": {
76928	//     "$ref": "Operation"
76929	//   },
76930	//   "scopes": [
76931	//     "https://www.googleapis.com/auth/cloud-platform",
76932	//     "https://www.googleapis.com/auth/compute"
76933	//   ]
76934	// }
76935
76936}
76937
76938// method id "compute.healthChecks.list":
76939
76940type HealthChecksListCall struct {
76941	s            *Service
76942	project      string
76943	urlParams_   gensupport.URLParams
76944	ifNoneMatch_ string
76945	ctx_         context.Context
76946	header_      http.Header
76947}
76948
76949// List: Retrieves the list of HealthCheck resources available to the
76950// specified project.
76951//
76952// - project: Project ID for this request.
76953func (r *HealthChecksService) List(project string) *HealthChecksListCall {
76954	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76955	c.project = project
76956	return c
76957}
76958
76959// Filter sets the optional parameter "filter": A filter expression that
76960// filters resources listed in the response. The expression must specify
76961// the field name, a comparison operator, and the value that you want to
76962// use for filtering. The value must be a string, a number, or a
76963// boolean. The comparison operator must be either `=`, `!=`, `>`, or
76964// `<`.
76965//
76966// For example, if you are filtering Compute Engine instances, you can
76967// exclude instances named `example-instance` by specifying `name !=
76968// example-instance`.
76969//
76970// You can also filter nested fields. For example, you could specify
76971// `scheduling.automaticRestart = false` to include instances only if
76972// they are not scheduled for automatic restarts. You can use filtering
76973// on nested fields to filter based on resource labels.
76974//
76975// To filter on multiple expressions, provide each separate expression
76976// within parentheses. For example: ``` (scheduling.automaticRestart =
76977// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
76978// is an `AND` expression. However, you can include `AND` and `OR`
76979// expressions explicitly. For example: ``` (cpuPlatform = "Intel
76980// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
76981// (scheduling.automaticRestart = true) ```
76982func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
76983	c.urlParams_.Set("filter", filter)
76984	return c
76985}
76986
76987// MaxResults sets the optional parameter "maxResults": The maximum
76988// number of results per page that should be returned. If the number of
76989// available results is larger than `maxResults`, Compute Engine returns
76990// a `nextPageToken` that can be used to get the next page of results in
76991// subsequent list requests. Acceptable values are `0` to `500`,
76992// inclusive. (Default: `500`)
76993func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
76994	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76995	return c
76996}
76997
76998// OrderBy sets the optional parameter "orderBy": Sorts list results by
76999// a certain order. By default, results are returned in alphanumerical
77000// order based on the resource name.
77001//
77002// You can also sort results in descending order based on the creation
77003// timestamp using `orderBy="creationTimestamp desc". This sorts
77004// results based on the `creationTimestamp` field in reverse
77005// chronological order (newest result first). Use this to sort resources
77006// like operations so that the newest operation is returned
77007// first.
77008//
77009// Currently, only sorting by `name` or `creationTimestamp desc` is
77010// supported.
77011func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
77012	c.urlParams_.Set("orderBy", orderBy)
77013	return c
77014}
77015
77016// PageToken sets the optional parameter "pageToken": Specifies a page
77017// token to use. Set `pageToken` to the `nextPageToken` returned by a
77018// previous list request to get the next page of results.
77019func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
77020	c.urlParams_.Set("pageToken", pageToken)
77021	return c
77022}
77023
77024// ReturnPartialSuccess sets the optional parameter
77025// "returnPartialSuccess": Opt-in for partial success behavior which
77026// provides partial results in case of failure. The default value is
77027// false.
77028func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksListCall {
77029	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
77030	return c
77031}
77032
77033// Fields allows partial responses to be retrieved. See
77034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77035// for more information.
77036func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
77037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77038	return c
77039}
77040
77041// IfNoneMatch sets the optional parameter which makes the operation
77042// fail if the object's ETag matches the given value. This is useful for
77043// getting updates only after the object has changed since the last
77044// request. Use googleapi.IsNotModified to check whether the response
77045// error from Do is the result of In-None-Match.
77046func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
77047	c.ifNoneMatch_ = entityTag
77048	return c
77049}
77050
77051// Context sets the context to be used in this call's Do method. Any
77052// pending HTTP request will be aborted if the provided context is
77053// canceled.
77054func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
77055	c.ctx_ = ctx
77056	return c
77057}
77058
77059// Header returns an http.Header that can be modified by the caller to
77060// add HTTP headers to the request.
77061func (c *HealthChecksListCall) Header() http.Header {
77062	if c.header_ == nil {
77063		c.header_ = make(http.Header)
77064	}
77065	return c.header_
77066}
77067
77068func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
77069	reqHeaders := make(http.Header)
77070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77071	for k, v := range c.header_ {
77072		reqHeaders[k] = v
77073	}
77074	reqHeaders.Set("User-Agent", c.s.userAgent())
77075	if c.ifNoneMatch_ != "" {
77076		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77077	}
77078	var body io.Reader = nil
77079	c.urlParams_.Set("alt", alt)
77080	c.urlParams_.Set("prettyPrint", "false")
77081	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
77082	urls += "?" + c.urlParams_.Encode()
77083	req, err := http.NewRequest("GET", urls, body)
77084	if err != nil {
77085		return nil, err
77086	}
77087	req.Header = reqHeaders
77088	googleapi.Expand(req.URL, map[string]string{
77089		"project": c.project,
77090	})
77091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77092}
77093
77094// Do executes the "compute.healthChecks.list" call.
77095// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
77096// status code is an error. Response headers are in either
77097// *HealthCheckList.ServerResponse.Header or (if a response was returned
77098// at all) in error.(*googleapi.Error).Header. Use
77099// googleapi.IsNotModified to check whether the returned error was
77100// because http.StatusNotModified was returned.
77101func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
77102	gensupport.SetOptions(c.urlParams_, opts...)
77103	res, err := c.doRequest("json")
77104	if res != nil && res.StatusCode == http.StatusNotModified {
77105		if res.Body != nil {
77106			res.Body.Close()
77107		}
77108		return nil, &googleapi.Error{
77109			Code:   res.StatusCode,
77110			Header: res.Header,
77111		}
77112	}
77113	if err != nil {
77114		return nil, err
77115	}
77116	defer googleapi.CloseBody(res)
77117	if err := googleapi.CheckResponse(res); err != nil {
77118		return nil, err
77119	}
77120	ret := &HealthCheckList{
77121		ServerResponse: googleapi.ServerResponse{
77122			Header:         res.Header,
77123			HTTPStatusCode: res.StatusCode,
77124		},
77125	}
77126	target := &ret
77127	if err := gensupport.DecodeResponse(target, res); err != nil {
77128		return nil, err
77129	}
77130	return ret, nil
77131	// {
77132	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
77133	//   "httpMethod": "GET",
77134	//   "id": "compute.healthChecks.list",
77135	//   "parameterOrder": [
77136	//     "project"
77137	//   ],
77138	//   "parameters": {
77139	//     "filter": {
77140	//       "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) ```",
77141	//       "location": "query",
77142	//       "type": "string"
77143	//     },
77144	//     "maxResults": {
77145	//       "default": "500",
77146	//       "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`)",
77147	//       "format": "uint32",
77148	//       "location": "query",
77149	//       "minimum": "0",
77150	//       "type": "integer"
77151	//     },
77152	//     "orderBy": {
77153	//       "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.",
77154	//       "location": "query",
77155	//       "type": "string"
77156	//     },
77157	//     "pageToken": {
77158	//       "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.",
77159	//       "location": "query",
77160	//       "type": "string"
77161	//     },
77162	//     "project": {
77163	//       "description": "Project ID for this request.",
77164	//       "location": "path",
77165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77166	//       "required": true,
77167	//       "type": "string"
77168	//     },
77169	//     "returnPartialSuccess": {
77170	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
77171	//       "location": "query",
77172	//       "type": "boolean"
77173	//     }
77174	//   },
77175	//   "path": "projects/{project}/global/healthChecks",
77176	//   "response": {
77177	//     "$ref": "HealthCheckList"
77178	//   },
77179	//   "scopes": [
77180	//     "https://www.googleapis.com/auth/cloud-platform",
77181	//     "https://www.googleapis.com/auth/compute",
77182	//     "https://www.googleapis.com/auth/compute.readonly"
77183	//   ]
77184	// }
77185
77186}
77187
77188// Pages invokes f for each page of results.
77189// A non-nil error returned from f will halt the iteration.
77190// The provided context supersedes any context provided to the Context method.
77191func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
77192	c.ctx_ = ctx
77193	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77194	for {
77195		x, err := c.Do()
77196		if err != nil {
77197			return err
77198		}
77199		if err := f(x); err != nil {
77200			return err
77201		}
77202		if x.NextPageToken == "" {
77203			return nil
77204		}
77205		c.PageToken(x.NextPageToken)
77206	}
77207}
77208
77209// method id "compute.healthChecks.patch":
77210
77211type HealthChecksPatchCall struct {
77212	s           *Service
77213	project     string
77214	healthCheck string
77215	healthcheck *HealthCheck
77216	urlParams_  gensupport.URLParams
77217	ctx_        context.Context
77218	header_     http.Header
77219}
77220
77221// Patch: Updates a HealthCheck resource in the specified project using
77222// the data included in the request. This method supports PATCH
77223// semantics and uses the JSON merge patch format and processing rules.
77224//
77225// - healthCheck: Name of the HealthCheck resource to patch.
77226// - project: Project ID for this request.
77227func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
77228	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77229	c.project = project
77230	c.healthCheck = healthCheck
77231	c.healthcheck = healthcheck
77232	return c
77233}
77234
77235// RequestId sets the optional parameter "requestId": An optional
77236// request ID to identify requests. Specify a unique request ID so that
77237// if you must retry your request, the server will know to ignore the
77238// request if it has already been completed.
77239//
77240// For example, consider a situation where you make an initial request
77241// and the request times out. If you make the request again with the
77242// same request ID, the server can check if original operation with the
77243// same request ID was received, and if so, will ignore the second
77244// request. This prevents clients from accidentally creating duplicate
77245// commitments.
77246//
77247// The request ID must be a valid UUID with the exception that zero UUID
77248// is not supported (00000000-0000-0000-0000-000000000000).
77249func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
77250	c.urlParams_.Set("requestId", requestId)
77251	return c
77252}
77253
77254// Fields allows partial responses to be retrieved. See
77255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77256// for more information.
77257func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
77258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77259	return c
77260}
77261
77262// Context sets the context to be used in this call's Do method. Any
77263// pending HTTP request will be aborted if the provided context is
77264// canceled.
77265func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
77266	c.ctx_ = ctx
77267	return c
77268}
77269
77270// Header returns an http.Header that can be modified by the caller to
77271// add HTTP headers to the request.
77272func (c *HealthChecksPatchCall) Header() http.Header {
77273	if c.header_ == nil {
77274		c.header_ = make(http.Header)
77275	}
77276	return c.header_
77277}
77278
77279func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
77280	reqHeaders := make(http.Header)
77281	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77282	for k, v := range c.header_ {
77283		reqHeaders[k] = v
77284	}
77285	reqHeaders.Set("User-Agent", c.s.userAgent())
77286	var body io.Reader = nil
77287	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
77288	if err != nil {
77289		return nil, err
77290	}
77291	reqHeaders.Set("Content-Type", "application/json")
77292	c.urlParams_.Set("alt", alt)
77293	c.urlParams_.Set("prettyPrint", "false")
77294	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
77295	urls += "?" + c.urlParams_.Encode()
77296	req, err := http.NewRequest("PATCH", urls, body)
77297	if err != nil {
77298		return nil, err
77299	}
77300	req.Header = reqHeaders
77301	googleapi.Expand(req.URL, map[string]string{
77302		"project":     c.project,
77303		"healthCheck": c.healthCheck,
77304	})
77305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77306}
77307
77308// Do executes the "compute.healthChecks.patch" call.
77309// Exactly one of *Operation or error will be non-nil. Any non-2xx
77310// status code is an error. Response headers are in either
77311// *Operation.ServerResponse.Header or (if a response was returned at
77312// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77313// to check whether the returned error was because
77314// http.StatusNotModified was returned.
77315func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77316	gensupport.SetOptions(c.urlParams_, opts...)
77317	res, err := c.doRequest("json")
77318	if res != nil && res.StatusCode == http.StatusNotModified {
77319		if res.Body != nil {
77320			res.Body.Close()
77321		}
77322		return nil, &googleapi.Error{
77323			Code:   res.StatusCode,
77324			Header: res.Header,
77325		}
77326	}
77327	if err != nil {
77328		return nil, err
77329	}
77330	defer googleapi.CloseBody(res)
77331	if err := googleapi.CheckResponse(res); err != nil {
77332		return nil, err
77333	}
77334	ret := &Operation{
77335		ServerResponse: googleapi.ServerResponse{
77336			Header:         res.Header,
77337			HTTPStatusCode: res.StatusCode,
77338		},
77339	}
77340	target := &ret
77341	if err := gensupport.DecodeResponse(target, res); err != nil {
77342		return nil, err
77343	}
77344	return ret, nil
77345	// {
77346	//   "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.",
77347	//   "httpMethod": "PATCH",
77348	//   "id": "compute.healthChecks.patch",
77349	//   "parameterOrder": [
77350	//     "project",
77351	//     "healthCheck"
77352	//   ],
77353	//   "parameters": {
77354	//     "healthCheck": {
77355	//       "description": "Name of the HealthCheck resource to patch.",
77356	//       "location": "path",
77357	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77358	//       "required": true,
77359	//       "type": "string"
77360	//     },
77361	//     "project": {
77362	//       "description": "Project ID for this request.",
77363	//       "location": "path",
77364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77365	//       "required": true,
77366	//       "type": "string"
77367	//     },
77368	//     "requestId": {
77369	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77370	//       "location": "query",
77371	//       "type": "string"
77372	//     }
77373	//   },
77374	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
77375	//   "request": {
77376	//     "$ref": "HealthCheck"
77377	//   },
77378	//   "response": {
77379	//     "$ref": "Operation"
77380	//   },
77381	//   "scopes": [
77382	//     "https://www.googleapis.com/auth/cloud-platform",
77383	//     "https://www.googleapis.com/auth/compute"
77384	//   ]
77385	// }
77386
77387}
77388
77389// method id "compute.healthChecks.testIamPermissions":
77390
77391type HealthChecksTestIamPermissionsCall struct {
77392	s                      *Service
77393	project                string
77394	resource               string
77395	testpermissionsrequest *TestPermissionsRequest
77396	urlParams_             gensupport.URLParams
77397	ctx_                   context.Context
77398	header_                http.Header
77399}
77400
77401// TestIamPermissions: Returns permissions that a caller has on the
77402// specified resource.
77403//
77404// - project: Project ID for this request.
77405// - resource: Name or id of the resource for this request.
77406func (r *HealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HealthChecksTestIamPermissionsCall {
77407	c := &HealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77408	c.project = project
77409	c.resource = resource
77410	c.testpermissionsrequest = testpermissionsrequest
77411	return c
77412}
77413
77414// Fields allows partial responses to be retrieved. See
77415// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77416// for more information.
77417func (c *HealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HealthChecksTestIamPermissionsCall {
77418	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77419	return c
77420}
77421
77422// Context sets the context to be used in this call's Do method. Any
77423// pending HTTP request will be aborted if the provided context is
77424// canceled.
77425func (c *HealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HealthChecksTestIamPermissionsCall {
77426	c.ctx_ = ctx
77427	return c
77428}
77429
77430// Header returns an http.Header that can be modified by the caller to
77431// add HTTP headers to the request.
77432func (c *HealthChecksTestIamPermissionsCall) Header() http.Header {
77433	if c.header_ == nil {
77434		c.header_ = make(http.Header)
77435	}
77436	return c.header_
77437}
77438
77439func (c *HealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
77440	reqHeaders := make(http.Header)
77441	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77442	for k, v := range c.header_ {
77443		reqHeaders[k] = v
77444	}
77445	reqHeaders.Set("User-Agent", c.s.userAgent())
77446	var body io.Reader = nil
77447	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
77448	if err != nil {
77449		return nil, err
77450	}
77451	reqHeaders.Set("Content-Type", "application/json")
77452	c.urlParams_.Set("alt", alt)
77453	c.urlParams_.Set("prettyPrint", "false")
77454	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{resource}/testIamPermissions")
77455	urls += "?" + c.urlParams_.Encode()
77456	req, err := http.NewRequest("POST", urls, body)
77457	if err != nil {
77458		return nil, err
77459	}
77460	req.Header = reqHeaders
77461	googleapi.Expand(req.URL, map[string]string{
77462		"project":  c.project,
77463		"resource": c.resource,
77464	})
77465	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77466}
77467
77468// Do executes the "compute.healthChecks.testIamPermissions" call.
77469// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
77470// non-2xx status code is an error. Response headers are in either
77471// *TestPermissionsResponse.ServerResponse.Header or (if a response was
77472// returned at all) in error.(*googleapi.Error).Header. Use
77473// googleapi.IsNotModified to check whether the returned error was
77474// because http.StatusNotModified was returned.
77475func (c *HealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
77476	gensupport.SetOptions(c.urlParams_, opts...)
77477	res, err := c.doRequest("json")
77478	if res != nil && res.StatusCode == http.StatusNotModified {
77479		if res.Body != nil {
77480			res.Body.Close()
77481		}
77482		return nil, &googleapi.Error{
77483			Code:   res.StatusCode,
77484			Header: res.Header,
77485		}
77486	}
77487	if err != nil {
77488		return nil, err
77489	}
77490	defer googleapi.CloseBody(res)
77491	if err := googleapi.CheckResponse(res); err != nil {
77492		return nil, err
77493	}
77494	ret := &TestPermissionsResponse{
77495		ServerResponse: googleapi.ServerResponse{
77496			Header:         res.Header,
77497			HTTPStatusCode: res.StatusCode,
77498		},
77499	}
77500	target := &ret
77501	if err := gensupport.DecodeResponse(target, res); err != nil {
77502		return nil, err
77503	}
77504	return ret, nil
77505	// {
77506	//   "description": "Returns permissions that a caller has on the specified resource.",
77507	//   "httpMethod": "POST",
77508	//   "id": "compute.healthChecks.testIamPermissions",
77509	//   "parameterOrder": [
77510	//     "project",
77511	//     "resource"
77512	//   ],
77513	//   "parameters": {
77514	//     "project": {
77515	//       "description": "Project ID for this request.",
77516	//       "location": "path",
77517	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77518	//       "required": true,
77519	//       "type": "string"
77520	//     },
77521	//     "resource": {
77522	//       "description": "Name or id of the resource for this request.",
77523	//       "location": "path",
77524	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77525	//       "required": true,
77526	//       "type": "string"
77527	//     }
77528	//   },
77529	//   "path": "projects/{project}/global/healthChecks/{resource}/testIamPermissions",
77530	//   "request": {
77531	//     "$ref": "TestPermissionsRequest"
77532	//   },
77533	//   "response": {
77534	//     "$ref": "TestPermissionsResponse"
77535	//   },
77536	//   "scopes": [
77537	//     "https://www.googleapis.com/auth/cloud-platform",
77538	//     "https://www.googleapis.com/auth/compute",
77539	//     "https://www.googleapis.com/auth/compute.readonly"
77540	//   ]
77541	// }
77542
77543}
77544
77545// method id "compute.healthChecks.update":
77546
77547type HealthChecksUpdateCall struct {
77548	s           *Service
77549	project     string
77550	healthCheck string
77551	healthcheck *HealthCheck
77552	urlParams_  gensupport.URLParams
77553	ctx_        context.Context
77554	header_     http.Header
77555}
77556
77557// Update: Updates a HealthCheck resource in the specified project using
77558// the data included in the request.
77559//
77560// - healthCheck: Name of the HealthCheck resource to update.
77561// - project: Project ID for this request.
77562func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
77563	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77564	c.project = project
77565	c.healthCheck = healthCheck
77566	c.healthcheck = healthcheck
77567	return c
77568}
77569
77570// RequestId sets the optional parameter "requestId": An optional
77571// request ID to identify requests. Specify a unique request ID so that
77572// if you must retry your request, the server will know to ignore the
77573// request if it has already been completed.
77574//
77575// For example, consider a situation where you make an initial request
77576// and the request times out. If you make the request again with the
77577// same request ID, the server can check if original operation with the
77578// same request ID was received, and if so, will ignore the second
77579// request. This prevents clients from accidentally creating duplicate
77580// commitments.
77581//
77582// The request ID must be a valid UUID with the exception that zero UUID
77583// is not supported (00000000-0000-0000-0000-000000000000).
77584func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
77585	c.urlParams_.Set("requestId", requestId)
77586	return c
77587}
77588
77589// Fields allows partial responses to be retrieved. See
77590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77591// for more information.
77592func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
77593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77594	return c
77595}
77596
77597// Context sets the context to be used in this call's Do method. Any
77598// pending HTTP request will be aborted if the provided context is
77599// canceled.
77600func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
77601	c.ctx_ = ctx
77602	return c
77603}
77604
77605// Header returns an http.Header that can be modified by the caller to
77606// add HTTP headers to the request.
77607func (c *HealthChecksUpdateCall) Header() http.Header {
77608	if c.header_ == nil {
77609		c.header_ = make(http.Header)
77610	}
77611	return c.header_
77612}
77613
77614func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
77615	reqHeaders := make(http.Header)
77616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77617	for k, v := range c.header_ {
77618		reqHeaders[k] = v
77619	}
77620	reqHeaders.Set("User-Agent", c.s.userAgent())
77621	var body io.Reader = nil
77622	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
77623	if err != nil {
77624		return nil, err
77625	}
77626	reqHeaders.Set("Content-Type", "application/json")
77627	c.urlParams_.Set("alt", alt)
77628	c.urlParams_.Set("prettyPrint", "false")
77629	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
77630	urls += "?" + c.urlParams_.Encode()
77631	req, err := http.NewRequest("PUT", urls, body)
77632	if err != nil {
77633		return nil, err
77634	}
77635	req.Header = reqHeaders
77636	googleapi.Expand(req.URL, map[string]string{
77637		"project":     c.project,
77638		"healthCheck": c.healthCheck,
77639	})
77640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77641}
77642
77643// Do executes the "compute.healthChecks.update" call.
77644// Exactly one of *Operation or error will be non-nil. Any non-2xx
77645// status code is an error. Response headers are in either
77646// *Operation.ServerResponse.Header or (if a response was returned at
77647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77648// to check whether the returned error was because
77649// http.StatusNotModified was returned.
77650func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77651	gensupport.SetOptions(c.urlParams_, opts...)
77652	res, err := c.doRequest("json")
77653	if res != nil && res.StatusCode == http.StatusNotModified {
77654		if res.Body != nil {
77655			res.Body.Close()
77656		}
77657		return nil, &googleapi.Error{
77658			Code:   res.StatusCode,
77659			Header: res.Header,
77660		}
77661	}
77662	if err != nil {
77663		return nil, err
77664	}
77665	defer googleapi.CloseBody(res)
77666	if err := googleapi.CheckResponse(res); err != nil {
77667		return nil, err
77668	}
77669	ret := &Operation{
77670		ServerResponse: googleapi.ServerResponse{
77671			Header:         res.Header,
77672			HTTPStatusCode: res.StatusCode,
77673		},
77674	}
77675	target := &ret
77676	if err := gensupport.DecodeResponse(target, res); err != nil {
77677		return nil, err
77678	}
77679	return ret, nil
77680	// {
77681	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
77682	//   "httpMethod": "PUT",
77683	//   "id": "compute.healthChecks.update",
77684	//   "parameterOrder": [
77685	//     "project",
77686	//     "healthCheck"
77687	//   ],
77688	//   "parameters": {
77689	//     "healthCheck": {
77690	//       "description": "Name of the HealthCheck resource to update.",
77691	//       "location": "path",
77692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77693	//       "required": true,
77694	//       "type": "string"
77695	//     },
77696	//     "project": {
77697	//       "description": "Project ID for this request.",
77698	//       "location": "path",
77699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77700	//       "required": true,
77701	//       "type": "string"
77702	//     },
77703	//     "requestId": {
77704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77705	//       "location": "query",
77706	//       "type": "string"
77707	//     }
77708	//   },
77709	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
77710	//   "request": {
77711	//     "$ref": "HealthCheck"
77712	//   },
77713	//   "response": {
77714	//     "$ref": "Operation"
77715	//   },
77716	//   "scopes": [
77717	//     "https://www.googleapis.com/auth/cloud-platform",
77718	//     "https://www.googleapis.com/auth/compute"
77719	//   ]
77720	// }
77721
77722}
77723
77724// method id "compute.httpHealthChecks.delete":
77725
77726type HttpHealthChecksDeleteCall struct {
77727	s               *Service
77728	project         string
77729	httpHealthCheck string
77730	urlParams_      gensupport.URLParams
77731	ctx_            context.Context
77732	header_         http.Header
77733}
77734
77735// Delete: Deletes the specified HttpHealthCheck resource.
77736//
77737// - httpHealthCheck: Name of the HttpHealthCheck resource to delete.
77738// - project: Project ID for this request.
77739// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
77740func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
77741	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77742	c.project = project
77743	c.httpHealthCheck = httpHealthCheck
77744	return c
77745}
77746
77747// RequestId sets the optional parameter "requestId": An optional
77748// request ID to identify requests. Specify a unique request ID so that
77749// if you must retry your request, the server will know to ignore the
77750// request if it has already been completed.
77751//
77752// For example, consider a situation where you make an initial request
77753// and the request times out. If you make the request again with the
77754// same request ID, the server can check if original operation with the
77755// same request ID was received, and if so, will ignore the second
77756// request. This prevents clients from accidentally creating duplicate
77757// commitments.
77758//
77759// The request ID must be a valid UUID with the exception that zero UUID
77760// is not supported (00000000-0000-0000-0000-000000000000).
77761func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
77762	c.urlParams_.Set("requestId", requestId)
77763	return c
77764}
77765
77766// Fields allows partial responses to be retrieved. See
77767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77768// for more information.
77769func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
77770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77771	return c
77772}
77773
77774// Context sets the context to be used in this call's Do method. Any
77775// pending HTTP request will be aborted if the provided context is
77776// canceled.
77777func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
77778	c.ctx_ = ctx
77779	return c
77780}
77781
77782// Header returns an http.Header that can be modified by the caller to
77783// add HTTP headers to the request.
77784func (c *HttpHealthChecksDeleteCall) Header() http.Header {
77785	if c.header_ == nil {
77786		c.header_ = make(http.Header)
77787	}
77788	return c.header_
77789}
77790
77791func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
77792	reqHeaders := make(http.Header)
77793	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77794	for k, v := range c.header_ {
77795		reqHeaders[k] = v
77796	}
77797	reqHeaders.Set("User-Agent", c.s.userAgent())
77798	var body io.Reader = nil
77799	c.urlParams_.Set("alt", alt)
77800	c.urlParams_.Set("prettyPrint", "false")
77801	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
77802	urls += "?" + c.urlParams_.Encode()
77803	req, err := http.NewRequest("DELETE", urls, body)
77804	if err != nil {
77805		return nil, err
77806	}
77807	req.Header = reqHeaders
77808	googleapi.Expand(req.URL, map[string]string{
77809		"project":         c.project,
77810		"httpHealthCheck": c.httpHealthCheck,
77811	})
77812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77813}
77814
77815// Do executes the "compute.httpHealthChecks.delete" call.
77816// Exactly one of *Operation or error will be non-nil. Any non-2xx
77817// status code is an error. Response headers are in either
77818// *Operation.ServerResponse.Header or (if a response was returned at
77819// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77820// to check whether the returned error was because
77821// http.StatusNotModified was returned.
77822func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77823	gensupport.SetOptions(c.urlParams_, opts...)
77824	res, err := c.doRequest("json")
77825	if res != nil && res.StatusCode == http.StatusNotModified {
77826		if res.Body != nil {
77827			res.Body.Close()
77828		}
77829		return nil, &googleapi.Error{
77830			Code:   res.StatusCode,
77831			Header: res.Header,
77832		}
77833	}
77834	if err != nil {
77835		return nil, err
77836	}
77837	defer googleapi.CloseBody(res)
77838	if err := googleapi.CheckResponse(res); err != nil {
77839		return nil, err
77840	}
77841	ret := &Operation{
77842		ServerResponse: googleapi.ServerResponse{
77843			Header:         res.Header,
77844			HTTPStatusCode: res.StatusCode,
77845		},
77846	}
77847	target := &ret
77848	if err := gensupport.DecodeResponse(target, res); err != nil {
77849		return nil, err
77850	}
77851	return ret, nil
77852	// {
77853	//   "description": "Deletes the specified HttpHealthCheck resource.",
77854	//   "httpMethod": "DELETE",
77855	//   "id": "compute.httpHealthChecks.delete",
77856	//   "parameterOrder": [
77857	//     "project",
77858	//     "httpHealthCheck"
77859	//   ],
77860	//   "parameters": {
77861	//     "httpHealthCheck": {
77862	//       "description": "Name of the HttpHealthCheck resource to delete.",
77863	//       "location": "path",
77864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77865	//       "required": true,
77866	//       "type": "string"
77867	//     },
77868	//     "project": {
77869	//       "description": "Project ID for this request.",
77870	//       "location": "path",
77871	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77872	//       "required": true,
77873	//       "type": "string"
77874	//     },
77875	//     "requestId": {
77876	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77877	//       "location": "query",
77878	//       "type": "string"
77879	//     }
77880	//   },
77881	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
77882	//   "response": {
77883	//     "$ref": "Operation"
77884	//   },
77885	//   "scopes": [
77886	//     "https://www.googleapis.com/auth/cloud-platform",
77887	//     "https://www.googleapis.com/auth/compute"
77888	//   ]
77889	// }
77890
77891}
77892
77893// method id "compute.httpHealthChecks.get":
77894
77895type HttpHealthChecksGetCall struct {
77896	s               *Service
77897	project         string
77898	httpHealthCheck string
77899	urlParams_      gensupport.URLParams
77900	ifNoneMatch_    string
77901	ctx_            context.Context
77902	header_         http.Header
77903}
77904
77905// Get: Returns the specified HttpHealthCheck resource. Gets a list of
77906// available HTTP health checks by making a list() request.
77907//
77908// - httpHealthCheck: Name of the HttpHealthCheck resource to return.
77909// - project: Project ID for this request.
77910// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
77911func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
77912	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77913	c.project = project
77914	c.httpHealthCheck = httpHealthCheck
77915	return c
77916}
77917
77918// Fields allows partial responses to be retrieved. See
77919// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77920// for more information.
77921func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
77922	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77923	return c
77924}
77925
77926// IfNoneMatch sets the optional parameter which makes the operation
77927// fail if the object's ETag matches the given value. This is useful for
77928// getting updates only after the object has changed since the last
77929// request. Use googleapi.IsNotModified to check whether the response
77930// error from Do is the result of In-None-Match.
77931func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
77932	c.ifNoneMatch_ = entityTag
77933	return c
77934}
77935
77936// Context sets the context to be used in this call's Do method. Any
77937// pending HTTP request will be aborted if the provided context is
77938// canceled.
77939func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
77940	c.ctx_ = ctx
77941	return c
77942}
77943
77944// Header returns an http.Header that can be modified by the caller to
77945// add HTTP headers to the request.
77946func (c *HttpHealthChecksGetCall) Header() http.Header {
77947	if c.header_ == nil {
77948		c.header_ = make(http.Header)
77949	}
77950	return c.header_
77951}
77952
77953func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
77954	reqHeaders := make(http.Header)
77955	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77956	for k, v := range c.header_ {
77957		reqHeaders[k] = v
77958	}
77959	reqHeaders.Set("User-Agent", c.s.userAgent())
77960	if c.ifNoneMatch_ != "" {
77961		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77962	}
77963	var body io.Reader = nil
77964	c.urlParams_.Set("alt", alt)
77965	c.urlParams_.Set("prettyPrint", "false")
77966	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
77967	urls += "?" + c.urlParams_.Encode()
77968	req, err := http.NewRequest("GET", urls, body)
77969	if err != nil {
77970		return nil, err
77971	}
77972	req.Header = reqHeaders
77973	googleapi.Expand(req.URL, map[string]string{
77974		"project":         c.project,
77975		"httpHealthCheck": c.httpHealthCheck,
77976	})
77977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77978}
77979
77980// Do executes the "compute.httpHealthChecks.get" call.
77981// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
77982// status code is an error. Response headers are in either
77983// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
77984// at all) in error.(*googleapi.Error).Header. Use
77985// googleapi.IsNotModified to check whether the returned error was
77986// because http.StatusNotModified was returned.
77987func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
77988	gensupport.SetOptions(c.urlParams_, opts...)
77989	res, err := c.doRequest("json")
77990	if res != nil && res.StatusCode == http.StatusNotModified {
77991		if res.Body != nil {
77992			res.Body.Close()
77993		}
77994		return nil, &googleapi.Error{
77995			Code:   res.StatusCode,
77996			Header: res.Header,
77997		}
77998	}
77999	if err != nil {
78000		return nil, err
78001	}
78002	defer googleapi.CloseBody(res)
78003	if err := googleapi.CheckResponse(res); err != nil {
78004		return nil, err
78005	}
78006	ret := &HttpHealthCheck{
78007		ServerResponse: googleapi.ServerResponse{
78008			Header:         res.Header,
78009			HTTPStatusCode: res.StatusCode,
78010		},
78011	}
78012	target := &ret
78013	if err := gensupport.DecodeResponse(target, res); err != nil {
78014		return nil, err
78015	}
78016	return ret, nil
78017	// {
78018	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
78019	//   "httpMethod": "GET",
78020	//   "id": "compute.httpHealthChecks.get",
78021	//   "parameterOrder": [
78022	//     "project",
78023	//     "httpHealthCheck"
78024	//   ],
78025	//   "parameters": {
78026	//     "httpHealthCheck": {
78027	//       "description": "Name of the HttpHealthCheck resource to return.",
78028	//       "location": "path",
78029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78030	//       "required": true,
78031	//       "type": "string"
78032	//     },
78033	//     "project": {
78034	//       "description": "Project ID for this request.",
78035	//       "location": "path",
78036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78037	//       "required": true,
78038	//       "type": "string"
78039	//     }
78040	//   },
78041	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
78042	//   "response": {
78043	//     "$ref": "HttpHealthCheck"
78044	//   },
78045	//   "scopes": [
78046	//     "https://www.googleapis.com/auth/cloud-platform",
78047	//     "https://www.googleapis.com/auth/compute",
78048	//     "https://www.googleapis.com/auth/compute.readonly"
78049	//   ]
78050	// }
78051
78052}
78053
78054// method id "compute.httpHealthChecks.insert":
78055
78056type HttpHealthChecksInsertCall struct {
78057	s               *Service
78058	project         string
78059	httphealthcheck *HttpHealthCheck
78060	urlParams_      gensupport.URLParams
78061	ctx_            context.Context
78062	header_         http.Header
78063}
78064
78065// Insert: Creates a HttpHealthCheck resource in the specified project
78066// using the data included in the request.
78067//
78068// - project: Project ID for this request.
78069// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
78070func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
78071	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78072	c.project = project
78073	c.httphealthcheck = httphealthcheck
78074	return c
78075}
78076
78077// RequestId sets the optional parameter "requestId": An optional
78078// request ID to identify requests. Specify a unique request ID so that
78079// if you must retry your request, the server will know to ignore the
78080// request if it has already been completed.
78081//
78082// For example, consider a situation where you make an initial request
78083// and the request times out. If you make the request again with the
78084// same request ID, the server can check if original operation with the
78085// same request ID was received, and if so, will ignore the second
78086// request. This prevents clients from accidentally creating duplicate
78087// commitments.
78088//
78089// The request ID must be a valid UUID with the exception that zero UUID
78090// is not supported (00000000-0000-0000-0000-000000000000).
78091func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
78092	c.urlParams_.Set("requestId", requestId)
78093	return c
78094}
78095
78096// Fields allows partial responses to be retrieved. See
78097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78098// for more information.
78099func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
78100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78101	return c
78102}
78103
78104// Context sets the context to be used in this call's Do method. Any
78105// pending HTTP request will be aborted if the provided context is
78106// canceled.
78107func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
78108	c.ctx_ = ctx
78109	return c
78110}
78111
78112// Header returns an http.Header that can be modified by the caller to
78113// add HTTP headers to the request.
78114func (c *HttpHealthChecksInsertCall) Header() http.Header {
78115	if c.header_ == nil {
78116		c.header_ = make(http.Header)
78117	}
78118	return c.header_
78119}
78120
78121func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
78122	reqHeaders := make(http.Header)
78123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78124	for k, v := range c.header_ {
78125		reqHeaders[k] = v
78126	}
78127	reqHeaders.Set("User-Agent", c.s.userAgent())
78128	var body io.Reader = nil
78129	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
78130	if err != nil {
78131		return nil, err
78132	}
78133	reqHeaders.Set("Content-Type", "application/json")
78134	c.urlParams_.Set("alt", alt)
78135	c.urlParams_.Set("prettyPrint", "false")
78136	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
78137	urls += "?" + c.urlParams_.Encode()
78138	req, err := http.NewRequest("POST", urls, body)
78139	if err != nil {
78140		return nil, err
78141	}
78142	req.Header = reqHeaders
78143	googleapi.Expand(req.URL, map[string]string{
78144		"project": c.project,
78145	})
78146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78147}
78148
78149// Do executes the "compute.httpHealthChecks.insert" call.
78150// Exactly one of *Operation or error will be non-nil. Any non-2xx
78151// status code is an error. Response headers are in either
78152// *Operation.ServerResponse.Header or (if a response was returned at
78153// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78154// to check whether the returned error was because
78155// http.StatusNotModified was returned.
78156func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78157	gensupport.SetOptions(c.urlParams_, opts...)
78158	res, err := c.doRequest("json")
78159	if res != nil && res.StatusCode == http.StatusNotModified {
78160		if res.Body != nil {
78161			res.Body.Close()
78162		}
78163		return nil, &googleapi.Error{
78164			Code:   res.StatusCode,
78165			Header: res.Header,
78166		}
78167	}
78168	if err != nil {
78169		return nil, err
78170	}
78171	defer googleapi.CloseBody(res)
78172	if err := googleapi.CheckResponse(res); err != nil {
78173		return nil, err
78174	}
78175	ret := &Operation{
78176		ServerResponse: googleapi.ServerResponse{
78177			Header:         res.Header,
78178			HTTPStatusCode: res.StatusCode,
78179		},
78180	}
78181	target := &ret
78182	if err := gensupport.DecodeResponse(target, res); err != nil {
78183		return nil, err
78184	}
78185	return ret, nil
78186	// {
78187	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
78188	//   "httpMethod": "POST",
78189	//   "id": "compute.httpHealthChecks.insert",
78190	//   "parameterOrder": [
78191	//     "project"
78192	//   ],
78193	//   "parameters": {
78194	//     "project": {
78195	//       "description": "Project ID for this request.",
78196	//       "location": "path",
78197	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78198	//       "required": true,
78199	//       "type": "string"
78200	//     },
78201	//     "requestId": {
78202	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78203	//       "location": "query",
78204	//       "type": "string"
78205	//     }
78206	//   },
78207	//   "path": "projects/{project}/global/httpHealthChecks",
78208	//   "request": {
78209	//     "$ref": "HttpHealthCheck"
78210	//   },
78211	//   "response": {
78212	//     "$ref": "Operation"
78213	//   },
78214	//   "scopes": [
78215	//     "https://www.googleapis.com/auth/cloud-platform",
78216	//     "https://www.googleapis.com/auth/compute"
78217	//   ]
78218	// }
78219
78220}
78221
78222// method id "compute.httpHealthChecks.list":
78223
78224type HttpHealthChecksListCall struct {
78225	s            *Service
78226	project      string
78227	urlParams_   gensupport.URLParams
78228	ifNoneMatch_ string
78229	ctx_         context.Context
78230	header_      http.Header
78231}
78232
78233// List: Retrieves the list of HttpHealthCheck resources available to
78234// the specified project.
78235//
78236// - project: Project ID for this request.
78237// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
78238func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
78239	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78240	c.project = project
78241	return c
78242}
78243
78244// Filter sets the optional parameter "filter": A filter expression that
78245// filters resources listed in the response. The expression must specify
78246// the field name, a comparison operator, and the value that you want to
78247// use for filtering. The value must be a string, a number, or a
78248// boolean. The comparison operator must be either `=`, `!=`, `>`, or
78249// `<`.
78250//
78251// For example, if you are filtering Compute Engine instances, you can
78252// exclude instances named `example-instance` by specifying `name !=
78253// example-instance`.
78254//
78255// You can also filter nested fields. For example, you could specify
78256// `scheduling.automaticRestart = false` to include instances only if
78257// they are not scheduled for automatic restarts. You can use filtering
78258// on nested fields to filter based on resource labels.
78259//
78260// To filter on multiple expressions, provide each separate expression
78261// within parentheses. For example: ``` (scheduling.automaticRestart =
78262// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
78263// is an `AND` expression. However, you can include `AND` and `OR`
78264// expressions explicitly. For example: ``` (cpuPlatform = "Intel
78265// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
78266// (scheduling.automaticRestart = true) ```
78267func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
78268	c.urlParams_.Set("filter", filter)
78269	return c
78270}
78271
78272// MaxResults sets the optional parameter "maxResults": The maximum
78273// number of results per page that should be returned. If the number of
78274// available results is larger than `maxResults`, Compute Engine returns
78275// a `nextPageToken` that can be used to get the next page of results in
78276// subsequent list requests. Acceptable values are `0` to `500`,
78277// inclusive. (Default: `500`)
78278func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
78279	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78280	return c
78281}
78282
78283// OrderBy sets the optional parameter "orderBy": Sorts list results by
78284// a certain order. By default, results are returned in alphanumerical
78285// order based on the resource name.
78286//
78287// You can also sort results in descending order based on the creation
78288// timestamp using `orderBy="creationTimestamp desc". This sorts
78289// results based on the `creationTimestamp` field in reverse
78290// chronological order (newest result first). Use this to sort resources
78291// like operations so that the newest operation is returned
78292// first.
78293//
78294// Currently, only sorting by `name` or `creationTimestamp desc` is
78295// supported.
78296func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
78297	c.urlParams_.Set("orderBy", orderBy)
78298	return c
78299}
78300
78301// PageToken sets the optional parameter "pageToken": Specifies a page
78302// token to use. Set `pageToken` to the `nextPageToken` returned by a
78303// previous list request to get the next page of results.
78304func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
78305	c.urlParams_.Set("pageToken", pageToken)
78306	return c
78307}
78308
78309// ReturnPartialSuccess sets the optional parameter
78310// "returnPartialSuccess": Opt-in for partial success behavior which
78311// provides partial results in case of failure. The default value is
78312// false.
78313func (c *HttpHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpHealthChecksListCall {
78314	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
78315	return c
78316}
78317
78318// Fields allows partial responses to be retrieved. See
78319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78320// for more information.
78321func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
78322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78323	return c
78324}
78325
78326// IfNoneMatch sets the optional parameter which makes the operation
78327// fail if the object's ETag matches the given value. This is useful for
78328// getting updates only after the object has changed since the last
78329// request. Use googleapi.IsNotModified to check whether the response
78330// error from Do is the result of In-None-Match.
78331func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
78332	c.ifNoneMatch_ = entityTag
78333	return c
78334}
78335
78336// Context sets the context to be used in this call's Do method. Any
78337// pending HTTP request will be aborted if the provided context is
78338// canceled.
78339func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
78340	c.ctx_ = ctx
78341	return c
78342}
78343
78344// Header returns an http.Header that can be modified by the caller to
78345// add HTTP headers to the request.
78346func (c *HttpHealthChecksListCall) Header() http.Header {
78347	if c.header_ == nil {
78348		c.header_ = make(http.Header)
78349	}
78350	return c.header_
78351}
78352
78353func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
78354	reqHeaders := make(http.Header)
78355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78356	for k, v := range c.header_ {
78357		reqHeaders[k] = v
78358	}
78359	reqHeaders.Set("User-Agent", c.s.userAgent())
78360	if c.ifNoneMatch_ != "" {
78361		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78362	}
78363	var body io.Reader = nil
78364	c.urlParams_.Set("alt", alt)
78365	c.urlParams_.Set("prettyPrint", "false")
78366	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
78367	urls += "?" + c.urlParams_.Encode()
78368	req, err := http.NewRequest("GET", urls, body)
78369	if err != nil {
78370		return nil, err
78371	}
78372	req.Header = reqHeaders
78373	googleapi.Expand(req.URL, map[string]string{
78374		"project": c.project,
78375	})
78376	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78377}
78378
78379// Do executes the "compute.httpHealthChecks.list" call.
78380// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
78381// non-2xx status code is an error. Response headers are in either
78382// *HttpHealthCheckList.ServerResponse.Header or (if a response was
78383// returned at all) in error.(*googleapi.Error).Header. Use
78384// googleapi.IsNotModified to check whether the returned error was
78385// because http.StatusNotModified was returned.
78386func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
78387	gensupport.SetOptions(c.urlParams_, opts...)
78388	res, err := c.doRequest("json")
78389	if res != nil && res.StatusCode == http.StatusNotModified {
78390		if res.Body != nil {
78391			res.Body.Close()
78392		}
78393		return nil, &googleapi.Error{
78394			Code:   res.StatusCode,
78395			Header: res.Header,
78396		}
78397	}
78398	if err != nil {
78399		return nil, err
78400	}
78401	defer googleapi.CloseBody(res)
78402	if err := googleapi.CheckResponse(res); err != nil {
78403		return nil, err
78404	}
78405	ret := &HttpHealthCheckList{
78406		ServerResponse: googleapi.ServerResponse{
78407			Header:         res.Header,
78408			HTTPStatusCode: res.StatusCode,
78409		},
78410	}
78411	target := &ret
78412	if err := gensupport.DecodeResponse(target, res); err != nil {
78413		return nil, err
78414	}
78415	return ret, nil
78416	// {
78417	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
78418	//   "httpMethod": "GET",
78419	//   "id": "compute.httpHealthChecks.list",
78420	//   "parameterOrder": [
78421	//     "project"
78422	//   ],
78423	//   "parameters": {
78424	//     "filter": {
78425	//       "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) ```",
78426	//       "location": "query",
78427	//       "type": "string"
78428	//     },
78429	//     "maxResults": {
78430	//       "default": "500",
78431	//       "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`)",
78432	//       "format": "uint32",
78433	//       "location": "query",
78434	//       "minimum": "0",
78435	//       "type": "integer"
78436	//     },
78437	//     "orderBy": {
78438	//       "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.",
78439	//       "location": "query",
78440	//       "type": "string"
78441	//     },
78442	//     "pageToken": {
78443	//       "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.",
78444	//       "location": "query",
78445	//       "type": "string"
78446	//     },
78447	//     "project": {
78448	//       "description": "Project ID for this request.",
78449	//       "location": "path",
78450	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78451	//       "required": true,
78452	//       "type": "string"
78453	//     },
78454	//     "returnPartialSuccess": {
78455	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
78456	//       "location": "query",
78457	//       "type": "boolean"
78458	//     }
78459	//   },
78460	//   "path": "projects/{project}/global/httpHealthChecks",
78461	//   "response": {
78462	//     "$ref": "HttpHealthCheckList"
78463	//   },
78464	//   "scopes": [
78465	//     "https://www.googleapis.com/auth/cloud-platform",
78466	//     "https://www.googleapis.com/auth/compute",
78467	//     "https://www.googleapis.com/auth/compute.readonly"
78468	//   ]
78469	// }
78470
78471}
78472
78473// Pages invokes f for each page of results.
78474// A non-nil error returned from f will halt the iteration.
78475// The provided context supersedes any context provided to the Context method.
78476func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
78477	c.ctx_ = ctx
78478	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78479	for {
78480		x, err := c.Do()
78481		if err != nil {
78482			return err
78483		}
78484		if err := f(x); err != nil {
78485			return err
78486		}
78487		if x.NextPageToken == "" {
78488			return nil
78489		}
78490		c.PageToken(x.NextPageToken)
78491	}
78492}
78493
78494// method id "compute.httpHealthChecks.patch":
78495
78496type HttpHealthChecksPatchCall struct {
78497	s               *Service
78498	project         string
78499	httpHealthCheck string
78500	httphealthcheck *HttpHealthCheck
78501	urlParams_      gensupport.URLParams
78502	ctx_            context.Context
78503	header_         http.Header
78504}
78505
78506// Patch: Updates a HttpHealthCheck resource in the specified project
78507// using the data included in the request. This method supports PATCH
78508// semantics and uses the JSON merge patch format and processing rules.
78509//
78510// - httpHealthCheck: Name of the HttpHealthCheck resource to patch.
78511// - project: Project ID for this request.
78512// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
78513func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
78514	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78515	c.project = project
78516	c.httpHealthCheck = httpHealthCheck
78517	c.httphealthcheck = httphealthcheck
78518	return c
78519}
78520
78521// RequestId sets the optional parameter "requestId": An optional
78522// request ID to identify requests. Specify a unique request ID so that
78523// if you must retry your request, the server will know to ignore the
78524// request if it has already been completed.
78525//
78526// For example, consider a situation where you make an initial request
78527// and the request times out. If you make the request again with the
78528// same request ID, the server can check if original operation with the
78529// same request ID was received, and if so, will ignore the second
78530// request. This prevents clients from accidentally creating duplicate
78531// commitments.
78532//
78533// The request ID must be a valid UUID with the exception that zero UUID
78534// is not supported (00000000-0000-0000-0000-000000000000).
78535func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
78536	c.urlParams_.Set("requestId", requestId)
78537	return c
78538}
78539
78540// Fields allows partial responses to be retrieved. See
78541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78542// for more information.
78543func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
78544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78545	return c
78546}
78547
78548// Context sets the context to be used in this call's Do method. Any
78549// pending HTTP request will be aborted if the provided context is
78550// canceled.
78551func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
78552	c.ctx_ = ctx
78553	return c
78554}
78555
78556// Header returns an http.Header that can be modified by the caller to
78557// add HTTP headers to the request.
78558func (c *HttpHealthChecksPatchCall) Header() http.Header {
78559	if c.header_ == nil {
78560		c.header_ = make(http.Header)
78561	}
78562	return c.header_
78563}
78564
78565func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
78566	reqHeaders := make(http.Header)
78567	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78568	for k, v := range c.header_ {
78569		reqHeaders[k] = v
78570	}
78571	reqHeaders.Set("User-Agent", c.s.userAgent())
78572	var body io.Reader = nil
78573	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
78574	if err != nil {
78575		return nil, err
78576	}
78577	reqHeaders.Set("Content-Type", "application/json")
78578	c.urlParams_.Set("alt", alt)
78579	c.urlParams_.Set("prettyPrint", "false")
78580	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
78581	urls += "?" + c.urlParams_.Encode()
78582	req, err := http.NewRequest("PATCH", urls, body)
78583	if err != nil {
78584		return nil, err
78585	}
78586	req.Header = reqHeaders
78587	googleapi.Expand(req.URL, map[string]string{
78588		"project":         c.project,
78589		"httpHealthCheck": c.httpHealthCheck,
78590	})
78591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78592}
78593
78594// Do executes the "compute.httpHealthChecks.patch" call.
78595// Exactly one of *Operation or error will be non-nil. Any non-2xx
78596// status code is an error. Response headers are in either
78597// *Operation.ServerResponse.Header or (if a response was returned at
78598// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78599// to check whether the returned error was because
78600// http.StatusNotModified was returned.
78601func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78602	gensupport.SetOptions(c.urlParams_, opts...)
78603	res, err := c.doRequest("json")
78604	if res != nil && res.StatusCode == http.StatusNotModified {
78605		if res.Body != nil {
78606			res.Body.Close()
78607		}
78608		return nil, &googleapi.Error{
78609			Code:   res.StatusCode,
78610			Header: res.Header,
78611		}
78612	}
78613	if err != nil {
78614		return nil, err
78615	}
78616	defer googleapi.CloseBody(res)
78617	if err := googleapi.CheckResponse(res); err != nil {
78618		return nil, err
78619	}
78620	ret := &Operation{
78621		ServerResponse: googleapi.ServerResponse{
78622			Header:         res.Header,
78623			HTTPStatusCode: res.StatusCode,
78624		},
78625	}
78626	target := &ret
78627	if err := gensupport.DecodeResponse(target, res); err != nil {
78628		return nil, err
78629	}
78630	return ret, nil
78631	// {
78632	//   "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.",
78633	//   "httpMethod": "PATCH",
78634	//   "id": "compute.httpHealthChecks.patch",
78635	//   "parameterOrder": [
78636	//     "project",
78637	//     "httpHealthCheck"
78638	//   ],
78639	//   "parameters": {
78640	//     "httpHealthCheck": {
78641	//       "description": "Name of the HttpHealthCheck resource to patch.",
78642	//       "location": "path",
78643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78644	//       "required": true,
78645	//       "type": "string"
78646	//     },
78647	//     "project": {
78648	//       "description": "Project ID for this request.",
78649	//       "location": "path",
78650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78651	//       "required": true,
78652	//       "type": "string"
78653	//     },
78654	//     "requestId": {
78655	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78656	//       "location": "query",
78657	//       "type": "string"
78658	//     }
78659	//   },
78660	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
78661	//   "request": {
78662	//     "$ref": "HttpHealthCheck"
78663	//   },
78664	//   "response": {
78665	//     "$ref": "Operation"
78666	//   },
78667	//   "scopes": [
78668	//     "https://www.googleapis.com/auth/cloud-platform",
78669	//     "https://www.googleapis.com/auth/compute"
78670	//   ]
78671	// }
78672
78673}
78674
78675// method id "compute.httpHealthChecks.testIamPermissions":
78676
78677type HttpHealthChecksTestIamPermissionsCall struct {
78678	s                      *Service
78679	project                string
78680	resource               string
78681	testpermissionsrequest *TestPermissionsRequest
78682	urlParams_             gensupport.URLParams
78683	ctx_                   context.Context
78684	header_                http.Header
78685}
78686
78687// TestIamPermissions: Returns permissions that a caller has on the
78688// specified resource.
78689//
78690// - project: Project ID for this request.
78691// - resource: Name or id of the resource for this request.
78692func (r *HttpHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpHealthChecksTestIamPermissionsCall {
78693	c := &HttpHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78694	c.project = project
78695	c.resource = resource
78696	c.testpermissionsrequest = testpermissionsrequest
78697	return c
78698}
78699
78700// Fields allows partial responses to be retrieved. See
78701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78702// for more information.
78703func (c *HttpHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpHealthChecksTestIamPermissionsCall {
78704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78705	return c
78706}
78707
78708// Context sets the context to be used in this call's Do method. Any
78709// pending HTTP request will be aborted if the provided context is
78710// canceled.
78711func (c *HttpHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpHealthChecksTestIamPermissionsCall {
78712	c.ctx_ = ctx
78713	return c
78714}
78715
78716// Header returns an http.Header that can be modified by the caller to
78717// add HTTP headers to the request.
78718func (c *HttpHealthChecksTestIamPermissionsCall) Header() http.Header {
78719	if c.header_ == nil {
78720		c.header_ = make(http.Header)
78721	}
78722	return c.header_
78723}
78724
78725func (c *HttpHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
78726	reqHeaders := make(http.Header)
78727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78728	for k, v := range c.header_ {
78729		reqHeaders[k] = v
78730	}
78731	reqHeaders.Set("User-Agent", c.s.userAgent())
78732	var body io.Reader = nil
78733	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
78734	if err != nil {
78735		return nil, err
78736	}
78737	reqHeaders.Set("Content-Type", "application/json")
78738	c.urlParams_.Set("alt", alt)
78739	c.urlParams_.Set("prettyPrint", "false")
78740	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions")
78741	urls += "?" + c.urlParams_.Encode()
78742	req, err := http.NewRequest("POST", urls, body)
78743	if err != nil {
78744		return nil, err
78745	}
78746	req.Header = reqHeaders
78747	googleapi.Expand(req.URL, map[string]string{
78748		"project":  c.project,
78749		"resource": c.resource,
78750	})
78751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78752}
78753
78754// Do executes the "compute.httpHealthChecks.testIamPermissions" call.
78755// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
78756// non-2xx status code is an error. Response headers are in either
78757// *TestPermissionsResponse.ServerResponse.Header or (if a response was
78758// returned at all) in error.(*googleapi.Error).Header. Use
78759// googleapi.IsNotModified to check whether the returned error was
78760// because http.StatusNotModified was returned.
78761func (c *HttpHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
78762	gensupport.SetOptions(c.urlParams_, opts...)
78763	res, err := c.doRequest("json")
78764	if res != nil && res.StatusCode == http.StatusNotModified {
78765		if res.Body != nil {
78766			res.Body.Close()
78767		}
78768		return nil, &googleapi.Error{
78769			Code:   res.StatusCode,
78770			Header: res.Header,
78771		}
78772	}
78773	if err != nil {
78774		return nil, err
78775	}
78776	defer googleapi.CloseBody(res)
78777	if err := googleapi.CheckResponse(res); err != nil {
78778		return nil, err
78779	}
78780	ret := &TestPermissionsResponse{
78781		ServerResponse: googleapi.ServerResponse{
78782			Header:         res.Header,
78783			HTTPStatusCode: res.StatusCode,
78784		},
78785	}
78786	target := &ret
78787	if err := gensupport.DecodeResponse(target, res); err != nil {
78788		return nil, err
78789	}
78790	return ret, nil
78791	// {
78792	//   "description": "Returns permissions that a caller has on the specified resource.",
78793	//   "httpMethod": "POST",
78794	//   "id": "compute.httpHealthChecks.testIamPermissions",
78795	//   "parameterOrder": [
78796	//     "project",
78797	//     "resource"
78798	//   ],
78799	//   "parameters": {
78800	//     "project": {
78801	//       "description": "Project ID for this request.",
78802	//       "location": "path",
78803	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78804	//       "required": true,
78805	//       "type": "string"
78806	//     },
78807	//     "resource": {
78808	//       "description": "Name or id of the resource for this request.",
78809	//       "location": "path",
78810	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78811	//       "required": true,
78812	//       "type": "string"
78813	//     }
78814	//   },
78815	//   "path": "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions",
78816	//   "request": {
78817	//     "$ref": "TestPermissionsRequest"
78818	//   },
78819	//   "response": {
78820	//     "$ref": "TestPermissionsResponse"
78821	//   },
78822	//   "scopes": [
78823	//     "https://www.googleapis.com/auth/cloud-platform",
78824	//     "https://www.googleapis.com/auth/compute",
78825	//     "https://www.googleapis.com/auth/compute.readonly"
78826	//   ]
78827	// }
78828
78829}
78830
78831// method id "compute.httpHealthChecks.update":
78832
78833type HttpHealthChecksUpdateCall struct {
78834	s               *Service
78835	project         string
78836	httpHealthCheck string
78837	httphealthcheck *HttpHealthCheck
78838	urlParams_      gensupport.URLParams
78839	ctx_            context.Context
78840	header_         http.Header
78841}
78842
78843// Update: Updates a HttpHealthCheck resource in the specified project
78844// using the data included in the request.
78845//
78846// - httpHealthCheck: Name of the HttpHealthCheck resource to update.
78847// - project: Project ID for this request.
78848// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
78849func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
78850	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78851	c.project = project
78852	c.httpHealthCheck = httpHealthCheck
78853	c.httphealthcheck = httphealthcheck
78854	return c
78855}
78856
78857// RequestId sets the optional parameter "requestId": An optional
78858// request ID to identify requests. Specify a unique request ID so that
78859// if you must retry your request, the server will know to ignore the
78860// request if it has already been completed.
78861//
78862// For example, consider a situation where you make an initial request
78863// and the request times out. If you make the request again with the
78864// same request ID, the server can check if original operation with the
78865// same request ID was received, and if so, will ignore the second
78866// request. This prevents clients from accidentally creating duplicate
78867// commitments.
78868//
78869// The request ID must be a valid UUID with the exception that zero UUID
78870// is not supported (00000000-0000-0000-0000-000000000000).
78871func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
78872	c.urlParams_.Set("requestId", requestId)
78873	return c
78874}
78875
78876// Fields allows partial responses to be retrieved. See
78877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78878// for more information.
78879func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
78880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78881	return c
78882}
78883
78884// Context sets the context to be used in this call's Do method. Any
78885// pending HTTP request will be aborted if the provided context is
78886// canceled.
78887func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
78888	c.ctx_ = ctx
78889	return c
78890}
78891
78892// Header returns an http.Header that can be modified by the caller to
78893// add HTTP headers to the request.
78894func (c *HttpHealthChecksUpdateCall) Header() http.Header {
78895	if c.header_ == nil {
78896		c.header_ = make(http.Header)
78897	}
78898	return c.header_
78899}
78900
78901func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
78902	reqHeaders := make(http.Header)
78903	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78904	for k, v := range c.header_ {
78905		reqHeaders[k] = v
78906	}
78907	reqHeaders.Set("User-Agent", c.s.userAgent())
78908	var body io.Reader = nil
78909	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
78910	if err != nil {
78911		return nil, err
78912	}
78913	reqHeaders.Set("Content-Type", "application/json")
78914	c.urlParams_.Set("alt", alt)
78915	c.urlParams_.Set("prettyPrint", "false")
78916	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
78917	urls += "?" + c.urlParams_.Encode()
78918	req, err := http.NewRequest("PUT", urls, body)
78919	if err != nil {
78920		return nil, err
78921	}
78922	req.Header = reqHeaders
78923	googleapi.Expand(req.URL, map[string]string{
78924		"project":         c.project,
78925		"httpHealthCheck": c.httpHealthCheck,
78926	})
78927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78928}
78929
78930// Do executes the "compute.httpHealthChecks.update" call.
78931// Exactly one of *Operation or error will be non-nil. Any non-2xx
78932// status code is an error. Response headers are in either
78933// *Operation.ServerResponse.Header or (if a response was returned at
78934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78935// to check whether the returned error was because
78936// http.StatusNotModified was returned.
78937func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78938	gensupport.SetOptions(c.urlParams_, opts...)
78939	res, err := c.doRequest("json")
78940	if res != nil && res.StatusCode == http.StatusNotModified {
78941		if res.Body != nil {
78942			res.Body.Close()
78943		}
78944		return nil, &googleapi.Error{
78945			Code:   res.StatusCode,
78946			Header: res.Header,
78947		}
78948	}
78949	if err != nil {
78950		return nil, err
78951	}
78952	defer googleapi.CloseBody(res)
78953	if err := googleapi.CheckResponse(res); err != nil {
78954		return nil, err
78955	}
78956	ret := &Operation{
78957		ServerResponse: googleapi.ServerResponse{
78958			Header:         res.Header,
78959			HTTPStatusCode: res.StatusCode,
78960		},
78961	}
78962	target := &ret
78963	if err := gensupport.DecodeResponse(target, res); err != nil {
78964		return nil, err
78965	}
78966	return ret, nil
78967	// {
78968	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
78969	//   "httpMethod": "PUT",
78970	//   "id": "compute.httpHealthChecks.update",
78971	//   "parameterOrder": [
78972	//     "project",
78973	//     "httpHealthCheck"
78974	//   ],
78975	//   "parameters": {
78976	//     "httpHealthCheck": {
78977	//       "description": "Name of the HttpHealthCheck resource to update.",
78978	//       "location": "path",
78979	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78980	//       "required": true,
78981	//       "type": "string"
78982	//     },
78983	//     "project": {
78984	//       "description": "Project ID for this request.",
78985	//       "location": "path",
78986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78987	//       "required": true,
78988	//       "type": "string"
78989	//     },
78990	//     "requestId": {
78991	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78992	//       "location": "query",
78993	//       "type": "string"
78994	//     }
78995	//   },
78996	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
78997	//   "request": {
78998	//     "$ref": "HttpHealthCheck"
78999	//   },
79000	//   "response": {
79001	//     "$ref": "Operation"
79002	//   },
79003	//   "scopes": [
79004	//     "https://www.googleapis.com/auth/cloud-platform",
79005	//     "https://www.googleapis.com/auth/compute"
79006	//   ]
79007	// }
79008
79009}
79010
79011// method id "compute.httpsHealthChecks.delete":
79012
79013type HttpsHealthChecksDeleteCall struct {
79014	s                *Service
79015	project          string
79016	httpsHealthCheck string
79017	urlParams_       gensupport.URLParams
79018	ctx_             context.Context
79019	header_          http.Header
79020}
79021
79022// Delete: Deletes the specified HttpsHealthCheck resource.
79023//
79024// - httpsHealthCheck: Name of the HttpsHealthCheck resource to delete.
79025// - project: Project ID for this request.
79026func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
79027	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79028	c.project = project
79029	c.httpsHealthCheck = httpsHealthCheck
79030	return c
79031}
79032
79033// RequestId sets the optional parameter "requestId": An optional
79034// request ID to identify requests. Specify a unique request ID so that
79035// if you must retry your request, the server will know to ignore the
79036// request if it has already been completed.
79037//
79038// For example, consider a situation where you make an initial request
79039// and the request times out. If you make the request again with the
79040// same request ID, the server can check if original operation with the
79041// same request ID was received, and if so, will ignore the second
79042// request. This prevents clients from accidentally creating duplicate
79043// commitments.
79044//
79045// The request ID must be a valid UUID with the exception that zero UUID
79046// is not supported (00000000-0000-0000-0000-000000000000).
79047func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
79048	c.urlParams_.Set("requestId", requestId)
79049	return c
79050}
79051
79052// Fields allows partial responses to be retrieved. See
79053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79054// for more information.
79055func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
79056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79057	return c
79058}
79059
79060// Context sets the context to be used in this call's Do method. Any
79061// pending HTTP request will be aborted if the provided context is
79062// canceled.
79063func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
79064	c.ctx_ = ctx
79065	return c
79066}
79067
79068// Header returns an http.Header that can be modified by the caller to
79069// add HTTP headers to the request.
79070func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
79071	if c.header_ == nil {
79072		c.header_ = make(http.Header)
79073	}
79074	return c.header_
79075}
79076
79077func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
79078	reqHeaders := make(http.Header)
79079	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79080	for k, v := range c.header_ {
79081		reqHeaders[k] = v
79082	}
79083	reqHeaders.Set("User-Agent", c.s.userAgent())
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/httpsHealthChecks/{httpsHealthCheck}")
79088	urls += "?" + c.urlParams_.Encode()
79089	req, err := http.NewRequest("DELETE", 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		"httpsHealthCheck": c.httpsHealthCheck,
79097	})
79098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79099}
79100
79101// Do executes the "compute.httpsHealthChecks.delete" call.
79102// Exactly one of *Operation or error will be non-nil. Any non-2xx
79103// status code is an error. Response headers are in either
79104// *Operation.ServerResponse.Header or (if a response was returned at
79105// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79106// to check whether the returned error was because
79107// http.StatusNotModified was returned.
79108func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Deletes the specified HttpsHealthCheck resource.",
79140	//   "httpMethod": "DELETE",
79141	//   "id": "compute.httpsHealthChecks.delete",
79142	//   "parameterOrder": [
79143	//     "project",
79144	//     "httpsHealthCheck"
79145	//   ],
79146	//   "parameters": {
79147	//     "httpsHealthCheck": {
79148	//       "description": "Name of the HttpsHealthCheck resource to delete.",
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	//     "requestId": {
79162	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79163	//       "location": "query",
79164	//       "type": "string"
79165	//     }
79166	//   },
79167	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
79168	//   "response": {
79169	//     "$ref": "Operation"
79170	//   },
79171	//   "scopes": [
79172	//     "https://www.googleapis.com/auth/cloud-platform",
79173	//     "https://www.googleapis.com/auth/compute"
79174	//   ]
79175	// }
79176
79177}
79178
79179// method id "compute.httpsHealthChecks.get":
79180
79181type HttpsHealthChecksGetCall struct {
79182	s                *Service
79183	project          string
79184	httpsHealthCheck string
79185	urlParams_       gensupport.URLParams
79186	ifNoneMatch_     string
79187	ctx_             context.Context
79188	header_          http.Header
79189}
79190
79191// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
79192// available HTTPS health checks by making a list() request.
79193//
79194// - httpsHealthCheck: Name of the HttpsHealthCheck resource to return.
79195// - project: Project ID for this request.
79196func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
79197	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79198	c.project = project
79199	c.httpsHealthCheck = httpsHealthCheck
79200	return c
79201}
79202
79203// Fields allows partial responses to be retrieved. See
79204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79205// for more information.
79206func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
79207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79208	return c
79209}
79210
79211// IfNoneMatch sets the optional parameter which makes the operation
79212// fail if the object's ETag matches the given value. This is useful for
79213// getting updates only after the object has changed since the last
79214// request. Use googleapi.IsNotModified to check whether the response
79215// error from Do is the result of In-None-Match.
79216func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
79217	c.ifNoneMatch_ = entityTag
79218	return c
79219}
79220
79221// Context sets the context to be used in this call's Do method. Any
79222// pending HTTP request will be aborted if the provided context is
79223// canceled.
79224func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
79225	c.ctx_ = ctx
79226	return c
79227}
79228
79229// Header returns an http.Header that can be modified by the caller to
79230// add HTTP headers to the request.
79231func (c *HttpsHealthChecksGetCall) Header() http.Header {
79232	if c.header_ == nil {
79233		c.header_ = make(http.Header)
79234	}
79235	return c.header_
79236}
79237
79238func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
79239	reqHeaders := make(http.Header)
79240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79241	for k, v := range c.header_ {
79242		reqHeaders[k] = v
79243	}
79244	reqHeaders.Set("User-Agent", c.s.userAgent())
79245	if c.ifNoneMatch_ != "" {
79246		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79247	}
79248	var body io.Reader = nil
79249	c.urlParams_.Set("alt", alt)
79250	c.urlParams_.Set("prettyPrint", "false")
79251	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
79252	urls += "?" + c.urlParams_.Encode()
79253	req, err := http.NewRequest("GET", urls, body)
79254	if err != nil {
79255		return nil, err
79256	}
79257	req.Header = reqHeaders
79258	googleapi.Expand(req.URL, map[string]string{
79259		"project":          c.project,
79260		"httpsHealthCheck": c.httpsHealthCheck,
79261	})
79262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79263}
79264
79265// Do executes the "compute.httpsHealthChecks.get" call.
79266// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
79267// non-2xx status code is an error. Response headers are in either
79268// *HttpsHealthCheck.ServerResponse.Header or (if a response was
79269// returned at all) in error.(*googleapi.Error).Header. Use
79270// googleapi.IsNotModified to check whether the returned error was
79271// because http.StatusNotModified was returned.
79272func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
79273	gensupport.SetOptions(c.urlParams_, opts...)
79274	res, err := c.doRequest("json")
79275	if res != nil && res.StatusCode == http.StatusNotModified {
79276		if res.Body != nil {
79277			res.Body.Close()
79278		}
79279		return nil, &googleapi.Error{
79280			Code:   res.StatusCode,
79281			Header: res.Header,
79282		}
79283	}
79284	if err != nil {
79285		return nil, err
79286	}
79287	defer googleapi.CloseBody(res)
79288	if err := googleapi.CheckResponse(res); err != nil {
79289		return nil, err
79290	}
79291	ret := &HttpsHealthCheck{
79292		ServerResponse: googleapi.ServerResponse{
79293			Header:         res.Header,
79294			HTTPStatusCode: res.StatusCode,
79295		},
79296	}
79297	target := &ret
79298	if err := gensupport.DecodeResponse(target, res); err != nil {
79299		return nil, err
79300	}
79301	return ret, nil
79302	// {
79303	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
79304	//   "httpMethod": "GET",
79305	//   "id": "compute.httpsHealthChecks.get",
79306	//   "parameterOrder": [
79307	//     "project",
79308	//     "httpsHealthCheck"
79309	//   ],
79310	//   "parameters": {
79311	//     "httpsHealthCheck": {
79312	//       "description": "Name of the HttpsHealthCheck resource to return.",
79313	//       "location": "path",
79314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79315	//       "required": true,
79316	//       "type": "string"
79317	//     },
79318	//     "project": {
79319	//       "description": "Project ID for this request.",
79320	//       "location": "path",
79321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79322	//       "required": true,
79323	//       "type": "string"
79324	//     }
79325	//   },
79326	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
79327	//   "response": {
79328	//     "$ref": "HttpsHealthCheck"
79329	//   },
79330	//   "scopes": [
79331	//     "https://www.googleapis.com/auth/cloud-platform",
79332	//     "https://www.googleapis.com/auth/compute",
79333	//     "https://www.googleapis.com/auth/compute.readonly"
79334	//   ]
79335	// }
79336
79337}
79338
79339// method id "compute.httpsHealthChecks.insert":
79340
79341type HttpsHealthChecksInsertCall struct {
79342	s                *Service
79343	project          string
79344	httpshealthcheck *HttpsHealthCheck
79345	urlParams_       gensupport.URLParams
79346	ctx_             context.Context
79347	header_          http.Header
79348}
79349
79350// Insert: Creates a HttpsHealthCheck resource in the specified project
79351// using the data included in the request.
79352//
79353// - project: Project ID for this request.
79354func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
79355	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79356	c.project = project
79357	c.httpshealthcheck = httpshealthcheck
79358	return c
79359}
79360
79361// RequestId sets the optional parameter "requestId": An optional
79362// request ID to identify requests. Specify a unique request ID so that
79363// if you must retry your request, the server will know to ignore the
79364// request if it has already been completed.
79365//
79366// For example, consider a situation where you make an initial request
79367// and the request times out. If you make the request again with the
79368// same request ID, the server can check if original operation with the
79369// same request ID was received, and if so, will ignore the second
79370// request. This prevents clients from accidentally creating duplicate
79371// commitments.
79372//
79373// The request ID must be a valid UUID with the exception that zero UUID
79374// is not supported (00000000-0000-0000-0000-000000000000).
79375func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
79376	c.urlParams_.Set("requestId", requestId)
79377	return c
79378}
79379
79380// Fields allows partial responses to be retrieved. See
79381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79382// for more information.
79383func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
79384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79385	return c
79386}
79387
79388// Context sets the context to be used in this call's Do method. Any
79389// pending HTTP request will be aborted if the provided context is
79390// canceled.
79391func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
79392	c.ctx_ = ctx
79393	return c
79394}
79395
79396// Header returns an http.Header that can be modified by the caller to
79397// add HTTP headers to the request.
79398func (c *HttpsHealthChecksInsertCall) Header() http.Header {
79399	if c.header_ == nil {
79400		c.header_ = make(http.Header)
79401	}
79402	return c.header_
79403}
79404
79405func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
79406	reqHeaders := make(http.Header)
79407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79408	for k, v := range c.header_ {
79409		reqHeaders[k] = v
79410	}
79411	reqHeaders.Set("User-Agent", c.s.userAgent())
79412	var body io.Reader = nil
79413	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
79414	if err != nil {
79415		return nil, err
79416	}
79417	reqHeaders.Set("Content-Type", "application/json")
79418	c.urlParams_.Set("alt", alt)
79419	c.urlParams_.Set("prettyPrint", "false")
79420	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
79421	urls += "?" + c.urlParams_.Encode()
79422	req, err := http.NewRequest("POST", urls, body)
79423	if err != nil {
79424		return nil, err
79425	}
79426	req.Header = reqHeaders
79427	googleapi.Expand(req.URL, map[string]string{
79428		"project": c.project,
79429	})
79430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79431}
79432
79433// Do executes the "compute.httpsHealthChecks.insert" call.
79434// Exactly one of *Operation or error will be non-nil. Any non-2xx
79435// status code is an error. Response headers are in either
79436// *Operation.ServerResponse.Header or (if a response was returned at
79437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79438// to check whether the returned error was because
79439// http.StatusNotModified was returned.
79440func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79441	gensupport.SetOptions(c.urlParams_, opts...)
79442	res, err := c.doRequest("json")
79443	if res != nil && res.StatusCode == http.StatusNotModified {
79444		if res.Body != nil {
79445			res.Body.Close()
79446		}
79447		return nil, &googleapi.Error{
79448			Code:   res.StatusCode,
79449			Header: res.Header,
79450		}
79451	}
79452	if err != nil {
79453		return nil, err
79454	}
79455	defer googleapi.CloseBody(res)
79456	if err := googleapi.CheckResponse(res); err != nil {
79457		return nil, err
79458	}
79459	ret := &Operation{
79460		ServerResponse: googleapi.ServerResponse{
79461			Header:         res.Header,
79462			HTTPStatusCode: res.StatusCode,
79463		},
79464	}
79465	target := &ret
79466	if err := gensupport.DecodeResponse(target, res); err != nil {
79467		return nil, err
79468	}
79469	return ret, nil
79470	// {
79471	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
79472	//   "httpMethod": "POST",
79473	//   "id": "compute.httpsHealthChecks.insert",
79474	//   "parameterOrder": [
79475	//     "project"
79476	//   ],
79477	//   "parameters": {
79478	//     "project": {
79479	//       "description": "Project ID for this request.",
79480	//       "location": "path",
79481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79482	//       "required": true,
79483	//       "type": "string"
79484	//     },
79485	//     "requestId": {
79486	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79487	//       "location": "query",
79488	//       "type": "string"
79489	//     }
79490	//   },
79491	//   "path": "projects/{project}/global/httpsHealthChecks",
79492	//   "request": {
79493	//     "$ref": "HttpsHealthCheck"
79494	//   },
79495	//   "response": {
79496	//     "$ref": "Operation"
79497	//   },
79498	//   "scopes": [
79499	//     "https://www.googleapis.com/auth/cloud-platform",
79500	//     "https://www.googleapis.com/auth/compute"
79501	//   ]
79502	// }
79503
79504}
79505
79506// method id "compute.httpsHealthChecks.list":
79507
79508type HttpsHealthChecksListCall struct {
79509	s            *Service
79510	project      string
79511	urlParams_   gensupport.URLParams
79512	ifNoneMatch_ string
79513	ctx_         context.Context
79514	header_      http.Header
79515}
79516
79517// List: Retrieves the list of HttpsHealthCheck resources available to
79518// the specified project.
79519//
79520// - project: Project ID for this request.
79521func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
79522	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79523	c.project = project
79524	return c
79525}
79526
79527// Filter sets the optional parameter "filter": A filter expression that
79528// filters resources listed in the response. The expression must specify
79529// the field name, a comparison operator, and the value that you want to
79530// use for filtering. The value must be a string, a number, or a
79531// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79532// `<`.
79533//
79534// For example, if you are filtering Compute Engine instances, you can
79535// exclude instances named `example-instance` by specifying `name !=
79536// example-instance`.
79537//
79538// You can also filter nested fields. For example, you could specify
79539// `scheduling.automaticRestart = false` to include instances only if
79540// they are not scheduled for automatic restarts. You can use filtering
79541// on nested fields to filter based on resource labels.
79542//
79543// To filter on multiple expressions, provide each separate expression
79544// within parentheses. For example: ``` (scheduling.automaticRestart =
79545// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
79546// is an `AND` expression. However, you can include `AND` and `OR`
79547// expressions explicitly. For example: ``` (cpuPlatform = "Intel
79548// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
79549// (scheduling.automaticRestart = true) ```
79550func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
79551	c.urlParams_.Set("filter", filter)
79552	return c
79553}
79554
79555// MaxResults sets the optional parameter "maxResults": The maximum
79556// number of results per page that should be returned. If the number of
79557// available results is larger than `maxResults`, Compute Engine returns
79558// a `nextPageToken` that can be used to get the next page of results in
79559// subsequent list requests. Acceptable values are `0` to `500`,
79560// inclusive. (Default: `500`)
79561func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
79562	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79563	return c
79564}
79565
79566// OrderBy sets the optional parameter "orderBy": Sorts list results by
79567// a certain order. By default, results are returned in alphanumerical
79568// order based on the resource name.
79569//
79570// You can also sort results in descending order based on the creation
79571// timestamp using `orderBy="creationTimestamp desc". This sorts
79572// results based on the `creationTimestamp` field in reverse
79573// chronological order (newest result first). Use this to sort resources
79574// like operations so that the newest operation is returned
79575// first.
79576//
79577// Currently, only sorting by `name` or `creationTimestamp desc` is
79578// supported.
79579func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
79580	c.urlParams_.Set("orderBy", orderBy)
79581	return c
79582}
79583
79584// PageToken sets the optional parameter "pageToken": Specifies a page
79585// token to use. Set `pageToken` to the `nextPageToken` returned by a
79586// previous list request to get the next page of results.
79587func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
79588	c.urlParams_.Set("pageToken", pageToken)
79589	return c
79590}
79591
79592// ReturnPartialSuccess sets the optional parameter
79593// "returnPartialSuccess": Opt-in for partial success behavior which
79594// provides partial results in case of failure. The default value is
79595// false.
79596func (c *HttpsHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpsHealthChecksListCall {
79597	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
79598	return c
79599}
79600
79601// Fields allows partial responses to be retrieved. See
79602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79603// for more information.
79604func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
79605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79606	return c
79607}
79608
79609// IfNoneMatch sets the optional parameter which makes the operation
79610// fail if the object's ETag matches the given value. This is useful for
79611// getting updates only after the object has changed since the last
79612// request. Use googleapi.IsNotModified to check whether the response
79613// error from Do is the result of In-None-Match.
79614func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
79615	c.ifNoneMatch_ = entityTag
79616	return c
79617}
79618
79619// Context sets the context to be used in this call's Do method. Any
79620// pending HTTP request will be aborted if the provided context is
79621// canceled.
79622func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
79623	c.ctx_ = ctx
79624	return c
79625}
79626
79627// Header returns an http.Header that can be modified by the caller to
79628// add HTTP headers to the request.
79629func (c *HttpsHealthChecksListCall) Header() http.Header {
79630	if c.header_ == nil {
79631		c.header_ = make(http.Header)
79632	}
79633	return c.header_
79634}
79635
79636func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
79637	reqHeaders := make(http.Header)
79638	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79639	for k, v := range c.header_ {
79640		reqHeaders[k] = v
79641	}
79642	reqHeaders.Set("User-Agent", c.s.userAgent())
79643	if c.ifNoneMatch_ != "" {
79644		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79645	}
79646	var body io.Reader = nil
79647	c.urlParams_.Set("alt", alt)
79648	c.urlParams_.Set("prettyPrint", "false")
79649	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
79650	urls += "?" + c.urlParams_.Encode()
79651	req, err := http.NewRequest("GET", urls, body)
79652	if err != nil {
79653		return nil, err
79654	}
79655	req.Header = reqHeaders
79656	googleapi.Expand(req.URL, map[string]string{
79657		"project": c.project,
79658	})
79659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79660}
79661
79662// Do executes the "compute.httpsHealthChecks.list" call.
79663// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
79664// non-2xx status code is an error. Response headers are in either
79665// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
79666// returned at all) in error.(*googleapi.Error).Header. Use
79667// googleapi.IsNotModified to check whether the returned error was
79668// because http.StatusNotModified was returned.
79669func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
79670	gensupport.SetOptions(c.urlParams_, opts...)
79671	res, err := c.doRequest("json")
79672	if res != nil && res.StatusCode == http.StatusNotModified {
79673		if res.Body != nil {
79674			res.Body.Close()
79675		}
79676		return nil, &googleapi.Error{
79677			Code:   res.StatusCode,
79678			Header: res.Header,
79679		}
79680	}
79681	if err != nil {
79682		return nil, err
79683	}
79684	defer googleapi.CloseBody(res)
79685	if err := googleapi.CheckResponse(res); err != nil {
79686		return nil, err
79687	}
79688	ret := &HttpsHealthCheckList{
79689		ServerResponse: googleapi.ServerResponse{
79690			Header:         res.Header,
79691			HTTPStatusCode: res.StatusCode,
79692		},
79693	}
79694	target := &ret
79695	if err := gensupport.DecodeResponse(target, res); err != nil {
79696		return nil, err
79697	}
79698	return ret, nil
79699	// {
79700	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
79701	//   "httpMethod": "GET",
79702	//   "id": "compute.httpsHealthChecks.list",
79703	//   "parameterOrder": [
79704	//     "project"
79705	//   ],
79706	//   "parameters": {
79707	//     "filter": {
79708	//       "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) ```",
79709	//       "location": "query",
79710	//       "type": "string"
79711	//     },
79712	//     "maxResults": {
79713	//       "default": "500",
79714	//       "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`)",
79715	//       "format": "uint32",
79716	//       "location": "query",
79717	//       "minimum": "0",
79718	//       "type": "integer"
79719	//     },
79720	//     "orderBy": {
79721	//       "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.",
79722	//       "location": "query",
79723	//       "type": "string"
79724	//     },
79725	//     "pageToken": {
79726	//       "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.",
79727	//       "location": "query",
79728	//       "type": "string"
79729	//     },
79730	//     "project": {
79731	//       "description": "Project ID for this request.",
79732	//       "location": "path",
79733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79734	//       "required": true,
79735	//       "type": "string"
79736	//     },
79737	//     "returnPartialSuccess": {
79738	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
79739	//       "location": "query",
79740	//       "type": "boolean"
79741	//     }
79742	//   },
79743	//   "path": "projects/{project}/global/httpsHealthChecks",
79744	//   "response": {
79745	//     "$ref": "HttpsHealthCheckList"
79746	//   },
79747	//   "scopes": [
79748	//     "https://www.googleapis.com/auth/cloud-platform",
79749	//     "https://www.googleapis.com/auth/compute",
79750	//     "https://www.googleapis.com/auth/compute.readonly"
79751	//   ]
79752	// }
79753
79754}
79755
79756// Pages invokes f for each page of results.
79757// A non-nil error returned from f will halt the iteration.
79758// The provided context supersedes any context provided to the Context method.
79759func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
79760	c.ctx_ = ctx
79761	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79762	for {
79763		x, err := c.Do()
79764		if err != nil {
79765			return err
79766		}
79767		if err := f(x); err != nil {
79768			return err
79769		}
79770		if x.NextPageToken == "" {
79771			return nil
79772		}
79773		c.PageToken(x.NextPageToken)
79774	}
79775}
79776
79777// method id "compute.httpsHealthChecks.patch":
79778
79779type HttpsHealthChecksPatchCall struct {
79780	s                *Service
79781	project          string
79782	httpsHealthCheck string
79783	httpshealthcheck *HttpsHealthCheck
79784	urlParams_       gensupport.URLParams
79785	ctx_             context.Context
79786	header_          http.Header
79787}
79788
79789// Patch: Updates a HttpsHealthCheck resource in the specified project
79790// using the data included in the request. This method supports PATCH
79791// semantics and uses the JSON merge patch format and processing rules.
79792//
79793// - httpsHealthCheck: Name of the HttpsHealthCheck resource to patch.
79794// - project: Project ID for this request.
79795func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
79796	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79797	c.project = project
79798	c.httpsHealthCheck = httpsHealthCheck
79799	c.httpshealthcheck = httpshealthcheck
79800	return c
79801}
79802
79803// RequestId sets the optional parameter "requestId": An optional
79804// request ID to identify requests. Specify a unique request ID so that
79805// if you must retry your request, the server will know to ignore the
79806// request if it has already been completed.
79807//
79808// For example, consider a situation where you make an initial request
79809// and the request times out. If you make the request again with the
79810// same request ID, the server can check if original operation with the
79811// same request ID was received, and if so, will ignore the second
79812// request. This prevents clients from accidentally creating duplicate
79813// commitments.
79814//
79815// The request ID must be a valid UUID with the exception that zero UUID
79816// is not supported (00000000-0000-0000-0000-000000000000).
79817func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
79818	c.urlParams_.Set("requestId", requestId)
79819	return c
79820}
79821
79822// Fields allows partial responses to be retrieved. See
79823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79824// for more information.
79825func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
79826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79827	return c
79828}
79829
79830// Context sets the context to be used in this call's Do method. Any
79831// pending HTTP request will be aborted if the provided context is
79832// canceled.
79833func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
79834	c.ctx_ = ctx
79835	return c
79836}
79837
79838// Header returns an http.Header that can be modified by the caller to
79839// add HTTP headers to the request.
79840func (c *HttpsHealthChecksPatchCall) Header() http.Header {
79841	if c.header_ == nil {
79842		c.header_ = make(http.Header)
79843	}
79844	return c.header_
79845}
79846
79847func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
79848	reqHeaders := make(http.Header)
79849	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79850	for k, v := range c.header_ {
79851		reqHeaders[k] = v
79852	}
79853	reqHeaders.Set("User-Agent", c.s.userAgent())
79854	var body io.Reader = nil
79855	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
79856	if err != nil {
79857		return nil, err
79858	}
79859	reqHeaders.Set("Content-Type", "application/json")
79860	c.urlParams_.Set("alt", alt)
79861	c.urlParams_.Set("prettyPrint", "false")
79862	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
79863	urls += "?" + c.urlParams_.Encode()
79864	req, err := http.NewRequest("PATCH", urls, body)
79865	if err != nil {
79866		return nil, err
79867	}
79868	req.Header = reqHeaders
79869	googleapi.Expand(req.URL, map[string]string{
79870		"project":          c.project,
79871		"httpsHealthCheck": c.httpsHealthCheck,
79872	})
79873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79874}
79875
79876// Do executes the "compute.httpsHealthChecks.patch" call.
79877// Exactly one of *Operation or error will be non-nil. Any non-2xx
79878// status code is an error. Response headers are in either
79879// *Operation.ServerResponse.Header or (if a response was returned at
79880// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79881// to check whether the returned error was because
79882// http.StatusNotModified was returned.
79883func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79884	gensupport.SetOptions(c.urlParams_, opts...)
79885	res, err := c.doRequest("json")
79886	if res != nil && res.StatusCode == http.StatusNotModified {
79887		if res.Body != nil {
79888			res.Body.Close()
79889		}
79890		return nil, &googleapi.Error{
79891			Code:   res.StatusCode,
79892			Header: res.Header,
79893		}
79894	}
79895	if err != nil {
79896		return nil, err
79897	}
79898	defer googleapi.CloseBody(res)
79899	if err := googleapi.CheckResponse(res); err != nil {
79900		return nil, err
79901	}
79902	ret := &Operation{
79903		ServerResponse: googleapi.ServerResponse{
79904			Header:         res.Header,
79905			HTTPStatusCode: res.StatusCode,
79906		},
79907	}
79908	target := &ret
79909	if err := gensupport.DecodeResponse(target, res); err != nil {
79910		return nil, err
79911	}
79912	return ret, nil
79913	// {
79914	//   "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.",
79915	//   "httpMethod": "PATCH",
79916	//   "id": "compute.httpsHealthChecks.patch",
79917	//   "parameterOrder": [
79918	//     "project",
79919	//     "httpsHealthCheck"
79920	//   ],
79921	//   "parameters": {
79922	//     "httpsHealthCheck": {
79923	//       "description": "Name of the HttpsHealthCheck resource to patch.",
79924	//       "location": "path",
79925	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79926	//       "required": true,
79927	//       "type": "string"
79928	//     },
79929	//     "project": {
79930	//       "description": "Project ID for this request.",
79931	//       "location": "path",
79932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79933	//       "required": true,
79934	//       "type": "string"
79935	//     },
79936	//     "requestId": {
79937	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79938	//       "location": "query",
79939	//       "type": "string"
79940	//     }
79941	//   },
79942	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
79943	//   "request": {
79944	//     "$ref": "HttpsHealthCheck"
79945	//   },
79946	//   "response": {
79947	//     "$ref": "Operation"
79948	//   },
79949	//   "scopes": [
79950	//     "https://www.googleapis.com/auth/cloud-platform",
79951	//     "https://www.googleapis.com/auth/compute"
79952	//   ]
79953	// }
79954
79955}
79956
79957// method id "compute.httpsHealthChecks.testIamPermissions":
79958
79959type HttpsHealthChecksTestIamPermissionsCall struct {
79960	s                      *Service
79961	project                string
79962	resource               string
79963	testpermissionsrequest *TestPermissionsRequest
79964	urlParams_             gensupport.URLParams
79965	ctx_                   context.Context
79966	header_                http.Header
79967}
79968
79969// TestIamPermissions: Returns permissions that a caller has on the
79970// specified resource.
79971//
79972// - project: Project ID for this request.
79973// - resource: Name or id of the resource for this request.
79974func (r *HttpsHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpsHealthChecksTestIamPermissionsCall {
79975	c := &HttpsHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79976	c.project = project
79977	c.resource = resource
79978	c.testpermissionsrequest = testpermissionsrequest
79979	return c
79980}
79981
79982// Fields allows partial responses to be retrieved. See
79983// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79984// for more information.
79985func (c *HttpsHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpsHealthChecksTestIamPermissionsCall {
79986	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79987	return c
79988}
79989
79990// Context sets the context to be used in this call's Do method. Any
79991// pending HTTP request will be aborted if the provided context is
79992// canceled.
79993func (c *HttpsHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpsHealthChecksTestIamPermissionsCall {
79994	c.ctx_ = ctx
79995	return c
79996}
79997
79998// Header returns an http.Header that can be modified by the caller to
79999// add HTTP headers to the request.
80000func (c *HttpsHealthChecksTestIamPermissionsCall) Header() http.Header {
80001	if c.header_ == nil {
80002		c.header_ = make(http.Header)
80003	}
80004	return c.header_
80005}
80006
80007func (c *HttpsHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
80008	reqHeaders := make(http.Header)
80009	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80010	for k, v := range c.header_ {
80011		reqHeaders[k] = v
80012	}
80013	reqHeaders.Set("User-Agent", c.s.userAgent())
80014	var body io.Reader = nil
80015	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
80016	if err != nil {
80017		return nil, err
80018	}
80019	reqHeaders.Set("Content-Type", "application/json")
80020	c.urlParams_.Set("alt", alt)
80021	c.urlParams_.Set("prettyPrint", "false")
80022	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions")
80023	urls += "?" + c.urlParams_.Encode()
80024	req, err := http.NewRequest("POST", urls, body)
80025	if err != nil {
80026		return nil, err
80027	}
80028	req.Header = reqHeaders
80029	googleapi.Expand(req.URL, map[string]string{
80030		"project":  c.project,
80031		"resource": c.resource,
80032	})
80033	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80034}
80035
80036// Do executes the "compute.httpsHealthChecks.testIamPermissions" call.
80037// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
80038// non-2xx status code is an error. Response headers are in either
80039// *TestPermissionsResponse.ServerResponse.Header or (if a response was
80040// returned at all) in error.(*googleapi.Error).Header. Use
80041// googleapi.IsNotModified to check whether the returned error was
80042// because http.StatusNotModified was returned.
80043func (c *HttpsHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
80044	gensupport.SetOptions(c.urlParams_, opts...)
80045	res, err := c.doRequest("json")
80046	if res != nil && res.StatusCode == http.StatusNotModified {
80047		if res.Body != nil {
80048			res.Body.Close()
80049		}
80050		return nil, &googleapi.Error{
80051			Code:   res.StatusCode,
80052			Header: res.Header,
80053		}
80054	}
80055	if err != nil {
80056		return nil, err
80057	}
80058	defer googleapi.CloseBody(res)
80059	if err := googleapi.CheckResponse(res); err != nil {
80060		return nil, err
80061	}
80062	ret := &TestPermissionsResponse{
80063		ServerResponse: googleapi.ServerResponse{
80064			Header:         res.Header,
80065			HTTPStatusCode: res.StatusCode,
80066		},
80067	}
80068	target := &ret
80069	if err := gensupport.DecodeResponse(target, res); err != nil {
80070		return nil, err
80071	}
80072	return ret, nil
80073	// {
80074	//   "description": "Returns permissions that a caller has on the specified resource.",
80075	//   "httpMethod": "POST",
80076	//   "id": "compute.httpsHealthChecks.testIamPermissions",
80077	//   "parameterOrder": [
80078	//     "project",
80079	//     "resource"
80080	//   ],
80081	//   "parameters": {
80082	//     "project": {
80083	//       "description": "Project ID for this request.",
80084	//       "location": "path",
80085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80086	//       "required": true,
80087	//       "type": "string"
80088	//     },
80089	//     "resource": {
80090	//       "description": "Name or id of the resource for this request.",
80091	//       "location": "path",
80092	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80093	//       "required": true,
80094	//       "type": "string"
80095	//     }
80096	//   },
80097	//   "path": "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions",
80098	//   "request": {
80099	//     "$ref": "TestPermissionsRequest"
80100	//   },
80101	//   "response": {
80102	//     "$ref": "TestPermissionsResponse"
80103	//   },
80104	//   "scopes": [
80105	//     "https://www.googleapis.com/auth/cloud-platform",
80106	//     "https://www.googleapis.com/auth/compute",
80107	//     "https://www.googleapis.com/auth/compute.readonly"
80108	//   ]
80109	// }
80110
80111}
80112
80113// method id "compute.httpsHealthChecks.update":
80114
80115type HttpsHealthChecksUpdateCall struct {
80116	s                *Service
80117	project          string
80118	httpsHealthCheck string
80119	httpshealthcheck *HttpsHealthCheck
80120	urlParams_       gensupport.URLParams
80121	ctx_             context.Context
80122	header_          http.Header
80123}
80124
80125// Update: Updates a HttpsHealthCheck resource in the specified project
80126// using the data included in the request.
80127//
80128// - httpsHealthCheck: Name of the HttpsHealthCheck resource to update.
80129// - project: Project ID for this request.
80130func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
80131	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80132	c.project = project
80133	c.httpsHealthCheck = httpsHealthCheck
80134	c.httpshealthcheck = httpshealthcheck
80135	return c
80136}
80137
80138// RequestId sets the optional parameter "requestId": An optional
80139// request ID to identify requests. Specify a unique request ID so that
80140// if you must retry your request, the server will know to ignore the
80141// request if it has already been completed.
80142//
80143// For example, consider a situation where you make an initial request
80144// and the request times out. If you make the request again with the
80145// same request ID, the server can check if original operation with the
80146// same request ID was received, and if so, will ignore the second
80147// request. This prevents clients from accidentally creating duplicate
80148// commitments.
80149//
80150// The request ID must be a valid UUID with the exception that zero UUID
80151// is not supported (00000000-0000-0000-0000-000000000000).
80152func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
80153	c.urlParams_.Set("requestId", requestId)
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 *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
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 *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
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 *HttpsHealthChecksUpdateCall) Header() http.Header {
80176	if c.header_ == nil {
80177		c.header_ = make(http.Header)
80178	}
80179	return c.header_
80180}
80181
80182func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
80183	reqHeaders := make(http.Header)
80184	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
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.httpshealthcheck)
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/httpsHealthChecks/{httpsHealthCheck}")
80198	urls += "?" + c.urlParams_.Encode()
80199	req, err := http.NewRequest("PUT", 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		"httpsHealthCheck": c.httpsHealthCheck,
80207	})
80208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80209}
80210
80211// Do executes the "compute.httpsHealthChecks.update" call.
80212// Exactly one of *Operation or error will be non-nil. Any non-2xx
80213// status code is an error. Response headers are in either
80214// *Operation.ServerResponse.Header or (if a response was returned at
80215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80216// to check whether the returned error was because
80217// http.StatusNotModified was returned.
80218func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
80250	//   "httpMethod": "PUT",
80251	//   "id": "compute.httpsHealthChecks.update",
80252	//   "parameterOrder": [
80253	//     "project",
80254	//     "httpsHealthCheck"
80255	//   ],
80256	//   "parameters": {
80257	//     "httpsHealthCheck": {
80258	//       "description": "Name of the HttpsHealthCheck resource to update.",
80259	//       "location": "path",
80260	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80261	//       "required": true,
80262	//       "type": "string"
80263	//     },
80264	//     "project": {
80265	//       "description": "Project ID for this request.",
80266	//       "location": "path",
80267	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80268	//       "required": true,
80269	//       "type": "string"
80270	//     },
80271	//     "requestId": {
80272	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80273	//       "location": "query",
80274	//       "type": "string"
80275	//     }
80276	//   },
80277	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
80278	//   "request": {
80279	//     "$ref": "HttpsHealthCheck"
80280	//   },
80281	//   "response": {
80282	//     "$ref": "Operation"
80283	//   },
80284	//   "scopes": [
80285	//     "https://www.googleapis.com/auth/cloud-platform",
80286	//     "https://www.googleapis.com/auth/compute"
80287	//   ]
80288	// }
80289
80290}
80291
80292// method id "compute.imageFamilyViews.get":
80293
80294type ImageFamilyViewsGetCall struct {
80295	s            *Service
80296	project      string
80297	zone         string
80298	family       string
80299	urlParams_   gensupport.URLParams
80300	ifNoneMatch_ string
80301	ctx_         context.Context
80302	header_      http.Header
80303}
80304
80305// Get: Returns the latest image that is part of an image family, is not
80306// deprecated and is rolled out in the specified zone.
80307//
80308// - family: Name of the image family to search for.
80309// - project: Project ID for this request.
80310// - zone: The name of the zone for this request.
80311func (r *ImageFamilyViewsService) Get(project string, zone string, family string) *ImageFamilyViewsGetCall {
80312	c := &ImageFamilyViewsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80313	c.project = project
80314	c.zone = zone
80315	c.family = family
80316	return c
80317}
80318
80319// Fields allows partial responses to be retrieved. See
80320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80321// for more information.
80322func (c *ImageFamilyViewsGetCall) Fields(s ...googleapi.Field) *ImageFamilyViewsGetCall {
80323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80324	return c
80325}
80326
80327// IfNoneMatch sets the optional parameter which makes the operation
80328// fail if the object's ETag matches the given value. This is useful for
80329// getting updates only after the object has changed since the last
80330// request. Use googleapi.IsNotModified to check whether the response
80331// error from Do is the result of In-None-Match.
80332func (c *ImageFamilyViewsGetCall) IfNoneMatch(entityTag string) *ImageFamilyViewsGetCall {
80333	c.ifNoneMatch_ = entityTag
80334	return c
80335}
80336
80337// Context sets the context to be used in this call's Do method. Any
80338// pending HTTP request will be aborted if the provided context is
80339// canceled.
80340func (c *ImageFamilyViewsGetCall) Context(ctx context.Context) *ImageFamilyViewsGetCall {
80341	c.ctx_ = ctx
80342	return c
80343}
80344
80345// Header returns an http.Header that can be modified by the caller to
80346// add HTTP headers to the request.
80347func (c *ImageFamilyViewsGetCall) Header() http.Header {
80348	if c.header_ == nil {
80349		c.header_ = make(http.Header)
80350	}
80351	return c.header_
80352}
80353
80354func (c *ImageFamilyViewsGetCall) doRequest(alt string) (*http.Response, error) {
80355	reqHeaders := make(http.Header)
80356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80357	for k, v := range c.header_ {
80358		reqHeaders[k] = v
80359	}
80360	reqHeaders.Set("User-Agent", c.s.userAgent())
80361	if c.ifNoneMatch_ != "" {
80362		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80363	}
80364	var body io.Reader = nil
80365	c.urlParams_.Set("alt", alt)
80366	c.urlParams_.Set("prettyPrint", "false")
80367	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/imageFamilyViews/{family}")
80368	urls += "?" + c.urlParams_.Encode()
80369	req, err := http.NewRequest("GET", urls, body)
80370	if err != nil {
80371		return nil, err
80372	}
80373	req.Header = reqHeaders
80374	googleapi.Expand(req.URL, map[string]string{
80375		"project": c.project,
80376		"zone":    c.zone,
80377		"family":  c.family,
80378	})
80379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80380}
80381
80382// Do executes the "compute.imageFamilyViews.get" call.
80383// Exactly one of *ImageFamilyView or error will be non-nil. Any non-2xx
80384// status code is an error. Response headers are in either
80385// *ImageFamilyView.ServerResponse.Header or (if a response was returned
80386// at all) in error.(*googleapi.Error).Header. Use
80387// googleapi.IsNotModified to check whether the returned error was
80388// because http.StatusNotModified was returned.
80389func (c *ImageFamilyViewsGetCall) Do(opts ...googleapi.CallOption) (*ImageFamilyView, error) {
80390	gensupport.SetOptions(c.urlParams_, opts...)
80391	res, err := c.doRequest("json")
80392	if res != nil && res.StatusCode == http.StatusNotModified {
80393		if res.Body != nil {
80394			res.Body.Close()
80395		}
80396		return nil, &googleapi.Error{
80397			Code:   res.StatusCode,
80398			Header: res.Header,
80399		}
80400	}
80401	if err != nil {
80402		return nil, err
80403	}
80404	defer googleapi.CloseBody(res)
80405	if err := googleapi.CheckResponse(res); err != nil {
80406		return nil, err
80407	}
80408	ret := &ImageFamilyView{
80409		ServerResponse: googleapi.ServerResponse{
80410			Header:         res.Header,
80411			HTTPStatusCode: res.StatusCode,
80412		},
80413	}
80414	target := &ret
80415	if err := gensupport.DecodeResponse(target, res); err != nil {
80416		return nil, err
80417	}
80418	return ret, nil
80419	// {
80420	//   "description": "Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.",
80421	//   "httpMethod": "GET",
80422	//   "id": "compute.imageFamilyViews.get",
80423	//   "parameterOrder": [
80424	//     "project",
80425	//     "zone",
80426	//     "family"
80427	//   ],
80428	//   "parameters": {
80429	//     "family": {
80430	//       "description": "Name of the image family to search for.",
80431	//       "location": "path",
80432	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80433	//       "required": true,
80434	//       "type": "string"
80435	//     },
80436	//     "project": {
80437	//       "description": "Project ID for this request.",
80438	//       "location": "path",
80439	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80440	//       "required": true,
80441	//       "type": "string"
80442	//     },
80443	//     "zone": {
80444	//       "description": "The name of the zone for this request.",
80445	//       "location": "path",
80446	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80447	//       "required": true,
80448	//       "type": "string"
80449	//     }
80450	//   },
80451	//   "path": "projects/{project}/zones/{zone}/imageFamilyViews/{family}",
80452	//   "response": {
80453	//     "$ref": "ImageFamilyView"
80454	//   },
80455	//   "scopes": [
80456	//     "https://www.googleapis.com/auth/cloud-platform",
80457	//     "https://www.googleapis.com/auth/compute",
80458	//     "https://www.googleapis.com/auth/compute.readonly"
80459	//   ]
80460	// }
80461
80462}
80463
80464// method id "compute.images.delete":
80465
80466type ImagesDeleteCall struct {
80467	s          *Service
80468	project    string
80469	image      string
80470	urlParams_ gensupport.URLParams
80471	ctx_       context.Context
80472	header_    http.Header
80473}
80474
80475// Delete: Deletes the specified image.
80476//
80477// - image: Name of the image resource to delete.
80478// - project: Project ID for this request.
80479// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
80480func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
80481	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80482	c.project = project
80483	c.image = image
80484	return c
80485}
80486
80487// RequestId sets the optional parameter "requestId": An optional
80488// request ID to identify requests. Specify a unique request ID so that
80489// if you must retry your request, the server will know to ignore the
80490// request if it has already been completed.
80491//
80492// For example, consider a situation where you make an initial request
80493// and the request times out. If you make the request again with the
80494// same request ID, the server can check if original operation with the
80495// same request ID was received, and if so, will ignore the second
80496// request. This prevents clients from accidentally creating duplicate
80497// commitments.
80498//
80499// The request ID must be a valid UUID with the exception that zero UUID
80500// is not supported (00000000-0000-0000-0000-000000000000).
80501func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
80502	c.urlParams_.Set("requestId", requestId)
80503	return c
80504}
80505
80506// Fields allows partial responses to be retrieved. See
80507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80508// for more information.
80509func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
80510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80511	return c
80512}
80513
80514// Context sets the context to be used in this call's Do method. Any
80515// pending HTTP request will be aborted if the provided context is
80516// canceled.
80517func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
80518	c.ctx_ = ctx
80519	return c
80520}
80521
80522// Header returns an http.Header that can be modified by the caller to
80523// add HTTP headers to the request.
80524func (c *ImagesDeleteCall) Header() http.Header {
80525	if c.header_ == nil {
80526		c.header_ = make(http.Header)
80527	}
80528	return c.header_
80529}
80530
80531func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
80532	reqHeaders := make(http.Header)
80533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80534	for k, v := range c.header_ {
80535		reqHeaders[k] = v
80536	}
80537	reqHeaders.Set("User-Agent", c.s.userAgent())
80538	var body io.Reader = nil
80539	c.urlParams_.Set("alt", alt)
80540	c.urlParams_.Set("prettyPrint", "false")
80541	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
80542	urls += "?" + c.urlParams_.Encode()
80543	req, err := http.NewRequest("DELETE", urls, body)
80544	if err != nil {
80545		return nil, err
80546	}
80547	req.Header = reqHeaders
80548	googleapi.Expand(req.URL, map[string]string{
80549		"project": c.project,
80550		"image":   c.image,
80551	})
80552	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80553}
80554
80555// Do executes the "compute.images.delete" call.
80556// Exactly one of *Operation or error will be non-nil. Any non-2xx
80557// status code is an error. Response headers are in either
80558// *Operation.ServerResponse.Header or (if a response was returned at
80559// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80560// to check whether the returned error was because
80561// http.StatusNotModified was returned.
80562func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80563	gensupport.SetOptions(c.urlParams_, opts...)
80564	res, err := c.doRequest("json")
80565	if res != nil && res.StatusCode == http.StatusNotModified {
80566		if res.Body != nil {
80567			res.Body.Close()
80568		}
80569		return nil, &googleapi.Error{
80570			Code:   res.StatusCode,
80571			Header: res.Header,
80572		}
80573	}
80574	if err != nil {
80575		return nil, err
80576	}
80577	defer googleapi.CloseBody(res)
80578	if err := googleapi.CheckResponse(res); err != nil {
80579		return nil, err
80580	}
80581	ret := &Operation{
80582		ServerResponse: googleapi.ServerResponse{
80583			Header:         res.Header,
80584			HTTPStatusCode: res.StatusCode,
80585		},
80586	}
80587	target := &ret
80588	if err := gensupport.DecodeResponse(target, res); err != nil {
80589		return nil, err
80590	}
80591	return ret, nil
80592	// {
80593	//   "description": "Deletes the specified image.",
80594	//   "httpMethod": "DELETE",
80595	//   "id": "compute.images.delete",
80596	//   "parameterOrder": [
80597	//     "project",
80598	//     "image"
80599	//   ],
80600	//   "parameters": {
80601	//     "image": {
80602	//       "description": "Name of the image resource to delete.",
80603	//       "location": "path",
80604	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80605	//       "required": true,
80606	//       "type": "string"
80607	//     },
80608	//     "project": {
80609	//       "description": "Project ID for this request.",
80610	//       "location": "path",
80611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80612	//       "required": true,
80613	//       "type": "string"
80614	//     },
80615	//     "requestId": {
80616	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80617	//       "location": "query",
80618	//       "type": "string"
80619	//     }
80620	//   },
80621	//   "path": "projects/{project}/global/images/{image}",
80622	//   "response": {
80623	//     "$ref": "Operation"
80624	//   },
80625	//   "scopes": [
80626	//     "https://www.googleapis.com/auth/cloud-platform",
80627	//     "https://www.googleapis.com/auth/compute"
80628	//   ]
80629	// }
80630
80631}
80632
80633// method id "compute.images.deprecate":
80634
80635type ImagesDeprecateCall struct {
80636	s                 *Service
80637	project           string
80638	image             string
80639	deprecationstatus *DeprecationStatus
80640	urlParams_        gensupport.URLParams
80641	ctx_              context.Context
80642	header_           http.Header
80643}
80644
80645// Deprecate: Sets the deprecation status of an image.
80646//
80647// If an empty request body is given, clears the deprecation status
80648// instead.
80649//
80650// - image: Image name.
80651// - project: Project ID for this request.
80652// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
80653func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
80654	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80655	c.project = project
80656	c.image = image
80657	c.deprecationstatus = deprecationstatus
80658	return c
80659}
80660
80661// RequestId sets the optional parameter "requestId": An optional
80662// request ID to identify requests. Specify a unique request ID so that
80663// if you must retry your request, the server will know to ignore the
80664// request if it has already been completed.
80665//
80666// For example, consider a situation where you make an initial request
80667// and the request times out. If you make the request again with the
80668// same request ID, the server can check if original operation with the
80669// same request ID was received, and if so, will ignore the second
80670// request. This prevents clients from accidentally creating duplicate
80671// commitments.
80672//
80673// The request ID must be a valid UUID with the exception that zero UUID
80674// is not supported (00000000-0000-0000-0000-000000000000).
80675func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
80676	c.urlParams_.Set("requestId", requestId)
80677	return c
80678}
80679
80680// Fields allows partial responses to be retrieved. See
80681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80682// for more information.
80683func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
80684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80685	return c
80686}
80687
80688// Context sets the context to be used in this call's Do method. Any
80689// pending HTTP request will be aborted if the provided context is
80690// canceled.
80691func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
80692	c.ctx_ = ctx
80693	return c
80694}
80695
80696// Header returns an http.Header that can be modified by the caller to
80697// add HTTP headers to the request.
80698func (c *ImagesDeprecateCall) Header() http.Header {
80699	if c.header_ == nil {
80700		c.header_ = make(http.Header)
80701	}
80702	return c.header_
80703}
80704
80705func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
80706	reqHeaders := make(http.Header)
80707	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80708	for k, v := range c.header_ {
80709		reqHeaders[k] = v
80710	}
80711	reqHeaders.Set("User-Agent", c.s.userAgent())
80712	var body io.Reader = nil
80713	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
80714	if err != nil {
80715		return nil, err
80716	}
80717	reqHeaders.Set("Content-Type", "application/json")
80718	c.urlParams_.Set("alt", alt)
80719	c.urlParams_.Set("prettyPrint", "false")
80720	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}/deprecate")
80721	urls += "?" + c.urlParams_.Encode()
80722	req, err := http.NewRequest("POST", urls, body)
80723	if err != nil {
80724		return nil, err
80725	}
80726	req.Header = reqHeaders
80727	googleapi.Expand(req.URL, map[string]string{
80728		"project": c.project,
80729		"image":   c.image,
80730	})
80731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80732}
80733
80734// Do executes the "compute.images.deprecate" call.
80735// Exactly one of *Operation or error will be non-nil. Any non-2xx
80736// status code is an error. Response headers are in either
80737// *Operation.ServerResponse.Header or (if a response was returned at
80738// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80739// to check whether the returned error was because
80740// http.StatusNotModified was returned.
80741func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80742	gensupport.SetOptions(c.urlParams_, opts...)
80743	res, err := c.doRequest("json")
80744	if res != nil && res.StatusCode == http.StatusNotModified {
80745		if res.Body != nil {
80746			res.Body.Close()
80747		}
80748		return nil, &googleapi.Error{
80749			Code:   res.StatusCode,
80750			Header: res.Header,
80751		}
80752	}
80753	if err != nil {
80754		return nil, err
80755	}
80756	defer googleapi.CloseBody(res)
80757	if err := googleapi.CheckResponse(res); err != nil {
80758		return nil, err
80759	}
80760	ret := &Operation{
80761		ServerResponse: googleapi.ServerResponse{
80762			Header:         res.Header,
80763			HTTPStatusCode: res.StatusCode,
80764		},
80765	}
80766	target := &ret
80767	if err := gensupport.DecodeResponse(target, res); err != nil {
80768		return nil, err
80769	}
80770	return ret, nil
80771	// {
80772	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
80773	//   "httpMethod": "POST",
80774	//   "id": "compute.images.deprecate",
80775	//   "parameterOrder": [
80776	//     "project",
80777	//     "image"
80778	//   ],
80779	//   "parameters": {
80780	//     "image": {
80781	//       "description": "Image name.",
80782	//       "location": "path",
80783	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80784	//       "required": true,
80785	//       "type": "string"
80786	//     },
80787	//     "project": {
80788	//       "description": "Project ID for this request.",
80789	//       "location": "path",
80790	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80791	//       "required": true,
80792	//       "type": "string"
80793	//     },
80794	//     "requestId": {
80795	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80796	//       "location": "query",
80797	//       "type": "string"
80798	//     }
80799	//   },
80800	//   "path": "projects/{project}/global/images/{image}/deprecate",
80801	//   "request": {
80802	//     "$ref": "DeprecationStatus"
80803	//   },
80804	//   "response": {
80805	//     "$ref": "Operation"
80806	//   },
80807	//   "scopes": [
80808	//     "https://www.googleapis.com/auth/cloud-platform",
80809	//     "https://www.googleapis.com/auth/compute"
80810	//   ]
80811	// }
80812
80813}
80814
80815// method id "compute.images.get":
80816
80817type ImagesGetCall struct {
80818	s            *Service
80819	project      string
80820	image        string
80821	urlParams_   gensupport.URLParams
80822	ifNoneMatch_ string
80823	ctx_         context.Context
80824	header_      http.Header
80825}
80826
80827// Get: Returns the specified image. Gets a list of available images by
80828// making a list() request.
80829//
80830// - image: Name of the image resource to return.
80831// - project: Project ID for this request.
80832// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
80833func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
80834	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80835	c.project = project
80836	c.image = image
80837	return c
80838}
80839
80840// Fields allows partial responses to be retrieved. See
80841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80842// for more information.
80843func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
80844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80845	return c
80846}
80847
80848// IfNoneMatch sets the optional parameter which makes the operation
80849// fail if the object's ETag matches the given value. This is useful for
80850// getting updates only after the object has changed since the last
80851// request. Use googleapi.IsNotModified to check whether the response
80852// error from Do is the result of In-None-Match.
80853func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
80854	c.ifNoneMatch_ = entityTag
80855	return c
80856}
80857
80858// Context sets the context to be used in this call's Do method. Any
80859// pending HTTP request will be aborted if the provided context is
80860// canceled.
80861func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
80862	c.ctx_ = ctx
80863	return c
80864}
80865
80866// Header returns an http.Header that can be modified by the caller to
80867// add HTTP headers to the request.
80868func (c *ImagesGetCall) Header() http.Header {
80869	if c.header_ == nil {
80870		c.header_ = make(http.Header)
80871	}
80872	return c.header_
80873}
80874
80875func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
80876	reqHeaders := make(http.Header)
80877	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80878	for k, v := range c.header_ {
80879		reqHeaders[k] = v
80880	}
80881	reqHeaders.Set("User-Agent", c.s.userAgent())
80882	if c.ifNoneMatch_ != "" {
80883		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80884	}
80885	var body io.Reader = nil
80886	c.urlParams_.Set("alt", alt)
80887	c.urlParams_.Set("prettyPrint", "false")
80888	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
80889	urls += "?" + c.urlParams_.Encode()
80890	req, err := http.NewRequest("GET", urls, body)
80891	if err != nil {
80892		return nil, err
80893	}
80894	req.Header = reqHeaders
80895	googleapi.Expand(req.URL, map[string]string{
80896		"project": c.project,
80897		"image":   c.image,
80898	})
80899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80900}
80901
80902// Do executes the "compute.images.get" call.
80903// Exactly one of *Image or error will be non-nil. Any non-2xx status
80904// code is an error. Response headers are in either
80905// *Image.ServerResponse.Header or (if a response was returned at all)
80906// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
80907// check whether the returned error was because http.StatusNotModified
80908// was returned.
80909func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
80910	gensupport.SetOptions(c.urlParams_, opts...)
80911	res, err := c.doRequest("json")
80912	if res != nil && res.StatusCode == http.StatusNotModified {
80913		if res.Body != nil {
80914			res.Body.Close()
80915		}
80916		return nil, &googleapi.Error{
80917			Code:   res.StatusCode,
80918			Header: res.Header,
80919		}
80920	}
80921	if err != nil {
80922		return nil, err
80923	}
80924	defer googleapi.CloseBody(res)
80925	if err := googleapi.CheckResponse(res); err != nil {
80926		return nil, err
80927	}
80928	ret := &Image{
80929		ServerResponse: googleapi.ServerResponse{
80930			Header:         res.Header,
80931			HTTPStatusCode: res.StatusCode,
80932		},
80933	}
80934	target := &ret
80935	if err := gensupport.DecodeResponse(target, res); err != nil {
80936		return nil, err
80937	}
80938	return ret, nil
80939	// {
80940	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
80941	//   "httpMethod": "GET",
80942	//   "id": "compute.images.get",
80943	//   "parameterOrder": [
80944	//     "project",
80945	//     "image"
80946	//   ],
80947	//   "parameters": {
80948	//     "image": {
80949	//       "description": "Name of the image resource to return.",
80950	//       "location": "path",
80951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80952	//       "required": true,
80953	//       "type": "string"
80954	//     },
80955	//     "project": {
80956	//       "description": "Project ID for this request.",
80957	//       "location": "path",
80958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80959	//       "required": true,
80960	//       "type": "string"
80961	//     }
80962	//   },
80963	//   "path": "projects/{project}/global/images/{image}",
80964	//   "response": {
80965	//     "$ref": "Image"
80966	//   },
80967	//   "scopes": [
80968	//     "https://www.googleapis.com/auth/cloud-platform",
80969	//     "https://www.googleapis.com/auth/compute",
80970	//     "https://www.googleapis.com/auth/compute.readonly"
80971	//   ]
80972	// }
80973
80974}
80975
80976// method id "compute.images.getFromFamily":
80977
80978type ImagesGetFromFamilyCall struct {
80979	s            *Service
80980	project      string
80981	family       string
80982	urlParams_   gensupport.URLParams
80983	ifNoneMatch_ string
80984	ctx_         context.Context
80985	header_      http.Header
80986}
80987
80988// GetFromFamily: Returns the latest image that is part of an image
80989// family and is not deprecated.
80990//
80991// - family: Name of the image family to search for.
80992// - project: Project ID for this request.
80993func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
80994	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80995	c.project = project
80996	c.family = family
80997	return c
80998}
80999
81000// Fields allows partial responses to be retrieved. See
81001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81002// for more information.
81003func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
81004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81005	return c
81006}
81007
81008// IfNoneMatch sets the optional parameter which makes the operation
81009// fail if the object's ETag matches the given value. This is useful for
81010// getting updates only after the object has changed since the last
81011// request. Use googleapi.IsNotModified to check whether the response
81012// error from Do is the result of In-None-Match.
81013func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
81014	c.ifNoneMatch_ = entityTag
81015	return c
81016}
81017
81018// Context sets the context to be used in this call's Do method. Any
81019// pending HTTP request will be aborted if the provided context is
81020// canceled.
81021func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
81022	c.ctx_ = ctx
81023	return c
81024}
81025
81026// Header returns an http.Header that can be modified by the caller to
81027// add HTTP headers to the request.
81028func (c *ImagesGetFromFamilyCall) Header() http.Header {
81029	if c.header_ == nil {
81030		c.header_ = make(http.Header)
81031	}
81032	return c.header_
81033}
81034
81035func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
81036	reqHeaders := make(http.Header)
81037	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81038	for k, v := range c.header_ {
81039		reqHeaders[k] = v
81040	}
81041	reqHeaders.Set("User-Agent", c.s.userAgent())
81042	if c.ifNoneMatch_ != "" {
81043		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81044	}
81045	var body io.Reader = nil
81046	c.urlParams_.Set("alt", alt)
81047	c.urlParams_.Set("prettyPrint", "false")
81048	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/family/{family}")
81049	urls += "?" + c.urlParams_.Encode()
81050	req, err := http.NewRequest("GET", urls, body)
81051	if err != nil {
81052		return nil, err
81053	}
81054	req.Header = reqHeaders
81055	googleapi.Expand(req.URL, map[string]string{
81056		"project": c.project,
81057		"family":  c.family,
81058	})
81059	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81060}
81061
81062// Do executes the "compute.images.getFromFamily" call.
81063// Exactly one of *Image or error will be non-nil. Any non-2xx status
81064// code is an error. Response headers are in either
81065// *Image.ServerResponse.Header or (if a response was returned at all)
81066// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
81067// check whether the returned error was because http.StatusNotModified
81068// was returned.
81069func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
81070	gensupport.SetOptions(c.urlParams_, opts...)
81071	res, err := c.doRequest("json")
81072	if res != nil && res.StatusCode == http.StatusNotModified {
81073		if res.Body != nil {
81074			res.Body.Close()
81075		}
81076		return nil, &googleapi.Error{
81077			Code:   res.StatusCode,
81078			Header: res.Header,
81079		}
81080	}
81081	if err != nil {
81082		return nil, err
81083	}
81084	defer googleapi.CloseBody(res)
81085	if err := googleapi.CheckResponse(res); err != nil {
81086		return nil, err
81087	}
81088	ret := &Image{
81089		ServerResponse: googleapi.ServerResponse{
81090			Header:         res.Header,
81091			HTTPStatusCode: res.StatusCode,
81092		},
81093	}
81094	target := &ret
81095	if err := gensupport.DecodeResponse(target, res); err != nil {
81096		return nil, err
81097	}
81098	return ret, nil
81099	// {
81100	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
81101	//   "httpMethod": "GET",
81102	//   "id": "compute.images.getFromFamily",
81103	//   "parameterOrder": [
81104	//     "project",
81105	//     "family"
81106	//   ],
81107	//   "parameters": {
81108	//     "family": {
81109	//       "description": "Name of the image family to search for.",
81110	//       "location": "path",
81111	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81112	//       "required": true,
81113	//       "type": "string"
81114	//     },
81115	//     "project": {
81116	//       "description": "Project ID for this request.",
81117	//       "location": "path",
81118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81119	//       "required": true,
81120	//       "type": "string"
81121	//     }
81122	//   },
81123	//   "path": "projects/{project}/global/images/family/{family}",
81124	//   "response": {
81125	//     "$ref": "Image"
81126	//   },
81127	//   "scopes": [
81128	//     "https://www.googleapis.com/auth/cloud-platform",
81129	//     "https://www.googleapis.com/auth/compute",
81130	//     "https://www.googleapis.com/auth/compute.readonly"
81131	//   ]
81132	// }
81133
81134}
81135
81136// method id "compute.images.getIamPolicy":
81137
81138type ImagesGetIamPolicyCall struct {
81139	s            *Service
81140	project      string
81141	resource     string
81142	urlParams_   gensupport.URLParams
81143	ifNoneMatch_ string
81144	ctx_         context.Context
81145	header_      http.Header
81146}
81147
81148// GetIamPolicy: Gets the access control policy for a resource. May be
81149// empty if no such policy or resource exists.
81150//
81151// - project: Project ID for this request.
81152// - resource: Name or id of the resource for this request.
81153func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
81154	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81155	c.project = project
81156	c.resource = resource
81157	return c
81158}
81159
81160// OptionsRequestedPolicyVersion sets the optional parameter
81161// "optionsRequestedPolicyVersion": Requested IAM Policy version.
81162func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
81163	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
81164	return c
81165}
81166
81167// Fields allows partial responses to be retrieved. See
81168// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81169// for more information.
81170func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
81171	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81172	return c
81173}
81174
81175// IfNoneMatch sets the optional parameter which makes the operation
81176// fail if the object's ETag matches the given value. This is useful for
81177// getting updates only after the object has changed since the last
81178// request. Use googleapi.IsNotModified to check whether the response
81179// error from Do is the result of In-None-Match.
81180func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
81181	c.ifNoneMatch_ = entityTag
81182	return c
81183}
81184
81185// Context sets the context to be used in this call's Do method. Any
81186// pending HTTP request will be aborted if the provided context is
81187// canceled.
81188func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
81189	c.ctx_ = ctx
81190	return c
81191}
81192
81193// Header returns an http.Header that can be modified by the caller to
81194// add HTTP headers to the request.
81195func (c *ImagesGetIamPolicyCall) Header() http.Header {
81196	if c.header_ == nil {
81197		c.header_ = make(http.Header)
81198	}
81199	return c.header_
81200}
81201
81202func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
81203	reqHeaders := make(http.Header)
81204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81205	for k, v := range c.header_ {
81206		reqHeaders[k] = v
81207	}
81208	reqHeaders.Set("User-Agent", c.s.userAgent())
81209	if c.ifNoneMatch_ != "" {
81210		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81211	}
81212	var body io.Reader = nil
81213	c.urlParams_.Set("alt", alt)
81214	c.urlParams_.Set("prettyPrint", "false")
81215	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/getIamPolicy")
81216	urls += "?" + c.urlParams_.Encode()
81217	req, err := http.NewRequest("GET", urls, body)
81218	if err != nil {
81219		return nil, err
81220	}
81221	req.Header = reqHeaders
81222	googleapi.Expand(req.URL, map[string]string{
81223		"project":  c.project,
81224		"resource": c.resource,
81225	})
81226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81227}
81228
81229// Do executes the "compute.images.getIamPolicy" call.
81230// Exactly one of *Policy or error will be non-nil. Any non-2xx status
81231// code is an error. Response headers are in either
81232// *Policy.ServerResponse.Header or (if a response was returned at all)
81233// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
81234// check whether the returned error was because http.StatusNotModified
81235// was returned.
81236func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
81237	gensupport.SetOptions(c.urlParams_, opts...)
81238	res, err := c.doRequest("json")
81239	if res != nil && res.StatusCode == http.StatusNotModified {
81240		if res.Body != nil {
81241			res.Body.Close()
81242		}
81243		return nil, &googleapi.Error{
81244			Code:   res.StatusCode,
81245			Header: res.Header,
81246		}
81247	}
81248	if err != nil {
81249		return nil, err
81250	}
81251	defer googleapi.CloseBody(res)
81252	if err := googleapi.CheckResponse(res); err != nil {
81253		return nil, err
81254	}
81255	ret := &Policy{
81256		ServerResponse: googleapi.ServerResponse{
81257			Header:         res.Header,
81258			HTTPStatusCode: res.StatusCode,
81259		},
81260	}
81261	target := &ret
81262	if err := gensupport.DecodeResponse(target, res); err != nil {
81263		return nil, err
81264	}
81265	return ret, nil
81266	// {
81267	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
81268	//   "httpMethod": "GET",
81269	//   "id": "compute.images.getIamPolicy",
81270	//   "parameterOrder": [
81271	//     "project",
81272	//     "resource"
81273	//   ],
81274	//   "parameters": {
81275	//     "optionsRequestedPolicyVersion": {
81276	//       "description": "Requested IAM Policy version.",
81277	//       "format": "int32",
81278	//       "location": "query",
81279	//       "type": "integer"
81280	//     },
81281	//     "project": {
81282	//       "description": "Project ID for this request.",
81283	//       "location": "path",
81284	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81285	//       "required": true,
81286	//       "type": "string"
81287	//     },
81288	//     "resource": {
81289	//       "description": "Name or id of the resource for this request.",
81290	//       "location": "path",
81291	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81292	//       "required": true,
81293	//       "type": "string"
81294	//     }
81295	//   },
81296	//   "path": "projects/{project}/global/images/{resource}/getIamPolicy",
81297	//   "response": {
81298	//     "$ref": "Policy"
81299	//   },
81300	//   "scopes": [
81301	//     "https://www.googleapis.com/auth/cloud-platform",
81302	//     "https://www.googleapis.com/auth/compute",
81303	//     "https://www.googleapis.com/auth/compute.readonly"
81304	//   ]
81305	// }
81306
81307}
81308
81309// method id "compute.images.insert":
81310
81311type ImagesInsertCall struct {
81312	s          *Service
81313	project    string
81314	image      *Image
81315	urlParams_ gensupport.URLParams
81316	ctx_       context.Context
81317	header_    http.Header
81318}
81319
81320// Insert: Creates an image in the specified project using the data
81321// included in the request.
81322//
81323// - project: Project ID for this request.
81324// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
81325func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
81326	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81327	c.project = project
81328	c.image = image
81329	return c
81330}
81331
81332// ForceCreate sets the optional parameter "forceCreate": Force image
81333// creation if true.
81334func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
81335	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
81336	return c
81337}
81338
81339// RequestId sets the optional parameter "requestId": An optional
81340// request ID to identify requests. Specify a unique request ID so that
81341// if you must retry your request, the server will know to ignore the
81342// request if it has already been completed.
81343//
81344// For example, consider a situation where you make an initial request
81345// and the request times out. If you make the request again with the
81346// same request ID, the server can check if original operation with the
81347// same request ID was received, and if so, will ignore the second
81348// request. This prevents clients from accidentally creating duplicate
81349// commitments.
81350//
81351// The request ID must be a valid UUID with the exception that zero UUID
81352// is not supported (00000000-0000-0000-0000-000000000000).
81353func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
81354	c.urlParams_.Set("requestId", requestId)
81355	return c
81356}
81357
81358// Fields allows partial responses to be retrieved. See
81359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81360// for more information.
81361func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
81362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81363	return c
81364}
81365
81366// Context sets the context to be used in this call's Do method. Any
81367// pending HTTP request will be aborted if the provided context is
81368// canceled.
81369func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
81370	c.ctx_ = ctx
81371	return c
81372}
81373
81374// Header returns an http.Header that can be modified by the caller to
81375// add HTTP headers to the request.
81376func (c *ImagesInsertCall) Header() http.Header {
81377	if c.header_ == nil {
81378		c.header_ = make(http.Header)
81379	}
81380	return c.header_
81381}
81382
81383func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
81384	reqHeaders := make(http.Header)
81385	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81386	for k, v := range c.header_ {
81387		reqHeaders[k] = v
81388	}
81389	reqHeaders.Set("User-Agent", c.s.userAgent())
81390	var body io.Reader = nil
81391	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
81392	if err != nil {
81393		return nil, err
81394	}
81395	reqHeaders.Set("Content-Type", "application/json")
81396	c.urlParams_.Set("alt", alt)
81397	c.urlParams_.Set("prettyPrint", "false")
81398	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
81399	urls += "?" + c.urlParams_.Encode()
81400	req, err := http.NewRequest("POST", urls, body)
81401	if err != nil {
81402		return nil, err
81403	}
81404	req.Header = reqHeaders
81405	googleapi.Expand(req.URL, map[string]string{
81406		"project": c.project,
81407	})
81408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81409}
81410
81411// Do executes the "compute.images.insert" call.
81412// Exactly one of *Operation or error will be non-nil. Any non-2xx
81413// status code is an error. Response headers are in either
81414// *Operation.ServerResponse.Header or (if a response was returned at
81415// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81416// to check whether the returned error was because
81417// http.StatusNotModified was returned.
81418func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81419	gensupport.SetOptions(c.urlParams_, opts...)
81420	res, err := c.doRequest("json")
81421	if res != nil && res.StatusCode == http.StatusNotModified {
81422		if res.Body != nil {
81423			res.Body.Close()
81424		}
81425		return nil, &googleapi.Error{
81426			Code:   res.StatusCode,
81427			Header: res.Header,
81428		}
81429	}
81430	if err != nil {
81431		return nil, err
81432	}
81433	defer googleapi.CloseBody(res)
81434	if err := googleapi.CheckResponse(res); err != nil {
81435		return nil, err
81436	}
81437	ret := &Operation{
81438		ServerResponse: googleapi.ServerResponse{
81439			Header:         res.Header,
81440			HTTPStatusCode: res.StatusCode,
81441		},
81442	}
81443	target := &ret
81444	if err := gensupport.DecodeResponse(target, res); err != nil {
81445		return nil, err
81446	}
81447	return ret, nil
81448	// {
81449	//   "description": "Creates an image in the specified project using the data included in the request.",
81450	//   "httpMethod": "POST",
81451	//   "id": "compute.images.insert",
81452	//   "parameterOrder": [
81453	//     "project"
81454	//   ],
81455	//   "parameters": {
81456	//     "forceCreate": {
81457	//       "description": "Force image creation if true.",
81458	//       "location": "query",
81459	//       "type": "boolean"
81460	//     },
81461	//     "project": {
81462	//       "description": "Project ID for this request.",
81463	//       "location": "path",
81464	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81465	//       "required": true,
81466	//       "type": "string"
81467	//     },
81468	//     "requestId": {
81469	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81470	//       "location": "query",
81471	//       "type": "string"
81472	//     }
81473	//   },
81474	//   "path": "projects/{project}/global/images",
81475	//   "request": {
81476	//     "$ref": "Image"
81477	//   },
81478	//   "response": {
81479	//     "$ref": "Operation"
81480	//   },
81481	//   "scopes": [
81482	//     "https://www.googleapis.com/auth/cloud-platform",
81483	//     "https://www.googleapis.com/auth/compute",
81484	//     "https://www.googleapis.com/auth/devstorage.full_control",
81485	//     "https://www.googleapis.com/auth/devstorage.read_only",
81486	//     "https://www.googleapis.com/auth/devstorage.read_write"
81487	//   ]
81488	// }
81489
81490}
81491
81492// method id "compute.images.list":
81493
81494type ImagesListCall struct {
81495	s            *Service
81496	project      string
81497	urlParams_   gensupport.URLParams
81498	ifNoneMatch_ string
81499	ctx_         context.Context
81500	header_      http.Header
81501}
81502
81503// List: Retrieves the list of custom images available to the specified
81504// project. Custom images are images you create that belong to your
81505// project. This method does not get any images that belong to other
81506// projects, including publicly-available images, like Debian 8. If you
81507// want to get a list of publicly-available images, use this method to
81508// make a request to the respective image project, such as debian-cloud
81509// or windows-cloud.
81510//
81511// - project: Project ID for this request.
81512// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
81513func (r *ImagesService) List(project string) *ImagesListCall {
81514	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81515	c.project = project
81516	return c
81517}
81518
81519// Filter sets the optional parameter "filter": A filter expression that
81520// filters resources listed in the response. The expression must specify
81521// the field name, a comparison operator, and the value that you want to
81522// use for filtering. The value must be a string, a number, or a
81523// boolean. The comparison operator must be either `=`, `!=`, `>`, or
81524// `<`.
81525//
81526// For example, if you are filtering Compute Engine instances, you can
81527// exclude instances named `example-instance` by specifying `name !=
81528// example-instance`.
81529//
81530// You can also filter nested fields. For example, you could specify
81531// `scheduling.automaticRestart = false` to include instances only if
81532// they are not scheduled for automatic restarts. You can use filtering
81533// on nested fields to filter based on resource labels.
81534//
81535// To filter on multiple expressions, provide each separate expression
81536// within parentheses. For example: ``` (scheduling.automaticRestart =
81537// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
81538// is an `AND` expression. However, you can include `AND` and `OR`
81539// expressions explicitly. For example: ``` (cpuPlatform = "Intel
81540// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
81541// (scheduling.automaticRestart = true) ```
81542func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
81543	c.urlParams_.Set("filter", filter)
81544	return c
81545}
81546
81547// MaxResults sets the optional parameter "maxResults": The maximum
81548// number of results per page that should be returned. If the number of
81549// available results is larger than `maxResults`, Compute Engine returns
81550// a `nextPageToken` that can be used to get the next page of results in
81551// subsequent list requests. Acceptable values are `0` to `500`,
81552// inclusive. (Default: `500`)
81553func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
81554	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81555	return c
81556}
81557
81558// OrderBy sets the optional parameter "orderBy": Sorts list results by
81559// a certain order. By default, results are returned in alphanumerical
81560// order based on the resource name.
81561//
81562// You can also sort results in descending order based on the creation
81563// timestamp using `orderBy="creationTimestamp desc". This sorts
81564// results based on the `creationTimestamp` field in reverse
81565// chronological order (newest result first). Use this to sort resources
81566// like operations so that the newest operation is returned
81567// first.
81568//
81569// Currently, only sorting by `name` or `creationTimestamp desc` is
81570// supported.
81571func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
81572	c.urlParams_.Set("orderBy", orderBy)
81573	return c
81574}
81575
81576// PageToken sets the optional parameter "pageToken": Specifies a page
81577// token to use. Set `pageToken` to the `nextPageToken` returned by a
81578// previous list request to get the next page of results.
81579func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
81580	c.urlParams_.Set("pageToken", pageToken)
81581	return c
81582}
81583
81584// ReturnPartialSuccess sets the optional parameter
81585// "returnPartialSuccess": Opt-in for partial success behavior which
81586// provides partial results in case of failure. The default value is
81587// false.
81588func (c *ImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ImagesListCall {
81589	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
81590	return c
81591}
81592
81593// Fields allows partial responses to be retrieved. See
81594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81595// for more information.
81596func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
81597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81598	return c
81599}
81600
81601// IfNoneMatch sets the optional parameter which makes the operation
81602// fail if the object's ETag matches the given value. This is useful for
81603// getting updates only after the object has changed since the last
81604// request. Use googleapi.IsNotModified to check whether the response
81605// error from Do is the result of In-None-Match.
81606func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
81607	c.ifNoneMatch_ = entityTag
81608	return c
81609}
81610
81611// Context sets the context to be used in this call's Do method. Any
81612// pending HTTP request will be aborted if the provided context is
81613// canceled.
81614func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
81615	c.ctx_ = ctx
81616	return c
81617}
81618
81619// Header returns an http.Header that can be modified by the caller to
81620// add HTTP headers to the request.
81621func (c *ImagesListCall) Header() http.Header {
81622	if c.header_ == nil {
81623		c.header_ = make(http.Header)
81624	}
81625	return c.header_
81626}
81627
81628func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
81629	reqHeaders := make(http.Header)
81630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81631	for k, v := range c.header_ {
81632		reqHeaders[k] = v
81633	}
81634	reqHeaders.Set("User-Agent", c.s.userAgent())
81635	if c.ifNoneMatch_ != "" {
81636		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81637	}
81638	var body io.Reader = nil
81639	c.urlParams_.Set("alt", alt)
81640	c.urlParams_.Set("prettyPrint", "false")
81641	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
81642	urls += "?" + c.urlParams_.Encode()
81643	req, err := http.NewRequest("GET", urls, body)
81644	if err != nil {
81645		return nil, err
81646	}
81647	req.Header = reqHeaders
81648	googleapi.Expand(req.URL, map[string]string{
81649		"project": c.project,
81650	})
81651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81652}
81653
81654// Do executes the "compute.images.list" call.
81655// Exactly one of *ImageList or error will be non-nil. Any non-2xx
81656// status code is an error. Response headers are in either
81657// *ImageList.ServerResponse.Header or (if a response was returned at
81658// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81659// to check whether the returned error was because
81660// http.StatusNotModified was returned.
81661func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
81662	gensupport.SetOptions(c.urlParams_, opts...)
81663	res, err := c.doRequest("json")
81664	if res != nil && res.StatusCode == http.StatusNotModified {
81665		if res.Body != nil {
81666			res.Body.Close()
81667		}
81668		return nil, &googleapi.Error{
81669			Code:   res.StatusCode,
81670			Header: res.Header,
81671		}
81672	}
81673	if err != nil {
81674		return nil, err
81675	}
81676	defer googleapi.CloseBody(res)
81677	if err := googleapi.CheckResponse(res); err != nil {
81678		return nil, err
81679	}
81680	ret := &ImageList{
81681		ServerResponse: googleapi.ServerResponse{
81682			Header:         res.Header,
81683			HTTPStatusCode: res.StatusCode,
81684		},
81685	}
81686	target := &ret
81687	if err := gensupport.DecodeResponse(target, res); err != nil {
81688		return nil, err
81689	}
81690	return ret, nil
81691	// {
81692	//   "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.",
81693	//   "httpMethod": "GET",
81694	//   "id": "compute.images.list",
81695	//   "parameterOrder": [
81696	//     "project"
81697	//   ],
81698	//   "parameters": {
81699	//     "filter": {
81700	//       "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) ```",
81701	//       "location": "query",
81702	//       "type": "string"
81703	//     },
81704	//     "maxResults": {
81705	//       "default": "500",
81706	//       "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`)",
81707	//       "format": "uint32",
81708	//       "location": "query",
81709	//       "minimum": "0",
81710	//       "type": "integer"
81711	//     },
81712	//     "orderBy": {
81713	//       "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.",
81714	//       "location": "query",
81715	//       "type": "string"
81716	//     },
81717	//     "pageToken": {
81718	//       "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.",
81719	//       "location": "query",
81720	//       "type": "string"
81721	//     },
81722	//     "project": {
81723	//       "description": "Project ID for this request.",
81724	//       "location": "path",
81725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81726	//       "required": true,
81727	//       "type": "string"
81728	//     },
81729	//     "returnPartialSuccess": {
81730	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
81731	//       "location": "query",
81732	//       "type": "boolean"
81733	//     }
81734	//   },
81735	//   "path": "projects/{project}/global/images",
81736	//   "response": {
81737	//     "$ref": "ImageList"
81738	//   },
81739	//   "scopes": [
81740	//     "https://www.googleapis.com/auth/cloud-platform",
81741	//     "https://www.googleapis.com/auth/compute",
81742	//     "https://www.googleapis.com/auth/compute.readonly"
81743	//   ]
81744	// }
81745
81746}
81747
81748// Pages invokes f for each page of results.
81749// A non-nil error returned from f will halt the iteration.
81750// The provided context supersedes any context provided to the Context method.
81751func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
81752	c.ctx_ = ctx
81753	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81754	for {
81755		x, err := c.Do()
81756		if err != nil {
81757			return err
81758		}
81759		if err := f(x); err != nil {
81760			return err
81761		}
81762		if x.NextPageToken == "" {
81763			return nil
81764		}
81765		c.PageToken(x.NextPageToken)
81766	}
81767}
81768
81769// method id "compute.images.patch":
81770
81771type ImagesPatchCall struct {
81772	s          *Service
81773	project    string
81774	image      string
81775	image2     *Image
81776	urlParams_ gensupport.URLParams
81777	ctx_       context.Context
81778	header_    http.Header
81779}
81780
81781// Patch: Patches the specified image with the data included in the
81782// request. Only the following fields can be modified: family,
81783// description, deprecation status.
81784//
81785// - image: Name of the image resource to patch.
81786// - project: Project ID for this request.
81787func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall {
81788	c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81789	c.project = project
81790	c.image = image
81791	c.image2 = image2
81792	return c
81793}
81794
81795// RequestId sets the optional parameter "requestId": An optional
81796// request ID to identify requests. Specify a unique request ID so that
81797// if you must retry your request, the server will know to ignore the
81798// request if it has already been completed.
81799//
81800// For example, consider a situation where you make an initial request
81801// and the request times out. If you make the request again with the
81802// same request ID, the server can check if original operation with the
81803// same request ID was received, and if so, will ignore the second
81804// request. This prevents clients from accidentally creating duplicate
81805// commitments.
81806//
81807// The request ID must be a valid UUID with the exception that zero UUID
81808// is not supported (00000000-0000-0000-0000-000000000000).
81809func (c *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall {
81810	c.urlParams_.Set("requestId", requestId)
81811	return c
81812}
81813
81814// Fields allows partial responses to be retrieved. See
81815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81816// for more information.
81817func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall {
81818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81819	return c
81820}
81821
81822// Context sets the context to be used in this call's Do method. Any
81823// pending HTTP request will be aborted if the provided context is
81824// canceled.
81825func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall {
81826	c.ctx_ = ctx
81827	return c
81828}
81829
81830// Header returns an http.Header that can be modified by the caller to
81831// add HTTP headers to the request.
81832func (c *ImagesPatchCall) Header() http.Header {
81833	if c.header_ == nil {
81834		c.header_ = make(http.Header)
81835	}
81836	return c.header_
81837}
81838
81839func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) {
81840	reqHeaders := make(http.Header)
81841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81842	for k, v := range c.header_ {
81843		reqHeaders[k] = v
81844	}
81845	reqHeaders.Set("User-Agent", c.s.userAgent())
81846	var body io.Reader = nil
81847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image2)
81848	if err != nil {
81849		return nil, err
81850	}
81851	reqHeaders.Set("Content-Type", "application/json")
81852	c.urlParams_.Set("alt", alt)
81853	c.urlParams_.Set("prettyPrint", "false")
81854	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
81855	urls += "?" + c.urlParams_.Encode()
81856	req, err := http.NewRequest("PATCH", urls, body)
81857	if err != nil {
81858		return nil, err
81859	}
81860	req.Header = reqHeaders
81861	googleapi.Expand(req.URL, map[string]string{
81862		"project": c.project,
81863		"image":   c.image,
81864	})
81865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81866}
81867
81868// Do executes the "compute.images.patch" call.
81869// Exactly one of *Operation or error will be non-nil. Any non-2xx
81870// status code is an error. Response headers are in either
81871// *Operation.ServerResponse.Header or (if a response was returned at
81872// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81873// to check whether the returned error was because
81874// http.StatusNotModified was returned.
81875func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81876	gensupport.SetOptions(c.urlParams_, opts...)
81877	res, err := c.doRequest("json")
81878	if res != nil && res.StatusCode == http.StatusNotModified {
81879		if res.Body != nil {
81880			res.Body.Close()
81881		}
81882		return nil, &googleapi.Error{
81883			Code:   res.StatusCode,
81884			Header: res.Header,
81885		}
81886	}
81887	if err != nil {
81888		return nil, err
81889	}
81890	defer googleapi.CloseBody(res)
81891	if err := googleapi.CheckResponse(res); err != nil {
81892		return nil, err
81893	}
81894	ret := &Operation{
81895		ServerResponse: googleapi.ServerResponse{
81896			Header:         res.Header,
81897			HTTPStatusCode: res.StatusCode,
81898		},
81899	}
81900	target := &ret
81901	if err := gensupport.DecodeResponse(target, res); err != nil {
81902		return nil, err
81903	}
81904	return ret, nil
81905	// {
81906	//   "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.",
81907	//   "httpMethod": "PATCH",
81908	//   "id": "compute.images.patch",
81909	//   "parameterOrder": [
81910	//     "project",
81911	//     "image"
81912	//   ],
81913	//   "parameters": {
81914	//     "image": {
81915	//       "description": "Name of the image resource to patch.",
81916	//       "location": "path",
81917	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81918	//       "required": true,
81919	//       "type": "string"
81920	//     },
81921	//     "project": {
81922	//       "description": "Project ID for this request.",
81923	//       "location": "path",
81924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81925	//       "required": true,
81926	//       "type": "string"
81927	//     },
81928	//     "requestId": {
81929	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81930	//       "location": "query",
81931	//       "type": "string"
81932	//     }
81933	//   },
81934	//   "path": "projects/{project}/global/images/{image}",
81935	//   "request": {
81936	//     "$ref": "Image"
81937	//   },
81938	//   "response": {
81939	//     "$ref": "Operation"
81940	//   },
81941	//   "scopes": [
81942	//     "https://www.googleapis.com/auth/cloud-platform",
81943	//     "https://www.googleapis.com/auth/compute"
81944	//   ]
81945	// }
81946
81947}
81948
81949// method id "compute.images.setIamPolicy":
81950
81951type ImagesSetIamPolicyCall struct {
81952	s                      *Service
81953	project                string
81954	resource               string
81955	globalsetpolicyrequest *GlobalSetPolicyRequest
81956	urlParams_             gensupport.URLParams
81957	ctx_                   context.Context
81958	header_                http.Header
81959}
81960
81961// SetIamPolicy: Sets the access control policy on the specified
81962// resource. Replaces any existing policy.
81963//
81964// - project: Project ID for this request.
81965// - resource: Name or id of the resource for this request.
81966func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
81967	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81968	c.project = project
81969	c.resource = resource
81970	c.globalsetpolicyrequest = globalsetpolicyrequest
81971	return c
81972}
81973
81974// Fields allows partial responses to be retrieved. See
81975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81976// for more information.
81977func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
81978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81979	return c
81980}
81981
81982// Context sets the context to be used in this call's Do method. Any
81983// pending HTTP request will be aborted if the provided context is
81984// canceled.
81985func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
81986	c.ctx_ = ctx
81987	return c
81988}
81989
81990// Header returns an http.Header that can be modified by the caller to
81991// add HTTP headers to the request.
81992func (c *ImagesSetIamPolicyCall) Header() http.Header {
81993	if c.header_ == nil {
81994		c.header_ = make(http.Header)
81995	}
81996	return c.header_
81997}
81998
81999func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
82000	reqHeaders := make(http.Header)
82001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82002	for k, v := range c.header_ {
82003		reqHeaders[k] = v
82004	}
82005	reqHeaders.Set("User-Agent", c.s.userAgent())
82006	var body io.Reader = nil
82007	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
82008	if err != nil {
82009		return nil, err
82010	}
82011	reqHeaders.Set("Content-Type", "application/json")
82012	c.urlParams_.Set("alt", alt)
82013	c.urlParams_.Set("prettyPrint", "false")
82014	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setIamPolicy")
82015	urls += "?" + c.urlParams_.Encode()
82016	req, err := http.NewRequest("POST", urls, body)
82017	if err != nil {
82018		return nil, err
82019	}
82020	req.Header = reqHeaders
82021	googleapi.Expand(req.URL, map[string]string{
82022		"project":  c.project,
82023		"resource": c.resource,
82024	})
82025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82026}
82027
82028// Do executes the "compute.images.setIamPolicy" call.
82029// Exactly one of *Policy or error will be non-nil. Any non-2xx status
82030// code is an error. Response headers are in either
82031// *Policy.ServerResponse.Header or (if a response was returned at all)
82032// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
82033// check whether the returned error was because http.StatusNotModified
82034// was returned.
82035func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
82036	gensupport.SetOptions(c.urlParams_, opts...)
82037	res, err := c.doRequest("json")
82038	if res != nil && res.StatusCode == http.StatusNotModified {
82039		if res.Body != nil {
82040			res.Body.Close()
82041		}
82042		return nil, &googleapi.Error{
82043			Code:   res.StatusCode,
82044			Header: res.Header,
82045		}
82046	}
82047	if err != nil {
82048		return nil, err
82049	}
82050	defer googleapi.CloseBody(res)
82051	if err := googleapi.CheckResponse(res); err != nil {
82052		return nil, err
82053	}
82054	ret := &Policy{
82055		ServerResponse: googleapi.ServerResponse{
82056			Header:         res.Header,
82057			HTTPStatusCode: res.StatusCode,
82058		},
82059	}
82060	target := &ret
82061	if err := gensupport.DecodeResponse(target, res); err != nil {
82062		return nil, err
82063	}
82064	return ret, nil
82065	// {
82066	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
82067	//   "httpMethod": "POST",
82068	//   "id": "compute.images.setIamPolicy",
82069	//   "parameterOrder": [
82070	//     "project",
82071	//     "resource"
82072	//   ],
82073	//   "parameters": {
82074	//     "project": {
82075	//       "description": "Project ID for this request.",
82076	//       "location": "path",
82077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82078	//       "required": true,
82079	//       "type": "string"
82080	//     },
82081	//     "resource": {
82082	//       "description": "Name or id of the resource for this request.",
82083	//       "location": "path",
82084	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82085	//       "required": true,
82086	//       "type": "string"
82087	//     }
82088	//   },
82089	//   "path": "projects/{project}/global/images/{resource}/setIamPolicy",
82090	//   "request": {
82091	//     "$ref": "GlobalSetPolicyRequest"
82092	//   },
82093	//   "response": {
82094	//     "$ref": "Policy"
82095	//   },
82096	//   "scopes": [
82097	//     "https://www.googleapis.com/auth/cloud-platform",
82098	//     "https://www.googleapis.com/auth/compute"
82099	//   ]
82100	// }
82101
82102}
82103
82104// method id "compute.images.setLabels":
82105
82106type ImagesSetLabelsCall struct {
82107	s                      *Service
82108	project                string
82109	resource               string
82110	globalsetlabelsrequest *GlobalSetLabelsRequest
82111	urlParams_             gensupport.URLParams
82112	ctx_                   context.Context
82113	header_                http.Header
82114}
82115
82116// SetLabels: Sets the labels on an image. To learn more about labels,
82117// read the Labeling Resources documentation.
82118//
82119// - project: Project ID for this request.
82120// - resource: Name or id of the resource for this request.
82121func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
82122	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82123	c.project = project
82124	c.resource = resource
82125	c.globalsetlabelsrequest = globalsetlabelsrequest
82126	return c
82127}
82128
82129// Fields allows partial responses to be retrieved. See
82130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82131// for more information.
82132func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
82133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82134	return c
82135}
82136
82137// Context sets the context to be used in this call's Do method. Any
82138// pending HTTP request will be aborted if the provided context is
82139// canceled.
82140func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
82141	c.ctx_ = ctx
82142	return c
82143}
82144
82145// Header returns an http.Header that can be modified by the caller to
82146// add HTTP headers to the request.
82147func (c *ImagesSetLabelsCall) Header() http.Header {
82148	if c.header_ == nil {
82149		c.header_ = make(http.Header)
82150	}
82151	return c.header_
82152}
82153
82154func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
82155	reqHeaders := make(http.Header)
82156	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82157	for k, v := range c.header_ {
82158		reqHeaders[k] = v
82159	}
82160	reqHeaders.Set("User-Agent", c.s.userAgent())
82161	var body io.Reader = nil
82162	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
82163	if err != nil {
82164		return nil, err
82165	}
82166	reqHeaders.Set("Content-Type", "application/json")
82167	c.urlParams_.Set("alt", alt)
82168	c.urlParams_.Set("prettyPrint", "false")
82169	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setLabels")
82170	urls += "?" + c.urlParams_.Encode()
82171	req, err := http.NewRequest("POST", urls, body)
82172	if err != nil {
82173		return nil, err
82174	}
82175	req.Header = reqHeaders
82176	googleapi.Expand(req.URL, map[string]string{
82177		"project":  c.project,
82178		"resource": c.resource,
82179	})
82180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82181}
82182
82183// Do executes the "compute.images.setLabels" call.
82184// Exactly one of *Operation or error will be non-nil. Any non-2xx
82185// status code is an error. Response headers are in either
82186// *Operation.ServerResponse.Header or (if a response was returned at
82187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82188// to check whether the returned error was because
82189// http.StatusNotModified was returned.
82190func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82191	gensupport.SetOptions(c.urlParams_, opts...)
82192	res, err := c.doRequest("json")
82193	if res != nil && res.StatusCode == http.StatusNotModified {
82194		if res.Body != nil {
82195			res.Body.Close()
82196		}
82197		return nil, &googleapi.Error{
82198			Code:   res.StatusCode,
82199			Header: res.Header,
82200		}
82201	}
82202	if err != nil {
82203		return nil, err
82204	}
82205	defer googleapi.CloseBody(res)
82206	if err := googleapi.CheckResponse(res); err != nil {
82207		return nil, err
82208	}
82209	ret := &Operation{
82210		ServerResponse: googleapi.ServerResponse{
82211			Header:         res.Header,
82212			HTTPStatusCode: res.StatusCode,
82213		},
82214	}
82215	target := &ret
82216	if err := gensupport.DecodeResponse(target, res); err != nil {
82217		return nil, err
82218	}
82219	return ret, nil
82220	// {
82221	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
82222	//   "httpMethod": "POST",
82223	//   "id": "compute.images.setLabels",
82224	//   "parameterOrder": [
82225	//     "project",
82226	//     "resource"
82227	//   ],
82228	//   "parameters": {
82229	//     "project": {
82230	//       "description": "Project ID for this request.",
82231	//       "location": "path",
82232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82233	//       "required": true,
82234	//       "type": "string"
82235	//     },
82236	//     "resource": {
82237	//       "description": "Name or id of the resource for this request.",
82238	//       "location": "path",
82239	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82240	//       "required": true,
82241	//       "type": "string"
82242	//     }
82243	//   },
82244	//   "path": "projects/{project}/global/images/{resource}/setLabels",
82245	//   "request": {
82246	//     "$ref": "GlobalSetLabelsRequest"
82247	//   },
82248	//   "response": {
82249	//     "$ref": "Operation"
82250	//   },
82251	//   "scopes": [
82252	//     "https://www.googleapis.com/auth/cloud-platform",
82253	//     "https://www.googleapis.com/auth/compute"
82254	//   ]
82255	// }
82256
82257}
82258
82259// method id "compute.images.testIamPermissions":
82260
82261type ImagesTestIamPermissionsCall struct {
82262	s                      *Service
82263	project                string
82264	resource               string
82265	testpermissionsrequest *TestPermissionsRequest
82266	urlParams_             gensupport.URLParams
82267	ctx_                   context.Context
82268	header_                http.Header
82269}
82270
82271// TestIamPermissions: Returns permissions that a caller has on the
82272// specified resource.
82273//
82274// - project: Project ID for this request.
82275// - resource: Name or id of the resource for this request.
82276func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
82277	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82278	c.project = project
82279	c.resource = resource
82280	c.testpermissionsrequest = testpermissionsrequest
82281	return c
82282}
82283
82284// Fields allows partial responses to be retrieved. See
82285// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82286// for more information.
82287func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
82288	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82289	return c
82290}
82291
82292// Context sets the context to be used in this call's Do method. Any
82293// pending HTTP request will be aborted if the provided context is
82294// canceled.
82295func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
82296	c.ctx_ = ctx
82297	return c
82298}
82299
82300// Header returns an http.Header that can be modified by the caller to
82301// add HTTP headers to the request.
82302func (c *ImagesTestIamPermissionsCall) Header() http.Header {
82303	if c.header_ == nil {
82304		c.header_ = make(http.Header)
82305	}
82306	return c.header_
82307}
82308
82309func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
82310	reqHeaders := make(http.Header)
82311	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82312	for k, v := range c.header_ {
82313		reqHeaders[k] = v
82314	}
82315	reqHeaders.Set("User-Agent", c.s.userAgent())
82316	var body io.Reader = nil
82317	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
82318	if err != nil {
82319		return nil, err
82320	}
82321	reqHeaders.Set("Content-Type", "application/json")
82322	c.urlParams_.Set("alt", alt)
82323	c.urlParams_.Set("prettyPrint", "false")
82324	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/testIamPermissions")
82325	urls += "?" + c.urlParams_.Encode()
82326	req, err := http.NewRequest("POST", urls, body)
82327	if err != nil {
82328		return nil, err
82329	}
82330	req.Header = reqHeaders
82331	googleapi.Expand(req.URL, map[string]string{
82332		"project":  c.project,
82333		"resource": c.resource,
82334	})
82335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82336}
82337
82338// Do executes the "compute.images.testIamPermissions" call.
82339// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
82340// non-2xx status code is an error. Response headers are in either
82341// *TestPermissionsResponse.ServerResponse.Header or (if a response was
82342// returned at all) in error.(*googleapi.Error).Header. Use
82343// googleapi.IsNotModified to check whether the returned error was
82344// because http.StatusNotModified was returned.
82345func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
82346	gensupport.SetOptions(c.urlParams_, opts...)
82347	res, err := c.doRequest("json")
82348	if res != nil && res.StatusCode == http.StatusNotModified {
82349		if res.Body != nil {
82350			res.Body.Close()
82351		}
82352		return nil, &googleapi.Error{
82353			Code:   res.StatusCode,
82354			Header: res.Header,
82355		}
82356	}
82357	if err != nil {
82358		return nil, err
82359	}
82360	defer googleapi.CloseBody(res)
82361	if err := googleapi.CheckResponse(res); err != nil {
82362		return nil, err
82363	}
82364	ret := &TestPermissionsResponse{
82365		ServerResponse: googleapi.ServerResponse{
82366			Header:         res.Header,
82367			HTTPStatusCode: res.StatusCode,
82368		},
82369	}
82370	target := &ret
82371	if err := gensupport.DecodeResponse(target, res); err != nil {
82372		return nil, err
82373	}
82374	return ret, nil
82375	// {
82376	//   "description": "Returns permissions that a caller has on the specified resource.",
82377	//   "httpMethod": "POST",
82378	//   "id": "compute.images.testIamPermissions",
82379	//   "parameterOrder": [
82380	//     "project",
82381	//     "resource"
82382	//   ],
82383	//   "parameters": {
82384	//     "project": {
82385	//       "description": "Project ID for this request.",
82386	//       "location": "path",
82387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82388	//       "required": true,
82389	//       "type": "string"
82390	//     },
82391	//     "resource": {
82392	//       "description": "Name or id of the resource for this request.",
82393	//       "location": "path",
82394	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82395	//       "required": true,
82396	//       "type": "string"
82397	//     }
82398	//   },
82399	//   "path": "projects/{project}/global/images/{resource}/testIamPermissions",
82400	//   "request": {
82401	//     "$ref": "TestPermissionsRequest"
82402	//   },
82403	//   "response": {
82404	//     "$ref": "TestPermissionsResponse"
82405	//   },
82406	//   "scopes": [
82407	//     "https://www.googleapis.com/auth/cloud-platform",
82408	//     "https://www.googleapis.com/auth/compute",
82409	//     "https://www.googleapis.com/auth/compute.readonly"
82410	//   ]
82411	// }
82412
82413}
82414
82415// method id "compute.instanceGroupManagers.abandonInstances":
82416
82417type InstanceGroupManagersAbandonInstancesCall struct {
82418	s                                            *Service
82419	project                                      string
82420	zone                                         string
82421	instanceGroupManager                         string
82422	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
82423	urlParams_                                   gensupport.URLParams
82424	ctx_                                         context.Context
82425	header_                                      http.Header
82426}
82427
82428// AbandonInstances: Flags the specified instances to be removed from
82429// the managed instance group. Abandoning an instance does not delete
82430// the instance, but it does remove the instance from any target pools
82431// that are applied by the managed instance group. This method reduces
82432// the targetSize of the managed instance group by the number of
82433// instances that you abandon. This operation is marked as DONE when the
82434// action is scheduled even if the instances have not yet been removed
82435// from the group. You must separately verify the status of the
82436// abandoning action with the listmanagedinstances method.
82437//
82438// If the group is part of a backend service that has enabled connection
82439// draining, it can take up to 60 seconds after the connection draining
82440// duration has elapsed before the VM instance is removed or
82441// deleted.
82442//
82443// You can specify a maximum of 1000 instances with this method per
82444// request.
82445//
82446// - instanceGroupManager: The name of the managed instance group.
82447// - project: Project ID for this request.
82448// - zone: The name of the zone where the managed instance group is
82449//   located.
82450func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
82451	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82452	c.project = project
82453	c.zone = zone
82454	c.instanceGroupManager = instanceGroupManager
82455	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
82456	return c
82457}
82458
82459// RequestId sets the optional parameter "requestId": An optional
82460// request ID to identify requests. Specify a unique request ID so that
82461// if you must retry your request, the server will know to ignore the
82462// request if it has already been completed.
82463//
82464// For example, consider a situation where you make an initial request
82465// and the request times out. If you make the request again with the
82466// same request ID, the server can check if original operation with the
82467// same request ID was received, and if so, will ignore the second
82468// request. This prevents clients from accidentally creating duplicate
82469// commitments.
82470//
82471// The request ID must be a valid UUID with the exception that zero UUID
82472// is not supported (00000000-0000-0000-0000-000000000000).
82473func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
82474	c.urlParams_.Set("requestId", requestId)
82475	return c
82476}
82477
82478// Fields allows partial responses to be retrieved. See
82479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82480// for more information.
82481func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
82482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82483	return c
82484}
82485
82486// Context sets the context to be used in this call's Do method. Any
82487// pending HTTP request will be aborted if the provided context is
82488// canceled.
82489func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
82490	c.ctx_ = ctx
82491	return c
82492}
82493
82494// Header returns an http.Header that can be modified by the caller to
82495// add HTTP headers to the request.
82496func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
82497	if c.header_ == nil {
82498		c.header_ = make(http.Header)
82499	}
82500	return c.header_
82501}
82502
82503func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
82504	reqHeaders := make(http.Header)
82505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82506	for k, v := range c.header_ {
82507		reqHeaders[k] = v
82508	}
82509	reqHeaders.Set("User-Agent", c.s.userAgent())
82510	var body io.Reader = nil
82511	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
82512	if err != nil {
82513		return nil, err
82514	}
82515	reqHeaders.Set("Content-Type", "application/json")
82516	c.urlParams_.Set("alt", alt)
82517	c.urlParams_.Set("prettyPrint", "false")
82518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
82519	urls += "?" + c.urlParams_.Encode()
82520	req, err := http.NewRequest("POST", urls, body)
82521	if err != nil {
82522		return nil, err
82523	}
82524	req.Header = reqHeaders
82525	googleapi.Expand(req.URL, map[string]string{
82526		"project":              c.project,
82527		"zone":                 c.zone,
82528		"instanceGroupManager": c.instanceGroupManager,
82529	})
82530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82531}
82532
82533// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
82534// Exactly one of *Operation or error will be non-nil. Any non-2xx
82535// status code is an error. Response headers are in either
82536// *Operation.ServerResponse.Header or (if a response was returned at
82537// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82538// to check whether the returned error was because
82539// http.StatusNotModified was returned.
82540func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82541	gensupport.SetOptions(c.urlParams_, opts...)
82542	res, err := c.doRequest("json")
82543	if res != nil && res.StatusCode == http.StatusNotModified {
82544		if res.Body != nil {
82545			res.Body.Close()
82546		}
82547		return nil, &googleapi.Error{
82548			Code:   res.StatusCode,
82549			Header: res.Header,
82550		}
82551	}
82552	if err != nil {
82553		return nil, err
82554	}
82555	defer googleapi.CloseBody(res)
82556	if err := googleapi.CheckResponse(res); err != nil {
82557		return nil, err
82558	}
82559	ret := &Operation{
82560		ServerResponse: googleapi.ServerResponse{
82561			Header:         res.Header,
82562			HTTPStatusCode: res.StatusCode,
82563		},
82564	}
82565	target := &ret
82566	if err := gensupport.DecodeResponse(target, res); err != nil {
82567		return nil, err
82568	}
82569	return ret, nil
82570	// {
82571	//   "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.",
82572	//   "httpMethod": "POST",
82573	//   "id": "compute.instanceGroupManagers.abandonInstances",
82574	//   "parameterOrder": [
82575	//     "project",
82576	//     "zone",
82577	//     "instanceGroupManager"
82578	//   ],
82579	//   "parameters": {
82580	//     "instanceGroupManager": {
82581	//       "description": "The name of the managed instance group.",
82582	//       "location": "path",
82583	//       "required": true,
82584	//       "type": "string"
82585	//     },
82586	//     "project": {
82587	//       "description": "Project ID for this request.",
82588	//       "location": "path",
82589	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82590	//       "required": true,
82591	//       "type": "string"
82592	//     },
82593	//     "requestId": {
82594	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82595	//       "location": "query",
82596	//       "type": "string"
82597	//     },
82598	//     "zone": {
82599	//       "description": "The name of the zone where the managed instance group is located.",
82600	//       "location": "path",
82601	//       "required": true,
82602	//       "type": "string"
82603	//     }
82604	//   },
82605	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
82606	//   "request": {
82607	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
82608	//   },
82609	//   "response": {
82610	//     "$ref": "Operation"
82611	//   },
82612	//   "scopes": [
82613	//     "https://www.googleapis.com/auth/cloud-platform",
82614	//     "https://www.googleapis.com/auth/compute"
82615	//   ]
82616	// }
82617
82618}
82619
82620// method id "compute.instanceGroupManagers.aggregatedList":
82621
82622type InstanceGroupManagersAggregatedListCall struct {
82623	s            *Service
82624	project      string
82625	urlParams_   gensupport.URLParams
82626	ifNoneMatch_ string
82627	ctx_         context.Context
82628	header_      http.Header
82629}
82630
82631// AggregatedList: Retrieves the list of managed instance groups and
82632// groups them by zone.
82633//
82634// - project: Project ID for this request.
82635func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
82636	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82637	c.project = project
82638	return c
82639}
82640
82641// Filter sets the optional parameter "filter": A filter expression that
82642// filters resources listed in the response. The expression must specify
82643// the field name, a comparison operator, and the value that you want to
82644// use for filtering. The value must be a string, a number, or a
82645// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82646// `<`.
82647//
82648// For example, if you are filtering Compute Engine instances, you can
82649// exclude instances named `example-instance` by specifying `name !=
82650// example-instance`.
82651//
82652// You can also filter nested fields. For example, you could specify
82653// `scheduling.automaticRestart = false` to include instances only if
82654// they are not scheduled for automatic restarts. You can use filtering
82655// on nested fields to filter based on resource labels.
82656//
82657// To filter on multiple expressions, provide each separate expression
82658// within parentheses. For example: ``` (scheduling.automaticRestart =
82659// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82660// is an `AND` expression. However, you can include `AND` and `OR`
82661// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82662// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82663// (scheduling.automaticRestart = true) ```
82664func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
82665	c.urlParams_.Set("filter", filter)
82666	return c
82667}
82668
82669// IncludeAllScopes sets the optional parameter "includeAllScopes":
82670// Indicates whether every visible scope for each scope type (zone,
82671// region, global) should be included in the response. For new resource
82672// types added after this field, the flag has no effect as new resource
82673// types will always include every visible scope for each scope type in
82674// response. For resource types which predate this field, if this flag
82675// is omitted or false, only scopes of the scope types where the
82676// resource type is expected to be found will be included.
82677func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
82678	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
82679	return c
82680}
82681
82682// MaxResults sets the optional parameter "maxResults": The maximum
82683// number of results per page that should be returned. If the number of
82684// available results is larger than `maxResults`, Compute Engine returns
82685// a `nextPageToken` that can be used to get the next page of results in
82686// subsequent list requests. Acceptable values are `0` to `500`,
82687// inclusive. (Default: `500`)
82688func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
82689	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82690	return c
82691}
82692
82693// OrderBy sets the optional parameter "orderBy": Sorts list results by
82694// a certain order. By default, results are returned in alphanumerical
82695// order based on the resource name.
82696//
82697// You can also sort results in descending order based on the creation
82698// timestamp using `orderBy="creationTimestamp desc". This sorts
82699// results based on the `creationTimestamp` field in reverse
82700// chronological order (newest result first). Use this to sort resources
82701// like operations so that the newest operation is returned
82702// first.
82703//
82704// Currently, only sorting by `name` or `creationTimestamp desc` is
82705// supported.
82706func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
82707	c.urlParams_.Set("orderBy", orderBy)
82708	return c
82709}
82710
82711// PageToken sets the optional parameter "pageToken": Specifies a page
82712// token to use. Set `pageToken` to the `nextPageToken` returned by a
82713// previous list request to get the next page of results.
82714func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
82715	c.urlParams_.Set("pageToken", pageToken)
82716	return c
82717}
82718
82719// ReturnPartialSuccess sets the optional parameter
82720// "returnPartialSuccess": Opt-in for partial success behavior which
82721// provides partial results in case of failure. The default value is
82722// false.
82723func (c *InstanceGroupManagersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersAggregatedListCall {
82724	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82725	return c
82726}
82727
82728// Fields allows partial responses to be retrieved. See
82729// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82730// for more information.
82731func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
82732	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82733	return c
82734}
82735
82736// IfNoneMatch sets the optional parameter which makes the operation
82737// fail if the object's ETag matches the given value. This is useful for
82738// getting updates only after the object has changed since the last
82739// request. Use googleapi.IsNotModified to check whether the response
82740// error from Do is the result of In-None-Match.
82741func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
82742	c.ifNoneMatch_ = entityTag
82743	return c
82744}
82745
82746// Context sets the context to be used in this call's Do method. Any
82747// pending HTTP request will be aborted if the provided context is
82748// canceled.
82749func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
82750	c.ctx_ = ctx
82751	return c
82752}
82753
82754// Header returns an http.Header that can be modified by the caller to
82755// add HTTP headers to the request.
82756func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
82757	if c.header_ == nil {
82758		c.header_ = make(http.Header)
82759	}
82760	return c.header_
82761}
82762
82763func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
82764	reqHeaders := make(http.Header)
82765	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82766	for k, v := range c.header_ {
82767		reqHeaders[k] = v
82768	}
82769	reqHeaders.Set("User-Agent", c.s.userAgent())
82770	if c.ifNoneMatch_ != "" {
82771		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82772	}
82773	var body io.Reader = nil
82774	c.urlParams_.Set("alt", alt)
82775	c.urlParams_.Set("prettyPrint", "false")
82776	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroupManagers")
82777	urls += "?" + c.urlParams_.Encode()
82778	req, err := http.NewRequest("GET", urls, body)
82779	if err != nil {
82780		return nil, err
82781	}
82782	req.Header = reqHeaders
82783	googleapi.Expand(req.URL, map[string]string{
82784		"project": c.project,
82785	})
82786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82787}
82788
82789// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
82790// Exactly one of *InstanceGroupManagerAggregatedList or error will be
82791// non-nil. Any non-2xx status code is an error. Response headers are in
82792// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
82793// (if a response was returned at all) in
82794// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
82795// whether the returned error was because http.StatusNotModified was
82796// returned.
82797func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
82798	gensupport.SetOptions(c.urlParams_, opts...)
82799	res, err := c.doRequest("json")
82800	if res != nil && res.StatusCode == http.StatusNotModified {
82801		if res.Body != nil {
82802			res.Body.Close()
82803		}
82804		return nil, &googleapi.Error{
82805			Code:   res.StatusCode,
82806			Header: res.Header,
82807		}
82808	}
82809	if err != nil {
82810		return nil, err
82811	}
82812	defer googleapi.CloseBody(res)
82813	if err := googleapi.CheckResponse(res); err != nil {
82814		return nil, err
82815	}
82816	ret := &InstanceGroupManagerAggregatedList{
82817		ServerResponse: googleapi.ServerResponse{
82818			Header:         res.Header,
82819			HTTPStatusCode: res.StatusCode,
82820		},
82821	}
82822	target := &ret
82823	if err := gensupport.DecodeResponse(target, res); err != nil {
82824		return nil, err
82825	}
82826	return ret, nil
82827	// {
82828	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
82829	//   "httpMethod": "GET",
82830	//   "id": "compute.instanceGroupManagers.aggregatedList",
82831	//   "parameterOrder": [
82832	//     "project"
82833	//   ],
82834	//   "parameters": {
82835	//     "filter": {
82836	//       "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) ```",
82837	//       "location": "query",
82838	//       "type": "string"
82839	//     },
82840	//     "includeAllScopes": {
82841	//       "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.",
82842	//       "location": "query",
82843	//       "type": "boolean"
82844	//     },
82845	//     "maxResults": {
82846	//       "default": "500",
82847	//       "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`)",
82848	//       "format": "uint32",
82849	//       "location": "query",
82850	//       "minimum": "0",
82851	//       "type": "integer"
82852	//     },
82853	//     "orderBy": {
82854	//       "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.",
82855	//       "location": "query",
82856	//       "type": "string"
82857	//     },
82858	//     "pageToken": {
82859	//       "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.",
82860	//       "location": "query",
82861	//       "type": "string"
82862	//     },
82863	//     "project": {
82864	//       "description": "Project ID for this request.",
82865	//       "location": "path",
82866	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82867	//       "required": true,
82868	//       "type": "string"
82869	//     },
82870	//     "returnPartialSuccess": {
82871	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82872	//       "location": "query",
82873	//       "type": "boolean"
82874	//     }
82875	//   },
82876	//   "path": "projects/{project}/aggregated/instanceGroupManagers",
82877	//   "response": {
82878	//     "$ref": "InstanceGroupManagerAggregatedList"
82879	//   },
82880	//   "scopes": [
82881	//     "https://www.googleapis.com/auth/cloud-platform",
82882	//     "https://www.googleapis.com/auth/compute",
82883	//     "https://www.googleapis.com/auth/compute.readonly"
82884	//   ]
82885	// }
82886
82887}
82888
82889// Pages invokes f for each page of results.
82890// A non-nil error returned from f will halt the iteration.
82891// The provided context supersedes any context provided to the Context method.
82892func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
82893	c.ctx_ = ctx
82894	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82895	for {
82896		x, err := c.Do()
82897		if err != nil {
82898			return err
82899		}
82900		if err := f(x); err != nil {
82901			return err
82902		}
82903		if x.NextPageToken == "" {
82904			return nil
82905		}
82906		c.PageToken(x.NextPageToken)
82907	}
82908}
82909
82910// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
82911
82912type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
82913	s                                        *Service
82914	project                                  string
82915	zone                                     string
82916	instanceGroupManager                     string
82917	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
82918	urlParams_                               gensupport.URLParams
82919	ctx_                                     context.Context
82920	header_                                  http.Header
82921}
82922
82923// ApplyUpdatesToInstances: Applies changes to selected instances on the
82924// managed instance group. This method can be used to apply new
82925// overrides and/or new versions.
82926//
82927// - instanceGroupManager: The name of the managed instance group,
82928//   should conform to RFC1035.
82929// - project: Project ID for this request.
82930// - zone: The name of the zone where the managed instance group is
82931//   located. Should conform to RFC1035.
82932func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
82933	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82934	c.project = project
82935	c.zone = zone
82936	c.instanceGroupManager = instanceGroupManager
82937	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
82938	return c
82939}
82940
82941// Fields allows partial responses to be retrieved. See
82942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82943// for more information.
82944func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
82945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82946	return c
82947}
82948
82949// Context sets the context to be used in this call's Do method. Any
82950// pending HTTP request will be aborted if the provided context is
82951// canceled.
82952func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
82953	c.ctx_ = ctx
82954	return c
82955}
82956
82957// Header returns an http.Header that can be modified by the caller to
82958// add HTTP headers to the request.
82959func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
82960	if c.header_ == nil {
82961		c.header_ = make(http.Header)
82962	}
82963	return c.header_
82964}
82965
82966func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
82967	reqHeaders := make(http.Header)
82968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82969	for k, v := range c.header_ {
82970		reqHeaders[k] = v
82971	}
82972	reqHeaders.Set("User-Agent", c.s.userAgent())
82973	var body io.Reader = nil
82974	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
82975	if err != nil {
82976		return nil, err
82977	}
82978	reqHeaders.Set("Content-Type", "application/json")
82979	c.urlParams_.Set("alt", alt)
82980	c.urlParams_.Set("prettyPrint", "false")
82981	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
82982	urls += "?" + c.urlParams_.Encode()
82983	req, err := http.NewRequest("POST", urls, body)
82984	if err != nil {
82985		return nil, err
82986	}
82987	req.Header = reqHeaders
82988	googleapi.Expand(req.URL, map[string]string{
82989		"project":              c.project,
82990		"zone":                 c.zone,
82991		"instanceGroupManager": c.instanceGroupManager,
82992	})
82993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82994}
82995
82996// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
82997// Exactly one of *Operation or error will be non-nil. Any non-2xx
82998// status code is an error. Response headers are in either
82999// *Operation.ServerResponse.Header or (if a response was returned at
83000// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83001// to check whether the returned error was because
83002// http.StatusNotModified was returned.
83003func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83004	gensupport.SetOptions(c.urlParams_, opts...)
83005	res, err := c.doRequest("json")
83006	if res != nil && res.StatusCode == http.StatusNotModified {
83007		if res.Body != nil {
83008			res.Body.Close()
83009		}
83010		return nil, &googleapi.Error{
83011			Code:   res.StatusCode,
83012			Header: res.Header,
83013		}
83014	}
83015	if err != nil {
83016		return nil, err
83017	}
83018	defer googleapi.CloseBody(res)
83019	if err := googleapi.CheckResponse(res); err != nil {
83020		return nil, err
83021	}
83022	ret := &Operation{
83023		ServerResponse: googleapi.ServerResponse{
83024			Header:         res.Header,
83025			HTTPStatusCode: res.StatusCode,
83026		},
83027	}
83028	target := &ret
83029	if err := gensupport.DecodeResponse(target, res); err != nil {
83030		return nil, err
83031	}
83032	return ret, nil
83033	// {
83034	//   "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
83035	//   "httpMethod": "POST",
83036	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
83037	//   "parameterOrder": [
83038	//     "project",
83039	//     "zone",
83040	//     "instanceGroupManager"
83041	//   ],
83042	//   "parameters": {
83043	//     "instanceGroupManager": {
83044	//       "description": "The name of the managed instance group, should conform to RFC1035.",
83045	//       "location": "path",
83046	//       "required": true,
83047	//       "type": "string"
83048	//     },
83049	//     "project": {
83050	//       "description": "Project ID for this request.",
83051	//       "location": "path",
83052	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83053	//       "required": true,
83054	//       "type": "string"
83055	//     },
83056	//     "zone": {
83057	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
83058	//       "location": "path",
83059	//       "required": true,
83060	//       "type": "string"
83061	//     }
83062	//   },
83063	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
83064	//   "request": {
83065	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
83066	//   },
83067	//   "response": {
83068	//     "$ref": "Operation"
83069	//   },
83070	//   "scopes": [
83071	//     "https://www.googleapis.com/auth/cloud-platform",
83072	//     "https://www.googleapis.com/auth/compute"
83073	//   ]
83074	// }
83075
83076}
83077
83078// method id "compute.instanceGroupManagers.createInstances":
83079
83080type InstanceGroupManagersCreateInstancesCall struct {
83081	s                                           *Service
83082	project                                     string
83083	zone                                        string
83084	instanceGroupManager                        string
83085	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
83086	urlParams_                                  gensupport.URLParams
83087	ctx_                                        context.Context
83088	header_                                     http.Header
83089}
83090
83091// CreateInstances: Creates instances with per-instance configs in this
83092// managed instance group. Instances are created using the current
83093// instance template. The create instances operation is marked DONE if
83094// the createInstances request is successful. The underlying actions
83095// take additional time. You must separately verify the status of the
83096// creating or actions with the listmanagedinstances method.
83097//
83098// - instanceGroupManager: The name of the managed instance group. It
83099//   should conform to RFC1035.
83100// - project: Project ID for this request.
83101// - zone: The name of the zone where the managed instance group is
83102//   located. It should conform to RFC1035.
83103func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
83104	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83105	c.project = project
83106	c.zone = zone
83107	c.instanceGroupManager = instanceGroupManager
83108	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
83109	return c
83110}
83111
83112// RequestId sets the optional parameter "requestId": An optional
83113// request ID to identify requests. Specify a unique request ID so that
83114// if you must retry your request, the server will know to ignore the
83115// request if it has already been completed.
83116//
83117// For example, consider a situation where you make an initial request
83118// and the request times out. If you make the request again with the
83119// same request ID, the server can check if original operation with the
83120// same request ID was received, and if so, will ignore the second
83121// request.
83122//
83123// The request ID must be a valid UUID with the exception that zero UUID
83124// is not supported (00000000-0000-0000-0000-000000000000).
83125func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
83126	c.urlParams_.Set("requestId", requestId)
83127	return c
83128}
83129
83130// Fields allows partial responses to be retrieved. See
83131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83132// for more information.
83133func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
83134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83135	return c
83136}
83137
83138// Context sets the context to be used in this call's Do method. Any
83139// pending HTTP request will be aborted if the provided context is
83140// canceled.
83141func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
83142	c.ctx_ = ctx
83143	return c
83144}
83145
83146// Header returns an http.Header that can be modified by the caller to
83147// add HTTP headers to the request.
83148func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
83149	if c.header_ == nil {
83150		c.header_ = make(http.Header)
83151	}
83152	return c.header_
83153}
83154
83155func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
83156	reqHeaders := make(http.Header)
83157	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83158	for k, v := range c.header_ {
83159		reqHeaders[k] = v
83160	}
83161	reqHeaders.Set("User-Agent", c.s.userAgent())
83162	var body io.Reader = nil
83163	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
83164	if err != nil {
83165		return nil, err
83166	}
83167	reqHeaders.Set("Content-Type", "application/json")
83168	c.urlParams_.Set("alt", alt)
83169	c.urlParams_.Set("prettyPrint", "false")
83170	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
83171	urls += "?" + c.urlParams_.Encode()
83172	req, err := http.NewRequest("POST", urls, body)
83173	if err != nil {
83174		return nil, err
83175	}
83176	req.Header = reqHeaders
83177	googleapi.Expand(req.URL, map[string]string{
83178		"project":              c.project,
83179		"zone":                 c.zone,
83180		"instanceGroupManager": c.instanceGroupManager,
83181	})
83182	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83183}
83184
83185// Do executes the "compute.instanceGroupManagers.createInstances" call.
83186// Exactly one of *Operation or error will be non-nil. Any non-2xx
83187// status code is an error. Response headers are in either
83188// *Operation.ServerResponse.Header or (if a response was returned at
83189// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83190// to check whether the returned error was because
83191// http.StatusNotModified was returned.
83192func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83193	gensupport.SetOptions(c.urlParams_, opts...)
83194	res, err := c.doRequest("json")
83195	if res != nil && res.StatusCode == http.StatusNotModified {
83196		if res.Body != nil {
83197			res.Body.Close()
83198		}
83199		return nil, &googleapi.Error{
83200			Code:   res.StatusCode,
83201			Header: res.Header,
83202		}
83203	}
83204	if err != nil {
83205		return nil, err
83206	}
83207	defer googleapi.CloseBody(res)
83208	if err := googleapi.CheckResponse(res); err != nil {
83209		return nil, err
83210	}
83211	ret := &Operation{
83212		ServerResponse: googleapi.ServerResponse{
83213			Header:         res.Header,
83214			HTTPStatusCode: res.StatusCode,
83215		},
83216	}
83217	target := &ret
83218	if err := gensupport.DecodeResponse(target, res); err != nil {
83219		return nil, err
83220	}
83221	return ret, nil
83222	// {
83223	//   "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.",
83224	//   "httpMethod": "POST",
83225	//   "id": "compute.instanceGroupManagers.createInstances",
83226	//   "parameterOrder": [
83227	//     "project",
83228	//     "zone",
83229	//     "instanceGroupManager"
83230	//   ],
83231	//   "parameters": {
83232	//     "instanceGroupManager": {
83233	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
83234	//       "location": "path",
83235	//       "required": true,
83236	//       "type": "string"
83237	//     },
83238	//     "project": {
83239	//       "description": "Project ID for this request.",
83240	//       "location": "path",
83241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83242	//       "required": true,
83243	//       "type": "string"
83244	//     },
83245	//     "requestId": {
83246	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
83247	//       "location": "query",
83248	//       "type": "string"
83249	//     },
83250	//     "zone": {
83251	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
83252	//       "location": "path",
83253	//       "required": true,
83254	//       "type": "string"
83255	//     }
83256	//   },
83257	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
83258	//   "request": {
83259	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
83260	//   },
83261	//   "response": {
83262	//     "$ref": "Operation"
83263	//   },
83264	//   "scopes": [
83265	//     "https://www.googleapis.com/auth/cloud-platform",
83266	//     "https://www.googleapis.com/auth/compute"
83267	//   ]
83268	// }
83269
83270}
83271
83272// method id "compute.instanceGroupManagers.delete":
83273
83274type InstanceGroupManagersDeleteCall struct {
83275	s                    *Service
83276	project              string
83277	zone                 string
83278	instanceGroupManager string
83279	urlParams_           gensupport.URLParams
83280	ctx_                 context.Context
83281	header_              http.Header
83282}
83283
83284// Delete: Deletes the specified managed instance group and all of the
83285// instances in that group. Note that the instance group must not belong
83286// to a backend service. Read  Deleting an instance group for more
83287// information.
83288//
83289// - instanceGroupManager: The name of the managed instance group to
83290//   delete.
83291// - project: Project ID for this request.
83292// - zone: The name of the zone where the managed instance group is
83293//   located.
83294func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
83295	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83296	c.project = project
83297	c.zone = zone
83298	c.instanceGroupManager = instanceGroupManager
83299	return c
83300}
83301
83302// RequestId sets the optional parameter "requestId": An optional
83303// request ID to identify requests. Specify a unique request ID so that
83304// if you must retry your request, the server will know to ignore the
83305// request if it has already been completed.
83306//
83307// For example, consider a situation where you make an initial request
83308// and the request times out. If you make the request again with the
83309// same request ID, the server can check if original operation with the
83310// same request ID was received, and if so, will ignore the second
83311// request. This prevents clients from accidentally creating duplicate
83312// commitments.
83313//
83314// The request ID must be a valid UUID with the exception that zero UUID
83315// is not supported (00000000-0000-0000-0000-000000000000).
83316func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
83317	c.urlParams_.Set("requestId", requestId)
83318	return c
83319}
83320
83321// Fields allows partial responses to be retrieved. See
83322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83323// for more information.
83324func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
83325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83326	return c
83327}
83328
83329// Context sets the context to be used in this call's Do method. Any
83330// pending HTTP request will be aborted if the provided context is
83331// canceled.
83332func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
83333	c.ctx_ = ctx
83334	return c
83335}
83336
83337// Header returns an http.Header that can be modified by the caller to
83338// add HTTP headers to the request.
83339func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
83340	if c.header_ == nil {
83341		c.header_ = make(http.Header)
83342	}
83343	return c.header_
83344}
83345
83346func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
83347	reqHeaders := make(http.Header)
83348	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83349	for k, v := range c.header_ {
83350		reqHeaders[k] = v
83351	}
83352	reqHeaders.Set("User-Agent", c.s.userAgent())
83353	var body io.Reader = nil
83354	c.urlParams_.Set("alt", alt)
83355	c.urlParams_.Set("prettyPrint", "false")
83356	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
83357	urls += "?" + c.urlParams_.Encode()
83358	req, err := http.NewRequest("DELETE", urls, body)
83359	if err != nil {
83360		return nil, err
83361	}
83362	req.Header = reqHeaders
83363	googleapi.Expand(req.URL, map[string]string{
83364		"project":              c.project,
83365		"zone":                 c.zone,
83366		"instanceGroupManager": c.instanceGroupManager,
83367	})
83368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83369}
83370
83371// Do executes the "compute.instanceGroupManagers.delete" call.
83372// Exactly one of *Operation or error will be non-nil. Any non-2xx
83373// status code is an error. Response headers are in either
83374// *Operation.ServerResponse.Header or (if a response was returned at
83375// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83376// to check whether the returned error was because
83377// http.StatusNotModified was returned.
83378func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83379	gensupport.SetOptions(c.urlParams_, opts...)
83380	res, err := c.doRequest("json")
83381	if res != nil && res.StatusCode == http.StatusNotModified {
83382		if res.Body != nil {
83383			res.Body.Close()
83384		}
83385		return nil, &googleapi.Error{
83386			Code:   res.StatusCode,
83387			Header: res.Header,
83388		}
83389	}
83390	if err != nil {
83391		return nil, err
83392	}
83393	defer googleapi.CloseBody(res)
83394	if err := googleapi.CheckResponse(res); err != nil {
83395		return nil, err
83396	}
83397	ret := &Operation{
83398		ServerResponse: googleapi.ServerResponse{
83399			Header:         res.Header,
83400			HTTPStatusCode: res.StatusCode,
83401		},
83402	}
83403	target := &ret
83404	if err := gensupport.DecodeResponse(target, res); err != nil {
83405		return nil, err
83406	}
83407	return ret, nil
83408	// {
83409	//   "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.",
83410	//   "httpMethod": "DELETE",
83411	//   "id": "compute.instanceGroupManagers.delete",
83412	//   "parameterOrder": [
83413	//     "project",
83414	//     "zone",
83415	//     "instanceGroupManager"
83416	//   ],
83417	//   "parameters": {
83418	//     "instanceGroupManager": {
83419	//       "description": "The name of the managed instance group to delete.",
83420	//       "location": "path",
83421	//       "required": true,
83422	//       "type": "string"
83423	//     },
83424	//     "project": {
83425	//       "description": "Project ID for this request.",
83426	//       "location": "path",
83427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83428	//       "required": true,
83429	//       "type": "string"
83430	//     },
83431	//     "requestId": {
83432	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83433	//       "location": "query",
83434	//       "type": "string"
83435	//     },
83436	//     "zone": {
83437	//       "description": "The name of the zone where the managed instance group is located.",
83438	//       "location": "path",
83439	//       "required": true,
83440	//       "type": "string"
83441	//     }
83442	//   },
83443	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
83444	//   "response": {
83445	//     "$ref": "Operation"
83446	//   },
83447	//   "scopes": [
83448	//     "https://www.googleapis.com/auth/cloud-platform",
83449	//     "https://www.googleapis.com/auth/compute"
83450	//   ]
83451	// }
83452
83453}
83454
83455// method id "compute.instanceGroupManagers.deleteInstances":
83456
83457type InstanceGroupManagersDeleteInstancesCall struct {
83458	s                                           *Service
83459	project                                     string
83460	zone                                        string
83461	instanceGroupManager                        string
83462	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
83463	urlParams_                                  gensupport.URLParams
83464	ctx_                                        context.Context
83465	header_                                     http.Header
83466}
83467
83468// DeleteInstances: Flags the specified instances in the managed
83469// instance group for immediate deletion. The instances are also removed
83470// from any target pools of which they were a member. This method
83471// reduces the targetSize of the managed instance group by the number of
83472// instances that you delete. This operation is marked as DONE when the
83473// action is scheduled even if the instances are still being deleted.
83474// You must separately verify the status of the deleting action with the
83475// listmanagedinstances method.
83476//
83477// If the group is part of a backend service that has enabled connection
83478// draining, it can take up to 60 seconds after the connection draining
83479// duration has elapsed before the VM instance is removed or
83480// deleted.
83481//
83482// You can specify a maximum of 1000 instances with this method per
83483// request.
83484//
83485// - instanceGroupManager: The name of the managed instance group.
83486// - project: Project ID for this request.
83487// - zone: The name of the zone where the managed instance group is
83488//   located.
83489func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
83490	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83491	c.project = project
83492	c.zone = zone
83493	c.instanceGroupManager = instanceGroupManager
83494	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
83495	return c
83496}
83497
83498// RequestId sets the optional parameter "requestId": An optional
83499// request ID to identify requests. Specify a unique request ID so that
83500// if you must retry your request, the server will know to ignore the
83501// request if it has already been completed.
83502//
83503// For example, consider a situation where you make an initial request
83504// and the request times out. If you make the request again with the
83505// same request ID, the server can check if original operation with the
83506// same request ID was received, and if so, will ignore the second
83507// request. This prevents clients from accidentally creating duplicate
83508// commitments.
83509//
83510// The request ID must be a valid UUID with the exception that zero UUID
83511// is not supported (00000000-0000-0000-0000-000000000000).
83512func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
83513	c.urlParams_.Set("requestId", requestId)
83514	return c
83515}
83516
83517// Fields allows partial responses to be retrieved. See
83518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83519// for more information.
83520func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
83521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83522	return c
83523}
83524
83525// Context sets the context to be used in this call's Do method. Any
83526// pending HTTP request will be aborted if the provided context is
83527// canceled.
83528func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
83529	c.ctx_ = ctx
83530	return c
83531}
83532
83533// Header returns an http.Header that can be modified by the caller to
83534// add HTTP headers to the request.
83535func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
83536	if c.header_ == nil {
83537		c.header_ = make(http.Header)
83538	}
83539	return c.header_
83540}
83541
83542func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
83543	reqHeaders := make(http.Header)
83544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83545	for k, v := range c.header_ {
83546		reqHeaders[k] = v
83547	}
83548	reqHeaders.Set("User-Agent", c.s.userAgent())
83549	var body io.Reader = nil
83550	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
83551	if err != nil {
83552		return nil, err
83553	}
83554	reqHeaders.Set("Content-Type", "application/json")
83555	c.urlParams_.Set("alt", alt)
83556	c.urlParams_.Set("prettyPrint", "false")
83557	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
83558	urls += "?" + c.urlParams_.Encode()
83559	req, err := http.NewRequest("POST", urls, body)
83560	if err != nil {
83561		return nil, err
83562	}
83563	req.Header = reqHeaders
83564	googleapi.Expand(req.URL, map[string]string{
83565		"project":              c.project,
83566		"zone":                 c.zone,
83567		"instanceGroupManager": c.instanceGroupManager,
83568	})
83569	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83570}
83571
83572// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
83573// Exactly one of *Operation or error will be non-nil. Any non-2xx
83574// status code is an error. Response headers are in either
83575// *Operation.ServerResponse.Header or (if a response was returned at
83576// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83577// to check whether the returned error was because
83578// http.StatusNotModified was returned.
83579func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83580	gensupport.SetOptions(c.urlParams_, opts...)
83581	res, err := c.doRequest("json")
83582	if res != nil && res.StatusCode == http.StatusNotModified {
83583		if res.Body != nil {
83584			res.Body.Close()
83585		}
83586		return nil, &googleapi.Error{
83587			Code:   res.StatusCode,
83588			Header: res.Header,
83589		}
83590	}
83591	if err != nil {
83592		return nil, err
83593	}
83594	defer googleapi.CloseBody(res)
83595	if err := googleapi.CheckResponse(res); err != nil {
83596		return nil, err
83597	}
83598	ret := &Operation{
83599		ServerResponse: googleapi.ServerResponse{
83600			Header:         res.Header,
83601			HTTPStatusCode: res.StatusCode,
83602		},
83603	}
83604	target := &ret
83605	if err := gensupport.DecodeResponse(target, res); err != nil {
83606		return nil, err
83607	}
83608	return ret, nil
83609	// {
83610	//   "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.",
83611	//   "httpMethod": "POST",
83612	//   "id": "compute.instanceGroupManagers.deleteInstances",
83613	//   "parameterOrder": [
83614	//     "project",
83615	//     "zone",
83616	//     "instanceGroupManager"
83617	//   ],
83618	//   "parameters": {
83619	//     "instanceGroupManager": {
83620	//       "description": "The name of the managed instance group.",
83621	//       "location": "path",
83622	//       "required": true,
83623	//       "type": "string"
83624	//     },
83625	//     "project": {
83626	//       "description": "Project ID for this request.",
83627	//       "location": "path",
83628	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83629	//       "required": true,
83630	//       "type": "string"
83631	//     },
83632	//     "requestId": {
83633	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83634	//       "location": "query",
83635	//       "type": "string"
83636	//     },
83637	//     "zone": {
83638	//       "description": "The name of the zone where the managed instance group is located.",
83639	//       "location": "path",
83640	//       "required": true,
83641	//       "type": "string"
83642	//     }
83643	//   },
83644	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
83645	//   "request": {
83646	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
83647	//   },
83648	//   "response": {
83649	//     "$ref": "Operation"
83650	//   },
83651	//   "scopes": [
83652	//     "https://www.googleapis.com/auth/cloud-platform",
83653	//     "https://www.googleapis.com/auth/compute"
83654	//   ]
83655	// }
83656
83657}
83658
83659// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
83660
83661type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
83662	s                                                *Service
83663	project                                          string
83664	zone                                             string
83665	instanceGroupManager                             string
83666	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
83667	urlParams_                                       gensupport.URLParams
83668	ctx_                                             context.Context
83669	header_                                          http.Header
83670}
83671
83672// DeletePerInstanceConfigs: Deletes selected per-instance configs for
83673// the managed instance group.
83674//
83675// - instanceGroupManager: The name of the managed instance group. It
83676//   should conform to RFC1035.
83677// - project: Project ID for this request.
83678// - zone: The name of the zone where the managed instance group is
83679//   located. It should conform to RFC1035.
83680func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
83681	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83682	c.project = project
83683	c.zone = zone
83684	c.instanceGroupManager = instanceGroupManager
83685	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
83686	return c
83687}
83688
83689// Fields allows partial responses to be retrieved. See
83690// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83691// for more information.
83692func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
83693	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83694	return c
83695}
83696
83697// Context sets the context to be used in this call's Do method. Any
83698// pending HTTP request will be aborted if the provided context is
83699// canceled.
83700func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
83701	c.ctx_ = ctx
83702	return c
83703}
83704
83705// Header returns an http.Header that can be modified by the caller to
83706// add HTTP headers to the request.
83707func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
83708	if c.header_ == nil {
83709		c.header_ = make(http.Header)
83710	}
83711	return c.header_
83712}
83713
83714func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
83715	reqHeaders := make(http.Header)
83716	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83717	for k, v := range c.header_ {
83718		reqHeaders[k] = v
83719	}
83720	reqHeaders.Set("User-Agent", c.s.userAgent())
83721	var body io.Reader = nil
83722	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
83723	if err != nil {
83724		return nil, err
83725	}
83726	reqHeaders.Set("Content-Type", "application/json")
83727	c.urlParams_.Set("alt", alt)
83728	c.urlParams_.Set("prettyPrint", "false")
83729	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
83730	urls += "?" + c.urlParams_.Encode()
83731	req, err := http.NewRequest("POST", urls, body)
83732	if err != nil {
83733		return nil, err
83734	}
83735	req.Header = reqHeaders
83736	googleapi.Expand(req.URL, map[string]string{
83737		"project":              c.project,
83738		"zone":                 c.zone,
83739		"instanceGroupManager": c.instanceGroupManager,
83740	})
83741	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83742}
83743
83744// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
83745// Exactly one of *Operation or error will be non-nil. Any non-2xx
83746// status code is an error. Response headers are in either
83747// *Operation.ServerResponse.Header or (if a response was returned at
83748// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83749// to check whether the returned error was because
83750// http.StatusNotModified was returned.
83751func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83752	gensupport.SetOptions(c.urlParams_, opts...)
83753	res, err := c.doRequest("json")
83754	if res != nil && res.StatusCode == http.StatusNotModified {
83755		if res.Body != nil {
83756			res.Body.Close()
83757		}
83758		return nil, &googleapi.Error{
83759			Code:   res.StatusCode,
83760			Header: res.Header,
83761		}
83762	}
83763	if err != nil {
83764		return nil, err
83765	}
83766	defer googleapi.CloseBody(res)
83767	if err := googleapi.CheckResponse(res); err != nil {
83768		return nil, err
83769	}
83770	ret := &Operation{
83771		ServerResponse: googleapi.ServerResponse{
83772			Header:         res.Header,
83773			HTTPStatusCode: res.StatusCode,
83774		},
83775	}
83776	target := &ret
83777	if err := gensupport.DecodeResponse(target, res); err != nil {
83778		return nil, err
83779	}
83780	return ret, nil
83781	// {
83782	//   "description": "Deletes selected per-instance configs for the managed instance group.",
83783	//   "httpMethod": "POST",
83784	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
83785	//   "parameterOrder": [
83786	//     "project",
83787	//     "zone",
83788	//     "instanceGroupManager"
83789	//   ],
83790	//   "parameters": {
83791	//     "instanceGroupManager": {
83792	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
83793	//       "location": "path",
83794	//       "required": true,
83795	//       "type": "string"
83796	//     },
83797	//     "project": {
83798	//       "description": "Project ID for this request.",
83799	//       "location": "path",
83800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83801	//       "required": true,
83802	//       "type": "string"
83803	//     },
83804	//     "zone": {
83805	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
83806	//       "location": "path",
83807	//       "required": true,
83808	//       "type": "string"
83809	//     }
83810	//   },
83811	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
83812	//   "request": {
83813	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
83814	//   },
83815	//   "response": {
83816	//     "$ref": "Operation"
83817	//   },
83818	//   "scopes": [
83819	//     "https://www.googleapis.com/auth/cloud-platform",
83820	//     "https://www.googleapis.com/auth/compute"
83821	//   ]
83822	// }
83823
83824}
83825
83826// method id "compute.instanceGroupManagers.get":
83827
83828type InstanceGroupManagersGetCall struct {
83829	s                    *Service
83830	project              string
83831	zone                 string
83832	instanceGroupManager string
83833	urlParams_           gensupport.URLParams
83834	ifNoneMatch_         string
83835	ctx_                 context.Context
83836	header_              http.Header
83837}
83838
83839// Get: Returns all of the details about the specified managed instance
83840// group. Gets a list of available managed instance groups by making a
83841// list() request.
83842//
83843// - instanceGroupManager: The name of the managed instance group.
83844// - project: Project ID for this request.
83845// - zone: The name of the zone where the managed instance group is
83846//   located.
83847func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
83848	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83849	c.project = project
83850	c.zone = zone
83851	c.instanceGroupManager = instanceGroupManager
83852	return c
83853}
83854
83855// Fields allows partial responses to be retrieved. See
83856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83857// for more information.
83858func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
83859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83860	return c
83861}
83862
83863// IfNoneMatch sets the optional parameter which makes the operation
83864// fail if the object's ETag matches the given value. This is useful for
83865// getting updates only after the object has changed since the last
83866// request. Use googleapi.IsNotModified to check whether the response
83867// error from Do is the result of In-None-Match.
83868func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
83869	c.ifNoneMatch_ = entityTag
83870	return c
83871}
83872
83873// Context sets the context to be used in this call's Do method. Any
83874// pending HTTP request will be aborted if the provided context is
83875// canceled.
83876func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
83877	c.ctx_ = ctx
83878	return c
83879}
83880
83881// Header returns an http.Header that can be modified by the caller to
83882// add HTTP headers to the request.
83883func (c *InstanceGroupManagersGetCall) Header() http.Header {
83884	if c.header_ == nil {
83885		c.header_ = make(http.Header)
83886	}
83887	return c.header_
83888}
83889
83890func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
83891	reqHeaders := make(http.Header)
83892	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83893	for k, v := range c.header_ {
83894		reqHeaders[k] = v
83895	}
83896	reqHeaders.Set("User-Agent", c.s.userAgent())
83897	if c.ifNoneMatch_ != "" {
83898		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83899	}
83900	var body io.Reader = nil
83901	c.urlParams_.Set("alt", alt)
83902	c.urlParams_.Set("prettyPrint", "false")
83903	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
83904	urls += "?" + c.urlParams_.Encode()
83905	req, err := http.NewRequest("GET", urls, body)
83906	if err != nil {
83907		return nil, err
83908	}
83909	req.Header = reqHeaders
83910	googleapi.Expand(req.URL, map[string]string{
83911		"project":              c.project,
83912		"zone":                 c.zone,
83913		"instanceGroupManager": c.instanceGroupManager,
83914	})
83915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83916}
83917
83918// Do executes the "compute.instanceGroupManagers.get" call.
83919// Exactly one of *InstanceGroupManager or error will be non-nil. Any
83920// non-2xx status code is an error. Response headers are in either
83921// *InstanceGroupManager.ServerResponse.Header or (if a response was
83922// returned at all) in error.(*googleapi.Error).Header. Use
83923// googleapi.IsNotModified to check whether the returned error was
83924// because http.StatusNotModified was returned.
83925func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
83926	gensupport.SetOptions(c.urlParams_, opts...)
83927	res, err := c.doRequest("json")
83928	if res != nil && res.StatusCode == http.StatusNotModified {
83929		if res.Body != nil {
83930			res.Body.Close()
83931		}
83932		return nil, &googleapi.Error{
83933			Code:   res.StatusCode,
83934			Header: res.Header,
83935		}
83936	}
83937	if err != nil {
83938		return nil, err
83939	}
83940	defer googleapi.CloseBody(res)
83941	if err := googleapi.CheckResponse(res); err != nil {
83942		return nil, err
83943	}
83944	ret := &InstanceGroupManager{
83945		ServerResponse: googleapi.ServerResponse{
83946			Header:         res.Header,
83947			HTTPStatusCode: res.StatusCode,
83948		},
83949	}
83950	target := &ret
83951	if err := gensupport.DecodeResponse(target, res); err != nil {
83952		return nil, err
83953	}
83954	return ret, nil
83955	// {
83956	//   "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.",
83957	//   "httpMethod": "GET",
83958	//   "id": "compute.instanceGroupManagers.get",
83959	//   "parameterOrder": [
83960	//     "project",
83961	//     "zone",
83962	//     "instanceGroupManager"
83963	//   ],
83964	//   "parameters": {
83965	//     "instanceGroupManager": {
83966	//       "description": "The name of the managed instance group.",
83967	//       "location": "path",
83968	//       "required": true,
83969	//       "type": "string"
83970	//     },
83971	//     "project": {
83972	//       "description": "Project ID for this request.",
83973	//       "location": "path",
83974	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83975	//       "required": true,
83976	//       "type": "string"
83977	//     },
83978	//     "zone": {
83979	//       "description": "The name of the zone where the managed instance group is located.",
83980	//       "location": "path",
83981	//       "required": true,
83982	//       "type": "string"
83983	//     }
83984	//   },
83985	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
83986	//   "response": {
83987	//     "$ref": "InstanceGroupManager"
83988	//   },
83989	//   "scopes": [
83990	//     "https://www.googleapis.com/auth/cloud-platform",
83991	//     "https://www.googleapis.com/auth/compute",
83992	//     "https://www.googleapis.com/auth/compute.readonly"
83993	//   ]
83994	// }
83995
83996}
83997
83998// method id "compute.instanceGroupManagers.insert":
83999
84000type InstanceGroupManagersInsertCall struct {
84001	s                    *Service
84002	project              string
84003	zone                 string
84004	instancegroupmanager *InstanceGroupManager
84005	urlParams_           gensupport.URLParams
84006	ctx_                 context.Context
84007	header_              http.Header
84008}
84009
84010// Insert: Creates a managed instance group using the information that
84011// you specify in the request. After the group is created, instances in
84012// the group are created using the specified instance template. This
84013// operation is marked as DONE when the group is created even if the
84014// instances in the group have not yet been created. You must separately
84015// verify the status of the individual instances with the
84016// listmanagedinstances method.
84017//
84018// A managed instance group can have up to 1000 VM instances per group.
84019// Please contact Cloud Support if you need an increase in this limit.
84020//
84021// - project: Project ID for this request.
84022// - zone: The name of the zone where you want to create the managed
84023//   instance group.
84024func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
84025	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84026	c.project = project
84027	c.zone = zone
84028	c.instancegroupmanager = instancegroupmanager
84029	return c
84030}
84031
84032// RequestId sets the optional parameter "requestId": An optional
84033// request ID to identify requests. Specify a unique request ID so that
84034// if you must retry your request, the server will know to ignore the
84035// request if it has already been completed.
84036//
84037// For example, consider a situation where you make an initial request
84038// and the request times out. If you make the request again with the
84039// same request ID, the server can check if original operation with the
84040// same request ID was received, and if so, will ignore the second
84041// request. This prevents clients from accidentally creating duplicate
84042// commitments.
84043//
84044// The request ID must be a valid UUID with the exception that zero UUID
84045// is not supported (00000000-0000-0000-0000-000000000000).
84046func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
84047	c.urlParams_.Set("requestId", requestId)
84048	return c
84049}
84050
84051// Fields allows partial responses to be retrieved. See
84052// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84053// for more information.
84054func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
84055	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84056	return c
84057}
84058
84059// Context sets the context to be used in this call's Do method. Any
84060// pending HTTP request will be aborted if the provided context is
84061// canceled.
84062func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
84063	c.ctx_ = ctx
84064	return c
84065}
84066
84067// Header returns an http.Header that can be modified by the caller to
84068// add HTTP headers to the request.
84069func (c *InstanceGroupManagersInsertCall) Header() http.Header {
84070	if c.header_ == nil {
84071		c.header_ = make(http.Header)
84072	}
84073	return c.header_
84074}
84075
84076func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
84077	reqHeaders := make(http.Header)
84078	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84079	for k, v := range c.header_ {
84080		reqHeaders[k] = v
84081	}
84082	reqHeaders.Set("User-Agent", c.s.userAgent())
84083	var body io.Reader = nil
84084	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
84085	if err != nil {
84086		return nil, err
84087	}
84088	reqHeaders.Set("Content-Type", "application/json")
84089	c.urlParams_.Set("alt", alt)
84090	c.urlParams_.Set("prettyPrint", "false")
84091	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
84092	urls += "?" + c.urlParams_.Encode()
84093	req, err := http.NewRequest("POST", urls, body)
84094	if err != nil {
84095		return nil, err
84096	}
84097	req.Header = reqHeaders
84098	googleapi.Expand(req.URL, map[string]string{
84099		"project": c.project,
84100		"zone":    c.zone,
84101	})
84102	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84103}
84104
84105// Do executes the "compute.instanceGroupManagers.insert" call.
84106// Exactly one of *Operation or error will be non-nil. Any non-2xx
84107// status code is an error. Response headers are in either
84108// *Operation.ServerResponse.Header or (if a response was returned at
84109// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84110// to check whether the returned error was because
84111// http.StatusNotModified was returned.
84112func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84113	gensupport.SetOptions(c.urlParams_, opts...)
84114	res, err := c.doRequest("json")
84115	if res != nil && res.StatusCode == http.StatusNotModified {
84116		if res.Body != nil {
84117			res.Body.Close()
84118		}
84119		return nil, &googleapi.Error{
84120			Code:   res.StatusCode,
84121			Header: res.Header,
84122		}
84123	}
84124	if err != nil {
84125		return nil, err
84126	}
84127	defer googleapi.CloseBody(res)
84128	if err := googleapi.CheckResponse(res); err != nil {
84129		return nil, err
84130	}
84131	ret := &Operation{
84132		ServerResponse: googleapi.ServerResponse{
84133			Header:         res.Header,
84134			HTTPStatusCode: res.StatusCode,
84135		},
84136	}
84137	target := &ret
84138	if err := gensupport.DecodeResponse(target, res); err != nil {
84139		return nil, err
84140	}
84141	return ret, nil
84142	// {
84143	//   "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.",
84144	//   "httpMethod": "POST",
84145	//   "id": "compute.instanceGroupManagers.insert",
84146	//   "parameterOrder": [
84147	//     "project",
84148	//     "zone"
84149	//   ],
84150	//   "parameters": {
84151	//     "project": {
84152	//       "description": "Project ID for this request.",
84153	//       "location": "path",
84154	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84155	//       "required": true,
84156	//       "type": "string"
84157	//     },
84158	//     "requestId": {
84159	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84160	//       "location": "query",
84161	//       "type": "string"
84162	//     },
84163	//     "zone": {
84164	//       "description": "The name of the zone where you want to create the managed instance group.",
84165	//       "location": "path",
84166	//       "required": true,
84167	//       "type": "string"
84168	//     }
84169	//   },
84170	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
84171	//   "request": {
84172	//     "$ref": "InstanceGroupManager"
84173	//   },
84174	//   "response": {
84175	//     "$ref": "Operation"
84176	//   },
84177	//   "scopes": [
84178	//     "https://www.googleapis.com/auth/cloud-platform",
84179	//     "https://www.googleapis.com/auth/compute"
84180	//   ]
84181	// }
84182
84183}
84184
84185// method id "compute.instanceGroupManagers.list":
84186
84187type InstanceGroupManagersListCall struct {
84188	s            *Service
84189	project      string
84190	zone         string
84191	urlParams_   gensupport.URLParams
84192	ifNoneMatch_ string
84193	ctx_         context.Context
84194	header_      http.Header
84195}
84196
84197// List: Retrieves a list of managed instance groups that are contained
84198// within the specified project and zone.
84199//
84200// - project: Project ID for this request.
84201// - zone: The name of the zone where the managed instance group is
84202//   located.
84203func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
84204	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84205	c.project = project
84206	c.zone = zone
84207	return c
84208}
84209
84210// Filter sets the optional parameter "filter": A filter expression that
84211// filters resources listed in the response. The expression must specify
84212// the field name, a comparison operator, and the value that you want to
84213// use for filtering. The value must be a string, a number, or a
84214// boolean. The comparison operator must be either `=`, `!=`, `>`, or
84215// `<`.
84216//
84217// For example, if you are filtering Compute Engine instances, you can
84218// exclude instances named `example-instance` by specifying `name !=
84219// example-instance`.
84220//
84221// You can also filter nested fields. For example, you could specify
84222// `scheduling.automaticRestart = false` to include instances only if
84223// they are not scheduled for automatic restarts. You can use filtering
84224// on nested fields to filter based on resource labels.
84225//
84226// To filter on multiple expressions, provide each separate expression
84227// within parentheses. For example: ``` (scheduling.automaticRestart =
84228// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
84229// is an `AND` expression. However, you can include `AND` and `OR`
84230// expressions explicitly. For example: ``` (cpuPlatform = "Intel
84231// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
84232// (scheduling.automaticRestart = true) ```
84233func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
84234	c.urlParams_.Set("filter", filter)
84235	return c
84236}
84237
84238// MaxResults sets the optional parameter "maxResults": The maximum
84239// number of results per page that should be returned. If the number of
84240// available results is larger than `maxResults`, Compute Engine returns
84241// a `nextPageToken` that can be used to get the next page of results in
84242// subsequent list requests. Acceptable values are `0` to `500`,
84243// inclusive. (Default: `500`)
84244func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
84245	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84246	return c
84247}
84248
84249// OrderBy sets the optional parameter "orderBy": Sorts list results by
84250// a certain order. By default, results are returned in alphanumerical
84251// order based on the resource name.
84252//
84253// You can also sort results in descending order based on the creation
84254// timestamp using `orderBy="creationTimestamp desc". This sorts
84255// results based on the `creationTimestamp` field in reverse
84256// chronological order (newest result first). Use this to sort resources
84257// like operations so that the newest operation is returned
84258// first.
84259//
84260// Currently, only sorting by `name` or `creationTimestamp desc` is
84261// supported.
84262func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
84263	c.urlParams_.Set("orderBy", orderBy)
84264	return c
84265}
84266
84267// PageToken sets the optional parameter "pageToken": Specifies a page
84268// token to use. Set `pageToken` to the `nextPageToken` returned by a
84269// previous list request to get the next page of results.
84270func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
84271	c.urlParams_.Set("pageToken", pageToken)
84272	return c
84273}
84274
84275// ReturnPartialSuccess sets the optional parameter
84276// "returnPartialSuccess": Opt-in for partial success behavior which
84277// provides partial results in case of failure. The default value is
84278// false.
84279func (c *InstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListCall {
84280	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
84281	return c
84282}
84283
84284// Fields allows partial responses to be retrieved. See
84285// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84286// for more information.
84287func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
84288	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84289	return c
84290}
84291
84292// IfNoneMatch sets the optional parameter which makes the operation
84293// fail if the object's ETag matches the given value. This is useful for
84294// getting updates only after the object has changed since the last
84295// request. Use googleapi.IsNotModified to check whether the response
84296// error from Do is the result of In-None-Match.
84297func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
84298	c.ifNoneMatch_ = entityTag
84299	return c
84300}
84301
84302// Context sets the context to be used in this call's Do method. Any
84303// pending HTTP request will be aborted if the provided context is
84304// canceled.
84305func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
84306	c.ctx_ = ctx
84307	return c
84308}
84309
84310// Header returns an http.Header that can be modified by the caller to
84311// add HTTP headers to the request.
84312func (c *InstanceGroupManagersListCall) Header() http.Header {
84313	if c.header_ == nil {
84314		c.header_ = make(http.Header)
84315	}
84316	return c.header_
84317}
84318
84319func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
84320	reqHeaders := make(http.Header)
84321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84322	for k, v := range c.header_ {
84323		reqHeaders[k] = v
84324	}
84325	reqHeaders.Set("User-Agent", c.s.userAgent())
84326	if c.ifNoneMatch_ != "" {
84327		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84328	}
84329	var body io.Reader = nil
84330	c.urlParams_.Set("alt", alt)
84331	c.urlParams_.Set("prettyPrint", "false")
84332	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
84333	urls += "?" + c.urlParams_.Encode()
84334	req, err := http.NewRequest("GET", urls, body)
84335	if err != nil {
84336		return nil, err
84337	}
84338	req.Header = reqHeaders
84339	googleapi.Expand(req.URL, map[string]string{
84340		"project": c.project,
84341		"zone":    c.zone,
84342	})
84343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84344}
84345
84346// Do executes the "compute.instanceGroupManagers.list" call.
84347// Exactly one of *InstanceGroupManagerList or error will be non-nil.
84348// Any non-2xx status code is an error. Response headers are in either
84349// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
84350// returned at all) in error.(*googleapi.Error).Header. Use
84351// googleapi.IsNotModified to check whether the returned error was
84352// because http.StatusNotModified was returned.
84353func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
84354	gensupport.SetOptions(c.urlParams_, opts...)
84355	res, err := c.doRequest("json")
84356	if res != nil && res.StatusCode == http.StatusNotModified {
84357		if res.Body != nil {
84358			res.Body.Close()
84359		}
84360		return nil, &googleapi.Error{
84361			Code:   res.StatusCode,
84362			Header: res.Header,
84363		}
84364	}
84365	if err != nil {
84366		return nil, err
84367	}
84368	defer googleapi.CloseBody(res)
84369	if err := googleapi.CheckResponse(res); err != nil {
84370		return nil, err
84371	}
84372	ret := &InstanceGroupManagerList{
84373		ServerResponse: googleapi.ServerResponse{
84374			Header:         res.Header,
84375			HTTPStatusCode: res.StatusCode,
84376		},
84377	}
84378	target := &ret
84379	if err := gensupport.DecodeResponse(target, res); err != nil {
84380		return nil, err
84381	}
84382	return ret, nil
84383	// {
84384	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
84385	//   "httpMethod": "GET",
84386	//   "id": "compute.instanceGroupManagers.list",
84387	//   "parameterOrder": [
84388	//     "project",
84389	//     "zone"
84390	//   ],
84391	//   "parameters": {
84392	//     "filter": {
84393	//       "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) ```",
84394	//       "location": "query",
84395	//       "type": "string"
84396	//     },
84397	//     "maxResults": {
84398	//       "default": "500",
84399	//       "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`)",
84400	//       "format": "uint32",
84401	//       "location": "query",
84402	//       "minimum": "0",
84403	//       "type": "integer"
84404	//     },
84405	//     "orderBy": {
84406	//       "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.",
84407	//       "location": "query",
84408	//       "type": "string"
84409	//     },
84410	//     "pageToken": {
84411	//       "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.",
84412	//       "location": "query",
84413	//       "type": "string"
84414	//     },
84415	//     "project": {
84416	//       "description": "Project ID for this request.",
84417	//       "location": "path",
84418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84419	//       "required": true,
84420	//       "type": "string"
84421	//     },
84422	//     "returnPartialSuccess": {
84423	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
84424	//       "location": "query",
84425	//       "type": "boolean"
84426	//     },
84427	//     "zone": {
84428	//       "description": "The name of the zone where the managed instance group is located.",
84429	//       "location": "path",
84430	//       "required": true,
84431	//       "type": "string"
84432	//     }
84433	//   },
84434	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
84435	//   "response": {
84436	//     "$ref": "InstanceGroupManagerList"
84437	//   },
84438	//   "scopes": [
84439	//     "https://www.googleapis.com/auth/cloud-platform",
84440	//     "https://www.googleapis.com/auth/compute",
84441	//     "https://www.googleapis.com/auth/compute.readonly"
84442	//   ]
84443	// }
84444
84445}
84446
84447// Pages invokes f for each page of results.
84448// A non-nil error returned from f will halt the iteration.
84449// The provided context supersedes any context provided to the Context method.
84450func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
84451	c.ctx_ = ctx
84452	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84453	for {
84454		x, err := c.Do()
84455		if err != nil {
84456			return err
84457		}
84458		if err := f(x); err != nil {
84459			return err
84460		}
84461		if x.NextPageToken == "" {
84462			return nil
84463		}
84464		c.PageToken(x.NextPageToken)
84465	}
84466}
84467
84468// method id "compute.instanceGroupManagers.listErrors":
84469
84470type InstanceGroupManagersListErrorsCall struct {
84471	s                    *Service
84472	project              string
84473	zone                 string
84474	instanceGroupManager string
84475	urlParams_           gensupport.URLParams
84476	ifNoneMatch_         string
84477	ctx_                 context.Context
84478	header_              http.Header
84479}
84480
84481// ListErrors: Lists all errors thrown by actions on instances for a
84482// given managed instance group. The filter and orderBy query parameters
84483// are not supported.
84484//
84485// - instanceGroupManager: The name of the managed instance group. It
84486//   must be a string that meets the requirements in RFC1035, or an
84487//   unsigned long integer: must match regexp pattern: (?:a-z
84488//   (?:[-a-z0-9]{0,61}[a-z0-9])?)|[1-9][0-9]{0,19}.
84489// - project: Project ID for this request.
84490// - zone: The name of the zone where the managed instance group is
84491//   located. It should conform to RFC1035.
84492func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
84493	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84494	c.project = project
84495	c.zone = zone
84496	c.instanceGroupManager = instanceGroupManager
84497	return c
84498}
84499
84500// Filter sets the optional parameter "filter": A filter expression that
84501// filters resources listed in the response. The expression must specify
84502// the field name, a comparison operator, and the value that you want to
84503// use for filtering. The value must be a string, a number, or a
84504// boolean. The comparison operator must be either `=`, `!=`, `>`, or
84505// `<`.
84506//
84507// For example, if you are filtering Compute Engine instances, you can
84508// exclude instances named `example-instance` by specifying `name !=
84509// example-instance`.
84510//
84511// You can also filter nested fields. For example, you could specify
84512// `scheduling.automaticRestart = false` to include instances only if
84513// they are not scheduled for automatic restarts. You can use filtering
84514// on nested fields to filter based on resource labels.
84515//
84516// To filter on multiple expressions, provide each separate expression
84517// within parentheses. For example: ``` (scheduling.automaticRestart =
84518// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
84519// is an `AND` expression. However, you can include `AND` and `OR`
84520// expressions explicitly. For example: ``` (cpuPlatform = "Intel
84521// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
84522// (scheduling.automaticRestart = true) ```
84523func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
84524	c.urlParams_.Set("filter", filter)
84525	return c
84526}
84527
84528// MaxResults sets the optional parameter "maxResults": The maximum
84529// number of results per page that should be returned. If the number of
84530// available results is larger than `maxResults`, Compute Engine returns
84531// a `nextPageToken` that can be used to get the next page of results in
84532// subsequent list requests. Acceptable values are `0` to `500`,
84533// inclusive. (Default: `500`)
84534func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
84535	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84536	return c
84537}
84538
84539// OrderBy sets the optional parameter "orderBy": Sorts list results by
84540// a certain order. By default, results are returned in alphanumerical
84541// order based on the resource name.
84542//
84543// You can also sort results in descending order based on the creation
84544// timestamp using `orderBy="creationTimestamp desc". This sorts
84545// results based on the `creationTimestamp` field in reverse
84546// chronological order (newest result first). Use this to sort resources
84547// like operations so that the newest operation is returned
84548// first.
84549//
84550// Currently, only sorting by `name` or `creationTimestamp desc` is
84551// supported.
84552func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
84553	c.urlParams_.Set("orderBy", orderBy)
84554	return c
84555}
84556
84557// PageToken sets the optional parameter "pageToken": Specifies a page
84558// token to use. Set `pageToken` to the `nextPageToken` returned by a
84559// previous list request to get the next page of results.
84560func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
84561	c.urlParams_.Set("pageToken", pageToken)
84562	return c
84563}
84564
84565// ReturnPartialSuccess sets the optional parameter
84566// "returnPartialSuccess": Opt-in for partial success behavior which
84567// provides partial results in case of failure. The default value is
84568// false.
84569func (c *InstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListErrorsCall {
84570	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
84571	return c
84572}
84573
84574// Fields allows partial responses to be retrieved. See
84575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84576// for more information.
84577func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
84578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84579	return c
84580}
84581
84582// IfNoneMatch sets the optional parameter which makes the operation
84583// fail if the object's ETag matches the given value. This is useful for
84584// getting updates only after the object has changed since the last
84585// request. Use googleapi.IsNotModified to check whether the response
84586// error from Do is the result of In-None-Match.
84587func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
84588	c.ifNoneMatch_ = entityTag
84589	return c
84590}
84591
84592// Context sets the context to be used in this call's Do method. Any
84593// pending HTTP request will be aborted if the provided context is
84594// canceled.
84595func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
84596	c.ctx_ = ctx
84597	return c
84598}
84599
84600// Header returns an http.Header that can be modified by the caller to
84601// add HTTP headers to the request.
84602func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
84603	if c.header_ == nil {
84604		c.header_ = make(http.Header)
84605	}
84606	return c.header_
84607}
84608
84609func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
84610	reqHeaders := make(http.Header)
84611	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84612	for k, v := range c.header_ {
84613		reqHeaders[k] = v
84614	}
84615	reqHeaders.Set("User-Agent", c.s.userAgent())
84616	if c.ifNoneMatch_ != "" {
84617		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84618	}
84619	var body io.Reader = nil
84620	c.urlParams_.Set("alt", alt)
84621	c.urlParams_.Set("prettyPrint", "false")
84622	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
84623	urls += "?" + c.urlParams_.Encode()
84624	req, err := http.NewRequest("GET", urls, body)
84625	if err != nil {
84626		return nil, err
84627	}
84628	req.Header = reqHeaders
84629	googleapi.Expand(req.URL, map[string]string{
84630		"project":              c.project,
84631		"zone":                 c.zone,
84632		"instanceGroupManager": c.instanceGroupManager,
84633	})
84634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84635}
84636
84637// Do executes the "compute.instanceGroupManagers.listErrors" call.
84638// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
84639// be non-nil. Any non-2xx status code is an error. Response headers are
84640// in either
84641// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
84642// a response was returned at all) in error.(*googleapi.Error).Header.
84643// Use googleapi.IsNotModified to check whether the returned error was
84644// because http.StatusNotModified was returned.
84645func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
84646	gensupport.SetOptions(c.urlParams_, opts...)
84647	res, err := c.doRequest("json")
84648	if res != nil && res.StatusCode == http.StatusNotModified {
84649		if res.Body != nil {
84650			res.Body.Close()
84651		}
84652		return nil, &googleapi.Error{
84653			Code:   res.StatusCode,
84654			Header: res.Header,
84655		}
84656	}
84657	if err != nil {
84658		return nil, err
84659	}
84660	defer googleapi.CloseBody(res)
84661	if err := googleapi.CheckResponse(res); err != nil {
84662		return nil, err
84663	}
84664	ret := &InstanceGroupManagersListErrorsResponse{
84665		ServerResponse: googleapi.ServerResponse{
84666			Header:         res.Header,
84667			HTTPStatusCode: res.StatusCode,
84668		},
84669	}
84670	target := &ret
84671	if err := gensupport.DecodeResponse(target, res); err != nil {
84672		return nil, err
84673	}
84674	return ret, nil
84675	// {
84676	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.",
84677	//   "httpMethod": "GET",
84678	//   "id": "compute.instanceGroupManagers.listErrors",
84679	//   "parameterOrder": [
84680	//     "project",
84681	//     "zone",
84682	//     "instanceGroupManager"
84683	//   ],
84684	//   "parameters": {
84685	//     "filter": {
84686	//       "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) ```",
84687	//       "location": "query",
84688	//       "type": "string"
84689	//     },
84690	//     "instanceGroupManager": {
84691	//       "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}.",
84692	//       "location": "path",
84693	//       "required": true,
84694	//       "type": "string"
84695	//     },
84696	//     "maxResults": {
84697	//       "default": "500",
84698	//       "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`)",
84699	//       "format": "uint32",
84700	//       "location": "query",
84701	//       "minimum": "0",
84702	//       "type": "integer"
84703	//     },
84704	//     "orderBy": {
84705	//       "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.",
84706	//       "location": "query",
84707	//       "type": "string"
84708	//     },
84709	//     "pageToken": {
84710	//       "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.",
84711	//       "location": "query",
84712	//       "type": "string"
84713	//     },
84714	//     "project": {
84715	//       "description": "Project ID for this request.",
84716	//       "location": "path",
84717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84718	//       "required": true,
84719	//       "type": "string"
84720	//     },
84721	//     "returnPartialSuccess": {
84722	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
84723	//       "location": "query",
84724	//       "type": "boolean"
84725	//     },
84726	//     "zone": {
84727	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
84728	//       "location": "path",
84729	//       "required": true,
84730	//       "type": "string"
84731	//     }
84732	//   },
84733	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
84734	//   "response": {
84735	//     "$ref": "InstanceGroupManagersListErrorsResponse"
84736	//   },
84737	//   "scopes": [
84738	//     "https://www.googleapis.com/auth/cloud-platform",
84739	//     "https://www.googleapis.com/auth/compute",
84740	//     "https://www.googleapis.com/auth/compute.readonly"
84741	//   ]
84742	// }
84743
84744}
84745
84746// Pages invokes f for each page of results.
84747// A non-nil error returned from f will halt the iteration.
84748// The provided context supersedes any context provided to the Context method.
84749func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
84750	c.ctx_ = ctx
84751	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84752	for {
84753		x, err := c.Do()
84754		if err != nil {
84755			return err
84756		}
84757		if err := f(x); err != nil {
84758			return err
84759		}
84760		if x.NextPageToken == "" {
84761			return nil
84762		}
84763		c.PageToken(x.NextPageToken)
84764	}
84765}
84766
84767// method id "compute.instanceGroupManagers.listManagedInstances":
84768
84769type InstanceGroupManagersListManagedInstancesCall struct {
84770	s                    *Service
84771	project              string
84772	zone                 string
84773	instanceGroupManager string
84774	urlParams_           gensupport.URLParams
84775	ctx_                 context.Context
84776	header_              http.Header
84777}
84778
84779// ListManagedInstances: Lists all of the instances in the managed
84780// instance group. Each instance in the list has a currentAction, which
84781// indicates the action that the managed instance group is performing on
84782// the instance. For example, if the group is still creating an
84783// instance, the currentAction is CREATING. If a previous action failed,
84784// the list displays the errors for that failed action. The orderBy
84785// query parameter is not supported.
84786//
84787// - instanceGroupManager: The name of the managed instance group.
84788// - project: Project ID for this request.
84789// - zone: The name of the zone where the managed instance group is
84790//   located.
84791func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
84792	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84793	c.project = project
84794	c.zone = zone
84795	c.instanceGroupManager = instanceGroupManager
84796	return c
84797}
84798
84799// Filter sets the optional parameter "filter": A filter expression that
84800// filters resources listed in the response. The expression must specify
84801// the field name, a comparison operator, and the value that you want to
84802// use for filtering. The value must be a string, a number, or a
84803// boolean. The comparison operator must be either `=`, `!=`, `>`, or
84804// `<`.
84805//
84806// For example, if you are filtering Compute Engine instances, you can
84807// exclude instances named `example-instance` by specifying `name !=
84808// example-instance`.
84809//
84810// You can also filter nested fields. For example, you could specify
84811// `scheduling.automaticRestart = false` to include instances only if
84812// they are not scheduled for automatic restarts. You can use filtering
84813// on nested fields to filter based on resource labels.
84814//
84815// To filter on multiple expressions, provide each separate expression
84816// within parentheses. For example: ``` (scheduling.automaticRestart =
84817// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
84818// is an `AND` expression. However, you can include `AND` and `OR`
84819// expressions explicitly. For example: ``` (cpuPlatform = "Intel
84820// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
84821// (scheduling.automaticRestart = true) ```
84822func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
84823	c.urlParams_.Set("filter", filter)
84824	return c
84825}
84826
84827// MaxResults sets the optional parameter "maxResults": The maximum
84828// number of results per page that should be returned. If the number of
84829// available results is larger than `maxResults`, Compute Engine returns
84830// a `nextPageToken` that can be used to get the next page of results in
84831// subsequent list requests. Acceptable values are `0` to `500`,
84832// inclusive. (Default: `500`)
84833func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
84834	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84835	return c
84836}
84837
84838// OrderBy sets the optional parameter "orderBy": Sorts list results by
84839// a certain order. By default, results are returned in alphanumerical
84840// order based on the resource name.
84841//
84842// You can also sort results in descending order based on the creation
84843// timestamp using `orderBy="creationTimestamp desc". This sorts
84844// results based on the `creationTimestamp` field in reverse
84845// chronological order (newest result first). Use this to sort resources
84846// like operations so that the newest operation is returned
84847// first.
84848//
84849// Currently, only sorting by `name` or `creationTimestamp desc` is
84850// supported.
84851func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
84852	c.urlParams_.Set("orderBy", orderBy)
84853	return c
84854}
84855
84856// PageToken sets the optional parameter "pageToken": Specifies a page
84857// token to use. Set `pageToken` to the `nextPageToken` returned by a
84858// previous list request to get the next page of results.
84859func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
84860	c.urlParams_.Set("pageToken", pageToken)
84861	return c
84862}
84863
84864// ReturnPartialSuccess sets the optional parameter
84865// "returnPartialSuccess": Opt-in for partial success behavior which
84866// provides partial results in case of failure. The default value is
84867// false.
84868func (c *InstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListManagedInstancesCall {
84869	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
84870	return c
84871}
84872
84873// Fields allows partial responses to be retrieved. See
84874// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84875// for more information.
84876func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
84877	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84878	return c
84879}
84880
84881// Context sets the context to be used in this call's Do method. Any
84882// pending HTTP request will be aborted if the provided context is
84883// canceled.
84884func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
84885	c.ctx_ = ctx
84886	return c
84887}
84888
84889// Header returns an http.Header that can be modified by the caller to
84890// add HTTP headers to the request.
84891func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
84892	if c.header_ == nil {
84893		c.header_ = make(http.Header)
84894	}
84895	return c.header_
84896}
84897
84898func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
84899	reqHeaders := make(http.Header)
84900	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84901	for k, v := range c.header_ {
84902		reqHeaders[k] = v
84903	}
84904	reqHeaders.Set("User-Agent", c.s.userAgent())
84905	var body io.Reader = nil
84906	c.urlParams_.Set("alt", alt)
84907	c.urlParams_.Set("prettyPrint", "false")
84908	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
84909	urls += "?" + c.urlParams_.Encode()
84910	req, err := http.NewRequest("POST", urls, body)
84911	if err != nil {
84912		return nil, err
84913	}
84914	req.Header = reqHeaders
84915	googleapi.Expand(req.URL, map[string]string{
84916		"project":              c.project,
84917		"zone":                 c.zone,
84918		"instanceGroupManager": c.instanceGroupManager,
84919	})
84920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84921}
84922
84923// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
84924// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
84925// error will be non-nil. Any non-2xx status code is an error. Response
84926// headers are in either
84927// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
84928// er or (if a response was returned at all) in
84929// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
84930// whether the returned error was because http.StatusNotModified was
84931// returned.
84932func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
84933	gensupport.SetOptions(c.urlParams_, opts...)
84934	res, err := c.doRequest("json")
84935	if res != nil && res.StatusCode == http.StatusNotModified {
84936		if res.Body != nil {
84937			res.Body.Close()
84938		}
84939		return nil, &googleapi.Error{
84940			Code:   res.StatusCode,
84941			Header: res.Header,
84942		}
84943	}
84944	if err != nil {
84945		return nil, err
84946	}
84947	defer googleapi.CloseBody(res)
84948	if err := googleapi.CheckResponse(res); err != nil {
84949		return nil, err
84950	}
84951	ret := &InstanceGroupManagersListManagedInstancesResponse{
84952		ServerResponse: googleapi.ServerResponse{
84953			Header:         res.Header,
84954			HTTPStatusCode: res.StatusCode,
84955		},
84956	}
84957	target := &ret
84958	if err := gensupport.DecodeResponse(target, res); err != nil {
84959		return nil, err
84960	}
84961	return ret, nil
84962	// {
84963	//   "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.",
84964	//   "httpMethod": "POST",
84965	//   "id": "compute.instanceGroupManagers.listManagedInstances",
84966	//   "parameterOrder": [
84967	//     "project",
84968	//     "zone",
84969	//     "instanceGroupManager"
84970	//   ],
84971	//   "parameters": {
84972	//     "filter": {
84973	//       "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) ```",
84974	//       "location": "query",
84975	//       "type": "string"
84976	//     },
84977	//     "instanceGroupManager": {
84978	//       "description": "The name of the managed instance group.",
84979	//       "location": "path",
84980	//       "required": true,
84981	//       "type": "string"
84982	//     },
84983	//     "maxResults": {
84984	//       "default": "500",
84985	//       "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`)",
84986	//       "format": "uint32",
84987	//       "location": "query",
84988	//       "minimum": "0",
84989	//       "type": "integer"
84990	//     },
84991	//     "orderBy": {
84992	//       "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.",
84993	//       "location": "query",
84994	//       "type": "string"
84995	//     },
84996	//     "pageToken": {
84997	//       "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.",
84998	//       "location": "query",
84999	//       "type": "string"
85000	//     },
85001	//     "project": {
85002	//       "description": "Project ID for this request.",
85003	//       "location": "path",
85004	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85005	//       "required": true,
85006	//       "type": "string"
85007	//     },
85008	//     "returnPartialSuccess": {
85009	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
85010	//       "location": "query",
85011	//       "type": "boolean"
85012	//     },
85013	//     "zone": {
85014	//       "description": "The name of the zone where the managed instance group is located.",
85015	//       "location": "path",
85016	//       "required": true,
85017	//       "type": "string"
85018	//     }
85019	//   },
85020	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
85021	//   "response": {
85022	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
85023	//   },
85024	//   "scopes": [
85025	//     "https://www.googleapis.com/auth/cloud-platform",
85026	//     "https://www.googleapis.com/auth/compute",
85027	//     "https://www.googleapis.com/auth/compute.readonly"
85028	//   ]
85029	// }
85030
85031}
85032
85033// Pages invokes f for each page of results.
85034// A non-nil error returned from f will halt the iteration.
85035// The provided context supersedes any context provided to the Context method.
85036func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
85037	c.ctx_ = ctx
85038	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85039	for {
85040		x, err := c.Do()
85041		if err != nil {
85042			return err
85043		}
85044		if err := f(x); err != nil {
85045			return err
85046		}
85047		if x.NextPageToken == "" {
85048			return nil
85049		}
85050		c.PageToken(x.NextPageToken)
85051	}
85052}
85053
85054// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
85055
85056type InstanceGroupManagersListPerInstanceConfigsCall struct {
85057	s                    *Service
85058	project              string
85059	zone                 string
85060	instanceGroupManager string
85061	urlParams_           gensupport.URLParams
85062	ctx_                 context.Context
85063	header_              http.Header
85064}
85065
85066// ListPerInstanceConfigs: Lists all of the per-instance configs defined
85067// for the managed instance group. The orderBy query parameter is not
85068// supported.
85069//
85070// - instanceGroupManager: The name of the managed instance group. It
85071//   should conform to RFC1035.
85072// - project: Project ID for this request.
85073// - zone: The name of the zone where the managed instance group is
85074//   located. It should conform to RFC1035.
85075func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
85076	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85077	c.project = project
85078	c.zone = zone
85079	c.instanceGroupManager = instanceGroupManager
85080	return c
85081}
85082
85083// Filter sets the optional parameter "filter": A filter expression that
85084// filters resources listed in the response. The expression must specify
85085// the field name, a comparison operator, and the value that you want to
85086// use for filtering. The value must be a string, a number, or a
85087// boolean. The comparison operator must be either `=`, `!=`, `>`, or
85088// `<`.
85089//
85090// For example, if you are filtering Compute Engine instances, you can
85091// exclude instances named `example-instance` by specifying `name !=
85092// example-instance`.
85093//
85094// You can also filter nested fields. For example, you could specify
85095// `scheduling.automaticRestart = false` to include instances only if
85096// they are not scheduled for automatic restarts. You can use filtering
85097// on nested fields to filter based on resource labels.
85098//
85099// To filter on multiple expressions, provide each separate expression
85100// within parentheses. For example: ``` (scheduling.automaticRestart =
85101// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
85102// is an `AND` expression. However, you can include `AND` and `OR`
85103// expressions explicitly. For example: ``` (cpuPlatform = "Intel
85104// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
85105// (scheduling.automaticRestart = true) ```
85106func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
85107	c.urlParams_.Set("filter", filter)
85108	return c
85109}
85110
85111// MaxResults sets the optional parameter "maxResults": The maximum
85112// number of results per page that should be returned. If the number of
85113// available results is larger than `maxResults`, Compute Engine returns
85114// a `nextPageToken` that can be used to get the next page of results in
85115// subsequent list requests. Acceptable values are `0` to `500`,
85116// inclusive. (Default: `500`)
85117func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
85118	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85119	return c
85120}
85121
85122// OrderBy sets the optional parameter "orderBy": Sorts list results by
85123// a certain order. By default, results are returned in alphanumerical
85124// order based on the resource name.
85125//
85126// You can also sort results in descending order based on the creation
85127// timestamp using `orderBy="creationTimestamp desc". This sorts
85128// results based on the `creationTimestamp` field in reverse
85129// chronological order (newest result first). Use this to sort resources
85130// like operations so that the newest operation is returned
85131// first.
85132//
85133// Currently, only sorting by `name` or `creationTimestamp desc` is
85134// supported.
85135func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
85136	c.urlParams_.Set("orderBy", orderBy)
85137	return c
85138}
85139
85140// PageToken sets the optional parameter "pageToken": Specifies a page
85141// token to use. Set `pageToken` to the `nextPageToken` returned by a
85142// previous list request to get the next page of results.
85143func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
85144	c.urlParams_.Set("pageToken", pageToken)
85145	return c
85146}
85147
85148// ReturnPartialSuccess sets the optional parameter
85149// "returnPartialSuccess": Opt-in for partial success behavior which
85150// provides partial results in case of failure. The default value is
85151// false.
85152func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListPerInstanceConfigsCall {
85153	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
85154	return c
85155}
85156
85157// Fields allows partial responses to be retrieved. See
85158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85159// for more information.
85160func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
85161	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85162	return c
85163}
85164
85165// Context sets the context to be used in this call's Do method. Any
85166// pending HTTP request will be aborted if the provided context is
85167// canceled.
85168func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
85169	c.ctx_ = ctx
85170	return c
85171}
85172
85173// Header returns an http.Header that can be modified by the caller to
85174// add HTTP headers to the request.
85175func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
85176	if c.header_ == nil {
85177		c.header_ = make(http.Header)
85178	}
85179	return c.header_
85180}
85181
85182func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
85183	reqHeaders := make(http.Header)
85184	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85185	for k, v := range c.header_ {
85186		reqHeaders[k] = v
85187	}
85188	reqHeaders.Set("User-Agent", c.s.userAgent())
85189	var body io.Reader = nil
85190	c.urlParams_.Set("alt", alt)
85191	c.urlParams_.Set("prettyPrint", "false")
85192	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
85193	urls += "?" + c.urlParams_.Encode()
85194	req, err := http.NewRequest("POST", urls, body)
85195	if err != nil {
85196		return nil, err
85197	}
85198	req.Header = reqHeaders
85199	googleapi.Expand(req.URL, map[string]string{
85200		"project":              c.project,
85201		"zone":                 c.zone,
85202		"instanceGroupManager": c.instanceGroupManager,
85203	})
85204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85205}
85206
85207// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
85208// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
85209// error will be non-nil. Any non-2xx status code is an error. Response
85210// headers are in either
85211// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
85212//  or (if a response was returned at all) in
85213// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
85214// whether the returned error was because http.StatusNotModified was
85215// returned.
85216func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
85217	gensupport.SetOptions(c.urlParams_, opts...)
85218	res, err := c.doRequest("json")
85219	if res != nil && res.StatusCode == http.StatusNotModified {
85220		if res.Body != nil {
85221			res.Body.Close()
85222		}
85223		return nil, &googleapi.Error{
85224			Code:   res.StatusCode,
85225			Header: res.Header,
85226		}
85227	}
85228	if err != nil {
85229		return nil, err
85230	}
85231	defer googleapi.CloseBody(res)
85232	if err := googleapi.CheckResponse(res); err != nil {
85233		return nil, err
85234	}
85235	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
85236		ServerResponse: googleapi.ServerResponse{
85237			Header:         res.Header,
85238			HTTPStatusCode: res.StatusCode,
85239		},
85240	}
85241	target := &ret
85242	if err := gensupport.DecodeResponse(target, res); err != nil {
85243		return nil, err
85244	}
85245	return ret, nil
85246	// {
85247	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
85248	//   "httpMethod": "POST",
85249	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
85250	//   "parameterOrder": [
85251	//     "project",
85252	//     "zone",
85253	//     "instanceGroupManager"
85254	//   ],
85255	//   "parameters": {
85256	//     "filter": {
85257	//       "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) ```",
85258	//       "location": "query",
85259	//       "type": "string"
85260	//     },
85261	//     "instanceGroupManager": {
85262	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
85263	//       "location": "path",
85264	//       "required": true,
85265	//       "type": "string"
85266	//     },
85267	//     "maxResults": {
85268	//       "default": "500",
85269	//       "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`)",
85270	//       "format": "uint32",
85271	//       "location": "query",
85272	//       "minimum": "0",
85273	//       "type": "integer"
85274	//     },
85275	//     "orderBy": {
85276	//       "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.",
85277	//       "location": "query",
85278	//       "type": "string"
85279	//     },
85280	//     "pageToken": {
85281	//       "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.",
85282	//       "location": "query",
85283	//       "type": "string"
85284	//     },
85285	//     "project": {
85286	//       "description": "Project ID for this request.",
85287	//       "location": "path",
85288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85289	//       "required": true,
85290	//       "type": "string"
85291	//     },
85292	//     "returnPartialSuccess": {
85293	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
85294	//       "location": "query",
85295	//       "type": "boolean"
85296	//     },
85297	//     "zone": {
85298	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
85299	//       "location": "path",
85300	//       "required": true,
85301	//       "type": "string"
85302	//     }
85303	//   },
85304	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
85305	//   "response": {
85306	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
85307	//   },
85308	//   "scopes": [
85309	//     "https://www.googleapis.com/auth/cloud-platform",
85310	//     "https://www.googleapis.com/auth/compute",
85311	//     "https://www.googleapis.com/auth/compute.readonly"
85312	//   ]
85313	// }
85314
85315}
85316
85317// Pages invokes f for each page of results.
85318// A non-nil error returned from f will halt the iteration.
85319// The provided context supersedes any context provided to the Context method.
85320func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
85321	c.ctx_ = ctx
85322	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85323	for {
85324		x, err := c.Do()
85325		if err != nil {
85326			return err
85327		}
85328		if err := f(x); err != nil {
85329			return err
85330		}
85331		if x.NextPageToken == "" {
85332			return nil
85333		}
85334		c.PageToken(x.NextPageToken)
85335	}
85336}
85337
85338// method id "compute.instanceGroupManagers.patch":
85339
85340type InstanceGroupManagersPatchCall struct {
85341	s                    *Service
85342	project              string
85343	zone                 string
85344	instanceGroupManager string
85345	instancegroupmanager *InstanceGroupManager
85346	urlParams_           gensupport.URLParams
85347	ctx_                 context.Context
85348	header_              http.Header
85349}
85350
85351// Patch: Updates a managed instance group using the information that
85352// you specify in the request. This operation is marked as DONE when the
85353// group is patched even if the instances in the group are still in the
85354// process of being patched. You must separately verify the status of
85355// the individual instances with the listManagedInstances method. This
85356// method supports PATCH semantics and uses the JSON merge patch format
85357// and processing rules.
85358//
85359// - instanceGroupManager: The name of the instance group manager.
85360// - project: Project ID for this request.
85361// - zone: The name of the zone where you want to create the managed
85362//   instance group.
85363func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
85364	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85365	c.project = project
85366	c.zone = zone
85367	c.instanceGroupManager = instanceGroupManager
85368	c.instancegroupmanager = instancegroupmanager
85369	return c
85370}
85371
85372// RequestId sets the optional parameter "requestId": An optional
85373// request ID to identify requests. Specify a unique request ID so that
85374// if you must retry your request, the server will know to ignore the
85375// request if it has already been completed.
85376//
85377// For example, consider a situation where you make an initial request
85378// and the request times out. If you make the request again with the
85379// same request ID, the server can check if original operation with the
85380// same request ID was received, and if so, will ignore the second
85381// request. This prevents clients from accidentally creating duplicate
85382// commitments.
85383//
85384// The request ID must be a valid UUID with the exception that zero UUID
85385// is not supported (00000000-0000-0000-0000-000000000000).
85386func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
85387	c.urlParams_.Set("requestId", requestId)
85388	return c
85389}
85390
85391// Fields allows partial responses to be retrieved. See
85392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85393// for more information.
85394func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
85395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85396	return c
85397}
85398
85399// Context sets the context to be used in this call's Do method. Any
85400// pending HTTP request will be aborted if the provided context is
85401// canceled.
85402func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
85403	c.ctx_ = ctx
85404	return c
85405}
85406
85407// Header returns an http.Header that can be modified by the caller to
85408// add HTTP headers to the request.
85409func (c *InstanceGroupManagersPatchCall) Header() http.Header {
85410	if c.header_ == nil {
85411		c.header_ = make(http.Header)
85412	}
85413	return c.header_
85414}
85415
85416func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
85417	reqHeaders := make(http.Header)
85418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85419	for k, v := range c.header_ {
85420		reqHeaders[k] = v
85421	}
85422	reqHeaders.Set("User-Agent", c.s.userAgent())
85423	var body io.Reader = nil
85424	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
85425	if err != nil {
85426		return nil, err
85427	}
85428	reqHeaders.Set("Content-Type", "application/json")
85429	c.urlParams_.Set("alt", alt)
85430	c.urlParams_.Set("prettyPrint", "false")
85431	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
85432	urls += "?" + c.urlParams_.Encode()
85433	req, err := http.NewRequest("PATCH", urls, body)
85434	if err != nil {
85435		return nil, err
85436	}
85437	req.Header = reqHeaders
85438	googleapi.Expand(req.URL, map[string]string{
85439		"project":              c.project,
85440		"zone":                 c.zone,
85441		"instanceGroupManager": c.instanceGroupManager,
85442	})
85443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85444}
85445
85446// Do executes the "compute.instanceGroupManagers.patch" call.
85447// Exactly one of *Operation or error will be non-nil. Any non-2xx
85448// status code is an error. Response headers are in either
85449// *Operation.ServerResponse.Header or (if a response was returned at
85450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85451// to check whether the returned error was because
85452// http.StatusNotModified was returned.
85453func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85454	gensupport.SetOptions(c.urlParams_, opts...)
85455	res, err := c.doRequest("json")
85456	if res != nil && res.StatusCode == http.StatusNotModified {
85457		if res.Body != nil {
85458			res.Body.Close()
85459		}
85460		return nil, &googleapi.Error{
85461			Code:   res.StatusCode,
85462			Header: res.Header,
85463		}
85464	}
85465	if err != nil {
85466		return nil, err
85467	}
85468	defer googleapi.CloseBody(res)
85469	if err := googleapi.CheckResponse(res); err != nil {
85470		return nil, err
85471	}
85472	ret := &Operation{
85473		ServerResponse: googleapi.ServerResponse{
85474			Header:         res.Header,
85475			HTTPStatusCode: res.StatusCode,
85476		},
85477	}
85478	target := &ret
85479	if err := gensupport.DecodeResponse(target, res); err != nil {
85480		return nil, err
85481	}
85482	return ret, nil
85483	// {
85484	//   "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.",
85485	//   "httpMethod": "PATCH",
85486	//   "id": "compute.instanceGroupManagers.patch",
85487	//   "parameterOrder": [
85488	//     "project",
85489	//     "zone",
85490	//     "instanceGroupManager"
85491	//   ],
85492	//   "parameters": {
85493	//     "instanceGroupManager": {
85494	//       "description": "The name of the instance group manager.",
85495	//       "location": "path",
85496	//       "required": true,
85497	//       "type": "string"
85498	//     },
85499	//     "project": {
85500	//       "description": "Project ID for this request.",
85501	//       "location": "path",
85502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85503	//       "required": true,
85504	//       "type": "string"
85505	//     },
85506	//     "requestId": {
85507	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85508	//       "location": "query",
85509	//       "type": "string"
85510	//     },
85511	//     "zone": {
85512	//       "description": "The name of the zone where you want to create the managed instance group.",
85513	//       "location": "path",
85514	//       "required": true,
85515	//       "type": "string"
85516	//     }
85517	//   },
85518	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
85519	//   "request": {
85520	//     "$ref": "InstanceGroupManager"
85521	//   },
85522	//   "response": {
85523	//     "$ref": "Operation"
85524	//   },
85525	//   "scopes": [
85526	//     "https://www.googleapis.com/auth/cloud-platform",
85527	//     "https://www.googleapis.com/auth/compute"
85528	//   ]
85529	// }
85530
85531}
85532
85533// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
85534
85535type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
85536	s                                               *Service
85537	project                                         string
85538	zone                                            string
85539	instanceGroupManager                            string
85540	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
85541	urlParams_                                      gensupport.URLParams
85542	ctx_                                            context.Context
85543	header_                                         http.Header
85544}
85545
85546// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
85547// the managed instance group. perInstanceConfig.name serves as a key
85548// used to distinguish whether to perform insert or patch.
85549//
85550// - instanceGroupManager: The name of the managed instance group. It
85551//   should conform to RFC1035.
85552// - project: Project ID for this request.
85553// - zone: The name of the zone where the managed instance group is
85554//   located. It should conform to RFC1035.
85555func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
85556	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85557	c.project = project
85558	c.zone = zone
85559	c.instanceGroupManager = instanceGroupManager
85560	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
85561	return c
85562}
85563
85564// RequestId sets the optional parameter "requestId": An optional
85565// request ID to identify requests. Specify a unique request ID so that
85566// if you must retry your request, the server will know to ignore the
85567// request if it has already been completed.
85568//
85569// For example, consider a situation where you make an initial request
85570// and the request times out. If you make the request again with the
85571// same request ID, the server can check if original operation with the
85572// same request ID was received, and if so, will ignore the second
85573// request. This prevents clients from accidentally creating duplicate
85574// commitments.
85575//
85576// The request ID must be a valid UUID with the exception that zero UUID
85577// is not supported (00000000-0000-0000-0000-000000000000).
85578func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
85579	c.urlParams_.Set("requestId", requestId)
85580	return c
85581}
85582
85583// Fields allows partial responses to be retrieved. See
85584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85585// for more information.
85586func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
85587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85588	return c
85589}
85590
85591// Context sets the context to be used in this call's Do method. Any
85592// pending HTTP request will be aborted if the provided context is
85593// canceled.
85594func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
85595	c.ctx_ = ctx
85596	return c
85597}
85598
85599// Header returns an http.Header that can be modified by the caller to
85600// add HTTP headers to the request.
85601func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
85602	if c.header_ == nil {
85603		c.header_ = make(http.Header)
85604	}
85605	return c.header_
85606}
85607
85608func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
85609	reqHeaders := make(http.Header)
85610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85611	for k, v := range c.header_ {
85612		reqHeaders[k] = v
85613	}
85614	reqHeaders.Set("User-Agent", c.s.userAgent())
85615	var body io.Reader = nil
85616	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
85617	if err != nil {
85618		return nil, err
85619	}
85620	reqHeaders.Set("Content-Type", "application/json")
85621	c.urlParams_.Set("alt", alt)
85622	c.urlParams_.Set("prettyPrint", "false")
85623	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
85624	urls += "?" + c.urlParams_.Encode()
85625	req, err := http.NewRequest("POST", urls, body)
85626	if err != nil {
85627		return nil, err
85628	}
85629	req.Header = reqHeaders
85630	googleapi.Expand(req.URL, map[string]string{
85631		"project":              c.project,
85632		"zone":                 c.zone,
85633		"instanceGroupManager": c.instanceGroupManager,
85634	})
85635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85636}
85637
85638// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
85639// Exactly one of *Operation or error will be non-nil. Any non-2xx
85640// status code is an error. Response headers are in either
85641// *Operation.ServerResponse.Header or (if a response was returned at
85642// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85643// to check whether the returned error was because
85644// http.StatusNotModified was returned.
85645func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85646	gensupport.SetOptions(c.urlParams_, opts...)
85647	res, err := c.doRequest("json")
85648	if res != nil && res.StatusCode == http.StatusNotModified {
85649		if res.Body != nil {
85650			res.Body.Close()
85651		}
85652		return nil, &googleapi.Error{
85653			Code:   res.StatusCode,
85654			Header: res.Header,
85655		}
85656	}
85657	if err != nil {
85658		return nil, err
85659	}
85660	defer googleapi.CloseBody(res)
85661	if err := googleapi.CheckResponse(res); err != nil {
85662		return nil, err
85663	}
85664	ret := &Operation{
85665		ServerResponse: googleapi.ServerResponse{
85666			Header:         res.Header,
85667			HTTPStatusCode: res.StatusCode,
85668		},
85669	}
85670	target := &ret
85671	if err := gensupport.DecodeResponse(target, res); err != nil {
85672		return nil, err
85673	}
85674	return ret, nil
85675	// {
85676	//   "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.",
85677	//   "httpMethod": "POST",
85678	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
85679	//   "parameterOrder": [
85680	//     "project",
85681	//     "zone",
85682	//     "instanceGroupManager"
85683	//   ],
85684	//   "parameters": {
85685	//     "instanceGroupManager": {
85686	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
85687	//       "location": "path",
85688	//       "required": true,
85689	//       "type": "string"
85690	//     },
85691	//     "project": {
85692	//       "description": "Project ID for this request.",
85693	//       "location": "path",
85694	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85695	//       "required": true,
85696	//       "type": "string"
85697	//     },
85698	//     "requestId": {
85699	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85700	//       "location": "query",
85701	//       "type": "string"
85702	//     },
85703	//     "zone": {
85704	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
85705	//       "location": "path",
85706	//       "required": true,
85707	//       "type": "string"
85708	//     }
85709	//   },
85710	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
85711	//   "request": {
85712	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
85713	//   },
85714	//   "response": {
85715	//     "$ref": "Operation"
85716	//   },
85717	//   "scopes": [
85718	//     "https://www.googleapis.com/auth/cloud-platform",
85719	//     "https://www.googleapis.com/auth/compute"
85720	//   ]
85721	// }
85722
85723}
85724
85725// method id "compute.instanceGroupManagers.recreateInstances":
85726
85727type InstanceGroupManagersRecreateInstancesCall struct {
85728	s                                             *Service
85729	project                                       string
85730	zone                                          string
85731	instanceGroupManager                          string
85732	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
85733	urlParams_                                    gensupport.URLParams
85734	ctx_                                          context.Context
85735	header_                                       http.Header
85736}
85737
85738// RecreateInstances: Flags the specified VM instances in the managed
85739// instance group to be immediately recreated. Each instance is
85740// recreated using the group's current configuration. This operation is
85741// marked as DONE when the flag is set even if the instances have not
85742// yet been recreated. You must separately verify the status of each
85743// instance by checking its currentAction field; for more information,
85744// see Checking the status of managed instances.
85745//
85746// If the group is part of a backend service that has enabled connection
85747// draining, it can take up to 60 seconds after the connection draining
85748// duration has elapsed before the VM instance is removed or
85749// deleted.
85750//
85751// You can specify a maximum of 1000 instances with this method per
85752// request.
85753//
85754// - instanceGroupManager: The name of the managed instance group.
85755// - project: Project ID for this request.
85756// - zone: The name of the zone where the managed instance group is
85757//   located.
85758func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
85759	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85760	c.project = project
85761	c.zone = zone
85762	c.instanceGroupManager = instanceGroupManager
85763	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
85764	return c
85765}
85766
85767// RequestId sets the optional parameter "requestId": An optional
85768// request ID to identify requests. Specify a unique request ID so that
85769// if you must retry your request, the server will know to ignore the
85770// request if it has already been completed.
85771//
85772// For example, consider a situation where you make an initial request
85773// and the request times out. If you make the request again with the
85774// same request ID, the server can check if original operation with the
85775// same request ID was received, and if so, will ignore the second
85776// request. This prevents clients from accidentally creating duplicate
85777// commitments.
85778//
85779// The request ID must be a valid UUID with the exception that zero UUID
85780// is not supported (00000000-0000-0000-0000-000000000000).
85781func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
85782	c.urlParams_.Set("requestId", requestId)
85783	return c
85784}
85785
85786// Fields allows partial responses to be retrieved. See
85787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85788// for more information.
85789func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
85790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85791	return c
85792}
85793
85794// Context sets the context to be used in this call's Do method. Any
85795// pending HTTP request will be aborted if the provided context is
85796// canceled.
85797func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
85798	c.ctx_ = ctx
85799	return c
85800}
85801
85802// Header returns an http.Header that can be modified by the caller to
85803// add HTTP headers to the request.
85804func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
85805	if c.header_ == nil {
85806		c.header_ = make(http.Header)
85807	}
85808	return c.header_
85809}
85810
85811func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
85812	reqHeaders := make(http.Header)
85813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85814	for k, v := range c.header_ {
85815		reqHeaders[k] = v
85816	}
85817	reqHeaders.Set("User-Agent", c.s.userAgent())
85818	var body io.Reader = nil
85819	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
85820	if err != nil {
85821		return nil, err
85822	}
85823	reqHeaders.Set("Content-Type", "application/json")
85824	c.urlParams_.Set("alt", alt)
85825	c.urlParams_.Set("prettyPrint", "false")
85826	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
85827	urls += "?" + c.urlParams_.Encode()
85828	req, err := http.NewRequest("POST", urls, body)
85829	if err != nil {
85830		return nil, err
85831	}
85832	req.Header = reqHeaders
85833	googleapi.Expand(req.URL, map[string]string{
85834		"project":              c.project,
85835		"zone":                 c.zone,
85836		"instanceGroupManager": c.instanceGroupManager,
85837	})
85838	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85839}
85840
85841// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
85842// Exactly one of *Operation or error will be non-nil. Any non-2xx
85843// status code is an error. Response headers are in either
85844// *Operation.ServerResponse.Header or (if a response was returned at
85845// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85846// to check whether the returned error was because
85847// http.StatusNotModified was returned.
85848func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85849	gensupport.SetOptions(c.urlParams_, opts...)
85850	res, err := c.doRequest("json")
85851	if res != nil && res.StatusCode == http.StatusNotModified {
85852		if res.Body != nil {
85853			res.Body.Close()
85854		}
85855		return nil, &googleapi.Error{
85856			Code:   res.StatusCode,
85857			Header: res.Header,
85858		}
85859	}
85860	if err != nil {
85861		return nil, err
85862	}
85863	defer googleapi.CloseBody(res)
85864	if err := googleapi.CheckResponse(res); err != nil {
85865		return nil, err
85866	}
85867	ret := &Operation{
85868		ServerResponse: googleapi.ServerResponse{
85869			Header:         res.Header,
85870			HTTPStatusCode: res.StatusCode,
85871		},
85872	}
85873	target := &ret
85874	if err := gensupport.DecodeResponse(target, res); err != nil {
85875		return nil, err
85876	}
85877	return ret, nil
85878	// {
85879	//   "description": "Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. 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 each instance by checking its currentAction field; for more information, see Checking the status of managed 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 has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
85880	//   "httpMethod": "POST",
85881	//   "id": "compute.instanceGroupManagers.recreateInstances",
85882	//   "parameterOrder": [
85883	//     "project",
85884	//     "zone",
85885	//     "instanceGroupManager"
85886	//   ],
85887	//   "parameters": {
85888	//     "instanceGroupManager": {
85889	//       "description": "The name of the managed instance group.",
85890	//       "location": "path",
85891	//       "required": true,
85892	//       "type": "string"
85893	//     },
85894	//     "project": {
85895	//       "description": "Project ID for this request.",
85896	//       "location": "path",
85897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85898	//       "required": true,
85899	//       "type": "string"
85900	//     },
85901	//     "requestId": {
85902	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85903	//       "location": "query",
85904	//       "type": "string"
85905	//     },
85906	//     "zone": {
85907	//       "description": "The name of the zone where the managed instance group is located.",
85908	//       "location": "path",
85909	//       "required": true,
85910	//       "type": "string"
85911	//     }
85912	//   },
85913	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
85914	//   "request": {
85915	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
85916	//   },
85917	//   "response": {
85918	//     "$ref": "Operation"
85919	//   },
85920	//   "scopes": [
85921	//     "https://www.googleapis.com/auth/cloud-platform",
85922	//     "https://www.googleapis.com/auth/compute"
85923	//   ]
85924	// }
85925
85926}
85927
85928// method id "compute.instanceGroupManagers.resize":
85929
85930type InstanceGroupManagersResizeCall struct {
85931	s                    *Service
85932	project              string
85933	zone                 string
85934	instanceGroupManager string
85935	urlParams_           gensupport.URLParams
85936	ctx_                 context.Context
85937	header_              http.Header
85938}
85939
85940// Resize: Resizes the managed instance group. If you increase the size,
85941// the group creates new instances using the current instance template.
85942// If you decrease the size, the group deletes instances. The resize
85943// operation is marked DONE when the resize actions are scheduled even
85944// if the group has not yet added or deleted any instances. You must
85945// separately verify the status of the creating or deleting actions with
85946// the listmanagedinstances method.
85947//
85948// When resizing down, the instance group arbitrarily chooses the order
85949// in which VMs are deleted. The group takes into account some VM
85950// attributes when making the selection including:
85951//
85952// + The status of the VM instance. + The health of the VM instance. +
85953// The instance template version the VM is based on. + For regional
85954// managed instance groups, the location of the VM instance.
85955//
85956// This list is subject to change.
85957//
85958// If the group is part of a backend service that has enabled connection
85959// draining, it can take up to 60 seconds after the connection draining
85960// duration has elapsed before the VM instance is removed or deleted.
85961//
85962// - instanceGroupManager: The name of the managed instance group.
85963// - project: Project ID for this request.
85964// - size: The number of running instances that the managed instance
85965//   group should maintain at any given time. The group automatically
85966//   adds or removes instances to maintain the number of instances
85967//   specified by this parameter.
85968// - zone: The name of the zone where the managed instance group is
85969//   located.
85970func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
85971	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85972	c.project = project
85973	c.zone = zone
85974	c.instanceGroupManager = instanceGroupManager
85975	c.urlParams_.Set("size", fmt.Sprint(size))
85976	return c
85977}
85978
85979// RequestId sets the optional parameter "requestId": An optional
85980// request ID to identify requests. Specify a unique request ID so that
85981// if you must retry your request, the server will know to ignore the
85982// request if it has already been completed.
85983//
85984// For example, consider a situation where you make an initial request
85985// and the request times out. If you make the request again with the
85986// same request ID, the server can check if original operation with the
85987// same request ID was received, and if so, will ignore the second
85988// request. This prevents clients from accidentally creating duplicate
85989// commitments.
85990//
85991// The request ID must be a valid UUID with the exception that zero UUID
85992// is not supported (00000000-0000-0000-0000-000000000000).
85993func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
85994	c.urlParams_.Set("requestId", requestId)
85995	return c
85996}
85997
85998// Fields allows partial responses to be retrieved. See
85999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86000// for more information.
86001func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
86002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86003	return c
86004}
86005
86006// Context sets the context to be used in this call's Do method. Any
86007// pending HTTP request will be aborted if the provided context is
86008// canceled.
86009func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
86010	c.ctx_ = ctx
86011	return c
86012}
86013
86014// Header returns an http.Header that can be modified by the caller to
86015// add HTTP headers to the request.
86016func (c *InstanceGroupManagersResizeCall) Header() http.Header {
86017	if c.header_ == nil {
86018		c.header_ = make(http.Header)
86019	}
86020	return c.header_
86021}
86022
86023func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
86024	reqHeaders := make(http.Header)
86025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86026	for k, v := range c.header_ {
86027		reqHeaders[k] = v
86028	}
86029	reqHeaders.Set("User-Agent", c.s.userAgent())
86030	var body io.Reader = nil
86031	c.urlParams_.Set("alt", alt)
86032	c.urlParams_.Set("prettyPrint", "false")
86033	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
86034	urls += "?" + c.urlParams_.Encode()
86035	req, err := http.NewRequest("POST", urls, body)
86036	if err != nil {
86037		return nil, err
86038	}
86039	req.Header = reqHeaders
86040	googleapi.Expand(req.URL, map[string]string{
86041		"project":              c.project,
86042		"zone":                 c.zone,
86043		"instanceGroupManager": c.instanceGroupManager,
86044	})
86045	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86046}
86047
86048// Do executes the "compute.instanceGroupManagers.resize" call.
86049// Exactly one of *Operation or error will be non-nil. Any non-2xx
86050// status code is an error. Response headers are in either
86051// *Operation.ServerResponse.Header or (if a response was returned at
86052// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86053// to check whether the returned error was because
86054// http.StatusNotModified was returned.
86055func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86056	gensupport.SetOptions(c.urlParams_, opts...)
86057	res, err := c.doRequest("json")
86058	if res != nil && res.StatusCode == http.StatusNotModified {
86059		if res.Body != nil {
86060			res.Body.Close()
86061		}
86062		return nil, &googleapi.Error{
86063			Code:   res.StatusCode,
86064			Header: res.Header,
86065		}
86066	}
86067	if err != nil {
86068		return nil, err
86069	}
86070	defer googleapi.CloseBody(res)
86071	if err := googleapi.CheckResponse(res); err != nil {
86072		return nil, err
86073	}
86074	ret := &Operation{
86075		ServerResponse: googleapi.ServerResponse{
86076			Header:         res.Header,
86077			HTTPStatusCode: res.StatusCode,
86078		},
86079	}
86080	target := &ret
86081	if err := gensupport.DecodeResponse(target, res); err != nil {
86082		return nil, err
86083	}
86084	return ret, nil
86085	// {
86086	//   "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.",
86087	//   "httpMethod": "POST",
86088	//   "id": "compute.instanceGroupManagers.resize",
86089	//   "parameterOrder": [
86090	//     "project",
86091	//     "zone",
86092	//     "instanceGroupManager",
86093	//     "size"
86094	//   ],
86095	//   "parameters": {
86096	//     "instanceGroupManager": {
86097	//       "description": "The name of the managed instance group.",
86098	//       "location": "path",
86099	//       "required": true,
86100	//       "type": "string"
86101	//     },
86102	//     "project": {
86103	//       "description": "Project ID for this request.",
86104	//       "location": "path",
86105	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86106	//       "required": true,
86107	//       "type": "string"
86108	//     },
86109	//     "requestId": {
86110	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86111	//       "location": "query",
86112	//       "type": "string"
86113	//     },
86114	//     "size": {
86115	//       "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.",
86116	//       "format": "int32",
86117	//       "location": "query",
86118	//       "required": true,
86119	//       "type": "integer"
86120	//     },
86121	//     "zone": {
86122	//       "description": "The name of the zone where the managed instance group is located.",
86123	//       "location": "path",
86124	//       "required": true,
86125	//       "type": "string"
86126	//     }
86127	//   },
86128	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
86129	//   "response": {
86130	//     "$ref": "Operation"
86131	//   },
86132	//   "scopes": [
86133	//     "https://www.googleapis.com/auth/cloud-platform",
86134	//     "https://www.googleapis.com/auth/compute"
86135	//   ]
86136	// }
86137
86138}
86139
86140// method id "compute.instanceGroupManagers.resizeAdvanced":
86141
86142type InstanceGroupManagersResizeAdvancedCall struct {
86143	s                                          *Service
86144	project                                    string
86145	zone                                       string
86146	instanceGroupManager                       string
86147	instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest
86148	urlParams_                                 gensupport.URLParams
86149	ctx_                                       context.Context
86150	header_                                    http.Header
86151}
86152
86153// ResizeAdvanced: Resizes the managed instance group with advanced
86154// configuration options like disabling creation retries. This is an
86155// extended version of the resize method.
86156//
86157// If you increase the size of the instance group, the group creates new
86158// instances using the current instance template. If you decrease the
86159// size, the group deletes instances. The resize operation is marked
86160// DONE when the resize actions are scheduled even if the group has not
86161// yet added or deleted any instances. You must separately verify the
86162// status of the creating, creatingWithoutRetries, or deleting actions
86163// with the get or listmanagedinstances method.
86164//
86165// If the group is part of a backend service that has enabled connection
86166// draining, it can take up to 60 seconds after the connection draining
86167// duration has elapsed before the VM instance is removed or deleted.
86168//
86169// - instanceGroupManager: The name of the managed instance group.
86170// - project: Project ID for this request.
86171// - zone: The name of the zone where the managed instance group is
86172//   located.
86173func (r *InstanceGroupManagersService) ResizeAdvanced(project string, zone string, instanceGroupManager string, instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest) *InstanceGroupManagersResizeAdvancedCall {
86174	c := &InstanceGroupManagersResizeAdvancedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86175	c.project = project
86176	c.zone = zone
86177	c.instanceGroupManager = instanceGroupManager
86178	c.instancegroupmanagersresizeadvancedrequest = instancegroupmanagersresizeadvancedrequest
86179	return c
86180}
86181
86182// RequestId sets the optional parameter "requestId": An optional
86183// request ID to identify requests. Specify a unique request ID so that
86184// if you must retry your request, the server will know to ignore the
86185// request if it has already been completed.
86186//
86187// For example, consider a situation where you make an initial request
86188// and the request times out. If you make the request again with the
86189// same request ID, the server can check if original operation with the
86190// same request ID was received, and if so, will ignore the second
86191// request. This prevents clients from accidentally creating duplicate
86192// commitments.
86193//
86194// The request ID must be a valid UUID with the exception that zero UUID
86195// is not supported (00000000-0000-0000-0000-000000000000).
86196func (c *InstanceGroupManagersResizeAdvancedCall) RequestId(requestId string) *InstanceGroupManagersResizeAdvancedCall {
86197	c.urlParams_.Set("requestId", requestId)
86198	return c
86199}
86200
86201// Fields allows partial responses to be retrieved. See
86202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86203// for more information.
86204func (c *InstanceGroupManagersResizeAdvancedCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeAdvancedCall {
86205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86206	return c
86207}
86208
86209// Context sets the context to be used in this call's Do method. Any
86210// pending HTTP request will be aborted if the provided context is
86211// canceled.
86212func (c *InstanceGroupManagersResizeAdvancedCall) Context(ctx context.Context) *InstanceGroupManagersResizeAdvancedCall {
86213	c.ctx_ = ctx
86214	return c
86215}
86216
86217// Header returns an http.Header that can be modified by the caller to
86218// add HTTP headers to the request.
86219func (c *InstanceGroupManagersResizeAdvancedCall) Header() http.Header {
86220	if c.header_ == nil {
86221		c.header_ = make(http.Header)
86222	}
86223	return c.header_
86224}
86225
86226func (c *InstanceGroupManagersResizeAdvancedCall) doRequest(alt string) (*http.Response, error) {
86227	reqHeaders := make(http.Header)
86228	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86229	for k, v := range c.header_ {
86230		reqHeaders[k] = v
86231	}
86232	reqHeaders.Set("User-Agent", c.s.userAgent())
86233	var body io.Reader = nil
86234	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersresizeadvancedrequest)
86235	if err != nil {
86236		return nil, err
86237	}
86238	reqHeaders.Set("Content-Type", "application/json")
86239	c.urlParams_.Set("alt", alt)
86240	c.urlParams_.Set("prettyPrint", "false")
86241	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced")
86242	urls += "?" + c.urlParams_.Encode()
86243	req, err := http.NewRequest("POST", urls, body)
86244	if err != nil {
86245		return nil, err
86246	}
86247	req.Header = reqHeaders
86248	googleapi.Expand(req.URL, map[string]string{
86249		"project":              c.project,
86250		"zone":                 c.zone,
86251		"instanceGroupManager": c.instanceGroupManager,
86252	})
86253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86254}
86255
86256// Do executes the "compute.instanceGroupManagers.resizeAdvanced" call.
86257// Exactly one of *Operation or error will be non-nil. Any non-2xx
86258// status code is an error. Response headers are in either
86259// *Operation.ServerResponse.Header or (if a response was returned at
86260// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86261// to check whether the returned error was because
86262// http.StatusNotModified was returned.
86263func (c *InstanceGroupManagersResizeAdvancedCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86264	gensupport.SetOptions(c.urlParams_, opts...)
86265	res, err := c.doRequest("json")
86266	if res != nil && res.StatusCode == http.StatusNotModified {
86267		if res.Body != nil {
86268			res.Body.Close()
86269		}
86270		return nil, &googleapi.Error{
86271			Code:   res.StatusCode,
86272			Header: res.Header,
86273		}
86274	}
86275	if err != nil {
86276		return nil, err
86277	}
86278	defer googleapi.CloseBody(res)
86279	if err := googleapi.CheckResponse(res); err != nil {
86280		return nil, err
86281	}
86282	ret := &Operation{
86283		ServerResponse: googleapi.ServerResponse{
86284			Header:         res.Header,
86285			HTTPStatusCode: res.StatusCode,
86286		},
86287	}
86288	target := &ret
86289	if err := gensupport.DecodeResponse(target, res); err != nil {
86290		return nil, err
86291	}
86292	return ret, nil
86293	// {
86294	//   "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.",
86295	//   "httpMethod": "POST",
86296	//   "id": "compute.instanceGroupManagers.resizeAdvanced",
86297	//   "parameterOrder": [
86298	//     "project",
86299	//     "zone",
86300	//     "instanceGroupManager"
86301	//   ],
86302	//   "parameters": {
86303	//     "instanceGroupManager": {
86304	//       "description": "The name of the managed instance group.",
86305	//       "location": "path",
86306	//       "required": true,
86307	//       "type": "string"
86308	//     },
86309	//     "project": {
86310	//       "description": "Project ID for this request.",
86311	//       "location": "path",
86312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86313	//       "required": true,
86314	//       "type": "string"
86315	//     },
86316	//     "requestId": {
86317	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86318	//       "location": "query",
86319	//       "type": "string"
86320	//     },
86321	//     "zone": {
86322	//       "description": "The name of the zone where the managed instance group is located.",
86323	//       "location": "path",
86324	//       "required": true,
86325	//       "type": "string"
86326	//     }
86327	//   },
86328	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced",
86329	//   "request": {
86330	//     "$ref": "InstanceGroupManagersResizeAdvancedRequest"
86331	//   },
86332	//   "response": {
86333	//     "$ref": "Operation"
86334	//   },
86335	//   "scopes": [
86336	//     "https://www.googleapis.com/auth/cloud-platform",
86337	//     "https://www.googleapis.com/auth/compute"
86338	//   ]
86339	// }
86340
86341}
86342
86343// method id "compute.instanceGroupManagers.setAutoHealingPolicies":
86344
86345type InstanceGroupManagersSetAutoHealingPoliciesCall struct {
86346	s                                          *Service
86347	project                                    string
86348	zone                                       string
86349	instanceGroupManager                       string
86350	instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest
86351	urlParams_                                 gensupport.URLParams
86352	ctx_                                       context.Context
86353	header_                                    http.Header
86354}
86355
86356// SetAutoHealingPolicies: Motifies the autohealing policy for the
86357// instances in this managed instance group. [Deprecated] This method is
86358// deprecated. Use instanceGroupManagers.patch instead.
86359//
86360// - instanceGroupManager: The name of the instance group manager.
86361// - project: Project ID for this request.
86362// - zone: The name of the zone where the managed instance group is
86363//   located.
86364func (r *InstanceGroupManagersService) SetAutoHealingPolicies(project string, zone string, instanceGroupManager string, instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest) *InstanceGroupManagersSetAutoHealingPoliciesCall {
86365	c := &InstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86366	c.project = project
86367	c.zone = zone
86368	c.instanceGroupManager = instanceGroupManager
86369	c.instancegroupmanagerssetautohealingrequest = instancegroupmanagerssetautohealingrequest
86370	return c
86371}
86372
86373// RequestId sets the optional parameter "requestId": An optional
86374// request ID to identify requests. Specify a unique request ID so that
86375// if you must retry your request, the server will know to ignore the
86376// request if it has already been completed.
86377//
86378// For example, consider a situation where you make an initial request
86379// and the request times out. If you make the request again with the
86380// same request ID, the server can check if original operation with the
86381// same request ID was received, and if so, will ignore the second
86382// request. This prevents clients from accidentally creating duplicate
86383// commitments.
86384//
86385// The request ID must be a valid UUID with the exception that zero UUID
86386// is not supported (00000000-0000-0000-0000-000000000000).
86387func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *InstanceGroupManagersSetAutoHealingPoliciesCall {
86388	c.urlParams_.Set("requestId", requestId)
86389	return c
86390}
86391
86392// Fields allows partial responses to be retrieved. See
86393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86394// for more information.
86395func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetAutoHealingPoliciesCall {
86396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86397	return c
86398}
86399
86400// Context sets the context to be used in this call's Do method. Any
86401// pending HTTP request will be aborted if the provided context is
86402// canceled.
86403func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *InstanceGroupManagersSetAutoHealingPoliciesCall {
86404	c.ctx_ = ctx
86405	return c
86406}
86407
86408// Header returns an http.Header that can be modified by the caller to
86409// add HTTP headers to the request.
86410func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
86411	if c.header_ == nil {
86412		c.header_ = make(http.Header)
86413	}
86414	return c.header_
86415}
86416
86417func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
86418	reqHeaders := make(http.Header)
86419	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86420	for k, v := range c.header_ {
86421		reqHeaders[k] = v
86422	}
86423	reqHeaders.Set("User-Agent", c.s.userAgent())
86424	var body io.Reader = nil
86425	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetautohealingrequest)
86426	if err != nil {
86427		return nil, err
86428	}
86429	reqHeaders.Set("Content-Type", "application/json")
86430	c.urlParams_.Set("alt", alt)
86431	c.urlParams_.Set("prettyPrint", "false")
86432	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
86433	urls += "?" + c.urlParams_.Encode()
86434	req, err := http.NewRequest("POST", urls, body)
86435	if err != nil {
86436		return nil, err
86437	}
86438	req.Header = reqHeaders
86439	googleapi.Expand(req.URL, map[string]string{
86440		"project":              c.project,
86441		"zone":                 c.zone,
86442		"instanceGroupManager": c.instanceGroupManager,
86443	})
86444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86445}
86446
86447// Do executes the "compute.instanceGroupManagers.setAutoHealingPolicies" call.
86448// Exactly one of *Operation or error will be non-nil. Any non-2xx
86449// status code is an error. Response headers are in either
86450// *Operation.ServerResponse.Header or (if a response was returned at
86451// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86452// to check whether the returned error was because
86453// http.StatusNotModified was returned.
86454func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86455	gensupport.SetOptions(c.urlParams_, opts...)
86456	res, err := c.doRequest("json")
86457	if res != nil && res.StatusCode == http.StatusNotModified {
86458		if res.Body != nil {
86459			res.Body.Close()
86460		}
86461		return nil, &googleapi.Error{
86462			Code:   res.StatusCode,
86463			Header: res.Header,
86464		}
86465	}
86466	if err != nil {
86467		return nil, err
86468	}
86469	defer googleapi.CloseBody(res)
86470	if err := googleapi.CheckResponse(res); err != nil {
86471		return nil, err
86472	}
86473	ret := &Operation{
86474		ServerResponse: googleapi.ServerResponse{
86475			Header:         res.Header,
86476			HTTPStatusCode: res.StatusCode,
86477		},
86478	}
86479	target := &ret
86480	if err := gensupport.DecodeResponse(target, res); err != nil {
86481		return nil, err
86482	}
86483	return ret, nil
86484	// {
86485	//   "description": "Motifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use instanceGroupManagers.patch instead.",
86486	//   "httpMethod": "POST",
86487	//   "id": "compute.instanceGroupManagers.setAutoHealingPolicies",
86488	//   "parameterOrder": [
86489	//     "project",
86490	//     "zone",
86491	//     "instanceGroupManager"
86492	//   ],
86493	//   "parameters": {
86494	//     "instanceGroupManager": {
86495	//       "description": "The name of the instance group manager.",
86496	//       "location": "path",
86497	//       "required": true,
86498	//       "type": "string"
86499	//     },
86500	//     "project": {
86501	//       "description": "Project ID for this request.",
86502	//       "location": "path",
86503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86504	//       "required": true,
86505	//       "type": "string"
86506	//     },
86507	//     "requestId": {
86508	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86509	//       "location": "query",
86510	//       "type": "string"
86511	//     },
86512	//     "zone": {
86513	//       "description": "The name of the zone where the managed instance group is located.",
86514	//       "location": "path",
86515	//       "required": true,
86516	//       "type": "string"
86517	//     }
86518	//   },
86519	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
86520	//   "request": {
86521	//     "$ref": "InstanceGroupManagersSetAutoHealingRequest"
86522	//   },
86523	//   "response": {
86524	//     "$ref": "Operation"
86525	//   },
86526	//   "scopes": [
86527	//     "https://www.googleapis.com/auth/cloud-platform",
86528	//     "https://www.googleapis.com/auth/compute"
86529	//   ]
86530	// }
86531
86532}
86533
86534// method id "compute.instanceGroupManagers.setInstanceTemplate":
86535
86536type InstanceGroupManagersSetInstanceTemplateCall struct {
86537	s                                               *Service
86538	project                                         string
86539	zone                                            string
86540	instanceGroupManager                            string
86541	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
86542	urlParams_                                      gensupport.URLParams
86543	ctx_                                            context.Context
86544	header_                                         http.Header
86545}
86546
86547// SetInstanceTemplate: Specifies the instance template to use when
86548// creating new instances in this group. The templates for existing
86549// instances in the group do not change unless you run
86550// recreateInstances, run applyUpdatesToInstances, or set the group's
86551// updatePolicy.type to PROACTIVE.
86552//
86553// - instanceGroupManager: The name of the managed instance group.
86554// - project: Project ID for this request.
86555// - zone: The name of the zone where the managed instance group is
86556//   located.
86557func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
86558	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86559	c.project = project
86560	c.zone = zone
86561	c.instanceGroupManager = instanceGroupManager
86562	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
86563	return c
86564}
86565
86566// RequestId sets the optional parameter "requestId": An optional
86567// request ID to identify requests. Specify a unique request ID so that
86568// if you must retry your request, the server will know to ignore the
86569// request if it has already been completed.
86570//
86571// For example, consider a situation where you make an initial request
86572// and the request times out. If you make the request again with the
86573// same request ID, the server can check if original operation with the
86574// same request ID was received, and if so, will ignore the second
86575// request. This prevents clients from accidentally creating duplicate
86576// commitments.
86577//
86578// The request ID must be a valid UUID with the exception that zero UUID
86579// is not supported (00000000-0000-0000-0000-000000000000).
86580func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
86581	c.urlParams_.Set("requestId", requestId)
86582	return c
86583}
86584
86585// Fields allows partial responses to be retrieved. See
86586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86587// for more information.
86588func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
86589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86590	return c
86591}
86592
86593// Context sets the context to be used in this call's Do method. Any
86594// pending HTTP request will be aborted if the provided context is
86595// canceled.
86596func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
86597	c.ctx_ = ctx
86598	return c
86599}
86600
86601// Header returns an http.Header that can be modified by the caller to
86602// add HTTP headers to the request.
86603func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
86604	if c.header_ == nil {
86605		c.header_ = make(http.Header)
86606	}
86607	return c.header_
86608}
86609
86610func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
86611	reqHeaders := make(http.Header)
86612	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86613	for k, v := range c.header_ {
86614		reqHeaders[k] = v
86615	}
86616	reqHeaders.Set("User-Agent", c.s.userAgent())
86617	var body io.Reader = nil
86618	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
86619	if err != nil {
86620		return nil, err
86621	}
86622	reqHeaders.Set("Content-Type", "application/json")
86623	c.urlParams_.Set("alt", alt)
86624	c.urlParams_.Set("prettyPrint", "false")
86625	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
86626	urls += "?" + c.urlParams_.Encode()
86627	req, err := http.NewRequest("POST", urls, body)
86628	if err != nil {
86629		return nil, err
86630	}
86631	req.Header = reqHeaders
86632	googleapi.Expand(req.URL, map[string]string{
86633		"project":              c.project,
86634		"zone":                 c.zone,
86635		"instanceGroupManager": c.instanceGroupManager,
86636	})
86637	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86638}
86639
86640// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
86641// Exactly one of *Operation or error will be non-nil. Any non-2xx
86642// status code is an error. Response headers are in either
86643// *Operation.ServerResponse.Header or (if a response was returned at
86644// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86645// to check whether the returned error was because
86646// http.StatusNotModified was returned.
86647func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86648	gensupport.SetOptions(c.urlParams_, opts...)
86649	res, err := c.doRequest("json")
86650	if res != nil && res.StatusCode == http.StatusNotModified {
86651		if res.Body != nil {
86652			res.Body.Close()
86653		}
86654		return nil, &googleapi.Error{
86655			Code:   res.StatusCode,
86656			Header: res.Header,
86657		}
86658	}
86659	if err != nil {
86660		return nil, err
86661	}
86662	defer googleapi.CloseBody(res)
86663	if err := googleapi.CheckResponse(res); err != nil {
86664		return nil, err
86665	}
86666	ret := &Operation{
86667		ServerResponse: googleapi.ServerResponse{
86668			Header:         res.Header,
86669			HTTPStatusCode: res.StatusCode,
86670		},
86671	}
86672	target := &ret
86673	if err := gensupport.DecodeResponse(target, res); err != nil {
86674		return nil, err
86675	}
86676	return ret, nil
86677	// {
86678	//   "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.",
86679	//   "httpMethod": "POST",
86680	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
86681	//   "parameterOrder": [
86682	//     "project",
86683	//     "zone",
86684	//     "instanceGroupManager"
86685	//   ],
86686	//   "parameters": {
86687	//     "instanceGroupManager": {
86688	//       "description": "The name of the managed instance group.",
86689	//       "location": "path",
86690	//       "required": true,
86691	//       "type": "string"
86692	//     },
86693	//     "project": {
86694	//       "description": "Project ID for this request.",
86695	//       "location": "path",
86696	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86697	//       "required": true,
86698	//       "type": "string"
86699	//     },
86700	//     "requestId": {
86701	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86702	//       "location": "query",
86703	//       "type": "string"
86704	//     },
86705	//     "zone": {
86706	//       "description": "The name of the zone where the managed instance group is located.",
86707	//       "location": "path",
86708	//       "required": true,
86709	//       "type": "string"
86710	//     }
86711	//   },
86712	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
86713	//   "request": {
86714	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
86715	//   },
86716	//   "response": {
86717	//     "$ref": "Operation"
86718	//   },
86719	//   "scopes": [
86720	//     "https://www.googleapis.com/auth/cloud-platform",
86721	//     "https://www.googleapis.com/auth/compute"
86722	//   ]
86723	// }
86724
86725}
86726
86727// method id "compute.instanceGroupManagers.setTargetPools":
86728
86729type InstanceGroupManagersSetTargetPoolsCall struct {
86730	s                                          *Service
86731	project                                    string
86732	zone                                       string
86733	instanceGroupManager                       string
86734	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
86735	urlParams_                                 gensupport.URLParams
86736	ctx_                                       context.Context
86737	header_                                    http.Header
86738}
86739
86740// SetTargetPools: Modifies the target pools to which all instances in
86741// this managed instance group are assigned. The target pools
86742// automatically apply to all of the instances in the managed instance
86743// group. This operation is marked DONE when you make the request even
86744// if the instances have not yet been added to their target pools. The
86745// change might take some time to apply to all of the instances in the
86746// group depending on the size of the group.
86747//
86748// - instanceGroupManager: The name of the managed instance group.
86749// - project: Project ID for this request.
86750// - zone: The name of the zone where the managed instance group is
86751//   located.
86752func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
86753	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86754	c.project = project
86755	c.zone = zone
86756	c.instanceGroupManager = instanceGroupManager
86757	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
86758	return c
86759}
86760
86761// RequestId sets the optional parameter "requestId": An optional
86762// request ID to identify requests. Specify a unique request ID so that
86763// if you must retry your request, the server will know to ignore the
86764// request if it has already been completed.
86765//
86766// For example, consider a situation where you make an initial request
86767// and the request times out. If you make the request again with the
86768// same request ID, the server can check if original operation with the
86769// same request ID was received, and if so, will ignore the second
86770// request. This prevents clients from accidentally creating duplicate
86771// commitments.
86772//
86773// The request ID must be a valid UUID with the exception that zero UUID
86774// is not supported (00000000-0000-0000-0000-000000000000).
86775func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
86776	c.urlParams_.Set("requestId", requestId)
86777	return c
86778}
86779
86780// Fields allows partial responses to be retrieved. See
86781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86782// for more information.
86783func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
86784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86785	return c
86786}
86787
86788// Context sets the context to be used in this call's Do method. Any
86789// pending HTTP request will be aborted if the provided context is
86790// canceled.
86791func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
86792	c.ctx_ = ctx
86793	return c
86794}
86795
86796// Header returns an http.Header that can be modified by the caller to
86797// add HTTP headers to the request.
86798func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
86799	if c.header_ == nil {
86800		c.header_ = make(http.Header)
86801	}
86802	return c.header_
86803}
86804
86805func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
86806	reqHeaders := make(http.Header)
86807	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86808	for k, v := range c.header_ {
86809		reqHeaders[k] = v
86810	}
86811	reqHeaders.Set("User-Agent", c.s.userAgent())
86812	var body io.Reader = nil
86813	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
86814	if err != nil {
86815		return nil, err
86816	}
86817	reqHeaders.Set("Content-Type", "application/json")
86818	c.urlParams_.Set("alt", alt)
86819	c.urlParams_.Set("prettyPrint", "false")
86820	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
86821	urls += "?" + c.urlParams_.Encode()
86822	req, err := http.NewRequest("POST", urls, body)
86823	if err != nil {
86824		return nil, err
86825	}
86826	req.Header = reqHeaders
86827	googleapi.Expand(req.URL, map[string]string{
86828		"project":              c.project,
86829		"zone":                 c.zone,
86830		"instanceGroupManager": c.instanceGroupManager,
86831	})
86832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86833}
86834
86835// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
86836// Exactly one of *Operation or error will be non-nil. Any non-2xx
86837// status code is an error. Response headers are in either
86838// *Operation.ServerResponse.Header or (if a response was returned at
86839// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86840// to check whether the returned error was because
86841// http.StatusNotModified was returned.
86842func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86843	gensupport.SetOptions(c.urlParams_, opts...)
86844	res, err := c.doRequest("json")
86845	if res != nil && res.StatusCode == http.StatusNotModified {
86846		if res.Body != nil {
86847			res.Body.Close()
86848		}
86849		return nil, &googleapi.Error{
86850			Code:   res.StatusCode,
86851			Header: res.Header,
86852		}
86853	}
86854	if err != nil {
86855		return nil, err
86856	}
86857	defer googleapi.CloseBody(res)
86858	if err := googleapi.CheckResponse(res); err != nil {
86859		return nil, err
86860	}
86861	ret := &Operation{
86862		ServerResponse: googleapi.ServerResponse{
86863			Header:         res.Header,
86864			HTTPStatusCode: res.StatusCode,
86865		},
86866	}
86867	target := &ret
86868	if err := gensupport.DecodeResponse(target, res); err != nil {
86869		return nil, err
86870	}
86871	return ret, nil
86872	// {
86873	//   "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.",
86874	//   "httpMethod": "POST",
86875	//   "id": "compute.instanceGroupManagers.setTargetPools",
86876	//   "parameterOrder": [
86877	//     "project",
86878	//     "zone",
86879	//     "instanceGroupManager"
86880	//   ],
86881	//   "parameters": {
86882	//     "instanceGroupManager": {
86883	//       "description": "The name of the managed instance group.",
86884	//       "location": "path",
86885	//       "required": true,
86886	//       "type": "string"
86887	//     },
86888	//     "project": {
86889	//       "description": "Project ID for this request.",
86890	//       "location": "path",
86891	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86892	//       "required": true,
86893	//       "type": "string"
86894	//     },
86895	//     "requestId": {
86896	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86897	//       "location": "query",
86898	//       "type": "string"
86899	//     },
86900	//     "zone": {
86901	//       "description": "The name of the zone where the managed instance group is located.",
86902	//       "location": "path",
86903	//       "required": true,
86904	//       "type": "string"
86905	//     }
86906	//   },
86907	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
86908	//   "request": {
86909	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
86910	//   },
86911	//   "response": {
86912	//     "$ref": "Operation"
86913	//   },
86914	//   "scopes": [
86915	//     "https://www.googleapis.com/auth/cloud-platform",
86916	//     "https://www.googleapis.com/auth/compute"
86917	//   ]
86918	// }
86919
86920}
86921
86922// method id "compute.instanceGroupManagers.testIamPermissions":
86923
86924type InstanceGroupManagersTestIamPermissionsCall struct {
86925	s                      *Service
86926	project                string
86927	zone                   string
86928	resource               string
86929	testpermissionsrequest *TestPermissionsRequest
86930	urlParams_             gensupport.URLParams
86931	ctx_                   context.Context
86932	header_                http.Header
86933}
86934
86935// TestIamPermissions: Returns permissions that a caller has on the
86936// specified resource.
86937//
86938// - project: Project ID for this request.
86939// - resource: Name or id of the resource for this request.
86940// - zone: The name of the zone for this request.
86941func (r *InstanceGroupManagersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupManagersTestIamPermissionsCall {
86942	c := &InstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86943	c.project = project
86944	c.zone = zone
86945	c.resource = resource
86946	c.testpermissionsrequest = testpermissionsrequest
86947	return c
86948}
86949
86950// Fields allows partial responses to be retrieved. See
86951// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86952// for more information.
86953func (c *InstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersTestIamPermissionsCall {
86954	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86955	return c
86956}
86957
86958// Context sets the context to be used in this call's Do method. Any
86959// pending HTTP request will be aborted if the provided context is
86960// canceled.
86961func (c *InstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupManagersTestIamPermissionsCall {
86962	c.ctx_ = ctx
86963	return c
86964}
86965
86966// Header returns an http.Header that can be modified by the caller to
86967// add HTTP headers to the request.
86968func (c *InstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
86969	if c.header_ == nil {
86970		c.header_ = make(http.Header)
86971	}
86972	return c.header_
86973}
86974
86975func (c *InstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
86976	reqHeaders := make(http.Header)
86977	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86978	for k, v := range c.header_ {
86979		reqHeaders[k] = v
86980	}
86981	reqHeaders.Set("User-Agent", c.s.userAgent())
86982	var body io.Reader = nil
86983	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
86984	if err != nil {
86985		return nil, err
86986	}
86987	reqHeaders.Set("Content-Type", "application/json")
86988	c.urlParams_.Set("alt", alt)
86989	c.urlParams_.Set("prettyPrint", "false")
86990	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions")
86991	urls += "?" + c.urlParams_.Encode()
86992	req, err := http.NewRequest("POST", urls, body)
86993	if err != nil {
86994		return nil, err
86995	}
86996	req.Header = reqHeaders
86997	googleapi.Expand(req.URL, map[string]string{
86998		"project":  c.project,
86999		"zone":     c.zone,
87000		"resource": c.resource,
87001	})
87002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87003}
87004
87005// Do executes the "compute.instanceGroupManagers.testIamPermissions" call.
87006// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
87007// non-2xx status code is an error. Response headers are in either
87008// *TestPermissionsResponse.ServerResponse.Header or (if a response was
87009// returned at all) in error.(*googleapi.Error).Header. Use
87010// googleapi.IsNotModified to check whether the returned error was
87011// because http.StatusNotModified was returned.
87012func (c *InstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
87013	gensupport.SetOptions(c.urlParams_, opts...)
87014	res, err := c.doRequest("json")
87015	if res != nil && res.StatusCode == http.StatusNotModified {
87016		if res.Body != nil {
87017			res.Body.Close()
87018		}
87019		return nil, &googleapi.Error{
87020			Code:   res.StatusCode,
87021			Header: res.Header,
87022		}
87023	}
87024	if err != nil {
87025		return nil, err
87026	}
87027	defer googleapi.CloseBody(res)
87028	if err := googleapi.CheckResponse(res); err != nil {
87029		return nil, err
87030	}
87031	ret := &TestPermissionsResponse{
87032		ServerResponse: googleapi.ServerResponse{
87033			Header:         res.Header,
87034			HTTPStatusCode: res.StatusCode,
87035		},
87036	}
87037	target := &ret
87038	if err := gensupport.DecodeResponse(target, res); err != nil {
87039		return nil, err
87040	}
87041	return ret, nil
87042	// {
87043	//   "description": "Returns permissions that a caller has on the specified resource.",
87044	//   "httpMethod": "POST",
87045	//   "id": "compute.instanceGroupManagers.testIamPermissions",
87046	//   "parameterOrder": [
87047	//     "project",
87048	//     "zone",
87049	//     "resource"
87050	//   ],
87051	//   "parameters": {
87052	//     "project": {
87053	//       "description": "Project ID for this request.",
87054	//       "location": "path",
87055	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87056	//       "required": true,
87057	//       "type": "string"
87058	//     },
87059	//     "resource": {
87060	//       "description": "Name or id of the resource for this request.",
87061	//       "location": "path",
87062	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87063	//       "required": true,
87064	//       "type": "string"
87065	//     },
87066	//     "zone": {
87067	//       "description": "The name of the zone for this request.",
87068	//       "location": "path",
87069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87070	//       "required": true,
87071	//       "type": "string"
87072	//     }
87073	//   },
87074	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions",
87075	//   "request": {
87076	//     "$ref": "TestPermissionsRequest"
87077	//   },
87078	//   "response": {
87079	//     "$ref": "TestPermissionsResponse"
87080	//   },
87081	//   "scopes": [
87082	//     "https://www.googleapis.com/auth/cloud-platform",
87083	//     "https://www.googleapis.com/auth/compute",
87084	//     "https://www.googleapis.com/auth/compute.readonly"
87085	//   ]
87086	// }
87087
87088}
87089
87090// method id "compute.instanceGroupManagers.update":
87091
87092type InstanceGroupManagersUpdateCall struct {
87093	s                    *Service
87094	project              string
87095	zone                 string
87096	instanceGroupManager string
87097	instancegroupmanager *InstanceGroupManager
87098	urlParams_           gensupport.URLParams
87099	ctx_                 context.Context
87100	header_              http.Header
87101}
87102
87103// Update: Updates a managed instance group using the information that
87104// you specify in the request. This operation is marked as DONE when the
87105// group is updated even if the instances in the group have not yet been
87106// updated. You must separately verify the status of the individual
87107// instances with the listManagedInstances method.
87108//
87109// - instanceGroupManager: The name of the instance group manager.
87110// - project: Project ID for this request.
87111// - zone: The name of the zone where you want to create the managed
87112//   instance group.
87113func (r *InstanceGroupManagersService) Update(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersUpdateCall {
87114	c := &InstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87115	c.project = project
87116	c.zone = zone
87117	c.instanceGroupManager = instanceGroupManager
87118	c.instancegroupmanager = instancegroupmanager
87119	return c
87120}
87121
87122// RequestId sets the optional parameter "requestId": An optional
87123// request ID to identify requests. Specify a unique request ID so that
87124// if you must retry your request, the server will know to ignore the
87125// request if it has already been completed.
87126//
87127// For example, consider a situation where you make an initial request
87128// and the request times out. If you make the request again with the
87129// same request ID, the server can check if original operation with the
87130// same request ID was received, and if so, will ignore the second
87131// request. This prevents clients from accidentally creating duplicate
87132// commitments.
87133//
87134// The request ID must be a valid UUID with the exception that zero UUID
87135// is not supported (00000000-0000-0000-0000-000000000000).
87136func (c *InstanceGroupManagersUpdateCall) RequestId(requestId string) *InstanceGroupManagersUpdateCall {
87137	c.urlParams_.Set("requestId", requestId)
87138	return c
87139}
87140
87141// Fields allows partial responses to be retrieved. See
87142// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87143// for more information.
87144func (c *InstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdateCall {
87145	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87146	return c
87147}
87148
87149// Context sets the context to be used in this call's Do method. Any
87150// pending HTTP request will be aborted if the provided context is
87151// canceled.
87152func (c *InstanceGroupManagersUpdateCall) Context(ctx context.Context) *InstanceGroupManagersUpdateCall {
87153	c.ctx_ = ctx
87154	return c
87155}
87156
87157// Header returns an http.Header that can be modified by the caller to
87158// add HTTP headers to the request.
87159func (c *InstanceGroupManagersUpdateCall) Header() http.Header {
87160	if c.header_ == nil {
87161		c.header_ = make(http.Header)
87162	}
87163	return c.header_
87164}
87165
87166func (c *InstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
87167	reqHeaders := make(http.Header)
87168	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87169	for k, v := range c.header_ {
87170		reqHeaders[k] = v
87171	}
87172	reqHeaders.Set("User-Agent", c.s.userAgent())
87173	var body io.Reader = nil
87174	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
87175	if err != nil {
87176		return nil, err
87177	}
87178	reqHeaders.Set("Content-Type", "application/json")
87179	c.urlParams_.Set("alt", alt)
87180	c.urlParams_.Set("prettyPrint", "false")
87181	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
87182	urls += "?" + c.urlParams_.Encode()
87183	req, err := http.NewRequest("PUT", urls, body)
87184	if err != nil {
87185		return nil, err
87186	}
87187	req.Header = reqHeaders
87188	googleapi.Expand(req.URL, map[string]string{
87189		"project":              c.project,
87190		"zone":                 c.zone,
87191		"instanceGroupManager": c.instanceGroupManager,
87192	})
87193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87194}
87195
87196// Do executes the "compute.instanceGroupManagers.update" call.
87197// Exactly one of *Operation or error will be non-nil. Any non-2xx
87198// status code is an error. Response headers are in either
87199// *Operation.ServerResponse.Header or (if a response was returned at
87200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87201// to check whether the returned error was because
87202// http.StatusNotModified was returned.
87203func (c *InstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87204	gensupport.SetOptions(c.urlParams_, opts...)
87205	res, err := c.doRequest("json")
87206	if res != nil && res.StatusCode == http.StatusNotModified {
87207		if res.Body != nil {
87208			res.Body.Close()
87209		}
87210		return nil, &googleapi.Error{
87211			Code:   res.StatusCode,
87212			Header: res.Header,
87213		}
87214	}
87215	if err != nil {
87216		return nil, err
87217	}
87218	defer googleapi.CloseBody(res)
87219	if err := googleapi.CheckResponse(res); err != nil {
87220		return nil, err
87221	}
87222	ret := &Operation{
87223		ServerResponse: googleapi.ServerResponse{
87224			Header:         res.Header,
87225			HTTPStatusCode: res.StatusCode,
87226		},
87227	}
87228	target := &ret
87229	if err := gensupport.DecodeResponse(target, res); err != nil {
87230		return nil, err
87231	}
87232	return ret, nil
87233	// {
87234	//   "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.",
87235	//   "httpMethod": "PUT",
87236	//   "id": "compute.instanceGroupManagers.update",
87237	//   "parameterOrder": [
87238	//     "project",
87239	//     "zone",
87240	//     "instanceGroupManager"
87241	//   ],
87242	//   "parameters": {
87243	//     "instanceGroupManager": {
87244	//       "description": "The name of the instance group manager.",
87245	//       "location": "path",
87246	//       "required": true,
87247	//       "type": "string"
87248	//     },
87249	//     "project": {
87250	//       "description": "Project ID for this request.",
87251	//       "location": "path",
87252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87253	//       "required": true,
87254	//       "type": "string"
87255	//     },
87256	//     "requestId": {
87257	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87258	//       "location": "query",
87259	//       "type": "string"
87260	//     },
87261	//     "zone": {
87262	//       "description": "The name of the zone where you want to create the managed instance group.",
87263	//       "location": "path",
87264	//       "required": true,
87265	//       "type": "string"
87266	//     }
87267	//   },
87268	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
87269	//   "request": {
87270	//     "$ref": "InstanceGroupManager"
87271	//   },
87272	//   "response": {
87273	//     "$ref": "Operation"
87274	//   },
87275	//   "scopes": [
87276	//     "https://www.googleapis.com/auth/cloud-platform",
87277	//     "https://www.googleapis.com/auth/compute"
87278	//   ]
87279	// }
87280
87281}
87282
87283// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
87284
87285type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
87286	s                                                *Service
87287	project                                          string
87288	zone                                             string
87289	instanceGroupManager                             string
87290	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
87291	urlParams_                                       gensupport.URLParams
87292	ctx_                                             context.Context
87293	header_                                          http.Header
87294}
87295
87296// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
87297// the managed instance group. perInstanceConfig.name serves as a key
87298// used to distinguish whether to perform insert or patch.
87299//
87300// - instanceGroupManager: The name of the managed instance group. It
87301//   should conform to RFC1035.
87302// - project: Project ID for this request.
87303// - zone: The name of the zone where the managed instance group is
87304//   located. It should conform to RFC1035.
87305func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
87306	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87307	c.project = project
87308	c.zone = zone
87309	c.instanceGroupManager = instanceGroupManager
87310	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
87311	return c
87312}
87313
87314// RequestId sets the optional parameter "requestId": An optional
87315// request ID to identify requests. Specify a unique request ID so that
87316// if you must retry your request, the server will know to ignore the
87317// request if it has already been completed.
87318//
87319// For example, consider a situation where you make an initial request
87320// and the request times out. If you make the request again with the
87321// same request ID, the server can check if original operation with the
87322// same request ID was received, and if so, will ignore the second
87323// request. This prevents clients from accidentally creating duplicate
87324// commitments.
87325//
87326// The request ID must be a valid UUID with the exception that zero UUID
87327// is not supported (00000000-0000-0000-0000-000000000000).
87328func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
87329	c.urlParams_.Set("requestId", requestId)
87330	return c
87331}
87332
87333// Fields allows partial responses to be retrieved. See
87334// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87335// for more information.
87336func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
87337	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87338	return c
87339}
87340
87341// Context sets the context to be used in this call's Do method. Any
87342// pending HTTP request will be aborted if the provided context is
87343// canceled.
87344func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
87345	c.ctx_ = ctx
87346	return c
87347}
87348
87349// Header returns an http.Header that can be modified by the caller to
87350// add HTTP headers to the request.
87351func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
87352	if c.header_ == nil {
87353		c.header_ = make(http.Header)
87354	}
87355	return c.header_
87356}
87357
87358func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
87359	reqHeaders := make(http.Header)
87360	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87361	for k, v := range c.header_ {
87362		reqHeaders[k] = v
87363	}
87364	reqHeaders.Set("User-Agent", c.s.userAgent())
87365	var body io.Reader = nil
87366	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
87367	if err != nil {
87368		return nil, err
87369	}
87370	reqHeaders.Set("Content-Type", "application/json")
87371	c.urlParams_.Set("alt", alt)
87372	c.urlParams_.Set("prettyPrint", "false")
87373	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
87374	urls += "?" + c.urlParams_.Encode()
87375	req, err := http.NewRequest("POST", urls, body)
87376	if err != nil {
87377		return nil, err
87378	}
87379	req.Header = reqHeaders
87380	googleapi.Expand(req.URL, map[string]string{
87381		"project":              c.project,
87382		"zone":                 c.zone,
87383		"instanceGroupManager": c.instanceGroupManager,
87384	})
87385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87386}
87387
87388// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
87389// Exactly one of *Operation or error will be non-nil. Any non-2xx
87390// status code is an error. Response headers are in either
87391// *Operation.ServerResponse.Header or (if a response was returned at
87392// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87393// to check whether the returned error was because
87394// http.StatusNotModified was returned.
87395func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87396	gensupport.SetOptions(c.urlParams_, opts...)
87397	res, err := c.doRequest("json")
87398	if res != nil && res.StatusCode == http.StatusNotModified {
87399		if res.Body != nil {
87400			res.Body.Close()
87401		}
87402		return nil, &googleapi.Error{
87403			Code:   res.StatusCode,
87404			Header: res.Header,
87405		}
87406	}
87407	if err != nil {
87408		return nil, err
87409	}
87410	defer googleapi.CloseBody(res)
87411	if err := googleapi.CheckResponse(res); err != nil {
87412		return nil, err
87413	}
87414	ret := &Operation{
87415		ServerResponse: googleapi.ServerResponse{
87416			Header:         res.Header,
87417			HTTPStatusCode: res.StatusCode,
87418		},
87419	}
87420	target := &ret
87421	if err := gensupport.DecodeResponse(target, res); err != nil {
87422		return nil, err
87423	}
87424	return ret, nil
87425	// {
87426	//   "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.",
87427	//   "httpMethod": "POST",
87428	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
87429	//   "parameterOrder": [
87430	//     "project",
87431	//     "zone",
87432	//     "instanceGroupManager"
87433	//   ],
87434	//   "parameters": {
87435	//     "instanceGroupManager": {
87436	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
87437	//       "location": "path",
87438	//       "required": true,
87439	//       "type": "string"
87440	//     },
87441	//     "project": {
87442	//       "description": "Project ID for this request.",
87443	//       "location": "path",
87444	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87445	//       "required": true,
87446	//       "type": "string"
87447	//     },
87448	//     "requestId": {
87449	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87450	//       "location": "query",
87451	//       "type": "string"
87452	//     },
87453	//     "zone": {
87454	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
87455	//       "location": "path",
87456	//       "required": true,
87457	//       "type": "string"
87458	//     }
87459	//   },
87460	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
87461	//   "request": {
87462	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
87463	//   },
87464	//   "response": {
87465	//     "$ref": "Operation"
87466	//   },
87467	//   "scopes": [
87468	//     "https://www.googleapis.com/auth/cloud-platform",
87469	//     "https://www.googleapis.com/auth/compute"
87470	//   ]
87471	// }
87472
87473}
87474
87475// method id "compute.instanceGroups.addInstances":
87476
87477type InstanceGroupsAddInstancesCall struct {
87478	s                                 *Service
87479	project                           string
87480	zone                              string
87481	instanceGroup                     string
87482	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
87483	urlParams_                        gensupport.URLParams
87484	ctx_                              context.Context
87485	header_                           http.Header
87486}
87487
87488// AddInstances: Adds a list of instances to the specified instance
87489// group. All of the instances in the instance group must be in the same
87490// network/subnetwork. Read  Adding instances for more information.
87491//
87492// - instanceGroup: The name of the instance group where you are adding
87493//   instances.
87494// - project: Project ID for this request.
87495// - zone: The name of the zone where the instance group is located.
87496func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
87497	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87498	c.project = project
87499	c.zone = zone
87500	c.instanceGroup = instanceGroup
87501	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
87502	return c
87503}
87504
87505// RequestId sets the optional parameter "requestId": An optional
87506// request ID to identify requests. Specify a unique request ID so that
87507// if you must retry your request, the server will know to ignore the
87508// request if it has already been completed.
87509//
87510// For example, consider a situation where you make an initial request
87511// and the request times out. If you make the request again with the
87512// same request ID, the server can check if original operation with the
87513// same request ID was received, and if so, will ignore the second
87514// request. This prevents clients from accidentally creating duplicate
87515// commitments.
87516//
87517// The request ID must be a valid UUID with the exception that zero UUID
87518// is not supported (00000000-0000-0000-0000-000000000000).
87519func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
87520	c.urlParams_.Set("requestId", requestId)
87521	return c
87522}
87523
87524// Fields allows partial responses to be retrieved. See
87525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87526// for more information.
87527func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
87528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87529	return c
87530}
87531
87532// Context sets the context to be used in this call's Do method. Any
87533// pending HTTP request will be aborted if the provided context is
87534// canceled.
87535func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
87536	c.ctx_ = ctx
87537	return c
87538}
87539
87540// Header returns an http.Header that can be modified by the caller to
87541// add HTTP headers to the request.
87542func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
87543	if c.header_ == nil {
87544		c.header_ = make(http.Header)
87545	}
87546	return c.header_
87547}
87548
87549func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
87550	reqHeaders := make(http.Header)
87551	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87552	for k, v := range c.header_ {
87553		reqHeaders[k] = v
87554	}
87555	reqHeaders.Set("User-Agent", c.s.userAgent())
87556	var body io.Reader = nil
87557	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
87558	if err != nil {
87559		return nil, err
87560	}
87561	reqHeaders.Set("Content-Type", "application/json")
87562	c.urlParams_.Set("alt", alt)
87563	c.urlParams_.Set("prettyPrint", "false")
87564	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
87565	urls += "?" + c.urlParams_.Encode()
87566	req, err := http.NewRequest("POST", urls, body)
87567	if err != nil {
87568		return nil, err
87569	}
87570	req.Header = reqHeaders
87571	googleapi.Expand(req.URL, map[string]string{
87572		"project":       c.project,
87573		"zone":          c.zone,
87574		"instanceGroup": c.instanceGroup,
87575	})
87576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87577}
87578
87579// Do executes the "compute.instanceGroups.addInstances" call.
87580// Exactly one of *Operation or error will be non-nil. Any non-2xx
87581// status code is an error. Response headers are in either
87582// *Operation.ServerResponse.Header or (if a response was returned at
87583// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87584// to check whether the returned error was because
87585// http.StatusNotModified was returned.
87586func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87587	gensupport.SetOptions(c.urlParams_, opts...)
87588	res, err := c.doRequest("json")
87589	if res != nil && res.StatusCode == http.StatusNotModified {
87590		if res.Body != nil {
87591			res.Body.Close()
87592		}
87593		return nil, &googleapi.Error{
87594			Code:   res.StatusCode,
87595			Header: res.Header,
87596		}
87597	}
87598	if err != nil {
87599		return nil, err
87600	}
87601	defer googleapi.CloseBody(res)
87602	if err := googleapi.CheckResponse(res); err != nil {
87603		return nil, err
87604	}
87605	ret := &Operation{
87606		ServerResponse: googleapi.ServerResponse{
87607			Header:         res.Header,
87608			HTTPStatusCode: res.StatusCode,
87609		},
87610	}
87611	target := &ret
87612	if err := gensupport.DecodeResponse(target, res); err != nil {
87613		return nil, err
87614	}
87615	return ret, nil
87616	// {
87617	//   "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.",
87618	//   "httpMethod": "POST",
87619	//   "id": "compute.instanceGroups.addInstances",
87620	//   "parameterOrder": [
87621	//     "project",
87622	//     "zone",
87623	//     "instanceGroup"
87624	//   ],
87625	//   "parameters": {
87626	//     "instanceGroup": {
87627	//       "description": "The name of the instance group where you are adding instances.",
87628	//       "location": "path",
87629	//       "required": true,
87630	//       "type": "string"
87631	//     },
87632	//     "project": {
87633	//       "description": "Project ID for this request.",
87634	//       "location": "path",
87635	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87636	//       "required": true,
87637	//       "type": "string"
87638	//     },
87639	//     "requestId": {
87640	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87641	//       "location": "query",
87642	//       "type": "string"
87643	//     },
87644	//     "zone": {
87645	//       "description": "The name of the zone where the instance group is located.",
87646	//       "location": "path",
87647	//       "required": true,
87648	//       "type": "string"
87649	//     }
87650	//   },
87651	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
87652	//   "request": {
87653	//     "$ref": "InstanceGroupsAddInstancesRequest"
87654	//   },
87655	//   "response": {
87656	//     "$ref": "Operation"
87657	//   },
87658	//   "scopes": [
87659	//     "https://www.googleapis.com/auth/cloud-platform",
87660	//     "https://www.googleapis.com/auth/compute"
87661	//   ]
87662	// }
87663
87664}
87665
87666// method id "compute.instanceGroups.aggregatedList":
87667
87668type InstanceGroupsAggregatedListCall struct {
87669	s            *Service
87670	project      string
87671	urlParams_   gensupport.URLParams
87672	ifNoneMatch_ string
87673	ctx_         context.Context
87674	header_      http.Header
87675}
87676
87677// AggregatedList: Retrieves the list of instance groups and sorts them
87678// by zone.
87679//
87680// - project: Project ID for this request.
87681func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
87682	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87683	c.project = project
87684	return c
87685}
87686
87687// Filter sets the optional parameter "filter": A filter expression that
87688// filters resources listed in the response. The expression must specify
87689// the field name, a comparison operator, and the value that you want to
87690// use for filtering. The value must be a string, a number, or a
87691// boolean. The comparison operator must be either `=`, `!=`, `>`, or
87692// `<`.
87693//
87694// For example, if you are filtering Compute Engine instances, you can
87695// exclude instances named `example-instance` by specifying `name !=
87696// example-instance`.
87697//
87698// You can also filter nested fields. For example, you could specify
87699// `scheduling.automaticRestart = false` to include instances only if
87700// they are not scheduled for automatic restarts. You can use filtering
87701// on nested fields to filter based on resource labels.
87702//
87703// To filter on multiple expressions, provide each separate expression
87704// within parentheses. For example: ``` (scheduling.automaticRestart =
87705// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
87706// is an `AND` expression. However, you can include `AND` and `OR`
87707// expressions explicitly. For example: ``` (cpuPlatform = "Intel
87708// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
87709// (scheduling.automaticRestart = true) ```
87710func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
87711	c.urlParams_.Set("filter", filter)
87712	return c
87713}
87714
87715// IncludeAllScopes sets the optional parameter "includeAllScopes":
87716// Indicates whether every visible scope for each scope type (zone,
87717// region, global) should be included in the response. For new resource
87718// types added after this field, the flag has no effect as new resource
87719// types will always include every visible scope for each scope type in
87720// response. For resource types which predate this field, if this flag
87721// is omitted or false, only scopes of the scope types where the
87722// resource type is expected to be found will be included.
87723func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
87724	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
87725	return c
87726}
87727
87728// MaxResults sets the optional parameter "maxResults": The maximum
87729// number of results per page that should be returned. If the number of
87730// available results is larger than `maxResults`, Compute Engine returns
87731// a `nextPageToken` that can be used to get the next page of results in
87732// subsequent list requests. Acceptable values are `0` to `500`,
87733// inclusive. (Default: `500`)
87734func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
87735	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
87736	return c
87737}
87738
87739// OrderBy sets the optional parameter "orderBy": Sorts list results by
87740// a certain order. By default, results are returned in alphanumerical
87741// order based on the resource name.
87742//
87743// You can also sort results in descending order based on the creation
87744// timestamp using `orderBy="creationTimestamp desc". This sorts
87745// results based on the `creationTimestamp` field in reverse
87746// chronological order (newest result first). Use this to sort resources
87747// like operations so that the newest operation is returned
87748// first.
87749//
87750// Currently, only sorting by `name` or `creationTimestamp desc` is
87751// supported.
87752func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
87753	c.urlParams_.Set("orderBy", orderBy)
87754	return c
87755}
87756
87757// PageToken sets the optional parameter "pageToken": Specifies a page
87758// token to use. Set `pageToken` to the `nextPageToken` returned by a
87759// previous list request to get the next page of results.
87760func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
87761	c.urlParams_.Set("pageToken", pageToken)
87762	return c
87763}
87764
87765// ReturnPartialSuccess sets the optional parameter
87766// "returnPartialSuccess": Opt-in for partial success behavior which
87767// provides partial results in case of failure. The default value is
87768// false.
87769func (c *InstanceGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsAggregatedListCall {
87770	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
87771	return c
87772}
87773
87774// Fields allows partial responses to be retrieved. See
87775// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87776// for more information.
87777func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
87778	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87779	return c
87780}
87781
87782// IfNoneMatch sets the optional parameter which makes the operation
87783// fail if the object's ETag matches the given value. This is useful for
87784// getting updates only after the object has changed since the last
87785// request. Use googleapi.IsNotModified to check whether the response
87786// error from Do is the result of In-None-Match.
87787func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
87788	c.ifNoneMatch_ = entityTag
87789	return c
87790}
87791
87792// Context sets the context to be used in this call's Do method. Any
87793// pending HTTP request will be aborted if the provided context is
87794// canceled.
87795func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
87796	c.ctx_ = ctx
87797	return c
87798}
87799
87800// Header returns an http.Header that can be modified by the caller to
87801// add HTTP headers to the request.
87802func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
87803	if c.header_ == nil {
87804		c.header_ = make(http.Header)
87805	}
87806	return c.header_
87807}
87808
87809func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
87810	reqHeaders := make(http.Header)
87811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87812	for k, v := range c.header_ {
87813		reqHeaders[k] = v
87814	}
87815	reqHeaders.Set("User-Agent", c.s.userAgent())
87816	if c.ifNoneMatch_ != "" {
87817		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87818	}
87819	var body io.Reader = nil
87820	c.urlParams_.Set("alt", alt)
87821	c.urlParams_.Set("prettyPrint", "false")
87822	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroups")
87823	urls += "?" + c.urlParams_.Encode()
87824	req, err := http.NewRequest("GET", urls, body)
87825	if err != nil {
87826		return nil, err
87827	}
87828	req.Header = reqHeaders
87829	googleapi.Expand(req.URL, map[string]string{
87830		"project": c.project,
87831	})
87832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87833}
87834
87835// Do executes the "compute.instanceGroups.aggregatedList" call.
87836// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
87837// Any non-2xx status code is an error. Response headers are in either
87838// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
87839// was returned at all) in error.(*googleapi.Error).Header. Use
87840// googleapi.IsNotModified to check whether the returned error was
87841// because http.StatusNotModified was returned.
87842func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
87843	gensupport.SetOptions(c.urlParams_, opts...)
87844	res, err := c.doRequest("json")
87845	if res != nil && res.StatusCode == http.StatusNotModified {
87846		if res.Body != nil {
87847			res.Body.Close()
87848		}
87849		return nil, &googleapi.Error{
87850			Code:   res.StatusCode,
87851			Header: res.Header,
87852		}
87853	}
87854	if err != nil {
87855		return nil, err
87856	}
87857	defer googleapi.CloseBody(res)
87858	if err := googleapi.CheckResponse(res); err != nil {
87859		return nil, err
87860	}
87861	ret := &InstanceGroupAggregatedList{
87862		ServerResponse: googleapi.ServerResponse{
87863			Header:         res.Header,
87864			HTTPStatusCode: res.StatusCode,
87865		},
87866	}
87867	target := &ret
87868	if err := gensupport.DecodeResponse(target, res); err != nil {
87869		return nil, err
87870	}
87871	return ret, nil
87872	// {
87873	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
87874	//   "httpMethod": "GET",
87875	//   "id": "compute.instanceGroups.aggregatedList",
87876	//   "parameterOrder": [
87877	//     "project"
87878	//   ],
87879	//   "parameters": {
87880	//     "filter": {
87881	//       "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) ```",
87882	//       "location": "query",
87883	//       "type": "string"
87884	//     },
87885	//     "includeAllScopes": {
87886	//       "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.",
87887	//       "location": "query",
87888	//       "type": "boolean"
87889	//     },
87890	//     "maxResults": {
87891	//       "default": "500",
87892	//       "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`)",
87893	//       "format": "uint32",
87894	//       "location": "query",
87895	//       "minimum": "0",
87896	//       "type": "integer"
87897	//     },
87898	//     "orderBy": {
87899	//       "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.",
87900	//       "location": "query",
87901	//       "type": "string"
87902	//     },
87903	//     "pageToken": {
87904	//       "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.",
87905	//       "location": "query",
87906	//       "type": "string"
87907	//     },
87908	//     "project": {
87909	//       "description": "Project ID for this request.",
87910	//       "location": "path",
87911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87912	//       "required": true,
87913	//       "type": "string"
87914	//     },
87915	//     "returnPartialSuccess": {
87916	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
87917	//       "location": "query",
87918	//       "type": "boolean"
87919	//     }
87920	//   },
87921	//   "path": "projects/{project}/aggregated/instanceGroups",
87922	//   "response": {
87923	//     "$ref": "InstanceGroupAggregatedList"
87924	//   },
87925	//   "scopes": [
87926	//     "https://www.googleapis.com/auth/cloud-platform",
87927	//     "https://www.googleapis.com/auth/compute",
87928	//     "https://www.googleapis.com/auth/compute.readonly"
87929	//   ]
87930	// }
87931
87932}
87933
87934// Pages invokes f for each page of results.
87935// A non-nil error returned from f will halt the iteration.
87936// The provided context supersedes any context provided to the Context method.
87937func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
87938	c.ctx_ = ctx
87939	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87940	for {
87941		x, err := c.Do()
87942		if err != nil {
87943			return err
87944		}
87945		if err := f(x); err != nil {
87946			return err
87947		}
87948		if x.NextPageToken == "" {
87949			return nil
87950		}
87951		c.PageToken(x.NextPageToken)
87952	}
87953}
87954
87955// method id "compute.instanceGroups.delete":
87956
87957type InstanceGroupsDeleteCall struct {
87958	s             *Service
87959	project       string
87960	zone          string
87961	instanceGroup string
87962	urlParams_    gensupport.URLParams
87963	ctx_          context.Context
87964	header_       http.Header
87965}
87966
87967// Delete: Deletes the specified instance group. The instances in the
87968// group are not deleted. Note that instance group must not belong to a
87969// backend service. Read  Deleting an instance group for more
87970// information.
87971//
87972// - instanceGroup: The name of the instance group to delete.
87973// - project: Project ID for this request.
87974// - zone: The name of the zone where the instance group is located.
87975func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
87976	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87977	c.project = project
87978	c.zone = zone
87979	c.instanceGroup = instanceGroup
87980	return c
87981}
87982
87983// RequestId sets the optional parameter "requestId": An optional
87984// request ID to identify requests. Specify a unique request ID so that
87985// if you must retry your request, the server will know to ignore the
87986// request if it has already been completed.
87987//
87988// For example, consider a situation where you make an initial request
87989// and the request times out. If you make the request again with the
87990// same request ID, the server can check if original operation with the
87991// same request ID was received, and if so, will ignore the second
87992// request. This prevents clients from accidentally creating duplicate
87993// commitments.
87994//
87995// The request ID must be a valid UUID with the exception that zero UUID
87996// is not supported (00000000-0000-0000-0000-000000000000).
87997func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
87998	c.urlParams_.Set("requestId", requestId)
87999	return c
88000}
88001
88002// Fields allows partial responses to be retrieved. See
88003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88004// for more information.
88005func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
88006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88007	return c
88008}
88009
88010// Context sets the context to be used in this call's Do method. Any
88011// pending HTTP request will be aborted if the provided context is
88012// canceled.
88013func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
88014	c.ctx_ = ctx
88015	return c
88016}
88017
88018// Header returns an http.Header that can be modified by the caller to
88019// add HTTP headers to the request.
88020func (c *InstanceGroupsDeleteCall) Header() http.Header {
88021	if c.header_ == nil {
88022		c.header_ = make(http.Header)
88023	}
88024	return c.header_
88025}
88026
88027func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
88028	reqHeaders := make(http.Header)
88029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88030	for k, v := range c.header_ {
88031		reqHeaders[k] = v
88032	}
88033	reqHeaders.Set("User-Agent", c.s.userAgent())
88034	var body io.Reader = nil
88035	c.urlParams_.Set("alt", alt)
88036	c.urlParams_.Set("prettyPrint", "false")
88037	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
88038	urls += "?" + c.urlParams_.Encode()
88039	req, err := http.NewRequest("DELETE", urls, body)
88040	if err != nil {
88041		return nil, err
88042	}
88043	req.Header = reqHeaders
88044	googleapi.Expand(req.URL, map[string]string{
88045		"project":       c.project,
88046		"zone":          c.zone,
88047		"instanceGroup": c.instanceGroup,
88048	})
88049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88050}
88051
88052// Do executes the "compute.instanceGroups.delete" call.
88053// Exactly one of *Operation or error will be non-nil. Any non-2xx
88054// status code is an error. Response headers are in either
88055// *Operation.ServerResponse.Header or (if a response was returned at
88056// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88057// to check whether the returned error was because
88058// http.StatusNotModified was returned.
88059func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88060	gensupport.SetOptions(c.urlParams_, opts...)
88061	res, err := c.doRequest("json")
88062	if res != nil && res.StatusCode == http.StatusNotModified {
88063		if res.Body != nil {
88064			res.Body.Close()
88065		}
88066		return nil, &googleapi.Error{
88067			Code:   res.StatusCode,
88068			Header: res.Header,
88069		}
88070	}
88071	if err != nil {
88072		return nil, err
88073	}
88074	defer googleapi.CloseBody(res)
88075	if err := googleapi.CheckResponse(res); err != nil {
88076		return nil, err
88077	}
88078	ret := &Operation{
88079		ServerResponse: googleapi.ServerResponse{
88080			Header:         res.Header,
88081			HTTPStatusCode: res.StatusCode,
88082		},
88083	}
88084	target := &ret
88085	if err := gensupport.DecodeResponse(target, res); err != nil {
88086		return nil, err
88087	}
88088	return ret, nil
88089	// {
88090	//   "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.",
88091	//   "httpMethod": "DELETE",
88092	//   "id": "compute.instanceGroups.delete",
88093	//   "parameterOrder": [
88094	//     "project",
88095	//     "zone",
88096	//     "instanceGroup"
88097	//   ],
88098	//   "parameters": {
88099	//     "instanceGroup": {
88100	//       "description": "The name of the instance group to delete.",
88101	//       "location": "path",
88102	//       "required": true,
88103	//       "type": "string"
88104	//     },
88105	//     "project": {
88106	//       "description": "Project ID for this request.",
88107	//       "location": "path",
88108	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88109	//       "required": true,
88110	//       "type": "string"
88111	//     },
88112	//     "requestId": {
88113	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88114	//       "location": "query",
88115	//       "type": "string"
88116	//     },
88117	//     "zone": {
88118	//       "description": "The name of the zone where the instance group is located.",
88119	//       "location": "path",
88120	//       "required": true,
88121	//       "type": "string"
88122	//     }
88123	//   },
88124	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
88125	//   "response": {
88126	//     "$ref": "Operation"
88127	//   },
88128	//   "scopes": [
88129	//     "https://www.googleapis.com/auth/cloud-platform",
88130	//     "https://www.googleapis.com/auth/compute"
88131	//   ]
88132	// }
88133
88134}
88135
88136// method id "compute.instanceGroups.get":
88137
88138type InstanceGroupsGetCall struct {
88139	s             *Service
88140	project       string
88141	zone          string
88142	instanceGroup string
88143	urlParams_    gensupport.URLParams
88144	ifNoneMatch_  string
88145	ctx_          context.Context
88146	header_       http.Header
88147}
88148
88149// Get: Returns the specified zonal instance group. Get a list of
88150// available zonal instance groups by making a list() request.
88151//
88152// For managed instance groups, use the instanceGroupManagers or
88153// regionInstanceGroupManagers methods instead.
88154//
88155// - instanceGroup: The name of the instance group.
88156// - project: Project ID for this request.
88157// - zone: The name of the zone where the instance group is located.
88158func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
88159	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88160	c.project = project
88161	c.zone = zone
88162	c.instanceGroup = instanceGroup
88163	return c
88164}
88165
88166// Fields allows partial responses to be retrieved. See
88167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88168// for more information.
88169func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
88170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88171	return c
88172}
88173
88174// IfNoneMatch sets the optional parameter which makes the operation
88175// fail if the object's ETag matches the given value. This is useful for
88176// getting updates only after the object has changed since the last
88177// request. Use googleapi.IsNotModified to check whether the response
88178// error from Do is the result of In-None-Match.
88179func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
88180	c.ifNoneMatch_ = entityTag
88181	return c
88182}
88183
88184// Context sets the context to be used in this call's Do method. Any
88185// pending HTTP request will be aborted if the provided context is
88186// canceled.
88187func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
88188	c.ctx_ = ctx
88189	return c
88190}
88191
88192// Header returns an http.Header that can be modified by the caller to
88193// add HTTP headers to the request.
88194func (c *InstanceGroupsGetCall) Header() http.Header {
88195	if c.header_ == nil {
88196		c.header_ = make(http.Header)
88197	}
88198	return c.header_
88199}
88200
88201func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
88202	reqHeaders := make(http.Header)
88203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88204	for k, v := range c.header_ {
88205		reqHeaders[k] = v
88206	}
88207	reqHeaders.Set("User-Agent", c.s.userAgent())
88208	if c.ifNoneMatch_ != "" {
88209		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88210	}
88211	var body io.Reader = nil
88212	c.urlParams_.Set("alt", alt)
88213	c.urlParams_.Set("prettyPrint", "false")
88214	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
88215	urls += "?" + c.urlParams_.Encode()
88216	req, err := http.NewRequest("GET", urls, body)
88217	if err != nil {
88218		return nil, err
88219	}
88220	req.Header = reqHeaders
88221	googleapi.Expand(req.URL, map[string]string{
88222		"project":       c.project,
88223		"zone":          c.zone,
88224		"instanceGroup": c.instanceGroup,
88225	})
88226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88227}
88228
88229// Do executes the "compute.instanceGroups.get" call.
88230// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
88231// status code is an error. Response headers are in either
88232// *InstanceGroup.ServerResponse.Header or (if a response was returned
88233// at all) in error.(*googleapi.Error).Header. Use
88234// googleapi.IsNotModified to check whether the returned error was
88235// because http.StatusNotModified was returned.
88236func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
88237	gensupport.SetOptions(c.urlParams_, opts...)
88238	res, err := c.doRequest("json")
88239	if res != nil && res.StatusCode == http.StatusNotModified {
88240		if res.Body != nil {
88241			res.Body.Close()
88242		}
88243		return nil, &googleapi.Error{
88244			Code:   res.StatusCode,
88245			Header: res.Header,
88246		}
88247	}
88248	if err != nil {
88249		return nil, err
88250	}
88251	defer googleapi.CloseBody(res)
88252	if err := googleapi.CheckResponse(res); err != nil {
88253		return nil, err
88254	}
88255	ret := &InstanceGroup{
88256		ServerResponse: googleapi.ServerResponse{
88257			Header:         res.Header,
88258			HTTPStatusCode: res.StatusCode,
88259		},
88260	}
88261	target := &ret
88262	if err := gensupport.DecodeResponse(target, res); err != nil {
88263		return nil, err
88264	}
88265	return ret, nil
88266	// {
88267	//   "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.",
88268	//   "httpMethod": "GET",
88269	//   "id": "compute.instanceGroups.get",
88270	//   "parameterOrder": [
88271	//     "project",
88272	//     "zone",
88273	//     "instanceGroup"
88274	//   ],
88275	//   "parameters": {
88276	//     "instanceGroup": {
88277	//       "description": "The name of the instance group.",
88278	//       "location": "path",
88279	//       "required": true,
88280	//       "type": "string"
88281	//     },
88282	//     "project": {
88283	//       "description": "Project ID for this request.",
88284	//       "location": "path",
88285	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88286	//       "required": true,
88287	//       "type": "string"
88288	//     },
88289	//     "zone": {
88290	//       "description": "The name of the zone where the instance group is located.",
88291	//       "location": "path",
88292	//       "required": true,
88293	//       "type": "string"
88294	//     }
88295	//   },
88296	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
88297	//   "response": {
88298	//     "$ref": "InstanceGroup"
88299	//   },
88300	//   "scopes": [
88301	//     "https://www.googleapis.com/auth/cloud-platform",
88302	//     "https://www.googleapis.com/auth/compute",
88303	//     "https://www.googleapis.com/auth/compute.readonly"
88304	//   ]
88305	// }
88306
88307}
88308
88309// method id "compute.instanceGroups.insert":
88310
88311type InstanceGroupsInsertCall struct {
88312	s             *Service
88313	project       string
88314	zone          string
88315	instancegroup *InstanceGroup
88316	urlParams_    gensupport.URLParams
88317	ctx_          context.Context
88318	header_       http.Header
88319}
88320
88321// Insert: Creates an instance group in the specified project using the
88322// parameters that are included in the request.
88323//
88324// - project: Project ID for this request.
88325// - zone: The name of the zone where you want to create the instance
88326//   group.
88327func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
88328	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88329	c.project = project
88330	c.zone = zone
88331	c.instancegroup = instancegroup
88332	return c
88333}
88334
88335// RequestId sets the optional parameter "requestId": An optional
88336// request ID to identify requests. Specify a unique request ID so that
88337// if you must retry your request, the server will know to ignore the
88338// request if it has already been completed.
88339//
88340// For example, consider a situation where you make an initial request
88341// and the request times out. If you make the request again with the
88342// same request ID, the server can check if original operation with the
88343// same request ID was received, and if so, will ignore the second
88344// request. This prevents clients from accidentally creating duplicate
88345// commitments.
88346//
88347// The request ID must be a valid UUID with the exception that zero UUID
88348// is not supported (00000000-0000-0000-0000-000000000000).
88349func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
88350	c.urlParams_.Set("requestId", requestId)
88351	return c
88352}
88353
88354// Fields allows partial responses to be retrieved. See
88355// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88356// for more information.
88357func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
88358	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88359	return c
88360}
88361
88362// Context sets the context to be used in this call's Do method. Any
88363// pending HTTP request will be aborted if the provided context is
88364// canceled.
88365func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
88366	c.ctx_ = ctx
88367	return c
88368}
88369
88370// Header returns an http.Header that can be modified by the caller to
88371// add HTTP headers to the request.
88372func (c *InstanceGroupsInsertCall) Header() http.Header {
88373	if c.header_ == nil {
88374		c.header_ = make(http.Header)
88375	}
88376	return c.header_
88377}
88378
88379func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
88380	reqHeaders := make(http.Header)
88381	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88382	for k, v := range c.header_ {
88383		reqHeaders[k] = v
88384	}
88385	reqHeaders.Set("User-Agent", c.s.userAgent())
88386	var body io.Reader = nil
88387	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
88388	if err != nil {
88389		return nil, err
88390	}
88391	reqHeaders.Set("Content-Type", "application/json")
88392	c.urlParams_.Set("alt", alt)
88393	c.urlParams_.Set("prettyPrint", "false")
88394	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
88395	urls += "?" + c.urlParams_.Encode()
88396	req, err := http.NewRequest("POST", urls, body)
88397	if err != nil {
88398		return nil, err
88399	}
88400	req.Header = reqHeaders
88401	googleapi.Expand(req.URL, map[string]string{
88402		"project": c.project,
88403		"zone":    c.zone,
88404	})
88405	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88406}
88407
88408// Do executes the "compute.instanceGroups.insert" call.
88409// Exactly one of *Operation or error will be non-nil. Any non-2xx
88410// status code is an error. Response headers are in either
88411// *Operation.ServerResponse.Header or (if a response was returned at
88412// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88413// to check whether the returned error was because
88414// http.StatusNotModified was returned.
88415func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88416	gensupport.SetOptions(c.urlParams_, opts...)
88417	res, err := c.doRequest("json")
88418	if res != nil && res.StatusCode == http.StatusNotModified {
88419		if res.Body != nil {
88420			res.Body.Close()
88421		}
88422		return nil, &googleapi.Error{
88423			Code:   res.StatusCode,
88424			Header: res.Header,
88425		}
88426	}
88427	if err != nil {
88428		return nil, err
88429	}
88430	defer googleapi.CloseBody(res)
88431	if err := googleapi.CheckResponse(res); err != nil {
88432		return nil, err
88433	}
88434	ret := &Operation{
88435		ServerResponse: googleapi.ServerResponse{
88436			Header:         res.Header,
88437			HTTPStatusCode: res.StatusCode,
88438		},
88439	}
88440	target := &ret
88441	if err := gensupport.DecodeResponse(target, res); err != nil {
88442		return nil, err
88443	}
88444	return ret, nil
88445	// {
88446	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
88447	//   "httpMethod": "POST",
88448	//   "id": "compute.instanceGroups.insert",
88449	//   "parameterOrder": [
88450	//     "project",
88451	//     "zone"
88452	//   ],
88453	//   "parameters": {
88454	//     "project": {
88455	//       "description": "Project ID for this request.",
88456	//       "location": "path",
88457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88458	//       "required": true,
88459	//       "type": "string"
88460	//     },
88461	//     "requestId": {
88462	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88463	//       "location": "query",
88464	//       "type": "string"
88465	//     },
88466	//     "zone": {
88467	//       "description": "The name of the zone where you want to create the instance group.",
88468	//       "location": "path",
88469	//       "required": true,
88470	//       "type": "string"
88471	//     }
88472	//   },
88473	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
88474	//   "request": {
88475	//     "$ref": "InstanceGroup"
88476	//   },
88477	//   "response": {
88478	//     "$ref": "Operation"
88479	//   },
88480	//   "scopes": [
88481	//     "https://www.googleapis.com/auth/cloud-platform",
88482	//     "https://www.googleapis.com/auth/compute"
88483	//   ]
88484	// }
88485
88486}
88487
88488// method id "compute.instanceGroups.list":
88489
88490type InstanceGroupsListCall struct {
88491	s            *Service
88492	project      string
88493	zone         string
88494	urlParams_   gensupport.URLParams
88495	ifNoneMatch_ string
88496	ctx_         context.Context
88497	header_      http.Header
88498}
88499
88500// List: Retrieves the list of zonal instance group resources contained
88501// within the specified zone.
88502//
88503// For managed instance groups, use the instanceGroupManagers or
88504// regionInstanceGroupManagers methods instead.
88505//
88506// - project: Project ID for this request.
88507// - zone: The name of the zone where the instance group is located.
88508func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
88509	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88510	c.project = project
88511	c.zone = zone
88512	return c
88513}
88514
88515// Filter sets the optional parameter "filter": A filter expression that
88516// filters resources listed in the response. The expression must specify
88517// the field name, a comparison operator, and the value that you want to
88518// use for filtering. The value must be a string, a number, or a
88519// boolean. The comparison operator must be either `=`, `!=`, `>`, or
88520// `<`.
88521//
88522// For example, if you are filtering Compute Engine instances, you can
88523// exclude instances named `example-instance` by specifying `name !=
88524// example-instance`.
88525//
88526// You can also filter nested fields. For example, you could specify
88527// `scheduling.automaticRestart = false` to include instances only if
88528// they are not scheduled for automatic restarts. You can use filtering
88529// on nested fields to filter based on resource labels.
88530//
88531// To filter on multiple expressions, provide each separate expression
88532// within parentheses. For example: ``` (scheduling.automaticRestart =
88533// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
88534// is an `AND` expression. However, you can include `AND` and `OR`
88535// expressions explicitly. For example: ``` (cpuPlatform = "Intel
88536// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
88537// (scheduling.automaticRestart = true) ```
88538func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
88539	c.urlParams_.Set("filter", filter)
88540	return c
88541}
88542
88543// MaxResults sets the optional parameter "maxResults": The maximum
88544// number of results per page that should be returned. If the number of
88545// available results is larger than `maxResults`, Compute Engine returns
88546// a `nextPageToken` that can be used to get the next page of results in
88547// subsequent list requests. Acceptable values are `0` to `500`,
88548// inclusive. (Default: `500`)
88549func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
88550	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
88551	return c
88552}
88553
88554// OrderBy sets the optional parameter "orderBy": Sorts list results by
88555// a certain order. By default, results are returned in alphanumerical
88556// order based on the resource name.
88557//
88558// You can also sort results in descending order based on the creation
88559// timestamp using `orderBy="creationTimestamp desc". This sorts
88560// results based on the `creationTimestamp` field in reverse
88561// chronological order (newest result first). Use this to sort resources
88562// like operations so that the newest operation is returned
88563// first.
88564//
88565// Currently, only sorting by `name` or `creationTimestamp desc` is
88566// supported.
88567func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
88568	c.urlParams_.Set("orderBy", orderBy)
88569	return c
88570}
88571
88572// PageToken sets the optional parameter "pageToken": Specifies a page
88573// token to use. Set `pageToken` to the `nextPageToken` returned by a
88574// previous list request to get the next page of results.
88575func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
88576	c.urlParams_.Set("pageToken", pageToken)
88577	return c
88578}
88579
88580// ReturnPartialSuccess sets the optional parameter
88581// "returnPartialSuccess": Opt-in for partial success behavior which
88582// provides partial results in case of failure. The default value is
88583// false.
88584func (c *InstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListCall {
88585	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
88586	return c
88587}
88588
88589// Fields allows partial responses to be retrieved. See
88590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88591// for more information.
88592func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
88593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88594	return c
88595}
88596
88597// IfNoneMatch sets the optional parameter which makes the operation
88598// fail if the object's ETag matches the given value. This is useful for
88599// getting updates only after the object has changed since the last
88600// request. Use googleapi.IsNotModified to check whether the response
88601// error from Do is the result of In-None-Match.
88602func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
88603	c.ifNoneMatch_ = entityTag
88604	return c
88605}
88606
88607// Context sets the context to be used in this call's Do method. Any
88608// pending HTTP request will be aborted if the provided context is
88609// canceled.
88610func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
88611	c.ctx_ = ctx
88612	return c
88613}
88614
88615// Header returns an http.Header that can be modified by the caller to
88616// add HTTP headers to the request.
88617func (c *InstanceGroupsListCall) Header() http.Header {
88618	if c.header_ == nil {
88619		c.header_ = make(http.Header)
88620	}
88621	return c.header_
88622}
88623
88624func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
88625	reqHeaders := make(http.Header)
88626	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88627	for k, v := range c.header_ {
88628		reqHeaders[k] = v
88629	}
88630	reqHeaders.Set("User-Agent", c.s.userAgent())
88631	if c.ifNoneMatch_ != "" {
88632		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88633	}
88634	var body io.Reader = nil
88635	c.urlParams_.Set("alt", alt)
88636	c.urlParams_.Set("prettyPrint", "false")
88637	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
88638	urls += "?" + c.urlParams_.Encode()
88639	req, err := http.NewRequest("GET", urls, body)
88640	if err != nil {
88641		return nil, err
88642	}
88643	req.Header = reqHeaders
88644	googleapi.Expand(req.URL, map[string]string{
88645		"project": c.project,
88646		"zone":    c.zone,
88647	})
88648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88649}
88650
88651// Do executes the "compute.instanceGroups.list" call.
88652// Exactly one of *InstanceGroupList or error will be non-nil. Any
88653// non-2xx status code is an error. Response headers are in either
88654// *InstanceGroupList.ServerResponse.Header or (if a response was
88655// returned at all) in error.(*googleapi.Error).Header. Use
88656// googleapi.IsNotModified to check whether the returned error was
88657// because http.StatusNotModified was returned.
88658func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
88659	gensupport.SetOptions(c.urlParams_, opts...)
88660	res, err := c.doRequest("json")
88661	if res != nil && res.StatusCode == http.StatusNotModified {
88662		if res.Body != nil {
88663			res.Body.Close()
88664		}
88665		return nil, &googleapi.Error{
88666			Code:   res.StatusCode,
88667			Header: res.Header,
88668		}
88669	}
88670	if err != nil {
88671		return nil, err
88672	}
88673	defer googleapi.CloseBody(res)
88674	if err := googleapi.CheckResponse(res); err != nil {
88675		return nil, err
88676	}
88677	ret := &InstanceGroupList{
88678		ServerResponse: googleapi.ServerResponse{
88679			Header:         res.Header,
88680			HTTPStatusCode: res.StatusCode,
88681		},
88682	}
88683	target := &ret
88684	if err := gensupport.DecodeResponse(target, res); err != nil {
88685		return nil, err
88686	}
88687	return ret, nil
88688	// {
88689	//   "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.",
88690	//   "httpMethod": "GET",
88691	//   "id": "compute.instanceGroups.list",
88692	//   "parameterOrder": [
88693	//     "project",
88694	//     "zone"
88695	//   ],
88696	//   "parameters": {
88697	//     "filter": {
88698	//       "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) ```",
88699	//       "location": "query",
88700	//       "type": "string"
88701	//     },
88702	//     "maxResults": {
88703	//       "default": "500",
88704	//       "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`)",
88705	//       "format": "uint32",
88706	//       "location": "query",
88707	//       "minimum": "0",
88708	//       "type": "integer"
88709	//     },
88710	//     "orderBy": {
88711	//       "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.",
88712	//       "location": "query",
88713	//       "type": "string"
88714	//     },
88715	//     "pageToken": {
88716	//       "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.",
88717	//       "location": "query",
88718	//       "type": "string"
88719	//     },
88720	//     "project": {
88721	//       "description": "Project ID for this request.",
88722	//       "location": "path",
88723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88724	//       "required": true,
88725	//       "type": "string"
88726	//     },
88727	//     "returnPartialSuccess": {
88728	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
88729	//       "location": "query",
88730	//       "type": "boolean"
88731	//     },
88732	//     "zone": {
88733	//       "description": "The name of the zone where the instance group is located.",
88734	//       "location": "path",
88735	//       "required": true,
88736	//       "type": "string"
88737	//     }
88738	//   },
88739	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
88740	//   "response": {
88741	//     "$ref": "InstanceGroupList"
88742	//   },
88743	//   "scopes": [
88744	//     "https://www.googleapis.com/auth/cloud-platform",
88745	//     "https://www.googleapis.com/auth/compute",
88746	//     "https://www.googleapis.com/auth/compute.readonly"
88747	//   ]
88748	// }
88749
88750}
88751
88752// Pages invokes f for each page of results.
88753// A non-nil error returned from f will halt the iteration.
88754// The provided context supersedes any context provided to the Context method.
88755func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
88756	c.ctx_ = ctx
88757	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
88758	for {
88759		x, err := c.Do()
88760		if err != nil {
88761			return err
88762		}
88763		if err := f(x); err != nil {
88764			return err
88765		}
88766		if x.NextPageToken == "" {
88767			return nil
88768		}
88769		c.PageToken(x.NextPageToken)
88770	}
88771}
88772
88773// method id "compute.instanceGroups.listInstances":
88774
88775type InstanceGroupsListInstancesCall struct {
88776	s                                  *Service
88777	project                            string
88778	zone                               string
88779	instanceGroup                      string
88780	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
88781	urlParams_                         gensupport.URLParams
88782	ctx_                               context.Context
88783	header_                            http.Header
88784}
88785
88786// ListInstances: Lists the instances in the specified instance group.
88787// The orderBy query parameter is not supported.
88788//
88789// - instanceGroup: The name of the instance group from which you want
88790//   to generate a list of included instances.
88791// - project: Project ID for this request.
88792// - zone: The name of the zone where the instance group is located.
88793func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
88794	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88795	c.project = project
88796	c.zone = zone
88797	c.instanceGroup = instanceGroup
88798	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
88799	return c
88800}
88801
88802// Filter sets the optional parameter "filter": A filter expression that
88803// filters resources listed in the response. The expression must specify
88804// the field name, a comparison operator, and the value that you want to
88805// use for filtering. The value must be a string, a number, or a
88806// boolean. The comparison operator must be either `=`, `!=`, `>`, or
88807// `<`.
88808//
88809// For example, if you are filtering Compute Engine instances, you can
88810// exclude instances named `example-instance` by specifying `name !=
88811// example-instance`.
88812//
88813// You can also filter nested fields. For example, you could specify
88814// `scheduling.automaticRestart = false` to include instances only if
88815// they are not scheduled for automatic restarts. You can use filtering
88816// on nested fields to filter based on resource labels.
88817//
88818// To filter on multiple expressions, provide each separate expression
88819// within parentheses. For example: ``` (scheduling.automaticRestart =
88820// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
88821// is an `AND` expression. However, you can include `AND` and `OR`
88822// expressions explicitly. For example: ``` (cpuPlatform = "Intel
88823// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
88824// (scheduling.automaticRestart = true) ```
88825func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
88826	c.urlParams_.Set("filter", filter)
88827	return c
88828}
88829
88830// MaxResults sets the optional parameter "maxResults": The maximum
88831// number of results per page that should be returned. If the number of
88832// available results is larger than `maxResults`, Compute Engine returns
88833// a `nextPageToken` that can be used to get the next page of results in
88834// subsequent list requests. Acceptable values are `0` to `500`,
88835// inclusive. (Default: `500`)
88836func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
88837	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
88838	return c
88839}
88840
88841// OrderBy sets the optional parameter "orderBy": Sorts list results by
88842// a certain order. By default, results are returned in alphanumerical
88843// order based on the resource name.
88844//
88845// You can also sort results in descending order based on the creation
88846// timestamp using `orderBy="creationTimestamp desc". This sorts
88847// results based on the `creationTimestamp` field in reverse
88848// chronological order (newest result first). Use this to sort resources
88849// like operations so that the newest operation is returned
88850// first.
88851//
88852// Currently, only sorting by `name` or `creationTimestamp desc` is
88853// supported.
88854func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
88855	c.urlParams_.Set("orderBy", orderBy)
88856	return c
88857}
88858
88859// PageToken sets the optional parameter "pageToken": Specifies a page
88860// token to use. Set `pageToken` to the `nextPageToken` returned by a
88861// previous list request to get the next page of results.
88862func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
88863	c.urlParams_.Set("pageToken", pageToken)
88864	return c
88865}
88866
88867// ReturnPartialSuccess sets the optional parameter
88868// "returnPartialSuccess": Opt-in for partial success behavior which
88869// provides partial results in case of failure. The default value is
88870// false.
88871func (c *InstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListInstancesCall {
88872	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
88873	return c
88874}
88875
88876// Fields allows partial responses to be retrieved. See
88877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88878// for more information.
88879func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
88880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88881	return c
88882}
88883
88884// Context sets the context to be used in this call's Do method. Any
88885// pending HTTP request will be aborted if the provided context is
88886// canceled.
88887func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
88888	c.ctx_ = ctx
88889	return c
88890}
88891
88892// Header returns an http.Header that can be modified by the caller to
88893// add HTTP headers to the request.
88894func (c *InstanceGroupsListInstancesCall) Header() http.Header {
88895	if c.header_ == nil {
88896		c.header_ = make(http.Header)
88897	}
88898	return c.header_
88899}
88900
88901func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
88902	reqHeaders := make(http.Header)
88903	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88904	for k, v := range c.header_ {
88905		reqHeaders[k] = v
88906	}
88907	reqHeaders.Set("User-Agent", c.s.userAgent())
88908	var body io.Reader = nil
88909	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
88910	if err != nil {
88911		return nil, err
88912	}
88913	reqHeaders.Set("Content-Type", "application/json")
88914	c.urlParams_.Set("alt", alt)
88915	c.urlParams_.Set("prettyPrint", "false")
88916	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
88917	urls += "?" + c.urlParams_.Encode()
88918	req, err := http.NewRequest("POST", urls, body)
88919	if err != nil {
88920		return nil, err
88921	}
88922	req.Header = reqHeaders
88923	googleapi.Expand(req.URL, map[string]string{
88924		"project":       c.project,
88925		"zone":          c.zone,
88926		"instanceGroup": c.instanceGroup,
88927	})
88928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88929}
88930
88931// Do executes the "compute.instanceGroups.listInstances" call.
88932// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
88933// Any non-2xx status code is an error. Response headers are in either
88934// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
88935// was returned at all) in error.(*googleapi.Error).Header. Use
88936// googleapi.IsNotModified to check whether the returned error was
88937// because http.StatusNotModified was returned.
88938func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
88939	gensupport.SetOptions(c.urlParams_, opts...)
88940	res, err := c.doRequest("json")
88941	if res != nil && res.StatusCode == http.StatusNotModified {
88942		if res.Body != nil {
88943			res.Body.Close()
88944		}
88945		return nil, &googleapi.Error{
88946			Code:   res.StatusCode,
88947			Header: res.Header,
88948		}
88949	}
88950	if err != nil {
88951		return nil, err
88952	}
88953	defer googleapi.CloseBody(res)
88954	if err := googleapi.CheckResponse(res); err != nil {
88955		return nil, err
88956	}
88957	ret := &InstanceGroupsListInstances{
88958		ServerResponse: googleapi.ServerResponse{
88959			Header:         res.Header,
88960			HTTPStatusCode: res.StatusCode,
88961		},
88962	}
88963	target := &ret
88964	if err := gensupport.DecodeResponse(target, res); err != nil {
88965		return nil, err
88966	}
88967	return ret, nil
88968	// {
88969	//   "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.",
88970	//   "httpMethod": "POST",
88971	//   "id": "compute.instanceGroups.listInstances",
88972	//   "parameterOrder": [
88973	//     "project",
88974	//     "zone",
88975	//     "instanceGroup"
88976	//   ],
88977	//   "parameters": {
88978	//     "filter": {
88979	//       "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) ```",
88980	//       "location": "query",
88981	//       "type": "string"
88982	//     },
88983	//     "instanceGroup": {
88984	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
88985	//       "location": "path",
88986	//       "required": true,
88987	//       "type": "string"
88988	//     },
88989	//     "maxResults": {
88990	//       "default": "500",
88991	//       "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`)",
88992	//       "format": "uint32",
88993	//       "location": "query",
88994	//       "minimum": "0",
88995	//       "type": "integer"
88996	//     },
88997	//     "orderBy": {
88998	//       "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.",
88999	//       "location": "query",
89000	//       "type": "string"
89001	//     },
89002	//     "pageToken": {
89003	//       "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.",
89004	//       "location": "query",
89005	//       "type": "string"
89006	//     },
89007	//     "project": {
89008	//       "description": "Project ID for this request.",
89009	//       "location": "path",
89010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89011	//       "required": true,
89012	//       "type": "string"
89013	//     },
89014	//     "returnPartialSuccess": {
89015	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
89016	//       "location": "query",
89017	//       "type": "boolean"
89018	//     },
89019	//     "zone": {
89020	//       "description": "The name of the zone where the instance group is located.",
89021	//       "location": "path",
89022	//       "required": true,
89023	//       "type": "string"
89024	//     }
89025	//   },
89026	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
89027	//   "request": {
89028	//     "$ref": "InstanceGroupsListInstancesRequest"
89029	//   },
89030	//   "response": {
89031	//     "$ref": "InstanceGroupsListInstances"
89032	//   },
89033	//   "scopes": [
89034	//     "https://www.googleapis.com/auth/cloud-platform",
89035	//     "https://www.googleapis.com/auth/compute",
89036	//     "https://www.googleapis.com/auth/compute.readonly"
89037	//   ]
89038	// }
89039
89040}
89041
89042// Pages invokes f for each page of results.
89043// A non-nil error returned from f will halt the iteration.
89044// The provided context supersedes any context provided to the Context method.
89045func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
89046	c.ctx_ = ctx
89047	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
89048	for {
89049		x, err := c.Do()
89050		if err != nil {
89051			return err
89052		}
89053		if err := f(x); err != nil {
89054			return err
89055		}
89056		if x.NextPageToken == "" {
89057			return nil
89058		}
89059		c.PageToken(x.NextPageToken)
89060	}
89061}
89062
89063// method id "compute.instanceGroups.removeInstances":
89064
89065type InstanceGroupsRemoveInstancesCall struct {
89066	s                                    *Service
89067	project                              string
89068	zone                                 string
89069	instanceGroup                        string
89070	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
89071	urlParams_                           gensupport.URLParams
89072	ctx_                                 context.Context
89073	header_                              http.Header
89074}
89075
89076// RemoveInstances: Removes one or more instances from the specified
89077// instance group, but does not delete those instances.
89078//
89079// If the group is part of a backend service that has enabled connection
89080// draining, it can take up to 60 seconds after the connection draining
89081// duration before the VM instance is removed or deleted.
89082//
89083// - instanceGroup: The name of the instance group where the specified
89084//   instances will be removed.
89085// - project: Project ID for this request.
89086// - zone: The name of the zone where the instance group is located.
89087func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
89088	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89089	c.project = project
89090	c.zone = zone
89091	c.instanceGroup = instanceGroup
89092	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
89093	return c
89094}
89095
89096// RequestId sets the optional parameter "requestId": An optional
89097// request ID to identify requests. Specify a unique request ID so that
89098// if you must retry your request, the server will know to ignore the
89099// request if it has already been completed.
89100//
89101// For example, consider a situation where you make an initial request
89102// and the request times out. If you make the request again with the
89103// same request ID, the server can check if original operation with the
89104// same request ID was received, and if so, will ignore the second
89105// request. This prevents clients from accidentally creating duplicate
89106// commitments.
89107//
89108// The request ID must be a valid UUID with the exception that zero UUID
89109// is not supported (00000000-0000-0000-0000-000000000000).
89110func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
89111	c.urlParams_.Set("requestId", requestId)
89112	return c
89113}
89114
89115// Fields allows partial responses to be retrieved. See
89116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89117// for more information.
89118func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
89119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89120	return c
89121}
89122
89123// Context sets the context to be used in this call's Do method. Any
89124// pending HTTP request will be aborted if the provided context is
89125// canceled.
89126func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
89127	c.ctx_ = ctx
89128	return c
89129}
89130
89131// Header returns an http.Header that can be modified by the caller to
89132// add HTTP headers to the request.
89133func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
89134	if c.header_ == nil {
89135		c.header_ = make(http.Header)
89136	}
89137	return c.header_
89138}
89139
89140func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
89141	reqHeaders := make(http.Header)
89142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89143	for k, v := range c.header_ {
89144		reqHeaders[k] = v
89145	}
89146	reqHeaders.Set("User-Agent", c.s.userAgent())
89147	var body io.Reader = nil
89148	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
89149	if err != nil {
89150		return nil, err
89151	}
89152	reqHeaders.Set("Content-Type", "application/json")
89153	c.urlParams_.Set("alt", alt)
89154	c.urlParams_.Set("prettyPrint", "false")
89155	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
89156	urls += "?" + c.urlParams_.Encode()
89157	req, err := http.NewRequest("POST", urls, body)
89158	if err != nil {
89159		return nil, err
89160	}
89161	req.Header = reqHeaders
89162	googleapi.Expand(req.URL, map[string]string{
89163		"project":       c.project,
89164		"zone":          c.zone,
89165		"instanceGroup": c.instanceGroup,
89166	})
89167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89168}
89169
89170// Do executes the "compute.instanceGroups.removeInstances" call.
89171// Exactly one of *Operation or error will be non-nil. Any non-2xx
89172// status code is an error. Response headers are in either
89173// *Operation.ServerResponse.Header or (if a response was returned at
89174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89175// to check whether the returned error was because
89176// http.StatusNotModified was returned.
89177func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89178	gensupport.SetOptions(c.urlParams_, opts...)
89179	res, err := c.doRequest("json")
89180	if res != nil && res.StatusCode == http.StatusNotModified {
89181		if res.Body != nil {
89182			res.Body.Close()
89183		}
89184		return nil, &googleapi.Error{
89185			Code:   res.StatusCode,
89186			Header: res.Header,
89187		}
89188	}
89189	if err != nil {
89190		return nil, err
89191	}
89192	defer googleapi.CloseBody(res)
89193	if err := googleapi.CheckResponse(res); err != nil {
89194		return nil, err
89195	}
89196	ret := &Operation{
89197		ServerResponse: googleapi.ServerResponse{
89198			Header:         res.Header,
89199			HTTPStatusCode: res.StatusCode,
89200		},
89201	}
89202	target := &ret
89203	if err := gensupport.DecodeResponse(target, res); err != nil {
89204		return nil, err
89205	}
89206	return ret, nil
89207	// {
89208	//   "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.",
89209	//   "httpMethod": "POST",
89210	//   "id": "compute.instanceGroups.removeInstances",
89211	//   "parameterOrder": [
89212	//     "project",
89213	//     "zone",
89214	//     "instanceGroup"
89215	//   ],
89216	//   "parameters": {
89217	//     "instanceGroup": {
89218	//       "description": "The name of the instance group where the specified instances will be removed.",
89219	//       "location": "path",
89220	//       "required": true,
89221	//       "type": "string"
89222	//     },
89223	//     "project": {
89224	//       "description": "Project ID for this request.",
89225	//       "location": "path",
89226	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89227	//       "required": true,
89228	//       "type": "string"
89229	//     },
89230	//     "requestId": {
89231	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89232	//       "location": "query",
89233	//       "type": "string"
89234	//     },
89235	//     "zone": {
89236	//       "description": "The name of the zone where the instance group is located.",
89237	//       "location": "path",
89238	//       "required": true,
89239	//       "type": "string"
89240	//     }
89241	//   },
89242	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
89243	//   "request": {
89244	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
89245	//   },
89246	//   "response": {
89247	//     "$ref": "Operation"
89248	//   },
89249	//   "scopes": [
89250	//     "https://www.googleapis.com/auth/cloud-platform",
89251	//     "https://www.googleapis.com/auth/compute"
89252	//   ]
89253	// }
89254
89255}
89256
89257// method id "compute.instanceGroups.setNamedPorts":
89258
89259type InstanceGroupsSetNamedPortsCall struct {
89260	s                                  *Service
89261	project                            string
89262	zone                               string
89263	instanceGroup                      string
89264	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
89265	urlParams_                         gensupport.URLParams
89266	ctx_                               context.Context
89267	header_                            http.Header
89268}
89269
89270// SetNamedPorts: Sets the named ports for the specified instance group.
89271//
89272// - instanceGroup: The name of the instance group where the named ports
89273//   are updated.
89274// - project: Project ID for this request.
89275// - zone: The name of the zone where the instance group is located.
89276func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
89277	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89278	c.project = project
89279	c.zone = zone
89280	c.instanceGroup = instanceGroup
89281	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
89282	return c
89283}
89284
89285// RequestId sets the optional parameter "requestId": An optional
89286// request ID to identify requests. Specify a unique request ID so that
89287// if you must retry your request, the server will know to ignore the
89288// request if it has already been completed.
89289//
89290// For example, consider a situation where you make an initial request
89291// and the request times out. If you make the request again with the
89292// same request ID, the server can check if original operation with the
89293// same request ID was received, and if so, will ignore the second
89294// request. This prevents clients from accidentally creating duplicate
89295// commitments.
89296//
89297// The request ID must be a valid UUID with the exception that zero UUID
89298// is not supported (00000000-0000-0000-0000-000000000000).
89299func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
89300	c.urlParams_.Set("requestId", requestId)
89301	return c
89302}
89303
89304// Fields allows partial responses to be retrieved. See
89305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89306// for more information.
89307func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
89308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89309	return c
89310}
89311
89312// Context sets the context to be used in this call's Do method. Any
89313// pending HTTP request will be aborted if the provided context is
89314// canceled.
89315func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
89316	c.ctx_ = ctx
89317	return c
89318}
89319
89320// Header returns an http.Header that can be modified by the caller to
89321// add HTTP headers to the request.
89322func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
89323	if c.header_ == nil {
89324		c.header_ = make(http.Header)
89325	}
89326	return c.header_
89327}
89328
89329func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
89330	reqHeaders := make(http.Header)
89331	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89332	for k, v := range c.header_ {
89333		reqHeaders[k] = v
89334	}
89335	reqHeaders.Set("User-Agent", c.s.userAgent())
89336	var body io.Reader = nil
89337	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
89338	if err != nil {
89339		return nil, err
89340	}
89341	reqHeaders.Set("Content-Type", "application/json")
89342	c.urlParams_.Set("alt", alt)
89343	c.urlParams_.Set("prettyPrint", "false")
89344	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
89345	urls += "?" + c.urlParams_.Encode()
89346	req, err := http.NewRequest("POST", urls, body)
89347	if err != nil {
89348		return nil, err
89349	}
89350	req.Header = reqHeaders
89351	googleapi.Expand(req.URL, map[string]string{
89352		"project":       c.project,
89353		"zone":          c.zone,
89354		"instanceGroup": c.instanceGroup,
89355	})
89356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89357}
89358
89359// Do executes the "compute.instanceGroups.setNamedPorts" call.
89360// Exactly one of *Operation or error will be non-nil. Any non-2xx
89361// status code is an error. Response headers are in either
89362// *Operation.ServerResponse.Header or (if a response was returned at
89363// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89364// to check whether the returned error was because
89365// http.StatusNotModified was returned.
89366func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89367	gensupport.SetOptions(c.urlParams_, opts...)
89368	res, err := c.doRequest("json")
89369	if res != nil && res.StatusCode == http.StatusNotModified {
89370		if res.Body != nil {
89371			res.Body.Close()
89372		}
89373		return nil, &googleapi.Error{
89374			Code:   res.StatusCode,
89375			Header: res.Header,
89376		}
89377	}
89378	if err != nil {
89379		return nil, err
89380	}
89381	defer googleapi.CloseBody(res)
89382	if err := googleapi.CheckResponse(res); err != nil {
89383		return nil, err
89384	}
89385	ret := &Operation{
89386		ServerResponse: googleapi.ServerResponse{
89387			Header:         res.Header,
89388			HTTPStatusCode: res.StatusCode,
89389		},
89390	}
89391	target := &ret
89392	if err := gensupport.DecodeResponse(target, res); err != nil {
89393		return nil, err
89394	}
89395	return ret, nil
89396	// {
89397	//   "description": "Sets the named ports for the specified instance group.",
89398	//   "httpMethod": "POST",
89399	//   "id": "compute.instanceGroups.setNamedPorts",
89400	//   "parameterOrder": [
89401	//     "project",
89402	//     "zone",
89403	//     "instanceGroup"
89404	//   ],
89405	//   "parameters": {
89406	//     "instanceGroup": {
89407	//       "description": "The name of the instance group where the named ports are updated.",
89408	//       "location": "path",
89409	//       "required": true,
89410	//       "type": "string"
89411	//     },
89412	//     "project": {
89413	//       "description": "Project ID for this request.",
89414	//       "location": "path",
89415	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89416	//       "required": true,
89417	//       "type": "string"
89418	//     },
89419	//     "requestId": {
89420	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89421	//       "location": "query",
89422	//       "type": "string"
89423	//     },
89424	//     "zone": {
89425	//       "description": "The name of the zone where the instance group is located.",
89426	//       "location": "path",
89427	//       "required": true,
89428	//       "type": "string"
89429	//     }
89430	//   },
89431	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
89432	//   "request": {
89433	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
89434	//   },
89435	//   "response": {
89436	//     "$ref": "Operation"
89437	//   },
89438	//   "scopes": [
89439	//     "https://www.googleapis.com/auth/cloud-platform",
89440	//     "https://www.googleapis.com/auth/compute"
89441	//   ]
89442	// }
89443
89444}
89445
89446// method id "compute.instanceGroups.testIamPermissions":
89447
89448type InstanceGroupsTestIamPermissionsCall struct {
89449	s                      *Service
89450	project                string
89451	zone                   string
89452	resource               string
89453	testpermissionsrequest *TestPermissionsRequest
89454	urlParams_             gensupport.URLParams
89455	ctx_                   context.Context
89456	header_                http.Header
89457}
89458
89459// TestIamPermissions: Returns permissions that a caller has on the
89460// specified resource.
89461//
89462// - project: Project ID for this request.
89463// - resource: Name or id of the resource for this request.
89464// - zone: The name of the zone for this request.
89465func (r *InstanceGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupsTestIamPermissionsCall {
89466	c := &InstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89467	c.project = project
89468	c.zone = zone
89469	c.resource = resource
89470	c.testpermissionsrequest = testpermissionsrequest
89471	return c
89472}
89473
89474// Fields allows partial responses to be retrieved. See
89475// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89476// for more information.
89477func (c *InstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupsTestIamPermissionsCall {
89478	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89479	return c
89480}
89481
89482// Context sets the context to be used in this call's Do method. Any
89483// pending HTTP request will be aborted if the provided context is
89484// canceled.
89485func (c *InstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupsTestIamPermissionsCall {
89486	c.ctx_ = ctx
89487	return c
89488}
89489
89490// Header returns an http.Header that can be modified by the caller to
89491// add HTTP headers to the request.
89492func (c *InstanceGroupsTestIamPermissionsCall) Header() http.Header {
89493	if c.header_ == nil {
89494		c.header_ = make(http.Header)
89495	}
89496	return c.header_
89497}
89498
89499func (c *InstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
89500	reqHeaders := make(http.Header)
89501	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89502	for k, v := range c.header_ {
89503		reqHeaders[k] = v
89504	}
89505	reqHeaders.Set("User-Agent", c.s.userAgent())
89506	var body io.Reader = nil
89507	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
89508	if err != nil {
89509		return nil, err
89510	}
89511	reqHeaders.Set("Content-Type", "application/json")
89512	c.urlParams_.Set("alt", alt)
89513	c.urlParams_.Set("prettyPrint", "false")
89514	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions")
89515	urls += "?" + c.urlParams_.Encode()
89516	req, err := http.NewRequest("POST", urls, body)
89517	if err != nil {
89518		return nil, err
89519	}
89520	req.Header = reqHeaders
89521	googleapi.Expand(req.URL, map[string]string{
89522		"project":  c.project,
89523		"zone":     c.zone,
89524		"resource": c.resource,
89525	})
89526	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89527}
89528
89529// Do executes the "compute.instanceGroups.testIamPermissions" call.
89530// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
89531// non-2xx status code is an error. Response headers are in either
89532// *TestPermissionsResponse.ServerResponse.Header or (if a response was
89533// returned at all) in error.(*googleapi.Error).Header. Use
89534// googleapi.IsNotModified to check whether the returned error was
89535// because http.StatusNotModified was returned.
89536func (c *InstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
89537	gensupport.SetOptions(c.urlParams_, opts...)
89538	res, err := c.doRequest("json")
89539	if res != nil && res.StatusCode == http.StatusNotModified {
89540		if res.Body != nil {
89541			res.Body.Close()
89542		}
89543		return nil, &googleapi.Error{
89544			Code:   res.StatusCode,
89545			Header: res.Header,
89546		}
89547	}
89548	if err != nil {
89549		return nil, err
89550	}
89551	defer googleapi.CloseBody(res)
89552	if err := googleapi.CheckResponse(res); err != nil {
89553		return nil, err
89554	}
89555	ret := &TestPermissionsResponse{
89556		ServerResponse: googleapi.ServerResponse{
89557			Header:         res.Header,
89558			HTTPStatusCode: res.StatusCode,
89559		},
89560	}
89561	target := &ret
89562	if err := gensupport.DecodeResponse(target, res); err != nil {
89563		return nil, err
89564	}
89565	return ret, nil
89566	// {
89567	//   "description": "Returns permissions that a caller has on the specified resource.",
89568	//   "httpMethod": "POST",
89569	//   "id": "compute.instanceGroups.testIamPermissions",
89570	//   "parameterOrder": [
89571	//     "project",
89572	//     "zone",
89573	//     "resource"
89574	//   ],
89575	//   "parameters": {
89576	//     "project": {
89577	//       "description": "Project ID for this request.",
89578	//       "location": "path",
89579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89580	//       "required": true,
89581	//       "type": "string"
89582	//     },
89583	//     "resource": {
89584	//       "description": "Name or id of the resource for this request.",
89585	//       "location": "path",
89586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89587	//       "required": true,
89588	//       "type": "string"
89589	//     },
89590	//     "zone": {
89591	//       "description": "The name of the zone for this request.",
89592	//       "location": "path",
89593	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89594	//       "required": true,
89595	//       "type": "string"
89596	//     }
89597	//   },
89598	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions",
89599	//   "request": {
89600	//     "$ref": "TestPermissionsRequest"
89601	//   },
89602	//   "response": {
89603	//     "$ref": "TestPermissionsResponse"
89604	//   },
89605	//   "scopes": [
89606	//     "https://www.googleapis.com/auth/cloud-platform",
89607	//     "https://www.googleapis.com/auth/compute",
89608	//     "https://www.googleapis.com/auth/compute.readonly"
89609	//   ]
89610	// }
89611
89612}
89613
89614// method id "compute.instanceTemplates.delete":
89615
89616type InstanceTemplatesDeleteCall struct {
89617	s                *Service
89618	project          string
89619	instanceTemplate string
89620	urlParams_       gensupport.URLParams
89621	ctx_             context.Context
89622	header_          http.Header
89623}
89624
89625// Delete: Deletes the specified instance template. Deleting an instance
89626// template is permanent and cannot be undone. It is not possible to
89627// delete templates that are already in use by a managed instance group.
89628//
89629// - instanceTemplate: The name of the instance template to delete.
89630// - project: Project ID for this request.
89631// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
89632func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
89633	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89634	c.project = project
89635	c.instanceTemplate = instanceTemplate
89636	return c
89637}
89638
89639// RequestId sets the optional parameter "requestId": An optional
89640// request ID to identify requests. Specify a unique request ID so that
89641// if you must retry your request, the server will know to ignore the
89642// request if it has already been completed.
89643//
89644// For example, consider a situation where you make an initial request
89645// and the request times out. If you make the request again with the
89646// same request ID, the server can check if original operation with the
89647// same request ID was received, and if so, will ignore the second
89648// request. This prevents clients from accidentally creating duplicate
89649// commitments.
89650//
89651// The request ID must be a valid UUID with the exception that zero UUID
89652// is not supported (00000000-0000-0000-0000-000000000000).
89653func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
89654	c.urlParams_.Set("requestId", requestId)
89655	return c
89656}
89657
89658// Fields allows partial responses to be retrieved. See
89659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89660// for more information.
89661func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
89662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89663	return c
89664}
89665
89666// Context sets the context to be used in this call's Do method. Any
89667// pending HTTP request will be aborted if the provided context is
89668// canceled.
89669func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
89670	c.ctx_ = ctx
89671	return c
89672}
89673
89674// Header returns an http.Header that can be modified by the caller to
89675// add HTTP headers to the request.
89676func (c *InstanceTemplatesDeleteCall) Header() http.Header {
89677	if c.header_ == nil {
89678		c.header_ = make(http.Header)
89679	}
89680	return c.header_
89681}
89682
89683func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
89684	reqHeaders := make(http.Header)
89685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89686	for k, v := range c.header_ {
89687		reqHeaders[k] = v
89688	}
89689	reqHeaders.Set("User-Agent", c.s.userAgent())
89690	var body io.Reader = nil
89691	c.urlParams_.Set("alt", alt)
89692	c.urlParams_.Set("prettyPrint", "false")
89693	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
89694	urls += "?" + c.urlParams_.Encode()
89695	req, err := http.NewRequest("DELETE", urls, body)
89696	if err != nil {
89697		return nil, err
89698	}
89699	req.Header = reqHeaders
89700	googleapi.Expand(req.URL, map[string]string{
89701		"project":          c.project,
89702		"instanceTemplate": c.instanceTemplate,
89703	})
89704	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89705}
89706
89707// Do executes the "compute.instanceTemplates.delete" call.
89708// Exactly one of *Operation or error will be non-nil. Any non-2xx
89709// status code is an error. Response headers are in either
89710// *Operation.ServerResponse.Header or (if a response was returned at
89711// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89712// to check whether the returned error was because
89713// http.StatusNotModified was returned.
89714func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89715	gensupport.SetOptions(c.urlParams_, opts...)
89716	res, err := c.doRequest("json")
89717	if res != nil && res.StatusCode == http.StatusNotModified {
89718		if res.Body != nil {
89719			res.Body.Close()
89720		}
89721		return nil, &googleapi.Error{
89722			Code:   res.StatusCode,
89723			Header: res.Header,
89724		}
89725	}
89726	if err != nil {
89727		return nil, err
89728	}
89729	defer googleapi.CloseBody(res)
89730	if err := googleapi.CheckResponse(res); err != nil {
89731		return nil, err
89732	}
89733	ret := &Operation{
89734		ServerResponse: googleapi.ServerResponse{
89735			Header:         res.Header,
89736			HTTPStatusCode: res.StatusCode,
89737		},
89738	}
89739	target := &ret
89740	if err := gensupport.DecodeResponse(target, res); err != nil {
89741		return nil, err
89742	}
89743	return ret, nil
89744	// {
89745	//   "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.",
89746	//   "httpMethod": "DELETE",
89747	//   "id": "compute.instanceTemplates.delete",
89748	//   "parameterOrder": [
89749	//     "project",
89750	//     "instanceTemplate"
89751	//   ],
89752	//   "parameters": {
89753	//     "instanceTemplate": {
89754	//       "description": "The name of the instance template to delete.",
89755	//       "location": "path",
89756	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89757	//       "required": true,
89758	//       "type": "string"
89759	//     },
89760	//     "project": {
89761	//       "description": "Project ID for this request.",
89762	//       "location": "path",
89763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89764	//       "required": true,
89765	//       "type": "string"
89766	//     },
89767	//     "requestId": {
89768	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89769	//       "location": "query",
89770	//       "type": "string"
89771	//     }
89772	//   },
89773	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
89774	//   "response": {
89775	//     "$ref": "Operation"
89776	//   },
89777	//   "scopes": [
89778	//     "https://www.googleapis.com/auth/cloud-platform",
89779	//     "https://www.googleapis.com/auth/compute"
89780	//   ]
89781	// }
89782
89783}
89784
89785// method id "compute.instanceTemplates.get":
89786
89787type InstanceTemplatesGetCall struct {
89788	s                *Service
89789	project          string
89790	instanceTemplate string
89791	urlParams_       gensupport.URLParams
89792	ifNoneMatch_     string
89793	ctx_             context.Context
89794	header_          http.Header
89795}
89796
89797// Get: Returns the specified instance template. Gets a list of
89798// available instance templates by making a list() request.
89799//
89800// - instanceTemplate: The name of the instance template.
89801// - project: Project ID for this request.
89802// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
89803func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
89804	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89805	c.project = project
89806	c.instanceTemplate = instanceTemplate
89807	return c
89808}
89809
89810// Fields allows partial responses to be retrieved. See
89811// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89812// for more information.
89813func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
89814	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89815	return c
89816}
89817
89818// IfNoneMatch sets the optional parameter which makes the operation
89819// fail if the object's ETag matches the given value. This is useful for
89820// getting updates only after the object has changed since the last
89821// request. Use googleapi.IsNotModified to check whether the response
89822// error from Do is the result of In-None-Match.
89823func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
89824	c.ifNoneMatch_ = entityTag
89825	return c
89826}
89827
89828// Context sets the context to be used in this call's Do method. Any
89829// pending HTTP request will be aborted if the provided context is
89830// canceled.
89831func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
89832	c.ctx_ = ctx
89833	return c
89834}
89835
89836// Header returns an http.Header that can be modified by the caller to
89837// add HTTP headers to the request.
89838func (c *InstanceTemplatesGetCall) Header() http.Header {
89839	if c.header_ == nil {
89840		c.header_ = make(http.Header)
89841	}
89842	return c.header_
89843}
89844
89845func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
89846	reqHeaders := make(http.Header)
89847	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89848	for k, v := range c.header_ {
89849		reqHeaders[k] = v
89850	}
89851	reqHeaders.Set("User-Agent", c.s.userAgent())
89852	if c.ifNoneMatch_ != "" {
89853		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89854	}
89855	var body io.Reader = nil
89856	c.urlParams_.Set("alt", alt)
89857	c.urlParams_.Set("prettyPrint", "false")
89858	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
89859	urls += "?" + c.urlParams_.Encode()
89860	req, err := http.NewRequest("GET", urls, body)
89861	if err != nil {
89862		return nil, err
89863	}
89864	req.Header = reqHeaders
89865	googleapi.Expand(req.URL, map[string]string{
89866		"project":          c.project,
89867		"instanceTemplate": c.instanceTemplate,
89868	})
89869	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89870}
89871
89872// Do executes the "compute.instanceTemplates.get" call.
89873// Exactly one of *InstanceTemplate or error will be non-nil. Any
89874// non-2xx status code is an error. Response headers are in either
89875// *InstanceTemplate.ServerResponse.Header or (if a response was
89876// returned at all) in error.(*googleapi.Error).Header. Use
89877// googleapi.IsNotModified to check whether the returned error was
89878// because http.StatusNotModified was returned.
89879func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
89880	gensupport.SetOptions(c.urlParams_, opts...)
89881	res, err := c.doRequest("json")
89882	if res != nil && res.StatusCode == http.StatusNotModified {
89883		if res.Body != nil {
89884			res.Body.Close()
89885		}
89886		return nil, &googleapi.Error{
89887			Code:   res.StatusCode,
89888			Header: res.Header,
89889		}
89890	}
89891	if err != nil {
89892		return nil, err
89893	}
89894	defer googleapi.CloseBody(res)
89895	if err := googleapi.CheckResponse(res); err != nil {
89896		return nil, err
89897	}
89898	ret := &InstanceTemplate{
89899		ServerResponse: googleapi.ServerResponse{
89900			Header:         res.Header,
89901			HTTPStatusCode: res.StatusCode,
89902		},
89903	}
89904	target := &ret
89905	if err := gensupport.DecodeResponse(target, res); err != nil {
89906		return nil, err
89907	}
89908	return ret, nil
89909	// {
89910	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
89911	//   "httpMethod": "GET",
89912	//   "id": "compute.instanceTemplates.get",
89913	//   "parameterOrder": [
89914	//     "project",
89915	//     "instanceTemplate"
89916	//   ],
89917	//   "parameters": {
89918	//     "instanceTemplate": {
89919	//       "description": "The name of the instance template.",
89920	//       "location": "path",
89921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89922	//       "required": true,
89923	//       "type": "string"
89924	//     },
89925	//     "project": {
89926	//       "description": "Project ID for this request.",
89927	//       "location": "path",
89928	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89929	//       "required": true,
89930	//       "type": "string"
89931	//     }
89932	//   },
89933	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
89934	//   "response": {
89935	//     "$ref": "InstanceTemplate"
89936	//   },
89937	//   "scopes": [
89938	//     "https://www.googleapis.com/auth/cloud-platform",
89939	//     "https://www.googleapis.com/auth/compute",
89940	//     "https://www.googleapis.com/auth/compute.readonly"
89941	//   ]
89942	// }
89943
89944}
89945
89946// method id "compute.instanceTemplates.getIamPolicy":
89947
89948type InstanceTemplatesGetIamPolicyCall struct {
89949	s            *Service
89950	project      string
89951	resource     string
89952	urlParams_   gensupport.URLParams
89953	ifNoneMatch_ string
89954	ctx_         context.Context
89955	header_      http.Header
89956}
89957
89958// GetIamPolicy: Gets the access control policy for a resource. May be
89959// empty if no such policy or resource exists.
89960//
89961// - project: Project ID for this request.
89962// - resource: Name or id of the resource for this request.
89963func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
89964	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89965	c.project = project
89966	c.resource = resource
89967	return c
89968}
89969
89970// OptionsRequestedPolicyVersion sets the optional parameter
89971// "optionsRequestedPolicyVersion": Requested IAM Policy version.
89972func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
89973	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
89974	return c
89975}
89976
89977// Fields allows partial responses to be retrieved. See
89978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89979// for more information.
89980func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
89981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89982	return c
89983}
89984
89985// IfNoneMatch sets the optional parameter which makes the operation
89986// fail if the object's ETag matches the given value. This is useful for
89987// getting updates only after the object has changed since the last
89988// request. Use googleapi.IsNotModified to check whether the response
89989// error from Do is the result of In-None-Match.
89990func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
89991	c.ifNoneMatch_ = entityTag
89992	return c
89993}
89994
89995// Context sets the context to be used in this call's Do method. Any
89996// pending HTTP request will be aborted if the provided context is
89997// canceled.
89998func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
89999	c.ctx_ = ctx
90000	return c
90001}
90002
90003// Header returns an http.Header that can be modified by the caller to
90004// add HTTP headers to the request.
90005func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
90006	if c.header_ == nil {
90007		c.header_ = make(http.Header)
90008	}
90009	return c.header_
90010}
90011
90012func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
90013	reqHeaders := make(http.Header)
90014	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90015	for k, v := range c.header_ {
90016		reqHeaders[k] = v
90017	}
90018	reqHeaders.Set("User-Agent", c.s.userAgent())
90019	if c.ifNoneMatch_ != "" {
90020		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90021	}
90022	var body io.Reader = nil
90023	c.urlParams_.Set("alt", alt)
90024	c.urlParams_.Set("prettyPrint", "false")
90025	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy")
90026	urls += "?" + c.urlParams_.Encode()
90027	req, err := http.NewRequest("GET", urls, body)
90028	if err != nil {
90029		return nil, err
90030	}
90031	req.Header = reqHeaders
90032	googleapi.Expand(req.URL, map[string]string{
90033		"project":  c.project,
90034		"resource": c.resource,
90035	})
90036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90037}
90038
90039// Do executes the "compute.instanceTemplates.getIamPolicy" call.
90040// Exactly one of *Policy or error will be non-nil. Any non-2xx status
90041// code is an error. Response headers are in either
90042// *Policy.ServerResponse.Header or (if a response was returned at all)
90043// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
90044// check whether the returned error was because http.StatusNotModified
90045// was returned.
90046func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
90047	gensupport.SetOptions(c.urlParams_, opts...)
90048	res, err := c.doRequest("json")
90049	if res != nil && res.StatusCode == http.StatusNotModified {
90050		if res.Body != nil {
90051			res.Body.Close()
90052		}
90053		return nil, &googleapi.Error{
90054			Code:   res.StatusCode,
90055			Header: res.Header,
90056		}
90057	}
90058	if err != nil {
90059		return nil, err
90060	}
90061	defer googleapi.CloseBody(res)
90062	if err := googleapi.CheckResponse(res); err != nil {
90063		return nil, err
90064	}
90065	ret := &Policy{
90066		ServerResponse: googleapi.ServerResponse{
90067			Header:         res.Header,
90068			HTTPStatusCode: res.StatusCode,
90069		},
90070	}
90071	target := &ret
90072	if err := gensupport.DecodeResponse(target, res); err != nil {
90073		return nil, err
90074	}
90075	return ret, nil
90076	// {
90077	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
90078	//   "httpMethod": "GET",
90079	//   "id": "compute.instanceTemplates.getIamPolicy",
90080	//   "parameterOrder": [
90081	//     "project",
90082	//     "resource"
90083	//   ],
90084	//   "parameters": {
90085	//     "optionsRequestedPolicyVersion": {
90086	//       "description": "Requested IAM Policy version.",
90087	//       "format": "int32",
90088	//       "location": "query",
90089	//       "type": "integer"
90090	//     },
90091	//     "project": {
90092	//       "description": "Project ID for this request.",
90093	//       "location": "path",
90094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90095	//       "required": true,
90096	//       "type": "string"
90097	//     },
90098	//     "resource": {
90099	//       "description": "Name or id of the resource for this request.",
90100	//       "location": "path",
90101	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90102	//       "required": true,
90103	//       "type": "string"
90104	//     }
90105	//   },
90106	//   "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
90107	//   "response": {
90108	//     "$ref": "Policy"
90109	//   },
90110	//   "scopes": [
90111	//     "https://www.googleapis.com/auth/cloud-platform",
90112	//     "https://www.googleapis.com/auth/compute",
90113	//     "https://www.googleapis.com/auth/compute.readonly"
90114	//   ]
90115	// }
90116
90117}
90118
90119// method id "compute.instanceTemplates.insert":
90120
90121type InstanceTemplatesInsertCall struct {
90122	s                *Service
90123	project          string
90124	instancetemplate *InstanceTemplate
90125	urlParams_       gensupport.URLParams
90126	ctx_             context.Context
90127	header_          http.Header
90128}
90129
90130// Insert: Creates an instance template in the specified project using
90131// the data that is included in the request. If you are creating a new
90132// template to update an existing instance group, your new instance
90133// template must use the same network or, if applicable, the same
90134// subnetwork as the original template.
90135//
90136// - project: Project ID for this request.
90137// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
90138func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
90139	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90140	c.project = project
90141	c.instancetemplate = instancetemplate
90142	return c
90143}
90144
90145// RequestId sets the optional parameter "requestId": An optional
90146// request ID to identify requests. Specify a unique request ID so that
90147// if you must retry your request, the server will know to ignore the
90148// request if it has already been completed.
90149//
90150// For example, consider a situation where you make an initial request
90151// and the request times out. If you make the request again with the
90152// same request ID, the server can check if original operation with the
90153// same request ID was received, and if so, will ignore the second
90154// request. This prevents clients from accidentally creating duplicate
90155// commitments.
90156//
90157// The request ID must be a valid UUID with the exception that zero UUID
90158// is not supported (00000000-0000-0000-0000-000000000000).
90159func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
90160	c.urlParams_.Set("requestId", requestId)
90161	return c
90162}
90163
90164// Fields allows partial responses to be retrieved. See
90165// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90166// for more information.
90167func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
90168	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90169	return c
90170}
90171
90172// Context sets the context to be used in this call's Do method. Any
90173// pending HTTP request will be aborted if the provided context is
90174// canceled.
90175func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
90176	c.ctx_ = ctx
90177	return c
90178}
90179
90180// Header returns an http.Header that can be modified by the caller to
90181// add HTTP headers to the request.
90182func (c *InstanceTemplatesInsertCall) Header() http.Header {
90183	if c.header_ == nil {
90184		c.header_ = make(http.Header)
90185	}
90186	return c.header_
90187}
90188
90189func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
90190	reqHeaders := make(http.Header)
90191	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90192	for k, v := range c.header_ {
90193		reqHeaders[k] = v
90194	}
90195	reqHeaders.Set("User-Agent", c.s.userAgent())
90196	var body io.Reader = nil
90197	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
90198	if err != nil {
90199		return nil, err
90200	}
90201	reqHeaders.Set("Content-Type", "application/json")
90202	c.urlParams_.Set("alt", alt)
90203	c.urlParams_.Set("prettyPrint", "false")
90204	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
90205	urls += "?" + c.urlParams_.Encode()
90206	req, err := http.NewRequest("POST", urls, body)
90207	if err != nil {
90208		return nil, err
90209	}
90210	req.Header = reqHeaders
90211	googleapi.Expand(req.URL, map[string]string{
90212		"project": c.project,
90213	})
90214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90215}
90216
90217// Do executes the "compute.instanceTemplates.insert" call.
90218// Exactly one of *Operation or error will be non-nil. Any non-2xx
90219// status code is an error. Response headers are in either
90220// *Operation.ServerResponse.Header or (if a response was returned at
90221// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90222// to check whether the returned error was because
90223// http.StatusNotModified was returned.
90224func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90225	gensupport.SetOptions(c.urlParams_, opts...)
90226	res, err := c.doRequest("json")
90227	if res != nil && res.StatusCode == http.StatusNotModified {
90228		if res.Body != nil {
90229			res.Body.Close()
90230		}
90231		return nil, &googleapi.Error{
90232			Code:   res.StatusCode,
90233			Header: res.Header,
90234		}
90235	}
90236	if err != nil {
90237		return nil, err
90238	}
90239	defer googleapi.CloseBody(res)
90240	if err := googleapi.CheckResponse(res); err != nil {
90241		return nil, err
90242	}
90243	ret := &Operation{
90244		ServerResponse: googleapi.ServerResponse{
90245			Header:         res.Header,
90246			HTTPStatusCode: res.StatusCode,
90247		},
90248	}
90249	target := &ret
90250	if err := gensupport.DecodeResponse(target, res); err != nil {
90251		return nil, err
90252	}
90253	return ret, nil
90254	// {
90255	//   "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.",
90256	//   "httpMethod": "POST",
90257	//   "id": "compute.instanceTemplates.insert",
90258	//   "parameterOrder": [
90259	//     "project"
90260	//   ],
90261	//   "parameters": {
90262	//     "project": {
90263	//       "description": "Project ID for this request.",
90264	//       "location": "path",
90265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90266	//       "required": true,
90267	//       "type": "string"
90268	//     },
90269	//     "requestId": {
90270	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90271	//       "location": "query",
90272	//       "type": "string"
90273	//     }
90274	//   },
90275	//   "path": "projects/{project}/global/instanceTemplates",
90276	//   "request": {
90277	//     "$ref": "InstanceTemplate"
90278	//   },
90279	//   "response": {
90280	//     "$ref": "Operation"
90281	//   },
90282	//   "scopes": [
90283	//     "https://www.googleapis.com/auth/cloud-platform",
90284	//     "https://www.googleapis.com/auth/compute"
90285	//   ]
90286	// }
90287
90288}
90289
90290// method id "compute.instanceTemplates.list":
90291
90292type InstanceTemplatesListCall struct {
90293	s            *Service
90294	project      string
90295	urlParams_   gensupport.URLParams
90296	ifNoneMatch_ string
90297	ctx_         context.Context
90298	header_      http.Header
90299}
90300
90301// List: Retrieves a list of instance templates that are contained
90302// within the specified project.
90303//
90304// - project: Project ID for this request.
90305// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
90306func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
90307	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90308	c.project = project
90309	return c
90310}
90311
90312// Filter sets the optional parameter "filter": A filter expression that
90313// filters resources listed in the response. The expression must specify
90314// the field name, a comparison operator, and the value that you want to
90315// use for filtering. The value must be a string, a number, or a
90316// boolean. The comparison operator must be either `=`, `!=`, `>`, or
90317// `<`.
90318//
90319// For example, if you are filtering Compute Engine instances, you can
90320// exclude instances named `example-instance` by specifying `name !=
90321// example-instance`.
90322//
90323// You can also filter nested fields. For example, you could specify
90324// `scheduling.automaticRestart = false` to include instances only if
90325// they are not scheduled for automatic restarts. You can use filtering
90326// on nested fields to filter based on resource labels.
90327//
90328// To filter on multiple expressions, provide each separate expression
90329// within parentheses. For example: ``` (scheduling.automaticRestart =
90330// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
90331// is an `AND` expression. However, you can include `AND` and `OR`
90332// expressions explicitly. For example: ``` (cpuPlatform = "Intel
90333// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
90334// (scheduling.automaticRestart = true) ```
90335func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
90336	c.urlParams_.Set("filter", filter)
90337	return c
90338}
90339
90340// MaxResults sets the optional parameter "maxResults": The maximum
90341// number of results per page that should be returned. If the number of
90342// available results is larger than `maxResults`, Compute Engine returns
90343// a `nextPageToken` that can be used to get the next page of results in
90344// subsequent list requests. Acceptable values are `0` to `500`,
90345// inclusive. (Default: `500`)
90346func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
90347	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90348	return c
90349}
90350
90351// OrderBy sets the optional parameter "orderBy": Sorts list results by
90352// a certain order. By default, results are returned in alphanumerical
90353// order based on the resource name.
90354//
90355// You can also sort results in descending order based on the creation
90356// timestamp using `orderBy="creationTimestamp desc". This sorts
90357// results based on the `creationTimestamp` field in reverse
90358// chronological order (newest result first). Use this to sort resources
90359// like operations so that the newest operation is returned
90360// first.
90361//
90362// Currently, only sorting by `name` or `creationTimestamp desc` is
90363// supported.
90364func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
90365	c.urlParams_.Set("orderBy", orderBy)
90366	return c
90367}
90368
90369// PageToken sets the optional parameter "pageToken": Specifies a page
90370// token to use. Set `pageToken` to the `nextPageToken` returned by a
90371// previous list request to get the next page of results.
90372func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
90373	c.urlParams_.Set("pageToken", pageToken)
90374	return c
90375}
90376
90377// ReturnPartialSuccess sets the optional parameter
90378// "returnPartialSuccess": Opt-in for partial success behavior which
90379// provides partial results in case of failure. The default value is
90380// false.
90381func (c *InstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesListCall {
90382	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
90383	return c
90384}
90385
90386// Fields allows partial responses to be retrieved. See
90387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90388// for more information.
90389func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
90390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90391	return c
90392}
90393
90394// IfNoneMatch sets the optional parameter which makes the operation
90395// fail if the object's ETag matches the given value. This is useful for
90396// getting updates only after the object has changed since the last
90397// request. Use googleapi.IsNotModified to check whether the response
90398// error from Do is the result of In-None-Match.
90399func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
90400	c.ifNoneMatch_ = entityTag
90401	return c
90402}
90403
90404// Context sets the context to be used in this call's Do method. Any
90405// pending HTTP request will be aborted if the provided context is
90406// canceled.
90407func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
90408	c.ctx_ = ctx
90409	return c
90410}
90411
90412// Header returns an http.Header that can be modified by the caller to
90413// add HTTP headers to the request.
90414func (c *InstanceTemplatesListCall) Header() http.Header {
90415	if c.header_ == nil {
90416		c.header_ = make(http.Header)
90417	}
90418	return c.header_
90419}
90420
90421func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
90422	reqHeaders := make(http.Header)
90423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90424	for k, v := range c.header_ {
90425		reqHeaders[k] = v
90426	}
90427	reqHeaders.Set("User-Agent", c.s.userAgent())
90428	if c.ifNoneMatch_ != "" {
90429		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90430	}
90431	var body io.Reader = nil
90432	c.urlParams_.Set("alt", alt)
90433	c.urlParams_.Set("prettyPrint", "false")
90434	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
90435	urls += "?" + c.urlParams_.Encode()
90436	req, err := http.NewRequest("GET", urls, body)
90437	if err != nil {
90438		return nil, err
90439	}
90440	req.Header = reqHeaders
90441	googleapi.Expand(req.URL, map[string]string{
90442		"project": c.project,
90443	})
90444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90445}
90446
90447// Do executes the "compute.instanceTemplates.list" call.
90448// Exactly one of *InstanceTemplateList or error will be non-nil. Any
90449// non-2xx status code is an error. Response headers are in either
90450// *InstanceTemplateList.ServerResponse.Header or (if a response was
90451// returned at all) in error.(*googleapi.Error).Header. Use
90452// googleapi.IsNotModified to check whether the returned error was
90453// because http.StatusNotModified was returned.
90454func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
90455	gensupport.SetOptions(c.urlParams_, opts...)
90456	res, err := c.doRequest("json")
90457	if res != nil && res.StatusCode == http.StatusNotModified {
90458		if res.Body != nil {
90459			res.Body.Close()
90460		}
90461		return nil, &googleapi.Error{
90462			Code:   res.StatusCode,
90463			Header: res.Header,
90464		}
90465	}
90466	if err != nil {
90467		return nil, err
90468	}
90469	defer googleapi.CloseBody(res)
90470	if err := googleapi.CheckResponse(res); err != nil {
90471		return nil, err
90472	}
90473	ret := &InstanceTemplateList{
90474		ServerResponse: googleapi.ServerResponse{
90475			Header:         res.Header,
90476			HTTPStatusCode: res.StatusCode,
90477		},
90478	}
90479	target := &ret
90480	if err := gensupport.DecodeResponse(target, res); err != nil {
90481		return nil, err
90482	}
90483	return ret, nil
90484	// {
90485	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
90486	//   "httpMethod": "GET",
90487	//   "id": "compute.instanceTemplates.list",
90488	//   "parameterOrder": [
90489	//     "project"
90490	//   ],
90491	//   "parameters": {
90492	//     "filter": {
90493	//       "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) ```",
90494	//       "location": "query",
90495	//       "type": "string"
90496	//     },
90497	//     "maxResults": {
90498	//       "default": "500",
90499	//       "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`)",
90500	//       "format": "uint32",
90501	//       "location": "query",
90502	//       "minimum": "0",
90503	//       "type": "integer"
90504	//     },
90505	//     "orderBy": {
90506	//       "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.",
90507	//       "location": "query",
90508	//       "type": "string"
90509	//     },
90510	//     "pageToken": {
90511	//       "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.",
90512	//       "location": "query",
90513	//       "type": "string"
90514	//     },
90515	//     "project": {
90516	//       "description": "Project ID for this request.",
90517	//       "location": "path",
90518	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90519	//       "required": true,
90520	//       "type": "string"
90521	//     },
90522	//     "returnPartialSuccess": {
90523	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
90524	//       "location": "query",
90525	//       "type": "boolean"
90526	//     }
90527	//   },
90528	//   "path": "projects/{project}/global/instanceTemplates",
90529	//   "response": {
90530	//     "$ref": "InstanceTemplateList"
90531	//   },
90532	//   "scopes": [
90533	//     "https://www.googleapis.com/auth/cloud-platform",
90534	//     "https://www.googleapis.com/auth/compute",
90535	//     "https://www.googleapis.com/auth/compute.readonly"
90536	//   ]
90537	// }
90538
90539}
90540
90541// Pages invokes f for each page of results.
90542// A non-nil error returned from f will halt the iteration.
90543// The provided context supersedes any context provided to the Context method.
90544func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
90545	c.ctx_ = ctx
90546	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90547	for {
90548		x, err := c.Do()
90549		if err != nil {
90550			return err
90551		}
90552		if err := f(x); err != nil {
90553			return err
90554		}
90555		if x.NextPageToken == "" {
90556			return nil
90557		}
90558		c.PageToken(x.NextPageToken)
90559	}
90560}
90561
90562// method id "compute.instanceTemplates.setIamPolicy":
90563
90564type InstanceTemplatesSetIamPolicyCall struct {
90565	s                      *Service
90566	project                string
90567	resource               string
90568	globalsetpolicyrequest *GlobalSetPolicyRequest
90569	urlParams_             gensupport.URLParams
90570	ctx_                   context.Context
90571	header_                http.Header
90572}
90573
90574// SetIamPolicy: Sets the access control policy on the specified
90575// resource. Replaces any existing policy.
90576//
90577// - project: Project ID for this request.
90578// - resource: Name or id of the resource for this request.
90579func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
90580	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90581	c.project = project
90582	c.resource = resource
90583	c.globalsetpolicyrequest = globalsetpolicyrequest
90584	return c
90585}
90586
90587// Fields allows partial responses to be retrieved. See
90588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90589// for more information.
90590func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
90591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90592	return c
90593}
90594
90595// Context sets the context to be used in this call's Do method. Any
90596// pending HTTP request will be aborted if the provided context is
90597// canceled.
90598func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
90599	c.ctx_ = ctx
90600	return c
90601}
90602
90603// Header returns an http.Header that can be modified by the caller to
90604// add HTTP headers to the request.
90605func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
90606	if c.header_ == nil {
90607		c.header_ = make(http.Header)
90608	}
90609	return c.header_
90610}
90611
90612func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
90613	reqHeaders := make(http.Header)
90614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90615	for k, v := range c.header_ {
90616		reqHeaders[k] = v
90617	}
90618	reqHeaders.Set("User-Agent", c.s.userAgent())
90619	var body io.Reader = nil
90620	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
90621	if err != nil {
90622		return nil, err
90623	}
90624	reqHeaders.Set("Content-Type", "application/json")
90625	c.urlParams_.Set("alt", alt)
90626	c.urlParams_.Set("prettyPrint", "false")
90627	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy")
90628	urls += "?" + c.urlParams_.Encode()
90629	req, err := http.NewRequest("POST", urls, body)
90630	if err != nil {
90631		return nil, err
90632	}
90633	req.Header = reqHeaders
90634	googleapi.Expand(req.URL, map[string]string{
90635		"project":  c.project,
90636		"resource": c.resource,
90637	})
90638	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90639}
90640
90641// Do executes the "compute.instanceTemplates.setIamPolicy" call.
90642// Exactly one of *Policy or error will be non-nil. Any non-2xx status
90643// code is an error. Response headers are in either
90644// *Policy.ServerResponse.Header or (if a response was returned at all)
90645// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
90646// check whether the returned error was because http.StatusNotModified
90647// was returned.
90648func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
90649	gensupport.SetOptions(c.urlParams_, opts...)
90650	res, err := c.doRequest("json")
90651	if res != nil && res.StatusCode == http.StatusNotModified {
90652		if res.Body != nil {
90653			res.Body.Close()
90654		}
90655		return nil, &googleapi.Error{
90656			Code:   res.StatusCode,
90657			Header: res.Header,
90658		}
90659	}
90660	if err != nil {
90661		return nil, err
90662	}
90663	defer googleapi.CloseBody(res)
90664	if err := googleapi.CheckResponse(res); err != nil {
90665		return nil, err
90666	}
90667	ret := &Policy{
90668		ServerResponse: googleapi.ServerResponse{
90669			Header:         res.Header,
90670			HTTPStatusCode: res.StatusCode,
90671		},
90672	}
90673	target := &ret
90674	if err := gensupport.DecodeResponse(target, res); err != nil {
90675		return nil, err
90676	}
90677	return ret, nil
90678	// {
90679	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
90680	//   "httpMethod": "POST",
90681	//   "id": "compute.instanceTemplates.setIamPolicy",
90682	//   "parameterOrder": [
90683	//     "project",
90684	//     "resource"
90685	//   ],
90686	//   "parameters": {
90687	//     "project": {
90688	//       "description": "Project ID for this request.",
90689	//       "location": "path",
90690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90691	//       "required": true,
90692	//       "type": "string"
90693	//     },
90694	//     "resource": {
90695	//       "description": "Name or id of the resource for this request.",
90696	//       "location": "path",
90697	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90698	//       "required": true,
90699	//       "type": "string"
90700	//     }
90701	//   },
90702	//   "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
90703	//   "request": {
90704	//     "$ref": "GlobalSetPolicyRequest"
90705	//   },
90706	//   "response": {
90707	//     "$ref": "Policy"
90708	//   },
90709	//   "scopes": [
90710	//     "https://www.googleapis.com/auth/cloud-platform",
90711	//     "https://www.googleapis.com/auth/compute"
90712	//   ]
90713	// }
90714
90715}
90716
90717// method id "compute.instanceTemplates.testIamPermissions":
90718
90719type InstanceTemplatesTestIamPermissionsCall struct {
90720	s                      *Service
90721	project                string
90722	resource               string
90723	testpermissionsrequest *TestPermissionsRequest
90724	urlParams_             gensupport.URLParams
90725	ctx_                   context.Context
90726	header_                http.Header
90727}
90728
90729// TestIamPermissions: Returns permissions that a caller has on the
90730// specified resource.
90731//
90732// - project: Project ID for this request.
90733// - resource: Name or id of the resource for this request.
90734func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
90735	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90736	c.project = project
90737	c.resource = resource
90738	c.testpermissionsrequest = testpermissionsrequest
90739	return c
90740}
90741
90742// Fields allows partial responses to be retrieved. See
90743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90744// for more information.
90745func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
90746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90747	return c
90748}
90749
90750// Context sets the context to be used in this call's Do method. Any
90751// pending HTTP request will be aborted if the provided context is
90752// canceled.
90753func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
90754	c.ctx_ = ctx
90755	return c
90756}
90757
90758// Header returns an http.Header that can be modified by the caller to
90759// add HTTP headers to the request.
90760func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
90761	if c.header_ == nil {
90762		c.header_ = make(http.Header)
90763	}
90764	return c.header_
90765}
90766
90767func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
90768	reqHeaders := make(http.Header)
90769	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90770	for k, v := range c.header_ {
90771		reqHeaders[k] = v
90772	}
90773	reqHeaders.Set("User-Agent", c.s.userAgent())
90774	var body io.Reader = nil
90775	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
90776	if err != nil {
90777		return nil, err
90778	}
90779	reqHeaders.Set("Content-Type", "application/json")
90780	c.urlParams_.Set("alt", alt)
90781	c.urlParams_.Set("prettyPrint", "false")
90782	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions")
90783	urls += "?" + c.urlParams_.Encode()
90784	req, err := http.NewRequest("POST", urls, body)
90785	if err != nil {
90786		return nil, err
90787	}
90788	req.Header = reqHeaders
90789	googleapi.Expand(req.URL, map[string]string{
90790		"project":  c.project,
90791		"resource": c.resource,
90792	})
90793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90794}
90795
90796// Do executes the "compute.instanceTemplates.testIamPermissions" call.
90797// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
90798// non-2xx status code is an error. Response headers are in either
90799// *TestPermissionsResponse.ServerResponse.Header or (if a response was
90800// returned at all) in error.(*googleapi.Error).Header. Use
90801// googleapi.IsNotModified to check whether the returned error was
90802// because http.StatusNotModified was returned.
90803func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
90804	gensupport.SetOptions(c.urlParams_, opts...)
90805	res, err := c.doRequest("json")
90806	if res != nil && res.StatusCode == http.StatusNotModified {
90807		if res.Body != nil {
90808			res.Body.Close()
90809		}
90810		return nil, &googleapi.Error{
90811			Code:   res.StatusCode,
90812			Header: res.Header,
90813		}
90814	}
90815	if err != nil {
90816		return nil, err
90817	}
90818	defer googleapi.CloseBody(res)
90819	if err := googleapi.CheckResponse(res); err != nil {
90820		return nil, err
90821	}
90822	ret := &TestPermissionsResponse{
90823		ServerResponse: googleapi.ServerResponse{
90824			Header:         res.Header,
90825			HTTPStatusCode: res.StatusCode,
90826		},
90827	}
90828	target := &ret
90829	if err := gensupport.DecodeResponse(target, res); err != nil {
90830		return nil, err
90831	}
90832	return ret, nil
90833	// {
90834	//   "description": "Returns permissions that a caller has on the specified resource.",
90835	//   "httpMethod": "POST",
90836	//   "id": "compute.instanceTemplates.testIamPermissions",
90837	//   "parameterOrder": [
90838	//     "project",
90839	//     "resource"
90840	//   ],
90841	//   "parameters": {
90842	//     "project": {
90843	//       "description": "Project ID for this request.",
90844	//       "location": "path",
90845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90846	//       "required": true,
90847	//       "type": "string"
90848	//     },
90849	//     "resource": {
90850	//       "description": "Name or id of the resource for this request.",
90851	//       "location": "path",
90852	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90853	//       "required": true,
90854	//       "type": "string"
90855	//     }
90856	//   },
90857	//   "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
90858	//   "request": {
90859	//     "$ref": "TestPermissionsRequest"
90860	//   },
90861	//   "response": {
90862	//     "$ref": "TestPermissionsResponse"
90863	//   },
90864	//   "scopes": [
90865	//     "https://www.googleapis.com/auth/cloud-platform",
90866	//     "https://www.googleapis.com/auth/compute",
90867	//     "https://www.googleapis.com/auth/compute.readonly"
90868	//   ]
90869	// }
90870
90871}
90872
90873// method id "compute.instances.addAccessConfig":
90874
90875type InstancesAddAccessConfigCall struct {
90876	s            *Service
90877	project      string
90878	zone         string
90879	instance     string
90880	accessconfig *AccessConfig
90881	urlParams_   gensupport.URLParams
90882	ctx_         context.Context
90883	header_      http.Header
90884}
90885
90886// AddAccessConfig: Adds an access config to an instance's network
90887// interface.
90888//
90889// - instance: The instance name for this request.
90890// - networkInterface: The name of the network interface to add to this
90891//   instance.
90892// - project: Project ID for this request.
90893// - zone: The name of the zone for this request.
90894// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
90895func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
90896	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90897	c.project = project
90898	c.zone = zone
90899	c.instance = instance
90900	c.urlParams_.Set("networkInterface", networkInterface)
90901	c.accessconfig = accessconfig
90902	return c
90903}
90904
90905// RequestId sets the optional parameter "requestId": An optional
90906// request ID to identify requests. Specify a unique request ID so that
90907// if you must retry your request, the server will know to ignore the
90908// request if it has already been completed.
90909//
90910// For example, consider a situation where you make an initial request
90911// and the request times out. If you make the request again with the
90912// same request ID, the server can check if original operation with the
90913// same request ID was received, and if so, will ignore the second
90914// request. This prevents clients from accidentally creating duplicate
90915// commitments.
90916//
90917// The request ID must be a valid UUID with the exception that zero UUID
90918// is not supported (00000000-0000-0000-0000-000000000000).
90919func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
90920	c.urlParams_.Set("requestId", requestId)
90921	return c
90922}
90923
90924// Fields allows partial responses to be retrieved. See
90925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90926// for more information.
90927func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
90928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90929	return c
90930}
90931
90932// Context sets the context to be used in this call's Do method. Any
90933// pending HTTP request will be aborted if the provided context is
90934// canceled.
90935func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
90936	c.ctx_ = ctx
90937	return c
90938}
90939
90940// Header returns an http.Header that can be modified by the caller to
90941// add HTTP headers to the request.
90942func (c *InstancesAddAccessConfigCall) Header() http.Header {
90943	if c.header_ == nil {
90944		c.header_ = make(http.Header)
90945	}
90946	return c.header_
90947}
90948
90949func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
90950	reqHeaders := make(http.Header)
90951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90952	for k, v := range c.header_ {
90953		reqHeaders[k] = v
90954	}
90955	reqHeaders.Set("User-Agent", c.s.userAgent())
90956	var body io.Reader = nil
90957	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
90958	if err != nil {
90959		return nil, err
90960	}
90961	reqHeaders.Set("Content-Type", "application/json")
90962	c.urlParams_.Set("alt", alt)
90963	c.urlParams_.Set("prettyPrint", "false")
90964	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig")
90965	urls += "?" + c.urlParams_.Encode()
90966	req, err := http.NewRequest("POST", urls, body)
90967	if err != nil {
90968		return nil, err
90969	}
90970	req.Header = reqHeaders
90971	googleapi.Expand(req.URL, map[string]string{
90972		"project":  c.project,
90973		"zone":     c.zone,
90974		"instance": c.instance,
90975	})
90976	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90977}
90978
90979// Do executes the "compute.instances.addAccessConfig" call.
90980// Exactly one of *Operation or error will be non-nil. Any non-2xx
90981// status code is an error. Response headers are in either
90982// *Operation.ServerResponse.Header or (if a response was returned at
90983// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90984// to check whether the returned error was because
90985// http.StatusNotModified was returned.
90986func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90987	gensupport.SetOptions(c.urlParams_, opts...)
90988	res, err := c.doRequest("json")
90989	if res != nil && res.StatusCode == http.StatusNotModified {
90990		if res.Body != nil {
90991			res.Body.Close()
90992		}
90993		return nil, &googleapi.Error{
90994			Code:   res.StatusCode,
90995			Header: res.Header,
90996		}
90997	}
90998	if err != nil {
90999		return nil, err
91000	}
91001	defer googleapi.CloseBody(res)
91002	if err := googleapi.CheckResponse(res); err != nil {
91003		return nil, err
91004	}
91005	ret := &Operation{
91006		ServerResponse: googleapi.ServerResponse{
91007			Header:         res.Header,
91008			HTTPStatusCode: res.StatusCode,
91009		},
91010	}
91011	target := &ret
91012	if err := gensupport.DecodeResponse(target, res); err != nil {
91013		return nil, err
91014	}
91015	return ret, nil
91016	// {
91017	//   "description": "Adds an access config to an instance's network interface.",
91018	//   "httpMethod": "POST",
91019	//   "id": "compute.instances.addAccessConfig",
91020	//   "parameterOrder": [
91021	//     "project",
91022	//     "zone",
91023	//     "instance",
91024	//     "networkInterface"
91025	//   ],
91026	//   "parameters": {
91027	//     "instance": {
91028	//       "description": "The instance name for this request.",
91029	//       "location": "path",
91030	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91031	//       "required": true,
91032	//       "type": "string"
91033	//     },
91034	//     "networkInterface": {
91035	//       "description": "The name of the network interface to add to this instance.",
91036	//       "location": "query",
91037	//       "required": true,
91038	//       "type": "string"
91039	//     },
91040	//     "project": {
91041	//       "description": "Project ID for this request.",
91042	//       "location": "path",
91043	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91044	//       "required": true,
91045	//       "type": "string"
91046	//     },
91047	//     "requestId": {
91048	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91049	//       "location": "query",
91050	//       "type": "string"
91051	//     },
91052	//     "zone": {
91053	//       "description": "The name of the zone for this request.",
91054	//       "location": "path",
91055	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91056	//       "required": true,
91057	//       "type": "string"
91058	//     }
91059	//   },
91060	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
91061	//   "request": {
91062	//     "$ref": "AccessConfig"
91063	//   },
91064	//   "response": {
91065	//     "$ref": "Operation"
91066	//   },
91067	//   "scopes": [
91068	//     "https://www.googleapis.com/auth/cloud-platform",
91069	//     "https://www.googleapis.com/auth/compute"
91070	//   ]
91071	// }
91072
91073}
91074
91075// method id "compute.instances.addResourcePolicies":
91076
91077type InstancesAddResourcePoliciesCall struct {
91078	s                                   *Service
91079	project                             string
91080	zone                                string
91081	instance                            string
91082	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
91083	urlParams_                          gensupport.URLParams
91084	ctx_                                context.Context
91085	header_                             http.Header
91086}
91087
91088// AddResourcePolicies: Adds existing resource policies to an instance.
91089// You can only add one policy right now which will be applied to this
91090// instance for scheduling live migrations.
91091//
91092// - instance: The instance name for this request.
91093// - project: Project ID for this request.
91094// - zone: The name of the zone for this request.
91095func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
91096	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91097	c.project = project
91098	c.zone = zone
91099	c.instance = instance
91100	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
91101	return c
91102}
91103
91104// RequestId sets the optional parameter "requestId": An optional
91105// request ID to identify requests. Specify a unique request ID so that
91106// if you must retry your request, the server will know to ignore the
91107// request if it has already been completed.
91108//
91109// For example, consider a situation where you make an initial request
91110// and the request times out. If you make the request again with the
91111// same request ID, the server can check if original operation with the
91112// same request ID was received, and if so, will ignore the second
91113// request. This prevents clients from accidentally creating duplicate
91114// commitments.
91115//
91116// The request ID must be a valid UUID with the exception that zero UUID
91117// is not supported (00000000-0000-0000-0000-000000000000).
91118func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
91119	c.urlParams_.Set("requestId", requestId)
91120	return c
91121}
91122
91123// Fields allows partial responses to be retrieved. See
91124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91125// for more information.
91126func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
91127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91128	return c
91129}
91130
91131// Context sets the context to be used in this call's Do method. Any
91132// pending HTTP request will be aborted if the provided context is
91133// canceled.
91134func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
91135	c.ctx_ = ctx
91136	return c
91137}
91138
91139// Header returns an http.Header that can be modified by the caller to
91140// add HTTP headers to the request.
91141func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
91142	if c.header_ == nil {
91143		c.header_ = make(http.Header)
91144	}
91145	return c.header_
91146}
91147
91148func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
91149	reqHeaders := make(http.Header)
91150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91151	for k, v := range c.header_ {
91152		reqHeaders[k] = v
91153	}
91154	reqHeaders.Set("User-Agent", c.s.userAgent())
91155	var body io.Reader = nil
91156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
91157	if err != nil {
91158		return nil, err
91159	}
91160	reqHeaders.Set("Content-Type", "application/json")
91161	c.urlParams_.Set("alt", alt)
91162	c.urlParams_.Set("prettyPrint", "false")
91163	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
91164	urls += "?" + c.urlParams_.Encode()
91165	req, err := http.NewRequest("POST", urls, body)
91166	if err != nil {
91167		return nil, err
91168	}
91169	req.Header = reqHeaders
91170	googleapi.Expand(req.URL, map[string]string{
91171		"project":  c.project,
91172		"zone":     c.zone,
91173		"instance": c.instance,
91174	})
91175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91176}
91177
91178// Do executes the "compute.instances.addResourcePolicies" call.
91179// Exactly one of *Operation or error will be non-nil. Any non-2xx
91180// status code is an error. Response headers are in either
91181// *Operation.ServerResponse.Header or (if a response was returned at
91182// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91183// to check whether the returned error was because
91184// http.StatusNotModified was returned.
91185func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91186	gensupport.SetOptions(c.urlParams_, opts...)
91187	res, err := c.doRequest("json")
91188	if res != nil && res.StatusCode == http.StatusNotModified {
91189		if res.Body != nil {
91190			res.Body.Close()
91191		}
91192		return nil, &googleapi.Error{
91193			Code:   res.StatusCode,
91194			Header: res.Header,
91195		}
91196	}
91197	if err != nil {
91198		return nil, err
91199	}
91200	defer googleapi.CloseBody(res)
91201	if err := googleapi.CheckResponse(res); err != nil {
91202		return nil, err
91203	}
91204	ret := &Operation{
91205		ServerResponse: googleapi.ServerResponse{
91206			Header:         res.Header,
91207			HTTPStatusCode: res.StatusCode,
91208		},
91209	}
91210	target := &ret
91211	if err := gensupport.DecodeResponse(target, res); err != nil {
91212		return nil, err
91213	}
91214	return ret, nil
91215	// {
91216	//   "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.",
91217	//   "httpMethod": "POST",
91218	//   "id": "compute.instances.addResourcePolicies",
91219	//   "parameterOrder": [
91220	//     "project",
91221	//     "zone",
91222	//     "instance"
91223	//   ],
91224	//   "parameters": {
91225	//     "instance": {
91226	//       "description": "The instance name for this request.",
91227	//       "location": "path",
91228	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91229	//       "required": true,
91230	//       "type": "string"
91231	//     },
91232	//     "project": {
91233	//       "description": "Project ID for this request.",
91234	//       "location": "path",
91235	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91236	//       "required": true,
91237	//       "type": "string"
91238	//     },
91239	//     "requestId": {
91240	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91241	//       "location": "query",
91242	//       "type": "string"
91243	//     },
91244	//     "zone": {
91245	//       "description": "The name of the zone for this request.",
91246	//       "location": "path",
91247	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91248	//       "required": true,
91249	//       "type": "string"
91250	//     }
91251	//   },
91252	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
91253	//   "request": {
91254	//     "$ref": "InstancesAddResourcePoliciesRequest"
91255	//   },
91256	//   "response": {
91257	//     "$ref": "Operation"
91258	//   },
91259	//   "scopes": [
91260	//     "https://www.googleapis.com/auth/cloud-platform",
91261	//     "https://www.googleapis.com/auth/compute"
91262	//   ]
91263	// }
91264
91265}
91266
91267// method id "compute.instances.aggregatedList":
91268
91269type InstancesAggregatedListCall struct {
91270	s            *Service
91271	project      string
91272	urlParams_   gensupport.URLParams
91273	ifNoneMatch_ string
91274	ctx_         context.Context
91275	header_      http.Header
91276}
91277
91278// AggregatedList: Retrieves aggregated list of all of the instances in
91279// your project across all regions and zones.
91280//
91281// - project: Project ID for this request.
91282// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
91283func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
91284	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91285	c.project = project
91286	return c
91287}
91288
91289// Filter sets the optional parameter "filter": A filter expression that
91290// filters resources listed in the response. The expression must specify
91291// the field name, a comparison operator, and the value that you want to
91292// use for filtering. The value must be a string, a number, or a
91293// boolean. The comparison operator must be either `=`, `!=`, `>`, or
91294// `<`.
91295//
91296// For example, if you are filtering Compute Engine instances, you can
91297// exclude instances named `example-instance` by specifying `name !=
91298// example-instance`.
91299//
91300// You can also filter nested fields. For example, you could specify
91301// `scheduling.automaticRestart = false` to include instances only if
91302// they are not scheduled for automatic restarts. You can use filtering
91303// on nested fields to filter based on resource labels.
91304//
91305// To filter on multiple expressions, provide each separate expression
91306// within parentheses. For example: ``` (scheduling.automaticRestart =
91307// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
91308// is an `AND` expression. However, you can include `AND` and `OR`
91309// expressions explicitly. For example: ``` (cpuPlatform = "Intel
91310// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
91311// (scheduling.automaticRestart = true) ```
91312func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
91313	c.urlParams_.Set("filter", filter)
91314	return c
91315}
91316
91317// IncludeAllScopes sets the optional parameter "includeAllScopes":
91318// Indicates whether every visible scope for each scope type (zone,
91319// region, global) should be included in the response. For new resource
91320// types added after this field, the flag has no effect as new resource
91321// types will always include every visible scope for each scope type in
91322// response. For resource types which predate this field, if this flag
91323// is omitted or false, only scopes of the scope types where the
91324// resource type is expected to be found will be included.
91325func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
91326	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
91327	return c
91328}
91329
91330// MaxResults sets the optional parameter "maxResults": The maximum
91331// number of results per page that should be returned. If the number of
91332// available results is larger than `maxResults`, Compute Engine returns
91333// a `nextPageToken` that can be used to get the next page of results in
91334// subsequent list requests. Acceptable values are `0` to `500`,
91335// inclusive. (Default: `500`)
91336func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
91337	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91338	return c
91339}
91340
91341// OrderBy sets the optional parameter "orderBy": Sorts list results by
91342// a certain order. By default, results are returned in alphanumerical
91343// order based on the resource name.
91344//
91345// You can also sort results in descending order based on the creation
91346// timestamp using `orderBy="creationTimestamp desc". This sorts
91347// results based on the `creationTimestamp` field in reverse
91348// chronological order (newest result first). Use this to sort resources
91349// like operations so that the newest operation is returned
91350// first.
91351//
91352// Currently, only sorting by `name` or `creationTimestamp desc` is
91353// supported.
91354func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
91355	c.urlParams_.Set("orderBy", orderBy)
91356	return c
91357}
91358
91359// PageToken sets the optional parameter "pageToken": Specifies a page
91360// token to use. Set `pageToken` to the `nextPageToken` returned by a
91361// previous list request to get the next page of results.
91362func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
91363	c.urlParams_.Set("pageToken", pageToken)
91364	return c
91365}
91366
91367// ReturnPartialSuccess sets the optional parameter
91368// "returnPartialSuccess": Opt-in for partial success behavior which
91369// provides partial results in case of failure. The default value is
91370// false.
91371func (c *InstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesAggregatedListCall {
91372	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
91373	return c
91374}
91375
91376// Fields allows partial responses to be retrieved. See
91377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91378// for more information.
91379func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
91380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91381	return c
91382}
91383
91384// IfNoneMatch sets the optional parameter which makes the operation
91385// fail if the object's ETag matches the given value. This is useful for
91386// getting updates only after the object has changed since the last
91387// request. Use googleapi.IsNotModified to check whether the response
91388// error from Do is the result of In-None-Match.
91389func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
91390	c.ifNoneMatch_ = entityTag
91391	return c
91392}
91393
91394// Context sets the context to be used in this call's Do method. Any
91395// pending HTTP request will be aborted if the provided context is
91396// canceled.
91397func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
91398	c.ctx_ = ctx
91399	return c
91400}
91401
91402// Header returns an http.Header that can be modified by the caller to
91403// add HTTP headers to the request.
91404func (c *InstancesAggregatedListCall) Header() http.Header {
91405	if c.header_ == nil {
91406		c.header_ = make(http.Header)
91407	}
91408	return c.header_
91409}
91410
91411func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
91412	reqHeaders := make(http.Header)
91413	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91414	for k, v := range c.header_ {
91415		reqHeaders[k] = v
91416	}
91417	reqHeaders.Set("User-Agent", c.s.userAgent())
91418	if c.ifNoneMatch_ != "" {
91419		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91420	}
91421	var body io.Reader = nil
91422	c.urlParams_.Set("alt", alt)
91423	c.urlParams_.Set("prettyPrint", "false")
91424	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instances")
91425	urls += "?" + c.urlParams_.Encode()
91426	req, err := http.NewRequest("GET", urls, body)
91427	if err != nil {
91428		return nil, err
91429	}
91430	req.Header = reqHeaders
91431	googleapi.Expand(req.URL, map[string]string{
91432		"project": c.project,
91433	})
91434	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91435}
91436
91437// Do executes the "compute.instances.aggregatedList" call.
91438// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
91439// non-2xx status code is an error. Response headers are in either
91440// *InstanceAggregatedList.ServerResponse.Header or (if a response was
91441// returned at all) in error.(*googleapi.Error).Header. Use
91442// googleapi.IsNotModified to check whether the returned error was
91443// because http.StatusNotModified was returned.
91444func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
91445	gensupport.SetOptions(c.urlParams_, opts...)
91446	res, err := c.doRequest("json")
91447	if res != nil && res.StatusCode == http.StatusNotModified {
91448		if res.Body != nil {
91449			res.Body.Close()
91450		}
91451		return nil, &googleapi.Error{
91452			Code:   res.StatusCode,
91453			Header: res.Header,
91454		}
91455	}
91456	if err != nil {
91457		return nil, err
91458	}
91459	defer googleapi.CloseBody(res)
91460	if err := googleapi.CheckResponse(res); err != nil {
91461		return nil, err
91462	}
91463	ret := &InstanceAggregatedList{
91464		ServerResponse: googleapi.ServerResponse{
91465			Header:         res.Header,
91466			HTTPStatusCode: res.StatusCode,
91467		},
91468	}
91469	target := &ret
91470	if err := gensupport.DecodeResponse(target, res); err != nil {
91471		return nil, err
91472	}
91473	return ret, nil
91474	// {
91475	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
91476	//   "httpMethod": "GET",
91477	//   "id": "compute.instances.aggregatedList",
91478	//   "parameterOrder": [
91479	//     "project"
91480	//   ],
91481	//   "parameters": {
91482	//     "filter": {
91483	//       "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) ```",
91484	//       "location": "query",
91485	//       "type": "string"
91486	//     },
91487	//     "includeAllScopes": {
91488	//       "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.",
91489	//       "location": "query",
91490	//       "type": "boolean"
91491	//     },
91492	//     "maxResults": {
91493	//       "default": "500",
91494	//       "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`)",
91495	//       "format": "uint32",
91496	//       "location": "query",
91497	//       "minimum": "0",
91498	//       "type": "integer"
91499	//     },
91500	//     "orderBy": {
91501	//       "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.",
91502	//       "location": "query",
91503	//       "type": "string"
91504	//     },
91505	//     "pageToken": {
91506	//       "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.",
91507	//       "location": "query",
91508	//       "type": "string"
91509	//     },
91510	//     "project": {
91511	//       "description": "Project ID for this request.",
91512	//       "location": "path",
91513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91514	//       "required": true,
91515	//       "type": "string"
91516	//     },
91517	//     "returnPartialSuccess": {
91518	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
91519	//       "location": "query",
91520	//       "type": "boolean"
91521	//     }
91522	//   },
91523	//   "path": "projects/{project}/aggregated/instances",
91524	//   "response": {
91525	//     "$ref": "InstanceAggregatedList"
91526	//   },
91527	//   "scopes": [
91528	//     "https://www.googleapis.com/auth/cloud-platform",
91529	//     "https://www.googleapis.com/auth/compute",
91530	//     "https://www.googleapis.com/auth/compute.readonly"
91531	//   ]
91532	// }
91533
91534}
91535
91536// Pages invokes f for each page of results.
91537// A non-nil error returned from f will halt the iteration.
91538// The provided context supersedes any context provided to the Context method.
91539func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
91540	c.ctx_ = ctx
91541	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
91542	for {
91543		x, err := c.Do()
91544		if err != nil {
91545			return err
91546		}
91547		if err := f(x); err != nil {
91548			return err
91549		}
91550		if x.NextPageToken == "" {
91551			return nil
91552		}
91553		c.PageToken(x.NextPageToken)
91554	}
91555}
91556
91557// method id "compute.instances.attachDisk":
91558
91559type InstancesAttachDiskCall struct {
91560	s            *Service
91561	project      string
91562	zone         string
91563	instance     string
91564	attacheddisk *AttachedDisk
91565	urlParams_   gensupport.URLParams
91566	ctx_         context.Context
91567	header_      http.Header
91568}
91569
91570// AttachDisk: Attaches an existing Disk resource to an instance. You
91571// must first create the disk before you can attach it. It is not
91572// possible to create and attach a disk at the same time. For more
91573// information, read Adding a persistent disk to your instance.
91574//
91575// - instance: The instance name for this request.
91576// - project: Project ID for this request.
91577// - zone: The name of the zone for this request.
91578// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
91579func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
91580	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91581	c.project = project
91582	c.zone = zone
91583	c.instance = instance
91584	c.attacheddisk = attacheddisk
91585	return c
91586}
91587
91588// ForceAttach sets the optional parameter "forceAttach": Whether to
91589// force attach the regional disk even if it's currently attached to
91590// another instance. If you try to force attach a zonal disk to an
91591// instance, you will receive an error.
91592func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
91593	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
91594	return c
91595}
91596
91597// RequestId sets the optional parameter "requestId": An optional
91598// request ID to identify requests. Specify a unique request ID so that
91599// if you must retry your request, the server will know to ignore the
91600// request if it has already been completed.
91601//
91602// For example, consider a situation where you make an initial request
91603// and the request times out. If you make the request again with the
91604// same request ID, the server can check if original operation with the
91605// same request ID was received, and if so, will ignore the second
91606// request. This prevents clients from accidentally creating duplicate
91607// commitments.
91608//
91609// The request ID must be a valid UUID with the exception that zero UUID
91610// is not supported (00000000-0000-0000-0000-000000000000).
91611func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
91612	c.urlParams_.Set("requestId", requestId)
91613	return c
91614}
91615
91616// Fields allows partial responses to be retrieved. See
91617// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91618// for more information.
91619func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
91620	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91621	return c
91622}
91623
91624// Context sets the context to be used in this call's Do method. Any
91625// pending HTTP request will be aborted if the provided context is
91626// canceled.
91627func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
91628	c.ctx_ = ctx
91629	return c
91630}
91631
91632// Header returns an http.Header that can be modified by the caller to
91633// add HTTP headers to the request.
91634func (c *InstancesAttachDiskCall) Header() http.Header {
91635	if c.header_ == nil {
91636		c.header_ = make(http.Header)
91637	}
91638	return c.header_
91639}
91640
91641func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
91642	reqHeaders := make(http.Header)
91643	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91644	for k, v := range c.header_ {
91645		reqHeaders[k] = v
91646	}
91647	reqHeaders.Set("User-Agent", c.s.userAgent())
91648	var body io.Reader = nil
91649	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
91650	if err != nil {
91651		return nil, err
91652	}
91653	reqHeaders.Set("Content-Type", "application/json")
91654	c.urlParams_.Set("alt", alt)
91655	c.urlParams_.Set("prettyPrint", "false")
91656	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/attachDisk")
91657	urls += "?" + c.urlParams_.Encode()
91658	req, err := http.NewRequest("POST", urls, body)
91659	if err != nil {
91660		return nil, err
91661	}
91662	req.Header = reqHeaders
91663	googleapi.Expand(req.URL, map[string]string{
91664		"project":  c.project,
91665		"zone":     c.zone,
91666		"instance": c.instance,
91667	})
91668	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91669}
91670
91671// Do executes the "compute.instances.attachDisk" call.
91672// Exactly one of *Operation or error will be non-nil. Any non-2xx
91673// status code is an error. Response headers are in either
91674// *Operation.ServerResponse.Header or (if a response was returned at
91675// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91676// to check whether the returned error was because
91677// http.StatusNotModified was returned.
91678func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91679	gensupport.SetOptions(c.urlParams_, opts...)
91680	res, err := c.doRequest("json")
91681	if res != nil && res.StatusCode == http.StatusNotModified {
91682		if res.Body != nil {
91683			res.Body.Close()
91684		}
91685		return nil, &googleapi.Error{
91686			Code:   res.StatusCode,
91687			Header: res.Header,
91688		}
91689	}
91690	if err != nil {
91691		return nil, err
91692	}
91693	defer googleapi.CloseBody(res)
91694	if err := googleapi.CheckResponse(res); err != nil {
91695		return nil, err
91696	}
91697	ret := &Operation{
91698		ServerResponse: googleapi.ServerResponse{
91699			Header:         res.Header,
91700			HTTPStatusCode: res.StatusCode,
91701		},
91702	}
91703	target := &ret
91704	if err := gensupport.DecodeResponse(target, res); err != nil {
91705		return nil, err
91706	}
91707	return ret, nil
91708	// {
91709	//   "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.",
91710	//   "httpMethod": "POST",
91711	//   "id": "compute.instances.attachDisk",
91712	//   "parameterOrder": [
91713	//     "project",
91714	//     "zone",
91715	//     "instance"
91716	//   ],
91717	//   "parameters": {
91718	//     "forceAttach": {
91719	//       "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.",
91720	//       "location": "query",
91721	//       "type": "boolean"
91722	//     },
91723	//     "instance": {
91724	//       "description": "The instance name for this request.",
91725	//       "location": "path",
91726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91727	//       "required": true,
91728	//       "type": "string"
91729	//     },
91730	//     "project": {
91731	//       "description": "Project ID for this request.",
91732	//       "location": "path",
91733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91734	//       "required": true,
91735	//       "type": "string"
91736	//     },
91737	//     "requestId": {
91738	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91739	//       "location": "query",
91740	//       "type": "string"
91741	//     },
91742	//     "zone": {
91743	//       "description": "The name of the zone for this request.",
91744	//       "location": "path",
91745	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91746	//       "required": true,
91747	//       "type": "string"
91748	//     }
91749	//   },
91750	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
91751	//   "request": {
91752	//     "$ref": "AttachedDisk"
91753	//   },
91754	//   "response": {
91755	//     "$ref": "Operation"
91756	//   },
91757	//   "scopes": [
91758	//     "https://www.googleapis.com/auth/cloud-platform",
91759	//     "https://www.googleapis.com/auth/compute"
91760	//   ]
91761	// }
91762
91763}
91764
91765// method id "compute.instances.bulkInsert":
91766
91767type InstancesBulkInsertCall struct {
91768	s                          *Service
91769	project                    string
91770	zone                       string
91771	bulkinsertinstanceresource *BulkInsertInstanceResource
91772	urlParams_                 gensupport.URLParams
91773	ctx_                       context.Context
91774	header_                    http.Header
91775}
91776
91777// BulkInsert: Creates multiple instances. Count specifies the number of
91778// instances to create.
91779//
91780// - project: Project ID for this request.
91781// - zone: The name of the zone for this request.
91782func (r *InstancesService) BulkInsert(project string, zone string, bulkinsertinstanceresource *BulkInsertInstanceResource) *InstancesBulkInsertCall {
91783	c := &InstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91784	c.project = project
91785	c.zone = zone
91786	c.bulkinsertinstanceresource = bulkinsertinstanceresource
91787	return c
91788}
91789
91790// RequestId sets the optional parameter "requestId": An optional
91791// request ID to identify requests. Specify a unique request ID so that
91792// if you must retry your request, the server will know to ignore the
91793// request if it has already been completed.
91794//
91795// For example, consider a situation where you make an initial request
91796// and the request times out. If you make the request again with the
91797// same request ID, the server can check if original operation with the
91798// same request ID was received, and if so, will ignore the second
91799// request. This prevents clients from accidentally creating duplicate
91800// commitments.
91801//
91802// The request ID must be a valid UUID with the exception that zero UUID
91803// is not supported (00000000-0000-0000-0000-000000000000).
91804func (c *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInsertCall {
91805	c.urlParams_.Set("requestId", requestId)
91806	return c
91807}
91808
91809// Fields allows partial responses to be retrieved. See
91810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91811// for more information.
91812func (c *InstancesBulkInsertCall) Fields(s ...googleapi.Field) *InstancesBulkInsertCall {
91813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91814	return c
91815}
91816
91817// Context sets the context to be used in this call's Do method. Any
91818// pending HTTP request will be aborted if the provided context is
91819// canceled.
91820func (c *InstancesBulkInsertCall) Context(ctx context.Context) *InstancesBulkInsertCall {
91821	c.ctx_ = ctx
91822	return c
91823}
91824
91825// Header returns an http.Header that can be modified by the caller to
91826// add HTTP headers to the request.
91827func (c *InstancesBulkInsertCall) Header() http.Header {
91828	if c.header_ == nil {
91829		c.header_ = make(http.Header)
91830	}
91831	return c.header_
91832}
91833
91834func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
91835	reqHeaders := make(http.Header)
91836	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91837	for k, v := range c.header_ {
91838		reqHeaders[k] = v
91839	}
91840	reqHeaders.Set("User-Agent", c.s.userAgent())
91841	var body io.Reader = nil
91842	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
91843	if err != nil {
91844		return nil, err
91845	}
91846	reqHeaders.Set("Content-Type", "application/json")
91847	c.urlParams_.Set("alt", alt)
91848	c.urlParams_.Set("prettyPrint", "false")
91849	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/bulkInsert")
91850	urls += "?" + c.urlParams_.Encode()
91851	req, err := http.NewRequest("POST", urls, body)
91852	if err != nil {
91853		return nil, err
91854	}
91855	req.Header = reqHeaders
91856	googleapi.Expand(req.URL, map[string]string{
91857		"project": c.project,
91858		"zone":    c.zone,
91859	})
91860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91861}
91862
91863// Do executes the "compute.instances.bulkInsert" call.
91864// Exactly one of *Operation or error will be non-nil. Any non-2xx
91865// status code is an error. Response headers are in either
91866// *Operation.ServerResponse.Header or (if a response was returned at
91867// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91868// to check whether the returned error was because
91869// http.StatusNotModified was returned.
91870func (c *InstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91871	gensupport.SetOptions(c.urlParams_, opts...)
91872	res, err := c.doRequest("json")
91873	if res != nil && res.StatusCode == http.StatusNotModified {
91874		if res.Body != nil {
91875			res.Body.Close()
91876		}
91877		return nil, &googleapi.Error{
91878			Code:   res.StatusCode,
91879			Header: res.Header,
91880		}
91881	}
91882	if err != nil {
91883		return nil, err
91884	}
91885	defer googleapi.CloseBody(res)
91886	if err := googleapi.CheckResponse(res); err != nil {
91887		return nil, err
91888	}
91889	ret := &Operation{
91890		ServerResponse: googleapi.ServerResponse{
91891			Header:         res.Header,
91892			HTTPStatusCode: res.StatusCode,
91893		},
91894	}
91895	target := &ret
91896	if err := gensupport.DecodeResponse(target, res); err != nil {
91897		return nil, err
91898	}
91899	return ret, nil
91900	// {
91901	//   "description": "Creates multiple instances. Count specifies the number of instances to create.",
91902	//   "httpMethod": "POST",
91903	//   "id": "compute.instances.bulkInsert",
91904	//   "parameterOrder": [
91905	//     "project",
91906	//     "zone"
91907	//   ],
91908	//   "parameters": {
91909	//     "project": {
91910	//       "description": "Project ID for this request.",
91911	//       "location": "path",
91912	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91913	//       "required": true,
91914	//       "type": "string"
91915	//     },
91916	//     "requestId": {
91917	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91918	//       "location": "query",
91919	//       "type": "string"
91920	//     },
91921	//     "zone": {
91922	//       "description": "The name of the zone for this request.",
91923	//       "location": "path",
91924	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91925	//       "required": true,
91926	//       "type": "string"
91927	//     }
91928	//   },
91929	//   "path": "projects/{project}/zones/{zone}/instances/bulkInsert",
91930	//   "request": {
91931	//     "$ref": "BulkInsertInstanceResource"
91932	//   },
91933	//   "response": {
91934	//     "$ref": "Operation"
91935	//   },
91936	//   "scopes": [
91937	//     "https://www.googleapis.com/auth/cloud-platform",
91938	//     "https://www.googleapis.com/auth/compute"
91939	//   ]
91940	// }
91941
91942}
91943
91944// method id "compute.instances.delete":
91945
91946type InstancesDeleteCall struct {
91947	s          *Service
91948	project    string
91949	zone       string
91950	instance   string
91951	urlParams_ gensupport.URLParams
91952	ctx_       context.Context
91953	header_    http.Header
91954}
91955
91956// Delete: Deletes the specified Instance resource. For more
91957// information, see Deleting an instance.
91958//
91959// - instance: Name of the instance resource to delete.
91960// - project: Project ID for this request.
91961// - zone: The name of the zone for this request.
91962// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
91963func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
91964	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91965	c.project = project
91966	c.zone = zone
91967	c.instance = instance
91968	return c
91969}
91970
91971// RequestId sets the optional parameter "requestId": An optional
91972// request ID to identify requests. Specify a unique request ID so that
91973// if you must retry your request, the server will know to ignore the
91974// request if it has already been completed.
91975//
91976// For example, consider a situation where you make an initial request
91977// and the request times out. If you make the request again with the
91978// same request ID, the server can check if original operation with the
91979// same request ID was received, and if so, will ignore the second
91980// request. This prevents clients from accidentally creating duplicate
91981// commitments.
91982//
91983// The request ID must be a valid UUID with the exception that zero UUID
91984// is not supported (00000000-0000-0000-0000-000000000000).
91985func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
91986	c.urlParams_.Set("requestId", requestId)
91987	return c
91988}
91989
91990// Fields allows partial responses to be retrieved. See
91991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91992// for more information.
91993func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
91994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91995	return c
91996}
91997
91998// Context sets the context to be used in this call's Do method. Any
91999// pending HTTP request will be aborted if the provided context is
92000// canceled.
92001func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
92002	c.ctx_ = ctx
92003	return c
92004}
92005
92006// Header returns an http.Header that can be modified by the caller to
92007// add HTTP headers to the request.
92008func (c *InstancesDeleteCall) Header() http.Header {
92009	if c.header_ == nil {
92010		c.header_ = make(http.Header)
92011	}
92012	return c.header_
92013}
92014
92015func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
92016	reqHeaders := make(http.Header)
92017	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92018	for k, v := range c.header_ {
92019		reqHeaders[k] = v
92020	}
92021	reqHeaders.Set("User-Agent", c.s.userAgent())
92022	var body io.Reader = nil
92023	c.urlParams_.Set("alt", alt)
92024	c.urlParams_.Set("prettyPrint", "false")
92025	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
92026	urls += "?" + c.urlParams_.Encode()
92027	req, err := http.NewRequest("DELETE", urls, body)
92028	if err != nil {
92029		return nil, err
92030	}
92031	req.Header = reqHeaders
92032	googleapi.Expand(req.URL, map[string]string{
92033		"project":  c.project,
92034		"zone":     c.zone,
92035		"instance": c.instance,
92036	})
92037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92038}
92039
92040// Do executes the "compute.instances.delete" call.
92041// Exactly one of *Operation or error will be non-nil. Any non-2xx
92042// status code is an error. Response headers are in either
92043// *Operation.ServerResponse.Header or (if a response was returned at
92044// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92045// to check whether the returned error was because
92046// http.StatusNotModified was returned.
92047func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92048	gensupport.SetOptions(c.urlParams_, opts...)
92049	res, err := c.doRequest("json")
92050	if res != nil && res.StatusCode == http.StatusNotModified {
92051		if res.Body != nil {
92052			res.Body.Close()
92053		}
92054		return nil, &googleapi.Error{
92055			Code:   res.StatusCode,
92056			Header: res.Header,
92057		}
92058	}
92059	if err != nil {
92060		return nil, err
92061	}
92062	defer googleapi.CloseBody(res)
92063	if err := googleapi.CheckResponse(res); err != nil {
92064		return nil, err
92065	}
92066	ret := &Operation{
92067		ServerResponse: googleapi.ServerResponse{
92068			Header:         res.Header,
92069			HTTPStatusCode: res.StatusCode,
92070		},
92071	}
92072	target := &ret
92073	if err := gensupport.DecodeResponse(target, res); err != nil {
92074		return nil, err
92075	}
92076	return ret, nil
92077	// {
92078	//   "description": "Deletes the specified Instance resource. For more information, see Deleting an instance.",
92079	//   "httpMethod": "DELETE",
92080	//   "id": "compute.instances.delete",
92081	//   "parameterOrder": [
92082	//     "project",
92083	//     "zone",
92084	//     "instance"
92085	//   ],
92086	//   "parameters": {
92087	//     "instance": {
92088	//       "description": "Name of the instance resource to delete.",
92089	//       "location": "path",
92090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92091	//       "required": true,
92092	//       "type": "string"
92093	//     },
92094	//     "project": {
92095	//       "description": "Project ID for this request.",
92096	//       "location": "path",
92097	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92098	//       "required": true,
92099	//       "type": "string"
92100	//     },
92101	//     "requestId": {
92102	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92103	//       "location": "query",
92104	//       "type": "string"
92105	//     },
92106	//     "zone": {
92107	//       "description": "The name of the zone for this request.",
92108	//       "location": "path",
92109	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92110	//       "required": true,
92111	//       "type": "string"
92112	//     }
92113	//   },
92114	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
92115	//   "response": {
92116	//     "$ref": "Operation"
92117	//   },
92118	//   "scopes": [
92119	//     "https://www.googleapis.com/auth/cloud-platform",
92120	//     "https://www.googleapis.com/auth/compute"
92121	//   ]
92122	// }
92123
92124}
92125
92126// method id "compute.instances.deleteAccessConfig":
92127
92128type InstancesDeleteAccessConfigCall struct {
92129	s          *Service
92130	project    string
92131	zone       string
92132	instance   string
92133	urlParams_ gensupport.URLParams
92134	ctx_       context.Context
92135	header_    http.Header
92136}
92137
92138// DeleteAccessConfig: Deletes an access config from an instance's
92139// network interface.
92140//
92141// - accessConfig: The name of the access config to delete.
92142// - instance: The instance name for this request.
92143// - networkInterface: The name of the network interface.
92144// - project: Project ID for this request.
92145// - zone: The name of the zone for this request.
92146// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
92147func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
92148	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92149	c.project = project
92150	c.zone = zone
92151	c.instance = instance
92152	c.urlParams_.Set("accessConfig", accessConfig)
92153	c.urlParams_.Set("networkInterface", networkInterface)
92154	return c
92155}
92156
92157// RequestId sets the optional parameter "requestId": An optional
92158// request ID to identify requests. Specify a unique request ID so that
92159// if you must retry your request, the server will know to ignore the
92160// request if it has already been completed.
92161//
92162// For example, consider a situation where you make an initial request
92163// and the request times out. If you make the request again with the
92164// same request ID, the server can check if original operation with the
92165// same request ID was received, and if so, will ignore the second
92166// request. This prevents clients from accidentally creating duplicate
92167// commitments.
92168//
92169// The request ID must be a valid UUID with the exception that zero UUID
92170// is not supported (00000000-0000-0000-0000-000000000000).
92171func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
92172	c.urlParams_.Set("requestId", requestId)
92173	return c
92174}
92175
92176// Fields allows partial responses to be retrieved. See
92177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92178// for more information.
92179func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
92180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92181	return c
92182}
92183
92184// Context sets the context to be used in this call's Do method. Any
92185// pending HTTP request will be aborted if the provided context is
92186// canceled.
92187func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
92188	c.ctx_ = ctx
92189	return c
92190}
92191
92192// Header returns an http.Header that can be modified by the caller to
92193// add HTTP headers to the request.
92194func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
92195	if c.header_ == nil {
92196		c.header_ = make(http.Header)
92197	}
92198	return c.header_
92199}
92200
92201func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
92202	reqHeaders := make(http.Header)
92203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92204	for k, v := range c.header_ {
92205		reqHeaders[k] = v
92206	}
92207	reqHeaders.Set("User-Agent", c.s.userAgent())
92208	var body io.Reader = nil
92209	c.urlParams_.Set("alt", alt)
92210	c.urlParams_.Set("prettyPrint", "false")
92211	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
92212	urls += "?" + c.urlParams_.Encode()
92213	req, err := http.NewRequest("POST", urls, body)
92214	if err != nil {
92215		return nil, err
92216	}
92217	req.Header = reqHeaders
92218	googleapi.Expand(req.URL, map[string]string{
92219		"project":  c.project,
92220		"zone":     c.zone,
92221		"instance": c.instance,
92222	})
92223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92224}
92225
92226// Do executes the "compute.instances.deleteAccessConfig" call.
92227// Exactly one of *Operation or error will be non-nil. Any non-2xx
92228// status code is an error. Response headers are in either
92229// *Operation.ServerResponse.Header or (if a response was returned at
92230// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92231// to check whether the returned error was because
92232// http.StatusNotModified was returned.
92233func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92234	gensupport.SetOptions(c.urlParams_, opts...)
92235	res, err := c.doRequest("json")
92236	if res != nil && res.StatusCode == http.StatusNotModified {
92237		if res.Body != nil {
92238			res.Body.Close()
92239		}
92240		return nil, &googleapi.Error{
92241			Code:   res.StatusCode,
92242			Header: res.Header,
92243		}
92244	}
92245	if err != nil {
92246		return nil, err
92247	}
92248	defer googleapi.CloseBody(res)
92249	if err := googleapi.CheckResponse(res); err != nil {
92250		return nil, err
92251	}
92252	ret := &Operation{
92253		ServerResponse: googleapi.ServerResponse{
92254			Header:         res.Header,
92255			HTTPStatusCode: res.StatusCode,
92256		},
92257	}
92258	target := &ret
92259	if err := gensupport.DecodeResponse(target, res); err != nil {
92260		return nil, err
92261	}
92262	return ret, nil
92263	// {
92264	//   "description": "Deletes an access config from an instance's network interface.",
92265	//   "httpMethod": "POST",
92266	//   "id": "compute.instances.deleteAccessConfig",
92267	//   "parameterOrder": [
92268	//     "project",
92269	//     "zone",
92270	//     "instance",
92271	//     "accessConfig",
92272	//     "networkInterface"
92273	//   ],
92274	//   "parameters": {
92275	//     "accessConfig": {
92276	//       "description": "The name of the access config to delete.",
92277	//       "location": "query",
92278	//       "required": true,
92279	//       "type": "string"
92280	//     },
92281	//     "instance": {
92282	//       "description": "The instance name for this request.",
92283	//       "location": "path",
92284	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92285	//       "required": true,
92286	//       "type": "string"
92287	//     },
92288	//     "networkInterface": {
92289	//       "description": "The name of the network interface.",
92290	//       "location": "query",
92291	//       "required": true,
92292	//       "type": "string"
92293	//     },
92294	//     "project": {
92295	//       "description": "Project ID for this request.",
92296	//       "location": "path",
92297	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92298	//       "required": true,
92299	//       "type": "string"
92300	//     },
92301	//     "requestId": {
92302	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92303	//       "location": "query",
92304	//       "type": "string"
92305	//     },
92306	//     "zone": {
92307	//       "description": "The name of the zone for this request.",
92308	//       "location": "path",
92309	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92310	//       "required": true,
92311	//       "type": "string"
92312	//     }
92313	//   },
92314	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
92315	//   "response": {
92316	//     "$ref": "Operation"
92317	//   },
92318	//   "scopes": [
92319	//     "https://www.googleapis.com/auth/cloud-platform",
92320	//     "https://www.googleapis.com/auth/compute"
92321	//   ]
92322	// }
92323
92324}
92325
92326// method id "compute.instances.detachDisk":
92327
92328type InstancesDetachDiskCall struct {
92329	s          *Service
92330	project    string
92331	zone       string
92332	instance   string
92333	urlParams_ gensupport.URLParams
92334	ctx_       context.Context
92335	header_    http.Header
92336}
92337
92338// DetachDisk: Detaches a disk from an instance.
92339//
92340// - deviceName: The device name of the disk to detach. Make a get()
92341//   request on the instance to view currently attached disks and device
92342//   names.
92343// - instance: Instance name for this request.
92344// - project: Project ID for this request.
92345// - zone: The name of the zone for this request.
92346// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
92347func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
92348	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92349	c.project = project
92350	c.zone = zone
92351	c.instance = instance
92352	c.urlParams_.Set("deviceName", deviceName)
92353	return c
92354}
92355
92356// RequestId sets the optional parameter "requestId": An optional
92357// request ID to identify requests. Specify a unique request ID so that
92358// if you must retry your request, the server will know to ignore the
92359// request if it has already been completed.
92360//
92361// For example, consider a situation where you make an initial request
92362// and the request times out. If you make the request again with the
92363// same request ID, the server can check if original operation with the
92364// same request ID was received, and if so, will ignore the second
92365// request. This prevents clients from accidentally creating duplicate
92366// commitments.
92367//
92368// The request ID must be a valid UUID with the exception that zero UUID
92369// is not supported (00000000-0000-0000-0000-000000000000).
92370func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
92371	c.urlParams_.Set("requestId", requestId)
92372	return c
92373}
92374
92375// Fields allows partial responses to be retrieved. See
92376// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92377// for more information.
92378func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
92379	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92380	return c
92381}
92382
92383// Context sets the context to be used in this call's Do method. Any
92384// pending HTTP request will be aborted if the provided context is
92385// canceled.
92386func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
92387	c.ctx_ = ctx
92388	return c
92389}
92390
92391// Header returns an http.Header that can be modified by the caller to
92392// add HTTP headers to the request.
92393func (c *InstancesDetachDiskCall) Header() http.Header {
92394	if c.header_ == nil {
92395		c.header_ = make(http.Header)
92396	}
92397	return c.header_
92398}
92399
92400func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
92401	reqHeaders := make(http.Header)
92402	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92403	for k, v := range c.header_ {
92404		reqHeaders[k] = v
92405	}
92406	reqHeaders.Set("User-Agent", c.s.userAgent())
92407	var body io.Reader = nil
92408	c.urlParams_.Set("alt", alt)
92409	c.urlParams_.Set("prettyPrint", "false")
92410	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/detachDisk")
92411	urls += "?" + c.urlParams_.Encode()
92412	req, err := http.NewRequest("POST", urls, body)
92413	if err != nil {
92414		return nil, err
92415	}
92416	req.Header = reqHeaders
92417	googleapi.Expand(req.URL, map[string]string{
92418		"project":  c.project,
92419		"zone":     c.zone,
92420		"instance": c.instance,
92421	})
92422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92423}
92424
92425// Do executes the "compute.instances.detachDisk" call.
92426// Exactly one of *Operation or error will be non-nil. Any non-2xx
92427// status code is an error. Response headers are in either
92428// *Operation.ServerResponse.Header or (if a response was returned at
92429// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92430// to check whether the returned error was because
92431// http.StatusNotModified was returned.
92432func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92433	gensupport.SetOptions(c.urlParams_, opts...)
92434	res, err := c.doRequest("json")
92435	if res != nil && res.StatusCode == http.StatusNotModified {
92436		if res.Body != nil {
92437			res.Body.Close()
92438		}
92439		return nil, &googleapi.Error{
92440			Code:   res.StatusCode,
92441			Header: res.Header,
92442		}
92443	}
92444	if err != nil {
92445		return nil, err
92446	}
92447	defer googleapi.CloseBody(res)
92448	if err := googleapi.CheckResponse(res); err != nil {
92449		return nil, err
92450	}
92451	ret := &Operation{
92452		ServerResponse: googleapi.ServerResponse{
92453			Header:         res.Header,
92454			HTTPStatusCode: res.StatusCode,
92455		},
92456	}
92457	target := &ret
92458	if err := gensupport.DecodeResponse(target, res); err != nil {
92459		return nil, err
92460	}
92461	return ret, nil
92462	// {
92463	//   "description": "Detaches a disk from an instance.",
92464	//   "httpMethod": "POST",
92465	//   "id": "compute.instances.detachDisk",
92466	//   "parameterOrder": [
92467	//     "project",
92468	//     "zone",
92469	//     "instance",
92470	//     "deviceName"
92471	//   ],
92472	//   "parameters": {
92473	//     "deviceName": {
92474	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
92475	//       "location": "query",
92476	//       "required": true,
92477	//       "type": "string"
92478	//     },
92479	//     "instance": {
92480	//       "description": "Instance name for this request.",
92481	//       "location": "path",
92482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92483	//       "required": true,
92484	//       "type": "string"
92485	//     },
92486	//     "project": {
92487	//       "description": "Project ID for this request.",
92488	//       "location": "path",
92489	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92490	//       "required": true,
92491	//       "type": "string"
92492	//     },
92493	//     "requestId": {
92494	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92495	//       "location": "query",
92496	//       "type": "string"
92497	//     },
92498	//     "zone": {
92499	//       "description": "The name of the zone for this request.",
92500	//       "location": "path",
92501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92502	//       "required": true,
92503	//       "type": "string"
92504	//     }
92505	//   },
92506	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
92507	//   "response": {
92508	//     "$ref": "Operation"
92509	//   },
92510	//   "scopes": [
92511	//     "https://www.googleapis.com/auth/cloud-platform",
92512	//     "https://www.googleapis.com/auth/compute"
92513	//   ]
92514	// }
92515
92516}
92517
92518// method id "compute.instances.get":
92519
92520type InstancesGetCall struct {
92521	s            *Service
92522	project      string
92523	zone         string
92524	instance     string
92525	urlParams_   gensupport.URLParams
92526	ifNoneMatch_ string
92527	ctx_         context.Context
92528	header_      http.Header
92529}
92530
92531// Get: Returns the specified Instance resource. Gets a list of
92532// available instances by making a list() request.
92533//
92534// - instance: Name of the instance resource to return.
92535// - project: Project ID for this request.
92536// - zone: The name of the zone for this request.
92537// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
92538func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
92539	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92540	c.project = project
92541	c.zone = zone
92542	c.instance = instance
92543	return c
92544}
92545
92546// Fields allows partial responses to be retrieved. See
92547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92548// for more information.
92549func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
92550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92551	return c
92552}
92553
92554// IfNoneMatch sets the optional parameter which makes the operation
92555// fail if the object's ETag matches the given value. This is useful for
92556// getting updates only after the object has changed since the last
92557// request. Use googleapi.IsNotModified to check whether the response
92558// error from Do is the result of In-None-Match.
92559func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
92560	c.ifNoneMatch_ = entityTag
92561	return c
92562}
92563
92564// Context sets the context to be used in this call's Do method. Any
92565// pending HTTP request will be aborted if the provided context is
92566// canceled.
92567func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
92568	c.ctx_ = ctx
92569	return c
92570}
92571
92572// Header returns an http.Header that can be modified by the caller to
92573// add HTTP headers to the request.
92574func (c *InstancesGetCall) Header() http.Header {
92575	if c.header_ == nil {
92576		c.header_ = make(http.Header)
92577	}
92578	return c.header_
92579}
92580
92581func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
92582	reqHeaders := make(http.Header)
92583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92584	for k, v := range c.header_ {
92585		reqHeaders[k] = v
92586	}
92587	reqHeaders.Set("User-Agent", c.s.userAgent())
92588	if c.ifNoneMatch_ != "" {
92589		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92590	}
92591	var body io.Reader = nil
92592	c.urlParams_.Set("alt", alt)
92593	c.urlParams_.Set("prettyPrint", "false")
92594	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
92595	urls += "?" + c.urlParams_.Encode()
92596	req, err := http.NewRequest("GET", urls, body)
92597	if err != nil {
92598		return nil, err
92599	}
92600	req.Header = reqHeaders
92601	googleapi.Expand(req.URL, map[string]string{
92602		"project":  c.project,
92603		"zone":     c.zone,
92604		"instance": c.instance,
92605	})
92606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92607}
92608
92609// Do executes the "compute.instances.get" call.
92610// Exactly one of *Instance or error will be non-nil. Any non-2xx status
92611// code is an error. Response headers are in either
92612// *Instance.ServerResponse.Header or (if a response was returned at
92613// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92614// to check whether the returned error was because
92615// http.StatusNotModified was returned.
92616func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
92617	gensupport.SetOptions(c.urlParams_, opts...)
92618	res, err := c.doRequest("json")
92619	if res != nil && res.StatusCode == http.StatusNotModified {
92620		if res.Body != nil {
92621			res.Body.Close()
92622		}
92623		return nil, &googleapi.Error{
92624			Code:   res.StatusCode,
92625			Header: res.Header,
92626		}
92627	}
92628	if err != nil {
92629		return nil, err
92630	}
92631	defer googleapi.CloseBody(res)
92632	if err := googleapi.CheckResponse(res); err != nil {
92633		return nil, err
92634	}
92635	ret := &Instance{
92636		ServerResponse: googleapi.ServerResponse{
92637			Header:         res.Header,
92638			HTTPStatusCode: res.StatusCode,
92639		},
92640	}
92641	target := &ret
92642	if err := gensupport.DecodeResponse(target, res); err != nil {
92643		return nil, err
92644	}
92645	return ret, nil
92646	// {
92647	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
92648	//   "httpMethod": "GET",
92649	//   "id": "compute.instances.get",
92650	//   "parameterOrder": [
92651	//     "project",
92652	//     "zone",
92653	//     "instance"
92654	//   ],
92655	//   "parameters": {
92656	//     "instance": {
92657	//       "description": "Name of the instance resource to return.",
92658	//       "location": "path",
92659	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92660	//       "required": true,
92661	//       "type": "string"
92662	//     },
92663	//     "project": {
92664	//       "description": "Project ID for this request.",
92665	//       "location": "path",
92666	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92667	//       "required": true,
92668	//       "type": "string"
92669	//     },
92670	//     "zone": {
92671	//       "description": "The name of the zone for this request.",
92672	//       "location": "path",
92673	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92674	//       "required": true,
92675	//       "type": "string"
92676	//     }
92677	//   },
92678	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
92679	//   "response": {
92680	//     "$ref": "Instance"
92681	//   },
92682	//   "scopes": [
92683	//     "https://www.googleapis.com/auth/cloud-platform",
92684	//     "https://www.googleapis.com/auth/compute",
92685	//     "https://www.googleapis.com/auth/compute.readonly"
92686	//   ]
92687	// }
92688
92689}
92690
92691// method id "compute.instances.getEffectiveFirewalls":
92692
92693type InstancesGetEffectiveFirewallsCall struct {
92694	s            *Service
92695	project      string
92696	zone         string
92697	instance     string
92698	urlParams_   gensupport.URLParams
92699	ifNoneMatch_ string
92700	ctx_         context.Context
92701	header_      http.Header
92702}
92703
92704// GetEffectiveFirewalls: Returns effective firewalls applied to an
92705// interface of the instance.
92706//
92707// - instance: Name of the instance scoping this request.
92708// - networkInterface: The name of the network interface to get the
92709//   effective firewalls.
92710// - project: Project ID for this request.
92711// - zone: The name of the zone for this request.
92712func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
92713	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92714	c.project = project
92715	c.zone = zone
92716	c.instance = instance
92717	c.urlParams_.Set("networkInterface", networkInterface)
92718	return c
92719}
92720
92721// Fields allows partial responses to be retrieved. See
92722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92723// for more information.
92724func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
92725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92726	return c
92727}
92728
92729// IfNoneMatch sets the optional parameter which makes the operation
92730// fail if the object's ETag matches the given value. This is useful for
92731// getting updates only after the object has changed since the last
92732// request. Use googleapi.IsNotModified to check whether the response
92733// error from Do is the result of In-None-Match.
92734func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
92735	c.ifNoneMatch_ = entityTag
92736	return c
92737}
92738
92739// Context sets the context to be used in this call's Do method. Any
92740// pending HTTP request will be aborted if the provided context is
92741// canceled.
92742func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
92743	c.ctx_ = ctx
92744	return c
92745}
92746
92747// Header returns an http.Header that can be modified by the caller to
92748// add HTTP headers to the request.
92749func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
92750	if c.header_ == nil {
92751		c.header_ = make(http.Header)
92752	}
92753	return c.header_
92754}
92755
92756func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
92757	reqHeaders := make(http.Header)
92758	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92759	for k, v := range c.header_ {
92760		reqHeaders[k] = v
92761	}
92762	reqHeaders.Set("User-Agent", c.s.userAgent())
92763	if c.ifNoneMatch_ != "" {
92764		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92765	}
92766	var body io.Reader = nil
92767	c.urlParams_.Set("alt", alt)
92768	c.urlParams_.Set("prettyPrint", "false")
92769	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
92770	urls += "?" + c.urlParams_.Encode()
92771	req, err := http.NewRequest("GET", urls, body)
92772	if err != nil {
92773		return nil, err
92774	}
92775	req.Header = reqHeaders
92776	googleapi.Expand(req.URL, map[string]string{
92777		"project":  c.project,
92778		"zone":     c.zone,
92779		"instance": c.instance,
92780	})
92781	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92782}
92783
92784// Do executes the "compute.instances.getEffectiveFirewalls" call.
92785// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
92786// be non-nil. Any non-2xx status code is an error. Response headers are
92787// in either
92788// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
92789// a response was returned at all) in error.(*googleapi.Error).Header.
92790// Use googleapi.IsNotModified to check whether the returned error was
92791// because http.StatusNotModified was returned.
92792func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
92793	gensupport.SetOptions(c.urlParams_, opts...)
92794	res, err := c.doRequest("json")
92795	if res != nil && res.StatusCode == http.StatusNotModified {
92796		if res.Body != nil {
92797			res.Body.Close()
92798		}
92799		return nil, &googleapi.Error{
92800			Code:   res.StatusCode,
92801			Header: res.Header,
92802		}
92803	}
92804	if err != nil {
92805		return nil, err
92806	}
92807	defer googleapi.CloseBody(res)
92808	if err := googleapi.CheckResponse(res); err != nil {
92809		return nil, err
92810	}
92811	ret := &InstancesGetEffectiveFirewallsResponse{
92812		ServerResponse: googleapi.ServerResponse{
92813			Header:         res.Header,
92814			HTTPStatusCode: res.StatusCode,
92815		},
92816	}
92817	target := &ret
92818	if err := gensupport.DecodeResponse(target, res); err != nil {
92819		return nil, err
92820	}
92821	return ret, nil
92822	// {
92823	//   "description": "Returns effective firewalls applied to an interface of the instance.",
92824	//   "httpMethod": "GET",
92825	//   "id": "compute.instances.getEffectiveFirewalls",
92826	//   "parameterOrder": [
92827	//     "project",
92828	//     "zone",
92829	//     "instance",
92830	//     "networkInterface"
92831	//   ],
92832	//   "parameters": {
92833	//     "instance": {
92834	//       "description": "Name of the instance scoping this request.",
92835	//       "location": "path",
92836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92837	//       "required": true,
92838	//       "type": "string"
92839	//     },
92840	//     "networkInterface": {
92841	//       "description": "The name of the network interface to get the effective firewalls.",
92842	//       "location": "query",
92843	//       "required": true,
92844	//       "type": "string"
92845	//     },
92846	//     "project": {
92847	//       "description": "Project ID for this request.",
92848	//       "location": "path",
92849	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92850	//       "required": true,
92851	//       "type": "string"
92852	//     },
92853	//     "zone": {
92854	//       "description": "The name of the zone for this request.",
92855	//       "location": "path",
92856	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92857	//       "required": true,
92858	//       "type": "string"
92859	//     }
92860	//   },
92861	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
92862	//   "response": {
92863	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
92864	//   },
92865	//   "scopes": [
92866	//     "https://www.googleapis.com/auth/cloud-platform",
92867	//     "https://www.googleapis.com/auth/compute",
92868	//     "https://www.googleapis.com/auth/compute.readonly"
92869	//   ]
92870	// }
92871
92872}
92873
92874// method id "compute.instances.getGuestAttributes":
92875
92876type InstancesGetGuestAttributesCall struct {
92877	s            *Service
92878	project      string
92879	zone         string
92880	instance     string
92881	urlParams_   gensupport.URLParams
92882	ifNoneMatch_ string
92883	ctx_         context.Context
92884	header_      http.Header
92885}
92886
92887// GetGuestAttributes: Returns the specified guest attributes entry.
92888//
92889// - instance: Name of the instance scoping this request.
92890// - project: Project ID for this request.
92891// - zone: The name of the zone for this request.
92892func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
92893	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92894	c.project = project
92895	c.zone = zone
92896	c.instance = instance
92897	return c
92898}
92899
92900// QueryPath sets the optional parameter "queryPath": Specifies the
92901// guest attributes path to be queried.
92902func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
92903	c.urlParams_.Set("queryPath", queryPath)
92904	return c
92905}
92906
92907// VariableKey sets the optional parameter "variableKey": Specifies the
92908// key for the guest attributes entry.
92909func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
92910	c.urlParams_.Set("variableKey", variableKey)
92911	return c
92912}
92913
92914// Fields allows partial responses to be retrieved. See
92915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92916// for more information.
92917func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
92918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92919	return c
92920}
92921
92922// IfNoneMatch sets the optional parameter which makes the operation
92923// fail if the object's ETag matches the given value. This is useful for
92924// getting updates only after the object has changed since the last
92925// request. Use googleapi.IsNotModified to check whether the response
92926// error from Do is the result of In-None-Match.
92927func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
92928	c.ifNoneMatch_ = entityTag
92929	return c
92930}
92931
92932// Context sets the context to be used in this call's Do method. Any
92933// pending HTTP request will be aborted if the provided context is
92934// canceled.
92935func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
92936	c.ctx_ = ctx
92937	return c
92938}
92939
92940// Header returns an http.Header that can be modified by the caller to
92941// add HTTP headers to the request.
92942func (c *InstancesGetGuestAttributesCall) Header() http.Header {
92943	if c.header_ == nil {
92944		c.header_ = make(http.Header)
92945	}
92946	return c.header_
92947}
92948
92949func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
92950	reqHeaders := make(http.Header)
92951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92952	for k, v := range c.header_ {
92953		reqHeaders[k] = v
92954	}
92955	reqHeaders.Set("User-Agent", c.s.userAgent())
92956	if c.ifNoneMatch_ != "" {
92957		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92958	}
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}/getGuestAttributes")
92963	urls += "?" + c.urlParams_.Encode()
92964	req, err := http.NewRequest("GET", 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.getGuestAttributes" call.
92978// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
92979// status code is an error. Response headers are in either
92980// *GuestAttributes.ServerResponse.Header or (if a response was returned
92981// at all) in error.(*googleapi.Error).Header. Use
92982// googleapi.IsNotModified to check whether the returned error was
92983// because http.StatusNotModified was returned.
92984func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, 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 := &GuestAttributes{
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": "Returns the specified guest attributes entry.",
93016	//   "httpMethod": "GET",
93017	//   "id": "compute.instances.getGuestAttributes",
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	//     "queryPath": {
93039	//       "description": "Specifies the guest attributes path to be queried.",
93040	//       "location": "query",
93041	//       "type": "string"
93042	//     },
93043	//     "variableKey": {
93044	//       "description": "Specifies the key for the guest attributes entry.",
93045	//       "location": "query",
93046	//       "type": "string"
93047	//     },
93048	//     "zone": {
93049	//       "description": "The name of the zone for this request.",
93050	//       "location": "path",
93051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93052	//       "required": true,
93053	//       "type": "string"
93054	//     }
93055	//   },
93056	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
93057	//   "response": {
93058	//     "$ref": "GuestAttributes"
93059	//   },
93060	//   "scopes": [
93061	//     "https://www.googleapis.com/auth/cloud-platform",
93062	//     "https://www.googleapis.com/auth/compute",
93063	//     "https://www.googleapis.com/auth/compute.readonly"
93064	//   ]
93065	// }
93066
93067}
93068
93069// method id "compute.instances.getIamPolicy":
93070
93071type InstancesGetIamPolicyCall struct {
93072	s            *Service
93073	project      string
93074	zone         string
93075	resource     string
93076	urlParams_   gensupport.URLParams
93077	ifNoneMatch_ string
93078	ctx_         context.Context
93079	header_      http.Header
93080}
93081
93082// GetIamPolicy: Gets the access control policy for a resource. May be
93083// empty if no such policy or resource exists.
93084//
93085// - project: Project ID for this request.
93086// - resource: Name or id of the resource for this request.
93087// - zone: The name of the zone for this request.
93088func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
93089	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93090	c.project = project
93091	c.zone = zone
93092	c.resource = resource
93093	return c
93094}
93095
93096// OptionsRequestedPolicyVersion sets the optional parameter
93097// "optionsRequestedPolicyVersion": Requested IAM Policy version.
93098func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
93099	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
93100	return c
93101}
93102
93103// Fields allows partial responses to be retrieved. See
93104// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93105// for more information.
93106func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
93107	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93108	return c
93109}
93110
93111// IfNoneMatch sets the optional parameter which makes the operation
93112// fail if the object's ETag matches the given value. This is useful for
93113// getting updates only after the object has changed since the last
93114// request. Use googleapi.IsNotModified to check whether the response
93115// error from Do is the result of In-None-Match.
93116func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
93117	c.ifNoneMatch_ = entityTag
93118	return c
93119}
93120
93121// Context sets the context to be used in this call's Do method. Any
93122// pending HTTP request will be aborted if the provided context is
93123// canceled.
93124func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
93125	c.ctx_ = ctx
93126	return c
93127}
93128
93129// Header returns an http.Header that can be modified by the caller to
93130// add HTTP headers to the request.
93131func (c *InstancesGetIamPolicyCall) Header() http.Header {
93132	if c.header_ == nil {
93133		c.header_ = make(http.Header)
93134	}
93135	return c.header_
93136}
93137
93138func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
93139	reqHeaders := make(http.Header)
93140	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93141	for k, v := range c.header_ {
93142		reqHeaders[k] = v
93143	}
93144	reqHeaders.Set("User-Agent", c.s.userAgent())
93145	if c.ifNoneMatch_ != "" {
93146		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93147	}
93148	var body io.Reader = nil
93149	c.urlParams_.Set("alt", alt)
93150	c.urlParams_.Set("prettyPrint", "false")
93151	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy")
93152	urls += "?" + c.urlParams_.Encode()
93153	req, err := http.NewRequest("GET", urls, body)
93154	if err != nil {
93155		return nil, err
93156	}
93157	req.Header = reqHeaders
93158	googleapi.Expand(req.URL, map[string]string{
93159		"project":  c.project,
93160		"zone":     c.zone,
93161		"resource": c.resource,
93162	})
93163	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93164}
93165
93166// Do executes the "compute.instances.getIamPolicy" call.
93167// Exactly one of *Policy or error will be non-nil. Any non-2xx status
93168// code is an error. Response headers are in either
93169// *Policy.ServerResponse.Header or (if a response was returned at all)
93170// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
93171// check whether the returned error was because http.StatusNotModified
93172// was returned.
93173func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
93174	gensupport.SetOptions(c.urlParams_, opts...)
93175	res, err := c.doRequest("json")
93176	if res != nil && res.StatusCode == http.StatusNotModified {
93177		if res.Body != nil {
93178			res.Body.Close()
93179		}
93180		return nil, &googleapi.Error{
93181			Code:   res.StatusCode,
93182			Header: res.Header,
93183		}
93184	}
93185	if err != nil {
93186		return nil, err
93187	}
93188	defer googleapi.CloseBody(res)
93189	if err := googleapi.CheckResponse(res); err != nil {
93190		return nil, err
93191	}
93192	ret := &Policy{
93193		ServerResponse: googleapi.ServerResponse{
93194			Header:         res.Header,
93195			HTTPStatusCode: res.StatusCode,
93196		},
93197	}
93198	target := &ret
93199	if err := gensupport.DecodeResponse(target, res); err != nil {
93200		return nil, err
93201	}
93202	return ret, nil
93203	// {
93204	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
93205	//   "httpMethod": "GET",
93206	//   "id": "compute.instances.getIamPolicy",
93207	//   "parameterOrder": [
93208	//     "project",
93209	//     "zone",
93210	//     "resource"
93211	//   ],
93212	//   "parameters": {
93213	//     "optionsRequestedPolicyVersion": {
93214	//       "description": "Requested IAM Policy version.",
93215	//       "format": "int32",
93216	//       "location": "query",
93217	//       "type": "integer"
93218	//     },
93219	//     "project": {
93220	//       "description": "Project ID for this request.",
93221	//       "location": "path",
93222	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93223	//       "required": true,
93224	//       "type": "string"
93225	//     },
93226	//     "resource": {
93227	//       "description": "Name or id of the resource for this request.",
93228	//       "location": "path",
93229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93230	//       "required": true,
93231	//       "type": "string"
93232	//     },
93233	//     "zone": {
93234	//       "description": "The name of the zone for this request.",
93235	//       "location": "path",
93236	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93237	//       "required": true,
93238	//       "type": "string"
93239	//     }
93240	//   },
93241	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
93242	//   "response": {
93243	//     "$ref": "Policy"
93244	//   },
93245	//   "scopes": [
93246	//     "https://www.googleapis.com/auth/cloud-platform",
93247	//     "https://www.googleapis.com/auth/compute",
93248	//     "https://www.googleapis.com/auth/compute.readonly"
93249	//   ]
93250	// }
93251
93252}
93253
93254// method id "compute.instances.getScreenshot":
93255
93256type InstancesGetScreenshotCall struct {
93257	s            *Service
93258	project      string
93259	zone         string
93260	instance     string
93261	urlParams_   gensupport.URLParams
93262	ifNoneMatch_ string
93263	ctx_         context.Context
93264	header_      http.Header
93265}
93266
93267// GetScreenshot: Returns the screenshot from the specified instance.
93268//
93269// - instance: Name of the instance scoping this request.
93270// - project: Project ID for this request.
93271// - zone: The name of the zone for this request.
93272func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall {
93273	c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93274	c.project = project
93275	c.zone = zone
93276	c.instance = instance
93277	return c
93278}
93279
93280// Fields allows partial responses to be retrieved. See
93281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93282// for more information.
93283func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall {
93284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93285	return c
93286}
93287
93288// IfNoneMatch sets the optional parameter which makes the operation
93289// fail if the object's ETag matches the given value. This is useful for
93290// getting updates only after the object has changed since the last
93291// request. Use googleapi.IsNotModified to check whether the response
93292// error from Do is the result of In-None-Match.
93293func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall {
93294	c.ifNoneMatch_ = entityTag
93295	return c
93296}
93297
93298// Context sets the context to be used in this call's Do method. Any
93299// pending HTTP request will be aborted if the provided context is
93300// canceled.
93301func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall {
93302	c.ctx_ = ctx
93303	return c
93304}
93305
93306// Header returns an http.Header that can be modified by the caller to
93307// add HTTP headers to the request.
93308func (c *InstancesGetScreenshotCall) Header() http.Header {
93309	if c.header_ == nil {
93310		c.header_ = make(http.Header)
93311	}
93312	return c.header_
93313}
93314
93315func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) {
93316	reqHeaders := make(http.Header)
93317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93318	for k, v := range c.header_ {
93319		reqHeaders[k] = v
93320	}
93321	reqHeaders.Set("User-Agent", c.s.userAgent())
93322	if c.ifNoneMatch_ != "" {
93323		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93324	}
93325	var body io.Reader = nil
93326	c.urlParams_.Set("alt", alt)
93327	c.urlParams_.Set("prettyPrint", "false")
93328	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/screenshot")
93329	urls += "?" + c.urlParams_.Encode()
93330	req, err := http.NewRequest("GET", urls, body)
93331	if err != nil {
93332		return nil, err
93333	}
93334	req.Header = reqHeaders
93335	googleapi.Expand(req.URL, map[string]string{
93336		"project":  c.project,
93337		"zone":     c.zone,
93338		"instance": c.instance,
93339	})
93340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93341}
93342
93343// Do executes the "compute.instances.getScreenshot" call.
93344// Exactly one of *Screenshot or error will be non-nil. Any non-2xx
93345// status code is an error. Response headers are in either
93346// *Screenshot.ServerResponse.Header or (if a response was returned at
93347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93348// to check whether the returned error was because
93349// http.StatusNotModified was returned.
93350func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) {
93351	gensupport.SetOptions(c.urlParams_, opts...)
93352	res, err := c.doRequest("json")
93353	if res != nil && res.StatusCode == http.StatusNotModified {
93354		if res.Body != nil {
93355			res.Body.Close()
93356		}
93357		return nil, &googleapi.Error{
93358			Code:   res.StatusCode,
93359			Header: res.Header,
93360		}
93361	}
93362	if err != nil {
93363		return nil, err
93364	}
93365	defer googleapi.CloseBody(res)
93366	if err := googleapi.CheckResponse(res); err != nil {
93367		return nil, err
93368	}
93369	ret := &Screenshot{
93370		ServerResponse: googleapi.ServerResponse{
93371			Header:         res.Header,
93372			HTTPStatusCode: res.StatusCode,
93373		},
93374	}
93375	target := &ret
93376	if err := gensupport.DecodeResponse(target, res); err != nil {
93377		return nil, err
93378	}
93379	return ret, nil
93380	// {
93381	//   "description": "Returns the screenshot from the specified instance.",
93382	//   "httpMethod": "GET",
93383	//   "id": "compute.instances.getScreenshot",
93384	//   "parameterOrder": [
93385	//     "project",
93386	//     "zone",
93387	//     "instance"
93388	//   ],
93389	//   "parameters": {
93390	//     "instance": {
93391	//       "description": "Name of the instance scoping this request.",
93392	//       "location": "path",
93393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93394	//       "required": true,
93395	//       "type": "string"
93396	//     },
93397	//     "project": {
93398	//       "description": "Project ID for this request.",
93399	//       "location": "path",
93400	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93401	//       "required": true,
93402	//       "type": "string"
93403	//     },
93404	//     "zone": {
93405	//       "description": "The name of the zone for this request.",
93406	//       "location": "path",
93407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93408	//       "required": true,
93409	//       "type": "string"
93410	//     }
93411	//   },
93412	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot",
93413	//   "response": {
93414	//     "$ref": "Screenshot"
93415	//   },
93416	//   "scopes": [
93417	//     "https://www.googleapis.com/auth/cloud-platform",
93418	//     "https://www.googleapis.com/auth/compute",
93419	//     "https://www.googleapis.com/auth/compute.readonly"
93420	//   ]
93421	// }
93422
93423}
93424
93425// method id "compute.instances.getSerialPortOutput":
93426
93427type InstancesGetSerialPortOutputCall struct {
93428	s            *Service
93429	project      string
93430	zone         string
93431	instance     string
93432	urlParams_   gensupport.URLParams
93433	ifNoneMatch_ string
93434	ctx_         context.Context
93435	header_      http.Header
93436}
93437
93438// GetSerialPortOutput: Returns the last 1 MB of serial port output from
93439// the specified instance.
93440//
93441// - instance: Name of the instance for this request.
93442// - project: Project ID for this request.
93443// - zone: The name of the zone for this request.
93444// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
93445func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
93446	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93447	c.project = project
93448	c.zone = zone
93449	c.instance = instance
93450	return c
93451}
93452
93453// Port sets the optional parameter "port": Specifies which COM or
93454// serial port to retrieve data from.
93455func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
93456	c.urlParams_.Set("port", fmt.Sprint(port))
93457	return c
93458}
93459
93460// Start sets the optional parameter "start": Specifies the starting
93461// byte position of the output to return. To start with the first byte
93462// of output to the specified port, omit this field or set it to
93463// `0`.
93464//
93465// If the output for that byte position is available, this field matches
93466// the `start` parameter sent with the request. If the amount of serial
93467// console output exceeds the size of the buffer (1 MB), the oldest
93468// output is discarded and is no longer available. If the requested
93469// start position refers to discarded output, the start position is
93470// adjusted to the oldest output still available, and the adjusted start
93471// position is returned as the `start` property value.
93472//
93473// You can also provide a negative start position, which translates to
93474// the most recent number of bytes written to the serial port. For
93475// example, -3 is interpreted as the most recent 3 bytes written to the
93476// serial console.
93477func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
93478	c.urlParams_.Set("start", fmt.Sprint(start))
93479	return c
93480}
93481
93482// Fields allows partial responses to be retrieved. See
93483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93484// for more information.
93485func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
93486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93487	return c
93488}
93489
93490// IfNoneMatch sets the optional parameter which makes the operation
93491// fail if the object's ETag matches the given value. This is useful for
93492// getting updates only after the object has changed since the last
93493// request. Use googleapi.IsNotModified to check whether the response
93494// error from Do is the result of In-None-Match.
93495func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
93496	c.ifNoneMatch_ = entityTag
93497	return c
93498}
93499
93500// Context sets the context to be used in this call's Do method. Any
93501// pending HTTP request will be aborted if the provided context is
93502// canceled.
93503func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
93504	c.ctx_ = ctx
93505	return c
93506}
93507
93508// Header returns an http.Header that can be modified by the caller to
93509// add HTTP headers to the request.
93510func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
93511	if c.header_ == nil {
93512		c.header_ = make(http.Header)
93513	}
93514	return c.header_
93515}
93516
93517func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
93518	reqHeaders := make(http.Header)
93519	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93520	for k, v := range c.header_ {
93521		reqHeaders[k] = v
93522	}
93523	reqHeaders.Set("User-Agent", c.s.userAgent())
93524	if c.ifNoneMatch_ != "" {
93525		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93526	}
93527	var body io.Reader = nil
93528	c.urlParams_.Set("alt", alt)
93529	c.urlParams_.Set("prettyPrint", "false")
93530	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/serialPort")
93531	urls += "?" + c.urlParams_.Encode()
93532	req, err := http.NewRequest("GET", urls, body)
93533	if err != nil {
93534		return nil, err
93535	}
93536	req.Header = reqHeaders
93537	googleapi.Expand(req.URL, map[string]string{
93538		"project":  c.project,
93539		"zone":     c.zone,
93540		"instance": c.instance,
93541	})
93542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93543}
93544
93545// Do executes the "compute.instances.getSerialPortOutput" call.
93546// Exactly one of *SerialPortOutput or error will be non-nil. Any
93547// non-2xx status code is an error. Response headers are in either
93548// *SerialPortOutput.ServerResponse.Header or (if a response was
93549// returned at all) in error.(*googleapi.Error).Header. Use
93550// googleapi.IsNotModified to check whether the returned error was
93551// because http.StatusNotModified was returned.
93552func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
93553	gensupport.SetOptions(c.urlParams_, opts...)
93554	res, err := c.doRequest("json")
93555	if res != nil && res.StatusCode == http.StatusNotModified {
93556		if res.Body != nil {
93557			res.Body.Close()
93558		}
93559		return nil, &googleapi.Error{
93560			Code:   res.StatusCode,
93561			Header: res.Header,
93562		}
93563	}
93564	if err != nil {
93565		return nil, err
93566	}
93567	defer googleapi.CloseBody(res)
93568	if err := googleapi.CheckResponse(res); err != nil {
93569		return nil, err
93570	}
93571	ret := &SerialPortOutput{
93572		ServerResponse: googleapi.ServerResponse{
93573			Header:         res.Header,
93574			HTTPStatusCode: res.StatusCode,
93575		},
93576	}
93577	target := &ret
93578	if err := gensupport.DecodeResponse(target, res); err != nil {
93579		return nil, err
93580	}
93581	return ret, nil
93582	// {
93583	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
93584	//   "httpMethod": "GET",
93585	//   "id": "compute.instances.getSerialPortOutput",
93586	//   "parameterOrder": [
93587	//     "project",
93588	//     "zone",
93589	//     "instance"
93590	//   ],
93591	//   "parameters": {
93592	//     "instance": {
93593	//       "description": "Name of the instance for this request.",
93594	//       "location": "path",
93595	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93596	//       "required": true,
93597	//       "type": "string"
93598	//     },
93599	//     "port": {
93600	//       "default": "1",
93601	//       "description": "Specifies which COM or serial port to retrieve data from.",
93602	//       "format": "int32",
93603	//       "location": "query",
93604	//       "maximum": "4",
93605	//       "minimum": "1",
93606	//       "type": "integer"
93607	//     },
93608	//     "project": {
93609	//       "description": "Project ID for this request.",
93610	//       "location": "path",
93611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93612	//       "required": true,
93613	//       "type": "string"
93614	//     },
93615	//     "start": {
93616	//       "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.",
93617	//       "format": "int64",
93618	//       "location": "query",
93619	//       "type": "string"
93620	//     },
93621	//     "zone": {
93622	//       "description": "The name of the zone for this request.",
93623	//       "location": "path",
93624	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93625	//       "required": true,
93626	//       "type": "string"
93627	//     }
93628	//   },
93629	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
93630	//   "response": {
93631	//     "$ref": "SerialPortOutput"
93632	//   },
93633	//   "scopes": [
93634	//     "https://www.googleapis.com/auth/cloud-platform",
93635	//     "https://www.googleapis.com/auth/compute",
93636	//     "https://www.googleapis.com/auth/compute.readonly"
93637	//   ]
93638	// }
93639
93640}
93641
93642// method id "compute.instances.getShieldedInstanceIdentity":
93643
93644type InstancesGetShieldedInstanceIdentityCall struct {
93645	s            *Service
93646	project      string
93647	zone         string
93648	instance     string
93649	urlParams_   gensupport.URLParams
93650	ifNoneMatch_ string
93651	ctx_         context.Context
93652	header_      http.Header
93653}
93654
93655// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
93656// of an instance
93657//
93658// - instance: Name or id of the instance scoping this request.
93659// - project: Project ID for this request.
93660// - zone: The name of the zone for this request.
93661func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
93662	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93663	c.project = project
93664	c.zone = zone
93665	c.instance = instance
93666	return c
93667}
93668
93669// Fields allows partial responses to be retrieved. See
93670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93671// for more information.
93672func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
93673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93674	return c
93675}
93676
93677// IfNoneMatch sets the optional parameter which makes the operation
93678// fail if the object's ETag matches the given value. This is useful for
93679// getting updates only after the object has changed since the last
93680// request. Use googleapi.IsNotModified to check whether the response
93681// error from Do is the result of In-None-Match.
93682func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
93683	c.ifNoneMatch_ = entityTag
93684	return c
93685}
93686
93687// Context sets the context to be used in this call's Do method. Any
93688// pending HTTP request will be aborted if the provided context is
93689// canceled.
93690func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
93691	c.ctx_ = ctx
93692	return c
93693}
93694
93695// Header returns an http.Header that can be modified by the caller to
93696// add HTTP headers to the request.
93697func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
93698	if c.header_ == nil {
93699		c.header_ = make(http.Header)
93700	}
93701	return c.header_
93702}
93703
93704func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
93705	reqHeaders := make(http.Header)
93706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93707	for k, v := range c.header_ {
93708		reqHeaders[k] = v
93709	}
93710	reqHeaders.Set("User-Agent", c.s.userAgent())
93711	if c.ifNoneMatch_ != "" {
93712		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93713	}
93714	var body io.Reader = nil
93715	c.urlParams_.Set("alt", alt)
93716	c.urlParams_.Set("prettyPrint", "false")
93717	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
93718	urls += "?" + c.urlParams_.Encode()
93719	req, err := http.NewRequest("GET", urls, body)
93720	if err != nil {
93721		return nil, err
93722	}
93723	req.Header = reqHeaders
93724	googleapi.Expand(req.URL, map[string]string{
93725		"project":  c.project,
93726		"zone":     c.zone,
93727		"instance": c.instance,
93728	})
93729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93730}
93731
93732// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
93733// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
93734// Any non-2xx status code is an error. Response headers are in either
93735// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
93736// returned at all) in error.(*googleapi.Error).Header. Use
93737// googleapi.IsNotModified to check whether the returned error was
93738// because http.StatusNotModified was returned.
93739func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
93740	gensupport.SetOptions(c.urlParams_, opts...)
93741	res, err := c.doRequest("json")
93742	if res != nil && res.StatusCode == http.StatusNotModified {
93743		if res.Body != nil {
93744			res.Body.Close()
93745		}
93746		return nil, &googleapi.Error{
93747			Code:   res.StatusCode,
93748			Header: res.Header,
93749		}
93750	}
93751	if err != nil {
93752		return nil, err
93753	}
93754	defer googleapi.CloseBody(res)
93755	if err := googleapi.CheckResponse(res); err != nil {
93756		return nil, err
93757	}
93758	ret := &ShieldedInstanceIdentity{
93759		ServerResponse: googleapi.ServerResponse{
93760			Header:         res.Header,
93761			HTTPStatusCode: res.StatusCode,
93762		},
93763	}
93764	target := &ret
93765	if err := gensupport.DecodeResponse(target, res); err != nil {
93766		return nil, err
93767	}
93768	return ret, nil
93769	// {
93770	//   "description": "Returns the Shielded Instance Identity of an instance",
93771	//   "httpMethod": "GET",
93772	//   "id": "compute.instances.getShieldedInstanceIdentity",
93773	//   "parameterOrder": [
93774	//     "project",
93775	//     "zone",
93776	//     "instance"
93777	//   ],
93778	//   "parameters": {
93779	//     "instance": {
93780	//       "description": "Name or id of the instance scoping this request.",
93781	//       "location": "path",
93782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93783	//       "required": true,
93784	//       "type": "string"
93785	//     },
93786	//     "project": {
93787	//       "description": "Project ID for this request.",
93788	//       "location": "path",
93789	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93790	//       "required": true,
93791	//       "type": "string"
93792	//     },
93793	//     "zone": {
93794	//       "description": "The name of the zone for this request.",
93795	//       "location": "path",
93796	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93797	//       "required": true,
93798	//       "type": "string"
93799	//     }
93800	//   },
93801	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
93802	//   "response": {
93803	//     "$ref": "ShieldedInstanceIdentity"
93804	//   },
93805	//   "scopes": [
93806	//     "https://www.googleapis.com/auth/cloud-platform",
93807	//     "https://www.googleapis.com/auth/compute",
93808	//     "https://www.googleapis.com/auth/compute.readonly"
93809	//   ]
93810	// }
93811
93812}
93813
93814// method id "compute.instances.getShieldedVmIdentity":
93815
93816type InstancesGetShieldedVmIdentityCall struct {
93817	s            *Service
93818	project      string
93819	zone         string
93820	instance     string
93821	urlParams_   gensupport.URLParams
93822	ifNoneMatch_ string
93823	ctx_         context.Context
93824	header_      http.Header
93825}
93826
93827// GetShieldedVmIdentity: Returns the Shielded VM Identity of an
93828// instance
93829//
93830// - instance: Name of the instance scoping this request.
93831// - project: Project ID for this request.
93832// - zone: The name of the zone for this request.
93833func (r *InstancesService) GetShieldedVmIdentity(project string, zone string, instance string) *InstancesGetShieldedVmIdentityCall {
93834	c := &InstancesGetShieldedVmIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93835	c.project = project
93836	c.zone = zone
93837	c.instance = instance
93838	return c
93839}
93840
93841// Fields allows partial responses to be retrieved. See
93842// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93843// for more information.
93844func (c *InstancesGetShieldedVmIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedVmIdentityCall {
93845	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93846	return c
93847}
93848
93849// IfNoneMatch sets the optional parameter which makes the operation
93850// fail if the object's ETag matches the given value. This is useful for
93851// getting updates only after the object has changed since the last
93852// request. Use googleapi.IsNotModified to check whether the response
93853// error from Do is the result of In-None-Match.
93854func (c *InstancesGetShieldedVmIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedVmIdentityCall {
93855	c.ifNoneMatch_ = entityTag
93856	return c
93857}
93858
93859// Context sets the context to be used in this call's Do method. Any
93860// pending HTTP request will be aborted if the provided context is
93861// canceled.
93862func (c *InstancesGetShieldedVmIdentityCall) Context(ctx context.Context) *InstancesGetShieldedVmIdentityCall {
93863	c.ctx_ = ctx
93864	return c
93865}
93866
93867// Header returns an http.Header that can be modified by the caller to
93868// add HTTP headers to the request.
93869func (c *InstancesGetShieldedVmIdentityCall) Header() http.Header {
93870	if c.header_ == nil {
93871		c.header_ = make(http.Header)
93872	}
93873	return c.header_
93874}
93875
93876func (c *InstancesGetShieldedVmIdentityCall) doRequest(alt string) (*http.Response, error) {
93877	reqHeaders := make(http.Header)
93878	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93879	for k, v := range c.header_ {
93880		reqHeaders[k] = v
93881	}
93882	reqHeaders.Set("User-Agent", c.s.userAgent())
93883	if c.ifNoneMatch_ != "" {
93884		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93885	}
93886	var body io.Reader = nil
93887	c.urlParams_.Set("alt", alt)
93888	c.urlParams_.Set("prettyPrint", "false")
93889	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity")
93890	urls += "?" + c.urlParams_.Encode()
93891	req, err := http.NewRequest("GET", urls, body)
93892	if err != nil {
93893		return nil, err
93894	}
93895	req.Header = reqHeaders
93896	googleapi.Expand(req.URL, map[string]string{
93897		"project":  c.project,
93898		"zone":     c.zone,
93899		"instance": c.instance,
93900	})
93901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93902}
93903
93904// Do executes the "compute.instances.getShieldedVmIdentity" call.
93905// Exactly one of *ShieldedVmIdentity or error will be non-nil. Any
93906// non-2xx status code is an error. Response headers are in either
93907// *ShieldedVmIdentity.ServerResponse.Header or (if a response was
93908// returned at all) in error.(*googleapi.Error).Header. Use
93909// googleapi.IsNotModified to check whether the returned error was
93910// because http.StatusNotModified was returned.
93911func (c *InstancesGetShieldedVmIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedVmIdentity, error) {
93912	gensupport.SetOptions(c.urlParams_, opts...)
93913	res, err := c.doRequest("json")
93914	if res != nil && res.StatusCode == http.StatusNotModified {
93915		if res.Body != nil {
93916			res.Body.Close()
93917		}
93918		return nil, &googleapi.Error{
93919			Code:   res.StatusCode,
93920			Header: res.Header,
93921		}
93922	}
93923	if err != nil {
93924		return nil, err
93925	}
93926	defer googleapi.CloseBody(res)
93927	if err := googleapi.CheckResponse(res); err != nil {
93928		return nil, err
93929	}
93930	ret := &ShieldedVmIdentity{
93931		ServerResponse: googleapi.ServerResponse{
93932			Header:         res.Header,
93933			HTTPStatusCode: res.StatusCode,
93934		},
93935	}
93936	target := &ret
93937	if err := gensupport.DecodeResponse(target, res); err != nil {
93938		return nil, err
93939	}
93940	return ret, nil
93941	// {
93942	//   "description": "Returns the Shielded VM Identity of an instance",
93943	//   "httpMethod": "GET",
93944	//   "id": "compute.instances.getShieldedVmIdentity",
93945	//   "parameterOrder": [
93946	//     "project",
93947	//     "zone",
93948	//     "instance"
93949	//   ],
93950	//   "parameters": {
93951	//     "instance": {
93952	//       "description": "Name of the instance scoping this request.",
93953	//       "location": "path",
93954	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93955	//       "required": true,
93956	//       "type": "string"
93957	//     },
93958	//     "project": {
93959	//       "description": "Project ID for this request.",
93960	//       "location": "path",
93961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93962	//       "required": true,
93963	//       "type": "string"
93964	//     },
93965	//     "zone": {
93966	//       "description": "The name of the zone for this request.",
93967	//       "location": "path",
93968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93969	//       "required": true,
93970	//       "type": "string"
93971	//     }
93972	//   },
93973	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity",
93974	//   "response": {
93975	//     "$ref": "ShieldedVmIdentity"
93976	//   },
93977	//   "scopes": [
93978	//     "https://www.googleapis.com/auth/cloud-platform",
93979	//     "https://www.googleapis.com/auth/compute",
93980	//     "https://www.googleapis.com/auth/compute.readonly"
93981	//   ]
93982	// }
93983
93984}
93985
93986// method id "compute.instances.insert":
93987
93988type InstancesInsertCall struct {
93989	s          *Service
93990	project    string
93991	zone       string
93992	instance   *Instance
93993	urlParams_ gensupport.URLParams
93994	ctx_       context.Context
93995	header_    http.Header
93996}
93997
93998// Insert: Creates an instance resource in the specified project using
93999// the data included in the request.
94000//
94001// - project: Project ID for this request.
94002// - zone: The name of the zone for this request.
94003// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
94004func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
94005	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94006	c.project = project
94007	c.zone = zone
94008	c.instance = instance
94009	return c
94010}
94011
94012// RequestId sets the optional parameter "requestId": An optional
94013// request ID to identify requests. Specify a unique request ID so that
94014// if you must retry your request, the server will know to ignore the
94015// request if it has already been completed.
94016//
94017// For example, consider a situation where you make an initial request
94018// and the request times out. If you make the request again with the
94019// same request ID, the server can check if original operation with the
94020// same request ID was received, and if so, will ignore the second
94021// request. This prevents clients from accidentally creating duplicate
94022// commitments.
94023//
94024// The request ID must be a valid UUID with the exception that zero UUID
94025// is not supported (00000000-0000-0000-0000-000000000000).
94026func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
94027	c.urlParams_.Set("requestId", requestId)
94028	return c
94029}
94030
94031// SourceInstanceTemplate sets the optional parameter
94032// "sourceInstanceTemplate": Specifies instance template to create the
94033// instance.
94034//
94035// This field is optional. It can be a full or partial URL. For example,
94036// the following are all valid URLs to an instance template:
94037// -
94038// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
94039//
94040// - projects/project/global/instanceTemplates/instanceTemplate
94041// - global/instanceTemplates/instanceTemplate
94042func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
94043	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
94044	return c
94045}
94046
94047// SourceMachineImage sets the optional parameter "sourceMachineImage":
94048// Specifies the machine image to use to create the instance.
94049//
94050// This field is optional. It can be a full or partial URL. For example,
94051// the following are all valid URLs to a machine image:
94052// -
94053// https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage
94054//
94055// - projects/project/global/global/machineImages/machineImage
94056// - global/machineImages/machineImage
94057func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall {
94058	c.urlParams_.Set("sourceMachineImage", sourceMachineImage)
94059	return c
94060}
94061
94062// Fields allows partial responses to be retrieved. See
94063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94064// for more information.
94065func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
94066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94067	return c
94068}
94069
94070// Context sets the context to be used in this call's Do method. Any
94071// pending HTTP request will be aborted if the provided context is
94072// canceled.
94073func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
94074	c.ctx_ = ctx
94075	return c
94076}
94077
94078// Header returns an http.Header that can be modified by the caller to
94079// add HTTP headers to the request.
94080func (c *InstancesInsertCall) Header() http.Header {
94081	if c.header_ == nil {
94082		c.header_ = make(http.Header)
94083	}
94084	return c.header_
94085}
94086
94087func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
94088	reqHeaders := make(http.Header)
94089	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94090	for k, v := range c.header_ {
94091		reqHeaders[k] = v
94092	}
94093	reqHeaders.Set("User-Agent", c.s.userAgent())
94094	var body io.Reader = nil
94095	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
94096	if err != nil {
94097		return nil, err
94098	}
94099	reqHeaders.Set("Content-Type", "application/json")
94100	c.urlParams_.Set("alt", alt)
94101	c.urlParams_.Set("prettyPrint", "false")
94102	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
94103	urls += "?" + c.urlParams_.Encode()
94104	req, err := http.NewRequest("POST", urls, body)
94105	if err != nil {
94106		return nil, err
94107	}
94108	req.Header = reqHeaders
94109	googleapi.Expand(req.URL, map[string]string{
94110		"project": c.project,
94111		"zone":    c.zone,
94112	})
94113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94114}
94115
94116// Do executes the "compute.instances.insert" call.
94117// Exactly one of *Operation or error will be non-nil. Any non-2xx
94118// status code is an error. Response headers are in either
94119// *Operation.ServerResponse.Header or (if a response was returned at
94120// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94121// to check whether the returned error was because
94122// http.StatusNotModified was returned.
94123func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94124	gensupport.SetOptions(c.urlParams_, opts...)
94125	res, err := c.doRequest("json")
94126	if res != nil && res.StatusCode == http.StatusNotModified {
94127		if res.Body != nil {
94128			res.Body.Close()
94129		}
94130		return nil, &googleapi.Error{
94131			Code:   res.StatusCode,
94132			Header: res.Header,
94133		}
94134	}
94135	if err != nil {
94136		return nil, err
94137	}
94138	defer googleapi.CloseBody(res)
94139	if err := googleapi.CheckResponse(res); err != nil {
94140		return nil, err
94141	}
94142	ret := &Operation{
94143		ServerResponse: googleapi.ServerResponse{
94144			Header:         res.Header,
94145			HTTPStatusCode: res.StatusCode,
94146		},
94147	}
94148	target := &ret
94149	if err := gensupport.DecodeResponse(target, res); err != nil {
94150		return nil, err
94151	}
94152	return ret, nil
94153	// {
94154	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
94155	//   "httpMethod": "POST",
94156	//   "id": "compute.instances.insert",
94157	//   "parameterOrder": [
94158	//     "project",
94159	//     "zone"
94160	//   ],
94161	//   "parameters": {
94162	//     "project": {
94163	//       "description": "Project ID for this request.",
94164	//       "location": "path",
94165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94166	//       "required": true,
94167	//       "type": "string"
94168	//     },
94169	//     "requestId": {
94170	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94171	//       "location": "query",
94172	//       "type": "string"
94173	//     },
94174	//     "sourceInstanceTemplate": {
94175	//       "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",
94176	//       "location": "query",
94177	//       "type": "string"
94178	//     },
94179	//     "sourceMachineImage": {
94180	//       "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",
94181	//       "location": "query",
94182	//       "type": "string"
94183	//     },
94184	//     "zone": {
94185	//       "description": "The name of the zone for this request.",
94186	//       "location": "path",
94187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94188	//       "required": true,
94189	//       "type": "string"
94190	//     }
94191	//   },
94192	//   "path": "projects/{project}/zones/{zone}/instances",
94193	//   "request": {
94194	//     "$ref": "Instance"
94195	//   },
94196	//   "response": {
94197	//     "$ref": "Operation"
94198	//   },
94199	//   "scopes": [
94200	//     "https://www.googleapis.com/auth/cloud-platform",
94201	//     "https://www.googleapis.com/auth/compute"
94202	//   ]
94203	// }
94204
94205}
94206
94207// method id "compute.instances.list":
94208
94209type InstancesListCall struct {
94210	s            *Service
94211	project      string
94212	zone         string
94213	urlParams_   gensupport.URLParams
94214	ifNoneMatch_ string
94215	ctx_         context.Context
94216	header_      http.Header
94217}
94218
94219// List: Retrieves the list of instances contained within the specified
94220// zone.
94221//
94222// - project: Project ID for this request.
94223// - zone: The name of the zone for this request.
94224// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
94225func (r *InstancesService) List(project string, zone string) *InstancesListCall {
94226	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94227	c.project = project
94228	c.zone = zone
94229	return c
94230}
94231
94232// Filter sets the optional parameter "filter": A filter expression that
94233// filters resources listed in the response. The expression must specify
94234// the field name, a comparison operator, and the value that you want to
94235// use for filtering. The value must be a string, a number, or a
94236// boolean. The comparison operator must be either `=`, `!=`, `>`, or
94237// `<`.
94238//
94239// For example, if you are filtering Compute Engine instances, you can
94240// exclude instances named `example-instance` by specifying `name !=
94241// example-instance`.
94242//
94243// You can also filter nested fields. For example, you could specify
94244// `scheduling.automaticRestart = false` to include instances only if
94245// they are not scheduled for automatic restarts. You can use filtering
94246// on nested fields to filter based on resource labels.
94247//
94248// To filter on multiple expressions, provide each separate expression
94249// within parentheses. For example: ``` (scheduling.automaticRestart =
94250// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
94251// is an `AND` expression. However, you can include `AND` and `OR`
94252// expressions explicitly. For example: ``` (cpuPlatform = "Intel
94253// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
94254// (scheduling.automaticRestart = true) ```
94255func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
94256	c.urlParams_.Set("filter", filter)
94257	return c
94258}
94259
94260// MaxResults sets the optional parameter "maxResults": The maximum
94261// number of results per page that should be returned. If the number of
94262// available results is larger than `maxResults`, Compute Engine returns
94263// a `nextPageToken` that can be used to get the next page of results in
94264// subsequent list requests. Acceptable values are `0` to `500`,
94265// inclusive. (Default: `500`)
94266func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
94267	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94268	return c
94269}
94270
94271// OrderBy sets the optional parameter "orderBy": Sorts list results by
94272// a certain order. By default, results are returned in alphanumerical
94273// order based on the resource name.
94274//
94275// You can also sort results in descending order based on the creation
94276// timestamp using `orderBy="creationTimestamp desc". This sorts
94277// results based on the `creationTimestamp` field in reverse
94278// chronological order (newest result first). Use this to sort resources
94279// like operations so that the newest operation is returned
94280// first.
94281//
94282// Currently, only sorting by `name` or `creationTimestamp desc` is
94283// supported.
94284func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
94285	c.urlParams_.Set("orderBy", orderBy)
94286	return c
94287}
94288
94289// PageToken sets the optional parameter "pageToken": Specifies a page
94290// token to use. Set `pageToken` to the `nextPageToken` returned by a
94291// previous list request to get the next page of results.
94292func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
94293	c.urlParams_.Set("pageToken", pageToken)
94294	return c
94295}
94296
94297// ReturnPartialSuccess sets the optional parameter
94298// "returnPartialSuccess": Opt-in for partial success behavior which
94299// provides partial results in case of failure. The default value is
94300// false.
94301func (c *InstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListCall {
94302	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
94303	return c
94304}
94305
94306// Fields allows partial responses to be retrieved. See
94307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94308// for more information.
94309func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
94310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94311	return c
94312}
94313
94314// IfNoneMatch sets the optional parameter which makes the operation
94315// fail if the object's ETag matches the given value. This is useful for
94316// getting updates only after the object has changed since the last
94317// request. Use googleapi.IsNotModified to check whether the response
94318// error from Do is the result of In-None-Match.
94319func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
94320	c.ifNoneMatch_ = entityTag
94321	return c
94322}
94323
94324// Context sets the context to be used in this call's Do method. Any
94325// pending HTTP request will be aborted if the provided context is
94326// canceled.
94327func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
94328	c.ctx_ = ctx
94329	return c
94330}
94331
94332// Header returns an http.Header that can be modified by the caller to
94333// add HTTP headers to the request.
94334func (c *InstancesListCall) Header() http.Header {
94335	if c.header_ == nil {
94336		c.header_ = make(http.Header)
94337	}
94338	return c.header_
94339}
94340
94341func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
94342	reqHeaders := make(http.Header)
94343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94344	for k, v := range c.header_ {
94345		reqHeaders[k] = v
94346	}
94347	reqHeaders.Set("User-Agent", c.s.userAgent())
94348	if c.ifNoneMatch_ != "" {
94349		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94350	}
94351	var body io.Reader = nil
94352	c.urlParams_.Set("alt", alt)
94353	c.urlParams_.Set("prettyPrint", "false")
94354	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
94355	urls += "?" + c.urlParams_.Encode()
94356	req, err := http.NewRequest("GET", urls, body)
94357	if err != nil {
94358		return nil, err
94359	}
94360	req.Header = reqHeaders
94361	googleapi.Expand(req.URL, map[string]string{
94362		"project": c.project,
94363		"zone":    c.zone,
94364	})
94365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94366}
94367
94368// Do executes the "compute.instances.list" call.
94369// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
94370// status code is an error. Response headers are in either
94371// *InstanceList.ServerResponse.Header or (if a response was returned at
94372// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94373// to check whether the returned error was because
94374// http.StatusNotModified was returned.
94375func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
94376	gensupport.SetOptions(c.urlParams_, opts...)
94377	res, err := c.doRequest("json")
94378	if res != nil && res.StatusCode == http.StatusNotModified {
94379		if res.Body != nil {
94380			res.Body.Close()
94381		}
94382		return nil, &googleapi.Error{
94383			Code:   res.StatusCode,
94384			Header: res.Header,
94385		}
94386	}
94387	if err != nil {
94388		return nil, err
94389	}
94390	defer googleapi.CloseBody(res)
94391	if err := googleapi.CheckResponse(res); err != nil {
94392		return nil, err
94393	}
94394	ret := &InstanceList{
94395		ServerResponse: googleapi.ServerResponse{
94396			Header:         res.Header,
94397			HTTPStatusCode: res.StatusCode,
94398		},
94399	}
94400	target := &ret
94401	if err := gensupport.DecodeResponse(target, res); err != nil {
94402		return nil, err
94403	}
94404	return ret, nil
94405	// {
94406	//   "description": "Retrieves the list of instances contained within the specified zone.",
94407	//   "httpMethod": "GET",
94408	//   "id": "compute.instances.list",
94409	//   "parameterOrder": [
94410	//     "project",
94411	//     "zone"
94412	//   ],
94413	//   "parameters": {
94414	//     "filter": {
94415	//       "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) ```",
94416	//       "location": "query",
94417	//       "type": "string"
94418	//     },
94419	//     "maxResults": {
94420	//       "default": "500",
94421	//       "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`)",
94422	//       "format": "uint32",
94423	//       "location": "query",
94424	//       "minimum": "0",
94425	//       "type": "integer"
94426	//     },
94427	//     "orderBy": {
94428	//       "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.",
94429	//       "location": "query",
94430	//       "type": "string"
94431	//     },
94432	//     "pageToken": {
94433	//       "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.",
94434	//       "location": "query",
94435	//       "type": "string"
94436	//     },
94437	//     "project": {
94438	//       "description": "Project ID for this request.",
94439	//       "location": "path",
94440	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94441	//       "required": true,
94442	//       "type": "string"
94443	//     },
94444	//     "returnPartialSuccess": {
94445	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
94446	//       "location": "query",
94447	//       "type": "boolean"
94448	//     },
94449	//     "zone": {
94450	//       "description": "The name of the zone for this request.",
94451	//       "location": "path",
94452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94453	//       "required": true,
94454	//       "type": "string"
94455	//     }
94456	//   },
94457	//   "path": "projects/{project}/zones/{zone}/instances",
94458	//   "response": {
94459	//     "$ref": "InstanceList"
94460	//   },
94461	//   "scopes": [
94462	//     "https://www.googleapis.com/auth/cloud-platform",
94463	//     "https://www.googleapis.com/auth/compute",
94464	//     "https://www.googleapis.com/auth/compute.readonly"
94465	//   ]
94466	// }
94467
94468}
94469
94470// Pages invokes f for each page of results.
94471// A non-nil error returned from f will halt the iteration.
94472// The provided context supersedes any context provided to the Context method.
94473func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
94474	c.ctx_ = ctx
94475	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94476	for {
94477		x, err := c.Do()
94478		if err != nil {
94479			return err
94480		}
94481		if err := f(x); err != nil {
94482			return err
94483		}
94484		if x.NextPageToken == "" {
94485			return nil
94486		}
94487		c.PageToken(x.NextPageToken)
94488	}
94489}
94490
94491// method id "compute.instances.listReferrers":
94492
94493type InstancesListReferrersCall struct {
94494	s            *Service
94495	project      string
94496	zone         string
94497	instance     string
94498	urlParams_   gensupport.URLParams
94499	ifNoneMatch_ string
94500	ctx_         context.Context
94501	header_      http.Header
94502}
94503
94504// ListReferrers: Retrieves a list of resources that refer to the VM
94505// instance specified in the request. For example, if the VM instance is
94506// part of a managed or unmanaged instance group, the referrers list
94507// includes the instance group. For more information, read Viewing
94508// referrers to VM instances.
94509//
94510// - instance: Name of the target instance scoping this request, or '-'
94511//   if the request should span over all instances in the container.
94512// - project: Project ID for this request.
94513// - zone: The name of the zone for this request.
94514func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
94515	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94516	c.project = project
94517	c.zone = zone
94518	c.instance = instance
94519	return c
94520}
94521
94522// Filter sets the optional parameter "filter": A filter expression that
94523// filters resources listed in the response. The expression must specify
94524// the field name, a comparison operator, and the value that you want to
94525// use for filtering. The value must be a string, a number, or a
94526// boolean. The comparison operator must be either `=`, `!=`, `>`, or
94527// `<`.
94528//
94529// For example, if you are filtering Compute Engine instances, you can
94530// exclude instances named `example-instance` by specifying `name !=
94531// example-instance`.
94532//
94533// You can also filter nested fields. For example, you could specify
94534// `scheduling.automaticRestart = false` to include instances only if
94535// they are not scheduled for automatic restarts. You can use filtering
94536// on nested fields to filter based on resource labels.
94537//
94538// To filter on multiple expressions, provide each separate expression
94539// within parentheses. For example: ``` (scheduling.automaticRestart =
94540// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
94541// is an `AND` expression. However, you can include `AND` and `OR`
94542// expressions explicitly. For example: ``` (cpuPlatform = "Intel
94543// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
94544// (scheduling.automaticRestart = true) ```
94545func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
94546	c.urlParams_.Set("filter", filter)
94547	return c
94548}
94549
94550// MaxResults sets the optional parameter "maxResults": The maximum
94551// number of results per page that should be returned. If the number of
94552// available results is larger than `maxResults`, Compute Engine returns
94553// a `nextPageToken` that can be used to get the next page of results in
94554// subsequent list requests. Acceptable values are `0` to `500`,
94555// inclusive. (Default: `500`)
94556func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
94557	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94558	return c
94559}
94560
94561// OrderBy sets the optional parameter "orderBy": Sorts list results by
94562// a certain order. By default, results are returned in alphanumerical
94563// order based on the resource name.
94564//
94565// You can also sort results in descending order based on the creation
94566// timestamp using `orderBy="creationTimestamp desc". This sorts
94567// results based on the `creationTimestamp` field in reverse
94568// chronological order (newest result first). Use this to sort resources
94569// like operations so that the newest operation is returned
94570// first.
94571//
94572// Currently, only sorting by `name` or `creationTimestamp desc` is
94573// supported.
94574func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
94575	c.urlParams_.Set("orderBy", orderBy)
94576	return c
94577}
94578
94579// PageToken sets the optional parameter "pageToken": Specifies a page
94580// token to use. Set `pageToken` to the `nextPageToken` returned by a
94581// previous list request to get the next page of results.
94582func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
94583	c.urlParams_.Set("pageToken", pageToken)
94584	return c
94585}
94586
94587// ReturnPartialSuccess sets the optional parameter
94588// "returnPartialSuccess": Opt-in for partial success behavior which
94589// provides partial results in case of failure. The default value is
94590// false.
94591func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListReferrersCall {
94592	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
94593	return c
94594}
94595
94596// Fields allows partial responses to be retrieved. See
94597// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94598// for more information.
94599func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
94600	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94601	return c
94602}
94603
94604// IfNoneMatch sets the optional parameter which makes the operation
94605// fail if the object's ETag matches the given value. This is useful for
94606// getting updates only after the object has changed since the last
94607// request. Use googleapi.IsNotModified to check whether the response
94608// error from Do is the result of In-None-Match.
94609func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
94610	c.ifNoneMatch_ = entityTag
94611	return c
94612}
94613
94614// Context sets the context to be used in this call's Do method. Any
94615// pending HTTP request will be aborted if the provided context is
94616// canceled.
94617func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
94618	c.ctx_ = ctx
94619	return c
94620}
94621
94622// Header returns an http.Header that can be modified by the caller to
94623// add HTTP headers to the request.
94624func (c *InstancesListReferrersCall) Header() http.Header {
94625	if c.header_ == nil {
94626		c.header_ = make(http.Header)
94627	}
94628	return c.header_
94629}
94630
94631func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
94632	reqHeaders := make(http.Header)
94633	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94634	for k, v := range c.header_ {
94635		reqHeaders[k] = v
94636	}
94637	reqHeaders.Set("User-Agent", c.s.userAgent())
94638	if c.ifNoneMatch_ != "" {
94639		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94640	}
94641	var body io.Reader = nil
94642	c.urlParams_.Set("alt", alt)
94643	c.urlParams_.Set("prettyPrint", "false")
94644	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/referrers")
94645	urls += "?" + c.urlParams_.Encode()
94646	req, err := http.NewRequest("GET", urls, body)
94647	if err != nil {
94648		return nil, err
94649	}
94650	req.Header = reqHeaders
94651	googleapi.Expand(req.URL, map[string]string{
94652		"project":  c.project,
94653		"zone":     c.zone,
94654		"instance": c.instance,
94655	})
94656	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94657}
94658
94659// Do executes the "compute.instances.listReferrers" call.
94660// Exactly one of *InstanceListReferrers or error will be non-nil. Any
94661// non-2xx status code is an error. Response headers are in either
94662// *InstanceListReferrers.ServerResponse.Header or (if a response was
94663// returned at all) in error.(*googleapi.Error).Header. Use
94664// googleapi.IsNotModified to check whether the returned error was
94665// because http.StatusNotModified was returned.
94666func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
94667	gensupport.SetOptions(c.urlParams_, opts...)
94668	res, err := c.doRequest("json")
94669	if res != nil && res.StatusCode == http.StatusNotModified {
94670		if res.Body != nil {
94671			res.Body.Close()
94672		}
94673		return nil, &googleapi.Error{
94674			Code:   res.StatusCode,
94675			Header: res.Header,
94676		}
94677	}
94678	if err != nil {
94679		return nil, err
94680	}
94681	defer googleapi.CloseBody(res)
94682	if err := googleapi.CheckResponse(res); err != nil {
94683		return nil, err
94684	}
94685	ret := &InstanceListReferrers{
94686		ServerResponse: googleapi.ServerResponse{
94687			Header:         res.Header,
94688			HTTPStatusCode: res.StatusCode,
94689		},
94690	}
94691	target := &ret
94692	if err := gensupport.DecodeResponse(target, res); err != nil {
94693		return nil, err
94694	}
94695	return ret, nil
94696	// {
94697	//   "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.",
94698	//   "httpMethod": "GET",
94699	//   "id": "compute.instances.listReferrers",
94700	//   "parameterOrder": [
94701	//     "project",
94702	//     "zone",
94703	//     "instance"
94704	//   ],
94705	//   "parameters": {
94706	//     "filter": {
94707	//       "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) ```",
94708	//       "location": "query",
94709	//       "type": "string"
94710	//     },
94711	//     "instance": {
94712	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
94713	//       "location": "path",
94714	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94715	//       "required": true,
94716	//       "type": "string"
94717	//     },
94718	//     "maxResults": {
94719	//       "default": "500",
94720	//       "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`)",
94721	//       "format": "uint32",
94722	//       "location": "query",
94723	//       "minimum": "0",
94724	//       "type": "integer"
94725	//     },
94726	//     "orderBy": {
94727	//       "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.",
94728	//       "location": "query",
94729	//       "type": "string"
94730	//     },
94731	//     "pageToken": {
94732	//       "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.",
94733	//       "location": "query",
94734	//       "type": "string"
94735	//     },
94736	//     "project": {
94737	//       "description": "Project ID for this request.",
94738	//       "location": "path",
94739	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94740	//       "required": true,
94741	//       "type": "string"
94742	//     },
94743	//     "returnPartialSuccess": {
94744	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
94745	//       "location": "query",
94746	//       "type": "boolean"
94747	//     },
94748	//     "zone": {
94749	//       "description": "The name of the zone for this request.",
94750	//       "location": "path",
94751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94752	//       "required": true,
94753	//       "type": "string"
94754	//     }
94755	//   },
94756	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
94757	//   "response": {
94758	//     "$ref": "InstanceListReferrers"
94759	//   },
94760	//   "scopes": [
94761	//     "https://www.googleapis.com/auth/cloud-platform",
94762	//     "https://www.googleapis.com/auth/compute",
94763	//     "https://www.googleapis.com/auth/compute.readonly"
94764	//   ]
94765	// }
94766
94767}
94768
94769// Pages invokes f for each page of results.
94770// A non-nil error returned from f will halt the iteration.
94771// The provided context supersedes any context provided to the Context method.
94772func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
94773	c.ctx_ = ctx
94774	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94775	for {
94776		x, err := c.Do()
94777		if err != nil {
94778			return err
94779		}
94780		if err := f(x); err != nil {
94781			return err
94782		}
94783		if x.NextPageToken == "" {
94784			return nil
94785		}
94786		c.PageToken(x.NextPageToken)
94787	}
94788}
94789
94790// method id "compute.instances.removeResourcePolicies":
94791
94792type InstancesRemoveResourcePoliciesCall struct {
94793	s                                      *Service
94794	project                                string
94795	zone                                   string
94796	instance                               string
94797	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
94798	urlParams_                             gensupport.URLParams
94799	ctx_                                   context.Context
94800	header_                                http.Header
94801}
94802
94803// RemoveResourcePolicies: Removes resource policies from an instance.
94804//
94805// - instance: The instance name for this request.
94806// - project: Project ID for this request.
94807// - zone: The name of the zone for this request.
94808func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
94809	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94810	c.project = project
94811	c.zone = zone
94812	c.instance = instance
94813	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
94814	return c
94815}
94816
94817// RequestId sets the optional parameter "requestId": An optional
94818// request ID to identify requests. Specify a unique request ID so that
94819// if you must retry your request, the server will know to ignore the
94820// request if it has already been completed.
94821//
94822// For example, consider a situation where you make an initial request
94823// and the request times out. If you make the request again with the
94824// same request ID, the server can check if original operation with the
94825// same request ID was received, and if so, will ignore the second
94826// request. This prevents clients from accidentally creating duplicate
94827// commitments.
94828//
94829// The request ID must be a valid UUID with the exception that zero UUID
94830// is not supported (00000000-0000-0000-0000-000000000000).
94831func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
94832	c.urlParams_.Set("requestId", requestId)
94833	return c
94834}
94835
94836// Fields allows partial responses to be retrieved. See
94837// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94838// for more information.
94839func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
94840	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94841	return c
94842}
94843
94844// Context sets the context to be used in this call's Do method. Any
94845// pending HTTP request will be aborted if the provided context is
94846// canceled.
94847func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
94848	c.ctx_ = ctx
94849	return c
94850}
94851
94852// Header returns an http.Header that can be modified by the caller to
94853// add HTTP headers to the request.
94854func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
94855	if c.header_ == nil {
94856		c.header_ = make(http.Header)
94857	}
94858	return c.header_
94859}
94860
94861func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
94862	reqHeaders := make(http.Header)
94863	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94864	for k, v := range c.header_ {
94865		reqHeaders[k] = v
94866	}
94867	reqHeaders.Set("User-Agent", c.s.userAgent())
94868	var body io.Reader = nil
94869	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
94870	if err != nil {
94871		return nil, err
94872	}
94873	reqHeaders.Set("Content-Type", "application/json")
94874	c.urlParams_.Set("alt", alt)
94875	c.urlParams_.Set("prettyPrint", "false")
94876	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
94877	urls += "?" + c.urlParams_.Encode()
94878	req, err := http.NewRequest("POST", urls, body)
94879	if err != nil {
94880		return nil, err
94881	}
94882	req.Header = reqHeaders
94883	googleapi.Expand(req.URL, map[string]string{
94884		"project":  c.project,
94885		"zone":     c.zone,
94886		"instance": c.instance,
94887	})
94888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94889}
94890
94891// Do executes the "compute.instances.removeResourcePolicies" call.
94892// Exactly one of *Operation or error will be non-nil. Any non-2xx
94893// status code is an error. Response headers are in either
94894// *Operation.ServerResponse.Header or (if a response was returned at
94895// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94896// to check whether the returned error was because
94897// http.StatusNotModified was returned.
94898func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94899	gensupport.SetOptions(c.urlParams_, opts...)
94900	res, err := c.doRequest("json")
94901	if res != nil && res.StatusCode == http.StatusNotModified {
94902		if res.Body != nil {
94903			res.Body.Close()
94904		}
94905		return nil, &googleapi.Error{
94906			Code:   res.StatusCode,
94907			Header: res.Header,
94908		}
94909	}
94910	if err != nil {
94911		return nil, err
94912	}
94913	defer googleapi.CloseBody(res)
94914	if err := googleapi.CheckResponse(res); err != nil {
94915		return nil, err
94916	}
94917	ret := &Operation{
94918		ServerResponse: googleapi.ServerResponse{
94919			Header:         res.Header,
94920			HTTPStatusCode: res.StatusCode,
94921		},
94922	}
94923	target := &ret
94924	if err := gensupport.DecodeResponse(target, res); err != nil {
94925		return nil, err
94926	}
94927	return ret, nil
94928	// {
94929	//   "description": "Removes resource policies from an instance.",
94930	//   "httpMethod": "POST",
94931	//   "id": "compute.instances.removeResourcePolicies",
94932	//   "parameterOrder": [
94933	//     "project",
94934	//     "zone",
94935	//     "instance"
94936	//   ],
94937	//   "parameters": {
94938	//     "instance": {
94939	//       "description": "The instance name for this request.",
94940	//       "location": "path",
94941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94942	//       "required": true,
94943	//       "type": "string"
94944	//     },
94945	//     "project": {
94946	//       "description": "Project ID for this request.",
94947	//       "location": "path",
94948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94949	//       "required": true,
94950	//       "type": "string"
94951	//     },
94952	//     "requestId": {
94953	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94954	//       "location": "query",
94955	//       "type": "string"
94956	//     },
94957	//     "zone": {
94958	//       "description": "The name of the zone for this request.",
94959	//       "location": "path",
94960	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94961	//       "required": true,
94962	//       "type": "string"
94963	//     }
94964	//   },
94965	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
94966	//   "request": {
94967	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
94968	//   },
94969	//   "response": {
94970	//     "$ref": "Operation"
94971	//   },
94972	//   "scopes": [
94973	//     "https://www.googleapis.com/auth/cloud-platform",
94974	//     "https://www.googleapis.com/auth/compute"
94975	//   ]
94976	// }
94977
94978}
94979
94980// method id "compute.instances.reset":
94981
94982type InstancesResetCall struct {
94983	s          *Service
94984	project    string
94985	zone       string
94986	instance   string
94987	urlParams_ gensupport.URLParams
94988	ctx_       context.Context
94989	header_    http.Header
94990}
94991
94992// Reset: Performs a reset on the instance. This is a hard reset the VM
94993// does not do a graceful shutdown. For more information, see Resetting
94994// an instance.
94995//
94996// - instance: Name of the instance scoping this request.
94997// - project: Project ID for this request.
94998// - zone: The name of the zone for this request.
94999// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
95000func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
95001	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95002	c.project = project
95003	c.zone = zone
95004	c.instance = instance
95005	return c
95006}
95007
95008// RequestId sets the optional parameter "requestId": An optional
95009// request ID to identify requests. Specify a unique request ID so that
95010// if you must retry your request, the server will know to ignore the
95011// request if it has already been completed.
95012//
95013// For example, consider a situation where you make an initial request
95014// and the request times out. If you make the request again with the
95015// same request ID, the server can check if original operation with the
95016// same request ID was received, and if so, will ignore the second
95017// request. This prevents clients from accidentally creating duplicate
95018// commitments.
95019//
95020// The request ID must be a valid UUID with the exception that zero UUID
95021// is not supported (00000000-0000-0000-0000-000000000000).
95022func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
95023	c.urlParams_.Set("requestId", requestId)
95024	return c
95025}
95026
95027// Fields allows partial responses to be retrieved. See
95028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95029// for more information.
95030func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
95031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95032	return c
95033}
95034
95035// Context sets the context to be used in this call's Do method. Any
95036// pending HTTP request will be aborted if the provided context is
95037// canceled.
95038func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
95039	c.ctx_ = ctx
95040	return c
95041}
95042
95043// Header returns an http.Header that can be modified by the caller to
95044// add HTTP headers to the request.
95045func (c *InstancesResetCall) Header() http.Header {
95046	if c.header_ == nil {
95047		c.header_ = make(http.Header)
95048	}
95049	return c.header_
95050}
95051
95052func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
95053	reqHeaders := make(http.Header)
95054	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95055	for k, v := range c.header_ {
95056		reqHeaders[k] = v
95057	}
95058	reqHeaders.Set("User-Agent", c.s.userAgent())
95059	var body io.Reader = nil
95060	c.urlParams_.Set("alt", alt)
95061	c.urlParams_.Set("prettyPrint", "false")
95062	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/reset")
95063	urls += "?" + c.urlParams_.Encode()
95064	req, err := http.NewRequest("POST", urls, body)
95065	if err != nil {
95066		return nil, err
95067	}
95068	req.Header = reqHeaders
95069	googleapi.Expand(req.URL, map[string]string{
95070		"project":  c.project,
95071		"zone":     c.zone,
95072		"instance": c.instance,
95073	})
95074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95075}
95076
95077// Do executes the "compute.instances.reset" call.
95078// Exactly one of *Operation or error will be non-nil. Any non-2xx
95079// status code is an error. Response headers are in either
95080// *Operation.ServerResponse.Header or (if a response was returned at
95081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95082// to check whether the returned error was because
95083// http.StatusNotModified was returned.
95084func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95085	gensupport.SetOptions(c.urlParams_, opts...)
95086	res, err := c.doRequest("json")
95087	if res != nil && res.StatusCode == http.StatusNotModified {
95088		if res.Body != nil {
95089			res.Body.Close()
95090		}
95091		return nil, &googleapi.Error{
95092			Code:   res.StatusCode,
95093			Header: res.Header,
95094		}
95095	}
95096	if err != nil {
95097		return nil, err
95098	}
95099	defer googleapi.CloseBody(res)
95100	if err := googleapi.CheckResponse(res); err != nil {
95101		return nil, err
95102	}
95103	ret := &Operation{
95104		ServerResponse: googleapi.ServerResponse{
95105			Header:         res.Header,
95106			HTTPStatusCode: res.StatusCode,
95107		},
95108	}
95109	target := &ret
95110	if err := gensupport.DecodeResponse(target, res); err != nil {
95111		return nil, err
95112	}
95113	return ret, nil
95114	// {
95115	//   "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.",
95116	//   "httpMethod": "POST",
95117	//   "id": "compute.instances.reset",
95118	//   "parameterOrder": [
95119	//     "project",
95120	//     "zone",
95121	//     "instance"
95122	//   ],
95123	//   "parameters": {
95124	//     "instance": {
95125	//       "description": "Name of the instance scoping this request.",
95126	//       "location": "path",
95127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95128	//       "required": true,
95129	//       "type": "string"
95130	//     },
95131	//     "project": {
95132	//       "description": "Project ID for this request.",
95133	//       "location": "path",
95134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95135	//       "required": true,
95136	//       "type": "string"
95137	//     },
95138	//     "requestId": {
95139	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95140	//       "location": "query",
95141	//       "type": "string"
95142	//     },
95143	//     "zone": {
95144	//       "description": "The name of the zone for this request.",
95145	//       "location": "path",
95146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95147	//       "required": true,
95148	//       "type": "string"
95149	//     }
95150	//   },
95151	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/reset",
95152	//   "response": {
95153	//     "$ref": "Operation"
95154	//   },
95155	//   "scopes": [
95156	//     "https://www.googleapis.com/auth/cloud-platform",
95157	//     "https://www.googleapis.com/auth/compute"
95158	//   ]
95159	// }
95160
95161}
95162
95163// method id "compute.instances.resume":
95164
95165type InstancesResumeCall struct {
95166	s                      *Service
95167	project                string
95168	zone                   string
95169	instance               string
95170	instancesresumerequest *InstancesResumeRequest
95171	urlParams_             gensupport.URLParams
95172	ctx_                   context.Context
95173	header_                http.Header
95174}
95175
95176// Resume: Resumes an instance that was suspended using the
95177// instances().suspend method.
95178//
95179// - instance: Name of the instance resource to resume.
95180// - project: Project ID for this request.
95181// - zone: The name of the zone for this request.
95182func (r *InstancesService) Resume(project string, zone string, instance string, instancesresumerequest *InstancesResumeRequest) *InstancesResumeCall {
95183	c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95184	c.project = project
95185	c.zone = zone
95186	c.instance = instance
95187	c.instancesresumerequest = instancesresumerequest
95188	return c
95189}
95190
95191// RequestId sets the optional parameter "requestId": An optional
95192// request ID to identify requests. Specify a unique request ID so that
95193// if you must retry your request, the server will know to ignore the
95194// request if it has already been completed.
95195//
95196// For example, consider a situation where you make an initial request
95197// and the request times out. If you make the request again with the
95198// same request ID, the server can check if original operation with the
95199// same request ID was received, and if so, will ignore the second
95200// request. This prevents clients from accidentally creating duplicate
95201// commitments.
95202//
95203// The request ID must be a valid UUID with the exception that zero UUID
95204// is not supported (00000000-0000-0000-0000-000000000000).
95205func (c *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall {
95206	c.urlParams_.Set("requestId", requestId)
95207	return c
95208}
95209
95210// Fields allows partial responses to be retrieved. See
95211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95212// for more information.
95213func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall {
95214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95215	return c
95216}
95217
95218// Context sets the context to be used in this call's Do method. Any
95219// pending HTTP request will be aborted if the provided context is
95220// canceled.
95221func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall {
95222	c.ctx_ = ctx
95223	return c
95224}
95225
95226// Header returns an http.Header that can be modified by the caller to
95227// add HTTP headers to the request.
95228func (c *InstancesResumeCall) Header() http.Header {
95229	if c.header_ == nil {
95230		c.header_ = make(http.Header)
95231	}
95232	return c.header_
95233}
95234
95235func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) {
95236	reqHeaders := make(http.Header)
95237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95238	for k, v := range c.header_ {
95239		reqHeaders[k] = v
95240	}
95241	reqHeaders.Set("User-Agent", c.s.userAgent())
95242	var body io.Reader = nil
95243	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesresumerequest)
95244	if err != nil {
95245		return nil, err
95246	}
95247	reqHeaders.Set("Content-Type", "application/json")
95248	c.urlParams_.Set("alt", alt)
95249	c.urlParams_.Set("prettyPrint", "false")
95250	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/resume")
95251	urls += "?" + c.urlParams_.Encode()
95252	req, err := http.NewRequest("POST", urls, body)
95253	if err != nil {
95254		return nil, err
95255	}
95256	req.Header = reqHeaders
95257	googleapi.Expand(req.URL, map[string]string{
95258		"project":  c.project,
95259		"zone":     c.zone,
95260		"instance": c.instance,
95261	})
95262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95263}
95264
95265// Do executes the "compute.instances.resume" call.
95266// Exactly one of *Operation or error will be non-nil. Any non-2xx
95267// status code is an error. Response headers are in either
95268// *Operation.ServerResponse.Header or (if a response was returned at
95269// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95270// to check whether the returned error was because
95271// http.StatusNotModified was returned.
95272func (c *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95273	gensupport.SetOptions(c.urlParams_, opts...)
95274	res, err := c.doRequest("json")
95275	if res != nil && res.StatusCode == http.StatusNotModified {
95276		if res.Body != nil {
95277			res.Body.Close()
95278		}
95279		return nil, &googleapi.Error{
95280			Code:   res.StatusCode,
95281			Header: res.Header,
95282		}
95283	}
95284	if err != nil {
95285		return nil, err
95286	}
95287	defer googleapi.CloseBody(res)
95288	if err := googleapi.CheckResponse(res); err != nil {
95289		return nil, err
95290	}
95291	ret := &Operation{
95292		ServerResponse: googleapi.ServerResponse{
95293			Header:         res.Header,
95294			HTTPStatusCode: res.StatusCode,
95295		},
95296	}
95297	target := &ret
95298	if err := gensupport.DecodeResponse(target, res); err != nil {
95299		return nil, err
95300	}
95301	return ret, nil
95302	// {
95303	//   "description": "Resumes an instance that was suspended using the instances().suspend method.",
95304	//   "httpMethod": "POST",
95305	//   "id": "compute.instances.resume",
95306	//   "parameterOrder": [
95307	//     "project",
95308	//     "zone",
95309	//     "instance"
95310	//   ],
95311	//   "parameters": {
95312	//     "instance": {
95313	//       "description": "Name of the instance resource to resume.",
95314	//       "location": "path",
95315	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95316	//       "required": true,
95317	//       "type": "string"
95318	//     },
95319	//     "project": {
95320	//       "description": "Project ID for this request.",
95321	//       "location": "path",
95322	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95323	//       "required": true,
95324	//       "type": "string"
95325	//     },
95326	//     "requestId": {
95327	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95328	//       "location": "query",
95329	//       "type": "string"
95330	//     },
95331	//     "zone": {
95332	//       "description": "The name of the zone for this request.",
95333	//       "location": "path",
95334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95335	//       "required": true,
95336	//       "type": "string"
95337	//     }
95338	//   },
95339	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/resume",
95340	//   "request": {
95341	//     "$ref": "InstancesResumeRequest"
95342	//   },
95343	//   "response": {
95344	//     "$ref": "Operation"
95345	//   },
95346	//   "scopes": [
95347	//     "https://www.googleapis.com/auth/cloud-platform",
95348	//     "https://www.googleapis.com/auth/compute"
95349	//   ]
95350	// }
95351
95352}
95353
95354// method id "compute.instances.setDeletionProtection":
95355
95356type InstancesSetDeletionProtectionCall struct {
95357	s          *Service
95358	project    string
95359	zone       string
95360	resource   string
95361	urlParams_ gensupport.URLParams
95362	ctx_       context.Context
95363	header_    http.Header
95364}
95365
95366// SetDeletionProtection: Sets deletion protection on the instance.
95367//
95368// - project: Project ID for this request.
95369// - resource: Name or id of the resource for this request.
95370// - zone: The name of the zone for this request.
95371func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
95372	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95373	c.project = project
95374	c.zone = zone
95375	c.resource = resource
95376	return c
95377}
95378
95379// DeletionProtection sets the optional parameter "deletionProtection":
95380// Whether the resource should be protected against deletion.
95381func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
95382	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
95383	return c
95384}
95385
95386// RequestId sets the optional parameter "requestId": An optional
95387// request ID to identify requests. Specify a unique request ID so that
95388// if you must retry your request, the server will know to ignore the
95389// request if it has already been completed.
95390//
95391// For example, consider a situation where you make an initial request
95392// and the request times out. If you make the request again with the
95393// same request ID, the server can check if original operation with the
95394// same request ID was received, and if so, will ignore the second
95395// request. This prevents clients from accidentally creating duplicate
95396// commitments.
95397//
95398// The request ID must be a valid UUID with the exception that zero UUID
95399// is not supported (00000000-0000-0000-0000-000000000000).
95400func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
95401	c.urlParams_.Set("requestId", requestId)
95402	return c
95403}
95404
95405// Fields allows partial responses to be retrieved. See
95406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95407// for more information.
95408func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
95409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95410	return c
95411}
95412
95413// Context sets the context to be used in this call's Do method. Any
95414// pending HTTP request will be aborted if the provided context is
95415// canceled.
95416func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
95417	c.ctx_ = ctx
95418	return c
95419}
95420
95421// Header returns an http.Header that can be modified by the caller to
95422// add HTTP headers to the request.
95423func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
95424	if c.header_ == nil {
95425		c.header_ = make(http.Header)
95426	}
95427	return c.header_
95428}
95429
95430func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
95431	reqHeaders := make(http.Header)
95432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95433	for k, v := range c.header_ {
95434		reqHeaders[k] = v
95435	}
95436	reqHeaders.Set("User-Agent", c.s.userAgent())
95437	var body io.Reader = nil
95438	c.urlParams_.Set("alt", alt)
95439	c.urlParams_.Set("prettyPrint", "false")
95440	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
95441	urls += "?" + c.urlParams_.Encode()
95442	req, err := http.NewRequest("POST", urls, body)
95443	if err != nil {
95444		return nil, err
95445	}
95446	req.Header = reqHeaders
95447	googleapi.Expand(req.URL, map[string]string{
95448		"project":  c.project,
95449		"zone":     c.zone,
95450		"resource": c.resource,
95451	})
95452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95453}
95454
95455// Do executes the "compute.instances.setDeletionProtection" call.
95456// Exactly one of *Operation or error will be non-nil. Any non-2xx
95457// status code is an error. Response headers are in either
95458// *Operation.ServerResponse.Header or (if a response was returned at
95459// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95460// to check whether the returned error was because
95461// http.StatusNotModified was returned.
95462func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95463	gensupport.SetOptions(c.urlParams_, opts...)
95464	res, err := c.doRequest("json")
95465	if res != nil && res.StatusCode == http.StatusNotModified {
95466		if res.Body != nil {
95467			res.Body.Close()
95468		}
95469		return nil, &googleapi.Error{
95470			Code:   res.StatusCode,
95471			Header: res.Header,
95472		}
95473	}
95474	if err != nil {
95475		return nil, err
95476	}
95477	defer googleapi.CloseBody(res)
95478	if err := googleapi.CheckResponse(res); err != nil {
95479		return nil, err
95480	}
95481	ret := &Operation{
95482		ServerResponse: googleapi.ServerResponse{
95483			Header:         res.Header,
95484			HTTPStatusCode: res.StatusCode,
95485		},
95486	}
95487	target := &ret
95488	if err := gensupport.DecodeResponse(target, res); err != nil {
95489		return nil, err
95490	}
95491	return ret, nil
95492	// {
95493	//   "description": "Sets deletion protection on the instance.",
95494	//   "httpMethod": "POST",
95495	//   "id": "compute.instances.setDeletionProtection",
95496	//   "parameterOrder": [
95497	//     "project",
95498	//     "zone",
95499	//     "resource"
95500	//   ],
95501	//   "parameters": {
95502	//     "deletionProtection": {
95503	//       "default": "true",
95504	//       "description": "Whether the resource should be protected against deletion.",
95505	//       "location": "query",
95506	//       "type": "boolean"
95507	//     },
95508	//     "project": {
95509	//       "description": "Project ID for this request.",
95510	//       "location": "path",
95511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95512	//       "required": true,
95513	//       "type": "string"
95514	//     },
95515	//     "requestId": {
95516	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95517	//       "location": "query",
95518	//       "type": "string"
95519	//     },
95520	//     "resource": {
95521	//       "description": "Name or id of the resource for this request.",
95522	//       "location": "path",
95523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95524	//       "required": true,
95525	//       "type": "string"
95526	//     },
95527	//     "zone": {
95528	//       "description": "The name of the zone for this request.",
95529	//       "location": "path",
95530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95531	//       "required": true,
95532	//       "type": "string"
95533	//     }
95534	//   },
95535	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
95536	//   "response": {
95537	//     "$ref": "Operation"
95538	//   },
95539	//   "scopes": [
95540	//     "https://www.googleapis.com/auth/cloud-platform",
95541	//     "https://www.googleapis.com/auth/compute"
95542	//   ]
95543	// }
95544
95545}
95546
95547// method id "compute.instances.setDiskAutoDelete":
95548
95549type InstancesSetDiskAutoDeleteCall struct {
95550	s          *Service
95551	project    string
95552	zone       string
95553	instance   string
95554	urlParams_ gensupport.URLParams
95555	ctx_       context.Context
95556	header_    http.Header
95557}
95558
95559// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
95560// an instance.
95561//
95562// - autoDelete: Whether to auto-delete the disk when the instance is
95563//   deleted.
95564// - deviceName: The device name of the disk to modify. Make a get()
95565//   request on the instance to view currently attached disks and device
95566//   names.
95567// - instance: The instance name for this request.
95568// - project: Project ID for this request.
95569// - zone: The name of the zone for this request.
95570// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
95571func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
95572	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95573	c.project = project
95574	c.zone = zone
95575	c.instance = instance
95576	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
95577	c.urlParams_.Set("deviceName", deviceName)
95578	return c
95579}
95580
95581// RequestId sets the optional parameter "requestId": An optional
95582// request ID to identify requests. Specify a unique request ID so that
95583// if you must retry your request, the server will know to ignore the
95584// request if it has already been completed.
95585//
95586// For example, consider a situation where you make an initial request
95587// and the request times out. If you make the request again with the
95588// same request ID, the server can check if original operation with the
95589// same request ID was received, and if so, will ignore the second
95590// request. This prevents clients from accidentally creating duplicate
95591// commitments.
95592//
95593// The request ID must be a valid UUID with the exception that zero UUID
95594// is not supported (00000000-0000-0000-0000-000000000000).
95595func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
95596	c.urlParams_.Set("requestId", requestId)
95597	return c
95598}
95599
95600// Fields allows partial responses to be retrieved. See
95601// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95602// for more information.
95603func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
95604	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95605	return c
95606}
95607
95608// Context sets the context to be used in this call's Do method. Any
95609// pending HTTP request will be aborted if the provided context is
95610// canceled.
95611func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
95612	c.ctx_ = ctx
95613	return c
95614}
95615
95616// Header returns an http.Header that can be modified by the caller to
95617// add HTTP headers to the request.
95618func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
95619	if c.header_ == nil {
95620		c.header_ = make(http.Header)
95621	}
95622	return c.header_
95623}
95624
95625func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
95626	reqHeaders := make(http.Header)
95627	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95628	for k, v := range c.header_ {
95629		reqHeaders[k] = v
95630	}
95631	reqHeaders.Set("User-Agent", c.s.userAgent())
95632	var body io.Reader = nil
95633	c.urlParams_.Set("alt", alt)
95634	c.urlParams_.Set("prettyPrint", "false")
95635	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
95636	urls += "?" + c.urlParams_.Encode()
95637	req, err := http.NewRequest("POST", urls, body)
95638	if err != nil {
95639		return nil, err
95640	}
95641	req.Header = reqHeaders
95642	googleapi.Expand(req.URL, map[string]string{
95643		"project":  c.project,
95644		"zone":     c.zone,
95645		"instance": c.instance,
95646	})
95647	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95648}
95649
95650// Do executes the "compute.instances.setDiskAutoDelete" call.
95651// Exactly one of *Operation or error will be non-nil. Any non-2xx
95652// status code is an error. Response headers are in either
95653// *Operation.ServerResponse.Header or (if a response was returned at
95654// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95655// to check whether the returned error was because
95656// http.StatusNotModified was returned.
95657func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95658	gensupport.SetOptions(c.urlParams_, opts...)
95659	res, err := c.doRequest("json")
95660	if res != nil && res.StatusCode == http.StatusNotModified {
95661		if res.Body != nil {
95662			res.Body.Close()
95663		}
95664		return nil, &googleapi.Error{
95665			Code:   res.StatusCode,
95666			Header: res.Header,
95667		}
95668	}
95669	if err != nil {
95670		return nil, err
95671	}
95672	defer googleapi.CloseBody(res)
95673	if err := googleapi.CheckResponse(res); err != nil {
95674		return nil, err
95675	}
95676	ret := &Operation{
95677		ServerResponse: googleapi.ServerResponse{
95678			Header:         res.Header,
95679			HTTPStatusCode: res.StatusCode,
95680		},
95681	}
95682	target := &ret
95683	if err := gensupport.DecodeResponse(target, res); err != nil {
95684		return nil, err
95685	}
95686	return ret, nil
95687	// {
95688	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
95689	//   "httpMethod": "POST",
95690	//   "id": "compute.instances.setDiskAutoDelete",
95691	//   "parameterOrder": [
95692	//     "project",
95693	//     "zone",
95694	//     "instance",
95695	//     "autoDelete",
95696	//     "deviceName"
95697	//   ],
95698	//   "parameters": {
95699	//     "autoDelete": {
95700	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
95701	//       "location": "query",
95702	//       "required": true,
95703	//       "type": "boolean"
95704	//     },
95705	//     "deviceName": {
95706	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
95707	//       "location": "query",
95708	//       "pattern": "\\w[\\w.-]{0,254}",
95709	//       "required": true,
95710	//       "type": "string"
95711	//     },
95712	//     "instance": {
95713	//       "description": "The instance name for this request.",
95714	//       "location": "path",
95715	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95716	//       "required": true,
95717	//       "type": "string"
95718	//     },
95719	//     "project": {
95720	//       "description": "Project ID for this request.",
95721	//       "location": "path",
95722	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95723	//       "required": true,
95724	//       "type": "string"
95725	//     },
95726	//     "requestId": {
95727	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95728	//       "location": "query",
95729	//       "type": "string"
95730	//     },
95731	//     "zone": {
95732	//       "description": "The name of the zone for this request.",
95733	//       "location": "path",
95734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95735	//       "required": true,
95736	//       "type": "string"
95737	//     }
95738	//   },
95739	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
95740	//   "response": {
95741	//     "$ref": "Operation"
95742	//   },
95743	//   "scopes": [
95744	//     "https://www.googleapis.com/auth/cloud-platform",
95745	//     "https://www.googleapis.com/auth/compute"
95746	//   ]
95747	// }
95748
95749}
95750
95751// method id "compute.instances.setIamPolicy":
95752
95753type InstancesSetIamPolicyCall struct {
95754	s                    *Service
95755	project              string
95756	zone                 string
95757	resource             string
95758	zonesetpolicyrequest *ZoneSetPolicyRequest
95759	urlParams_           gensupport.URLParams
95760	ctx_                 context.Context
95761	header_              http.Header
95762}
95763
95764// SetIamPolicy: Sets the access control policy on the specified
95765// resource. Replaces any existing policy.
95766//
95767// - project: Project ID for this request.
95768// - resource: Name or id of the resource for this request.
95769// - zone: The name of the zone for this request.
95770func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
95771	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95772	c.project = project
95773	c.zone = zone
95774	c.resource = resource
95775	c.zonesetpolicyrequest = zonesetpolicyrequest
95776	return c
95777}
95778
95779// Fields allows partial responses to be retrieved. See
95780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95781// for more information.
95782func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
95783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95784	return c
95785}
95786
95787// Context sets the context to be used in this call's Do method. Any
95788// pending HTTP request will be aborted if the provided context is
95789// canceled.
95790func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
95791	c.ctx_ = ctx
95792	return c
95793}
95794
95795// Header returns an http.Header that can be modified by the caller to
95796// add HTTP headers to the request.
95797func (c *InstancesSetIamPolicyCall) Header() http.Header {
95798	if c.header_ == nil {
95799		c.header_ = make(http.Header)
95800	}
95801	return c.header_
95802}
95803
95804func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
95805	reqHeaders := make(http.Header)
95806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95807	for k, v := range c.header_ {
95808		reqHeaders[k] = v
95809	}
95810	reqHeaders.Set("User-Agent", c.s.userAgent())
95811	var body io.Reader = nil
95812	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
95813	if err != nil {
95814		return nil, err
95815	}
95816	reqHeaders.Set("Content-Type", "application/json")
95817	c.urlParams_.Set("alt", alt)
95818	c.urlParams_.Set("prettyPrint", "false")
95819	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy")
95820	urls += "?" + c.urlParams_.Encode()
95821	req, err := http.NewRequest("POST", urls, body)
95822	if err != nil {
95823		return nil, err
95824	}
95825	req.Header = reqHeaders
95826	googleapi.Expand(req.URL, map[string]string{
95827		"project":  c.project,
95828		"zone":     c.zone,
95829		"resource": c.resource,
95830	})
95831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95832}
95833
95834// Do executes the "compute.instances.setIamPolicy" call.
95835// Exactly one of *Policy or error will be non-nil. Any non-2xx status
95836// code is an error. Response headers are in either
95837// *Policy.ServerResponse.Header or (if a response was returned at all)
95838// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
95839// check whether the returned error was because http.StatusNotModified
95840// was returned.
95841func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
95842	gensupport.SetOptions(c.urlParams_, opts...)
95843	res, err := c.doRequest("json")
95844	if res != nil && res.StatusCode == http.StatusNotModified {
95845		if res.Body != nil {
95846			res.Body.Close()
95847		}
95848		return nil, &googleapi.Error{
95849			Code:   res.StatusCode,
95850			Header: res.Header,
95851		}
95852	}
95853	if err != nil {
95854		return nil, err
95855	}
95856	defer googleapi.CloseBody(res)
95857	if err := googleapi.CheckResponse(res); err != nil {
95858		return nil, err
95859	}
95860	ret := &Policy{
95861		ServerResponse: googleapi.ServerResponse{
95862			Header:         res.Header,
95863			HTTPStatusCode: res.StatusCode,
95864		},
95865	}
95866	target := &ret
95867	if err := gensupport.DecodeResponse(target, res); err != nil {
95868		return nil, err
95869	}
95870	return ret, nil
95871	// {
95872	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
95873	//   "httpMethod": "POST",
95874	//   "id": "compute.instances.setIamPolicy",
95875	//   "parameterOrder": [
95876	//     "project",
95877	//     "zone",
95878	//     "resource"
95879	//   ],
95880	//   "parameters": {
95881	//     "project": {
95882	//       "description": "Project ID for this request.",
95883	//       "location": "path",
95884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95885	//       "required": true,
95886	//       "type": "string"
95887	//     },
95888	//     "resource": {
95889	//       "description": "Name or id of the resource for this request.",
95890	//       "location": "path",
95891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95892	//       "required": true,
95893	//       "type": "string"
95894	//     },
95895	//     "zone": {
95896	//       "description": "The name of the zone for this request.",
95897	//       "location": "path",
95898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95899	//       "required": true,
95900	//       "type": "string"
95901	//     }
95902	//   },
95903	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
95904	//   "request": {
95905	//     "$ref": "ZoneSetPolicyRequest"
95906	//   },
95907	//   "response": {
95908	//     "$ref": "Policy"
95909	//   },
95910	//   "scopes": [
95911	//     "https://www.googleapis.com/auth/cloud-platform",
95912	//     "https://www.googleapis.com/auth/compute"
95913	//   ]
95914	// }
95915
95916}
95917
95918// method id "compute.instances.setLabels":
95919
95920type InstancesSetLabelsCall struct {
95921	s                         *Service
95922	project                   string
95923	zone                      string
95924	instance                  string
95925	instancessetlabelsrequest *InstancesSetLabelsRequest
95926	urlParams_                gensupport.URLParams
95927	ctx_                      context.Context
95928	header_                   http.Header
95929}
95930
95931// SetLabels: Sets labels on an instance. To learn more about labels,
95932// read the Labeling Resources documentation.
95933//
95934// - instance: Name of the instance scoping this request.
95935// - project: Project ID for this request.
95936// - zone: The name of the zone for this request.
95937func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
95938	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95939	c.project = project
95940	c.zone = zone
95941	c.instance = instance
95942	c.instancessetlabelsrequest = instancessetlabelsrequest
95943	return c
95944}
95945
95946// RequestId sets the optional parameter "requestId": An optional
95947// request ID to identify requests. Specify a unique request ID so that
95948// if you must retry your request, the server will know to ignore the
95949// request if it has already been completed.
95950//
95951// For example, consider a situation where you make an initial request
95952// and the request times out. If you make the request again with the
95953// same request ID, the server can check if original operation with the
95954// same request ID was received, and if so, will ignore the second
95955// request. This prevents clients from accidentally creating duplicate
95956// commitments.
95957//
95958// The request ID must be a valid UUID with the exception that zero UUID
95959// is not supported (00000000-0000-0000-0000-000000000000).
95960func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
95961	c.urlParams_.Set("requestId", requestId)
95962	return c
95963}
95964
95965// Fields allows partial responses to be retrieved. See
95966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95967// for more information.
95968func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
95969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95970	return c
95971}
95972
95973// Context sets the context to be used in this call's Do method. Any
95974// pending HTTP request will be aborted if the provided context is
95975// canceled.
95976func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
95977	c.ctx_ = ctx
95978	return c
95979}
95980
95981// Header returns an http.Header that can be modified by the caller to
95982// add HTTP headers to the request.
95983func (c *InstancesSetLabelsCall) Header() http.Header {
95984	if c.header_ == nil {
95985		c.header_ = make(http.Header)
95986	}
95987	return c.header_
95988}
95989
95990func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
95991	reqHeaders := make(http.Header)
95992	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95993	for k, v := range c.header_ {
95994		reqHeaders[k] = v
95995	}
95996	reqHeaders.Set("User-Agent", c.s.userAgent())
95997	var body io.Reader = nil
95998	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
95999	if err != nil {
96000		return nil, err
96001	}
96002	reqHeaders.Set("Content-Type", "application/json")
96003	c.urlParams_.Set("alt", alt)
96004	c.urlParams_.Set("prettyPrint", "false")
96005	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setLabels")
96006	urls += "?" + c.urlParams_.Encode()
96007	req, err := http.NewRequest("POST", urls, body)
96008	if err != nil {
96009		return nil, err
96010	}
96011	req.Header = reqHeaders
96012	googleapi.Expand(req.URL, map[string]string{
96013		"project":  c.project,
96014		"zone":     c.zone,
96015		"instance": c.instance,
96016	})
96017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96018}
96019
96020// Do executes the "compute.instances.setLabels" call.
96021// Exactly one of *Operation or error will be non-nil. Any non-2xx
96022// status code is an error. Response headers are in either
96023// *Operation.ServerResponse.Header or (if a response was returned at
96024// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96025// to check whether the returned error was because
96026// http.StatusNotModified was returned.
96027func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96028	gensupport.SetOptions(c.urlParams_, opts...)
96029	res, err := c.doRequest("json")
96030	if res != nil && res.StatusCode == http.StatusNotModified {
96031		if res.Body != nil {
96032			res.Body.Close()
96033		}
96034		return nil, &googleapi.Error{
96035			Code:   res.StatusCode,
96036			Header: res.Header,
96037		}
96038	}
96039	if err != nil {
96040		return nil, err
96041	}
96042	defer googleapi.CloseBody(res)
96043	if err := googleapi.CheckResponse(res); err != nil {
96044		return nil, err
96045	}
96046	ret := &Operation{
96047		ServerResponse: googleapi.ServerResponse{
96048			Header:         res.Header,
96049			HTTPStatusCode: res.StatusCode,
96050		},
96051	}
96052	target := &ret
96053	if err := gensupport.DecodeResponse(target, res); err != nil {
96054		return nil, err
96055	}
96056	return ret, nil
96057	// {
96058	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
96059	//   "httpMethod": "POST",
96060	//   "id": "compute.instances.setLabels",
96061	//   "parameterOrder": [
96062	//     "project",
96063	//     "zone",
96064	//     "instance"
96065	//   ],
96066	//   "parameters": {
96067	//     "instance": {
96068	//       "description": "Name of the instance scoping this request.",
96069	//       "location": "path",
96070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96071	//       "required": true,
96072	//       "type": "string"
96073	//     },
96074	//     "project": {
96075	//       "description": "Project ID for this request.",
96076	//       "location": "path",
96077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96078	//       "required": true,
96079	//       "type": "string"
96080	//     },
96081	//     "requestId": {
96082	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96083	//       "location": "query",
96084	//       "type": "string"
96085	//     },
96086	//     "zone": {
96087	//       "description": "The name of the zone for this request.",
96088	//       "location": "path",
96089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96090	//       "required": true,
96091	//       "type": "string"
96092	//     }
96093	//   },
96094	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels",
96095	//   "request": {
96096	//     "$ref": "InstancesSetLabelsRequest"
96097	//   },
96098	//   "response": {
96099	//     "$ref": "Operation"
96100	//   },
96101	//   "scopes": [
96102	//     "https://www.googleapis.com/auth/cloud-platform",
96103	//     "https://www.googleapis.com/auth/compute"
96104	//   ]
96105	// }
96106
96107}
96108
96109// method id "compute.instances.setMachineResources":
96110
96111type InstancesSetMachineResourcesCall struct {
96112	s                                   *Service
96113	project                             string
96114	zone                                string
96115	instance                            string
96116	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
96117	urlParams_                          gensupport.URLParams
96118	ctx_                                context.Context
96119	header_                             http.Header
96120}
96121
96122// SetMachineResources: Changes the number and/or type of accelerator
96123// for a stopped instance to the values specified in the request.
96124//
96125// - instance: Name of the instance scoping this request.
96126// - project: Project ID for this request.
96127// - zone: The name of the zone for this request.
96128func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
96129	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96130	c.project = project
96131	c.zone = zone
96132	c.instance = instance
96133	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
96134	return c
96135}
96136
96137// RequestId sets the optional parameter "requestId": An optional
96138// request ID to identify requests. Specify a unique request ID so that
96139// if you must retry your request, the server will know to ignore the
96140// request if it has already been completed.
96141//
96142// For example, consider a situation where you make an initial request
96143// and the request times out. If you make the request again with the
96144// same request ID, the server can check if original operation with the
96145// same request ID was received, and if so, will ignore the second
96146// request. This prevents clients from accidentally creating duplicate
96147// commitments.
96148//
96149// The request ID must be a valid UUID with the exception that zero UUID
96150// is not supported (00000000-0000-0000-0000-000000000000).
96151func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
96152	c.urlParams_.Set("requestId", requestId)
96153	return c
96154}
96155
96156// Fields allows partial responses to be retrieved. See
96157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96158// for more information.
96159func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
96160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96161	return c
96162}
96163
96164// Context sets the context to be used in this call's Do method. Any
96165// pending HTTP request will be aborted if the provided context is
96166// canceled.
96167func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
96168	c.ctx_ = ctx
96169	return c
96170}
96171
96172// Header returns an http.Header that can be modified by the caller to
96173// add HTTP headers to the request.
96174func (c *InstancesSetMachineResourcesCall) Header() http.Header {
96175	if c.header_ == nil {
96176		c.header_ = make(http.Header)
96177	}
96178	return c.header_
96179}
96180
96181func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
96182	reqHeaders := make(http.Header)
96183	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96184	for k, v := range c.header_ {
96185		reqHeaders[k] = v
96186	}
96187	reqHeaders.Set("User-Agent", c.s.userAgent())
96188	var body io.Reader = nil
96189	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
96190	if err != nil {
96191		return nil, err
96192	}
96193	reqHeaders.Set("Content-Type", "application/json")
96194	c.urlParams_.Set("alt", alt)
96195	c.urlParams_.Set("prettyPrint", "false")
96196	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources")
96197	urls += "?" + c.urlParams_.Encode()
96198	req, err := http.NewRequest("POST", urls, body)
96199	if err != nil {
96200		return nil, err
96201	}
96202	req.Header = reqHeaders
96203	googleapi.Expand(req.URL, map[string]string{
96204		"project":  c.project,
96205		"zone":     c.zone,
96206		"instance": c.instance,
96207	})
96208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96209}
96210
96211// Do executes the "compute.instances.setMachineResources" call.
96212// Exactly one of *Operation or error will be non-nil. Any non-2xx
96213// status code is an error. Response headers are in either
96214// *Operation.ServerResponse.Header or (if a response was returned at
96215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96216// to check whether the returned error was because
96217// http.StatusNotModified was returned.
96218func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96219	gensupport.SetOptions(c.urlParams_, opts...)
96220	res, err := c.doRequest("json")
96221	if res != nil && res.StatusCode == http.StatusNotModified {
96222		if res.Body != nil {
96223			res.Body.Close()
96224		}
96225		return nil, &googleapi.Error{
96226			Code:   res.StatusCode,
96227			Header: res.Header,
96228		}
96229	}
96230	if err != nil {
96231		return nil, err
96232	}
96233	defer googleapi.CloseBody(res)
96234	if err := googleapi.CheckResponse(res); err != nil {
96235		return nil, err
96236	}
96237	ret := &Operation{
96238		ServerResponse: googleapi.ServerResponse{
96239			Header:         res.Header,
96240			HTTPStatusCode: res.StatusCode,
96241		},
96242	}
96243	target := &ret
96244	if err := gensupport.DecodeResponse(target, res); err != nil {
96245		return nil, err
96246	}
96247	return ret, nil
96248	// {
96249	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
96250	//   "httpMethod": "POST",
96251	//   "id": "compute.instances.setMachineResources",
96252	//   "parameterOrder": [
96253	//     "project",
96254	//     "zone",
96255	//     "instance"
96256	//   ],
96257	//   "parameters": {
96258	//     "instance": {
96259	//       "description": "Name of the instance scoping this request.",
96260	//       "location": "path",
96261	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96262	//       "required": true,
96263	//       "type": "string"
96264	//     },
96265	//     "project": {
96266	//       "description": "Project ID for this request.",
96267	//       "location": "path",
96268	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96269	//       "required": true,
96270	//       "type": "string"
96271	//     },
96272	//     "requestId": {
96273	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96274	//       "location": "query",
96275	//       "type": "string"
96276	//     },
96277	//     "zone": {
96278	//       "description": "The name of the zone for this request.",
96279	//       "location": "path",
96280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96281	//       "required": true,
96282	//       "type": "string"
96283	//     }
96284	//   },
96285	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
96286	//   "request": {
96287	//     "$ref": "InstancesSetMachineResourcesRequest"
96288	//   },
96289	//   "response": {
96290	//     "$ref": "Operation"
96291	//   },
96292	//   "scopes": [
96293	//     "https://www.googleapis.com/auth/cloud-platform",
96294	//     "https://www.googleapis.com/auth/compute"
96295	//   ]
96296	// }
96297
96298}
96299
96300// method id "compute.instances.setMachineType":
96301
96302type InstancesSetMachineTypeCall struct {
96303	s                              *Service
96304	project                        string
96305	zone                           string
96306	instance                       string
96307	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
96308	urlParams_                     gensupport.URLParams
96309	ctx_                           context.Context
96310	header_                        http.Header
96311}
96312
96313// SetMachineType: Changes the machine type for a stopped instance to
96314// the machine type specified in the request.
96315//
96316// - instance: Name of the instance scoping this request.
96317// - project: Project ID for this request.
96318// - zone: The name of the zone for this request.
96319func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
96320	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96321	c.project = project
96322	c.zone = zone
96323	c.instance = instance
96324	c.instancessetmachinetyperequest = instancessetmachinetyperequest
96325	return c
96326}
96327
96328// RequestId sets the optional parameter "requestId": An optional
96329// request ID to identify requests. Specify a unique request ID so that
96330// if you must retry your request, the server will know to ignore the
96331// request if it has already been completed.
96332//
96333// For example, consider a situation where you make an initial request
96334// and the request times out. If you make the request again with the
96335// same request ID, the server can check if original operation with the
96336// same request ID was received, and if so, will ignore the second
96337// request. This prevents clients from accidentally creating duplicate
96338// commitments.
96339//
96340// The request ID must be a valid UUID with the exception that zero UUID
96341// is not supported (00000000-0000-0000-0000-000000000000).
96342func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
96343	c.urlParams_.Set("requestId", requestId)
96344	return c
96345}
96346
96347// Fields allows partial responses to be retrieved. See
96348// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96349// for more information.
96350func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
96351	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96352	return c
96353}
96354
96355// Context sets the context to be used in this call's Do method. Any
96356// pending HTTP request will be aborted if the provided context is
96357// canceled.
96358func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
96359	c.ctx_ = ctx
96360	return c
96361}
96362
96363// Header returns an http.Header that can be modified by the caller to
96364// add HTTP headers to the request.
96365func (c *InstancesSetMachineTypeCall) Header() http.Header {
96366	if c.header_ == nil {
96367		c.header_ = make(http.Header)
96368	}
96369	return c.header_
96370}
96371
96372func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
96373	reqHeaders := make(http.Header)
96374	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96375	for k, v := range c.header_ {
96376		reqHeaders[k] = v
96377	}
96378	reqHeaders.Set("User-Agent", c.s.userAgent())
96379	var body io.Reader = nil
96380	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
96381	if err != nil {
96382		return nil, err
96383	}
96384	reqHeaders.Set("Content-Type", "application/json")
96385	c.urlParams_.Set("alt", alt)
96386	c.urlParams_.Set("prettyPrint", "false")
96387	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineType")
96388	urls += "?" + c.urlParams_.Encode()
96389	req, err := http.NewRequest("POST", urls, body)
96390	if err != nil {
96391		return nil, err
96392	}
96393	req.Header = reqHeaders
96394	googleapi.Expand(req.URL, map[string]string{
96395		"project":  c.project,
96396		"zone":     c.zone,
96397		"instance": c.instance,
96398	})
96399	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96400}
96401
96402// Do executes the "compute.instances.setMachineType" call.
96403// Exactly one of *Operation or error will be non-nil. Any non-2xx
96404// status code is an error. Response headers are in either
96405// *Operation.ServerResponse.Header or (if a response was returned at
96406// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96407// to check whether the returned error was because
96408// http.StatusNotModified was returned.
96409func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96410	gensupport.SetOptions(c.urlParams_, opts...)
96411	res, err := c.doRequest("json")
96412	if res != nil && res.StatusCode == http.StatusNotModified {
96413		if res.Body != nil {
96414			res.Body.Close()
96415		}
96416		return nil, &googleapi.Error{
96417			Code:   res.StatusCode,
96418			Header: res.Header,
96419		}
96420	}
96421	if err != nil {
96422		return nil, err
96423	}
96424	defer googleapi.CloseBody(res)
96425	if err := googleapi.CheckResponse(res); err != nil {
96426		return nil, err
96427	}
96428	ret := &Operation{
96429		ServerResponse: googleapi.ServerResponse{
96430			Header:         res.Header,
96431			HTTPStatusCode: res.StatusCode,
96432		},
96433	}
96434	target := &ret
96435	if err := gensupport.DecodeResponse(target, res); err != nil {
96436		return nil, err
96437	}
96438	return ret, nil
96439	// {
96440	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
96441	//   "httpMethod": "POST",
96442	//   "id": "compute.instances.setMachineType",
96443	//   "parameterOrder": [
96444	//     "project",
96445	//     "zone",
96446	//     "instance"
96447	//   ],
96448	//   "parameters": {
96449	//     "instance": {
96450	//       "description": "Name of the instance scoping this request.",
96451	//       "location": "path",
96452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96453	//       "required": true,
96454	//       "type": "string"
96455	//     },
96456	//     "project": {
96457	//       "description": "Project ID for this request.",
96458	//       "location": "path",
96459	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96460	//       "required": true,
96461	//       "type": "string"
96462	//     },
96463	//     "requestId": {
96464	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96465	//       "location": "query",
96466	//       "type": "string"
96467	//     },
96468	//     "zone": {
96469	//       "description": "The name of the zone for this request.",
96470	//       "location": "path",
96471	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96472	//       "required": true,
96473	//       "type": "string"
96474	//     }
96475	//   },
96476	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
96477	//   "request": {
96478	//     "$ref": "InstancesSetMachineTypeRequest"
96479	//   },
96480	//   "response": {
96481	//     "$ref": "Operation"
96482	//   },
96483	//   "scopes": [
96484	//     "https://www.googleapis.com/auth/cloud-platform",
96485	//     "https://www.googleapis.com/auth/compute"
96486	//   ]
96487	// }
96488
96489}
96490
96491// method id "compute.instances.setMetadata":
96492
96493type InstancesSetMetadataCall struct {
96494	s          *Service
96495	project    string
96496	zone       string
96497	instance   string
96498	metadata   *Metadata
96499	urlParams_ gensupport.URLParams
96500	ctx_       context.Context
96501	header_    http.Header
96502}
96503
96504// SetMetadata: Sets metadata for the specified instance to the data
96505// included in the request.
96506//
96507// - instance: Name of the instance scoping this request.
96508// - project: Project ID for this request.
96509// - zone: The name of the zone for this request.
96510// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
96511func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
96512	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96513	c.project = project
96514	c.zone = zone
96515	c.instance = instance
96516	c.metadata = metadata
96517	return c
96518}
96519
96520// RequestId sets the optional parameter "requestId": An optional
96521// request ID to identify requests. Specify a unique request ID so that
96522// if you must retry your request, the server will know to ignore the
96523// request if it has already been completed.
96524//
96525// For example, consider a situation where you make an initial request
96526// and the request times out. If you make the request again with the
96527// same request ID, the server can check if original operation with the
96528// same request ID was received, and if so, will ignore the second
96529// request. This prevents clients from accidentally creating duplicate
96530// commitments.
96531//
96532// The request ID must be a valid UUID with the exception that zero UUID
96533// is not supported (00000000-0000-0000-0000-000000000000).
96534func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
96535	c.urlParams_.Set("requestId", requestId)
96536	return c
96537}
96538
96539// Fields allows partial responses to be retrieved. See
96540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96541// for more information.
96542func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
96543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96544	return c
96545}
96546
96547// Context sets the context to be used in this call's Do method. Any
96548// pending HTTP request will be aborted if the provided context is
96549// canceled.
96550func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
96551	c.ctx_ = ctx
96552	return c
96553}
96554
96555// Header returns an http.Header that can be modified by the caller to
96556// add HTTP headers to the request.
96557func (c *InstancesSetMetadataCall) Header() http.Header {
96558	if c.header_ == nil {
96559		c.header_ = make(http.Header)
96560	}
96561	return c.header_
96562}
96563
96564func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
96565	reqHeaders := make(http.Header)
96566	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96567	for k, v := range c.header_ {
96568		reqHeaders[k] = v
96569	}
96570	reqHeaders.Set("User-Agent", c.s.userAgent())
96571	var body io.Reader = nil
96572	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
96573	if err != nil {
96574		return nil, err
96575	}
96576	reqHeaders.Set("Content-Type", "application/json")
96577	c.urlParams_.Set("alt", alt)
96578	c.urlParams_.Set("prettyPrint", "false")
96579	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMetadata")
96580	urls += "?" + c.urlParams_.Encode()
96581	req, err := http.NewRequest("POST", urls, body)
96582	if err != nil {
96583		return nil, err
96584	}
96585	req.Header = reqHeaders
96586	googleapi.Expand(req.URL, map[string]string{
96587		"project":  c.project,
96588		"zone":     c.zone,
96589		"instance": c.instance,
96590	})
96591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96592}
96593
96594// Do executes the "compute.instances.setMetadata" call.
96595// Exactly one of *Operation or error will be non-nil. Any non-2xx
96596// status code is an error. Response headers are in either
96597// *Operation.ServerResponse.Header or (if a response was returned at
96598// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96599// to check whether the returned error was because
96600// http.StatusNotModified was returned.
96601func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96602	gensupport.SetOptions(c.urlParams_, opts...)
96603	res, err := c.doRequest("json")
96604	if res != nil && res.StatusCode == http.StatusNotModified {
96605		if res.Body != nil {
96606			res.Body.Close()
96607		}
96608		return nil, &googleapi.Error{
96609			Code:   res.StatusCode,
96610			Header: res.Header,
96611		}
96612	}
96613	if err != nil {
96614		return nil, err
96615	}
96616	defer googleapi.CloseBody(res)
96617	if err := googleapi.CheckResponse(res); err != nil {
96618		return nil, err
96619	}
96620	ret := &Operation{
96621		ServerResponse: googleapi.ServerResponse{
96622			Header:         res.Header,
96623			HTTPStatusCode: res.StatusCode,
96624		},
96625	}
96626	target := &ret
96627	if err := gensupport.DecodeResponse(target, res); err != nil {
96628		return nil, err
96629	}
96630	return ret, nil
96631	// {
96632	//   "description": "Sets metadata for the specified instance to the data included in the request.",
96633	//   "httpMethod": "POST",
96634	//   "id": "compute.instances.setMetadata",
96635	//   "parameterOrder": [
96636	//     "project",
96637	//     "zone",
96638	//     "instance"
96639	//   ],
96640	//   "parameters": {
96641	//     "instance": {
96642	//       "description": "Name of the instance scoping this request.",
96643	//       "location": "path",
96644	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96645	//       "required": true,
96646	//       "type": "string"
96647	//     },
96648	//     "project": {
96649	//       "description": "Project ID for this request.",
96650	//       "location": "path",
96651	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96652	//       "required": true,
96653	//       "type": "string"
96654	//     },
96655	//     "requestId": {
96656	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96657	//       "location": "query",
96658	//       "type": "string"
96659	//     },
96660	//     "zone": {
96661	//       "description": "The name of the zone for this request.",
96662	//       "location": "path",
96663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96664	//       "required": true,
96665	//       "type": "string"
96666	//     }
96667	//   },
96668	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
96669	//   "request": {
96670	//     "$ref": "Metadata"
96671	//   },
96672	//   "response": {
96673	//     "$ref": "Operation"
96674	//   },
96675	//   "scopes": [
96676	//     "https://www.googleapis.com/auth/cloud-platform",
96677	//     "https://www.googleapis.com/auth/compute"
96678	//   ]
96679	// }
96680
96681}
96682
96683// method id "compute.instances.setMinCpuPlatform":
96684
96685type InstancesSetMinCpuPlatformCall struct {
96686	s                                 *Service
96687	project                           string
96688	zone                              string
96689	instance                          string
96690	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
96691	urlParams_                        gensupport.URLParams
96692	ctx_                              context.Context
96693	header_                           http.Header
96694}
96695
96696// SetMinCpuPlatform: Changes the minimum CPU platform that this
96697// instance should use. This method can only be called on a stopped
96698// instance. For more information, read Specifying a Minimum CPU
96699// Platform.
96700//
96701// - instance: Name of the instance scoping this request.
96702// - project: Project ID for this request.
96703// - zone: The name of the zone for this request.
96704func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
96705	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96706	c.project = project
96707	c.zone = zone
96708	c.instance = instance
96709	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
96710	return c
96711}
96712
96713// RequestId sets the optional parameter "requestId": An optional
96714// request ID to identify requests. Specify a unique request ID so that
96715// if you must retry your request, the server will know to ignore the
96716// request if it has already been completed.
96717//
96718// For example, consider a situation where you make an initial request
96719// and the request times out. If you make the request again with the
96720// same request ID, the server can check if original operation with the
96721// same request ID was received, and if so, will ignore the second
96722// request. This prevents clients from accidentally creating duplicate
96723// commitments.
96724//
96725// The request ID must be a valid UUID with the exception that zero UUID
96726// is not supported (00000000-0000-0000-0000-000000000000).
96727func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
96728	c.urlParams_.Set("requestId", requestId)
96729	return c
96730}
96731
96732// Fields allows partial responses to be retrieved. See
96733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96734// for more information.
96735func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
96736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96737	return c
96738}
96739
96740// Context sets the context to be used in this call's Do method. Any
96741// pending HTTP request will be aborted if the provided context is
96742// canceled.
96743func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
96744	c.ctx_ = ctx
96745	return c
96746}
96747
96748// Header returns an http.Header that can be modified by the caller to
96749// add HTTP headers to the request.
96750func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
96751	if c.header_ == nil {
96752		c.header_ = make(http.Header)
96753	}
96754	return c.header_
96755}
96756
96757func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
96758	reqHeaders := make(http.Header)
96759	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96760	for k, v := range c.header_ {
96761		reqHeaders[k] = v
96762	}
96763	reqHeaders.Set("User-Agent", c.s.userAgent())
96764	var body io.Reader = nil
96765	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
96766	if err != nil {
96767		return nil, err
96768	}
96769	reqHeaders.Set("Content-Type", "application/json")
96770	c.urlParams_.Set("alt", alt)
96771	c.urlParams_.Set("prettyPrint", "false")
96772	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
96773	urls += "?" + c.urlParams_.Encode()
96774	req, err := http.NewRequest("POST", urls, body)
96775	if err != nil {
96776		return nil, err
96777	}
96778	req.Header = reqHeaders
96779	googleapi.Expand(req.URL, map[string]string{
96780		"project":  c.project,
96781		"zone":     c.zone,
96782		"instance": c.instance,
96783	})
96784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96785}
96786
96787// Do executes the "compute.instances.setMinCpuPlatform" call.
96788// Exactly one of *Operation or error will be non-nil. Any non-2xx
96789// status code is an error. Response headers are in either
96790// *Operation.ServerResponse.Header or (if a response was returned at
96791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96792// to check whether the returned error was because
96793// http.StatusNotModified was returned.
96794func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96795	gensupport.SetOptions(c.urlParams_, opts...)
96796	res, err := c.doRequest("json")
96797	if res != nil && res.StatusCode == http.StatusNotModified {
96798		if res.Body != nil {
96799			res.Body.Close()
96800		}
96801		return nil, &googleapi.Error{
96802			Code:   res.StatusCode,
96803			Header: res.Header,
96804		}
96805	}
96806	if err != nil {
96807		return nil, err
96808	}
96809	defer googleapi.CloseBody(res)
96810	if err := googleapi.CheckResponse(res); err != nil {
96811		return nil, err
96812	}
96813	ret := &Operation{
96814		ServerResponse: googleapi.ServerResponse{
96815			Header:         res.Header,
96816			HTTPStatusCode: res.StatusCode,
96817		},
96818	}
96819	target := &ret
96820	if err := gensupport.DecodeResponse(target, res); err != nil {
96821		return nil, err
96822	}
96823	return ret, nil
96824	// {
96825	//   "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.",
96826	//   "httpMethod": "POST",
96827	//   "id": "compute.instances.setMinCpuPlatform",
96828	//   "parameterOrder": [
96829	//     "project",
96830	//     "zone",
96831	//     "instance"
96832	//   ],
96833	//   "parameters": {
96834	//     "instance": {
96835	//       "description": "Name of the instance scoping this request.",
96836	//       "location": "path",
96837	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96838	//       "required": true,
96839	//       "type": "string"
96840	//     },
96841	//     "project": {
96842	//       "description": "Project ID for this request.",
96843	//       "location": "path",
96844	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96845	//       "required": true,
96846	//       "type": "string"
96847	//     },
96848	//     "requestId": {
96849	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96850	//       "location": "query",
96851	//       "type": "string"
96852	//     },
96853	//     "zone": {
96854	//       "description": "The name of the zone for this request.",
96855	//       "location": "path",
96856	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96857	//       "required": true,
96858	//       "type": "string"
96859	//     }
96860	//   },
96861	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
96862	//   "request": {
96863	//     "$ref": "InstancesSetMinCpuPlatformRequest"
96864	//   },
96865	//   "response": {
96866	//     "$ref": "Operation"
96867	//   },
96868	//   "scopes": [
96869	//     "https://www.googleapis.com/auth/cloud-platform",
96870	//     "https://www.googleapis.com/auth/compute"
96871	//   ]
96872	// }
96873
96874}
96875
96876// method id "compute.instances.setName":
96877
96878type InstancesSetNameCall struct {
96879	s                       *Service
96880	project                 string
96881	zone                    string
96882	instance                string
96883	instancessetnamerequest *InstancesSetNameRequest
96884	urlParams_              gensupport.URLParams
96885	ctx_                    context.Context
96886	header_                 http.Header
96887}
96888
96889// SetName: Sets name of an instance.
96890//
96891// - instance: The instance name for this request.
96892// - project: Project ID for this request.
96893// - zone: The name of the zone for this request.
96894func (r *InstancesService) SetName(project string, zone string, instance string, instancessetnamerequest *InstancesSetNameRequest) *InstancesSetNameCall {
96895	c := &InstancesSetNameCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96896	c.project = project
96897	c.zone = zone
96898	c.instance = instance
96899	c.instancessetnamerequest = instancessetnamerequest
96900	return c
96901}
96902
96903// RequestId sets the optional parameter "requestId": An optional
96904// request ID to identify requests. Specify a unique request ID so that
96905// if you must retry your request, the server will know to ignore the
96906// request if it has already been completed.
96907//
96908// For example, consider a situation where you make an initial request
96909// and the request times out. If you make the request again with the
96910// same request ID, the server can check if original operation with the
96911// same request ID was received, and if so, will ignore the second
96912// request. This prevents clients from accidentally creating duplicate
96913// commitments.
96914//
96915// The request ID must be a valid UUID with the exception that zero UUID
96916// is not supported (00000000-0000-0000-0000-000000000000).
96917func (c *InstancesSetNameCall) RequestId(requestId string) *InstancesSetNameCall {
96918	c.urlParams_.Set("requestId", requestId)
96919	return c
96920}
96921
96922// Fields allows partial responses to be retrieved. See
96923// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96924// for more information.
96925func (c *InstancesSetNameCall) Fields(s ...googleapi.Field) *InstancesSetNameCall {
96926	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96927	return c
96928}
96929
96930// Context sets the context to be used in this call's Do method. Any
96931// pending HTTP request will be aborted if the provided context is
96932// canceled.
96933func (c *InstancesSetNameCall) Context(ctx context.Context) *InstancesSetNameCall {
96934	c.ctx_ = ctx
96935	return c
96936}
96937
96938// Header returns an http.Header that can be modified by the caller to
96939// add HTTP headers to the request.
96940func (c *InstancesSetNameCall) Header() http.Header {
96941	if c.header_ == nil {
96942		c.header_ = make(http.Header)
96943	}
96944	return c.header_
96945}
96946
96947func (c *InstancesSetNameCall) doRequest(alt string) (*http.Response, error) {
96948	reqHeaders := make(http.Header)
96949	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96950	for k, v := range c.header_ {
96951		reqHeaders[k] = v
96952	}
96953	reqHeaders.Set("User-Agent", c.s.userAgent())
96954	var body io.Reader = nil
96955	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetnamerequest)
96956	if err != nil {
96957		return nil, err
96958	}
96959	reqHeaders.Set("Content-Type", "application/json")
96960	c.urlParams_.Set("alt", alt)
96961	c.urlParams_.Set("prettyPrint", "false")
96962	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setName")
96963	urls += "?" + c.urlParams_.Encode()
96964	req, err := http.NewRequest("POST", urls, body)
96965	if err != nil {
96966		return nil, err
96967	}
96968	req.Header = reqHeaders
96969	googleapi.Expand(req.URL, map[string]string{
96970		"project":  c.project,
96971		"zone":     c.zone,
96972		"instance": c.instance,
96973	})
96974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96975}
96976
96977// Do executes the "compute.instances.setName" call.
96978// Exactly one of *Operation or error will be non-nil. Any non-2xx
96979// status code is an error. Response headers are in either
96980// *Operation.ServerResponse.Header or (if a response was returned at
96981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96982// to check whether the returned error was because
96983// http.StatusNotModified was returned.
96984func (c *InstancesSetNameCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96985	gensupport.SetOptions(c.urlParams_, opts...)
96986	res, err := c.doRequest("json")
96987	if res != nil && res.StatusCode == http.StatusNotModified {
96988		if res.Body != nil {
96989			res.Body.Close()
96990		}
96991		return nil, &googleapi.Error{
96992			Code:   res.StatusCode,
96993			Header: res.Header,
96994		}
96995	}
96996	if err != nil {
96997		return nil, err
96998	}
96999	defer googleapi.CloseBody(res)
97000	if err := googleapi.CheckResponse(res); err != nil {
97001		return nil, err
97002	}
97003	ret := &Operation{
97004		ServerResponse: googleapi.ServerResponse{
97005			Header:         res.Header,
97006			HTTPStatusCode: res.StatusCode,
97007		},
97008	}
97009	target := &ret
97010	if err := gensupport.DecodeResponse(target, res); err != nil {
97011		return nil, err
97012	}
97013	return ret, nil
97014	// {
97015	//   "description": "Sets name of an instance.",
97016	//   "httpMethod": "POST",
97017	//   "id": "compute.instances.setName",
97018	//   "parameterOrder": [
97019	//     "project",
97020	//     "zone",
97021	//     "instance"
97022	//   ],
97023	//   "parameters": {
97024	//     "instance": {
97025	//       "description": "The instance name for this request.",
97026	//       "location": "path",
97027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97028	//       "required": true,
97029	//       "type": "string"
97030	//     },
97031	//     "project": {
97032	//       "description": "Project ID for this request.",
97033	//       "location": "path",
97034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97035	//       "required": true,
97036	//       "type": "string"
97037	//     },
97038	//     "requestId": {
97039	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97040	//       "location": "query",
97041	//       "type": "string"
97042	//     },
97043	//     "zone": {
97044	//       "description": "The name of the zone for this request.",
97045	//       "location": "path",
97046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97047	//       "required": true,
97048	//       "type": "string"
97049	//     }
97050	//   },
97051	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setName",
97052	//   "request": {
97053	//     "$ref": "InstancesSetNameRequest"
97054	//   },
97055	//   "response": {
97056	//     "$ref": "Operation"
97057	//   },
97058	//   "scopes": [
97059	//     "https://www.googleapis.com/auth/cloud-platform",
97060	//     "https://www.googleapis.com/auth/compute"
97061	//   ]
97062	// }
97063
97064}
97065
97066// method id "compute.instances.setScheduling":
97067
97068type InstancesSetSchedulingCall struct {
97069	s          *Service
97070	project    string
97071	zone       string
97072	instance   string
97073	scheduling *Scheduling
97074	urlParams_ gensupport.URLParams
97075	ctx_       context.Context
97076	header_    http.Header
97077}
97078
97079// SetScheduling: Sets an instance's scheduling options. You can only
97080// call this method on a stopped instance, that is, a VM instance that
97081// is in a `TERMINATED` state. See Instance Life Cycle for more
97082// information on the possible instance states.
97083//
97084// - instance: Instance name for this request.
97085// - project: Project ID for this request.
97086// - zone: The name of the zone for this request.
97087// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
97088func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
97089	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97090	c.project = project
97091	c.zone = zone
97092	c.instance = instance
97093	c.scheduling = scheduling
97094	return c
97095}
97096
97097// RequestId sets the optional parameter "requestId": An optional
97098// request ID to identify requests. Specify a unique request ID so that
97099// if you must retry your request, the server will know to ignore the
97100// request if it has already been completed.
97101//
97102// For example, consider a situation where you make an initial request
97103// and the request times out. If you make the request again with the
97104// same request ID, the server can check if original operation with the
97105// same request ID was received, and if so, will ignore the second
97106// request. This prevents clients from accidentally creating duplicate
97107// commitments.
97108//
97109// The request ID must be a valid UUID with the exception that zero UUID
97110// is not supported (00000000-0000-0000-0000-000000000000).
97111func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
97112	c.urlParams_.Set("requestId", requestId)
97113	return c
97114}
97115
97116// Fields allows partial responses to be retrieved. See
97117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97118// for more information.
97119func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
97120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97121	return c
97122}
97123
97124// Context sets the context to be used in this call's Do method. Any
97125// pending HTTP request will be aborted if the provided context is
97126// canceled.
97127func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
97128	c.ctx_ = ctx
97129	return c
97130}
97131
97132// Header returns an http.Header that can be modified by the caller to
97133// add HTTP headers to the request.
97134func (c *InstancesSetSchedulingCall) Header() http.Header {
97135	if c.header_ == nil {
97136		c.header_ = make(http.Header)
97137	}
97138	return c.header_
97139}
97140
97141func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
97142	reqHeaders := make(http.Header)
97143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97144	for k, v := range c.header_ {
97145		reqHeaders[k] = v
97146	}
97147	reqHeaders.Set("User-Agent", c.s.userAgent())
97148	var body io.Reader = nil
97149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
97150	if err != nil {
97151		return nil, err
97152	}
97153	reqHeaders.Set("Content-Type", "application/json")
97154	c.urlParams_.Set("alt", alt)
97155	c.urlParams_.Set("prettyPrint", "false")
97156	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setScheduling")
97157	urls += "?" + c.urlParams_.Encode()
97158	req, err := http.NewRequest("POST", urls, body)
97159	if err != nil {
97160		return nil, err
97161	}
97162	req.Header = reqHeaders
97163	googleapi.Expand(req.URL, map[string]string{
97164		"project":  c.project,
97165		"zone":     c.zone,
97166		"instance": c.instance,
97167	})
97168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97169}
97170
97171// Do executes the "compute.instances.setScheduling" call.
97172// Exactly one of *Operation or error will be non-nil. Any non-2xx
97173// status code is an error. Response headers are in either
97174// *Operation.ServerResponse.Header or (if a response was returned at
97175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97176// to check whether the returned error was because
97177// http.StatusNotModified was returned.
97178func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97179	gensupport.SetOptions(c.urlParams_, opts...)
97180	res, err := c.doRequest("json")
97181	if res != nil && res.StatusCode == http.StatusNotModified {
97182		if res.Body != nil {
97183			res.Body.Close()
97184		}
97185		return nil, &googleapi.Error{
97186			Code:   res.StatusCode,
97187			Header: res.Header,
97188		}
97189	}
97190	if err != nil {
97191		return nil, err
97192	}
97193	defer googleapi.CloseBody(res)
97194	if err := googleapi.CheckResponse(res); err != nil {
97195		return nil, err
97196	}
97197	ret := &Operation{
97198		ServerResponse: googleapi.ServerResponse{
97199			Header:         res.Header,
97200			HTTPStatusCode: res.StatusCode,
97201		},
97202	}
97203	target := &ret
97204	if err := gensupport.DecodeResponse(target, res); err != nil {
97205		return nil, err
97206	}
97207	return ret, nil
97208	// {
97209	//   "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.",
97210	//   "httpMethod": "POST",
97211	//   "id": "compute.instances.setScheduling",
97212	//   "parameterOrder": [
97213	//     "project",
97214	//     "zone",
97215	//     "instance"
97216	//   ],
97217	//   "parameters": {
97218	//     "instance": {
97219	//       "description": "Instance name for this request.",
97220	//       "location": "path",
97221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97222	//       "required": true,
97223	//       "type": "string"
97224	//     },
97225	//     "project": {
97226	//       "description": "Project ID for this request.",
97227	//       "location": "path",
97228	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97229	//       "required": true,
97230	//       "type": "string"
97231	//     },
97232	//     "requestId": {
97233	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97234	//       "location": "query",
97235	//       "type": "string"
97236	//     },
97237	//     "zone": {
97238	//       "description": "The name of the zone for this request.",
97239	//       "location": "path",
97240	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97241	//       "required": true,
97242	//       "type": "string"
97243	//     }
97244	//   },
97245	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling",
97246	//   "request": {
97247	//     "$ref": "Scheduling"
97248	//   },
97249	//   "response": {
97250	//     "$ref": "Operation"
97251	//   },
97252	//   "scopes": [
97253	//     "https://www.googleapis.com/auth/cloud-platform",
97254	//     "https://www.googleapis.com/auth/compute"
97255	//   ]
97256	// }
97257
97258}
97259
97260// method id "compute.instances.setServiceAccount":
97261
97262type InstancesSetServiceAccountCall struct {
97263	s                                 *Service
97264	project                           string
97265	zone                              string
97266	instance                          string
97267	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
97268	urlParams_                        gensupport.URLParams
97269	ctx_                              context.Context
97270	header_                           http.Header
97271}
97272
97273// SetServiceAccount: Sets the service account on the instance. For more
97274// information, read Changing the service account and access scopes for
97275// an instance.
97276//
97277// - instance: Name of the instance resource to start.
97278// - project: Project ID for this request.
97279// - zone: The name of the zone for this request.
97280func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
97281	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97282	c.project = project
97283	c.zone = zone
97284	c.instance = instance
97285	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
97286	return c
97287}
97288
97289// RequestId sets the optional parameter "requestId": An optional
97290// request ID to identify requests. Specify a unique request ID so that
97291// if you must retry your request, the server will know to ignore the
97292// request if it has already been completed.
97293//
97294// For example, consider a situation where you make an initial request
97295// and the request times out. If you make the request again with the
97296// same request ID, the server can check if original operation with the
97297// same request ID was received, and if so, will ignore the second
97298// request. This prevents clients from accidentally creating duplicate
97299// commitments.
97300//
97301// The request ID must be a valid UUID with the exception that zero UUID
97302// is not supported (00000000-0000-0000-0000-000000000000).
97303func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
97304	c.urlParams_.Set("requestId", requestId)
97305	return c
97306}
97307
97308// Fields allows partial responses to be retrieved. See
97309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97310// for more information.
97311func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
97312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97313	return c
97314}
97315
97316// Context sets the context to be used in this call's Do method. Any
97317// pending HTTP request will be aborted if the provided context is
97318// canceled.
97319func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
97320	c.ctx_ = ctx
97321	return c
97322}
97323
97324// Header returns an http.Header that can be modified by the caller to
97325// add HTTP headers to the request.
97326func (c *InstancesSetServiceAccountCall) Header() http.Header {
97327	if c.header_ == nil {
97328		c.header_ = make(http.Header)
97329	}
97330	return c.header_
97331}
97332
97333func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
97334	reqHeaders := make(http.Header)
97335	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97336	for k, v := range c.header_ {
97337		reqHeaders[k] = v
97338	}
97339	reqHeaders.Set("User-Agent", c.s.userAgent())
97340	var body io.Reader = nil
97341	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
97342	if err != nil {
97343		return nil, err
97344	}
97345	reqHeaders.Set("Content-Type", "application/json")
97346	c.urlParams_.Set("alt", alt)
97347	c.urlParams_.Set("prettyPrint", "false")
97348	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount")
97349	urls += "?" + c.urlParams_.Encode()
97350	req, err := http.NewRequest("POST", urls, body)
97351	if err != nil {
97352		return nil, err
97353	}
97354	req.Header = reqHeaders
97355	googleapi.Expand(req.URL, map[string]string{
97356		"project":  c.project,
97357		"zone":     c.zone,
97358		"instance": c.instance,
97359	})
97360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97361}
97362
97363// Do executes the "compute.instances.setServiceAccount" call.
97364// Exactly one of *Operation or error will be non-nil. Any non-2xx
97365// status code is an error. Response headers are in either
97366// *Operation.ServerResponse.Header or (if a response was returned at
97367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97368// to check whether the returned error was because
97369// http.StatusNotModified was returned.
97370func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97371	gensupport.SetOptions(c.urlParams_, opts...)
97372	res, err := c.doRequest("json")
97373	if res != nil && res.StatusCode == http.StatusNotModified {
97374		if res.Body != nil {
97375			res.Body.Close()
97376		}
97377		return nil, &googleapi.Error{
97378			Code:   res.StatusCode,
97379			Header: res.Header,
97380		}
97381	}
97382	if err != nil {
97383		return nil, err
97384	}
97385	defer googleapi.CloseBody(res)
97386	if err := googleapi.CheckResponse(res); err != nil {
97387		return nil, err
97388	}
97389	ret := &Operation{
97390		ServerResponse: googleapi.ServerResponse{
97391			Header:         res.Header,
97392			HTTPStatusCode: res.StatusCode,
97393		},
97394	}
97395	target := &ret
97396	if err := gensupport.DecodeResponse(target, res); err != nil {
97397		return nil, err
97398	}
97399	return ret, nil
97400	// {
97401	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
97402	//   "httpMethod": "POST",
97403	//   "id": "compute.instances.setServiceAccount",
97404	//   "parameterOrder": [
97405	//     "project",
97406	//     "zone",
97407	//     "instance"
97408	//   ],
97409	//   "parameters": {
97410	//     "instance": {
97411	//       "description": "Name of the instance resource to start.",
97412	//       "location": "path",
97413	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97414	//       "required": true,
97415	//       "type": "string"
97416	//     },
97417	//     "project": {
97418	//       "description": "Project ID for this request.",
97419	//       "location": "path",
97420	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97421	//       "required": true,
97422	//       "type": "string"
97423	//     },
97424	//     "requestId": {
97425	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97426	//       "location": "query",
97427	//       "type": "string"
97428	//     },
97429	//     "zone": {
97430	//       "description": "The name of the zone for this request.",
97431	//       "location": "path",
97432	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97433	//       "required": true,
97434	//       "type": "string"
97435	//     }
97436	//   },
97437	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
97438	//   "request": {
97439	//     "$ref": "InstancesSetServiceAccountRequest"
97440	//   },
97441	//   "response": {
97442	//     "$ref": "Operation"
97443	//   },
97444	//   "scopes": [
97445	//     "https://www.googleapis.com/auth/cloud-platform",
97446	//     "https://www.googleapis.com/auth/compute"
97447	//   ]
97448	// }
97449
97450}
97451
97452// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
97453
97454type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
97455	s                               *Service
97456	project                         string
97457	zone                            string
97458	instance                        string
97459	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
97460	urlParams_                      gensupport.URLParams
97461	ctx_                            context.Context
97462	header_                         http.Header
97463}
97464
97465// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
97466// integrity policy for an instance. You can only use this method on a
97467// running instance. This method supports PATCH semantics and uses the
97468// JSON merge patch format and processing rules.
97469//
97470// - instance: Name or id of the instance scoping this request.
97471// - project: Project ID for this request.
97472// - zone: The name of the zone for this request.
97473func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
97474	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97475	c.project = project
97476	c.zone = zone
97477	c.instance = instance
97478	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
97479	return c
97480}
97481
97482// RequestId sets the optional parameter "requestId": An optional
97483// request ID to identify requests. Specify a unique request ID so that
97484// if you must retry your request, the server will know to ignore the
97485// request if it has already been completed.
97486//
97487// For example, consider a situation where you make an initial request
97488// and the request times out. If you make the request again with the
97489// same request ID, the server can check if original operation with the
97490// same request ID was received, and if so, will ignore the second
97491// request. This prevents clients from accidentally creating duplicate
97492// commitments.
97493//
97494// The request ID must be a valid UUID with the exception that zero UUID
97495// is not supported (00000000-0000-0000-0000-000000000000).
97496func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
97497	c.urlParams_.Set("requestId", requestId)
97498	return c
97499}
97500
97501// Fields allows partial responses to be retrieved. See
97502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97503// for more information.
97504func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
97505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97506	return c
97507}
97508
97509// Context sets the context to be used in this call's Do method. Any
97510// pending HTTP request will be aborted if the provided context is
97511// canceled.
97512func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
97513	c.ctx_ = ctx
97514	return c
97515}
97516
97517// Header returns an http.Header that can be modified by the caller to
97518// add HTTP headers to the request.
97519func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
97520	if c.header_ == nil {
97521		c.header_ = make(http.Header)
97522	}
97523	return c.header_
97524}
97525
97526func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
97527	reqHeaders := make(http.Header)
97528	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97529	for k, v := range c.header_ {
97530		reqHeaders[k] = v
97531	}
97532	reqHeaders.Set("User-Agent", c.s.userAgent())
97533	var body io.Reader = nil
97534	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
97535	if err != nil {
97536		return nil, err
97537	}
97538	reqHeaders.Set("Content-Type", "application/json")
97539	c.urlParams_.Set("alt", alt)
97540	c.urlParams_.Set("prettyPrint", "false")
97541	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
97542	urls += "?" + c.urlParams_.Encode()
97543	req, err := http.NewRequest("PATCH", urls, body)
97544	if err != nil {
97545		return nil, err
97546	}
97547	req.Header = reqHeaders
97548	googleapi.Expand(req.URL, map[string]string{
97549		"project":  c.project,
97550		"zone":     c.zone,
97551		"instance": c.instance,
97552	})
97553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97554}
97555
97556// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
97557// Exactly one of *Operation or error will be non-nil. Any non-2xx
97558// status code is an error. Response headers are in either
97559// *Operation.ServerResponse.Header or (if a response was returned at
97560// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97561// to check whether the returned error was because
97562// http.StatusNotModified was returned.
97563func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97564	gensupport.SetOptions(c.urlParams_, opts...)
97565	res, err := c.doRequest("json")
97566	if res != nil && res.StatusCode == http.StatusNotModified {
97567		if res.Body != nil {
97568			res.Body.Close()
97569		}
97570		return nil, &googleapi.Error{
97571			Code:   res.StatusCode,
97572			Header: res.Header,
97573		}
97574	}
97575	if err != nil {
97576		return nil, err
97577	}
97578	defer googleapi.CloseBody(res)
97579	if err := googleapi.CheckResponse(res); err != nil {
97580		return nil, err
97581	}
97582	ret := &Operation{
97583		ServerResponse: googleapi.ServerResponse{
97584			Header:         res.Header,
97585			HTTPStatusCode: res.StatusCode,
97586		},
97587	}
97588	target := &ret
97589	if err := gensupport.DecodeResponse(target, res); err != nil {
97590		return nil, err
97591	}
97592	return ret, nil
97593	// {
97594	//   "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.",
97595	//   "httpMethod": "PATCH",
97596	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
97597	//   "parameterOrder": [
97598	//     "project",
97599	//     "zone",
97600	//     "instance"
97601	//   ],
97602	//   "parameters": {
97603	//     "instance": {
97604	//       "description": "Name or id of the instance scoping this request.",
97605	//       "location": "path",
97606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97607	//       "required": true,
97608	//       "type": "string"
97609	//     },
97610	//     "project": {
97611	//       "description": "Project ID for this request.",
97612	//       "location": "path",
97613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97614	//       "required": true,
97615	//       "type": "string"
97616	//     },
97617	//     "requestId": {
97618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97619	//       "location": "query",
97620	//       "type": "string"
97621	//     },
97622	//     "zone": {
97623	//       "description": "The name of the zone for this request.",
97624	//       "location": "path",
97625	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97626	//       "required": true,
97627	//       "type": "string"
97628	//     }
97629	//   },
97630	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
97631	//   "request": {
97632	//     "$ref": "ShieldedInstanceIntegrityPolicy"
97633	//   },
97634	//   "response": {
97635	//     "$ref": "Operation"
97636	//   },
97637	//   "scopes": [
97638	//     "https://www.googleapis.com/auth/cloud-platform",
97639	//     "https://www.googleapis.com/auth/compute"
97640	//   ]
97641	// }
97642
97643}
97644
97645// method id "compute.instances.setShieldedVmIntegrityPolicy":
97646
97647type InstancesSetShieldedVmIntegrityPolicyCall struct {
97648	s                         *Service
97649	project                   string
97650	zone                      string
97651	instance                  string
97652	shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy
97653	urlParams_                gensupport.URLParams
97654	ctx_                      context.Context
97655	header_                   http.Header
97656}
97657
97658// SetShieldedVmIntegrityPolicy: Sets the Shielded VM integrity policy
97659// for a VM instance. You can only use this method on a running VM
97660// instance. This method supports PATCH semantics and uses the JSON
97661// merge patch format and processing rules.
97662//
97663// - instance: Name of the instance scoping this request.
97664// - project: Project ID for this request.
97665// - zone: The name of the zone for this request.
97666func (r *InstancesService) SetShieldedVmIntegrityPolicy(project string, zone string, instance string, shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy) *InstancesSetShieldedVmIntegrityPolicyCall {
97667	c := &InstancesSetShieldedVmIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97668	c.project = project
97669	c.zone = zone
97670	c.instance = instance
97671	c.shieldedvmintegritypolicy = shieldedvmintegritypolicy
97672	return c
97673}
97674
97675// RequestId sets the optional parameter "requestId": An optional
97676// request ID to identify requests. Specify a unique request ID so that
97677// if you must retry your request, the server will know to ignore the
97678// request if it has already been completed.
97679//
97680// For example, consider a situation where you make an initial request
97681// and the request times out. If you make the request again with the
97682// same request ID, the server can check if original operation with the
97683// same request ID was received, and if so, will ignore the second
97684// request. This prevents clients from accidentally creating duplicate
97685// commitments.
97686//
97687// The request ID must be a valid UUID with the exception that zero UUID
97688// is not supported (00000000-0000-0000-0000-000000000000).
97689func (c *InstancesSetShieldedVmIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedVmIntegrityPolicyCall {
97690	c.urlParams_.Set("requestId", requestId)
97691	return c
97692}
97693
97694// Fields allows partial responses to be retrieved. See
97695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97696// for more information.
97697func (c *InstancesSetShieldedVmIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedVmIntegrityPolicyCall {
97698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97699	return c
97700}
97701
97702// Context sets the context to be used in this call's Do method. Any
97703// pending HTTP request will be aborted if the provided context is
97704// canceled.
97705func (c *InstancesSetShieldedVmIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedVmIntegrityPolicyCall {
97706	c.ctx_ = ctx
97707	return c
97708}
97709
97710// Header returns an http.Header that can be modified by the caller to
97711// add HTTP headers to the request.
97712func (c *InstancesSetShieldedVmIntegrityPolicyCall) Header() http.Header {
97713	if c.header_ == nil {
97714		c.header_ = make(http.Header)
97715	}
97716	return c.header_
97717}
97718
97719func (c *InstancesSetShieldedVmIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
97720	reqHeaders := make(http.Header)
97721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97722	for k, v := range c.header_ {
97723		reqHeaders[k] = v
97724	}
97725	reqHeaders.Set("User-Agent", c.s.userAgent())
97726	var body io.Reader = nil
97727	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmintegritypolicy)
97728	if err != nil {
97729		return nil, err
97730	}
97731	reqHeaders.Set("Content-Type", "application/json")
97732	c.urlParams_.Set("alt", alt)
97733	c.urlParams_.Set("prettyPrint", "false")
97734	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy")
97735	urls += "?" + c.urlParams_.Encode()
97736	req, err := http.NewRequest("PATCH", urls, body)
97737	if err != nil {
97738		return nil, err
97739	}
97740	req.Header = reqHeaders
97741	googleapi.Expand(req.URL, map[string]string{
97742		"project":  c.project,
97743		"zone":     c.zone,
97744		"instance": c.instance,
97745	})
97746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97747}
97748
97749// Do executes the "compute.instances.setShieldedVmIntegrityPolicy" call.
97750// Exactly one of *Operation or error will be non-nil. Any non-2xx
97751// status code is an error. Response headers are in either
97752// *Operation.ServerResponse.Header or (if a response was returned at
97753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97754// to check whether the returned error was because
97755// http.StatusNotModified was returned.
97756func (c *InstancesSetShieldedVmIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97757	gensupport.SetOptions(c.urlParams_, opts...)
97758	res, err := c.doRequest("json")
97759	if res != nil && res.StatusCode == http.StatusNotModified {
97760		if res.Body != nil {
97761			res.Body.Close()
97762		}
97763		return nil, &googleapi.Error{
97764			Code:   res.StatusCode,
97765			Header: res.Header,
97766		}
97767	}
97768	if err != nil {
97769		return nil, err
97770	}
97771	defer googleapi.CloseBody(res)
97772	if err := googleapi.CheckResponse(res); err != nil {
97773		return nil, err
97774	}
97775	ret := &Operation{
97776		ServerResponse: googleapi.ServerResponse{
97777			Header:         res.Header,
97778			HTTPStatusCode: res.StatusCode,
97779		},
97780	}
97781	target := &ret
97782	if err := gensupport.DecodeResponse(target, res); err != nil {
97783		return nil, err
97784	}
97785	return ret, nil
97786	// {
97787	//   "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.",
97788	//   "httpMethod": "PATCH",
97789	//   "id": "compute.instances.setShieldedVmIntegrityPolicy",
97790	//   "parameterOrder": [
97791	//     "project",
97792	//     "zone",
97793	//     "instance"
97794	//   ],
97795	//   "parameters": {
97796	//     "instance": {
97797	//       "description": "Name of the instance scoping this request.",
97798	//       "location": "path",
97799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97800	//       "required": true,
97801	//       "type": "string"
97802	//     },
97803	//     "project": {
97804	//       "description": "Project ID for this request.",
97805	//       "location": "path",
97806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97807	//       "required": true,
97808	//       "type": "string"
97809	//     },
97810	//     "requestId": {
97811	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97812	//       "location": "query",
97813	//       "type": "string"
97814	//     },
97815	//     "zone": {
97816	//       "description": "The name of the zone for this request.",
97817	//       "location": "path",
97818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97819	//       "required": true,
97820	//       "type": "string"
97821	//     }
97822	//   },
97823	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy",
97824	//   "request": {
97825	//     "$ref": "ShieldedVmIntegrityPolicy"
97826	//   },
97827	//   "response": {
97828	//     "$ref": "Operation"
97829	//   },
97830	//   "scopes": [
97831	//     "https://www.googleapis.com/auth/cloud-platform",
97832	//     "https://www.googleapis.com/auth/compute"
97833	//   ]
97834	// }
97835
97836}
97837
97838// method id "compute.instances.setTags":
97839
97840type InstancesSetTagsCall struct {
97841	s          *Service
97842	project    string
97843	zone       string
97844	instance   string
97845	tags       *Tags
97846	urlParams_ gensupport.URLParams
97847	ctx_       context.Context
97848	header_    http.Header
97849}
97850
97851// SetTags: Sets network tags for the specified instance to the data
97852// included in the request.
97853//
97854// - instance: Name of the instance scoping this request.
97855// - project: Project ID for this request.
97856// - zone: The name of the zone for this request.
97857// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
97858func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
97859	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97860	c.project = project
97861	c.zone = zone
97862	c.instance = instance
97863	c.tags = tags
97864	return c
97865}
97866
97867// RequestId sets the optional parameter "requestId": An optional
97868// request ID to identify requests. Specify a unique request ID so that
97869// if you must retry your request, the server will know to ignore the
97870// request if it has already been completed.
97871//
97872// For example, consider a situation where you make an initial request
97873// and the request times out. If you make the request again with the
97874// same request ID, the server can check if original operation with the
97875// same request ID was received, and if so, will ignore the second
97876// request. This prevents clients from accidentally creating duplicate
97877// commitments.
97878//
97879// The request ID must be a valid UUID with the exception that zero UUID
97880// is not supported (00000000-0000-0000-0000-000000000000).
97881func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
97882	c.urlParams_.Set("requestId", requestId)
97883	return c
97884}
97885
97886// Fields allows partial responses to be retrieved. See
97887// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97888// for more information.
97889func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
97890	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97891	return c
97892}
97893
97894// Context sets the context to be used in this call's Do method. Any
97895// pending HTTP request will be aborted if the provided context is
97896// canceled.
97897func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
97898	c.ctx_ = ctx
97899	return c
97900}
97901
97902// Header returns an http.Header that can be modified by the caller to
97903// add HTTP headers to the request.
97904func (c *InstancesSetTagsCall) Header() http.Header {
97905	if c.header_ == nil {
97906		c.header_ = make(http.Header)
97907	}
97908	return c.header_
97909}
97910
97911func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
97912	reqHeaders := make(http.Header)
97913	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97914	for k, v := range c.header_ {
97915		reqHeaders[k] = v
97916	}
97917	reqHeaders.Set("User-Agent", c.s.userAgent())
97918	var body io.Reader = nil
97919	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
97920	if err != nil {
97921		return nil, err
97922	}
97923	reqHeaders.Set("Content-Type", "application/json")
97924	c.urlParams_.Set("alt", alt)
97925	c.urlParams_.Set("prettyPrint", "false")
97926	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setTags")
97927	urls += "?" + c.urlParams_.Encode()
97928	req, err := http.NewRequest("POST", urls, body)
97929	if err != nil {
97930		return nil, err
97931	}
97932	req.Header = reqHeaders
97933	googleapi.Expand(req.URL, map[string]string{
97934		"project":  c.project,
97935		"zone":     c.zone,
97936		"instance": c.instance,
97937	})
97938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97939}
97940
97941// Do executes the "compute.instances.setTags" call.
97942// Exactly one of *Operation or error will be non-nil. Any non-2xx
97943// status code is an error. Response headers are in either
97944// *Operation.ServerResponse.Header or (if a response was returned at
97945// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97946// to check whether the returned error was because
97947// http.StatusNotModified was returned.
97948func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97949	gensupport.SetOptions(c.urlParams_, opts...)
97950	res, err := c.doRequest("json")
97951	if res != nil && res.StatusCode == http.StatusNotModified {
97952		if res.Body != nil {
97953			res.Body.Close()
97954		}
97955		return nil, &googleapi.Error{
97956			Code:   res.StatusCode,
97957			Header: res.Header,
97958		}
97959	}
97960	if err != nil {
97961		return nil, err
97962	}
97963	defer googleapi.CloseBody(res)
97964	if err := googleapi.CheckResponse(res); err != nil {
97965		return nil, err
97966	}
97967	ret := &Operation{
97968		ServerResponse: googleapi.ServerResponse{
97969			Header:         res.Header,
97970			HTTPStatusCode: res.StatusCode,
97971		},
97972	}
97973	target := &ret
97974	if err := gensupport.DecodeResponse(target, res); err != nil {
97975		return nil, err
97976	}
97977	return ret, nil
97978	// {
97979	//   "description": "Sets network tags for the specified instance to the data included in the request.",
97980	//   "httpMethod": "POST",
97981	//   "id": "compute.instances.setTags",
97982	//   "parameterOrder": [
97983	//     "project",
97984	//     "zone",
97985	//     "instance"
97986	//   ],
97987	//   "parameters": {
97988	//     "instance": {
97989	//       "description": "Name of the instance scoping this request.",
97990	//       "location": "path",
97991	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97992	//       "required": true,
97993	//       "type": "string"
97994	//     },
97995	//     "project": {
97996	//       "description": "Project ID for this request.",
97997	//       "location": "path",
97998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97999	//       "required": true,
98000	//       "type": "string"
98001	//     },
98002	//     "requestId": {
98003	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98004	//       "location": "query",
98005	//       "type": "string"
98006	//     },
98007	//     "zone": {
98008	//       "description": "The name of the zone for this request.",
98009	//       "location": "path",
98010	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98011	//       "required": true,
98012	//       "type": "string"
98013	//     }
98014	//   },
98015	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
98016	//   "request": {
98017	//     "$ref": "Tags"
98018	//   },
98019	//   "response": {
98020	//     "$ref": "Operation"
98021	//   },
98022	//   "scopes": [
98023	//     "https://www.googleapis.com/auth/cloud-platform",
98024	//     "https://www.googleapis.com/auth/compute"
98025	//   ]
98026	// }
98027
98028}
98029
98030// method id "compute.instances.simulateMaintenanceEvent":
98031
98032type InstancesSimulateMaintenanceEventCall struct {
98033	s          *Service
98034	project    string
98035	zone       string
98036	instance   string
98037	urlParams_ gensupport.URLParams
98038	ctx_       context.Context
98039	header_    http.Header
98040}
98041
98042// SimulateMaintenanceEvent: Simulates a maintenance event on the
98043// instance.
98044//
98045// - instance: Name of the instance scoping this request.
98046// - project: Project ID for this request.
98047// - zone: The name of the zone for this request.
98048func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
98049	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98050	c.project = project
98051	c.zone = zone
98052	c.instance = instance
98053	return c
98054}
98055
98056// Fields allows partial responses to be retrieved. See
98057// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98058// for more information.
98059func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
98060	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98061	return c
98062}
98063
98064// Context sets the context to be used in this call's Do method. Any
98065// pending HTTP request will be aborted if the provided context is
98066// canceled.
98067func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
98068	c.ctx_ = ctx
98069	return c
98070}
98071
98072// Header returns an http.Header that can be modified by the caller to
98073// add HTTP headers to the request.
98074func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
98075	if c.header_ == nil {
98076		c.header_ = make(http.Header)
98077	}
98078	return c.header_
98079}
98080
98081func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
98082	reqHeaders := make(http.Header)
98083	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98084	for k, v := range c.header_ {
98085		reqHeaders[k] = v
98086	}
98087	reqHeaders.Set("User-Agent", c.s.userAgent())
98088	var body io.Reader = nil
98089	c.urlParams_.Set("alt", alt)
98090	c.urlParams_.Set("prettyPrint", "false")
98091	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
98092	urls += "?" + c.urlParams_.Encode()
98093	req, err := http.NewRequest("POST", urls, body)
98094	if err != nil {
98095		return nil, err
98096	}
98097	req.Header = reqHeaders
98098	googleapi.Expand(req.URL, map[string]string{
98099		"project":  c.project,
98100		"zone":     c.zone,
98101		"instance": c.instance,
98102	})
98103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98104}
98105
98106// Do executes the "compute.instances.simulateMaintenanceEvent" call.
98107// Exactly one of *Operation or error will be non-nil. Any non-2xx
98108// status code is an error. Response headers are in either
98109// *Operation.ServerResponse.Header or (if a response was returned at
98110// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98111// to check whether the returned error was because
98112// http.StatusNotModified was returned.
98113func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98114	gensupport.SetOptions(c.urlParams_, opts...)
98115	res, err := c.doRequest("json")
98116	if res != nil && res.StatusCode == http.StatusNotModified {
98117		if res.Body != nil {
98118			res.Body.Close()
98119		}
98120		return nil, &googleapi.Error{
98121			Code:   res.StatusCode,
98122			Header: res.Header,
98123		}
98124	}
98125	if err != nil {
98126		return nil, err
98127	}
98128	defer googleapi.CloseBody(res)
98129	if err := googleapi.CheckResponse(res); err != nil {
98130		return nil, err
98131	}
98132	ret := &Operation{
98133		ServerResponse: googleapi.ServerResponse{
98134			Header:         res.Header,
98135			HTTPStatusCode: res.StatusCode,
98136		},
98137	}
98138	target := &ret
98139	if err := gensupport.DecodeResponse(target, res); err != nil {
98140		return nil, err
98141	}
98142	return ret, nil
98143	// {
98144	//   "description": "Simulates a maintenance event on the instance.",
98145	//   "httpMethod": "POST",
98146	//   "id": "compute.instances.simulateMaintenanceEvent",
98147	//   "parameterOrder": [
98148	//     "project",
98149	//     "zone",
98150	//     "instance"
98151	//   ],
98152	//   "parameters": {
98153	//     "instance": {
98154	//       "description": "Name of the instance scoping this request.",
98155	//       "location": "path",
98156	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98157	//       "required": true,
98158	//       "type": "string"
98159	//     },
98160	//     "project": {
98161	//       "description": "Project ID for this request.",
98162	//       "location": "path",
98163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98164	//       "required": true,
98165	//       "type": "string"
98166	//     },
98167	//     "zone": {
98168	//       "description": "The name of the zone for this request.",
98169	//       "location": "path",
98170	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98171	//       "required": true,
98172	//       "type": "string"
98173	//     }
98174	//   },
98175	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
98176	//   "response": {
98177	//     "$ref": "Operation"
98178	//   },
98179	//   "scopes": [
98180	//     "https://www.googleapis.com/auth/cloud-platform",
98181	//     "https://www.googleapis.com/auth/compute"
98182	//   ]
98183	// }
98184
98185}
98186
98187// method id "compute.instances.start":
98188
98189type InstancesStartCall struct {
98190	s          *Service
98191	project    string
98192	zone       string
98193	instance   string
98194	urlParams_ gensupport.URLParams
98195	ctx_       context.Context
98196	header_    http.Header
98197}
98198
98199// Start: Starts an instance that was stopped using the instances().stop
98200// method. For more information, see Restart an instance.
98201//
98202// - instance: Name of the instance resource to start.
98203// - project: Project ID for this request.
98204// - zone: The name of the zone for this request.
98205// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
98206func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
98207	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98208	c.project = project
98209	c.zone = zone
98210	c.instance = instance
98211	return c
98212}
98213
98214// RequestId sets the optional parameter "requestId": An optional
98215// request ID to identify requests. Specify a unique request ID so that
98216// if you must retry your request, the server will know to ignore the
98217// request if it has already been completed.
98218//
98219// For example, consider a situation where you make an initial request
98220// and the request times out. If you make the request again with the
98221// same request ID, the server can check if original operation with the
98222// same request ID was received, and if so, will ignore the second
98223// request. This prevents clients from accidentally creating duplicate
98224// commitments.
98225//
98226// The request ID must be a valid UUID with the exception that zero UUID
98227// is not supported (00000000-0000-0000-0000-000000000000).
98228func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
98229	c.urlParams_.Set("requestId", requestId)
98230	return c
98231}
98232
98233// Fields allows partial responses to be retrieved. See
98234// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98235// for more information.
98236func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
98237	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98238	return c
98239}
98240
98241// Context sets the context to be used in this call's Do method. Any
98242// pending HTTP request will be aborted if the provided context is
98243// canceled.
98244func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
98245	c.ctx_ = ctx
98246	return c
98247}
98248
98249// Header returns an http.Header that can be modified by the caller to
98250// add HTTP headers to the request.
98251func (c *InstancesStartCall) Header() http.Header {
98252	if c.header_ == nil {
98253		c.header_ = make(http.Header)
98254	}
98255	return c.header_
98256}
98257
98258func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
98259	reqHeaders := make(http.Header)
98260	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98261	for k, v := range c.header_ {
98262		reqHeaders[k] = v
98263	}
98264	reqHeaders.Set("User-Agent", c.s.userAgent())
98265	var body io.Reader = nil
98266	c.urlParams_.Set("alt", alt)
98267	c.urlParams_.Set("prettyPrint", "false")
98268	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start")
98269	urls += "?" + c.urlParams_.Encode()
98270	req, err := http.NewRequest("POST", urls, body)
98271	if err != nil {
98272		return nil, err
98273	}
98274	req.Header = reqHeaders
98275	googleapi.Expand(req.URL, map[string]string{
98276		"project":  c.project,
98277		"zone":     c.zone,
98278		"instance": c.instance,
98279	})
98280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98281}
98282
98283// Do executes the "compute.instances.start" call.
98284// Exactly one of *Operation or error will be non-nil. Any non-2xx
98285// status code is an error. Response headers are in either
98286// *Operation.ServerResponse.Header or (if a response was returned at
98287// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98288// to check whether the returned error was because
98289// http.StatusNotModified was returned.
98290func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98291	gensupport.SetOptions(c.urlParams_, opts...)
98292	res, err := c.doRequest("json")
98293	if res != nil && res.StatusCode == http.StatusNotModified {
98294		if res.Body != nil {
98295			res.Body.Close()
98296		}
98297		return nil, &googleapi.Error{
98298			Code:   res.StatusCode,
98299			Header: res.Header,
98300		}
98301	}
98302	if err != nil {
98303		return nil, err
98304	}
98305	defer googleapi.CloseBody(res)
98306	if err := googleapi.CheckResponse(res); err != nil {
98307		return nil, err
98308	}
98309	ret := &Operation{
98310		ServerResponse: googleapi.ServerResponse{
98311			Header:         res.Header,
98312			HTTPStatusCode: res.StatusCode,
98313		},
98314	}
98315	target := &ret
98316	if err := gensupport.DecodeResponse(target, res); err != nil {
98317		return nil, err
98318	}
98319	return ret, nil
98320	// {
98321	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
98322	//   "httpMethod": "POST",
98323	//   "id": "compute.instances.start",
98324	//   "parameterOrder": [
98325	//     "project",
98326	//     "zone",
98327	//     "instance"
98328	//   ],
98329	//   "parameters": {
98330	//     "instance": {
98331	//       "description": "Name of the instance resource to start.",
98332	//       "location": "path",
98333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98334	//       "required": true,
98335	//       "type": "string"
98336	//     },
98337	//     "project": {
98338	//       "description": "Project ID for this request.",
98339	//       "location": "path",
98340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98341	//       "required": true,
98342	//       "type": "string"
98343	//     },
98344	//     "requestId": {
98345	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98346	//       "location": "query",
98347	//       "type": "string"
98348	//     },
98349	//     "zone": {
98350	//       "description": "The name of the zone for this request.",
98351	//       "location": "path",
98352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98353	//       "required": true,
98354	//       "type": "string"
98355	//     }
98356	//   },
98357	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/start",
98358	//   "response": {
98359	//     "$ref": "Operation"
98360	//   },
98361	//   "scopes": [
98362	//     "https://www.googleapis.com/auth/cloud-platform",
98363	//     "https://www.googleapis.com/auth/compute"
98364	//   ]
98365	// }
98366
98367}
98368
98369// method id "compute.instances.startWithEncryptionKey":
98370
98371type InstancesStartWithEncryptionKeyCall struct {
98372	s                                      *Service
98373	project                                string
98374	zone                                   string
98375	instance                               string
98376	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
98377	urlParams_                             gensupport.URLParams
98378	ctx_                                   context.Context
98379	header_                                http.Header
98380}
98381
98382// StartWithEncryptionKey: Starts an instance that was stopped using the
98383// instances().stop method. For more information, see Restart an
98384// instance.
98385//
98386// - instance: Name of the instance resource to start.
98387// - project: Project ID for this request.
98388// - zone: The name of the zone for this request.
98389func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
98390	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98391	c.project = project
98392	c.zone = zone
98393	c.instance = instance
98394	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
98395	return c
98396}
98397
98398// RequestId sets the optional parameter "requestId": An optional
98399// request ID to identify requests. Specify a unique request ID so that
98400// if you must retry your request, the server will know to ignore the
98401// request if it has already been completed.
98402//
98403// For example, consider a situation where you make an initial request
98404// and the request times out. If you make the request again with the
98405// same request ID, the server can check if original operation with the
98406// same request ID was received, and if so, will ignore the second
98407// request. This prevents clients from accidentally creating duplicate
98408// commitments.
98409//
98410// The request ID must be a valid UUID with the exception that zero UUID
98411// is not supported (00000000-0000-0000-0000-000000000000).
98412func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
98413	c.urlParams_.Set("requestId", requestId)
98414	return c
98415}
98416
98417// Fields allows partial responses to be retrieved. See
98418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98419// for more information.
98420func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
98421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98422	return c
98423}
98424
98425// Context sets the context to be used in this call's Do method. Any
98426// pending HTTP request will be aborted if the provided context is
98427// canceled.
98428func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
98429	c.ctx_ = ctx
98430	return c
98431}
98432
98433// Header returns an http.Header that can be modified by the caller to
98434// add HTTP headers to the request.
98435func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
98436	if c.header_ == nil {
98437		c.header_ = make(http.Header)
98438	}
98439	return c.header_
98440}
98441
98442func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
98443	reqHeaders := make(http.Header)
98444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98445	for k, v := range c.header_ {
98446		reqHeaders[k] = v
98447	}
98448	reqHeaders.Set("User-Agent", c.s.userAgent())
98449	var body io.Reader = nil
98450	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
98451	if err != nil {
98452		return nil, err
98453	}
98454	reqHeaders.Set("Content-Type", "application/json")
98455	c.urlParams_.Set("alt", alt)
98456	c.urlParams_.Set("prettyPrint", "false")
98457	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
98458	urls += "?" + c.urlParams_.Encode()
98459	req, err := http.NewRequest("POST", urls, body)
98460	if err != nil {
98461		return nil, err
98462	}
98463	req.Header = reqHeaders
98464	googleapi.Expand(req.URL, map[string]string{
98465		"project":  c.project,
98466		"zone":     c.zone,
98467		"instance": c.instance,
98468	})
98469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98470}
98471
98472// Do executes the "compute.instances.startWithEncryptionKey" call.
98473// Exactly one of *Operation or error will be non-nil. Any non-2xx
98474// status code is an error. Response headers are in either
98475// *Operation.ServerResponse.Header or (if a response was returned at
98476// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98477// to check whether the returned error was because
98478// http.StatusNotModified was returned.
98479func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98480	gensupport.SetOptions(c.urlParams_, opts...)
98481	res, err := c.doRequest("json")
98482	if res != nil && res.StatusCode == http.StatusNotModified {
98483		if res.Body != nil {
98484			res.Body.Close()
98485		}
98486		return nil, &googleapi.Error{
98487			Code:   res.StatusCode,
98488			Header: res.Header,
98489		}
98490	}
98491	if err != nil {
98492		return nil, err
98493	}
98494	defer googleapi.CloseBody(res)
98495	if err := googleapi.CheckResponse(res); err != nil {
98496		return nil, err
98497	}
98498	ret := &Operation{
98499		ServerResponse: googleapi.ServerResponse{
98500			Header:         res.Header,
98501			HTTPStatusCode: res.StatusCode,
98502		},
98503	}
98504	target := &ret
98505	if err := gensupport.DecodeResponse(target, res); err != nil {
98506		return nil, err
98507	}
98508	return ret, nil
98509	// {
98510	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
98511	//   "httpMethod": "POST",
98512	//   "id": "compute.instances.startWithEncryptionKey",
98513	//   "parameterOrder": [
98514	//     "project",
98515	//     "zone",
98516	//     "instance"
98517	//   ],
98518	//   "parameters": {
98519	//     "instance": {
98520	//       "description": "Name of the instance resource to start.",
98521	//       "location": "path",
98522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98523	//       "required": true,
98524	//       "type": "string"
98525	//     },
98526	//     "project": {
98527	//       "description": "Project ID for this request.",
98528	//       "location": "path",
98529	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98530	//       "required": true,
98531	//       "type": "string"
98532	//     },
98533	//     "requestId": {
98534	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98535	//       "location": "query",
98536	//       "type": "string"
98537	//     },
98538	//     "zone": {
98539	//       "description": "The name of the zone for this request.",
98540	//       "location": "path",
98541	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98542	//       "required": true,
98543	//       "type": "string"
98544	//     }
98545	//   },
98546	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
98547	//   "request": {
98548	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
98549	//   },
98550	//   "response": {
98551	//     "$ref": "Operation"
98552	//   },
98553	//   "scopes": [
98554	//     "https://www.googleapis.com/auth/cloud-platform",
98555	//     "https://www.googleapis.com/auth/compute"
98556	//   ]
98557	// }
98558
98559}
98560
98561// method id "compute.instances.stop":
98562
98563type InstancesStopCall struct {
98564	s          *Service
98565	project    string
98566	zone       string
98567	instance   string
98568	urlParams_ gensupport.URLParams
98569	ctx_       context.Context
98570	header_    http.Header
98571}
98572
98573// Stop: Stops a running instance, shutting it down cleanly, and allows
98574// you to restart the instance at a later time. Stopped instances do not
98575// incur VM usage charges while they are stopped. However, resources
98576// that the VM is using, such as persistent disks and static IP
98577// addresses, will continue to be charged until they are deleted. For
98578// more information, see Stopping an instance.
98579//
98580// - instance: Name of the instance resource to stop.
98581// - project: Project ID for this request.
98582// - zone: The name of the zone for this request.
98583// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
98584func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
98585	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98586	c.project = project
98587	c.zone = zone
98588	c.instance = instance
98589	return c
98590}
98591
98592// RequestId sets the optional parameter "requestId": An optional
98593// request ID to identify requests. Specify a unique request ID so that
98594// if you must retry your request, the server will know to ignore the
98595// request if it has already been completed.
98596//
98597// For example, consider a situation where you make an initial request
98598// and the request times out. If you make the request again with the
98599// same request ID, the server can check if original operation with the
98600// same request ID was received, and if so, will ignore the second
98601// request. This prevents clients from accidentally creating duplicate
98602// commitments.
98603//
98604// The request ID must be a valid UUID with the exception that zero UUID
98605// is not supported (00000000-0000-0000-0000-000000000000).
98606func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
98607	c.urlParams_.Set("requestId", requestId)
98608	return c
98609}
98610
98611// Fields allows partial responses to be retrieved. See
98612// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98613// for more information.
98614func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
98615	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98616	return c
98617}
98618
98619// Context sets the context to be used in this call's Do method. Any
98620// pending HTTP request will be aborted if the provided context is
98621// canceled.
98622func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
98623	c.ctx_ = ctx
98624	return c
98625}
98626
98627// Header returns an http.Header that can be modified by the caller to
98628// add HTTP headers to the request.
98629func (c *InstancesStopCall) Header() http.Header {
98630	if c.header_ == nil {
98631		c.header_ = make(http.Header)
98632	}
98633	return c.header_
98634}
98635
98636func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
98637	reqHeaders := make(http.Header)
98638	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98639	for k, v := range c.header_ {
98640		reqHeaders[k] = v
98641	}
98642	reqHeaders.Set("User-Agent", c.s.userAgent())
98643	var body io.Reader = nil
98644	c.urlParams_.Set("alt", alt)
98645	c.urlParams_.Set("prettyPrint", "false")
98646	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/stop")
98647	urls += "?" + c.urlParams_.Encode()
98648	req, err := http.NewRequest("POST", urls, body)
98649	if err != nil {
98650		return nil, err
98651	}
98652	req.Header = reqHeaders
98653	googleapi.Expand(req.URL, map[string]string{
98654		"project":  c.project,
98655		"zone":     c.zone,
98656		"instance": c.instance,
98657	})
98658	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98659}
98660
98661// Do executes the "compute.instances.stop" call.
98662// Exactly one of *Operation or error will be non-nil. Any non-2xx
98663// status code is an error. Response headers are in either
98664// *Operation.ServerResponse.Header or (if a response was returned at
98665// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98666// to check whether the returned error was because
98667// http.StatusNotModified was returned.
98668func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98669	gensupport.SetOptions(c.urlParams_, opts...)
98670	res, err := c.doRequest("json")
98671	if res != nil && res.StatusCode == http.StatusNotModified {
98672		if res.Body != nil {
98673			res.Body.Close()
98674		}
98675		return nil, &googleapi.Error{
98676			Code:   res.StatusCode,
98677			Header: res.Header,
98678		}
98679	}
98680	if err != nil {
98681		return nil, err
98682	}
98683	defer googleapi.CloseBody(res)
98684	if err := googleapi.CheckResponse(res); err != nil {
98685		return nil, err
98686	}
98687	ret := &Operation{
98688		ServerResponse: googleapi.ServerResponse{
98689			Header:         res.Header,
98690			HTTPStatusCode: res.StatusCode,
98691		},
98692	}
98693	target := &ret
98694	if err := gensupport.DecodeResponse(target, res); err != nil {
98695		return nil, err
98696	}
98697	return ret, nil
98698	// {
98699	//   "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.",
98700	//   "httpMethod": "POST",
98701	//   "id": "compute.instances.stop",
98702	//   "parameterOrder": [
98703	//     "project",
98704	//     "zone",
98705	//     "instance"
98706	//   ],
98707	//   "parameters": {
98708	//     "instance": {
98709	//       "description": "Name of the instance resource to stop.",
98710	//       "location": "path",
98711	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98712	//       "required": true,
98713	//       "type": "string"
98714	//     },
98715	//     "project": {
98716	//       "description": "Project ID for this request.",
98717	//       "location": "path",
98718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98719	//       "required": true,
98720	//       "type": "string"
98721	//     },
98722	//     "requestId": {
98723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98724	//       "location": "query",
98725	//       "type": "string"
98726	//     },
98727	//     "zone": {
98728	//       "description": "The name of the zone for this request.",
98729	//       "location": "path",
98730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98731	//       "required": true,
98732	//       "type": "string"
98733	//     }
98734	//   },
98735	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/stop",
98736	//   "response": {
98737	//     "$ref": "Operation"
98738	//   },
98739	//   "scopes": [
98740	//     "https://www.googleapis.com/auth/cloud-platform",
98741	//     "https://www.googleapis.com/auth/compute"
98742	//   ]
98743	// }
98744
98745}
98746
98747// method id "compute.instances.suspend":
98748
98749type InstancesSuspendCall struct {
98750	s          *Service
98751	project    string
98752	zone       string
98753	instance   string
98754	urlParams_ gensupport.URLParams
98755	ctx_       context.Context
98756	header_    http.Header
98757}
98758
98759// Suspend: This method suspends a running instance, saving its state to
98760// persistent storage, and allows you to resume the instance at a later
98761// time. Suspended instances incur reduced per-minute, virtual machine
98762// usage charges while they are suspended. Any resources the virtual
98763// machine is using, such as persistent disks and static IP addresses,
98764// will continue to be charged until they are deleted.
98765//
98766// - instance: Name of the instance resource to suspend.
98767// - project: Project ID for this request.
98768// - zone: The name of the zone for this request.
98769func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall {
98770	c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98771	c.project = project
98772	c.zone = zone
98773	c.instance = instance
98774	return c
98775}
98776
98777// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
98778// true, discard the contents of any attached localSSD partitions.
98779// Default value is false (== preserve localSSD data).
98780func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall {
98781	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
98782	return c
98783}
98784
98785// RequestId sets the optional parameter "requestId": An optional
98786// request ID to identify requests. Specify a unique request ID so that
98787// if you must retry your request, the server will know to ignore the
98788// request if it has already been completed.
98789//
98790// For example, consider a situation where you make an initial request
98791// and the request times out. If you make the request again with the
98792// same request ID, the server can check if original operation with the
98793// same request ID was received, and if so, will ignore the second
98794// request. This prevents clients from accidentally creating duplicate
98795// commitments.
98796//
98797// The request ID must be a valid UUID with the exception that zero UUID
98798// is not supported (00000000-0000-0000-0000-000000000000).
98799func (c *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall {
98800	c.urlParams_.Set("requestId", requestId)
98801	return c
98802}
98803
98804// Fields allows partial responses to be retrieved. See
98805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98806// for more information.
98807func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall {
98808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98809	return c
98810}
98811
98812// Context sets the context to be used in this call's Do method. Any
98813// pending HTTP request will be aborted if the provided context is
98814// canceled.
98815func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall {
98816	c.ctx_ = ctx
98817	return c
98818}
98819
98820// Header returns an http.Header that can be modified by the caller to
98821// add HTTP headers to the request.
98822func (c *InstancesSuspendCall) Header() http.Header {
98823	if c.header_ == nil {
98824		c.header_ = make(http.Header)
98825	}
98826	return c.header_
98827}
98828
98829func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) {
98830	reqHeaders := make(http.Header)
98831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98832	for k, v := range c.header_ {
98833		reqHeaders[k] = v
98834	}
98835	reqHeaders.Set("User-Agent", c.s.userAgent())
98836	var body io.Reader = nil
98837	c.urlParams_.Set("alt", alt)
98838	c.urlParams_.Set("prettyPrint", "false")
98839	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/suspend")
98840	urls += "?" + c.urlParams_.Encode()
98841	req, err := http.NewRequest("POST", urls, body)
98842	if err != nil {
98843		return nil, err
98844	}
98845	req.Header = reqHeaders
98846	googleapi.Expand(req.URL, map[string]string{
98847		"project":  c.project,
98848		"zone":     c.zone,
98849		"instance": c.instance,
98850	})
98851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98852}
98853
98854// Do executes the "compute.instances.suspend" call.
98855// Exactly one of *Operation or error will be non-nil. Any non-2xx
98856// status code is an error. Response headers are in either
98857// *Operation.ServerResponse.Header or (if a response was returned at
98858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98859// to check whether the returned error was because
98860// http.StatusNotModified was returned.
98861func (c *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98862	gensupport.SetOptions(c.urlParams_, opts...)
98863	res, err := c.doRequest("json")
98864	if res != nil && res.StatusCode == http.StatusNotModified {
98865		if res.Body != nil {
98866			res.Body.Close()
98867		}
98868		return nil, &googleapi.Error{
98869			Code:   res.StatusCode,
98870			Header: res.Header,
98871		}
98872	}
98873	if err != nil {
98874		return nil, err
98875	}
98876	defer googleapi.CloseBody(res)
98877	if err := googleapi.CheckResponse(res); err != nil {
98878		return nil, err
98879	}
98880	ret := &Operation{
98881		ServerResponse: googleapi.ServerResponse{
98882			Header:         res.Header,
98883			HTTPStatusCode: res.StatusCode,
98884		},
98885	}
98886	target := &ret
98887	if err := gensupport.DecodeResponse(target, res); err != nil {
98888		return nil, err
98889	}
98890	return ret, nil
98891	// {
98892	//   "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.",
98893	//   "httpMethod": "POST",
98894	//   "id": "compute.instances.suspend",
98895	//   "parameterOrder": [
98896	//     "project",
98897	//     "zone",
98898	//     "instance"
98899	//   ],
98900	//   "parameters": {
98901	//     "discardLocalSsd": {
98902	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
98903	//       "location": "query",
98904	//       "type": "boolean"
98905	//     },
98906	//     "instance": {
98907	//       "description": "Name of the instance resource to suspend.",
98908	//       "location": "path",
98909	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98910	//       "required": true,
98911	//       "type": "string"
98912	//     },
98913	//     "project": {
98914	//       "description": "Project ID for this request.",
98915	//       "location": "path",
98916	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98917	//       "required": true,
98918	//       "type": "string"
98919	//     },
98920	//     "requestId": {
98921	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98922	//       "location": "query",
98923	//       "type": "string"
98924	//     },
98925	//     "zone": {
98926	//       "description": "The name of the zone for this request.",
98927	//       "location": "path",
98928	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98929	//       "required": true,
98930	//       "type": "string"
98931	//     }
98932	//   },
98933	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/suspend",
98934	//   "response": {
98935	//     "$ref": "Operation"
98936	//   },
98937	//   "scopes": [
98938	//     "https://www.googleapis.com/auth/cloud-platform",
98939	//     "https://www.googleapis.com/auth/compute"
98940	//   ]
98941	// }
98942
98943}
98944
98945// method id "compute.instances.testIamPermissions":
98946
98947type InstancesTestIamPermissionsCall struct {
98948	s                      *Service
98949	project                string
98950	zone                   string
98951	resource               string
98952	testpermissionsrequest *TestPermissionsRequest
98953	urlParams_             gensupport.URLParams
98954	ctx_                   context.Context
98955	header_                http.Header
98956}
98957
98958// TestIamPermissions: Returns permissions that a caller has on the
98959// specified resource.
98960//
98961// - project: Project ID for this request.
98962// - resource: Name or id of the resource for this request.
98963// - zone: The name of the zone for this request.
98964func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
98965	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98966	c.project = project
98967	c.zone = zone
98968	c.resource = resource
98969	c.testpermissionsrequest = testpermissionsrequest
98970	return c
98971}
98972
98973// Fields allows partial responses to be retrieved. See
98974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98975// for more information.
98976func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
98977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98978	return c
98979}
98980
98981// Context sets the context to be used in this call's Do method. Any
98982// pending HTTP request will be aborted if the provided context is
98983// canceled.
98984func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
98985	c.ctx_ = ctx
98986	return c
98987}
98988
98989// Header returns an http.Header that can be modified by the caller to
98990// add HTTP headers to the request.
98991func (c *InstancesTestIamPermissionsCall) Header() http.Header {
98992	if c.header_ == nil {
98993		c.header_ = make(http.Header)
98994	}
98995	return c.header_
98996}
98997
98998func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
98999	reqHeaders := make(http.Header)
99000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99001	for k, v := range c.header_ {
99002		reqHeaders[k] = v
99003	}
99004	reqHeaders.Set("User-Agent", c.s.userAgent())
99005	var body io.Reader = nil
99006	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
99007	if err != nil {
99008		return nil, err
99009	}
99010	reqHeaders.Set("Content-Type", "application/json")
99011	c.urlParams_.Set("alt", alt)
99012	c.urlParams_.Set("prettyPrint", "false")
99013	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions")
99014	urls += "?" + c.urlParams_.Encode()
99015	req, err := http.NewRequest("POST", urls, body)
99016	if err != nil {
99017		return nil, err
99018	}
99019	req.Header = reqHeaders
99020	googleapi.Expand(req.URL, map[string]string{
99021		"project":  c.project,
99022		"zone":     c.zone,
99023		"resource": c.resource,
99024	})
99025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99026}
99027
99028// Do executes the "compute.instances.testIamPermissions" call.
99029// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
99030// non-2xx status code is an error. Response headers are in either
99031// *TestPermissionsResponse.ServerResponse.Header or (if a response was
99032// returned at all) in error.(*googleapi.Error).Header. Use
99033// googleapi.IsNotModified to check whether the returned error was
99034// because http.StatusNotModified was returned.
99035func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
99036	gensupport.SetOptions(c.urlParams_, opts...)
99037	res, err := c.doRequest("json")
99038	if res != nil && res.StatusCode == http.StatusNotModified {
99039		if res.Body != nil {
99040			res.Body.Close()
99041		}
99042		return nil, &googleapi.Error{
99043			Code:   res.StatusCode,
99044			Header: res.Header,
99045		}
99046	}
99047	if err != nil {
99048		return nil, err
99049	}
99050	defer googleapi.CloseBody(res)
99051	if err := googleapi.CheckResponse(res); err != nil {
99052		return nil, err
99053	}
99054	ret := &TestPermissionsResponse{
99055		ServerResponse: googleapi.ServerResponse{
99056			Header:         res.Header,
99057			HTTPStatusCode: res.StatusCode,
99058		},
99059	}
99060	target := &ret
99061	if err := gensupport.DecodeResponse(target, res); err != nil {
99062		return nil, err
99063	}
99064	return ret, nil
99065	// {
99066	//   "description": "Returns permissions that a caller has on the specified resource.",
99067	//   "httpMethod": "POST",
99068	//   "id": "compute.instances.testIamPermissions",
99069	//   "parameterOrder": [
99070	//     "project",
99071	//     "zone",
99072	//     "resource"
99073	//   ],
99074	//   "parameters": {
99075	//     "project": {
99076	//       "description": "Project ID for this request.",
99077	//       "location": "path",
99078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99079	//       "required": true,
99080	//       "type": "string"
99081	//     },
99082	//     "resource": {
99083	//       "description": "Name or id of the resource for this request.",
99084	//       "location": "path",
99085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99086	//       "required": true,
99087	//       "type": "string"
99088	//     },
99089	//     "zone": {
99090	//       "description": "The name of the zone for this request.",
99091	//       "location": "path",
99092	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99093	//       "required": true,
99094	//       "type": "string"
99095	//     }
99096	//   },
99097	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
99098	//   "request": {
99099	//     "$ref": "TestPermissionsRequest"
99100	//   },
99101	//   "response": {
99102	//     "$ref": "TestPermissionsResponse"
99103	//   },
99104	//   "scopes": [
99105	//     "https://www.googleapis.com/auth/cloud-platform",
99106	//     "https://www.googleapis.com/auth/compute",
99107	//     "https://www.googleapis.com/auth/compute.readonly"
99108	//   ]
99109	// }
99110
99111}
99112
99113// method id "compute.instances.update":
99114
99115type InstancesUpdateCall struct {
99116	s          *Service
99117	project    string
99118	zone       string
99119	instance   string
99120	instance2  *Instance
99121	urlParams_ gensupport.URLParams
99122	ctx_       context.Context
99123	header_    http.Header
99124}
99125
99126// Update: Updates an instance only if the necessary resources are
99127// available. This method can update only a specific set of instance
99128// properties. See  Updating a running instance for a list of updatable
99129// instance properties.
99130//
99131// - instance: Name of the instance resource to update.
99132// - project: Project ID for this request.
99133// - zone: The name of the zone for this request.
99134func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
99135	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99136	c.project = project
99137	c.zone = zone
99138	c.instance = instance
99139	c.instance2 = instance2
99140	return c
99141}
99142
99143// MinimalAction sets the optional parameter "minimalAction": Specifies
99144// the action to take when updating an instance even if the updated
99145// properties do not require it. If not specified, then Compute Engine
99146// acts based on the minimum action that the updated properties require.
99147//
99148// Possible values:
99149//   "INVALID"
99150//   "NO_EFFECT"
99151//   "REFRESH"
99152//   "RESTART"
99153func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
99154	c.urlParams_.Set("minimalAction", minimalAction)
99155	return c
99156}
99157
99158// MostDisruptiveAllowedAction sets the optional parameter
99159// "mostDisruptiveAllowedAction": Specifies the most disruptive action
99160// that can be taken on the instance as part of the update. Compute
99161// Engine returns an error if the instance properties require a more
99162// disruptive action as part of the instance update. Valid options from
99163// lowest to highest are NO_EFFECT, REFRESH, and RESTART.
99164//
99165// Possible values:
99166//   "INVALID"
99167//   "NO_EFFECT"
99168//   "REFRESH"
99169//   "RESTART"
99170func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
99171	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
99172	return c
99173}
99174
99175// RequestId sets the optional parameter "requestId": An optional
99176// request ID to identify requests. Specify a unique request ID so that
99177// if you must retry your request, the server will know to ignore the
99178// request if it has already been completed.
99179//
99180// For example, consider a situation where you make an initial request
99181// and the request times out. If you make the request again with the
99182// same request ID, the server can check if original operation with the
99183// same request ID was received, and if so, will ignore the second
99184// request. This prevents clients from accidentally creating duplicate
99185// commitments.
99186//
99187// The request ID must be a valid UUID with the exception that zero UUID
99188// is not supported (00000000-0000-0000-0000-000000000000).
99189func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
99190	c.urlParams_.Set("requestId", requestId)
99191	return c
99192}
99193
99194// Fields allows partial responses to be retrieved. See
99195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99196// for more information.
99197func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
99198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99199	return c
99200}
99201
99202// Context sets the context to be used in this call's Do method. Any
99203// pending HTTP request will be aborted if the provided context is
99204// canceled.
99205func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
99206	c.ctx_ = ctx
99207	return c
99208}
99209
99210// Header returns an http.Header that can be modified by the caller to
99211// add HTTP headers to the request.
99212func (c *InstancesUpdateCall) Header() http.Header {
99213	if c.header_ == nil {
99214		c.header_ = make(http.Header)
99215	}
99216	return c.header_
99217}
99218
99219func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
99220	reqHeaders := make(http.Header)
99221	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99222	for k, v := range c.header_ {
99223		reqHeaders[k] = v
99224	}
99225	reqHeaders.Set("User-Agent", c.s.userAgent())
99226	var body io.Reader = nil
99227	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
99228	if err != nil {
99229		return nil, err
99230	}
99231	reqHeaders.Set("Content-Type", "application/json")
99232	c.urlParams_.Set("alt", alt)
99233	c.urlParams_.Set("prettyPrint", "false")
99234	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
99235	urls += "?" + c.urlParams_.Encode()
99236	req, err := http.NewRequest("PUT", urls, body)
99237	if err != nil {
99238		return nil, err
99239	}
99240	req.Header = reqHeaders
99241	googleapi.Expand(req.URL, map[string]string{
99242		"project":  c.project,
99243		"zone":     c.zone,
99244		"instance": c.instance,
99245	})
99246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99247}
99248
99249// Do executes the "compute.instances.update" call.
99250// Exactly one of *Operation or error will be non-nil. Any non-2xx
99251// status code is an error. Response headers are in either
99252// *Operation.ServerResponse.Header or (if a response was returned at
99253// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99254// to check whether the returned error was because
99255// http.StatusNotModified was returned.
99256func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99257	gensupport.SetOptions(c.urlParams_, opts...)
99258	res, err := c.doRequest("json")
99259	if res != nil && res.StatusCode == http.StatusNotModified {
99260		if res.Body != nil {
99261			res.Body.Close()
99262		}
99263		return nil, &googleapi.Error{
99264			Code:   res.StatusCode,
99265			Header: res.Header,
99266		}
99267	}
99268	if err != nil {
99269		return nil, err
99270	}
99271	defer googleapi.CloseBody(res)
99272	if err := googleapi.CheckResponse(res); err != nil {
99273		return nil, err
99274	}
99275	ret := &Operation{
99276		ServerResponse: googleapi.ServerResponse{
99277			Header:         res.Header,
99278			HTTPStatusCode: res.StatusCode,
99279		},
99280	}
99281	target := &ret
99282	if err := gensupport.DecodeResponse(target, res); err != nil {
99283		return nil, err
99284	}
99285	return ret, nil
99286	// {
99287	//   "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.",
99288	//   "httpMethod": "PUT",
99289	//   "id": "compute.instances.update",
99290	//   "parameterOrder": [
99291	//     "project",
99292	//     "zone",
99293	//     "instance"
99294	//   ],
99295	//   "parameters": {
99296	//     "instance": {
99297	//       "description": "Name of the instance resource to update.",
99298	//       "location": "path",
99299	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99300	//       "required": true,
99301	//       "type": "string"
99302	//     },
99303	//     "minimalAction": {
99304	//       "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.",
99305	//       "enum": [
99306	//         "INVALID",
99307	//         "NO_EFFECT",
99308	//         "REFRESH",
99309	//         "RESTART"
99310	//       ],
99311	//       "enumDescriptions": [
99312	//         "",
99313	//         "",
99314	//         "",
99315	//         ""
99316	//       ],
99317	//       "location": "query",
99318	//       "type": "string"
99319	//     },
99320	//     "mostDisruptiveAllowedAction": {
99321	//       "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.",
99322	//       "enum": [
99323	//         "INVALID",
99324	//         "NO_EFFECT",
99325	//         "REFRESH",
99326	//         "RESTART"
99327	//       ],
99328	//       "enumDescriptions": [
99329	//         "",
99330	//         "",
99331	//         "",
99332	//         ""
99333	//       ],
99334	//       "location": "query",
99335	//       "type": "string"
99336	//     },
99337	//     "project": {
99338	//       "description": "Project ID for this request.",
99339	//       "location": "path",
99340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99341	//       "required": true,
99342	//       "type": "string"
99343	//     },
99344	//     "requestId": {
99345	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99346	//       "location": "query",
99347	//       "type": "string"
99348	//     },
99349	//     "zone": {
99350	//       "description": "The name of the zone for this request.",
99351	//       "location": "path",
99352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99353	//       "required": true,
99354	//       "type": "string"
99355	//     }
99356	//   },
99357	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
99358	//   "request": {
99359	//     "$ref": "Instance"
99360	//   },
99361	//   "response": {
99362	//     "$ref": "Operation"
99363	//   },
99364	//   "scopes": [
99365	//     "https://www.googleapis.com/auth/cloud-platform",
99366	//     "https://www.googleapis.com/auth/compute"
99367	//   ]
99368	// }
99369
99370}
99371
99372// method id "compute.instances.updateAccessConfig":
99373
99374type InstancesUpdateAccessConfigCall struct {
99375	s            *Service
99376	project      string
99377	zone         string
99378	instance     string
99379	accessconfig *AccessConfig
99380	urlParams_   gensupport.URLParams
99381	ctx_         context.Context
99382	header_      http.Header
99383}
99384
99385// UpdateAccessConfig: Updates the specified access config from an
99386// instance's network interface with the data included in the request.
99387// This method supports PATCH semantics and uses the JSON merge patch
99388// format and processing rules.
99389//
99390// - instance: The instance name for this request.
99391// - networkInterface: The name of the network interface where the
99392//   access config is attached.
99393// - project: Project ID for this request.
99394// - zone: The name of the zone for this request.
99395func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
99396	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99397	c.project = project
99398	c.zone = zone
99399	c.instance = instance
99400	c.urlParams_.Set("networkInterface", networkInterface)
99401	c.accessconfig = accessconfig
99402	return c
99403}
99404
99405// RequestId sets the optional parameter "requestId": An optional
99406// request ID to identify requests. Specify a unique request ID so that
99407// if you must retry your request, the server will know to ignore the
99408// request if it has already been completed.
99409//
99410// For example, consider a situation where you make an initial request
99411// and the request times out. If you make the request again with the
99412// same request ID, the server can check if original operation with the
99413// same request ID was received, and if so, will ignore the second
99414// request. This prevents clients from accidentally creating duplicate
99415// commitments.
99416//
99417// The request ID must be a valid UUID with the exception that zero UUID
99418// is not supported (00000000-0000-0000-0000-000000000000).
99419func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
99420	c.urlParams_.Set("requestId", requestId)
99421	return c
99422}
99423
99424// Fields allows partial responses to be retrieved. See
99425// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99426// for more information.
99427func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
99428	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99429	return c
99430}
99431
99432// Context sets the context to be used in this call's Do method. Any
99433// pending HTTP request will be aborted if the provided context is
99434// canceled.
99435func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
99436	c.ctx_ = ctx
99437	return c
99438}
99439
99440// Header returns an http.Header that can be modified by the caller to
99441// add HTTP headers to the request.
99442func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
99443	if c.header_ == nil {
99444		c.header_ = make(http.Header)
99445	}
99446	return c.header_
99447}
99448
99449func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
99450	reqHeaders := make(http.Header)
99451	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99452	for k, v := range c.header_ {
99453		reqHeaders[k] = v
99454	}
99455	reqHeaders.Set("User-Agent", c.s.userAgent())
99456	var body io.Reader = nil
99457	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
99458	if err != nil {
99459		return nil, err
99460	}
99461	reqHeaders.Set("Content-Type", "application/json")
99462	c.urlParams_.Set("alt", alt)
99463	c.urlParams_.Set("prettyPrint", "false")
99464	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
99465	urls += "?" + c.urlParams_.Encode()
99466	req, err := http.NewRequest("POST", urls, body)
99467	if err != nil {
99468		return nil, err
99469	}
99470	req.Header = reqHeaders
99471	googleapi.Expand(req.URL, map[string]string{
99472		"project":  c.project,
99473		"zone":     c.zone,
99474		"instance": c.instance,
99475	})
99476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99477}
99478
99479// Do executes the "compute.instances.updateAccessConfig" call.
99480// Exactly one of *Operation or error will be non-nil. Any non-2xx
99481// status code is an error. Response headers are in either
99482// *Operation.ServerResponse.Header or (if a response was returned at
99483// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99484// to check whether the returned error was because
99485// http.StatusNotModified was returned.
99486func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99487	gensupport.SetOptions(c.urlParams_, opts...)
99488	res, err := c.doRequest("json")
99489	if res != nil && res.StatusCode == http.StatusNotModified {
99490		if res.Body != nil {
99491			res.Body.Close()
99492		}
99493		return nil, &googleapi.Error{
99494			Code:   res.StatusCode,
99495			Header: res.Header,
99496		}
99497	}
99498	if err != nil {
99499		return nil, err
99500	}
99501	defer googleapi.CloseBody(res)
99502	if err := googleapi.CheckResponse(res); err != nil {
99503		return nil, err
99504	}
99505	ret := &Operation{
99506		ServerResponse: googleapi.ServerResponse{
99507			Header:         res.Header,
99508			HTTPStatusCode: res.StatusCode,
99509		},
99510	}
99511	target := &ret
99512	if err := gensupport.DecodeResponse(target, res); err != nil {
99513		return nil, err
99514	}
99515	return ret, nil
99516	// {
99517	//   "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.",
99518	//   "httpMethod": "POST",
99519	//   "id": "compute.instances.updateAccessConfig",
99520	//   "parameterOrder": [
99521	//     "project",
99522	//     "zone",
99523	//     "instance",
99524	//     "networkInterface"
99525	//   ],
99526	//   "parameters": {
99527	//     "instance": {
99528	//       "description": "The instance name for this request.",
99529	//       "location": "path",
99530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99531	//       "required": true,
99532	//       "type": "string"
99533	//     },
99534	//     "networkInterface": {
99535	//       "description": "The name of the network interface where the access config is attached.",
99536	//       "location": "query",
99537	//       "required": true,
99538	//       "type": "string"
99539	//     },
99540	//     "project": {
99541	//       "description": "Project ID for this request.",
99542	//       "location": "path",
99543	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99544	//       "required": true,
99545	//       "type": "string"
99546	//     },
99547	//     "requestId": {
99548	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99549	//       "location": "query",
99550	//       "type": "string"
99551	//     },
99552	//     "zone": {
99553	//       "description": "The name of the zone for this request.",
99554	//       "location": "path",
99555	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99556	//       "required": true,
99557	//       "type": "string"
99558	//     }
99559	//   },
99560	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
99561	//   "request": {
99562	//     "$ref": "AccessConfig"
99563	//   },
99564	//   "response": {
99565	//     "$ref": "Operation"
99566	//   },
99567	//   "scopes": [
99568	//     "https://www.googleapis.com/auth/cloud-platform",
99569	//     "https://www.googleapis.com/auth/compute"
99570	//   ]
99571	// }
99572
99573}
99574
99575// method id "compute.instances.updateDisplayDevice":
99576
99577type InstancesUpdateDisplayDeviceCall struct {
99578	s             *Service
99579	project       string
99580	zone          string
99581	instance      string
99582	displaydevice *DisplayDevice
99583	urlParams_    gensupport.URLParams
99584	ctx_          context.Context
99585	header_       http.Header
99586}
99587
99588// UpdateDisplayDevice: Updates the Display config for a VM instance.
99589// You can only use this method on a stopped VM instance. This method
99590// supports PATCH semantics and uses the JSON merge patch format and
99591// processing rules.
99592//
99593// - instance: Name of the instance scoping this request.
99594// - project: Project ID for this request.
99595// - zone: The name of the zone for this request.
99596func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
99597	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99598	c.project = project
99599	c.zone = zone
99600	c.instance = instance
99601	c.displaydevice = displaydevice
99602	return c
99603}
99604
99605// RequestId sets the optional parameter "requestId": An optional
99606// request ID to identify requests. Specify a unique request ID so that
99607// if you must retry your request, the server will know to ignore the
99608// request if it has already been completed.
99609//
99610// For example, consider a situation where you make an initial request
99611// and the request times out. If you make the request again with the
99612// same request ID, the server can check if original operation with the
99613// same request ID was received, and if so, will ignore the second
99614// request. This prevents clients from accidentally creating duplicate
99615// commitments.
99616//
99617// The request ID must be a valid UUID with the exception that zero UUID
99618// is not supported (00000000-0000-0000-0000-000000000000).
99619func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
99620	c.urlParams_.Set("requestId", requestId)
99621	return c
99622}
99623
99624// Fields allows partial responses to be retrieved. See
99625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99626// for more information.
99627func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
99628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99629	return c
99630}
99631
99632// Context sets the context to be used in this call's Do method. Any
99633// pending HTTP request will be aborted if the provided context is
99634// canceled.
99635func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
99636	c.ctx_ = ctx
99637	return c
99638}
99639
99640// Header returns an http.Header that can be modified by the caller to
99641// add HTTP headers to the request.
99642func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
99643	if c.header_ == nil {
99644		c.header_ = make(http.Header)
99645	}
99646	return c.header_
99647}
99648
99649func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
99650	reqHeaders := make(http.Header)
99651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99652	for k, v := range c.header_ {
99653		reqHeaders[k] = v
99654	}
99655	reqHeaders.Set("User-Agent", c.s.userAgent())
99656	var body io.Reader = nil
99657	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
99658	if err != nil {
99659		return nil, err
99660	}
99661	reqHeaders.Set("Content-Type", "application/json")
99662	c.urlParams_.Set("alt", alt)
99663	c.urlParams_.Set("prettyPrint", "false")
99664	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
99665	urls += "?" + c.urlParams_.Encode()
99666	req, err := http.NewRequest("PATCH", urls, body)
99667	if err != nil {
99668		return nil, err
99669	}
99670	req.Header = reqHeaders
99671	googleapi.Expand(req.URL, map[string]string{
99672		"project":  c.project,
99673		"zone":     c.zone,
99674		"instance": c.instance,
99675	})
99676	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99677}
99678
99679// Do executes the "compute.instances.updateDisplayDevice" call.
99680// Exactly one of *Operation or error will be non-nil. Any non-2xx
99681// status code is an error. Response headers are in either
99682// *Operation.ServerResponse.Header or (if a response was returned at
99683// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99684// to check whether the returned error was because
99685// http.StatusNotModified was returned.
99686func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99687	gensupport.SetOptions(c.urlParams_, opts...)
99688	res, err := c.doRequest("json")
99689	if res != nil && res.StatusCode == http.StatusNotModified {
99690		if res.Body != nil {
99691			res.Body.Close()
99692		}
99693		return nil, &googleapi.Error{
99694			Code:   res.StatusCode,
99695			Header: res.Header,
99696		}
99697	}
99698	if err != nil {
99699		return nil, err
99700	}
99701	defer googleapi.CloseBody(res)
99702	if err := googleapi.CheckResponse(res); err != nil {
99703		return nil, err
99704	}
99705	ret := &Operation{
99706		ServerResponse: googleapi.ServerResponse{
99707			Header:         res.Header,
99708			HTTPStatusCode: res.StatusCode,
99709		},
99710	}
99711	target := &ret
99712	if err := gensupport.DecodeResponse(target, res); err != nil {
99713		return nil, err
99714	}
99715	return ret, nil
99716	// {
99717	//   "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.",
99718	//   "httpMethod": "PATCH",
99719	//   "id": "compute.instances.updateDisplayDevice",
99720	//   "parameterOrder": [
99721	//     "project",
99722	//     "zone",
99723	//     "instance"
99724	//   ],
99725	//   "parameters": {
99726	//     "instance": {
99727	//       "description": "Name of the instance scoping this request.",
99728	//       "location": "path",
99729	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99730	//       "required": true,
99731	//       "type": "string"
99732	//     },
99733	//     "project": {
99734	//       "description": "Project ID for this request.",
99735	//       "location": "path",
99736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99737	//       "required": true,
99738	//       "type": "string"
99739	//     },
99740	//     "requestId": {
99741	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99742	//       "location": "query",
99743	//       "type": "string"
99744	//     },
99745	//     "zone": {
99746	//       "description": "The name of the zone for this request.",
99747	//       "location": "path",
99748	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99749	//       "required": true,
99750	//       "type": "string"
99751	//     }
99752	//   },
99753	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
99754	//   "request": {
99755	//     "$ref": "DisplayDevice"
99756	//   },
99757	//   "response": {
99758	//     "$ref": "Operation"
99759	//   },
99760	//   "scopes": [
99761	//     "https://www.googleapis.com/auth/cloud-platform",
99762	//     "https://www.googleapis.com/auth/compute"
99763	//   ]
99764	// }
99765
99766}
99767
99768// method id "compute.instances.updateNetworkInterface":
99769
99770type InstancesUpdateNetworkInterfaceCall struct {
99771	s                *Service
99772	project          string
99773	zone             string
99774	instance         string
99775	networkinterface *NetworkInterface
99776	urlParams_       gensupport.URLParams
99777	ctx_             context.Context
99778	header_          http.Header
99779}
99780
99781// UpdateNetworkInterface: Updates an instance's network interface. This
99782// method can only update an interface's alias IP range and attached
99783// network. See Modifying alias IP ranges for an existing instance for
99784// instructions on changing alias IP ranges. See Migrating a VM between
99785// networks for instructions on migrating an interface. This method
99786// follows PATCH semantics.
99787//
99788// - instance: The instance name for this request.
99789// - networkInterface: The name of the network interface to update.
99790// - project: Project ID for this request.
99791// - zone: The name of the zone for this request.
99792func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
99793	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99794	c.project = project
99795	c.zone = zone
99796	c.instance = instance
99797	c.urlParams_.Set("networkInterface", networkInterface)
99798	c.networkinterface = networkinterface
99799	return c
99800}
99801
99802// RequestId sets the optional parameter "requestId": An optional
99803// request ID to identify requests. Specify a unique request ID so that
99804// if you must retry your request, the server will know to ignore the
99805// request if it has already been completed.
99806//
99807// For example, consider a situation where you make an initial request
99808// and the request times out. If you make the request again with the
99809// same request ID, the server can check if original operation with the
99810// same request ID was received, and if so, will ignore the second
99811// request. This prevents clients from accidentally creating duplicate
99812// commitments.
99813//
99814// The request ID must be a valid UUID with the exception that zero UUID
99815// is not supported (00000000-0000-0000-0000-000000000000).
99816func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
99817	c.urlParams_.Set("requestId", requestId)
99818	return c
99819}
99820
99821// Fields allows partial responses to be retrieved. See
99822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99823// for more information.
99824func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
99825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99826	return c
99827}
99828
99829// Context sets the context to be used in this call's Do method. Any
99830// pending HTTP request will be aborted if the provided context is
99831// canceled.
99832func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
99833	c.ctx_ = ctx
99834	return c
99835}
99836
99837// Header returns an http.Header that can be modified by the caller to
99838// add HTTP headers to the request.
99839func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
99840	if c.header_ == nil {
99841		c.header_ = make(http.Header)
99842	}
99843	return c.header_
99844}
99845
99846func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
99847	reqHeaders := make(http.Header)
99848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99849	for k, v := range c.header_ {
99850		reqHeaders[k] = v
99851	}
99852	reqHeaders.Set("User-Agent", c.s.userAgent())
99853	var body io.Reader = nil
99854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
99855	if err != nil {
99856		return nil, err
99857	}
99858	reqHeaders.Set("Content-Type", "application/json")
99859	c.urlParams_.Set("alt", alt)
99860	c.urlParams_.Set("prettyPrint", "false")
99861	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
99862	urls += "?" + c.urlParams_.Encode()
99863	req, err := http.NewRequest("PATCH", urls, body)
99864	if err != nil {
99865		return nil, err
99866	}
99867	req.Header = reqHeaders
99868	googleapi.Expand(req.URL, map[string]string{
99869		"project":  c.project,
99870		"zone":     c.zone,
99871		"instance": c.instance,
99872	})
99873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99874}
99875
99876// Do executes the "compute.instances.updateNetworkInterface" call.
99877// Exactly one of *Operation or error will be non-nil. Any non-2xx
99878// status code is an error. Response headers are in either
99879// *Operation.ServerResponse.Header or (if a response was returned at
99880// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99881// to check whether the returned error was because
99882// http.StatusNotModified was returned.
99883func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99884	gensupport.SetOptions(c.urlParams_, opts...)
99885	res, err := c.doRequest("json")
99886	if res != nil && res.StatusCode == http.StatusNotModified {
99887		if res.Body != nil {
99888			res.Body.Close()
99889		}
99890		return nil, &googleapi.Error{
99891			Code:   res.StatusCode,
99892			Header: res.Header,
99893		}
99894	}
99895	if err != nil {
99896		return nil, err
99897	}
99898	defer googleapi.CloseBody(res)
99899	if err := googleapi.CheckResponse(res); err != nil {
99900		return nil, err
99901	}
99902	ret := &Operation{
99903		ServerResponse: googleapi.ServerResponse{
99904			Header:         res.Header,
99905			HTTPStatusCode: res.StatusCode,
99906		},
99907	}
99908	target := &ret
99909	if err := gensupport.DecodeResponse(target, res); err != nil {
99910		return nil, err
99911	}
99912	return ret, nil
99913	// {
99914	//   "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.",
99915	//   "httpMethod": "PATCH",
99916	//   "id": "compute.instances.updateNetworkInterface",
99917	//   "parameterOrder": [
99918	//     "project",
99919	//     "zone",
99920	//     "instance",
99921	//     "networkInterface"
99922	//   ],
99923	//   "parameters": {
99924	//     "instance": {
99925	//       "description": "The instance name for this request.",
99926	//       "location": "path",
99927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99928	//       "required": true,
99929	//       "type": "string"
99930	//     },
99931	//     "networkInterface": {
99932	//       "description": "The name of the network interface to update.",
99933	//       "location": "query",
99934	//       "required": true,
99935	//       "type": "string"
99936	//     },
99937	//     "project": {
99938	//       "description": "Project ID for this request.",
99939	//       "location": "path",
99940	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99941	//       "required": true,
99942	//       "type": "string"
99943	//     },
99944	//     "requestId": {
99945	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99946	//       "location": "query",
99947	//       "type": "string"
99948	//     },
99949	//     "zone": {
99950	//       "description": "The name of the zone for this request.",
99951	//       "location": "path",
99952	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99953	//       "required": true,
99954	//       "type": "string"
99955	//     }
99956	//   },
99957	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
99958	//   "request": {
99959	//     "$ref": "NetworkInterface"
99960	//   },
99961	//   "response": {
99962	//     "$ref": "Operation"
99963	//   },
99964	//   "scopes": [
99965	//     "https://www.googleapis.com/auth/cloud-platform",
99966	//     "https://www.googleapis.com/auth/compute"
99967	//   ]
99968	// }
99969
99970}
99971
99972// method id "compute.instances.updateShieldedInstanceConfig":
99973
99974type InstancesUpdateShieldedInstanceConfigCall struct {
99975	s                      *Service
99976	project                string
99977	zone                   string
99978	instance               string
99979	shieldedinstanceconfig *ShieldedInstanceConfig
99980	urlParams_             gensupport.URLParams
99981	ctx_                   context.Context
99982	header_                http.Header
99983}
99984
99985// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
99986// for an instance. You can only use this method on a stopped instance.
99987// This method supports PATCH semantics and uses the JSON merge patch
99988// format and processing rules.
99989//
99990// - instance: Name or id of the instance scoping this request.
99991// - project: Project ID for this request.
99992// - zone: The name of the zone for this request.
99993func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
99994	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99995	c.project = project
99996	c.zone = zone
99997	c.instance = instance
99998	c.shieldedinstanceconfig = shieldedinstanceconfig
99999	return c
100000}
100001
100002// RequestId sets the optional parameter "requestId": An optional
100003// request ID to identify requests. Specify a unique request ID so that
100004// if you must retry your request, the server will know to ignore the
100005// request if it has already been completed.
100006//
100007// For example, consider a situation where you make an initial request
100008// and the request times out. If you make the request again with the
100009// same request ID, the server can check if original operation with the
100010// same request ID was received, and if so, will ignore the second
100011// request. This prevents clients from accidentally creating duplicate
100012// commitments.
100013//
100014// The request ID must be a valid UUID with the exception that zero UUID
100015// is not supported (00000000-0000-0000-0000-000000000000).
100016func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
100017	c.urlParams_.Set("requestId", requestId)
100018	return c
100019}
100020
100021// Fields allows partial responses to be retrieved. See
100022// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100023// for more information.
100024func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
100025	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100026	return c
100027}
100028
100029// Context sets the context to be used in this call's Do method. Any
100030// pending HTTP request will be aborted if the provided context is
100031// canceled.
100032func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
100033	c.ctx_ = ctx
100034	return c
100035}
100036
100037// Header returns an http.Header that can be modified by the caller to
100038// add HTTP headers to the request.
100039func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
100040	if c.header_ == nil {
100041		c.header_ = make(http.Header)
100042	}
100043	return c.header_
100044}
100045
100046func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
100047	reqHeaders := make(http.Header)
100048	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100049	for k, v := range c.header_ {
100050		reqHeaders[k] = v
100051	}
100052	reqHeaders.Set("User-Agent", c.s.userAgent())
100053	var body io.Reader = nil
100054	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
100055	if err != nil {
100056		return nil, err
100057	}
100058	reqHeaders.Set("Content-Type", "application/json")
100059	c.urlParams_.Set("alt", alt)
100060	c.urlParams_.Set("prettyPrint", "false")
100061	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
100062	urls += "?" + c.urlParams_.Encode()
100063	req, err := http.NewRequest("PATCH", urls, body)
100064	if err != nil {
100065		return nil, err
100066	}
100067	req.Header = reqHeaders
100068	googleapi.Expand(req.URL, map[string]string{
100069		"project":  c.project,
100070		"zone":     c.zone,
100071		"instance": c.instance,
100072	})
100073	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100074}
100075
100076// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
100077// Exactly one of *Operation or error will be non-nil. Any non-2xx
100078// status code is an error. Response headers are in either
100079// *Operation.ServerResponse.Header or (if a response was returned at
100080// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100081// to check whether the returned error was because
100082// http.StatusNotModified was returned.
100083func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100084	gensupport.SetOptions(c.urlParams_, opts...)
100085	res, err := c.doRequest("json")
100086	if res != nil && res.StatusCode == http.StatusNotModified {
100087		if res.Body != nil {
100088			res.Body.Close()
100089		}
100090		return nil, &googleapi.Error{
100091			Code:   res.StatusCode,
100092			Header: res.Header,
100093		}
100094	}
100095	if err != nil {
100096		return nil, err
100097	}
100098	defer googleapi.CloseBody(res)
100099	if err := googleapi.CheckResponse(res); err != nil {
100100		return nil, err
100101	}
100102	ret := &Operation{
100103		ServerResponse: googleapi.ServerResponse{
100104			Header:         res.Header,
100105			HTTPStatusCode: res.StatusCode,
100106		},
100107	}
100108	target := &ret
100109	if err := gensupport.DecodeResponse(target, res); err != nil {
100110		return nil, err
100111	}
100112	return ret, nil
100113	// {
100114	//   "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.",
100115	//   "httpMethod": "PATCH",
100116	//   "id": "compute.instances.updateShieldedInstanceConfig",
100117	//   "parameterOrder": [
100118	//     "project",
100119	//     "zone",
100120	//     "instance"
100121	//   ],
100122	//   "parameters": {
100123	//     "instance": {
100124	//       "description": "Name or id of the instance scoping this request.",
100125	//       "location": "path",
100126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100127	//       "required": true,
100128	//       "type": "string"
100129	//     },
100130	//     "project": {
100131	//       "description": "Project ID for this request.",
100132	//       "location": "path",
100133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100134	//       "required": true,
100135	//       "type": "string"
100136	//     },
100137	//     "requestId": {
100138	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100139	//       "location": "query",
100140	//       "type": "string"
100141	//     },
100142	//     "zone": {
100143	//       "description": "The name of the zone for this request.",
100144	//       "location": "path",
100145	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100146	//       "required": true,
100147	//       "type": "string"
100148	//     }
100149	//   },
100150	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
100151	//   "request": {
100152	//     "$ref": "ShieldedInstanceConfig"
100153	//   },
100154	//   "response": {
100155	//     "$ref": "Operation"
100156	//   },
100157	//   "scopes": [
100158	//     "https://www.googleapis.com/auth/cloud-platform",
100159	//     "https://www.googleapis.com/auth/compute"
100160	//   ]
100161	// }
100162
100163}
100164
100165// method id "compute.instances.updateShieldedVmConfig":
100166
100167type InstancesUpdateShieldedVmConfigCall struct {
100168	s                *Service
100169	project          string
100170	zone             string
100171	instance         string
100172	shieldedvmconfig *ShieldedVmConfig
100173	urlParams_       gensupport.URLParams
100174	ctx_             context.Context
100175	header_          http.Header
100176}
100177
100178// UpdateShieldedVmConfig: Updates the Shielded VM config for a VM
100179// instance. You can only use this method on a stopped VM instance. This
100180// method supports PATCH semantics and uses the JSON merge patch format
100181// and processing rules.
100182//
100183// - instance: Name of the instance scoping this request.
100184// - project: Project ID for this request.
100185// - zone: The name of the zone for this request.
100186func (r *InstancesService) UpdateShieldedVmConfig(project string, zone string, instance string, shieldedvmconfig *ShieldedVmConfig) *InstancesUpdateShieldedVmConfigCall {
100187	c := &InstancesUpdateShieldedVmConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100188	c.project = project
100189	c.zone = zone
100190	c.instance = instance
100191	c.shieldedvmconfig = shieldedvmconfig
100192	return c
100193}
100194
100195// RequestId sets the optional parameter "requestId": An optional
100196// request ID to identify requests. Specify a unique request ID so that
100197// if you must retry your request, the server will know to ignore the
100198// request if it has already been completed.
100199//
100200// For example, consider a situation where you make an initial request
100201// and the request times out. If you make the request again with the
100202// same request ID, the server can check if original operation with the
100203// same request ID was received, and if so, will ignore the second
100204// request. This prevents clients from accidentally creating duplicate
100205// commitments.
100206//
100207// The request ID must be a valid UUID with the exception that zero UUID
100208// is not supported (00000000-0000-0000-0000-000000000000).
100209func (c *InstancesUpdateShieldedVmConfigCall) RequestId(requestId string) *InstancesUpdateShieldedVmConfigCall {
100210	c.urlParams_.Set("requestId", requestId)
100211	return c
100212}
100213
100214// Fields allows partial responses to be retrieved. See
100215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100216// for more information.
100217func (c *InstancesUpdateShieldedVmConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedVmConfigCall {
100218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100219	return c
100220}
100221
100222// Context sets the context to be used in this call's Do method. Any
100223// pending HTTP request will be aborted if the provided context is
100224// canceled.
100225func (c *InstancesUpdateShieldedVmConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedVmConfigCall {
100226	c.ctx_ = ctx
100227	return c
100228}
100229
100230// Header returns an http.Header that can be modified by the caller to
100231// add HTTP headers to the request.
100232func (c *InstancesUpdateShieldedVmConfigCall) Header() http.Header {
100233	if c.header_ == nil {
100234		c.header_ = make(http.Header)
100235	}
100236	return c.header_
100237}
100238
100239func (c *InstancesUpdateShieldedVmConfigCall) doRequest(alt string) (*http.Response, error) {
100240	reqHeaders := make(http.Header)
100241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100242	for k, v := range c.header_ {
100243		reqHeaders[k] = v
100244	}
100245	reqHeaders.Set("User-Agent", c.s.userAgent())
100246	var body io.Reader = nil
100247	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmconfig)
100248	if err != nil {
100249		return nil, err
100250	}
100251	reqHeaders.Set("Content-Type", "application/json")
100252	c.urlParams_.Set("alt", alt)
100253	c.urlParams_.Set("prettyPrint", "false")
100254	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig")
100255	urls += "?" + c.urlParams_.Encode()
100256	req, err := http.NewRequest("PATCH", urls, body)
100257	if err != nil {
100258		return nil, err
100259	}
100260	req.Header = reqHeaders
100261	googleapi.Expand(req.URL, map[string]string{
100262		"project":  c.project,
100263		"zone":     c.zone,
100264		"instance": c.instance,
100265	})
100266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100267}
100268
100269// Do executes the "compute.instances.updateShieldedVmConfig" call.
100270// Exactly one of *Operation or error will be non-nil. Any non-2xx
100271// status code is an error. Response headers are in either
100272// *Operation.ServerResponse.Header or (if a response was returned at
100273// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100274// to check whether the returned error was because
100275// http.StatusNotModified was returned.
100276func (c *InstancesUpdateShieldedVmConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100277	gensupport.SetOptions(c.urlParams_, opts...)
100278	res, err := c.doRequest("json")
100279	if res != nil && res.StatusCode == http.StatusNotModified {
100280		if res.Body != nil {
100281			res.Body.Close()
100282		}
100283		return nil, &googleapi.Error{
100284			Code:   res.StatusCode,
100285			Header: res.Header,
100286		}
100287	}
100288	if err != nil {
100289		return nil, err
100290	}
100291	defer googleapi.CloseBody(res)
100292	if err := googleapi.CheckResponse(res); err != nil {
100293		return nil, err
100294	}
100295	ret := &Operation{
100296		ServerResponse: googleapi.ServerResponse{
100297			Header:         res.Header,
100298			HTTPStatusCode: res.StatusCode,
100299		},
100300	}
100301	target := &ret
100302	if err := gensupport.DecodeResponse(target, res); err != nil {
100303		return nil, err
100304	}
100305	return ret, nil
100306	// {
100307	//   "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.",
100308	//   "httpMethod": "PATCH",
100309	//   "id": "compute.instances.updateShieldedVmConfig",
100310	//   "parameterOrder": [
100311	//     "project",
100312	//     "zone",
100313	//     "instance"
100314	//   ],
100315	//   "parameters": {
100316	//     "instance": {
100317	//       "description": "Name of the instance scoping this request.",
100318	//       "location": "path",
100319	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100320	//       "required": true,
100321	//       "type": "string"
100322	//     },
100323	//     "project": {
100324	//       "description": "Project ID for this request.",
100325	//       "location": "path",
100326	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100327	//       "required": true,
100328	//       "type": "string"
100329	//     },
100330	//     "requestId": {
100331	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100332	//       "location": "query",
100333	//       "type": "string"
100334	//     },
100335	//     "zone": {
100336	//       "description": "The name of the zone for this request.",
100337	//       "location": "path",
100338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100339	//       "required": true,
100340	//       "type": "string"
100341	//     }
100342	//   },
100343	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig",
100344	//   "request": {
100345	//     "$ref": "ShieldedVmConfig"
100346	//   },
100347	//   "response": {
100348	//     "$ref": "Operation"
100349	//   },
100350	//   "scopes": [
100351	//     "https://www.googleapis.com/auth/cloud-platform",
100352	//     "https://www.googleapis.com/auth/compute"
100353	//   ]
100354	// }
100355
100356}
100357
100358// method id "compute.interconnectAttachments.aggregatedList":
100359
100360type InterconnectAttachmentsAggregatedListCall struct {
100361	s            *Service
100362	project      string
100363	urlParams_   gensupport.URLParams
100364	ifNoneMatch_ string
100365	ctx_         context.Context
100366	header_      http.Header
100367}
100368
100369// AggregatedList: Retrieves an aggregated list of interconnect
100370// attachments.
100371//
100372// - project: Project ID for this request.
100373func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
100374	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100375	c.project = project
100376	return c
100377}
100378
100379// Filter sets the optional parameter "filter": A filter expression that
100380// filters resources listed in the response. The expression must specify
100381// the field name, a comparison operator, and the value that you want to
100382// use for filtering. The value must be a string, a number, or a
100383// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100384// `<`.
100385//
100386// For example, if you are filtering Compute Engine instances, you can
100387// exclude instances named `example-instance` by specifying `name !=
100388// example-instance`.
100389//
100390// You can also filter nested fields. For example, you could specify
100391// `scheduling.automaticRestart = false` to include instances only if
100392// they are not scheduled for automatic restarts. You can use filtering
100393// on nested fields to filter based on resource labels.
100394//
100395// To filter on multiple expressions, provide each separate expression
100396// within parentheses. For example: ``` (scheduling.automaticRestart =
100397// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
100398// is an `AND` expression. However, you can include `AND` and `OR`
100399// expressions explicitly. For example: ``` (cpuPlatform = "Intel
100400// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
100401// (scheduling.automaticRestart = true) ```
100402func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
100403	c.urlParams_.Set("filter", filter)
100404	return c
100405}
100406
100407// IncludeAllScopes sets the optional parameter "includeAllScopes":
100408// Indicates whether every visible scope for each scope type (zone,
100409// region, global) should be included in the response. For new resource
100410// types added after this field, the flag has no effect as new resource
100411// types will always include every visible scope for each scope type in
100412// response. For resource types which predate this field, if this flag
100413// is omitted or false, only scopes of the scope types where the
100414// resource type is expected to be found will be included.
100415func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
100416	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
100417	return c
100418}
100419
100420// MaxResults sets the optional parameter "maxResults": The maximum
100421// number of results per page that should be returned. If the number of
100422// available results is larger than `maxResults`, Compute Engine returns
100423// a `nextPageToken` that can be used to get the next page of results in
100424// subsequent list requests. Acceptable values are `0` to `500`,
100425// inclusive. (Default: `500`)
100426func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
100427	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100428	return c
100429}
100430
100431// OrderBy sets the optional parameter "orderBy": Sorts list results by
100432// a certain order. By default, results are returned in alphanumerical
100433// order based on the resource name.
100434//
100435// You can also sort results in descending order based on the creation
100436// timestamp using `orderBy="creationTimestamp desc". This sorts
100437// results based on the `creationTimestamp` field in reverse
100438// chronological order (newest result first). Use this to sort resources
100439// like operations so that the newest operation is returned
100440// first.
100441//
100442// Currently, only sorting by `name` or `creationTimestamp desc` is
100443// supported.
100444func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
100445	c.urlParams_.Set("orderBy", orderBy)
100446	return c
100447}
100448
100449// PageToken sets the optional parameter "pageToken": Specifies a page
100450// token to use. Set `pageToken` to the `nextPageToken` returned by a
100451// previous list request to get the next page of results.
100452func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
100453	c.urlParams_.Set("pageToken", pageToken)
100454	return c
100455}
100456
100457// ReturnPartialSuccess sets the optional parameter
100458// "returnPartialSuccess": Opt-in for partial success behavior which
100459// provides partial results in case of failure. The default value is
100460// false.
100461func (c *InterconnectAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsAggregatedListCall {
100462	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100463	return c
100464}
100465
100466// Fields allows partial responses to be retrieved. See
100467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100468// for more information.
100469func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
100470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100471	return c
100472}
100473
100474// IfNoneMatch sets the optional parameter which makes the operation
100475// fail if the object's ETag matches the given value. This is useful for
100476// getting updates only after the object has changed since the last
100477// request. Use googleapi.IsNotModified to check whether the response
100478// error from Do is the result of In-None-Match.
100479func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
100480	c.ifNoneMatch_ = entityTag
100481	return c
100482}
100483
100484// Context sets the context to be used in this call's Do method. Any
100485// pending HTTP request will be aborted if the provided context is
100486// canceled.
100487func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
100488	c.ctx_ = ctx
100489	return c
100490}
100491
100492// Header returns an http.Header that can be modified by the caller to
100493// add HTTP headers to the request.
100494func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
100495	if c.header_ == nil {
100496		c.header_ = make(http.Header)
100497	}
100498	return c.header_
100499}
100500
100501func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
100502	reqHeaders := make(http.Header)
100503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100504	for k, v := range c.header_ {
100505		reqHeaders[k] = v
100506	}
100507	reqHeaders.Set("User-Agent", c.s.userAgent())
100508	if c.ifNoneMatch_ != "" {
100509		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100510	}
100511	var body io.Reader = nil
100512	c.urlParams_.Set("alt", alt)
100513	c.urlParams_.Set("prettyPrint", "false")
100514	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/interconnectAttachments")
100515	urls += "?" + c.urlParams_.Encode()
100516	req, err := http.NewRequest("GET", urls, body)
100517	if err != nil {
100518		return nil, err
100519	}
100520	req.Header = reqHeaders
100521	googleapi.Expand(req.URL, map[string]string{
100522		"project": c.project,
100523	})
100524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100525}
100526
100527// Do executes the "compute.interconnectAttachments.aggregatedList" call.
100528// Exactly one of *InterconnectAttachmentAggregatedList or error will be
100529// non-nil. Any non-2xx status code is an error. Response headers are in
100530// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
100531// (if a response was returned at all) in
100532// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
100533// whether the returned error was because http.StatusNotModified was
100534// returned.
100535func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
100536	gensupport.SetOptions(c.urlParams_, opts...)
100537	res, err := c.doRequest("json")
100538	if res != nil && res.StatusCode == http.StatusNotModified {
100539		if res.Body != nil {
100540			res.Body.Close()
100541		}
100542		return nil, &googleapi.Error{
100543			Code:   res.StatusCode,
100544			Header: res.Header,
100545		}
100546	}
100547	if err != nil {
100548		return nil, err
100549	}
100550	defer googleapi.CloseBody(res)
100551	if err := googleapi.CheckResponse(res); err != nil {
100552		return nil, err
100553	}
100554	ret := &InterconnectAttachmentAggregatedList{
100555		ServerResponse: googleapi.ServerResponse{
100556			Header:         res.Header,
100557			HTTPStatusCode: res.StatusCode,
100558		},
100559	}
100560	target := &ret
100561	if err := gensupport.DecodeResponse(target, res); err != nil {
100562		return nil, err
100563	}
100564	return ret, nil
100565	// {
100566	//   "description": "Retrieves an aggregated list of interconnect attachments.",
100567	//   "httpMethod": "GET",
100568	//   "id": "compute.interconnectAttachments.aggregatedList",
100569	//   "parameterOrder": [
100570	//     "project"
100571	//   ],
100572	//   "parameters": {
100573	//     "filter": {
100574	//       "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) ```",
100575	//       "location": "query",
100576	//       "type": "string"
100577	//     },
100578	//     "includeAllScopes": {
100579	//       "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.",
100580	//       "location": "query",
100581	//       "type": "boolean"
100582	//     },
100583	//     "maxResults": {
100584	//       "default": "500",
100585	//       "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`)",
100586	//       "format": "uint32",
100587	//       "location": "query",
100588	//       "minimum": "0",
100589	//       "type": "integer"
100590	//     },
100591	//     "orderBy": {
100592	//       "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.",
100593	//       "location": "query",
100594	//       "type": "string"
100595	//     },
100596	//     "pageToken": {
100597	//       "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.",
100598	//       "location": "query",
100599	//       "type": "string"
100600	//     },
100601	//     "project": {
100602	//       "description": "Project ID for this request.",
100603	//       "location": "path",
100604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100605	//       "required": true,
100606	//       "type": "string"
100607	//     },
100608	//     "returnPartialSuccess": {
100609	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
100610	//       "location": "query",
100611	//       "type": "boolean"
100612	//     }
100613	//   },
100614	//   "path": "projects/{project}/aggregated/interconnectAttachments",
100615	//   "response": {
100616	//     "$ref": "InterconnectAttachmentAggregatedList"
100617	//   },
100618	//   "scopes": [
100619	//     "https://www.googleapis.com/auth/cloud-platform",
100620	//     "https://www.googleapis.com/auth/compute",
100621	//     "https://www.googleapis.com/auth/compute.readonly"
100622	//   ]
100623	// }
100624
100625}
100626
100627// Pages invokes f for each page of results.
100628// A non-nil error returned from f will halt the iteration.
100629// The provided context supersedes any context provided to the Context method.
100630func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
100631	c.ctx_ = ctx
100632	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100633	for {
100634		x, err := c.Do()
100635		if err != nil {
100636			return err
100637		}
100638		if err := f(x); err != nil {
100639			return err
100640		}
100641		if x.NextPageToken == "" {
100642			return nil
100643		}
100644		c.PageToken(x.NextPageToken)
100645	}
100646}
100647
100648// method id "compute.interconnectAttachments.delete":
100649
100650type InterconnectAttachmentsDeleteCall struct {
100651	s                      *Service
100652	project                string
100653	region                 string
100654	interconnectAttachment string
100655	urlParams_             gensupport.URLParams
100656	ctx_                   context.Context
100657	header_                http.Header
100658}
100659
100660// Delete: Deletes the specified interconnect attachment.
100661//
100662// - interconnectAttachment: Name of the interconnect attachment to
100663//   delete.
100664// - project: Project ID for this request.
100665// - region: Name of the region for this request.
100666func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
100667	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100668	c.project = project
100669	c.region = region
100670	c.interconnectAttachment = interconnectAttachment
100671	return c
100672}
100673
100674// RequestId sets the optional parameter "requestId": An optional
100675// request ID to identify requests. Specify a unique request ID so that
100676// if you must retry your request, the server will know to ignore the
100677// request if it has already been completed.
100678//
100679// For example, consider a situation where you make an initial request
100680// and the request times out. If you make the request again with the
100681// same request ID, the server can check if original operation with the
100682// same request ID was received, and if so, will ignore the second
100683// request. This prevents clients from accidentally creating duplicate
100684// commitments.
100685//
100686// The request ID must be a valid UUID with the exception that zero UUID
100687// is not supported (00000000-0000-0000-0000-000000000000).
100688func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
100689	c.urlParams_.Set("requestId", requestId)
100690	return c
100691}
100692
100693// Fields allows partial responses to be retrieved. See
100694// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100695// for more information.
100696func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
100697	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100698	return c
100699}
100700
100701// Context sets the context to be used in this call's Do method. Any
100702// pending HTTP request will be aborted if the provided context is
100703// canceled.
100704func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
100705	c.ctx_ = ctx
100706	return c
100707}
100708
100709// Header returns an http.Header that can be modified by the caller to
100710// add HTTP headers to the request.
100711func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
100712	if c.header_ == nil {
100713		c.header_ = make(http.Header)
100714	}
100715	return c.header_
100716}
100717
100718func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
100719	reqHeaders := make(http.Header)
100720	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100721	for k, v := range c.header_ {
100722		reqHeaders[k] = v
100723	}
100724	reqHeaders.Set("User-Agent", c.s.userAgent())
100725	var body io.Reader = nil
100726	c.urlParams_.Set("alt", alt)
100727	c.urlParams_.Set("prettyPrint", "false")
100728	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
100729	urls += "?" + c.urlParams_.Encode()
100730	req, err := http.NewRequest("DELETE", urls, body)
100731	if err != nil {
100732		return nil, err
100733	}
100734	req.Header = reqHeaders
100735	googleapi.Expand(req.URL, map[string]string{
100736		"project":                c.project,
100737		"region":                 c.region,
100738		"interconnectAttachment": c.interconnectAttachment,
100739	})
100740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100741}
100742
100743// Do executes the "compute.interconnectAttachments.delete" call.
100744// Exactly one of *Operation or error will be non-nil. Any non-2xx
100745// status code is an error. Response headers are in either
100746// *Operation.ServerResponse.Header or (if a response was returned at
100747// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100748// to check whether the returned error was because
100749// http.StatusNotModified was returned.
100750func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100751	gensupport.SetOptions(c.urlParams_, opts...)
100752	res, err := c.doRequest("json")
100753	if res != nil && res.StatusCode == http.StatusNotModified {
100754		if res.Body != nil {
100755			res.Body.Close()
100756		}
100757		return nil, &googleapi.Error{
100758			Code:   res.StatusCode,
100759			Header: res.Header,
100760		}
100761	}
100762	if err != nil {
100763		return nil, err
100764	}
100765	defer googleapi.CloseBody(res)
100766	if err := googleapi.CheckResponse(res); err != nil {
100767		return nil, err
100768	}
100769	ret := &Operation{
100770		ServerResponse: googleapi.ServerResponse{
100771			Header:         res.Header,
100772			HTTPStatusCode: res.StatusCode,
100773		},
100774	}
100775	target := &ret
100776	if err := gensupport.DecodeResponse(target, res); err != nil {
100777		return nil, err
100778	}
100779	return ret, nil
100780	// {
100781	//   "description": "Deletes the specified interconnect attachment.",
100782	//   "httpMethod": "DELETE",
100783	//   "id": "compute.interconnectAttachments.delete",
100784	//   "parameterOrder": [
100785	//     "project",
100786	//     "region",
100787	//     "interconnectAttachment"
100788	//   ],
100789	//   "parameters": {
100790	//     "interconnectAttachment": {
100791	//       "description": "Name of the interconnect attachment to delete.",
100792	//       "location": "path",
100793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100794	//       "required": true,
100795	//       "type": "string"
100796	//     },
100797	//     "project": {
100798	//       "description": "Project ID for this request.",
100799	//       "location": "path",
100800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100801	//       "required": true,
100802	//       "type": "string"
100803	//     },
100804	//     "region": {
100805	//       "description": "Name of the region for this request.",
100806	//       "location": "path",
100807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100808	//       "required": true,
100809	//       "type": "string"
100810	//     },
100811	//     "requestId": {
100812	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100813	//       "location": "query",
100814	//       "type": "string"
100815	//     }
100816	//   },
100817	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
100818	//   "response": {
100819	//     "$ref": "Operation"
100820	//   },
100821	//   "scopes": [
100822	//     "https://www.googleapis.com/auth/cloud-platform",
100823	//     "https://www.googleapis.com/auth/compute"
100824	//   ]
100825	// }
100826
100827}
100828
100829// method id "compute.interconnectAttachments.get":
100830
100831type InterconnectAttachmentsGetCall struct {
100832	s                      *Service
100833	project                string
100834	region                 string
100835	interconnectAttachment string
100836	urlParams_             gensupport.URLParams
100837	ifNoneMatch_           string
100838	ctx_                   context.Context
100839	header_                http.Header
100840}
100841
100842// Get: Returns the specified interconnect attachment.
100843//
100844// - interconnectAttachment: Name of the interconnect attachment to
100845//   return.
100846// - project: Project ID for this request.
100847// - region: Name of the region for this request.
100848func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
100849	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100850	c.project = project
100851	c.region = region
100852	c.interconnectAttachment = interconnectAttachment
100853	return c
100854}
100855
100856// Fields allows partial responses to be retrieved. See
100857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100858// for more information.
100859func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
100860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100861	return c
100862}
100863
100864// IfNoneMatch sets the optional parameter which makes the operation
100865// fail if the object's ETag matches the given value. This is useful for
100866// getting updates only after the object has changed since the last
100867// request. Use googleapi.IsNotModified to check whether the response
100868// error from Do is the result of In-None-Match.
100869func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
100870	c.ifNoneMatch_ = entityTag
100871	return c
100872}
100873
100874// Context sets the context to be used in this call's Do method. Any
100875// pending HTTP request will be aborted if the provided context is
100876// canceled.
100877func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
100878	c.ctx_ = ctx
100879	return c
100880}
100881
100882// Header returns an http.Header that can be modified by the caller to
100883// add HTTP headers to the request.
100884func (c *InterconnectAttachmentsGetCall) Header() http.Header {
100885	if c.header_ == nil {
100886		c.header_ = make(http.Header)
100887	}
100888	return c.header_
100889}
100890
100891func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
100892	reqHeaders := make(http.Header)
100893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100894	for k, v := range c.header_ {
100895		reqHeaders[k] = v
100896	}
100897	reqHeaders.Set("User-Agent", c.s.userAgent())
100898	if c.ifNoneMatch_ != "" {
100899		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100900	}
100901	var body io.Reader = nil
100902	c.urlParams_.Set("alt", alt)
100903	c.urlParams_.Set("prettyPrint", "false")
100904	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
100905	urls += "?" + c.urlParams_.Encode()
100906	req, err := http.NewRequest("GET", urls, body)
100907	if err != nil {
100908		return nil, err
100909	}
100910	req.Header = reqHeaders
100911	googleapi.Expand(req.URL, map[string]string{
100912		"project":                c.project,
100913		"region":                 c.region,
100914		"interconnectAttachment": c.interconnectAttachment,
100915	})
100916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100917}
100918
100919// Do executes the "compute.interconnectAttachments.get" call.
100920// Exactly one of *InterconnectAttachment or error will be non-nil. Any
100921// non-2xx status code is an error. Response headers are in either
100922// *InterconnectAttachment.ServerResponse.Header or (if a response was
100923// returned at all) in error.(*googleapi.Error).Header. Use
100924// googleapi.IsNotModified to check whether the returned error was
100925// because http.StatusNotModified was returned.
100926func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
100927	gensupport.SetOptions(c.urlParams_, opts...)
100928	res, err := c.doRequest("json")
100929	if res != nil && res.StatusCode == http.StatusNotModified {
100930		if res.Body != nil {
100931			res.Body.Close()
100932		}
100933		return nil, &googleapi.Error{
100934			Code:   res.StatusCode,
100935			Header: res.Header,
100936		}
100937	}
100938	if err != nil {
100939		return nil, err
100940	}
100941	defer googleapi.CloseBody(res)
100942	if err := googleapi.CheckResponse(res); err != nil {
100943		return nil, err
100944	}
100945	ret := &InterconnectAttachment{
100946		ServerResponse: googleapi.ServerResponse{
100947			Header:         res.Header,
100948			HTTPStatusCode: res.StatusCode,
100949		},
100950	}
100951	target := &ret
100952	if err := gensupport.DecodeResponse(target, res); err != nil {
100953		return nil, err
100954	}
100955	return ret, nil
100956	// {
100957	//   "description": "Returns the specified interconnect attachment.",
100958	//   "httpMethod": "GET",
100959	//   "id": "compute.interconnectAttachments.get",
100960	//   "parameterOrder": [
100961	//     "project",
100962	//     "region",
100963	//     "interconnectAttachment"
100964	//   ],
100965	//   "parameters": {
100966	//     "interconnectAttachment": {
100967	//       "description": "Name of the interconnect attachment to return.",
100968	//       "location": "path",
100969	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100970	//       "required": true,
100971	//       "type": "string"
100972	//     },
100973	//     "project": {
100974	//       "description": "Project ID for this request.",
100975	//       "location": "path",
100976	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100977	//       "required": true,
100978	//       "type": "string"
100979	//     },
100980	//     "region": {
100981	//       "description": "Name of the region for this request.",
100982	//       "location": "path",
100983	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100984	//       "required": true,
100985	//       "type": "string"
100986	//     }
100987	//   },
100988	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
100989	//   "response": {
100990	//     "$ref": "InterconnectAttachment"
100991	//   },
100992	//   "scopes": [
100993	//     "https://www.googleapis.com/auth/cloud-platform",
100994	//     "https://www.googleapis.com/auth/compute",
100995	//     "https://www.googleapis.com/auth/compute.readonly"
100996	//   ]
100997	// }
100998
100999}
101000
101001// method id "compute.interconnectAttachments.insert":
101002
101003type InterconnectAttachmentsInsertCall struct {
101004	s                      *Service
101005	project                string
101006	region                 string
101007	interconnectattachment *InterconnectAttachment
101008	urlParams_             gensupport.URLParams
101009	ctx_                   context.Context
101010	header_                http.Header
101011}
101012
101013// Insert: Creates an InterconnectAttachment in the specified project
101014// using the data included in the request.
101015//
101016// - project: Project ID for this request.
101017// - region: Name of the region for this request.
101018func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
101019	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101020	c.project = project
101021	c.region = region
101022	c.interconnectattachment = interconnectattachment
101023	return c
101024}
101025
101026// RequestId sets the optional parameter "requestId": An optional
101027// request ID to identify requests. Specify a unique request ID so that
101028// if you must retry your request, the server will know to ignore the
101029// request if it has already been completed.
101030//
101031// For example, consider a situation where you make an initial request
101032// and the request times out. If you make the request again with the
101033// same request ID, the server can check if original operation with the
101034// same request ID was received, and if so, will ignore the second
101035// request. This prevents clients from accidentally creating duplicate
101036// commitments.
101037//
101038// The request ID must be a valid UUID with the exception that zero UUID
101039// is not supported (00000000-0000-0000-0000-000000000000).
101040func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
101041	c.urlParams_.Set("requestId", requestId)
101042	return c
101043}
101044
101045// ValidateOnly sets the optional parameter "validateOnly": If true, the
101046// request will not be committed.
101047func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
101048	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
101049	return c
101050}
101051
101052// Fields allows partial responses to be retrieved. See
101053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101054// for more information.
101055func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
101056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101057	return c
101058}
101059
101060// Context sets the context to be used in this call's Do method. Any
101061// pending HTTP request will be aborted if the provided context is
101062// canceled.
101063func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
101064	c.ctx_ = ctx
101065	return c
101066}
101067
101068// Header returns an http.Header that can be modified by the caller to
101069// add HTTP headers to the request.
101070func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
101071	if c.header_ == nil {
101072		c.header_ = make(http.Header)
101073	}
101074	return c.header_
101075}
101076
101077func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
101078	reqHeaders := make(http.Header)
101079	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101080	for k, v := range c.header_ {
101081		reqHeaders[k] = v
101082	}
101083	reqHeaders.Set("User-Agent", c.s.userAgent())
101084	var body io.Reader = nil
101085	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
101086	if err != nil {
101087		return nil, err
101088	}
101089	reqHeaders.Set("Content-Type", "application/json")
101090	c.urlParams_.Set("alt", alt)
101091	c.urlParams_.Set("prettyPrint", "false")
101092	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
101093	urls += "?" + c.urlParams_.Encode()
101094	req, err := http.NewRequest("POST", urls, body)
101095	if err != nil {
101096		return nil, err
101097	}
101098	req.Header = reqHeaders
101099	googleapi.Expand(req.URL, map[string]string{
101100		"project": c.project,
101101		"region":  c.region,
101102	})
101103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101104}
101105
101106// Do executes the "compute.interconnectAttachments.insert" call.
101107// Exactly one of *Operation or error will be non-nil. Any non-2xx
101108// status code is an error. Response headers are in either
101109// *Operation.ServerResponse.Header or (if a response was returned at
101110// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101111// to check whether the returned error was because
101112// http.StatusNotModified was returned.
101113func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101114	gensupport.SetOptions(c.urlParams_, opts...)
101115	res, err := c.doRequest("json")
101116	if res != nil && res.StatusCode == http.StatusNotModified {
101117		if res.Body != nil {
101118			res.Body.Close()
101119		}
101120		return nil, &googleapi.Error{
101121			Code:   res.StatusCode,
101122			Header: res.Header,
101123		}
101124	}
101125	if err != nil {
101126		return nil, err
101127	}
101128	defer googleapi.CloseBody(res)
101129	if err := googleapi.CheckResponse(res); err != nil {
101130		return nil, err
101131	}
101132	ret := &Operation{
101133		ServerResponse: googleapi.ServerResponse{
101134			Header:         res.Header,
101135			HTTPStatusCode: res.StatusCode,
101136		},
101137	}
101138	target := &ret
101139	if err := gensupport.DecodeResponse(target, res); err != nil {
101140		return nil, err
101141	}
101142	return ret, nil
101143	// {
101144	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
101145	//   "httpMethod": "POST",
101146	//   "id": "compute.interconnectAttachments.insert",
101147	//   "parameterOrder": [
101148	//     "project",
101149	//     "region"
101150	//   ],
101151	//   "parameters": {
101152	//     "project": {
101153	//       "description": "Project ID for this request.",
101154	//       "location": "path",
101155	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101156	//       "required": true,
101157	//       "type": "string"
101158	//     },
101159	//     "region": {
101160	//       "description": "Name of the region for this request.",
101161	//       "location": "path",
101162	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101163	//       "required": true,
101164	//       "type": "string"
101165	//     },
101166	//     "requestId": {
101167	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101168	//       "location": "query",
101169	//       "type": "string"
101170	//     },
101171	//     "validateOnly": {
101172	//       "description": "If true, the request will not be committed.",
101173	//       "location": "query",
101174	//       "type": "boolean"
101175	//     }
101176	//   },
101177	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
101178	//   "request": {
101179	//     "$ref": "InterconnectAttachment"
101180	//   },
101181	//   "response": {
101182	//     "$ref": "Operation"
101183	//   },
101184	//   "scopes": [
101185	//     "https://www.googleapis.com/auth/cloud-platform",
101186	//     "https://www.googleapis.com/auth/compute"
101187	//   ]
101188	// }
101189
101190}
101191
101192// method id "compute.interconnectAttachments.list":
101193
101194type InterconnectAttachmentsListCall struct {
101195	s            *Service
101196	project      string
101197	region       string
101198	urlParams_   gensupport.URLParams
101199	ifNoneMatch_ string
101200	ctx_         context.Context
101201	header_      http.Header
101202}
101203
101204// List: Retrieves the list of interconnect attachments contained within
101205// the specified region.
101206//
101207// - project: Project ID for this request.
101208// - region: Name of the region for this request.
101209func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
101210	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101211	c.project = project
101212	c.region = region
101213	return c
101214}
101215
101216// Filter sets the optional parameter "filter": A filter expression that
101217// filters resources listed in the response. The expression must specify
101218// the field name, a comparison operator, and the value that you want to
101219// use for filtering. The value must be a string, a number, or a
101220// boolean. The comparison operator must be either `=`, `!=`, `>`, or
101221// `<`.
101222//
101223// For example, if you are filtering Compute Engine instances, you can
101224// exclude instances named `example-instance` by specifying `name !=
101225// example-instance`.
101226//
101227// You can also filter nested fields. For example, you could specify
101228// `scheduling.automaticRestart = false` to include instances only if
101229// they are not scheduled for automatic restarts. You can use filtering
101230// on nested fields to filter based on resource labels.
101231//
101232// To filter on multiple expressions, provide each separate expression
101233// within parentheses. For example: ``` (scheduling.automaticRestart =
101234// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
101235// is an `AND` expression. However, you can include `AND` and `OR`
101236// expressions explicitly. For example: ``` (cpuPlatform = "Intel
101237// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
101238// (scheduling.automaticRestart = true) ```
101239func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
101240	c.urlParams_.Set("filter", filter)
101241	return c
101242}
101243
101244// MaxResults sets the optional parameter "maxResults": The maximum
101245// number of results per page that should be returned. If the number of
101246// available results is larger than `maxResults`, Compute Engine returns
101247// a `nextPageToken` that can be used to get the next page of results in
101248// subsequent list requests. Acceptable values are `0` to `500`,
101249// inclusive. (Default: `500`)
101250func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
101251	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101252	return c
101253}
101254
101255// OrderBy sets the optional parameter "orderBy": Sorts list results by
101256// a certain order. By default, results are returned in alphanumerical
101257// order based on the resource name.
101258//
101259// You can also sort results in descending order based on the creation
101260// timestamp using `orderBy="creationTimestamp desc". This sorts
101261// results based on the `creationTimestamp` field in reverse
101262// chronological order (newest result first). Use this to sort resources
101263// like operations so that the newest operation is returned
101264// first.
101265//
101266// Currently, only sorting by `name` or `creationTimestamp desc` is
101267// supported.
101268func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
101269	c.urlParams_.Set("orderBy", orderBy)
101270	return c
101271}
101272
101273// PageToken sets the optional parameter "pageToken": Specifies a page
101274// token to use. Set `pageToken` to the `nextPageToken` returned by a
101275// previous list request to get the next page of results.
101276func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
101277	c.urlParams_.Set("pageToken", pageToken)
101278	return c
101279}
101280
101281// ReturnPartialSuccess sets the optional parameter
101282// "returnPartialSuccess": Opt-in for partial success behavior which
101283// provides partial results in case of failure. The default value is
101284// false.
101285func (c *InterconnectAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsListCall {
101286	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
101287	return c
101288}
101289
101290// Fields allows partial responses to be retrieved. See
101291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101292// for more information.
101293func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
101294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101295	return c
101296}
101297
101298// IfNoneMatch sets the optional parameter which makes the operation
101299// fail if the object's ETag matches the given value. This is useful for
101300// getting updates only after the object has changed since the last
101301// request. Use googleapi.IsNotModified to check whether the response
101302// error from Do is the result of In-None-Match.
101303func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
101304	c.ifNoneMatch_ = entityTag
101305	return c
101306}
101307
101308// Context sets the context to be used in this call's Do method. Any
101309// pending HTTP request will be aborted if the provided context is
101310// canceled.
101311func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
101312	c.ctx_ = ctx
101313	return c
101314}
101315
101316// Header returns an http.Header that can be modified by the caller to
101317// add HTTP headers to the request.
101318func (c *InterconnectAttachmentsListCall) Header() http.Header {
101319	if c.header_ == nil {
101320		c.header_ = make(http.Header)
101321	}
101322	return c.header_
101323}
101324
101325func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
101326	reqHeaders := make(http.Header)
101327	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101328	for k, v := range c.header_ {
101329		reqHeaders[k] = v
101330	}
101331	reqHeaders.Set("User-Agent", c.s.userAgent())
101332	if c.ifNoneMatch_ != "" {
101333		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101334	}
101335	var body io.Reader = nil
101336	c.urlParams_.Set("alt", alt)
101337	c.urlParams_.Set("prettyPrint", "false")
101338	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
101339	urls += "?" + c.urlParams_.Encode()
101340	req, err := http.NewRequest("GET", urls, body)
101341	if err != nil {
101342		return nil, err
101343	}
101344	req.Header = reqHeaders
101345	googleapi.Expand(req.URL, map[string]string{
101346		"project": c.project,
101347		"region":  c.region,
101348	})
101349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101350}
101351
101352// Do executes the "compute.interconnectAttachments.list" call.
101353// Exactly one of *InterconnectAttachmentList or error will be non-nil.
101354// Any non-2xx status code is an error. Response headers are in either
101355// *InterconnectAttachmentList.ServerResponse.Header or (if a response
101356// was returned at all) in error.(*googleapi.Error).Header. Use
101357// googleapi.IsNotModified to check whether the returned error was
101358// because http.StatusNotModified was returned.
101359func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
101360	gensupport.SetOptions(c.urlParams_, opts...)
101361	res, err := c.doRequest("json")
101362	if res != nil && res.StatusCode == http.StatusNotModified {
101363		if res.Body != nil {
101364			res.Body.Close()
101365		}
101366		return nil, &googleapi.Error{
101367			Code:   res.StatusCode,
101368			Header: res.Header,
101369		}
101370	}
101371	if err != nil {
101372		return nil, err
101373	}
101374	defer googleapi.CloseBody(res)
101375	if err := googleapi.CheckResponse(res); err != nil {
101376		return nil, err
101377	}
101378	ret := &InterconnectAttachmentList{
101379		ServerResponse: googleapi.ServerResponse{
101380			Header:         res.Header,
101381			HTTPStatusCode: res.StatusCode,
101382		},
101383	}
101384	target := &ret
101385	if err := gensupport.DecodeResponse(target, res); err != nil {
101386		return nil, err
101387	}
101388	return ret, nil
101389	// {
101390	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
101391	//   "httpMethod": "GET",
101392	//   "id": "compute.interconnectAttachments.list",
101393	//   "parameterOrder": [
101394	//     "project",
101395	//     "region"
101396	//   ],
101397	//   "parameters": {
101398	//     "filter": {
101399	//       "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) ```",
101400	//       "location": "query",
101401	//       "type": "string"
101402	//     },
101403	//     "maxResults": {
101404	//       "default": "500",
101405	//       "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`)",
101406	//       "format": "uint32",
101407	//       "location": "query",
101408	//       "minimum": "0",
101409	//       "type": "integer"
101410	//     },
101411	//     "orderBy": {
101412	//       "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.",
101413	//       "location": "query",
101414	//       "type": "string"
101415	//     },
101416	//     "pageToken": {
101417	//       "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.",
101418	//       "location": "query",
101419	//       "type": "string"
101420	//     },
101421	//     "project": {
101422	//       "description": "Project ID for this request.",
101423	//       "location": "path",
101424	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101425	//       "required": true,
101426	//       "type": "string"
101427	//     },
101428	//     "region": {
101429	//       "description": "Name of the region for this request.",
101430	//       "location": "path",
101431	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101432	//       "required": true,
101433	//       "type": "string"
101434	//     },
101435	//     "returnPartialSuccess": {
101436	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
101437	//       "location": "query",
101438	//       "type": "boolean"
101439	//     }
101440	//   },
101441	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
101442	//   "response": {
101443	//     "$ref": "InterconnectAttachmentList"
101444	//   },
101445	//   "scopes": [
101446	//     "https://www.googleapis.com/auth/cloud-platform",
101447	//     "https://www.googleapis.com/auth/compute",
101448	//     "https://www.googleapis.com/auth/compute.readonly"
101449	//   ]
101450	// }
101451
101452}
101453
101454// Pages invokes f for each page of results.
101455// A non-nil error returned from f will halt the iteration.
101456// The provided context supersedes any context provided to the Context method.
101457func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
101458	c.ctx_ = ctx
101459	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101460	for {
101461		x, err := c.Do()
101462		if err != nil {
101463			return err
101464		}
101465		if err := f(x); err != nil {
101466			return err
101467		}
101468		if x.NextPageToken == "" {
101469			return nil
101470		}
101471		c.PageToken(x.NextPageToken)
101472	}
101473}
101474
101475// method id "compute.interconnectAttachments.patch":
101476
101477type InterconnectAttachmentsPatchCall struct {
101478	s                      *Service
101479	project                string
101480	region                 string
101481	interconnectAttachment string
101482	interconnectattachment *InterconnectAttachment
101483	urlParams_             gensupport.URLParams
101484	ctx_                   context.Context
101485	header_                http.Header
101486}
101487
101488// Patch: Updates the specified interconnect attachment with the data
101489// included in the request. This method supports PATCH semantics and
101490// uses the JSON merge patch format and processing rules.
101491//
101492// - interconnectAttachment: Name of the interconnect attachment to
101493//   patch.
101494// - project: Project ID for this request.
101495// - region: Name of the region scoping this request.
101496func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
101497	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101498	c.project = project
101499	c.region = region
101500	c.interconnectAttachment = interconnectAttachment
101501	c.interconnectattachment = interconnectattachment
101502	return c
101503}
101504
101505// RequestId sets the optional parameter "requestId": An optional
101506// request ID to identify requests. Specify a unique request ID so that
101507// if you must retry your request, the server will know to ignore the
101508// request if it has already been completed.
101509//
101510// For example, consider a situation where you make an initial request
101511// and the request times out. If you make the request again with the
101512// same request ID, the server can check if original operation with the
101513// same request ID was received, and if so, will ignore the second
101514// request. This prevents clients from accidentally creating duplicate
101515// commitments.
101516//
101517// The request ID must be a valid UUID with the exception that zero UUID
101518// is not supported (00000000-0000-0000-0000-000000000000).
101519func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
101520	c.urlParams_.Set("requestId", requestId)
101521	return c
101522}
101523
101524// Fields allows partial responses to be retrieved. See
101525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101526// for more information.
101527func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
101528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101529	return c
101530}
101531
101532// Context sets the context to be used in this call's Do method. Any
101533// pending HTTP request will be aborted if the provided context is
101534// canceled.
101535func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
101536	c.ctx_ = ctx
101537	return c
101538}
101539
101540// Header returns an http.Header that can be modified by the caller to
101541// add HTTP headers to the request.
101542func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
101543	if c.header_ == nil {
101544		c.header_ = make(http.Header)
101545	}
101546	return c.header_
101547}
101548
101549func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
101550	reqHeaders := make(http.Header)
101551	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101552	for k, v := range c.header_ {
101553		reqHeaders[k] = v
101554	}
101555	reqHeaders.Set("User-Agent", c.s.userAgent())
101556	var body io.Reader = nil
101557	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
101558	if err != nil {
101559		return nil, err
101560	}
101561	reqHeaders.Set("Content-Type", "application/json")
101562	c.urlParams_.Set("alt", alt)
101563	c.urlParams_.Set("prettyPrint", "false")
101564	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
101565	urls += "?" + c.urlParams_.Encode()
101566	req, err := http.NewRequest("PATCH", urls, body)
101567	if err != nil {
101568		return nil, err
101569	}
101570	req.Header = reqHeaders
101571	googleapi.Expand(req.URL, map[string]string{
101572		"project":                c.project,
101573		"region":                 c.region,
101574		"interconnectAttachment": c.interconnectAttachment,
101575	})
101576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101577}
101578
101579// Do executes the "compute.interconnectAttachments.patch" call.
101580// Exactly one of *Operation or error will be non-nil. Any non-2xx
101581// status code is an error. Response headers are in either
101582// *Operation.ServerResponse.Header or (if a response was returned at
101583// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101584// to check whether the returned error was because
101585// http.StatusNotModified was returned.
101586func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101587	gensupport.SetOptions(c.urlParams_, opts...)
101588	res, err := c.doRequest("json")
101589	if res != nil && res.StatusCode == http.StatusNotModified {
101590		if res.Body != nil {
101591			res.Body.Close()
101592		}
101593		return nil, &googleapi.Error{
101594			Code:   res.StatusCode,
101595			Header: res.Header,
101596		}
101597	}
101598	if err != nil {
101599		return nil, err
101600	}
101601	defer googleapi.CloseBody(res)
101602	if err := googleapi.CheckResponse(res); err != nil {
101603		return nil, err
101604	}
101605	ret := &Operation{
101606		ServerResponse: googleapi.ServerResponse{
101607			Header:         res.Header,
101608			HTTPStatusCode: res.StatusCode,
101609		},
101610	}
101611	target := &ret
101612	if err := gensupport.DecodeResponse(target, res); err != nil {
101613		return nil, err
101614	}
101615	return ret, nil
101616	// {
101617	//   "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.",
101618	//   "httpMethod": "PATCH",
101619	//   "id": "compute.interconnectAttachments.patch",
101620	//   "parameterOrder": [
101621	//     "project",
101622	//     "region",
101623	//     "interconnectAttachment"
101624	//   ],
101625	//   "parameters": {
101626	//     "interconnectAttachment": {
101627	//       "description": "Name of the interconnect attachment to patch.",
101628	//       "location": "path",
101629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101630	//       "required": true,
101631	//       "type": "string"
101632	//     },
101633	//     "project": {
101634	//       "description": "Project ID for this request.",
101635	//       "location": "path",
101636	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101637	//       "required": true,
101638	//       "type": "string"
101639	//     },
101640	//     "region": {
101641	//       "description": "Name of the region scoping this request.",
101642	//       "location": "path",
101643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101644	//       "required": true,
101645	//       "type": "string"
101646	//     },
101647	//     "requestId": {
101648	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101649	//       "location": "query",
101650	//       "type": "string"
101651	//     }
101652	//   },
101653	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
101654	//   "request": {
101655	//     "$ref": "InterconnectAttachment"
101656	//   },
101657	//   "response": {
101658	//     "$ref": "Operation"
101659	//   },
101660	//   "scopes": [
101661	//     "https://www.googleapis.com/auth/cloud-platform",
101662	//     "https://www.googleapis.com/auth/compute"
101663	//   ]
101664	// }
101665
101666}
101667
101668// method id "compute.interconnectAttachments.setLabels":
101669
101670type InterconnectAttachmentsSetLabelsCall struct {
101671	s                      *Service
101672	project                string
101673	region                 string
101674	resource               string
101675	regionsetlabelsrequest *RegionSetLabelsRequest
101676	urlParams_             gensupport.URLParams
101677	ctx_                   context.Context
101678	header_                http.Header
101679}
101680
101681// SetLabels: Sets the labels on an InterconnectAttachment. To learn
101682// more about labels, read the Labeling Resources documentation.
101683//
101684// - project: Project ID for this request.
101685// - region: The region for this request.
101686// - resource: Name or id of the resource for this request.
101687func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall {
101688	c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101689	c.project = project
101690	c.region = region
101691	c.resource = resource
101692	c.regionsetlabelsrequest = regionsetlabelsrequest
101693	return c
101694}
101695
101696// RequestId sets the optional parameter "requestId": An optional
101697// request ID to identify requests. Specify a unique request ID so that
101698// if you must retry your request, the server will know to ignore the
101699// request if it has already been completed.
101700//
101701// For example, consider a situation where you make an initial request
101702// and the request times out. If you make the request again with the
101703// same request ID, the server can check if original operation with the
101704// same request ID was received, and if so, will ignore the second
101705// request. This prevents clients from accidentally creating duplicate
101706// commitments.
101707//
101708// The request ID must be a valid UUID with the exception that zero UUID
101709// is not supported (00000000-0000-0000-0000-000000000000).
101710func (c *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall {
101711	c.urlParams_.Set("requestId", requestId)
101712	return c
101713}
101714
101715// Fields allows partial responses to be retrieved. See
101716// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101717// for more information.
101718func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall {
101719	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101720	return c
101721}
101722
101723// Context sets the context to be used in this call's Do method. Any
101724// pending HTTP request will be aborted if the provided context is
101725// canceled.
101726func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall {
101727	c.ctx_ = ctx
101728	return c
101729}
101730
101731// Header returns an http.Header that can be modified by the caller to
101732// add HTTP headers to the request.
101733func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header {
101734	if c.header_ == nil {
101735		c.header_ = make(http.Header)
101736	}
101737	return c.header_
101738}
101739
101740func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
101741	reqHeaders := make(http.Header)
101742	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101743	for k, v := range c.header_ {
101744		reqHeaders[k] = v
101745	}
101746	reqHeaders.Set("User-Agent", c.s.userAgent())
101747	var body io.Reader = nil
101748	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
101749	if err != nil {
101750		return nil, err
101751	}
101752	reqHeaders.Set("Content-Type", "application/json")
101753	c.urlParams_.Set("alt", alt)
101754	c.urlParams_.Set("prettyPrint", "false")
101755	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels")
101756	urls += "?" + c.urlParams_.Encode()
101757	req, err := http.NewRequest("POST", urls, body)
101758	if err != nil {
101759		return nil, err
101760	}
101761	req.Header = reqHeaders
101762	googleapi.Expand(req.URL, map[string]string{
101763		"project":  c.project,
101764		"region":   c.region,
101765		"resource": c.resource,
101766	})
101767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101768}
101769
101770// Do executes the "compute.interconnectAttachments.setLabels" call.
101771// Exactly one of *Operation or error will be non-nil. Any non-2xx
101772// status code is an error. Response headers are in either
101773// *Operation.ServerResponse.Header or (if a response was returned at
101774// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101775// to check whether the returned error was because
101776// http.StatusNotModified was returned.
101777func (c *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101778	gensupport.SetOptions(c.urlParams_, opts...)
101779	res, err := c.doRequest("json")
101780	if res != nil && res.StatusCode == http.StatusNotModified {
101781		if res.Body != nil {
101782			res.Body.Close()
101783		}
101784		return nil, &googleapi.Error{
101785			Code:   res.StatusCode,
101786			Header: res.Header,
101787		}
101788	}
101789	if err != nil {
101790		return nil, err
101791	}
101792	defer googleapi.CloseBody(res)
101793	if err := googleapi.CheckResponse(res); err != nil {
101794		return nil, err
101795	}
101796	ret := &Operation{
101797		ServerResponse: googleapi.ServerResponse{
101798			Header:         res.Header,
101799			HTTPStatusCode: res.StatusCode,
101800		},
101801	}
101802	target := &ret
101803	if err := gensupport.DecodeResponse(target, res); err != nil {
101804		return nil, err
101805	}
101806	return ret, nil
101807	// {
101808	//   "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.",
101809	//   "httpMethod": "POST",
101810	//   "id": "compute.interconnectAttachments.setLabels",
101811	//   "parameterOrder": [
101812	//     "project",
101813	//     "region",
101814	//     "resource"
101815	//   ],
101816	//   "parameters": {
101817	//     "project": {
101818	//       "description": "Project ID for this request.",
101819	//       "location": "path",
101820	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101821	//       "required": true,
101822	//       "type": "string"
101823	//     },
101824	//     "region": {
101825	//       "description": "The region for this request.",
101826	//       "location": "path",
101827	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101828	//       "required": true,
101829	//       "type": "string"
101830	//     },
101831	//     "requestId": {
101832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101833	//       "location": "query",
101834	//       "type": "string"
101835	//     },
101836	//     "resource": {
101837	//       "description": "Name or id of the resource for this request.",
101838	//       "location": "path",
101839	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101840	//       "required": true,
101841	//       "type": "string"
101842	//     }
101843	//   },
101844	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
101845	//   "request": {
101846	//     "$ref": "RegionSetLabelsRequest"
101847	//   },
101848	//   "response": {
101849	//     "$ref": "Operation"
101850	//   },
101851	//   "scopes": [
101852	//     "https://www.googleapis.com/auth/cloud-platform",
101853	//     "https://www.googleapis.com/auth/compute"
101854	//   ]
101855	// }
101856
101857}
101858
101859// method id "compute.interconnectAttachments.testIamPermissions":
101860
101861type InterconnectAttachmentsTestIamPermissionsCall struct {
101862	s                      *Service
101863	project                string
101864	region                 string
101865	resource               string
101866	testpermissionsrequest *TestPermissionsRequest
101867	urlParams_             gensupport.URLParams
101868	ctx_                   context.Context
101869	header_                http.Header
101870}
101871
101872// TestIamPermissions: Returns permissions that a caller has on the
101873// specified resource.
101874//
101875// - project: Project ID for this request.
101876// - region: The name of the region for this request.
101877// - resource: Name or id of the resource for this request.
101878func (r *InterconnectAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectAttachmentsTestIamPermissionsCall {
101879	c := &InterconnectAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101880	c.project = project
101881	c.region = region
101882	c.resource = resource
101883	c.testpermissionsrequest = testpermissionsrequest
101884	return c
101885}
101886
101887// Fields allows partial responses to be retrieved. See
101888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101889// for more information.
101890func (c *InterconnectAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsTestIamPermissionsCall {
101891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101892	return c
101893}
101894
101895// Context sets the context to be used in this call's Do method. Any
101896// pending HTTP request will be aborted if the provided context is
101897// canceled.
101898func (c *InterconnectAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectAttachmentsTestIamPermissionsCall {
101899	c.ctx_ = ctx
101900	return c
101901}
101902
101903// Header returns an http.Header that can be modified by the caller to
101904// add HTTP headers to the request.
101905func (c *InterconnectAttachmentsTestIamPermissionsCall) Header() http.Header {
101906	if c.header_ == nil {
101907		c.header_ = make(http.Header)
101908	}
101909	return c.header_
101910}
101911
101912func (c *InterconnectAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
101913	reqHeaders := make(http.Header)
101914	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101915	for k, v := range c.header_ {
101916		reqHeaders[k] = v
101917	}
101918	reqHeaders.Set("User-Agent", c.s.userAgent())
101919	var body io.Reader = nil
101920	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
101921	if err != nil {
101922		return nil, err
101923	}
101924	reqHeaders.Set("Content-Type", "application/json")
101925	c.urlParams_.Set("alt", alt)
101926	c.urlParams_.Set("prettyPrint", "false")
101927	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions")
101928	urls += "?" + c.urlParams_.Encode()
101929	req, err := http.NewRequest("POST", urls, body)
101930	if err != nil {
101931		return nil, err
101932	}
101933	req.Header = reqHeaders
101934	googleapi.Expand(req.URL, map[string]string{
101935		"project":  c.project,
101936		"region":   c.region,
101937		"resource": c.resource,
101938	})
101939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101940}
101941
101942// Do executes the "compute.interconnectAttachments.testIamPermissions" call.
101943// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
101944// non-2xx status code is an error. Response headers are in either
101945// *TestPermissionsResponse.ServerResponse.Header or (if a response was
101946// returned at all) in error.(*googleapi.Error).Header. Use
101947// googleapi.IsNotModified to check whether the returned error was
101948// because http.StatusNotModified was returned.
101949func (c *InterconnectAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
101950	gensupport.SetOptions(c.urlParams_, opts...)
101951	res, err := c.doRequest("json")
101952	if res != nil && res.StatusCode == http.StatusNotModified {
101953		if res.Body != nil {
101954			res.Body.Close()
101955		}
101956		return nil, &googleapi.Error{
101957			Code:   res.StatusCode,
101958			Header: res.Header,
101959		}
101960	}
101961	if err != nil {
101962		return nil, err
101963	}
101964	defer googleapi.CloseBody(res)
101965	if err := googleapi.CheckResponse(res); err != nil {
101966		return nil, err
101967	}
101968	ret := &TestPermissionsResponse{
101969		ServerResponse: googleapi.ServerResponse{
101970			Header:         res.Header,
101971			HTTPStatusCode: res.StatusCode,
101972		},
101973	}
101974	target := &ret
101975	if err := gensupport.DecodeResponse(target, res); err != nil {
101976		return nil, err
101977	}
101978	return ret, nil
101979	// {
101980	//   "description": "Returns permissions that a caller has on the specified resource.",
101981	//   "httpMethod": "POST",
101982	//   "id": "compute.interconnectAttachments.testIamPermissions",
101983	//   "parameterOrder": [
101984	//     "project",
101985	//     "region",
101986	//     "resource"
101987	//   ],
101988	//   "parameters": {
101989	//     "project": {
101990	//       "description": "Project ID for this request.",
101991	//       "location": "path",
101992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101993	//       "required": true,
101994	//       "type": "string"
101995	//     },
101996	//     "region": {
101997	//       "description": "The name of the region for this request.",
101998	//       "location": "path",
101999	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102000	//       "required": true,
102001	//       "type": "string"
102002	//     },
102003	//     "resource": {
102004	//       "description": "Name or id of the resource for this request.",
102005	//       "location": "path",
102006	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102007	//       "required": true,
102008	//       "type": "string"
102009	//     }
102010	//   },
102011	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions",
102012	//   "request": {
102013	//     "$ref": "TestPermissionsRequest"
102014	//   },
102015	//   "response": {
102016	//     "$ref": "TestPermissionsResponse"
102017	//   },
102018	//   "scopes": [
102019	//     "https://www.googleapis.com/auth/cloud-platform",
102020	//     "https://www.googleapis.com/auth/compute",
102021	//     "https://www.googleapis.com/auth/compute.readonly"
102022	//   ]
102023	// }
102024
102025}
102026
102027// method id "compute.interconnectLocations.get":
102028
102029type InterconnectLocationsGetCall struct {
102030	s                    *Service
102031	project              string
102032	interconnectLocation string
102033	urlParams_           gensupport.URLParams
102034	ifNoneMatch_         string
102035	ctx_                 context.Context
102036	header_              http.Header
102037}
102038
102039// Get: Returns the details for the specified interconnect location.
102040// Gets a list of available interconnect locations by making a list()
102041// request.
102042//
102043// - interconnectLocation: Name of the interconnect location to return.
102044// - project: Project ID for this request.
102045func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
102046	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102047	c.project = project
102048	c.interconnectLocation = interconnectLocation
102049	return c
102050}
102051
102052// Fields allows partial responses to be retrieved. See
102053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102054// for more information.
102055func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
102056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102057	return c
102058}
102059
102060// IfNoneMatch sets the optional parameter which makes the operation
102061// fail if the object's ETag matches the given value. This is useful for
102062// getting updates only after the object has changed since the last
102063// request. Use googleapi.IsNotModified to check whether the response
102064// error from Do is the result of In-None-Match.
102065func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
102066	c.ifNoneMatch_ = entityTag
102067	return c
102068}
102069
102070// Context sets the context to be used in this call's Do method. Any
102071// pending HTTP request will be aborted if the provided context is
102072// canceled.
102073func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
102074	c.ctx_ = ctx
102075	return c
102076}
102077
102078// Header returns an http.Header that can be modified by the caller to
102079// add HTTP headers to the request.
102080func (c *InterconnectLocationsGetCall) Header() http.Header {
102081	if c.header_ == nil {
102082		c.header_ = make(http.Header)
102083	}
102084	return c.header_
102085}
102086
102087func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
102088	reqHeaders := make(http.Header)
102089	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102090	for k, v := range c.header_ {
102091		reqHeaders[k] = v
102092	}
102093	reqHeaders.Set("User-Agent", c.s.userAgent())
102094	if c.ifNoneMatch_ != "" {
102095		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102096	}
102097	var body io.Reader = nil
102098	c.urlParams_.Set("alt", alt)
102099	c.urlParams_.Set("prettyPrint", "false")
102100	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations/{interconnectLocation}")
102101	urls += "?" + c.urlParams_.Encode()
102102	req, err := http.NewRequest("GET", urls, body)
102103	if err != nil {
102104		return nil, err
102105	}
102106	req.Header = reqHeaders
102107	googleapi.Expand(req.URL, map[string]string{
102108		"project":              c.project,
102109		"interconnectLocation": c.interconnectLocation,
102110	})
102111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102112}
102113
102114// Do executes the "compute.interconnectLocations.get" call.
102115// Exactly one of *InterconnectLocation or error will be non-nil. Any
102116// non-2xx status code is an error. Response headers are in either
102117// *InterconnectLocation.ServerResponse.Header or (if a response was
102118// returned at all) in error.(*googleapi.Error).Header. Use
102119// googleapi.IsNotModified to check whether the returned error was
102120// because http.StatusNotModified was returned.
102121func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
102122	gensupport.SetOptions(c.urlParams_, opts...)
102123	res, err := c.doRequest("json")
102124	if res != nil && res.StatusCode == http.StatusNotModified {
102125		if res.Body != nil {
102126			res.Body.Close()
102127		}
102128		return nil, &googleapi.Error{
102129			Code:   res.StatusCode,
102130			Header: res.Header,
102131		}
102132	}
102133	if err != nil {
102134		return nil, err
102135	}
102136	defer googleapi.CloseBody(res)
102137	if err := googleapi.CheckResponse(res); err != nil {
102138		return nil, err
102139	}
102140	ret := &InterconnectLocation{
102141		ServerResponse: googleapi.ServerResponse{
102142			Header:         res.Header,
102143			HTTPStatusCode: res.StatusCode,
102144		},
102145	}
102146	target := &ret
102147	if err := gensupport.DecodeResponse(target, res); err != nil {
102148		return nil, err
102149	}
102150	return ret, nil
102151	// {
102152	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
102153	//   "httpMethod": "GET",
102154	//   "id": "compute.interconnectLocations.get",
102155	//   "parameterOrder": [
102156	//     "project",
102157	//     "interconnectLocation"
102158	//   ],
102159	//   "parameters": {
102160	//     "interconnectLocation": {
102161	//       "description": "Name of the interconnect location to return.",
102162	//       "location": "path",
102163	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102164	//       "required": true,
102165	//       "type": "string"
102166	//     },
102167	//     "project": {
102168	//       "description": "Project ID for this request.",
102169	//       "location": "path",
102170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102171	//       "required": true,
102172	//       "type": "string"
102173	//     }
102174	//   },
102175	//   "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
102176	//   "response": {
102177	//     "$ref": "InterconnectLocation"
102178	//   },
102179	//   "scopes": [
102180	//     "https://www.googleapis.com/auth/cloud-platform",
102181	//     "https://www.googleapis.com/auth/compute",
102182	//     "https://www.googleapis.com/auth/compute.readonly"
102183	//   ]
102184	// }
102185
102186}
102187
102188// method id "compute.interconnectLocations.list":
102189
102190type InterconnectLocationsListCall struct {
102191	s            *Service
102192	project      string
102193	urlParams_   gensupport.URLParams
102194	ifNoneMatch_ string
102195	ctx_         context.Context
102196	header_      http.Header
102197}
102198
102199// List: Retrieves the list of interconnect locations available to the
102200// specified project.
102201//
102202// - project: Project ID for this request.
102203func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
102204	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102205	c.project = project
102206	return c
102207}
102208
102209// Filter sets the optional parameter "filter": A filter expression that
102210// filters resources listed in the response. The expression must specify
102211// the field name, a comparison operator, and the value that you want to
102212// use for filtering. The value must be a string, a number, or a
102213// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102214// `<`.
102215//
102216// For example, if you are filtering Compute Engine instances, you can
102217// exclude instances named `example-instance` by specifying `name !=
102218// example-instance`.
102219//
102220// You can also filter nested fields. For example, you could specify
102221// `scheduling.automaticRestart = false` to include instances only if
102222// they are not scheduled for automatic restarts. You can use filtering
102223// on nested fields to filter based on resource labels.
102224//
102225// To filter on multiple expressions, provide each separate expression
102226// within parentheses. For example: ``` (scheduling.automaticRestart =
102227// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102228// is an `AND` expression. However, you can include `AND` and `OR`
102229// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102230// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102231// (scheduling.automaticRestart = true) ```
102232func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
102233	c.urlParams_.Set("filter", filter)
102234	return c
102235}
102236
102237// MaxResults sets the optional parameter "maxResults": The maximum
102238// number of results per page that should be returned. If the number of
102239// available results is larger than `maxResults`, Compute Engine returns
102240// a `nextPageToken` that can be used to get the next page of results in
102241// subsequent list requests. Acceptable values are `0` to `500`,
102242// inclusive. (Default: `500`)
102243func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
102244	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102245	return c
102246}
102247
102248// OrderBy sets the optional parameter "orderBy": Sorts list results by
102249// a certain order. By default, results are returned in alphanumerical
102250// order based on the resource name.
102251//
102252// You can also sort results in descending order based on the creation
102253// timestamp using `orderBy="creationTimestamp desc". This sorts
102254// results based on the `creationTimestamp` field in reverse
102255// chronological order (newest result first). Use this to sort resources
102256// like operations so that the newest operation is returned
102257// first.
102258//
102259// Currently, only sorting by `name` or `creationTimestamp desc` is
102260// supported.
102261func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
102262	c.urlParams_.Set("orderBy", orderBy)
102263	return c
102264}
102265
102266// PageToken sets the optional parameter "pageToken": Specifies a page
102267// token to use. Set `pageToken` to the `nextPageToken` returned by a
102268// previous list request to get the next page of results.
102269func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
102270	c.urlParams_.Set("pageToken", pageToken)
102271	return c
102272}
102273
102274// ReturnPartialSuccess sets the optional parameter
102275// "returnPartialSuccess": Opt-in for partial success behavior which
102276// provides partial results in case of failure. The default value is
102277// false.
102278func (c *InterconnectLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectLocationsListCall {
102279	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102280	return c
102281}
102282
102283// Fields allows partial responses to be retrieved. See
102284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102285// for more information.
102286func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
102287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102288	return c
102289}
102290
102291// IfNoneMatch sets the optional parameter which makes the operation
102292// fail if the object's ETag matches the given value. This is useful for
102293// getting updates only after the object has changed since the last
102294// request. Use googleapi.IsNotModified to check whether the response
102295// error from Do is the result of In-None-Match.
102296func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
102297	c.ifNoneMatch_ = entityTag
102298	return c
102299}
102300
102301// Context sets the context to be used in this call's Do method. Any
102302// pending HTTP request will be aborted if the provided context is
102303// canceled.
102304func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
102305	c.ctx_ = ctx
102306	return c
102307}
102308
102309// Header returns an http.Header that can be modified by the caller to
102310// add HTTP headers to the request.
102311func (c *InterconnectLocationsListCall) Header() http.Header {
102312	if c.header_ == nil {
102313		c.header_ = make(http.Header)
102314	}
102315	return c.header_
102316}
102317
102318func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
102319	reqHeaders := make(http.Header)
102320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102321	for k, v := range c.header_ {
102322		reqHeaders[k] = v
102323	}
102324	reqHeaders.Set("User-Agent", c.s.userAgent())
102325	if c.ifNoneMatch_ != "" {
102326		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102327	}
102328	var body io.Reader = nil
102329	c.urlParams_.Set("alt", alt)
102330	c.urlParams_.Set("prettyPrint", "false")
102331	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations")
102332	urls += "?" + c.urlParams_.Encode()
102333	req, err := http.NewRequest("GET", urls, body)
102334	if err != nil {
102335		return nil, err
102336	}
102337	req.Header = reqHeaders
102338	googleapi.Expand(req.URL, map[string]string{
102339		"project": c.project,
102340	})
102341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102342}
102343
102344// Do executes the "compute.interconnectLocations.list" call.
102345// Exactly one of *InterconnectLocationList or error will be non-nil.
102346// Any non-2xx status code is an error. Response headers are in either
102347// *InterconnectLocationList.ServerResponse.Header or (if a response was
102348// returned at all) in error.(*googleapi.Error).Header. Use
102349// googleapi.IsNotModified to check whether the returned error was
102350// because http.StatusNotModified was returned.
102351func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
102352	gensupport.SetOptions(c.urlParams_, opts...)
102353	res, err := c.doRequest("json")
102354	if res != nil && res.StatusCode == http.StatusNotModified {
102355		if res.Body != nil {
102356			res.Body.Close()
102357		}
102358		return nil, &googleapi.Error{
102359			Code:   res.StatusCode,
102360			Header: res.Header,
102361		}
102362	}
102363	if err != nil {
102364		return nil, err
102365	}
102366	defer googleapi.CloseBody(res)
102367	if err := googleapi.CheckResponse(res); err != nil {
102368		return nil, err
102369	}
102370	ret := &InterconnectLocationList{
102371		ServerResponse: googleapi.ServerResponse{
102372			Header:         res.Header,
102373			HTTPStatusCode: res.StatusCode,
102374		},
102375	}
102376	target := &ret
102377	if err := gensupport.DecodeResponse(target, res); err != nil {
102378		return nil, err
102379	}
102380	return ret, nil
102381	// {
102382	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
102383	//   "httpMethod": "GET",
102384	//   "id": "compute.interconnectLocations.list",
102385	//   "parameterOrder": [
102386	//     "project"
102387	//   ],
102388	//   "parameters": {
102389	//     "filter": {
102390	//       "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) ```",
102391	//       "location": "query",
102392	//       "type": "string"
102393	//     },
102394	//     "maxResults": {
102395	//       "default": "500",
102396	//       "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`)",
102397	//       "format": "uint32",
102398	//       "location": "query",
102399	//       "minimum": "0",
102400	//       "type": "integer"
102401	//     },
102402	//     "orderBy": {
102403	//       "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.",
102404	//       "location": "query",
102405	//       "type": "string"
102406	//     },
102407	//     "pageToken": {
102408	//       "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.",
102409	//       "location": "query",
102410	//       "type": "string"
102411	//     },
102412	//     "project": {
102413	//       "description": "Project ID for this request.",
102414	//       "location": "path",
102415	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102416	//       "required": true,
102417	//       "type": "string"
102418	//     },
102419	//     "returnPartialSuccess": {
102420	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
102421	//       "location": "query",
102422	//       "type": "boolean"
102423	//     }
102424	//   },
102425	//   "path": "projects/{project}/global/interconnectLocations",
102426	//   "response": {
102427	//     "$ref": "InterconnectLocationList"
102428	//   },
102429	//   "scopes": [
102430	//     "https://www.googleapis.com/auth/cloud-platform",
102431	//     "https://www.googleapis.com/auth/compute",
102432	//     "https://www.googleapis.com/auth/compute.readonly"
102433	//   ]
102434	// }
102435
102436}
102437
102438// Pages invokes f for each page of results.
102439// A non-nil error returned from f will halt the iteration.
102440// The provided context supersedes any context provided to the Context method.
102441func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
102442	c.ctx_ = ctx
102443	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102444	for {
102445		x, err := c.Do()
102446		if err != nil {
102447			return err
102448		}
102449		if err := f(x); err != nil {
102450			return err
102451		}
102452		if x.NextPageToken == "" {
102453			return nil
102454		}
102455		c.PageToken(x.NextPageToken)
102456	}
102457}
102458
102459// method id "compute.interconnects.delete":
102460
102461type InterconnectsDeleteCall struct {
102462	s            *Service
102463	project      string
102464	interconnect string
102465	urlParams_   gensupport.URLParams
102466	ctx_         context.Context
102467	header_      http.Header
102468}
102469
102470// Delete: Deletes the specified interconnect.
102471//
102472// - interconnect: Name of the interconnect to delete.
102473// - project: Project ID for this request.
102474func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
102475	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102476	c.project = project
102477	c.interconnect = interconnect
102478	return c
102479}
102480
102481// RequestId sets the optional parameter "requestId": An optional
102482// request ID to identify requests. Specify a unique request ID so that
102483// if you must retry your request, the server will know to ignore the
102484// request if it has already been completed.
102485//
102486// For example, consider a situation where you make an initial request
102487// and the request times out. If you make the request again with the
102488// same request ID, the server can check if original operation with the
102489// same request ID was received, and if so, will ignore the second
102490// request. This prevents clients from accidentally creating duplicate
102491// commitments.
102492//
102493// The request ID must be a valid UUID with the exception that zero UUID
102494// is not supported (00000000-0000-0000-0000-000000000000).
102495func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
102496	c.urlParams_.Set("requestId", requestId)
102497	return c
102498}
102499
102500// Fields allows partial responses to be retrieved. See
102501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102502// for more information.
102503func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
102504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102505	return c
102506}
102507
102508// Context sets the context to be used in this call's Do method. Any
102509// pending HTTP request will be aborted if the provided context is
102510// canceled.
102511func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
102512	c.ctx_ = ctx
102513	return c
102514}
102515
102516// Header returns an http.Header that can be modified by the caller to
102517// add HTTP headers to the request.
102518func (c *InterconnectsDeleteCall) Header() http.Header {
102519	if c.header_ == nil {
102520		c.header_ = make(http.Header)
102521	}
102522	return c.header_
102523}
102524
102525func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
102526	reqHeaders := make(http.Header)
102527	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102528	for k, v := range c.header_ {
102529		reqHeaders[k] = v
102530	}
102531	reqHeaders.Set("User-Agent", c.s.userAgent())
102532	var body io.Reader = nil
102533	c.urlParams_.Set("alt", alt)
102534	c.urlParams_.Set("prettyPrint", "false")
102535	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
102536	urls += "?" + c.urlParams_.Encode()
102537	req, err := http.NewRequest("DELETE", urls, body)
102538	if err != nil {
102539		return nil, err
102540	}
102541	req.Header = reqHeaders
102542	googleapi.Expand(req.URL, map[string]string{
102543		"project":      c.project,
102544		"interconnect": c.interconnect,
102545	})
102546	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102547}
102548
102549// Do executes the "compute.interconnects.delete" call.
102550// Exactly one of *Operation or error will be non-nil. Any non-2xx
102551// status code is an error. Response headers are in either
102552// *Operation.ServerResponse.Header or (if a response was returned at
102553// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102554// to check whether the returned error was because
102555// http.StatusNotModified was returned.
102556func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102557	gensupport.SetOptions(c.urlParams_, opts...)
102558	res, err := c.doRequest("json")
102559	if res != nil && res.StatusCode == http.StatusNotModified {
102560		if res.Body != nil {
102561			res.Body.Close()
102562		}
102563		return nil, &googleapi.Error{
102564			Code:   res.StatusCode,
102565			Header: res.Header,
102566		}
102567	}
102568	if err != nil {
102569		return nil, err
102570	}
102571	defer googleapi.CloseBody(res)
102572	if err := googleapi.CheckResponse(res); err != nil {
102573		return nil, err
102574	}
102575	ret := &Operation{
102576		ServerResponse: googleapi.ServerResponse{
102577			Header:         res.Header,
102578			HTTPStatusCode: res.StatusCode,
102579		},
102580	}
102581	target := &ret
102582	if err := gensupport.DecodeResponse(target, res); err != nil {
102583		return nil, err
102584	}
102585	return ret, nil
102586	// {
102587	//   "description": "Deletes the specified interconnect.",
102588	//   "httpMethod": "DELETE",
102589	//   "id": "compute.interconnects.delete",
102590	//   "parameterOrder": [
102591	//     "project",
102592	//     "interconnect"
102593	//   ],
102594	//   "parameters": {
102595	//     "interconnect": {
102596	//       "description": "Name of the interconnect to delete.",
102597	//       "location": "path",
102598	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102599	//       "required": true,
102600	//       "type": "string"
102601	//     },
102602	//     "project": {
102603	//       "description": "Project ID for this request.",
102604	//       "location": "path",
102605	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102606	//       "required": true,
102607	//       "type": "string"
102608	//     },
102609	//     "requestId": {
102610	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102611	//       "location": "query",
102612	//       "type": "string"
102613	//     }
102614	//   },
102615	//   "path": "projects/{project}/global/interconnects/{interconnect}",
102616	//   "response": {
102617	//     "$ref": "Operation"
102618	//   },
102619	//   "scopes": [
102620	//     "https://www.googleapis.com/auth/cloud-platform",
102621	//     "https://www.googleapis.com/auth/compute"
102622	//   ]
102623	// }
102624
102625}
102626
102627// method id "compute.interconnects.get":
102628
102629type InterconnectsGetCall struct {
102630	s            *Service
102631	project      string
102632	interconnect string
102633	urlParams_   gensupport.URLParams
102634	ifNoneMatch_ string
102635	ctx_         context.Context
102636	header_      http.Header
102637}
102638
102639// Get: Returns the specified interconnect. Get a list of available
102640// interconnects by making a list() request.
102641//
102642// - interconnect: Name of the interconnect to return.
102643// - project: Project ID for this request.
102644func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
102645	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102646	c.project = project
102647	c.interconnect = interconnect
102648	return c
102649}
102650
102651// Fields allows partial responses to be retrieved. See
102652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102653// for more information.
102654func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
102655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102656	return c
102657}
102658
102659// IfNoneMatch sets the optional parameter which makes the operation
102660// fail if the object's ETag matches the given value. This is useful for
102661// getting updates only after the object has changed since the last
102662// request. Use googleapi.IsNotModified to check whether the response
102663// error from Do is the result of In-None-Match.
102664func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
102665	c.ifNoneMatch_ = entityTag
102666	return c
102667}
102668
102669// Context sets the context to be used in this call's Do method. Any
102670// pending HTTP request will be aborted if the provided context is
102671// canceled.
102672func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
102673	c.ctx_ = ctx
102674	return c
102675}
102676
102677// Header returns an http.Header that can be modified by the caller to
102678// add HTTP headers to the request.
102679func (c *InterconnectsGetCall) Header() http.Header {
102680	if c.header_ == nil {
102681		c.header_ = make(http.Header)
102682	}
102683	return c.header_
102684}
102685
102686func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
102687	reqHeaders := make(http.Header)
102688	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102689	for k, v := range c.header_ {
102690		reqHeaders[k] = v
102691	}
102692	reqHeaders.Set("User-Agent", c.s.userAgent())
102693	if c.ifNoneMatch_ != "" {
102694		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102695	}
102696	var body io.Reader = nil
102697	c.urlParams_.Set("alt", alt)
102698	c.urlParams_.Set("prettyPrint", "false")
102699	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
102700	urls += "?" + c.urlParams_.Encode()
102701	req, err := http.NewRequest("GET", urls, body)
102702	if err != nil {
102703		return nil, err
102704	}
102705	req.Header = reqHeaders
102706	googleapi.Expand(req.URL, map[string]string{
102707		"project":      c.project,
102708		"interconnect": c.interconnect,
102709	})
102710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102711}
102712
102713// Do executes the "compute.interconnects.get" call.
102714// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
102715// status code is an error. Response headers are in either
102716// *Interconnect.ServerResponse.Header or (if a response was returned at
102717// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102718// to check whether the returned error was because
102719// http.StatusNotModified was returned.
102720func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
102721	gensupport.SetOptions(c.urlParams_, opts...)
102722	res, err := c.doRequest("json")
102723	if res != nil && res.StatusCode == http.StatusNotModified {
102724		if res.Body != nil {
102725			res.Body.Close()
102726		}
102727		return nil, &googleapi.Error{
102728			Code:   res.StatusCode,
102729			Header: res.Header,
102730		}
102731	}
102732	if err != nil {
102733		return nil, err
102734	}
102735	defer googleapi.CloseBody(res)
102736	if err := googleapi.CheckResponse(res); err != nil {
102737		return nil, err
102738	}
102739	ret := &Interconnect{
102740		ServerResponse: googleapi.ServerResponse{
102741			Header:         res.Header,
102742			HTTPStatusCode: res.StatusCode,
102743		},
102744	}
102745	target := &ret
102746	if err := gensupport.DecodeResponse(target, res); err != nil {
102747		return nil, err
102748	}
102749	return ret, nil
102750	// {
102751	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
102752	//   "httpMethod": "GET",
102753	//   "id": "compute.interconnects.get",
102754	//   "parameterOrder": [
102755	//     "project",
102756	//     "interconnect"
102757	//   ],
102758	//   "parameters": {
102759	//     "interconnect": {
102760	//       "description": "Name of the interconnect to return.",
102761	//       "location": "path",
102762	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102763	//       "required": true,
102764	//       "type": "string"
102765	//     },
102766	//     "project": {
102767	//       "description": "Project ID for this request.",
102768	//       "location": "path",
102769	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102770	//       "required": true,
102771	//       "type": "string"
102772	//     }
102773	//   },
102774	//   "path": "projects/{project}/global/interconnects/{interconnect}",
102775	//   "response": {
102776	//     "$ref": "Interconnect"
102777	//   },
102778	//   "scopes": [
102779	//     "https://www.googleapis.com/auth/cloud-platform",
102780	//     "https://www.googleapis.com/auth/compute",
102781	//     "https://www.googleapis.com/auth/compute.readonly"
102782	//   ]
102783	// }
102784
102785}
102786
102787// method id "compute.interconnects.getDiagnostics":
102788
102789type InterconnectsGetDiagnosticsCall struct {
102790	s            *Service
102791	project      string
102792	interconnect string
102793	urlParams_   gensupport.URLParams
102794	ifNoneMatch_ string
102795	ctx_         context.Context
102796	header_      http.Header
102797}
102798
102799// GetDiagnostics: Returns the interconnectDiagnostics for the specified
102800// interconnect.
102801//
102802// - interconnect: Name of the interconnect resource to query.
102803// - project: Project ID for this request.
102804func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
102805	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102806	c.project = project
102807	c.interconnect = interconnect
102808	return c
102809}
102810
102811// Fields allows partial responses to be retrieved. See
102812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102813// for more information.
102814func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
102815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102816	return c
102817}
102818
102819// IfNoneMatch sets the optional parameter which makes the operation
102820// fail if the object's ETag matches the given value. This is useful for
102821// getting updates only after the object has changed since the last
102822// request. Use googleapi.IsNotModified to check whether the response
102823// error from Do is the result of In-None-Match.
102824func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
102825	c.ifNoneMatch_ = entityTag
102826	return c
102827}
102828
102829// Context sets the context to be used in this call's Do method. Any
102830// pending HTTP request will be aborted if the provided context is
102831// canceled.
102832func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
102833	c.ctx_ = ctx
102834	return c
102835}
102836
102837// Header returns an http.Header that can be modified by the caller to
102838// add HTTP headers to the request.
102839func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
102840	if c.header_ == nil {
102841		c.header_ = make(http.Header)
102842	}
102843	return c.header_
102844}
102845
102846func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
102847	reqHeaders := make(http.Header)
102848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102849	for k, v := range c.header_ {
102850		reqHeaders[k] = v
102851	}
102852	reqHeaders.Set("User-Agent", c.s.userAgent())
102853	if c.ifNoneMatch_ != "" {
102854		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102855	}
102856	var body io.Reader = nil
102857	c.urlParams_.Set("alt", alt)
102858	c.urlParams_.Set("prettyPrint", "false")
102859	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getDiagnostics")
102860	urls += "?" + c.urlParams_.Encode()
102861	req, err := http.NewRequest("GET", urls, body)
102862	if err != nil {
102863		return nil, err
102864	}
102865	req.Header = reqHeaders
102866	googleapi.Expand(req.URL, map[string]string{
102867		"project":      c.project,
102868		"interconnect": c.interconnect,
102869	})
102870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102871}
102872
102873// Do executes the "compute.interconnects.getDiagnostics" call.
102874// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
102875// non-nil. Any non-2xx status code is an error. Response headers are in
102876// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
102877// (if a response was returned at all) in
102878// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
102879// whether the returned error was because http.StatusNotModified was
102880// returned.
102881func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
102882	gensupport.SetOptions(c.urlParams_, opts...)
102883	res, err := c.doRequest("json")
102884	if res != nil && res.StatusCode == http.StatusNotModified {
102885		if res.Body != nil {
102886			res.Body.Close()
102887		}
102888		return nil, &googleapi.Error{
102889			Code:   res.StatusCode,
102890			Header: res.Header,
102891		}
102892	}
102893	if err != nil {
102894		return nil, err
102895	}
102896	defer googleapi.CloseBody(res)
102897	if err := googleapi.CheckResponse(res); err != nil {
102898		return nil, err
102899	}
102900	ret := &InterconnectsGetDiagnosticsResponse{
102901		ServerResponse: googleapi.ServerResponse{
102902			Header:         res.Header,
102903			HTTPStatusCode: res.StatusCode,
102904		},
102905	}
102906	target := &ret
102907	if err := gensupport.DecodeResponse(target, res); err != nil {
102908		return nil, err
102909	}
102910	return ret, nil
102911	// {
102912	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
102913	//   "httpMethod": "GET",
102914	//   "id": "compute.interconnects.getDiagnostics",
102915	//   "parameterOrder": [
102916	//     "project",
102917	//     "interconnect"
102918	//   ],
102919	//   "parameters": {
102920	//     "interconnect": {
102921	//       "description": "Name of the interconnect resource to query.",
102922	//       "location": "path",
102923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102924	//       "required": true,
102925	//       "type": "string"
102926	//     },
102927	//     "project": {
102928	//       "description": "Project ID for this request.",
102929	//       "location": "path",
102930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102931	//       "required": true,
102932	//       "type": "string"
102933	//     }
102934	//   },
102935	//   "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics",
102936	//   "response": {
102937	//     "$ref": "InterconnectsGetDiagnosticsResponse"
102938	//   },
102939	//   "scopes": [
102940	//     "https://www.googleapis.com/auth/cloud-platform",
102941	//     "https://www.googleapis.com/auth/compute",
102942	//     "https://www.googleapis.com/auth/compute.readonly"
102943	//   ]
102944	// }
102945
102946}
102947
102948// method id "compute.interconnects.insert":
102949
102950type InterconnectsInsertCall struct {
102951	s            *Service
102952	project      string
102953	interconnect *Interconnect
102954	urlParams_   gensupport.URLParams
102955	ctx_         context.Context
102956	header_      http.Header
102957}
102958
102959// Insert: Creates a Interconnect in the specified project using the
102960// data included in the request.
102961//
102962// - project: Project ID for this request.
102963func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
102964	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102965	c.project = project
102966	c.interconnect = interconnect
102967	return c
102968}
102969
102970// RequestId sets the optional parameter "requestId": An optional
102971// request ID to identify requests. Specify a unique request ID so that
102972// if you must retry your request, the server will know to ignore the
102973// request if it has already been completed.
102974//
102975// For example, consider a situation where you make an initial request
102976// and the request times out. If you make the request again with the
102977// same request ID, the server can check if original operation with the
102978// same request ID was received, and if so, will ignore the second
102979// request. This prevents clients from accidentally creating duplicate
102980// commitments.
102981//
102982// The request ID must be a valid UUID with the exception that zero UUID
102983// is not supported (00000000-0000-0000-0000-000000000000).
102984func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
102985	c.urlParams_.Set("requestId", requestId)
102986	return c
102987}
102988
102989// Fields allows partial responses to be retrieved. See
102990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102991// for more information.
102992func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
102993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102994	return c
102995}
102996
102997// Context sets the context to be used in this call's Do method. Any
102998// pending HTTP request will be aborted if the provided context is
102999// canceled.
103000func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
103001	c.ctx_ = ctx
103002	return c
103003}
103004
103005// Header returns an http.Header that can be modified by the caller to
103006// add HTTP headers to the request.
103007func (c *InterconnectsInsertCall) Header() http.Header {
103008	if c.header_ == nil {
103009		c.header_ = make(http.Header)
103010	}
103011	return c.header_
103012}
103013
103014func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
103015	reqHeaders := make(http.Header)
103016	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103017	for k, v := range c.header_ {
103018		reqHeaders[k] = v
103019	}
103020	reqHeaders.Set("User-Agent", c.s.userAgent())
103021	var body io.Reader = nil
103022	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
103023	if err != nil {
103024		return nil, err
103025	}
103026	reqHeaders.Set("Content-Type", "application/json")
103027	c.urlParams_.Set("alt", alt)
103028	c.urlParams_.Set("prettyPrint", "false")
103029	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
103030	urls += "?" + c.urlParams_.Encode()
103031	req, err := http.NewRequest("POST", urls, body)
103032	if err != nil {
103033		return nil, err
103034	}
103035	req.Header = reqHeaders
103036	googleapi.Expand(req.URL, map[string]string{
103037		"project": c.project,
103038	})
103039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103040}
103041
103042// Do executes the "compute.interconnects.insert" call.
103043// Exactly one of *Operation or error will be non-nil. Any non-2xx
103044// status code is an error. Response headers are in either
103045// *Operation.ServerResponse.Header or (if a response was returned at
103046// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103047// to check whether the returned error was because
103048// http.StatusNotModified was returned.
103049func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103050	gensupport.SetOptions(c.urlParams_, opts...)
103051	res, err := c.doRequest("json")
103052	if res != nil && res.StatusCode == http.StatusNotModified {
103053		if res.Body != nil {
103054			res.Body.Close()
103055		}
103056		return nil, &googleapi.Error{
103057			Code:   res.StatusCode,
103058			Header: res.Header,
103059		}
103060	}
103061	if err != nil {
103062		return nil, err
103063	}
103064	defer googleapi.CloseBody(res)
103065	if err := googleapi.CheckResponse(res); err != nil {
103066		return nil, err
103067	}
103068	ret := &Operation{
103069		ServerResponse: googleapi.ServerResponse{
103070			Header:         res.Header,
103071			HTTPStatusCode: res.StatusCode,
103072		},
103073	}
103074	target := &ret
103075	if err := gensupport.DecodeResponse(target, res); err != nil {
103076		return nil, err
103077	}
103078	return ret, nil
103079	// {
103080	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
103081	//   "httpMethod": "POST",
103082	//   "id": "compute.interconnects.insert",
103083	//   "parameterOrder": [
103084	//     "project"
103085	//   ],
103086	//   "parameters": {
103087	//     "project": {
103088	//       "description": "Project ID for this request.",
103089	//       "location": "path",
103090	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103091	//       "required": true,
103092	//       "type": "string"
103093	//     },
103094	//     "requestId": {
103095	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103096	//       "location": "query",
103097	//       "type": "string"
103098	//     }
103099	//   },
103100	//   "path": "projects/{project}/global/interconnects",
103101	//   "request": {
103102	//     "$ref": "Interconnect"
103103	//   },
103104	//   "response": {
103105	//     "$ref": "Operation"
103106	//   },
103107	//   "scopes": [
103108	//     "https://www.googleapis.com/auth/cloud-platform",
103109	//     "https://www.googleapis.com/auth/compute"
103110	//   ]
103111	// }
103112
103113}
103114
103115// method id "compute.interconnects.list":
103116
103117type InterconnectsListCall struct {
103118	s            *Service
103119	project      string
103120	urlParams_   gensupport.URLParams
103121	ifNoneMatch_ string
103122	ctx_         context.Context
103123	header_      http.Header
103124}
103125
103126// List: Retrieves the list of interconnect available to the specified
103127// project.
103128//
103129// - project: Project ID for this request.
103130func (r *InterconnectsService) List(project string) *InterconnectsListCall {
103131	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103132	c.project = project
103133	return c
103134}
103135
103136// Filter sets the optional parameter "filter": A filter expression that
103137// filters resources listed in the response. The expression must specify
103138// the field name, a comparison operator, and the value that you want to
103139// use for filtering. The value must be a string, a number, or a
103140// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103141// `<`.
103142//
103143// For example, if you are filtering Compute Engine instances, you can
103144// exclude instances named `example-instance` by specifying `name !=
103145// example-instance`.
103146//
103147// You can also filter nested fields. For example, you could specify
103148// `scheduling.automaticRestart = false` to include instances only if
103149// they are not scheduled for automatic restarts. You can use filtering
103150// on nested fields to filter based on resource labels.
103151//
103152// To filter on multiple expressions, provide each separate expression
103153// within parentheses. For example: ``` (scheduling.automaticRestart =
103154// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
103155// is an `AND` expression. However, you can include `AND` and `OR`
103156// expressions explicitly. For example: ``` (cpuPlatform = "Intel
103157// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
103158// (scheduling.automaticRestart = true) ```
103159func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
103160	c.urlParams_.Set("filter", filter)
103161	return c
103162}
103163
103164// MaxResults sets the optional parameter "maxResults": The maximum
103165// number of results per page that should be returned. If the number of
103166// available results is larger than `maxResults`, Compute Engine returns
103167// a `nextPageToken` that can be used to get the next page of results in
103168// subsequent list requests. Acceptable values are `0` to `500`,
103169// inclusive. (Default: `500`)
103170func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
103171	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103172	return c
103173}
103174
103175// OrderBy sets the optional parameter "orderBy": Sorts list results by
103176// a certain order. By default, results are returned in alphanumerical
103177// order based on the resource name.
103178//
103179// You can also sort results in descending order based on the creation
103180// timestamp using `orderBy="creationTimestamp desc". This sorts
103181// results based on the `creationTimestamp` field in reverse
103182// chronological order (newest result first). Use this to sort resources
103183// like operations so that the newest operation is returned
103184// first.
103185//
103186// Currently, only sorting by `name` or `creationTimestamp desc` is
103187// supported.
103188func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
103189	c.urlParams_.Set("orderBy", orderBy)
103190	return c
103191}
103192
103193// PageToken sets the optional parameter "pageToken": Specifies a page
103194// token to use. Set `pageToken` to the `nextPageToken` returned by a
103195// previous list request to get the next page of results.
103196func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
103197	c.urlParams_.Set("pageToken", pageToken)
103198	return c
103199}
103200
103201// ReturnPartialSuccess sets the optional parameter
103202// "returnPartialSuccess": Opt-in for partial success behavior which
103203// provides partial results in case of failure. The default value is
103204// false.
103205func (c *InterconnectsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectsListCall {
103206	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
103207	return c
103208}
103209
103210// Fields allows partial responses to be retrieved. See
103211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103212// for more information.
103213func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
103214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103215	return c
103216}
103217
103218// IfNoneMatch sets the optional parameter which makes the operation
103219// fail if the object's ETag matches the given value. This is useful for
103220// getting updates only after the object has changed since the last
103221// request. Use googleapi.IsNotModified to check whether the response
103222// error from Do is the result of In-None-Match.
103223func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
103224	c.ifNoneMatch_ = entityTag
103225	return c
103226}
103227
103228// Context sets the context to be used in this call's Do method. Any
103229// pending HTTP request will be aborted if the provided context is
103230// canceled.
103231func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
103232	c.ctx_ = ctx
103233	return c
103234}
103235
103236// Header returns an http.Header that can be modified by the caller to
103237// add HTTP headers to the request.
103238func (c *InterconnectsListCall) Header() http.Header {
103239	if c.header_ == nil {
103240		c.header_ = make(http.Header)
103241	}
103242	return c.header_
103243}
103244
103245func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
103246	reqHeaders := make(http.Header)
103247	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103248	for k, v := range c.header_ {
103249		reqHeaders[k] = v
103250	}
103251	reqHeaders.Set("User-Agent", c.s.userAgent())
103252	if c.ifNoneMatch_ != "" {
103253		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103254	}
103255	var body io.Reader = nil
103256	c.urlParams_.Set("alt", alt)
103257	c.urlParams_.Set("prettyPrint", "false")
103258	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
103259	urls += "?" + c.urlParams_.Encode()
103260	req, err := http.NewRequest("GET", urls, body)
103261	if err != nil {
103262		return nil, err
103263	}
103264	req.Header = reqHeaders
103265	googleapi.Expand(req.URL, map[string]string{
103266		"project": c.project,
103267	})
103268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103269}
103270
103271// Do executes the "compute.interconnects.list" call.
103272// Exactly one of *InterconnectList or error will be non-nil. Any
103273// non-2xx status code is an error. Response headers are in either
103274// *InterconnectList.ServerResponse.Header or (if a response was
103275// returned at all) in error.(*googleapi.Error).Header. Use
103276// googleapi.IsNotModified to check whether the returned error was
103277// because http.StatusNotModified was returned.
103278func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
103279	gensupport.SetOptions(c.urlParams_, opts...)
103280	res, err := c.doRequest("json")
103281	if res != nil && res.StatusCode == http.StatusNotModified {
103282		if res.Body != nil {
103283			res.Body.Close()
103284		}
103285		return nil, &googleapi.Error{
103286			Code:   res.StatusCode,
103287			Header: res.Header,
103288		}
103289	}
103290	if err != nil {
103291		return nil, err
103292	}
103293	defer googleapi.CloseBody(res)
103294	if err := googleapi.CheckResponse(res); err != nil {
103295		return nil, err
103296	}
103297	ret := &InterconnectList{
103298		ServerResponse: googleapi.ServerResponse{
103299			Header:         res.Header,
103300			HTTPStatusCode: res.StatusCode,
103301		},
103302	}
103303	target := &ret
103304	if err := gensupport.DecodeResponse(target, res); err != nil {
103305		return nil, err
103306	}
103307	return ret, nil
103308	// {
103309	//   "description": "Retrieves the list of interconnect available to the specified project.",
103310	//   "httpMethod": "GET",
103311	//   "id": "compute.interconnects.list",
103312	//   "parameterOrder": [
103313	//     "project"
103314	//   ],
103315	//   "parameters": {
103316	//     "filter": {
103317	//       "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) ```",
103318	//       "location": "query",
103319	//       "type": "string"
103320	//     },
103321	//     "maxResults": {
103322	//       "default": "500",
103323	//       "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`)",
103324	//       "format": "uint32",
103325	//       "location": "query",
103326	//       "minimum": "0",
103327	//       "type": "integer"
103328	//     },
103329	//     "orderBy": {
103330	//       "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.",
103331	//       "location": "query",
103332	//       "type": "string"
103333	//     },
103334	//     "pageToken": {
103335	//       "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.",
103336	//       "location": "query",
103337	//       "type": "string"
103338	//     },
103339	//     "project": {
103340	//       "description": "Project ID for this request.",
103341	//       "location": "path",
103342	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103343	//       "required": true,
103344	//       "type": "string"
103345	//     },
103346	//     "returnPartialSuccess": {
103347	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
103348	//       "location": "query",
103349	//       "type": "boolean"
103350	//     }
103351	//   },
103352	//   "path": "projects/{project}/global/interconnects",
103353	//   "response": {
103354	//     "$ref": "InterconnectList"
103355	//   },
103356	//   "scopes": [
103357	//     "https://www.googleapis.com/auth/cloud-platform",
103358	//     "https://www.googleapis.com/auth/compute",
103359	//     "https://www.googleapis.com/auth/compute.readonly"
103360	//   ]
103361	// }
103362
103363}
103364
103365// Pages invokes f for each page of results.
103366// A non-nil error returned from f will halt the iteration.
103367// The provided context supersedes any context provided to the Context method.
103368func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
103369	c.ctx_ = ctx
103370	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103371	for {
103372		x, err := c.Do()
103373		if err != nil {
103374			return err
103375		}
103376		if err := f(x); err != nil {
103377			return err
103378		}
103379		if x.NextPageToken == "" {
103380			return nil
103381		}
103382		c.PageToken(x.NextPageToken)
103383	}
103384}
103385
103386// method id "compute.interconnects.patch":
103387
103388type InterconnectsPatchCall struct {
103389	s             *Service
103390	project       string
103391	interconnect  string
103392	interconnect2 *Interconnect
103393	urlParams_    gensupport.URLParams
103394	ctx_          context.Context
103395	header_       http.Header
103396}
103397
103398// Patch: Updates the specified interconnect with the data included in
103399// the request. This method supports PATCH semantics and uses the JSON
103400// merge patch format and processing rules.
103401//
103402// - interconnect: Name of the interconnect to update.
103403// - project: Project ID for this request.
103404func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
103405	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103406	c.project = project
103407	c.interconnect = interconnect
103408	c.interconnect2 = interconnect2
103409	return c
103410}
103411
103412// RequestId sets the optional parameter "requestId": An optional
103413// request ID to identify requests. Specify a unique request ID so that
103414// if you must retry your request, the server will know to ignore the
103415// request if it has already been completed.
103416//
103417// For example, consider a situation where you make an initial request
103418// and the request times out. If you make the request again with the
103419// same request ID, the server can check if original operation with the
103420// same request ID was received, and if so, will ignore the second
103421// request. This prevents clients from accidentally creating duplicate
103422// commitments.
103423//
103424// The request ID must be a valid UUID with the exception that zero UUID
103425// is not supported (00000000-0000-0000-0000-000000000000).
103426func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
103427	c.urlParams_.Set("requestId", requestId)
103428	return c
103429}
103430
103431// Fields allows partial responses to be retrieved. See
103432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103433// for more information.
103434func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
103435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103436	return c
103437}
103438
103439// Context sets the context to be used in this call's Do method. Any
103440// pending HTTP request will be aborted if the provided context is
103441// canceled.
103442func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
103443	c.ctx_ = ctx
103444	return c
103445}
103446
103447// Header returns an http.Header that can be modified by the caller to
103448// add HTTP headers to the request.
103449func (c *InterconnectsPatchCall) Header() http.Header {
103450	if c.header_ == nil {
103451		c.header_ = make(http.Header)
103452	}
103453	return c.header_
103454}
103455
103456func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
103457	reqHeaders := make(http.Header)
103458	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103459	for k, v := range c.header_ {
103460		reqHeaders[k] = v
103461	}
103462	reqHeaders.Set("User-Agent", c.s.userAgent())
103463	var body io.Reader = nil
103464	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
103465	if err != nil {
103466		return nil, err
103467	}
103468	reqHeaders.Set("Content-Type", "application/json")
103469	c.urlParams_.Set("alt", alt)
103470	c.urlParams_.Set("prettyPrint", "false")
103471	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
103472	urls += "?" + c.urlParams_.Encode()
103473	req, err := http.NewRequest("PATCH", urls, body)
103474	if err != nil {
103475		return nil, err
103476	}
103477	req.Header = reqHeaders
103478	googleapi.Expand(req.URL, map[string]string{
103479		"project":      c.project,
103480		"interconnect": c.interconnect,
103481	})
103482	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103483}
103484
103485// Do executes the "compute.interconnects.patch" call.
103486// Exactly one of *Operation or error will be non-nil. Any non-2xx
103487// status code is an error. Response headers are in either
103488// *Operation.ServerResponse.Header or (if a response was returned at
103489// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103490// to check whether the returned error was because
103491// http.StatusNotModified was returned.
103492func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103493	gensupport.SetOptions(c.urlParams_, opts...)
103494	res, err := c.doRequest("json")
103495	if res != nil && res.StatusCode == http.StatusNotModified {
103496		if res.Body != nil {
103497			res.Body.Close()
103498		}
103499		return nil, &googleapi.Error{
103500			Code:   res.StatusCode,
103501			Header: res.Header,
103502		}
103503	}
103504	if err != nil {
103505		return nil, err
103506	}
103507	defer googleapi.CloseBody(res)
103508	if err := googleapi.CheckResponse(res); err != nil {
103509		return nil, err
103510	}
103511	ret := &Operation{
103512		ServerResponse: googleapi.ServerResponse{
103513			Header:         res.Header,
103514			HTTPStatusCode: res.StatusCode,
103515		},
103516	}
103517	target := &ret
103518	if err := gensupport.DecodeResponse(target, res); err != nil {
103519		return nil, err
103520	}
103521	return ret, nil
103522	// {
103523	//   "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.",
103524	//   "httpMethod": "PATCH",
103525	//   "id": "compute.interconnects.patch",
103526	//   "parameterOrder": [
103527	//     "project",
103528	//     "interconnect"
103529	//   ],
103530	//   "parameters": {
103531	//     "interconnect": {
103532	//       "description": "Name of the interconnect to update.",
103533	//       "location": "path",
103534	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103535	//       "required": true,
103536	//       "type": "string"
103537	//     },
103538	//     "project": {
103539	//       "description": "Project ID for this request.",
103540	//       "location": "path",
103541	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103542	//       "required": true,
103543	//       "type": "string"
103544	//     },
103545	//     "requestId": {
103546	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103547	//       "location": "query",
103548	//       "type": "string"
103549	//     }
103550	//   },
103551	//   "path": "projects/{project}/global/interconnects/{interconnect}",
103552	//   "request": {
103553	//     "$ref": "Interconnect"
103554	//   },
103555	//   "response": {
103556	//     "$ref": "Operation"
103557	//   },
103558	//   "scopes": [
103559	//     "https://www.googleapis.com/auth/cloud-platform",
103560	//     "https://www.googleapis.com/auth/compute"
103561	//   ]
103562	// }
103563
103564}
103565
103566// method id "compute.interconnects.setLabels":
103567
103568type InterconnectsSetLabelsCall struct {
103569	s                      *Service
103570	project                string
103571	resource               string
103572	globalsetlabelsrequest *GlobalSetLabelsRequest
103573	urlParams_             gensupport.URLParams
103574	ctx_                   context.Context
103575	header_                http.Header
103576}
103577
103578// SetLabels: Sets the labels on an Interconnect. To learn more about
103579// labels, read the Labeling Resources documentation.
103580//
103581// - project: Project ID for this request.
103582// - resource: Name or id of the resource for this request.
103583func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall {
103584	c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103585	c.project = project
103586	c.resource = resource
103587	c.globalsetlabelsrequest = globalsetlabelsrequest
103588	return c
103589}
103590
103591// Fields allows partial responses to be retrieved. See
103592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103593// for more information.
103594func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall {
103595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103596	return c
103597}
103598
103599// Context sets the context to be used in this call's Do method. Any
103600// pending HTTP request will be aborted if the provided context is
103601// canceled.
103602func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall {
103603	c.ctx_ = ctx
103604	return c
103605}
103606
103607// Header returns an http.Header that can be modified by the caller to
103608// add HTTP headers to the request.
103609func (c *InterconnectsSetLabelsCall) Header() http.Header {
103610	if c.header_ == nil {
103611		c.header_ = make(http.Header)
103612	}
103613	return c.header_
103614}
103615
103616func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
103617	reqHeaders := make(http.Header)
103618	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103619	for k, v := range c.header_ {
103620		reqHeaders[k] = v
103621	}
103622	reqHeaders.Set("User-Agent", c.s.userAgent())
103623	var body io.Reader = nil
103624	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
103625	if err != nil {
103626		return nil, err
103627	}
103628	reqHeaders.Set("Content-Type", "application/json")
103629	c.urlParams_.Set("alt", alt)
103630	c.urlParams_.Set("prettyPrint", "false")
103631	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{resource}/setLabels")
103632	urls += "?" + c.urlParams_.Encode()
103633	req, err := http.NewRequest("POST", urls, body)
103634	if err != nil {
103635		return nil, err
103636	}
103637	req.Header = reqHeaders
103638	googleapi.Expand(req.URL, map[string]string{
103639		"project":  c.project,
103640		"resource": c.resource,
103641	})
103642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103643}
103644
103645// Do executes the "compute.interconnects.setLabels" call.
103646// Exactly one of *Operation or error will be non-nil. Any non-2xx
103647// status code is an error. Response headers are in either
103648// *Operation.ServerResponse.Header or (if a response was returned at
103649// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103650// to check whether the returned error was because
103651// http.StatusNotModified was returned.
103652func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103653	gensupport.SetOptions(c.urlParams_, opts...)
103654	res, err := c.doRequest("json")
103655	if res != nil && res.StatusCode == http.StatusNotModified {
103656		if res.Body != nil {
103657			res.Body.Close()
103658		}
103659		return nil, &googleapi.Error{
103660			Code:   res.StatusCode,
103661			Header: res.Header,
103662		}
103663	}
103664	if err != nil {
103665		return nil, err
103666	}
103667	defer googleapi.CloseBody(res)
103668	if err := googleapi.CheckResponse(res); err != nil {
103669		return nil, err
103670	}
103671	ret := &Operation{
103672		ServerResponse: googleapi.ServerResponse{
103673			Header:         res.Header,
103674			HTTPStatusCode: res.StatusCode,
103675		},
103676	}
103677	target := &ret
103678	if err := gensupport.DecodeResponse(target, res); err != nil {
103679		return nil, err
103680	}
103681	return ret, nil
103682	// {
103683	//   "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.",
103684	//   "httpMethod": "POST",
103685	//   "id": "compute.interconnects.setLabels",
103686	//   "parameterOrder": [
103687	//     "project",
103688	//     "resource"
103689	//   ],
103690	//   "parameters": {
103691	//     "project": {
103692	//       "description": "Project ID for this request.",
103693	//       "location": "path",
103694	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103695	//       "required": true,
103696	//       "type": "string"
103697	//     },
103698	//     "resource": {
103699	//       "description": "Name or id of the resource for this request.",
103700	//       "location": "path",
103701	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103702	//       "required": true,
103703	//       "type": "string"
103704	//     }
103705	//   },
103706	//   "path": "projects/{project}/global/interconnects/{resource}/setLabels",
103707	//   "request": {
103708	//     "$ref": "GlobalSetLabelsRequest"
103709	//   },
103710	//   "response": {
103711	//     "$ref": "Operation"
103712	//   },
103713	//   "scopes": [
103714	//     "https://www.googleapis.com/auth/cloud-platform",
103715	//     "https://www.googleapis.com/auth/compute"
103716	//   ]
103717	// }
103718
103719}
103720
103721// method id "compute.interconnects.testIamPermissions":
103722
103723type InterconnectsTestIamPermissionsCall struct {
103724	s                      *Service
103725	project                string
103726	resource               string
103727	testpermissionsrequest *TestPermissionsRequest
103728	urlParams_             gensupport.URLParams
103729	ctx_                   context.Context
103730	header_                http.Header
103731}
103732
103733// TestIamPermissions: Returns permissions that a caller has on the
103734// specified resource.
103735//
103736// - project: Project ID for this request.
103737// - resource: Name or id of the resource for this request.
103738func (r *InterconnectsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectsTestIamPermissionsCall {
103739	c := &InterconnectsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103740	c.project = project
103741	c.resource = resource
103742	c.testpermissionsrequest = testpermissionsrequest
103743	return c
103744}
103745
103746// Fields allows partial responses to be retrieved. See
103747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103748// for more information.
103749func (c *InterconnectsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectsTestIamPermissionsCall {
103750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103751	return c
103752}
103753
103754// Context sets the context to be used in this call's Do method. Any
103755// pending HTTP request will be aborted if the provided context is
103756// canceled.
103757func (c *InterconnectsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectsTestIamPermissionsCall {
103758	c.ctx_ = ctx
103759	return c
103760}
103761
103762// Header returns an http.Header that can be modified by the caller to
103763// add HTTP headers to the request.
103764func (c *InterconnectsTestIamPermissionsCall) Header() http.Header {
103765	if c.header_ == nil {
103766		c.header_ = make(http.Header)
103767	}
103768	return c.header_
103769}
103770
103771func (c *InterconnectsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
103772	reqHeaders := make(http.Header)
103773	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103774	for k, v := range c.header_ {
103775		reqHeaders[k] = v
103776	}
103777	reqHeaders.Set("User-Agent", c.s.userAgent())
103778	var body io.Reader = nil
103779	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
103780	if err != nil {
103781		return nil, err
103782	}
103783	reqHeaders.Set("Content-Type", "application/json")
103784	c.urlParams_.Set("alt", alt)
103785	c.urlParams_.Set("prettyPrint", "false")
103786	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{resource}/testIamPermissions")
103787	urls += "?" + c.urlParams_.Encode()
103788	req, err := http.NewRequest("POST", urls, body)
103789	if err != nil {
103790		return nil, err
103791	}
103792	req.Header = reqHeaders
103793	googleapi.Expand(req.URL, map[string]string{
103794		"project":  c.project,
103795		"resource": c.resource,
103796	})
103797	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103798}
103799
103800// Do executes the "compute.interconnects.testIamPermissions" call.
103801// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
103802// non-2xx status code is an error. Response headers are in either
103803// *TestPermissionsResponse.ServerResponse.Header or (if a response was
103804// returned at all) in error.(*googleapi.Error).Header. Use
103805// googleapi.IsNotModified to check whether the returned error was
103806// because http.StatusNotModified was returned.
103807func (c *InterconnectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
103808	gensupport.SetOptions(c.urlParams_, opts...)
103809	res, err := c.doRequest("json")
103810	if res != nil && res.StatusCode == http.StatusNotModified {
103811		if res.Body != nil {
103812			res.Body.Close()
103813		}
103814		return nil, &googleapi.Error{
103815			Code:   res.StatusCode,
103816			Header: res.Header,
103817		}
103818	}
103819	if err != nil {
103820		return nil, err
103821	}
103822	defer googleapi.CloseBody(res)
103823	if err := googleapi.CheckResponse(res); err != nil {
103824		return nil, err
103825	}
103826	ret := &TestPermissionsResponse{
103827		ServerResponse: googleapi.ServerResponse{
103828			Header:         res.Header,
103829			HTTPStatusCode: res.StatusCode,
103830		},
103831	}
103832	target := &ret
103833	if err := gensupport.DecodeResponse(target, res); err != nil {
103834		return nil, err
103835	}
103836	return ret, nil
103837	// {
103838	//   "description": "Returns permissions that a caller has on the specified resource.",
103839	//   "httpMethod": "POST",
103840	//   "id": "compute.interconnects.testIamPermissions",
103841	//   "parameterOrder": [
103842	//     "project",
103843	//     "resource"
103844	//   ],
103845	//   "parameters": {
103846	//     "project": {
103847	//       "description": "Project ID for this request.",
103848	//       "location": "path",
103849	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103850	//       "required": true,
103851	//       "type": "string"
103852	//     },
103853	//     "resource": {
103854	//       "description": "Name or id of the resource for this request.",
103855	//       "location": "path",
103856	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103857	//       "required": true,
103858	//       "type": "string"
103859	//     }
103860	//   },
103861	//   "path": "projects/{project}/global/interconnects/{resource}/testIamPermissions",
103862	//   "request": {
103863	//     "$ref": "TestPermissionsRequest"
103864	//   },
103865	//   "response": {
103866	//     "$ref": "TestPermissionsResponse"
103867	//   },
103868	//   "scopes": [
103869	//     "https://www.googleapis.com/auth/cloud-platform",
103870	//     "https://www.googleapis.com/auth/compute",
103871	//     "https://www.googleapis.com/auth/compute.readonly"
103872	//   ]
103873	// }
103874
103875}
103876
103877// method id "compute.licenseCodes.get":
103878
103879type LicenseCodesGetCall struct {
103880	s            *Service
103881	project      string
103882	licenseCode  string
103883	urlParams_   gensupport.URLParams
103884	ifNoneMatch_ string
103885	ctx_         context.Context
103886	header_      http.Header
103887}
103888
103889// Get: Return a specified license code. License codes are mirrored
103890// across all projects that have permissions to read the License Code.
103891// Caution This resource is intended for use only by third-party
103892// partners who are creating Cloud Marketplace images.
103893//
103894// - licenseCode: Number corresponding to the License code resource to
103895//   return.
103896// - project: Project ID for this request.
103897func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
103898	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103899	c.project = project
103900	c.licenseCode = licenseCode
103901	return c
103902}
103903
103904// Fields allows partial responses to be retrieved. See
103905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103906// for more information.
103907func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
103908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103909	return c
103910}
103911
103912// IfNoneMatch sets the optional parameter which makes the operation
103913// fail if the object's ETag matches the given value. This is useful for
103914// getting updates only after the object has changed since the last
103915// request. Use googleapi.IsNotModified to check whether the response
103916// error from Do is the result of In-None-Match.
103917func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
103918	c.ifNoneMatch_ = entityTag
103919	return c
103920}
103921
103922// Context sets the context to be used in this call's Do method. Any
103923// pending HTTP request will be aborted if the provided context is
103924// canceled.
103925func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
103926	c.ctx_ = ctx
103927	return c
103928}
103929
103930// Header returns an http.Header that can be modified by the caller to
103931// add HTTP headers to the request.
103932func (c *LicenseCodesGetCall) Header() http.Header {
103933	if c.header_ == nil {
103934		c.header_ = make(http.Header)
103935	}
103936	return c.header_
103937}
103938
103939func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
103940	reqHeaders := make(http.Header)
103941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103942	for k, v := range c.header_ {
103943		reqHeaders[k] = v
103944	}
103945	reqHeaders.Set("User-Agent", c.s.userAgent())
103946	if c.ifNoneMatch_ != "" {
103947		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103948	}
103949	var body io.Reader = nil
103950	c.urlParams_.Set("alt", alt)
103951	c.urlParams_.Set("prettyPrint", "false")
103952	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{licenseCode}")
103953	urls += "?" + c.urlParams_.Encode()
103954	req, err := http.NewRequest("GET", urls, body)
103955	if err != nil {
103956		return nil, err
103957	}
103958	req.Header = reqHeaders
103959	googleapi.Expand(req.URL, map[string]string{
103960		"project":     c.project,
103961		"licenseCode": c.licenseCode,
103962	})
103963	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103964}
103965
103966// Do executes the "compute.licenseCodes.get" call.
103967// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
103968// status code is an error. Response headers are in either
103969// *LicenseCode.ServerResponse.Header or (if a response was returned at
103970// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103971// to check whether the returned error was because
103972// http.StatusNotModified was returned.
103973func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
103974	gensupport.SetOptions(c.urlParams_, opts...)
103975	res, err := c.doRequest("json")
103976	if res != nil && res.StatusCode == http.StatusNotModified {
103977		if res.Body != nil {
103978			res.Body.Close()
103979		}
103980		return nil, &googleapi.Error{
103981			Code:   res.StatusCode,
103982			Header: res.Header,
103983		}
103984	}
103985	if err != nil {
103986		return nil, err
103987	}
103988	defer googleapi.CloseBody(res)
103989	if err := googleapi.CheckResponse(res); err != nil {
103990		return nil, err
103991	}
103992	ret := &LicenseCode{
103993		ServerResponse: googleapi.ServerResponse{
103994			Header:         res.Header,
103995			HTTPStatusCode: res.StatusCode,
103996		},
103997	}
103998	target := &ret
103999	if err := gensupport.DecodeResponse(target, res); err != nil {
104000		return nil, err
104001	}
104002	return ret, nil
104003	// {
104004	//   "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.",
104005	//   "httpMethod": "GET",
104006	//   "id": "compute.licenseCodes.get",
104007	//   "parameterOrder": [
104008	//     "project",
104009	//     "licenseCode"
104010	//   ],
104011	//   "parameters": {
104012	//     "licenseCode": {
104013	//       "description": "Number corresponding to the License code resource to return.",
104014	//       "location": "path",
104015	//       "pattern": "[0-9]{0,61}?",
104016	//       "required": true,
104017	//       "type": "string"
104018	//     },
104019	//     "project": {
104020	//       "description": "Project ID for this request.",
104021	//       "location": "path",
104022	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104023	//       "required": true,
104024	//       "type": "string"
104025	//     }
104026	//   },
104027	//   "path": "projects/{project}/global/licenseCodes/{licenseCode}",
104028	//   "response": {
104029	//     "$ref": "LicenseCode"
104030	//   },
104031	//   "scopes": [
104032	//     "https://www.googleapis.com/auth/cloud-platform",
104033	//     "https://www.googleapis.com/auth/compute",
104034	//     "https://www.googleapis.com/auth/compute.readonly"
104035	//   ]
104036	// }
104037
104038}
104039
104040// method id "compute.licenseCodes.testIamPermissions":
104041
104042type LicenseCodesTestIamPermissionsCall struct {
104043	s                      *Service
104044	project                string
104045	resource               string
104046	testpermissionsrequest *TestPermissionsRequest
104047	urlParams_             gensupport.URLParams
104048	ctx_                   context.Context
104049	header_                http.Header
104050}
104051
104052// TestIamPermissions: Returns permissions that a caller has on the
104053// specified resource.  Caution This resource is intended for use only
104054// by third-party partners who are creating Cloud Marketplace images.
104055//
104056// - project: Project ID for this request.
104057// - resource: Name or id of the resource for this request.
104058func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
104059	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104060	c.project = project
104061	c.resource = resource
104062	c.testpermissionsrequest = testpermissionsrequest
104063	return c
104064}
104065
104066// Fields allows partial responses to be retrieved. See
104067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104068// for more information.
104069func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
104070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104071	return c
104072}
104073
104074// Context sets the context to be used in this call's Do method. Any
104075// pending HTTP request will be aborted if the provided context is
104076// canceled.
104077func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
104078	c.ctx_ = ctx
104079	return c
104080}
104081
104082// Header returns an http.Header that can be modified by the caller to
104083// add HTTP headers to the request.
104084func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
104085	if c.header_ == nil {
104086		c.header_ = make(http.Header)
104087	}
104088	return c.header_
104089}
104090
104091func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
104092	reqHeaders := make(http.Header)
104093	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104094	for k, v := range c.header_ {
104095		reqHeaders[k] = v
104096	}
104097	reqHeaders.Set("User-Agent", c.s.userAgent())
104098	var body io.Reader = nil
104099	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
104100	if err != nil {
104101		return nil, err
104102	}
104103	reqHeaders.Set("Content-Type", "application/json")
104104	c.urlParams_.Set("alt", alt)
104105	c.urlParams_.Set("prettyPrint", "false")
104106	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/testIamPermissions")
104107	urls += "?" + c.urlParams_.Encode()
104108	req, err := http.NewRequest("POST", urls, body)
104109	if err != nil {
104110		return nil, err
104111	}
104112	req.Header = reqHeaders
104113	googleapi.Expand(req.URL, map[string]string{
104114		"project":  c.project,
104115		"resource": c.resource,
104116	})
104117	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104118}
104119
104120// Do executes the "compute.licenseCodes.testIamPermissions" call.
104121// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
104122// non-2xx status code is an error. Response headers are in either
104123// *TestPermissionsResponse.ServerResponse.Header or (if a response was
104124// returned at all) in error.(*googleapi.Error).Header. Use
104125// googleapi.IsNotModified to check whether the returned error was
104126// because http.StatusNotModified was returned.
104127func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
104128	gensupport.SetOptions(c.urlParams_, opts...)
104129	res, err := c.doRequest("json")
104130	if res != nil && res.StatusCode == http.StatusNotModified {
104131		if res.Body != nil {
104132			res.Body.Close()
104133		}
104134		return nil, &googleapi.Error{
104135			Code:   res.StatusCode,
104136			Header: res.Header,
104137		}
104138	}
104139	if err != nil {
104140		return nil, err
104141	}
104142	defer googleapi.CloseBody(res)
104143	if err := googleapi.CheckResponse(res); err != nil {
104144		return nil, err
104145	}
104146	ret := &TestPermissionsResponse{
104147		ServerResponse: googleapi.ServerResponse{
104148			Header:         res.Header,
104149			HTTPStatusCode: res.StatusCode,
104150		},
104151	}
104152	target := &ret
104153	if err := gensupport.DecodeResponse(target, res); err != nil {
104154		return nil, err
104155	}
104156	return ret, nil
104157	// {
104158	//   "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.",
104159	//   "httpMethod": "POST",
104160	//   "id": "compute.licenseCodes.testIamPermissions",
104161	//   "parameterOrder": [
104162	//     "project",
104163	//     "resource"
104164	//   ],
104165	//   "parameters": {
104166	//     "project": {
104167	//       "description": "Project ID for this request.",
104168	//       "location": "path",
104169	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104170	//       "required": true,
104171	//       "type": "string"
104172	//     },
104173	//     "resource": {
104174	//       "description": "Name or id of the resource for this request.",
104175	//       "location": "path",
104176	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104177	//       "required": true,
104178	//       "type": "string"
104179	//     }
104180	//   },
104181	//   "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
104182	//   "request": {
104183	//     "$ref": "TestPermissionsRequest"
104184	//   },
104185	//   "response": {
104186	//     "$ref": "TestPermissionsResponse"
104187	//   },
104188	//   "scopes": [
104189	//     "https://www.googleapis.com/auth/cloud-platform",
104190	//     "https://www.googleapis.com/auth/compute",
104191	//     "https://www.googleapis.com/auth/compute.readonly"
104192	//   ]
104193	// }
104194
104195}
104196
104197// method id "compute.licenses.delete":
104198
104199type LicensesDeleteCall struct {
104200	s          *Service
104201	project    string
104202	license    string
104203	urlParams_ gensupport.URLParams
104204	ctx_       context.Context
104205	header_    http.Header
104206}
104207
104208// Delete: Deletes the specified license.  Caution This resource is
104209// intended for use only by third-party partners who are creating Cloud
104210// Marketplace images.
104211//
104212// - license: Name of the license resource to delete.
104213// - project: Project ID for this request.
104214func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
104215	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104216	c.project = project
104217	c.license = license
104218	return c
104219}
104220
104221// RequestId sets the optional parameter "requestId": An optional
104222// request ID to identify requests. Specify a unique request ID so that
104223// if you must retry your request, the server will know to ignore the
104224// request if it has already been completed.
104225//
104226// For example, consider a situation where you make an initial request
104227// and the request times out. If you make the request again with the
104228// same request ID, the server can check if original operation with the
104229// same request ID was received, and if so, will ignore the second
104230// request. This prevents clients from accidentally creating duplicate
104231// commitments.
104232//
104233// The request ID must be a valid UUID with the exception that zero UUID
104234// is not supported (00000000-0000-0000-0000-000000000000).
104235func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
104236	c.urlParams_.Set("requestId", requestId)
104237	return c
104238}
104239
104240// Fields allows partial responses to be retrieved. See
104241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104242// for more information.
104243func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
104244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104245	return c
104246}
104247
104248// Context sets the context to be used in this call's Do method. Any
104249// pending HTTP request will be aborted if the provided context is
104250// canceled.
104251func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
104252	c.ctx_ = ctx
104253	return c
104254}
104255
104256// Header returns an http.Header that can be modified by the caller to
104257// add HTTP headers to the request.
104258func (c *LicensesDeleteCall) Header() http.Header {
104259	if c.header_ == nil {
104260		c.header_ = make(http.Header)
104261	}
104262	return c.header_
104263}
104264
104265func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
104266	reqHeaders := make(http.Header)
104267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104268	for k, v := range c.header_ {
104269		reqHeaders[k] = v
104270	}
104271	reqHeaders.Set("User-Agent", c.s.userAgent())
104272	var body io.Reader = nil
104273	c.urlParams_.Set("alt", alt)
104274	c.urlParams_.Set("prettyPrint", "false")
104275	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
104276	urls += "?" + c.urlParams_.Encode()
104277	req, err := http.NewRequest("DELETE", urls, body)
104278	if err != nil {
104279		return nil, err
104280	}
104281	req.Header = reqHeaders
104282	googleapi.Expand(req.URL, map[string]string{
104283		"project": c.project,
104284		"license": c.license,
104285	})
104286	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104287}
104288
104289// Do executes the "compute.licenses.delete" call.
104290// Exactly one of *Operation or error will be non-nil. Any non-2xx
104291// status code is an error. Response headers are in either
104292// *Operation.ServerResponse.Header or (if a response was returned at
104293// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104294// to check whether the returned error was because
104295// http.StatusNotModified was returned.
104296func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104297	gensupport.SetOptions(c.urlParams_, opts...)
104298	res, err := c.doRequest("json")
104299	if res != nil && res.StatusCode == http.StatusNotModified {
104300		if res.Body != nil {
104301			res.Body.Close()
104302		}
104303		return nil, &googleapi.Error{
104304			Code:   res.StatusCode,
104305			Header: res.Header,
104306		}
104307	}
104308	if err != nil {
104309		return nil, err
104310	}
104311	defer googleapi.CloseBody(res)
104312	if err := googleapi.CheckResponse(res); err != nil {
104313		return nil, err
104314	}
104315	ret := &Operation{
104316		ServerResponse: googleapi.ServerResponse{
104317			Header:         res.Header,
104318			HTTPStatusCode: res.StatusCode,
104319		},
104320	}
104321	target := &ret
104322	if err := gensupport.DecodeResponse(target, res); err != nil {
104323		return nil, err
104324	}
104325	return ret, nil
104326	// {
104327	//   "description": "Deletes the specified license.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
104328	//   "httpMethod": "DELETE",
104329	//   "id": "compute.licenses.delete",
104330	//   "parameterOrder": [
104331	//     "project",
104332	//     "license"
104333	//   ],
104334	//   "parameters": {
104335	//     "license": {
104336	//       "description": "Name of the license resource to delete.",
104337	//       "location": "path",
104338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104339	//       "required": true,
104340	//       "type": "string"
104341	//     },
104342	//     "project": {
104343	//       "description": "Project ID for this request.",
104344	//       "location": "path",
104345	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104346	//       "required": true,
104347	//       "type": "string"
104348	//     },
104349	//     "requestId": {
104350	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104351	//       "location": "query",
104352	//       "type": "string"
104353	//     }
104354	//   },
104355	//   "path": "projects/{project}/global/licenses/{license}",
104356	//   "response": {
104357	//     "$ref": "Operation"
104358	//   },
104359	//   "scopes": [
104360	//     "https://www.googleapis.com/auth/cloud-platform",
104361	//     "https://www.googleapis.com/auth/compute"
104362	//   ]
104363	// }
104364
104365}
104366
104367// method id "compute.licenses.get":
104368
104369type LicensesGetCall struct {
104370	s            *Service
104371	project      string
104372	license      string
104373	urlParams_   gensupport.URLParams
104374	ifNoneMatch_ string
104375	ctx_         context.Context
104376	header_      http.Header
104377}
104378
104379// Get: Returns the specified License resource.  Caution This resource
104380// is intended for use only by third-party partners who are creating
104381// Cloud Marketplace images.
104382//
104383// - license: Name of the License resource to return.
104384// - project: Project ID for this request.
104385// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
104386func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
104387	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104388	c.project = project
104389	c.license = license
104390	return c
104391}
104392
104393// Fields allows partial responses to be retrieved. See
104394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104395// for more information.
104396func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
104397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104398	return c
104399}
104400
104401// IfNoneMatch sets the optional parameter which makes the operation
104402// fail if the object's ETag matches the given value. This is useful for
104403// getting updates only after the object has changed since the last
104404// request. Use googleapi.IsNotModified to check whether the response
104405// error from Do is the result of In-None-Match.
104406func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
104407	c.ifNoneMatch_ = entityTag
104408	return c
104409}
104410
104411// Context sets the context to be used in this call's Do method. Any
104412// pending HTTP request will be aborted if the provided context is
104413// canceled.
104414func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
104415	c.ctx_ = ctx
104416	return c
104417}
104418
104419// Header returns an http.Header that can be modified by the caller to
104420// add HTTP headers to the request.
104421func (c *LicensesGetCall) Header() http.Header {
104422	if c.header_ == nil {
104423		c.header_ = make(http.Header)
104424	}
104425	return c.header_
104426}
104427
104428func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
104429	reqHeaders := make(http.Header)
104430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104431	for k, v := range c.header_ {
104432		reqHeaders[k] = v
104433	}
104434	reqHeaders.Set("User-Agent", c.s.userAgent())
104435	if c.ifNoneMatch_ != "" {
104436		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104437	}
104438	var body io.Reader = nil
104439	c.urlParams_.Set("alt", alt)
104440	c.urlParams_.Set("prettyPrint", "false")
104441	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
104442	urls += "?" + c.urlParams_.Encode()
104443	req, err := http.NewRequest("GET", urls, body)
104444	if err != nil {
104445		return nil, err
104446	}
104447	req.Header = reqHeaders
104448	googleapi.Expand(req.URL, map[string]string{
104449		"project": c.project,
104450		"license": c.license,
104451	})
104452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104453}
104454
104455// Do executes the "compute.licenses.get" call.
104456// Exactly one of *License or error will be non-nil. Any non-2xx status
104457// code is an error. Response headers are in either
104458// *License.ServerResponse.Header or (if a response was returned at all)
104459// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
104460// check whether the returned error was because http.StatusNotModified
104461// was returned.
104462func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
104463	gensupport.SetOptions(c.urlParams_, opts...)
104464	res, err := c.doRequest("json")
104465	if res != nil && res.StatusCode == http.StatusNotModified {
104466		if res.Body != nil {
104467			res.Body.Close()
104468		}
104469		return nil, &googleapi.Error{
104470			Code:   res.StatusCode,
104471			Header: res.Header,
104472		}
104473	}
104474	if err != nil {
104475		return nil, err
104476	}
104477	defer googleapi.CloseBody(res)
104478	if err := googleapi.CheckResponse(res); err != nil {
104479		return nil, err
104480	}
104481	ret := &License{
104482		ServerResponse: googleapi.ServerResponse{
104483			Header:         res.Header,
104484			HTTPStatusCode: res.StatusCode,
104485		},
104486	}
104487	target := &ret
104488	if err := gensupport.DecodeResponse(target, res); err != nil {
104489		return nil, err
104490	}
104491	return ret, nil
104492	// {
104493	//   "description": "Returns the specified License resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
104494	//   "httpMethod": "GET",
104495	//   "id": "compute.licenses.get",
104496	//   "parameterOrder": [
104497	//     "project",
104498	//     "license"
104499	//   ],
104500	//   "parameters": {
104501	//     "license": {
104502	//       "description": "Name of the License resource to return.",
104503	//       "location": "path",
104504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104505	//       "required": true,
104506	//       "type": "string"
104507	//     },
104508	//     "project": {
104509	//       "description": "Project ID for this request.",
104510	//       "location": "path",
104511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104512	//       "required": true,
104513	//       "type": "string"
104514	//     }
104515	//   },
104516	//   "path": "projects/{project}/global/licenses/{license}",
104517	//   "response": {
104518	//     "$ref": "License"
104519	//   },
104520	//   "scopes": [
104521	//     "https://www.googleapis.com/auth/cloud-platform",
104522	//     "https://www.googleapis.com/auth/compute",
104523	//     "https://www.googleapis.com/auth/compute.readonly"
104524	//   ]
104525	// }
104526
104527}
104528
104529// method id "compute.licenses.getIamPolicy":
104530
104531type LicensesGetIamPolicyCall struct {
104532	s            *Service
104533	project      string
104534	resource     string
104535	urlParams_   gensupport.URLParams
104536	ifNoneMatch_ string
104537	ctx_         context.Context
104538	header_      http.Header
104539}
104540
104541// GetIamPolicy: Gets the access control policy for a resource. May be
104542// empty if no such policy or resource exists.  Caution This resource is
104543// intended for use only by third-party partners who are creating Cloud
104544// Marketplace images.
104545//
104546// - project: Project ID for this request.
104547// - resource: Name or id of the resource for this request.
104548func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
104549	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104550	c.project = project
104551	c.resource = resource
104552	return c
104553}
104554
104555// OptionsRequestedPolicyVersion sets the optional parameter
104556// "optionsRequestedPolicyVersion": Requested IAM Policy version.
104557func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
104558	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
104559	return c
104560}
104561
104562// Fields allows partial responses to be retrieved. See
104563// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104564// for more information.
104565func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
104566	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104567	return c
104568}
104569
104570// IfNoneMatch sets the optional parameter which makes the operation
104571// fail if the object's ETag matches the given value. This is useful for
104572// getting updates only after the object has changed since the last
104573// request. Use googleapi.IsNotModified to check whether the response
104574// error from Do is the result of In-None-Match.
104575func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
104576	c.ifNoneMatch_ = entityTag
104577	return c
104578}
104579
104580// Context sets the context to be used in this call's Do method. Any
104581// pending HTTP request will be aborted if the provided context is
104582// canceled.
104583func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
104584	c.ctx_ = ctx
104585	return c
104586}
104587
104588// Header returns an http.Header that can be modified by the caller to
104589// add HTTP headers to the request.
104590func (c *LicensesGetIamPolicyCall) Header() http.Header {
104591	if c.header_ == nil {
104592		c.header_ = make(http.Header)
104593	}
104594	return c.header_
104595}
104596
104597func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
104598	reqHeaders := make(http.Header)
104599	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104600	for k, v := range c.header_ {
104601		reqHeaders[k] = v
104602	}
104603	reqHeaders.Set("User-Agent", c.s.userAgent())
104604	if c.ifNoneMatch_ != "" {
104605		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104606	}
104607	var body io.Reader = nil
104608	c.urlParams_.Set("alt", alt)
104609	c.urlParams_.Set("prettyPrint", "false")
104610	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/getIamPolicy")
104611	urls += "?" + c.urlParams_.Encode()
104612	req, err := http.NewRequest("GET", urls, body)
104613	if err != nil {
104614		return nil, err
104615	}
104616	req.Header = reqHeaders
104617	googleapi.Expand(req.URL, map[string]string{
104618		"project":  c.project,
104619		"resource": c.resource,
104620	})
104621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104622}
104623
104624// Do executes the "compute.licenses.getIamPolicy" call.
104625// Exactly one of *Policy or error will be non-nil. Any non-2xx status
104626// code is an error. Response headers are in either
104627// *Policy.ServerResponse.Header or (if a response was returned at all)
104628// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
104629// check whether the returned error was because http.StatusNotModified
104630// was returned.
104631func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
104632	gensupport.SetOptions(c.urlParams_, opts...)
104633	res, err := c.doRequest("json")
104634	if res != nil && res.StatusCode == http.StatusNotModified {
104635		if res.Body != nil {
104636			res.Body.Close()
104637		}
104638		return nil, &googleapi.Error{
104639			Code:   res.StatusCode,
104640			Header: res.Header,
104641		}
104642	}
104643	if err != nil {
104644		return nil, err
104645	}
104646	defer googleapi.CloseBody(res)
104647	if err := googleapi.CheckResponse(res); err != nil {
104648		return nil, err
104649	}
104650	ret := &Policy{
104651		ServerResponse: googleapi.ServerResponse{
104652			Header:         res.Header,
104653			HTTPStatusCode: res.StatusCode,
104654		},
104655	}
104656	target := &ret
104657	if err := gensupport.DecodeResponse(target, res); err != nil {
104658		return nil, err
104659	}
104660	return ret, nil
104661	// {
104662	//   "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.",
104663	//   "httpMethod": "GET",
104664	//   "id": "compute.licenses.getIamPolicy",
104665	//   "parameterOrder": [
104666	//     "project",
104667	//     "resource"
104668	//   ],
104669	//   "parameters": {
104670	//     "optionsRequestedPolicyVersion": {
104671	//       "description": "Requested IAM Policy version.",
104672	//       "format": "int32",
104673	//       "location": "query",
104674	//       "type": "integer"
104675	//     },
104676	//     "project": {
104677	//       "description": "Project ID for this request.",
104678	//       "location": "path",
104679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104680	//       "required": true,
104681	//       "type": "string"
104682	//     },
104683	//     "resource": {
104684	//       "description": "Name or id of the resource for this request.",
104685	//       "location": "path",
104686	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104687	//       "required": true,
104688	//       "type": "string"
104689	//     }
104690	//   },
104691	//   "path": "projects/{project}/global/licenses/{resource}/getIamPolicy",
104692	//   "response": {
104693	//     "$ref": "Policy"
104694	//   },
104695	//   "scopes": [
104696	//     "https://www.googleapis.com/auth/cloud-platform",
104697	//     "https://www.googleapis.com/auth/compute",
104698	//     "https://www.googleapis.com/auth/compute.readonly"
104699	//   ]
104700	// }
104701
104702}
104703
104704// method id "compute.licenses.insert":
104705
104706type LicensesInsertCall struct {
104707	s          *Service
104708	project    string
104709	license    *License
104710	urlParams_ gensupport.URLParams
104711	ctx_       context.Context
104712	header_    http.Header
104713}
104714
104715// Insert: Create a License resource in the specified project.  Caution
104716// This resource is intended for use only by third-party partners who
104717// are creating Cloud Marketplace images.
104718//
104719// - project: Project ID for this request.
104720func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
104721	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104722	c.project = project
104723	c.license = license
104724	return c
104725}
104726
104727// RequestId sets the optional parameter "requestId": An optional
104728// request ID to identify requests. Specify a unique request ID so that
104729// if you must retry your request, the server will know to ignore the
104730// request if it has already been completed.
104731//
104732// For example, consider a situation where you make an initial request
104733// and the request times out. If you make the request again with the
104734// same request ID, the server can check if original operation with the
104735// same request ID was received, and if so, will ignore the second
104736// request. This prevents clients from accidentally creating duplicate
104737// commitments.
104738//
104739// The request ID must be a valid UUID with the exception that zero UUID
104740// is not supported (00000000-0000-0000-0000-000000000000).
104741func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
104742	c.urlParams_.Set("requestId", requestId)
104743	return c
104744}
104745
104746// Fields allows partial responses to be retrieved. See
104747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104748// for more information.
104749func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
104750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104751	return c
104752}
104753
104754// Context sets the context to be used in this call's Do method. Any
104755// pending HTTP request will be aborted if the provided context is
104756// canceled.
104757func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
104758	c.ctx_ = ctx
104759	return c
104760}
104761
104762// Header returns an http.Header that can be modified by the caller to
104763// add HTTP headers to the request.
104764func (c *LicensesInsertCall) Header() http.Header {
104765	if c.header_ == nil {
104766		c.header_ = make(http.Header)
104767	}
104768	return c.header_
104769}
104770
104771func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
104772	reqHeaders := make(http.Header)
104773	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104774	for k, v := range c.header_ {
104775		reqHeaders[k] = v
104776	}
104777	reqHeaders.Set("User-Agent", c.s.userAgent())
104778	var body io.Reader = nil
104779	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
104780	if err != nil {
104781		return nil, err
104782	}
104783	reqHeaders.Set("Content-Type", "application/json")
104784	c.urlParams_.Set("alt", alt)
104785	c.urlParams_.Set("prettyPrint", "false")
104786	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
104787	urls += "?" + c.urlParams_.Encode()
104788	req, err := http.NewRequest("POST", urls, body)
104789	if err != nil {
104790		return nil, err
104791	}
104792	req.Header = reqHeaders
104793	googleapi.Expand(req.URL, map[string]string{
104794		"project": c.project,
104795	})
104796	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104797}
104798
104799// Do executes the "compute.licenses.insert" call.
104800// Exactly one of *Operation or error will be non-nil. Any non-2xx
104801// status code is an error. Response headers are in either
104802// *Operation.ServerResponse.Header or (if a response was returned at
104803// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104804// to check whether the returned error was because
104805// http.StatusNotModified was returned.
104806func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104807	gensupport.SetOptions(c.urlParams_, opts...)
104808	res, err := c.doRequest("json")
104809	if res != nil && res.StatusCode == http.StatusNotModified {
104810		if res.Body != nil {
104811			res.Body.Close()
104812		}
104813		return nil, &googleapi.Error{
104814			Code:   res.StatusCode,
104815			Header: res.Header,
104816		}
104817	}
104818	if err != nil {
104819		return nil, err
104820	}
104821	defer googleapi.CloseBody(res)
104822	if err := googleapi.CheckResponse(res); err != nil {
104823		return nil, err
104824	}
104825	ret := &Operation{
104826		ServerResponse: googleapi.ServerResponse{
104827			Header:         res.Header,
104828			HTTPStatusCode: res.StatusCode,
104829		},
104830	}
104831	target := &ret
104832	if err := gensupport.DecodeResponse(target, res); err != nil {
104833		return nil, err
104834	}
104835	return ret, nil
104836	// {
104837	//   "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.",
104838	//   "httpMethod": "POST",
104839	//   "id": "compute.licenses.insert",
104840	//   "parameterOrder": [
104841	//     "project"
104842	//   ],
104843	//   "parameters": {
104844	//     "project": {
104845	//       "description": "Project ID for this request.",
104846	//       "location": "path",
104847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104848	//       "required": true,
104849	//       "type": "string"
104850	//     },
104851	//     "requestId": {
104852	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104853	//       "location": "query",
104854	//       "type": "string"
104855	//     }
104856	//   },
104857	//   "path": "projects/{project}/global/licenses",
104858	//   "request": {
104859	//     "$ref": "License"
104860	//   },
104861	//   "response": {
104862	//     "$ref": "Operation"
104863	//   },
104864	//   "scopes": [
104865	//     "https://www.googleapis.com/auth/cloud-platform",
104866	//     "https://www.googleapis.com/auth/compute",
104867	//     "https://www.googleapis.com/auth/devstorage.full_control",
104868	//     "https://www.googleapis.com/auth/devstorage.read_only",
104869	//     "https://www.googleapis.com/auth/devstorage.read_write"
104870	//   ]
104871	// }
104872
104873}
104874
104875// method id "compute.licenses.list":
104876
104877type LicensesListCall struct {
104878	s            *Service
104879	project      string
104880	urlParams_   gensupport.URLParams
104881	ifNoneMatch_ string
104882	ctx_         context.Context
104883	header_      http.Header
104884}
104885
104886// List: Retrieves the list of licenses available in the specified
104887// project. This method does not get any licenses that belong to other
104888// projects, including licenses attached to publicly-available images,
104889// like Debian 9. If you want to get a list of publicly-available
104890// licenses, use this method to make a request to the respective image
104891// project, such as debian-cloud or windows-cloud.  Caution This
104892// resource is intended for use only by third-party partners who are
104893// creating Cloud Marketplace images.
104894//
104895// - project: Project ID for this request.
104896func (r *LicensesService) List(project string) *LicensesListCall {
104897	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104898	c.project = project
104899	return c
104900}
104901
104902// Filter sets the optional parameter "filter": A filter expression that
104903// filters resources listed in the response. The expression must specify
104904// the field name, a comparison operator, and the value that you want to
104905// use for filtering. The value must be a string, a number, or a
104906// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104907// `<`.
104908//
104909// For example, if you are filtering Compute Engine instances, you can
104910// exclude instances named `example-instance` by specifying `name !=
104911// example-instance`.
104912//
104913// You can also filter nested fields. For example, you could specify
104914// `scheduling.automaticRestart = false` to include instances only if
104915// they are not scheduled for automatic restarts. You can use filtering
104916// on nested fields to filter based on resource labels.
104917//
104918// To filter on multiple expressions, provide each separate expression
104919// within parentheses. For example: ``` (scheduling.automaticRestart =
104920// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
104921// is an `AND` expression. However, you can include `AND` and `OR`
104922// expressions explicitly. For example: ``` (cpuPlatform = "Intel
104923// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
104924// (scheduling.automaticRestart = true) ```
104925func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
104926	c.urlParams_.Set("filter", filter)
104927	return c
104928}
104929
104930// MaxResults sets the optional parameter "maxResults": The maximum
104931// number of results per page that should be returned. If the number of
104932// available results is larger than `maxResults`, Compute Engine returns
104933// a `nextPageToken` that can be used to get the next page of results in
104934// subsequent list requests. Acceptable values are `0` to `500`,
104935// inclusive. (Default: `500`)
104936func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
104937	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104938	return c
104939}
104940
104941// OrderBy sets the optional parameter "orderBy": Sorts list results by
104942// a certain order. By default, results are returned in alphanumerical
104943// order based on the resource name.
104944//
104945// You can also sort results in descending order based on the creation
104946// timestamp using `orderBy="creationTimestamp desc". This sorts
104947// results based on the `creationTimestamp` field in reverse
104948// chronological order (newest result first). Use this to sort resources
104949// like operations so that the newest operation is returned
104950// first.
104951//
104952// Currently, only sorting by `name` or `creationTimestamp desc` is
104953// supported.
104954func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
104955	c.urlParams_.Set("orderBy", orderBy)
104956	return c
104957}
104958
104959// PageToken sets the optional parameter "pageToken": Specifies a page
104960// token to use. Set `pageToken` to the `nextPageToken` returned by a
104961// previous list request to get the next page of results.
104962func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
104963	c.urlParams_.Set("pageToken", pageToken)
104964	return c
104965}
104966
104967// ReturnPartialSuccess sets the optional parameter
104968// "returnPartialSuccess": Opt-in for partial success behavior which
104969// provides partial results in case of failure. The default value is
104970// false.
104971func (c *LicensesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *LicensesListCall {
104972	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
104973	return c
104974}
104975
104976// Fields allows partial responses to be retrieved. See
104977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104978// for more information.
104979func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
104980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104981	return c
104982}
104983
104984// IfNoneMatch sets the optional parameter which makes the operation
104985// fail if the object's ETag matches the given value. This is useful for
104986// getting updates only after the object has changed since the last
104987// request. Use googleapi.IsNotModified to check whether the response
104988// error from Do is the result of In-None-Match.
104989func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
104990	c.ifNoneMatch_ = entityTag
104991	return c
104992}
104993
104994// Context sets the context to be used in this call's Do method. Any
104995// pending HTTP request will be aborted if the provided context is
104996// canceled.
104997func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
104998	c.ctx_ = ctx
104999	return c
105000}
105001
105002// Header returns an http.Header that can be modified by the caller to
105003// add HTTP headers to the request.
105004func (c *LicensesListCall) Header() http.Header {
105005	if c.header_ == nil {
105006		c.header_ = make(http.Header)
105007	}
105008	return c.header_
105009}
105010
105011func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
105012	reqHeaders := make(http.Header)
105013	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105014	for k, v := range c.header_ {
105015		reqHeaders[k] = v
105016	}
105017	reqHeaders.Set("User-Agent", c.s.userAgent())
105018	if c.ifNoneMatch_ != "" {
105019		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105020	}
105021	var body io.Reader = nil
105022	c.urlParams_.Set("alt", alt)
105023	c.urlParams_.Set("prettyPrint", "false")
105024	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
105025	urls += "?" + c.urlParams_.Encode()
105026	req, err := http.NewRequest("GET", urls, body)
105027	if err != nil {
105028		return nil, err
105029	}
105030	req.Header = reqHeaders
105031	googleapi.Expand(req.URL, map[string]string{
105032		"project": c.project,
105033	})
105034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105035}
105036
105037// Do executes the "compute.licenses.list" call.
105038// Exactly one of *LicensesListResponse or error will be non-nil. Any
105039// non-2xx status code is an error. Response headers are in either
105040// *LicensesListResponse.ServerResponse.Header or (if a response was
105041// returned at all) in error.(*googleapi.Error).Header. Use
105042// googleapi.IsNotModified to check whether the returned error was
105043// because http.StatusNotModified was returned.
105044func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
105045	gensupport.SetOptions(c.urlParams_, opts...)
105046	res, err := c.doRequest("json")
105047	if res != nil && res.StatusCode == http.StatusNotModified {
105048		if res.Body != nil {
105049			res.Body.Close()
105050		}
105051		return nil, &googleapi.Error{
105052			Code:   res.StatusCode,
105053			Header: res.Header,
105054		}
105055	}
105056	if err != nil {
105057		return nil, err
105058	}
105059	defer googleapi.CloseBody(res)
105060	if err := googleapi.CheckResponse(res); err != nil {
105061		return nil, err
105062	}
105063	ret := &LicensesListResponse{
105064		ServerResponse: googleapi.ServerResponse{
105065			Header:         res.Header,
105066			HTTPStatusCode: res.StatusCode,
105067		},
105068	}
105069	target := &ret
105070	if err := gensupport.DecodeResponse(target, res); err != nil {
105071		return nil, err
105072	}
105073	return ret, nil
105074	// {
105075	//   "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.",
105076	//   "httpMethod": "GET",
105077	//   "id": "compute.licenses.list",
105078	//   "parameterOrder": [
105079	//     "project"
105080	//   ],
105081	//   "parameters": {
105082	//     "filter": {
105083	//       "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) ```",
105084	//       "location": "query",
105085	//       "type": "string"
105086	//     },
105087	//     "maxResults": {
105088	//       "default": "500",
105089	//       "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`)",
105090	//       "format": "uint32",
105091	//       "location": "query",
105092	//       "minimum": "0",
105093	//       "type": "integer"
105094	//     },
105095	//     "orderBy": {
105096	//       "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.",
105097	//       "location": "query",
105098	//       "type": "string"
105099	//     },
105100	//     "pageToken": {
105101	//       "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.",
105102	//       "location": "query",
105103	//       "type": "string"
105104	//     },
105105	//     "project": {
105106	//       "description": "Project ID for this request.",
105107	//       "location": "path",
105108	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105109	//       "required": true,
105110	//       "type": "string"
105111	//     },
105112	//     "returnPartialSuccess": {
105113	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
105114	//       "location": "query",
105115	//       "type": "boolean"
105116	//     }
105117	//   },
105118	//   "path": "projects/{project}/global/licenses",
105119	//   "response": {
105120	//     "$ref": "LicensesListResponse"
105121	//   },
105122	//   "scopes": [
105123	//     "https://www.googleapis.com/auth/cloud-platform",
105124	//     "https://www.googleapis.com/auth/compute",
105125	//     "https://www.googleapis.com/auth/compute.readonly"
105126	//   ]
105127	// }
105128
105129}
105130
105131// Pages invokes f for each page of results.
105132// A non-nil error returned from f will halt the iteration.
105133// The provided context supersedes any context provided to the Context method.
105134func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
105135	c.ctx_ = ctx
105136	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105137	for {
105138		x, err := c.Do()
105139		if err != nil {
105140			return err
105141		}
105142		if err := f(x); err != nil {
105143			return err
105144		}
105145		if x.NextPageToken == "" {
105146			return nil
105147		}
105148		c.PageToken(x.NextPageToken)
105149	}
105150}
105151
105152// method id "compute.licenses.setIamPolicy":
105153
105154type LicensesSetIamPolicyCall struct {
105155	s                      *Service
105156	project                string
105157	resource               string
105158	globalsetpolicyrequest *GlobalSetPolicyRequest
105159	urlParams_             gensupport.URLParams
105160	ctx_                   context.Context
105161	header_                http.Header
105162}
105163
105164// SetIamPolicy: Sets the access control policy on the specified
105165// resource. Replaces any existing policy.  Caution This resource is
105166// intended for use only by third-party partners who are creating Cloud
105167// Marketplace images.
105168//
105169// - project: Project ID for this request.
105170// - resource: Name or id of the resource for this request.
105171func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
105172	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105173	c.project = project
105174	c.resource = resource
105175	c.globalsetpolicyrequest = globalsetpolicyrequest
105176	return c
105177}
105178
105179// Fields allows partial responses to be retrieved. See
105180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105181// for more information.
105182func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
105183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105184	return c
105185}
105186
105187// Context sets the context to be used in this call's Do method. Any
105188// pending HTTP request will be aborted if the provided context is
105189// canceled.
105190func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
105191	c.ctx_ = ctx
105192	return c
105193}
105194
105195// Header returns an http.Header that can be modified by the caller to
105196// add HTTP headers to the request.
105197func (c *LicensesSetIamPolicyCall) Header() http.Header {
105198	if c.header_ == nil {
105199		c.header_ = make(http.Header)
105200	}
105201	return c.header_
105202}
105203
105204func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
105205	reqHeaders := make(http.Header)
105206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105207	for k, v := range c.header_ {
105208		reqHeaders[k] = v
105209	}
105210	reqHeaders.Set("User-Agent", c.s.userAgent())
105211	var body io.Reader = nil
105212	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
105213	if err != nil {
105214		return nil, err
105215	}
105216	reqHeaders.Set("Content-Type", "application/json")
105217	c.urlParams_.Set("alt", alt)
105218	c.urlParams_.Set("prettyPrint", "false")
105219	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/setIamPolicy")
105220	urls += "?" + c.urlParams_.Encode()
105221	req, err := http.NewRequest("POST", urls, body)
105222	if err != nil {
105223		return nil, err
105224	}
105225	req.Header = reqHeaders
105226	googleapi.Expand(req.URL, map[string]string{
105227		"project":  c.project,
105228		"resource": c.resource,
105229	})
105230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105231}
105232
105233// Do executes the "compute.licenses.setIamPolicy" call.
105234// Exactly one of *Policy or error will be non-nil. Any non-2xx status
105235// code is an error. Response headers are in either
105236// *Policy.ServerResponse.Header or (if a response was returned at all)
105237// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
105238// check whether the returned error was because http.StatusNotModified
105239// was returned.
105240func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
105241	gensupport.SetOptions(c.urlParams_, opts...)
105242	res, err := c.doRequest("json")
105243	if res != nil && res.StatusCode == http.StatusNotModified {
105244		if res.Body != nil {
105245			res.Body.Close()
105246		}
105247		return nil, &googleapi.Error{
105248			Code:   res.StatusCode,
105249			Header: res.Header,
105250		}
105251	}
105252	if err != nil {
105253		return nil, err
105254	}
105255	defer googleapi.CloseBody(res)
105256	if err := googleapi.CheckResponse(res); err != nil {
105257		return nil, err
105258	}
105259	ret := &Policy{
105260		ServerResponse: googleapi.ServerResponse{
105261			Header:         res.Header,
105262			HTTPStatusCode: res.StatusCode,
105263		},
105264	}
105265	target := &ret
105266	if err := gensupport.DecodeResponse(target, res); err != nil {
105267		return nil, err
105268	}
105269	return ret, nil
105270	// {
105271	//   "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.",
105272	//   "httpMethod": "POST",
105273	//   "id": "compute.licenses.setIamPolicy",
105274	//   "parameterOrder": [
105275	//     "project",
105276	//     "resource"
105277	//   ],
105278	//   "parameters": {
105279	//     "project": {
105280	//       "description": "Project ID for this request.",
105281	//       "location": "path",
105282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105283	//       "required": true,
105284	//       "type": "string"
105285	//     },
105286	//     "resource": {
105287	//       "description": "Name or id of the resource for this request.",
105288	//       "location": "path",
105289	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105290	//       "required": true,
105291	//       "type": "string"
105292	//     }
105293	//   },
105294	//   "path": "projects/{project}/global/licenses/{resource}/setIamPolicy",
105295	//   "request": {
105296	//     "$ref": "GlobalSetPolicyRequest"
105297	//   },
105298	//   "response": {
105299	//     "$ref": "Policy"
105300	//   },
105301	//   "scopes": [
105302	//     "https://www.googleapis.com/auth/cloud-platform",
105303	//     "https://www.googleapis.com/auth/compute"
105304	//   ]
105305	// }
105306
105307}
105308
105309// method id "compute.licenses.testIamPermissions":
105310
105311type LicensesTestIamPermissionsCall struct {
105312	s                      *Service
105313	project                string
105314	resource               string
105315	testpermissionsrequest *TestPermissionsRequest
105316	urlParams_             gensupport.URLParams
105317	ctx_                   context.Context
105318	header_                http.Header
105319}
105320
105321// TestIamPermissions: Returns permissions that a caller has on the
105322// specified resource.  Caution This resource is intended for use only
105323// by third-party partners who are creating Cloud Marketplace images.
105324//
105325// - project: Project ID for this request.
105326// - resource: Name or id of the resource for this request.
105327func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
105328	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105329	c.project = project
105330	c.resource = resource
105331	c.testpermissionsrequest = testpermissionsrequest
105332	return c
105333}
105334
105335// Fields allows partial responses to be retrieved. See
105336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105337// for more information.
105338func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
105339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105340	return c
105341}
105342
105343// Context sets the context to be used in this call's Do method. Any
105344// pending HTTP request will be aborted if the provided context is
105345// canceled.
105346func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
105347	c.ctx_ = ctx
105348	return c
105349}
105350
105351// Header returns an http.Header that can be modified by the caller to
105352// add HTTP headers to the request.
105353func (c *LicensesTestIamPermissionsCall) Header() http.Header {
105354	if c.header_ == nil {
105355		c.header_ = make(http.Header)
105356	}
105357	return c.header_
105358}
105359
105360func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
105361	reqHeaders := make(http.Header)
105362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105363	for k, v := range c.header_ {
105364		reqHeaders[k] = v
105365	}
105366	reqHeaders.Set("User-Agent", c.s.userAgent())
105367	var body io.Reader = nil
105368	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
105369	if err != nil {
105370		return nil, err
105371	}
105372	reqHeaders.Set("Content-Type", "application/json")
105373	c.urlParams_.Set("alt", alt)
105374	c.urlParams_.Set("prettyPrint", "false")
105375	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/testIamPermissions")
105376	urls += "?" + c.urlParams_.Encode()
105377	req, err := http.NewRequest("POST", urls, body)
105378	if err != nil {
105379		return nil, err
105380	}
105381	req.Header = reqHeaders
105382	googleapi.Expand(req.URL, map[string]string{
105383		"project":  c.project,
105384		"resource": c.resource,
105385	})
105386	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105387}
105388
105389// Do executes the "compute.licenses.testIamPermissions" call.
105390// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
105391// non-2xx status code is an error. Response headers are in either
105392// *TestPermissionsResponse.ServerResponse.Header or (if a response was
105393// returned at all) in error.(*googleapi.Error).Header. Use
105394// googleapi.IsNotModified to check whether the returned error was
105395// because http.StatusNotModified was returned.
105396func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
105397	gensupport.SetOptions(c.urlParams_, opts...)
105398	res, err := c.doRequest("json")
105399	if res != nil && res.StatusCode == http.StatusNotModified {
105400		if res.Body != nil {
105401			res.Body.Close()
105402		}
105403		return nil, &googleapi.Error{
105404			Code:   res.StatusCode,
105405			Header: res.Header,
105406		}
105407	}
105408	if err != nil {
105409		return nil, err
105410	}
105411	defer googleapi.CloseBody(res)
105412	if err := googleapi.CheckResponse(res); err != nil {
105413		return nil, err
105414	}
105415	ret := &TestPermissionsResponse{
105416		ServerResponse: googleapi.ServerResponse{
105417			Header:         res.Header,
105418			HTTPStatusCode: res.StatusCode,
105419		},
105420	}
105421	target := &ret
105422	if err := gensupport.DecodeResponse(target, res); err != nil {
105423		return nil, err
105424	}
105425	return ret, nil
105426	// {
105427	//   "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.",
105428	//   "httpMethod": "POST",
105429	//   "id": "compute.licenses.testIamPermissions",
105430	//   "parameterOrder": [
105431	//     "project",
105432	//     "resource"
105433	//   ],
105434	//   "parameters": {
105435	//     "project": {
105436	//       "description": "Project ID for this request.",
105437	//       "location": "path",
105438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105439	//       "required": true,
105440	//       "type": "string"
105441	//     },
105442	//     "resource": {
105443	//       "description": "Name or id of the resource for this request.",
105444	//       "location": "path",
105445	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105446	//       "required": true,
105447	//       "type": "string"
105448	//     }
105449	//   },
105450	//   "path": "projects/{project}/global/licenses/{resource}/testIamPermissions",
105451	//   "request": {
105452	//     "$ref": "TestPermissionsRequest"
105453	//   },
105454	//   "response": {
105455	//     "$ref": "TestPermissionsResponse"
105456	//   },
105457	//   "scopes": [
105458	//     "https://www.googleapis.com/auth/cloud-platform",
105459	//     "https://www.googleapis.com/auth/compute",
105460	//     "https://www.googleapis.com/auth/compute.readonly"
105461	//   ]
105462	// }
105463
105464}
105465
105466// method id "compute.machineImages.delete":
105467
105468type MachineImagesDeleteCall struct {
105469	s            *Service
105470	project      string
105471	machineImage string
105472	urlParams_   gensupport.URLParams
105473	ctx_         context.Context
105474	header_      http.Header
105475}
105476
105477// Delete: Deletes the specified machine image. Deleting a machine image
105478// is permanent and cannot be undone.
105479//
105480// - machineImage: The name of the machine image to delete.
105481// - project: Project ID for this request.
105482func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall {
105483	c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105484	c.project = project
105485	c.machineImage = machineImage
105486	return c
105487}
105488
105489// RequestId sets the optional parameter "requestId": An optional
105490// request ID to identify requests. Specify a unique request ID so that
105491// if you must retry your request, the server will know to ignore the
105492// request if it has already been completed.
105493//
105494// For example, consider a situation where you make an initial request
105495// and the request times out. If you make the request again with the
105496// same request ID, the server can check if original operation with the
105497// same request ID was received, and if so, will ignore the second
105498// request. This prevents clients from accidentally creating duplicate
105499// commitments.
105500//
105501// The request ID must be a valid UUID with the exception that zero UUID
105502// is not supported (00000000-0000-0000-0000-000000000000).
105503func (c *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall {
105504	c.urlParams_.Set("requestId", requestId)
105505	return c
105506}
105507
105508// Fields allows partial responses to be retrieved. See
105509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105510// for more information.
105511func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall {
105512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105513	return c
105514}
105515
105516// Context sets the context to be used in this call's Do method. Any
105517// pending HTTP request will be aborted if the provided context is
105518// canceled.
105519func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall {
105520	c.ctx_ = ctx
105521	return c
105522}
105523
105524// Header returns an http.Header that can be modified by the caller to
105525// add HTTP headers to the request.
105526func (c *MachineImagesDeleteCall) Header() http.Header {
105527	if c.header_ == nil {
105528		c.header_ = make(http.Header)
105529	}
105530	return c.header_
105531}
105532
105533func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
105534	reqHeaders := make(http.Header)
105535	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105536	for k, v := range c.header_ {
105537		reqHeaders[k] = v
105538	}
105539	reqHeaders.Set("User-Agent", c.s.userAgent())
105540	var body io.Reader = nil
105541	c.urlParams_.Set("alt", alt)
105542	c.urlParams_.Set("prettyPrint", "false")
105543	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{machineImage}")
105544	urls += "?" + c.urlParams_.Encode()
105545	req, err := http.NewRequest("DELETE", urls, body)
105546	if err != nil {
105547		return nil, err
105548	}
105549	req.Header = reqHeaders
105550	googleapi.Expand(req.URL, map[string]string{
105551		"project":      c.project,
105552		"machineImage": c.machineImage,
105553	})
105554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105555}
105556
105557// Do executes the "compute.machineImages.delete" call.
105558// Exactly one of *Operation or error will be non-nil. Any non-2xx
105559// status code is an error. Response headers are in either
105560// *Operation.ServerResponse.Header or (if a response was returned at
105561// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105562// to check whether the returned error was because
105563// http.StatusNotModified was returned.
105564func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105565	gensupport.SetOptions(c.urlParams_, opts...)
105566	res, err := c.doRequest("json")
105567	if res != nil && res.StatusCode == http.StatusNotModified {
105568		if res.Body != nil {
105569			res.Body.Close()
105570		}
105571		return nil, &googleapi.Error{
105572			Code:   res.StatusCode,
105573			Header: res.Header,
105574		}
105575	}
105576	if err != nil {
105577		return nil, err
105578	}
105579	defer googleapi.CloseBody(res)
105580	if err := googleapi.CheckResponse(res); err != nil {
105581		return nil, err
105582	}
105583	ret := &Operation{
105584		ServerResponse: googleapi.ServerResponse{
105585			Header:         res.Header,
105586			HTTPStatusCode: res.StatusCode,
105587		},
105588	}
105589	target := &ret
105590	if err := gensupport.DecodeResponse(target, res); err != nil {
105591		return nil, err
105592	}
105593	return ret, nil
105594	// {
105595	//   "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.",
105596	//   "httpMethod": "DELETE",
105597	//   "id": "compute.machineImages.delete",
105598	//   "parameterOrder": [
105599	//     "project",
105600	//     "machineImage"
105601	//   ],
105602	//   "parameters": {
105603	//     "machineImage": {
105604	//       "description": "The name of the machine image to delete.",
105605	//       "location": "path",
105606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105607	//       "required": true,
105608	//       "type": "string"
105609	//     },
105610	//     "project": {
105611	//       "description": "Project ID for this request.",
105612	//       "location": "path",
105613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105614	//       "required": true,
105615	//       "type": "string"
105616	//     },
105617	//     "requestId": {
105618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105619	//       "location": "query",
105620	//       "type": "string"
105621	//     }
105622	//   },
105623	//   "path": "projects/{project}/global/machineImages/{machineImage}",
105624	//   "response": {
105625	//     "$ref": "Operation"
105626	//   },
105627	//   "scopes": [
105628	//     "https://www.googleapis.com/auth/cloud-platform",
105629	//     "https://www.googleapis.com/auth/compute"
105630	//   ]
105631	// }
105632
105633}
105634
105635// method id "compute.machineImages.get":
105636
105637type MachineImagesGetCall struct {
105638	s            *Service
105639	project      string
105640	machineImage string
105641	urlParams_   gensupport.URLParams
105642	ifNoneMatch_ string
105643	ctx_         context.Context
105644	header_      http.Header
105645}
105646
105647// Get: Returns the specified machine image. Gets a list of available
105648// machine images by making a list() request.
105649//
105650// - machineImage: The name of the machine image.
105651// - project: Project ID for this request.
105652func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall {
105653	c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105654	c.project = project
105655	c.machineImage = machineImage
105656	return c
105657}
105658
105659// Fields allows partial responses to be retrieved. See
105660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105661// for more information.
105662func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall {
105663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105664	return c
105665}
105666
105667// IfNoneMatch sets the optional parameter which makes the operation
105668// fail if the object's ETag matches the given value. This is useful for
105669// getting updates only after the object has changed since the last
105670// request. Use googleapi.IsNotModified to check whether the response
105671// error from Do is the result of In-None-Match.
105672func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall {
105673	c.ifNoneMatch_ = entityTag
105674	return c
105675}
105676
105677// Context sets the context to be used in this call's Do method. Any
105678// pending HTTP request will be aborted if the provided context is
105679// canceled.
105680func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall {
105681	c.ctx_ = ctx
105682	return c
105683}
105684
105685// Header returns an http.Header that can be modified by the caller to
105686// add HTTP headers to the request.
105687func (c *MachineImagesGetCall) Header() http.Header {
105688	if c.header_ == nil {
105689		c.header_ = make(http.Header)
105690	}
105691	return c.header_
105692}
105693
105694func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) {
105695	reqHeaders := make(http.Header)
105696	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105697	for k, v := range c.header_ {
105698		reqHeaders[k] = v
105699	}
105700	reqHeaders.Set("User-Agent", c.s.userAgent())
105701	if c.ifNoneMatch_ != "" {
105702		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105703	}
105704	var body io.Reader = nil
105705	c.urlParams_.Set("alt", alt)
105706	c.urlParams_.Set("prettyPrint", "false")
105707	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{machineImage}")
105708	urls += "?" + c.urlParams_.Encode()
105709	req, err := http.NewRequest("GET", urls, body)
105710	if err != nil {
105711		return nil, err
105712	}
105713	req.Header = reqHeaders
105714	googleapi.Expand(req.URL, map[string]string{
105715		"project":      c.project,
105716		"machineImage": c.machineImage,
105717	})
105718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105719}
105720
105721// Do executes the "compute.machineImages.get" call.
105722// Exactly one of *MachineImage or error will be non-nil. Any non-2xx
105723// status code is an error. Response headers are in either
105724// *MachineImage.ServerResponse.Header or (if a response was returned at
105725// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105726// to check whether the returned error was because
105727// http.StatusNotModified was returned.
105728func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) {
105729	gensupport.SetOptions(c.urlParams_, opts...)
105730	res, err := c.doRequest("json")
105731	if res != nil && res.StatusCode == http.StatusNotModified {
105732		if res.Body != nil {
105733			res.Body.Close()
105734		}
105735		return nil, &googleapi.Error{
105736			Code:   res.StatusCode,
105737			Header: res.Header,
105738		}
105739	}
105740	if err != nil {
105741		return nil, err
105742	}
105743	defer googleapi.CloseBody(res)
105744	if err := googleapi.CheckResponse(res); err != nil {
105745		return nil, err
105746	}
105747	ret := &MachineImage{
105748		ServerResponse: googleapi.ServerResponse{
105749			Header:         res.Header,
105750			HTTPStatusCode: res.StatusCode,
105751		},
105752	}
105753	target := &ret
105754	if err := gensupport.DecodeResponse(target, res); err != nil {
105755		return nil, err
105756	}
105757	return ret, nil
105758	// {
105759	//   "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.",
105760	//   "httpMethod": "GET",
105761	//   "id": "compute.machineImages.get",
105762	//   "parameterOrder": [
105763	//     "project",
105764	//     "machineImage"
105765	//   ],
105766	//   "parameters": {
105767	//     "machineImage": {
105768	//       "description": "The name of the machine image.",
105769	//       "location": "path",
105770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105771	//       "required": true,
105772	//       "type": "string"
105773	//     },
105774	//     "project": {
105775	//       "description": "Project ID for this request.",
105776	//       "location": "path",
105777	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105778	//       "required": true,
105779	//       "type": "string"
105780	//     }
105781	//   },
105782	//   "path": "projects/{project}/global/machineImages/{machineImage}",
105783	//   "response": {
105784	//     "$ref": "MachineImage"
105785	//   },
105786	//   "scopes": [
105787	//     "https://www.googleapis.com/auth/cloud-platform",
105788	//     "https://www.googleapis.com/auth/compute",
105789	//     "https://www.googleapis.com/auth/compute.readonly"
105790	//   ]
105791	// }
105792
105793}
105794
105795// method id "compute.machineImages.getIamPolicy":
105796
105797type MachineImagesGetIamPolicyCall struct {
105798	s            *Service
105799	project      string
105800	resource     string
105801	urlParams_   gensupport.URLParams
105802	ifNoneMatch_ string
105803	ctx_         context.Context
105804	header_      http.Header
105805}
105806
105807// GetIamPolicy: Gets the access control policy for a resource. May be
105808// empty if no such policy or resource exists.
105809//
105810// - project: Project ID for this request.
105811// - resource: Name or id of the resource for this request.
105812func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall {
105813	c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105814	c.project = project
105815	c.resource = resource
105816	return c
105817}
105818
105819// OptionsRequestedPolicyVersion sets the optional parameter
105820// "optionsRequestedPolicyVersion": Requested IAM Policy version.
105821func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall {
105822	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
105823	return c
105824}
105825
105826// Fields allows partial responses to be retrieved. See
105827// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105828// for more information.
105829func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall {
105830	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105831	return c
105832}
105833
105834// IfNoneMatch sets the optional parameter which makes the operation
105835// fail if the object's ETag matches the given value. This is useful for
105836// getting updates only after the object has changed since the last
105837// request. Use googleapi.IsNotModified to check whether the response
105838// error from Do is the result of In-None-Match.
105839func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall {
105840	c.ifNoneMatch_ = entityTag
105841	return c
105842}
105843
105844// Context sets the context to be used in this call's Do method. Any
105845// pending HTTP request will be aborted if the provided context is
105846// canceled.
105847func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall {
105848	c.ctx_ = ctx
105849	return c
105850}
105851
105852// Header returns an http.Header that can be modified by the caller to
105853// add HTTP headers to the request.
105854func (c *MachineImagesGetIamPolicyCall) Header() http.Header {
105855	if c.header_ == nil {
105856		c.header_ = make(http.Header)
105857	}
105858	return c.header_
105859}
105860
105861func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
105862	reqHeaders := make(http.Header)
105863	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105864	for k, v := range c.header_ {
105865		reqHeaders[k] = v
105866	}
105867	reqHeaders.Set("User-Agent", c.s.userAgent())
105868	if c.ifNoneMatch_ != "" {
105869		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105870	}
105871	var body io.Reader = nil
105872	c.urlParams_.Set("alt", alt)
105873	c.urlParams_.Set("prettyPrint", "false")
105874	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/getIamPolicy")
105875	urls += "?" + c.urlParams_.Encode()
105876	req, err := http.NewRequest("GET", urls, body)
105877	if err != nil {
105878		return nil, err
105879	}
105880	req.Header = reqHeaders
105881	googleapi.Expand(req.URL, map[string]string{
105882		"project":  c.project,
105883		"resource": c.resource,
105884	})
105885	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105886}
105887
105888// Do executes the "compute.machineImages.getIamPolicy" call.
105889// Exactly one of *Policy or error will be non-nil. Any non-2xx status
105890// code is an error. Response headers are in either
105891// *Policy.ServerResponse.Header or (if a response was returned at all)
105892// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
105893// check whether the returned error was because http.StatusNotModified
105894// was returned.
105895func (c *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
105896	gensupport.SetOptions(c.urlParams_, opts...)
105897	res, err := c.doRequest("json")
105898	if res != nil && res.StatusCode == http.StatusNotModified {
105899		if res.Body != nil {
105900			res.Body.Close()
105901		}
105902		return nil, &googleapi.Error{
105903			Code:   res.StatusCode,
105904			Header: res.Header,
105905		}
105906	}
105907	if err != nil {
105908		return nil, err
105909	}
105910	defer googleapi.CloseBody(res)
105911	if err := googleapi.CheckResponse(res); err != nil {
105912		return nil, err
105913	}
105914	ret := &Policy{
105915		ServerResponse: googleapi.ServerResponse{
105916			Header:         res.Header,
105917			HTTPStatusCode: res.StatusCode,
105918		},
105919	}
105920	target := &ret
105921	if err := gensupport.DecodeResponse(target, res); err != nil {
105922		return nil, err
105923	}
105924	return ret, nil
105925	// {
105926	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
105927	//   "httpMethod": "GET",
105928	//   "id": "compute.machineImages.getIamPolicy",
105929	//   "parameterOrder": [
105930	//     "project",
105931	//     "resource"
105932	//   ],
105933	//   "parameters": {
105934	//     "optionsRequestedPolicyVersion": {
105935	//       "description": "Requested IAM Policy version.",
105936	//       "format": "int32",
105937	//       "location": "query",
105938	//       "type": "integer"
105939	//     },
105940	//     "project": {
105941	//       "description": "Project ID for this request.",
105942	//       "location": "path",
105943	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105944	//       "required": true,
105945	//       "type": "string"
105946	//     },
105947	//     "resource": {
105948	//       "description": "Name or id of the resource for this request.",
105949	//       "location": "path",
105950	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105951	//       "required": true,
105952	//       "type": "string"
105953	//     }
105954	//   },
105955	//   "path": "projects/{project}/global/machineImages/{resource}/getIamPolicy",
105956	//   "response": {
105957	//     "$ref": "Policy"
105958	//   },
105959	//   "scopes": [
105960	//     "https://www.googleapis.com/auth/cloud-platform",
105961	//     "https://www.googleapis.com/auth/compute",
105962	//     "https://www.googleapis.com/auth/compute.readonly"
105963	//   ]
105964	// }
105965
105966}
105967
105968// method id "compute.machineImages.insert":
105969
105970type MachineImagesInsertCall struct {
105971	s            *Service
105972	project      string
105973	machineimage *MachineImage
105974	urlParams_   gensupport.URLParams
105975	ctx_         context.Context
105976	header_      http.Header
105977}
105978
105979// Insert: Creates a machine image in the specified project using the
105980// data that is included in the request. If you are creating a new
105981// machine image to update an existing instance, your new machine image
105982// should use the same network or, if applicable, the same subnetwork as
105983// the original instance.
105984//
105985// - project: Project ID for this request.
105986func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall {
105987	c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105988	c.project = project
105989	c.machineimage = machineimage
105990	return c
105991}
105992
105993// RequestId sets the optional parameter "requestId": An optional
105994// request ID to identify requests. Specify a unique request ID so that
105995// if you must retry your request, the server will know to ignore the
105996// request if it has already been completed.
105997//
105998// For example, consider a situation where you make an initial request
105999// and the request times out. If you make the request again with the
106000// same request ID, the server can check if original operation with the
106001// same request ID was received, and if so, will ignore the second
106002// request. This prevents clients from accidentally creating duplicate
106003// commitments.
106004//
106005// The request ID must be a valid UUID with the exception that zero UUID
106006// is not supported (00000000-0000-0000-0000-000000000000).
106007func (c *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall {
106008	c.urlParams_.Set("requestId", requestId)
106009	return c
106010}
106011
106012// SourceInstance sets the optional parameter "sourceInstance":
106013// Required. Source instance that is used to create the machine image
106014// from.
106015func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall {
106016	c.urlParams_.Set("sourceInstance", sourceInstance)
106017	return c
106018}
106019
106020// Fields allows partial responses to be retrieved. See
106021// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106022// for more information.
106023func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall {
106024	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106025	return c
106026}
106027
106028// Context sets the context to be used in this call's Do method. Any
106029// pending HTTP request will be aborted if the provided context is
106030// canceled.
106031func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall {
106032	c.ctx_ = ctx
106033	return c
106034}
106035
106036// Header returns an http.Header that can be modified by the caller to
106037// add HTTP headers to the request.
106038func (c *MachineImagesInsertCall) Header() http.Header {
106039	if c.header_ == nil {
106040		c.header_ = make(http.Header)
106041	}
106042	return c.header_
106043}
106044
106045func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) {
106046	reqHeaders := make(http.Header)
106047	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106048	for k, v := range c.header_ {
106049		reqHeaders[k] = v
106050	}
106051	reqHeaders.Set("User-Agent", c.s.userAgent())
106052	var body io.Reader = nil
106053	body, err := googleapi.WithoutDataWrapper.JSONReader(c.machineimage)
106054	if err != nil {
106055		return nil, err
106056	}
106057	reqHeaders.Set("Content-Type", "application/json")
106058	c.urlParams_.Set("alt", alt)
106059	c.urlParams_.Set("prettyPrint", "false")
106060	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages")
106061	urls += "?" + c.urlParams_.Encode()
106062	req, err := http.NewRequest("POST", urls, body)
106063	if err != nil {
106064		return nil, err
106065	}
106066	req.Header = reqHeaders
106067	googleapi.Expand(req.URL, map[string]string{
106068		"project": c.project,
106069	})
106070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106071}
106072
106073// Do executes the "compute.machineImages.insert" call.
106074// Exactly one of *Operation or error will be non-nil. Any non-2xx
106075// status code is an error. Response headers are in either
106076// *Operation.ServerResponse.Header or (if a response was returned at
106077// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106078// to check whether the returned error was because
106079// http.StatusNotModified was returned.
106080func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106081	gensupport.SetOptions(c.urlParams_, opts...)
106082	res, err := c.doRequest("json")
106083	if res != nil && res.StatusCode == http.StatusNotModified {
106084		if res.Body != nil {
106085			res.Body.Close()
106086		}
106087		return nil, &googleapi.Error{
106088			Code:   res.StatusCode,
106089			Header: res.Header,
106090		}
106091	}
106092	if err != nil {
106093		return nil, err
106094	}
106095	defer googleapi.CloseBody(res)
106096	if err := googleapi.CheckResponse(res); err != nil {
106097		return nil, err
106098	}
106099	ret := &Operation{
106100		ServerResponse: googleapi.ServerResponse{
106101			Header:         res.Header,
106102			HTTPStatusCode: res.StatusCode,
106103		},
106104	}
106105	target := &ret
106106	if err := gensupport.DecodeResponse(target, res); err != nil {
106107		return nil, err
106108	}
106109	return ret, nil
106110	// {
106111	//   "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.",
106112	//   "httpMethod": "POST",
106113	//   "id": "compute.machineImages.insert",
106114	//   "parameterOrder": [
106115	//     "project"
106116	//   ],
106117	//   "parameters": {
106118	//     "project": {
106119	//       "description": "Project ID for this request.",
106120	//       "location": "path",
106121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106122	//       "required": true,
106123	//       "type": "string"
106124	//     },
106125	//     "requestId": {
106126	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106127	//       "location": "query",
106128	//       "type": "string"
106129	//     },
106130	//     "sourceInstance": {
106131	//       "description": "Required. Source instance that is used to create the machine image from.",
106132	//       "location": "query",
106133	//       "type": "string"
106134	//     }
106135	//   },
106136	//   "path": "projects/{project}/global/machineImages",
106137	//   "request": {
106138	//     "$ref": "MachineImage"
106139	//   },
106140	//   "response": {
106141	//     "$ref": "Operation"
106142	//   },
106143	//   "scopes": [
106144	//     "https://www.googleapis.com/auth/cloud-platform",
106145	//     "https://www.googleapis.com/auth/compute"
106146	//   ]
106147	// }
106148
106149}
106150
106151// method id "compute.machineImages.list":
106152
106153type MachineImagesListCall struct {
106154	s            *Service
106155	project      string
106156	urlParams_   gensupport.URLParams
106157	ifNoneMatch_ string
106158	ctx_         context.Context
106159	header_      http.Header
106160}
106161
106162// List: Retrieves a list of machine images that are contained within
106163// the specified project.
106164//
106165// - project: Project ID for this request.
106166func (r *MachineImagesService) List(project string) *MachineImagesListCall {
106167	c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106168	c.project = project
106169	return c
106170}
106171
106172// Filter sets the optional parameter "filter": A filter expression that
106173// filters resources listed in the response. The expression must specify
106174// the field name, a comparison operator, and the value that you want to
106175// use for filtering. The value must be a string, a number, or a
106176// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106177// `<`.
106178//
106179// For example, if you are filtering Compute Engine instances, you can
106180// exclude instances named `example-instance` by specifying `name !=
106181// example-instance`.
106182//
106183// You can also filter nested fields. For example, you could specify
106184// `scheduling.automaticRestart = false` to include instances only if
106185// they are not scheduled for automatic restarts. You can use filtering
106186// on nested fields to filter based on resource labels.
106187//
106188// To filter on multiple expressions, provide each separate expression
106189// within parentheses. For example: ``` (scheduling.automaticRestart =
106190// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106191// is an `AND` expression. However, you can include `AND` and `OR`
106192// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106193// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106194// (scheduling.automaticRestart = true) ```
106195func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall {
106196	c.urlParams_.Set("filter", filter)
106197	return c
106198}
106199
106200// MaxResults sets the optional parameter "maxResults": The maximum
106201// number of results per page that should be returned. If the number of
106202// available results is larger than `maxResults`, Compute Engine returns
106203// a `nextPageToken` that can be used to get the next page of results in
106204// subsequent list requests. Acceptable values are `0` to `500`,
106205// inclusive. (Default: `500`)
106206func (c *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall {
106207	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106208	return c
106209}
106210
106211// OrderBy sets the optional parameter "orderBy": Sorts list results by
106212// a certain order. By default, results are returned in alphanumerical
106213// order based on the resource name.
106214//
106215// You can also sort results in descending order based on the creation
106216// timestamp using `orderBy="creationTimestamp desc". This sorts
106217// results based on the `creationTimestamp` field in reverse
106218// chronological order (newest result first). Use this to sort resources
106219// like operations so that the newest operation is returned
106220// first.
106221//
106222// Currently, only sorting by `name` or `creationTimestamp desc` is
106223// supported.
106224func (c *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall {
106225	c.urlParams_.Set("orderBy", orderBy)
106226	return c
106227}
106228
106229// PageToken sets the optional parameter "pageToken": Specifies a page
106230// token to use. Set `pageToken` to the `nextPageToken` returned by a
106231// previous list request to get the next page of results.
106232func (c *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall {
106233	c.urlParams_.Set("pageToken", pageToken)
106234	return c
106235}
106236
106237// ReturnPartialSuccess sets the optional parameter
106238// "returnPartialSuccess": Opt-in for partial success behavior which
106239// provides partial results in case of failure. The default value is
106240// false.
106241func (c *MachineImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineImagesListCall {
106242	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106243	return c
106244}
106245
106246// Fields allows partial responses to be retrieved. See
106247// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106248// for more information.
106249func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall {
106250	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106251	return c
106252}
106253
106254// IfNoneMatch sets the optional parameter which makes the operation
106255// fail if the object's ETag matches the given value. This is useful for
106256// getting updates only after the object has changed since the last
106257// request. Use googleapi.IsNotModified to check whether the response
106258// error from Do is the result of In-None-Match.
106259func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall {
106260	c.ifNoneMatch_ = entityTag
106261	return c
106262}
106263
106264// Context sets the context to be used in this call's Do method. Any
106265// pending HTTP request will be aborted if the provided context is
106266// canceled.
106267func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall {
106268	c.ctx_ = ctx
106269	return c
106270}
106271
106272// Header returns an http.Header that can be modified by the caller to
106273// add HTTP headers to the request.
106274func (c *MachineImagesListCall) Header() http.Header {
106275	if c.header_ == nil {
106276		c.header_ = make(http.Header)
106277	}
106278	return c.header_
106279}
106280
106281func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) {
106282	reqHeaders := make(http.Header)
106283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106284	for k, v := range c.header_ {
106285		reqHeaders[k] = v
106286	}
106287	reqHeaders.Set("User-Agent", c.s.userAgent())
106288	if c.ifNoneMatch_ != "" {
106289		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106290	}
106291	var body io.Reader = nil
106292	c.urlParams_.Set("alt", alt)
106293	c.urlParams_.Set("prettyPrint", "false")
106294	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages")
106295	urls += "?" + c.urlParams_.Encode()
106296	req, err := http.NewRequest("GET", urls, body)
106297	if err != nil {
106298		return nil, err
106299	}
106300	req.Header = reqHeaders
106301	googleapi.Expand(req.URL, map[string]string{
106302		"project": c.project,
106303	})
106304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106305}
106306
106307// Do executes the "compute.machineImages.list" call.
106308// Exactly one of *MachineImageList or error will be non-nil. Any
106309// non-2xx status code is an error. Response headers are in either
106310// *MachineImageList.ServerResponse.Header or (if a response was
106311// returned at all) in error.(*googleapi.Error).Header. Use
106312// googleapi.IsNotModified to check whether the returned error was
106313// because http.StatusNotModified was returned.
106314func (c *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) {
106315	gensupport.SetOptions(c.urlParams_, opts...)
106316	res, err := c.doRequest("json")
106317	if res != nil && res.StatusCode == http.StatusNotModified {
106318		if res.Body != nil {
106319			res.Body.Close()
106320		}
106321		return nil, &googleapi.Error{
106322			Code:   res.StatusCode,
106323			Header: res.Header,
106324		}
106325	}
106326	if err != nil {
106327		return nil, err
106328	}
106329	defer googleapi.CloseBody(res)
106330	if err := googleapi.CheckResponse(res); err != nil {
106331		return nil, err
106332	}
106333	ret := &MachineImageList{
106334		ServerResponse: googleapi.ServerResponse{
106335			Header:         res.Header,
106336			HTTPStatusCode: res.StatusCode,
106337		},
106338	}
106339	target := &ret
106340	if err := gensupport.DecodeResponse(target, res); err != nil {
106341		return nil, err
106342	}
106343	return ret, nil
106344	// {
106345	//   "description": "Retrieves a list of machine images that are contained within the specified project.",
106346	//   "httpMethod": "GET",
106347	//   "id": "compute.machineImages.list",
106348	//   "parameterOrder": [
106349	//     "project"
106350	//   ],
106351	//   "parameters": {
106352	//     "filter": {
106353	//       "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) ```",
106354	//       "location": "query",
106355	//       "type": "string"
106356	//     },
106357	//     "maxResults": {
106358	//       "default": "500",
106359	//       "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`)",
106360	//       "format": "uint32",
106361	//       "location": "query",
106362	//       "minimum": "0",
106363	//       "type": "integer"
106364	//     },
106365	//     "orderBy": {
106366	//       "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.",
106367	//       "location": "query",
106368	//       "type": "string"
106369	//     },
106370	//     "pageToken": {
106371	//       "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.",
106372	//       "location": "query",
106373	//       "type": "string"
106374	//     },
106375	//     "project": {
106376	//       "description": "Project ID for this request.",
106377	//       "location": "path",
106378	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106379	//       "required": true,
106380	//       "type": "string"
106381	//     },
106382	//     "returnPartialSuccess": {
106383	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106384	//       "location": "query",
106385	//       "type": "boolean"
106386	//     }
106387	//   },
106388	//   "path": "projects/{project}/global/machineImages",
106389	//   "response": {
106390	//     "$ref": "MachineImageList"
106391	//   },
106392	//   "scopes": [
106393	//     "https://www.googleapis.com/auth/cloud-platform",
106394	//     "https://www.googleapis.com/auth/compute",
106395	//     "https://www.googleapis.com/auth/compute.readonly"
106396	//   ]
106397	// }
106398
106399}
106400
106401// Pages invokes f for each page of results.
106402// A non-nil error returned from f will halt the iteration.
106403// The provided context supersedes any context provided to the Context method.
106404func (c *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error {
106405	c.ctx_ = ctx
106406	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106407	for {
106408		x, err := c.Do()
106409		if err != nil {
106410			return err
106411		}
106412		if err := f(x); err != nil {
106413			return err
106414		}
106415		if x.NextPageToken == "" {
106416			return nil
106417		}
106418		c.PageToken(x.NextPageToken)
106419	}
106420}
106421
106422// method id "compute.machineImages.setIamPolicy":
106423
106424type MachineImagesSetIamPolicyCall struct {
106425	s                      *Service
106426	project                string
106427	resource               string
106428	globalsetpolicyrequest *GlobalSetPolicyRequest
106429	urlParams_             gensupport.URLParams
106430	ctx_                   context.Context
106431	header_                http.Header
106432}
106433
106434// SetIamPolicy: Sets the access control policy on the specified
106435// resource. Replaces any existing policy.
106436//
106437// - project: Project ID for this request.
106438// - resource: Name or id of the resource for this request.
106439func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall {
106440	c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106441	c.project = project
106442	c.resource = resource
106443	c.globalsetpolicyrequest = globalsetpolicyrequest
106444	return c
106445}
106446
106447// Fields allows partial responses to be retrieved. See
106448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106449// for more information.
106450func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall {
106451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106452	return c
106453}
106454
106455// Context sets the context to be used in this call's Do method. Any
106456// pending HTTP request will be aborted if the provided context is
106457// canceled.
106458func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall {
106459	c.ctx_ = ctx
106460	return c
106461}
106462
106463// Header returns an http.Header that can be modified by the caller to
106464// add HTTP headers to the request.
106465func (c *MachineImagesSetIamPolicyCall) Header() http.Header {
106466	if c.header_ == nil {
106467		c.header_ = make(http.Header)
106468	}
106469	return c.header_
106470}
106471
106472func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
106473	reqHeaders := make(http.Header)
106474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106475	for k, v := range c.header_ {
106476		reqHeaders[k] = v
106477	}
106478	reqHeaders.Set("User-Agent", c.s.userAgent())
106479	var body io.Reader = nil
106480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
106481	if err != nil {
106482		return nil, err
106483	}
106484	reqHeaders.Set("Content-Type", "application/json")
106485	c.urlParams_.Set("alt", alt)
106486	c.urlParams_.Set("prettyPrint", "false")
106487	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/setIamPolicy")
106488	urls += "?" + c.urlParams_.Encode()
106489	req, err := http.NewRequest("POST", urls, body)
106490	if err != nil {
106491		return nil, err
106492	}
106493	req.Header = reqHeaders
106494	googleapi.Expand(req.URL, map[string]string{
106495		"project":  c.project,
106496		"resource": c.resource,
106497	})
106498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106499}
106500
106501// Do executes the "compute.machineImages.setIamPolicy" call.
106502// Exactly one of *Policy or error will be non-nil. Any non-2xx status
106503// code is an error. Response headers are in either
106504// *Policy.ServerResponse.Header or (if a response was returned at all)
106505// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
106506// check whether the returned error was because http.StatusNotModified
106507// was returned.
106508func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
106509	gensupport.SetOptions(c.urlParams_, opts...)
106510	res, err := c.doRequest("json")
106511	if res != nil && res.StatusCode == http.StatusNotModified {
106512		if res.Body != nil {
106513			res.Body.Close()
106514		}
106515		return nil, &googleapi.Error{
106516			Code:   res.StatusCode,
106517			Header: res.Header,
106518		}
106519	}
106520	if err != nil {
106521		return nil, err
106522	}
106523	defer googleapi.CloseBody(res)
106524	if err := googleapi.CheckResponse(res); err != nil {
106525		return nil, err
106526	}
106527	ret := &Policy{
106528		ServerResponse: googleapi.ServerResponse{
106529			Header:         res.Header,
106530			HTTPStatusCode: res.StatusCode,
106531		},
106532	}
106533	target := &ret
106534	if err := gensupport.DecodeResponse(target, res); err != nil {
106535		return nil, err
106536	}
106537	return ret, nil
106538	// {
106539	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
106540	//   "httpMethod": "POST",
106541	//   "id": "compute.machineImages.setIamPolicy",
106542	//   "parameterOrder": [
106543	//     "project",
106544	//     "resource"
106545	//   ],
106546	//   "parameters": {
106547	//     "project": {
106548	//       "description": "Project ID for this request.",
106549	//       "location": "path",
106550	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106551	//       "required": true,
106552	//       "type": "string"
106553	//     },
106554	//     "resource": {
106555	//       "description": "Name or id of the resource for this request.",
106556	//       "location": "path",
106557	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106558	//       "required": true,
106559	//       "type": "string"
106560	//     }
106561	//   },
106562	//   "path": "projects/{project}/global/machineImages/{resource}/setIamPolicy",
106563	//   "request": {
106564	//     "$ref": "GlobalSetPolicyRequest"
106565	//   },
106566	//   "response": {
106567	//     "$ref": "Policy"
106568	//   },
106569	//   "scopes": [
106570	//     "https://www.googleapis.com/auth/cloud-platform",
106571	//     "https://www.googleapis.com/auth/compute"
106572	//   ]
106573	// }
106574
106575}
106576
106577// method id "compute.machineImages.testIamPermissions":
106578
106579type MachineImagesTestIamPermissionsCall struct {
106580	s                      *Service
106581	project                string
106582	resource               string
106583	testpermissionsrequest *TestPermissionsRequest
106584	urlParams_             gensupport.URLParams
106585	ctx_                   context.Context
106586	header_                http.Header
106587}
106588
106589// TestIamPermissions: Returns permissions that a caller has on the
106590// specified resource.
106591//
106592// - project: Project ID for this request.
106593// - resource: Name or id of the resource for this request.
106594func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall {
106595	c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106596	c.project = project
106597	c.resource = resource
106598	c.testpermissionsrequest = testpermissionsrequest
106599	return c
106600}
106601
106602// Fields allows partial responses to be retrieved. See
106603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106604// for more information.
106605func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall {
106606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106607	return c
106608}
106609
106610// Context sets the context to be used in this call's Do method. Any
106611// pending HTTP request will be aborted if the provided context is
106612// canceled.
106613func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall {
106614	c.ctx_ = ctx
106615	return c
106616}
106617
106618// Header returns an http.Header that can be modified by the caller to
106619// add HTTP headers to the request.
106620func (c *MachineImagesTestIamPermissionsCall) Header() http.Header {
106621	if c.header_ == nil {
106622		c.header_ = make(http.Header)
106623	}
106624	return c.header_
106625}
106626
106627func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
106628	reqHeaders := make(http.Header)
106629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106630	for k, v := range c.header_ {
106631		reqHeaders[k] = v
106632	}
106633	reqHeaders.Set("User-Agent", c.s.userAgent())
106634	var body io.Reader = nil
106635	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
106636	if err != nil {
106637		return nil, err
106638	}
106639	reqHeaders.Set("Content-Type", "application/json")
106640	c.urlParams_.Set("alt", alt)
106641	c.urlParams_.Set("prettyPrint", "false")
106642	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/testIamPermissions")
106643	urls += "?" + c.urlParams_.Encode()
106644	req, err := http.NewRequest("POST", urls, body)
106645	if err != nil {
106646		return nil, err
106647	}
106648	req.Header = reqHeaders
106649	googleapi.Expand(req.URL, map[string]string{
106650		"project":  c.project,
106651		"resource": c.resource,
106652	})
106653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106654}
106655
106656// Do executes the "compute.machineImages.testIamPermissions" call.
106657// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
106658// non-2xx status code is an error. Response headers are in either
106659// *TestPermissionsResponse.ServerResponse.Header or (if a response was
106660// returned at all) in error.(*googleapi.Error).Header. Use
106661// googleapi.IsNotModified to check whether the returned error was
106662// because http.StatusNotModified was returned.
106663func (c *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
106664	gensupport.SetOptions(c.urlParams_, opts...)
106665	res, err := c.doRequest("json")
106666	if res != nil && res.StatusCode == http.StatusNotModified {
106667		if res.Body != nil {
106668			res.Body.Close()
106669		}
106670		return nil, &googleapi.Error{
106671			Code:   res.StatusCode,
106672			Header: res.Header,
106673		}
106674	}
106675	if err != nil {
106676		return nil, err
106677	}
106678	defer googleapi.CloseBody(res)
106679	if err := googleapi.CheckResponse(res); err != nil {
106680		return nil, err
106681	}
106682	ret := &TestPermissionsResponse{
106683		ServerResponse: googleapi.ServerResponse{
106684			Header:         res.Header,
106685			HTTPStatusCode: res.StatusCode,
106686		},
106687	}
106688	target := &ret
106689	if err := gensupport.DecodeResponse(target, res); err != nil {
106690		return nil, err
106691	}
106692	return ret, nil
106693	// {
106694	//   "description": "Returns permissions that a caller has on the specified resource.",
106695	//   "httpMethod": "POST",
106696	//   "id": "compute.machineImages.testIamPermissions",
106697	//   "parameterOrder": [
106698	//     "project",
106699	//     "resource"
106700	//   ],
106701	//   "parameters": {
106702	//     "project": {
106703	//       "description": "Project ID for this request.",
106704	//       "location": "path",
106705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106706	//       "required": true,
106707	//       "type": "string"
106708	//     },
106709	//     "resource": {
106710	//       "description": "Name or id of the resource for this request.",
106711	//       "location": "path",
106712	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106713	//       "required": true,
106714	//       "type": "string"
106715	//     }
106716	//   },
106717	//   "path": "projects/{project}/global/machineImages/{resource}/testIamPermissions",
106718	//   "request": {
106719	//     "$ref": "TestPermissionsRequest"
106720	//   },
106721	//   "response": {
106722	//     "$ref": "TestPermissionsResponse"
106723	//   },
106724	//   "scopes": [
106725	//     "https://www.googleapis.com/auth/cloud-platform",
106726	//     "https://www.googleapis.com/auth/compute",
106727	//     "https://www.googleapis.com/auth/compute.readonly"
106728	//   ]
106729	// }
106730
106731}
106732
106733// method id "compute.machineTypes.aggregatedList":
106734
106735type MachineTypesAggregatedListCall struct {
106736	s            *Service
106737	project      string
106738	urlParams_   gensupport.URLParams
106739	ifNoneMatch_ string
106740	ctx_         context.Context
106741	header_      http.Header
106742}
106743
106744// AggregatedList: Retrieves an aggregated list of machine types.
106745//
106746// - project: Project ID for this request.
106747// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
106748func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
106749	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106750	c.project = project
106751	return c
106752}
106753
106754// Filter sets the optional parameter "filter": A filter expression that
106755// filters resources listed in the response. The expression must specify
106756// the field name, a comparison operator, and the value that you want to
106757// use for filtering. The value must be a string, a number, or a
106758// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106759// `<`.
106760//
106761// For example, if you are filtering Compute Engine instances, you can
106762// exclude instances named `example-instance` by specifying `name !=
106763// example-instance`.
106764//
106765// You can also filter nested fields. For example, you could specify
106766// `scheduling.automaticRestart = false` to include instances only if
106767// they are not scheduled for automatic restarts. You can use filtering
106768// on nested fields to filter based on resource labels.
106769//
106770// To filter on multiple expressions, provide each separate expression
106771// within parentheses. For example: ``` (scheduling.automaticRestart =
106772// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106773// is an `AND` expression. However, you can include `AND` and `OR`
106774// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106775// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106776// (scheduling.automaticRestart = true) ```
106777func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
106778	c.urlParams_.Set("filter", filter)
106779	return c
106780}
106781
106782// IncludeAllScopes sets the optional parameter "includeAllScopes":
106783// Indicates whether every visible scope for each scope type (zone,
106784// region, global) should be included in the response. For new resource
106785// types added after this field, the flag has no effect as new resource
106786// types will always include every visible scope for each scope type in
106787// response. For resource types which predate this field, if this flag
106788// is omitted or false, only scopes of the scope types where the
106789// resource type is expected to be found will be included.
106790func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
106791	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
106792	return c
106793}
106794
106795// MaxResults sets the optional parameter "maxResults": The maximum
106796// number of results per page that should be returned. If the number of
106797// available results is larger than `maxResults`, Compute Engine returns
106798// a `nextPageToken` that can be used to get the next page of results in
106799// subsequent list requests. Acceptable values are `0` to `500`,
106800// inclusive. (Default: `500`)
106801func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
106802	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106803	return c
106804}
106805
106806// OrderBy sets the optional parameter "orderBy": Sorts list results by
106807// a certain order. By default, results are returned in alphanumerical
106808// order based on the resource name.
106809//
106810// You can also sort results in descending order based on the creation
106811// timestamp using `orderBy="creationTimestamp desc". This sorts
106812// results based on the `creationTimestamp` field in reverse
106813// chronological order (newest result first). Use this to sort resources
106814// like operations so that the newest operation is returned
106815// first.
106816//
106817// Currently, only sorting by `name` or `creationTimestamp desc` is
106818// supported.
106819func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
106820	c.urlParams_.Set("orderBy", orderBy)
106821	return c
106822}
106823
106824// PageToken sets the optional parameter "pageToken": Specifies a page
106825// token to use. Set `pageToken` to the `nextPageToken` returned by a
106826// previous list request to get the next page of results.
106827func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
106828	c.urlParams_.Set("pageToken", pageToken)
106829	return c
106830}
106831
106832// ReturnPartialSuccess sets the optional parameter
106833// "returnPartialSuccess": Opt-in for partial success behavior which
106834// provides partial results in case of failure. The default value is
106835// false.
106836func (c *MachineTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesAggregatedListCall {
106837	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106838	return c
106839}
106840
106841// Fields allows partial responses to be retrieved. See
106842// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106843// for more information.
106844func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
106845	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106846	return c
106847}
106848
106849// IfNoneMatch sets the optional parameter which makes the operation
106850// fail if the object's ETag matches the given value. This is useful for
106851// getting updates only after the object has changed since the last
106852// request. Use googleapi.IsNotModified to check whether the response
106853// error from Do is the result of In-None-Match.
106854func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
106855	c.ifNoneMatch_ = entityTag
106856	return c
106857}
106858
106859// Context sets the context to be used in this call's Do method. Any
106860// pending HTTP request will be aborted if the provided context is
106861// canceled.
106862func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
106863	c.ctx_ = ctx
106864	return c
106865}
106866
106867// Header returns an http.Header that can be modified by the caller to
106868// add HTTP headers to the request.
106869func (c *MachineTypesAggregatedListCall) Header() http.Header {
106870	if c.header_ == nil {
106871		c.header_ = make(http.Header)
106872	}
106873	return c.header_
106874}
106875
106876func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
106877	reqHeaders := make(http.Header)
106878	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106879	for k, v := range c.header_ {
106880		reqHeaders[k] = v
106881	}
106882	reqHeaders.Set("User-Agent", c.s.userAgent())
106883	if c.ifNoneMatch_ != "" {
106884		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106885	}
106886	var body io.Reader = nil
106887	c.urlParams_.Set("alt", alt)
106888	c.urlParams_.Set("prettyPrint", "false")
106889	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/machineTypes")
106890	urls += "?" + c.urlParams_.Encode()
106891	req, err := http.NewRequest("GET", urls, body)
106892	if err != nil {
106893		return nil, err
106894	}
106895	req.Header = reqHeaders
106896	googleapi.Expand(req.URL, map[string]string{
106897		"project": c.project,
106898	})
106899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106900}
106901
106902// Do executes the "compute.machineTypes.aggregatedList" call.
106903// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
106904// Any non-2xx status code is an error. Response headers are in either
106905// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
106906// was returned at all) in error.(*googleapi.Error).Header. Use
106907// googleapi.IsNotModified to check whether the returned error was
106908// because http.StatusNotModified was returned.
106909func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
106910	gensupport.SetOptions(c.urlParams_, opts...)
106911	res, err := c.doRequest("json")
106912	if res != nil && res.StatusCode == http.StatusNotModified {
106913		if res.Body != nil {
106914			res.Body.Close()
106915		}
106916		return nil, &googleapi.Error{
106917			Code:   res.StatusCode,
106918			Header: res.Header,
106919		}
106920	}
106921	if err != nil {
106922		return nil, err
106923	}
106924	defer googleapi.CloseBody(res)
106925	if err := googleapi.CheckResponse(res); err != nil {
106926		return nil, err
106927	}
106928	ret := &MachineTypeAggregatedList{
106929		ServerResponse: googleapi.ServerResponse{
106930			Header:         res.Header,
106931			HTTPStatusCode: res.StatusCode,
106932		},
106933	}
106934	target := &ret
106935	if err := gensupport.DecodeResponse(target, res); err != nil {
106936		return nil, err
106937	}
106938	return ret, nil
106939	// {
106940	//   "description": "Retrieves an aggregated list of machine types.",
106941	//   "httpMethod": "GET",
106942	//   "id": "compute.machineTypes.aggregatedList",
106943	//   "parameterOrder": [
106944	//     "project"
106945	//   ],
106946	//   "parameters": {
106947	//     "filter": {
106948	//       "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) ```",
106949	//       "location": "query",
106950	//       "type": "string"
106951	//     },
106952	//     "includeAllScopes": {
106953	//       "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.",
106954	//       "location": "query",
106955	//       "type": "boolean"
106956	//     },
106957	//     "maxResults": {
106958	//       "default": "500",
106959	//       "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`)",
106960	//       "format": "uint32",
106961	//       "location": "query",
106962	//       "minimum": "0",
106963	//       "type": "integer"
106964	//     },
106965	//     "orderBy": {
106966	//       "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.",
106967	//       "location": "query",
106968	//       "type": "string"
106969	//     },
106970	//     "pageToken": {
106971	//       "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.",
106972	//       "location": "query",
106973	//       "type": "string"
106974	//     },
106975	//     "project": {
106976	//       "description": "Project ID for this request.",
106977	//       "location": "path",
106978	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106979	//       "required": true,
106980	//       "type": "string"
106981	//     },
106982	//     "returnPartialSuccess": {
106983	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106984	//       "location": "query",
106985	//       "type": "boolean"
106986	//     }
106987	//   },
106988	//   "path": "projects/{project}/aggregated/machineTypes",
106989	//   "response": {
106990	//     "$ref": "MachineTypeAggregatedList"
106991	//   },
106992	//   "scopes": [
106993	//     "https://www.googleapis.com/auth/cloud-platform",
106994	//     "https://www.googleapis.com/auth/compute",
106995	//     "https://www.googleapis.com/auth/compute.readonly"
106996	//   ]
106997	// }
106998
106999}
107000
107001// Pages invokes f for each page of results.
107002// A non-nil error returned from f will halt the iteration.
107003// The provided context supersedes any context provided to the Context method.
107004func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
107005	c.ctx_ = ctx
107006	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107007	for {
107008		x, err := c.Do()
107009		if err != nil {
107010			return err
107011		}
107012		if err := f(x); err != nil {
107013			return err
107014		}
107015		if x.NextPageToken == "" {
107016			return nil
107017		}
107018		c.PageToken(x.NextPageToken)
107019	}
107020}
107021
107022// method id "compute.machineTypes.get":
107023
107024type MachineTypesGetCall struct {
107025	s            *Service
107026	project      string
107027	zone         string
107028	machineType  string
107029	urlParams_   gensupport.URLParams
107030	ifNoneMatch_ string
107031	ctx_         context.Context
107032	header_      http.Header
107033}
107034
107035// Get: Returns the specified machine type. Gets a list of available
107036// machine types by making a list() request.
107037//
107038// - machineType: Name of the machine type to return.
107039// - project: Project ID for this request.
107040// - zone: The name of the zone for this request.
107041// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
107042func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
107043	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107044	c.project = project
107045	c.zone = zone
107046	c.machineType = machineType
107047	return c
107048}
107049
107050// Fields allows partial responses to be retrieved. See
107051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107052// for more information.
107053func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
107054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107055	return c
107056}
107057
107058// IfNoneMatch sets the optional parameter which makes the operation
107059// fail if the object's ETag matches the given value. This is useful for
107060// getting updates only after the object has changed since the last
107061// request. Use googleapi.IsNotModified to check whether the response
107062// error from Do is the result of In-None-Match.
107063func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
107064	c.ifNoneMatch_ = entityTag
107065	return c
107066}
107067
107068// Context sets the context to be used in this call's Do method. Any
107069// pending HTTP request will be aborted if the provided context is
107070// canceled.
107071func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
107072	c.ctx_ = ctx
107073	return c
107074}
107075
107076// Header returns an http.Header that can be modified by the caller to
107077// add HTTP headers to the request.
107078func (c *MachineTypesGetCall) Header() http.Header {
107079	if c.header_ == nil {
107080		c.header_ = make(http.Header)
107081	}
107082	return c.header_
107083}
107084
107085func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
107086	reqHeaders := make(http.Header)
107087	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107088	for k, v := range c.header_ {
107089		reqHeaders[k] = v
107090	}
107091	reqHeaders.Set("User-Agent", c.s.userAgent())
107092	if c.ifNoneMatch_ != "" {
107093		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107094	}
107095	var body io.Reader = nil
107096	c.urlParams_.Set("alt", alt)
107097	c.urlParams_.Set("prettyPrint", "false")
107098	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes/{machineType}")
107099	urls += "?" + c.urlParams_.Encode()
107100	req, err := http.NewRequest("GET", urls, body)
107101	if err != nil {
107102		return nil, err
107103	}
107104	req.Header = reqHeaders
107105	googleapi.Expand(req.URL, map[string]string{
107106		"project":     c.project,
107107		"zone":        c.zone,
107108		"machineType": c.machineType,
107109	})
107110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107111}
107112
107113// Do executes the "compute.machineTypes.get" call.
107114// Exactly one of *MachineType or error will be non-nil. Any non-2xx
107115// status code is an error. Response headers are in either
107116// *MachineType.ServerResponse.Header or (if a response was returned at
107117// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107118// to check whether the returned error was because
107119// http.StatusNotModified was returned.
107120func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
107121	gensupport.SetOptions(c.urlParams_, opts...)
107122	res, err := c.doRequest("json")
107123	if res != nil && res.StatusCode == http.StatusNotModified {
107124		if res.Body != nil {
107125			res.Body.Close()
107126		}
107127		return nil, &googleapi.Error{
107128			Code:   res.StatusCode,
107129			Header: res.Header,
107130		}
107131	}
107132	if err != nil {
107133		return nil, err
107134	}
107135	defer googleapi.CloseBody(res)
107136	if err := googleapi.CheckResponse(res); err != nil {
107137		return nil, err
107138	}
107139	ret := &MachineType{
107140		ServerResponse: googleapi.ServerResponse{
107141			Header:         res.Header,
107142			HTTPStatusCode: res.StatusCode,
107143		},
107144	}
107145	target := &ret
107146	if err := gensupport.DecodeResponse(target, res); err != nil {
107147		return nil, err
107148	}
107149	return ret, nil
107150	// {
107151	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
107152	//   "httpMethod": "GET",
107153	//   "id": "compute.machineTypes.get",
107154	//   "parameterOrder": [
107155	//     "project",
107156	//     "zone",
107157	//     "machineType"
107158	//   ],
107159	//   "parameters": {
107160	//     "machineType": {
107161	//       "description": "Name of the machine type to return.",
107162	//       "location": "path",
107163	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107164	//       "required": true,
107165	//       "type": "string"
107166	//     },
107167	//     "project": {
107168	//       "description": "Project ID for this request.",
107169	//       "location": "path",
107170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107171	//       "required": true,
107172	//       "type": "string"
107173	//     },
107174	//     "zone": {
107175	//       "description": "The name of the zone for this request.",
107176	//       "location": "path",
107177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107178	//       "required": true,
107179	//       "type": "string"
107180	//     }
107181	//   },
107182	//   "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
107183	//   "response": {
107184	//     "$ref": "MachineType"
107185	//   },
107186	//   "scopes": [
107187	//     "https://www.googleapis.com/auth/cloud-platform",
107188	//     "https://www.googleapis.com/auth/compute",
107189	//     "https://www.googleapis.com/auth/compute.readonly"
107190	//   ]
107191	// }
107192
107193}
107194
107195// method id "compute.machineTypes.list":
107196
107197type MachineTypesListCall struct {
107198	s            *Service
107199	project      string
107200	zone         string
107201	urlParams_   gensupport.URLParams
107202	ifNoneMatch_ string
107203	ctx_         context.Context
107204	header_      http.Header
107205}
107206
107207// List: Retrieves a list of machine types available to the specified
107208// project.
107209//
107210// - project: Project ID for this request.
107211// - zone: The name of the zone for this request.
107212// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
107213func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
107214	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107215	c.project = project
107216	c.zone = zone
107217	return c
107218}
107219
107220// Filter sets the optional parameter "filter": A filter expression that
107221// filters resources listed in the response. The expression must specify
107222// the field name, a comparison operator, and the value that you want to
107223// use for filtering. The value must be a string, a number, or a
107224// boolean. The comparison operator must be either `=`, `!=`, `>`, or
107225// `<`.
107226//
107227// For example, if you are filtering Compute Engine instances, you can
107228// exclude instances named `example-instance` by specifying `name !=
107229// example-instance`.
107230//
107231// You can also filter nested fields. For example, you could specify
107232// `scheduling.automaticRestart = false` to include instances only if
107233// they are not scheduled for automatic restarts. You can use filtering
107234// on nested fields to filter based on resource labels.
107235//
107236// To filter on multiple expressions, provide each separate expression
107237// within parentheses. For example: ``` (scheduling.automaticRestart =
107238// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
107239// is an `AND` expression. However, you can include `AND` and `OR`
107240// expressions explicitly. For example: ``` (cpuPlatform = "Intel
107241// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
107242// (scheduling.automaticRestart = true) ```
107243func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
107244	c.urlParams_.Set("filter", filter)
107245	return c
107246}
107247
107248// MaxResults sets the optional parameter "maxResults": The maximum
107249// number of results per page that should be returned. If the number of
107250// available results is larger than `maxResults`, Compute Engine returns
107251// a `nextPageToken` that can be used to get the next page of results in
107252// subsequent list requests. Acceptable values are `0` to `500`,
107253// inclusive. (Default: `500`)
107254func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
107255	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107256	return c
107257}
107258
107259// OrderBy sets the optional parameter "orderBy": Sorts list results by
107260// a certain order. By default, results are returned in alphanumerical
107261// order based on the resource name.
107262//
107263// You can also sort results in descending order based on the creation
107264// timestamp using `orderBy="creationTimestamp desc". This sorts
107265// results based on the `creationTimestamp` field in reverse
107266// chronological order (newest result first). Use this to sort resources
107267// like operations so that the newest operation is returned
107268// first.
107269//
107270// Currently, only sorting by `name` or `creationTimestamp desc` is
107271// supported.
107272func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
107273	c.urlParams_.Set("orderBy", orderBy)
107274	return c
107275}
107276
107277// PageToken sets the optional parameter "pageToken": Specifies a page
107278// token to use. Set `pageToken` to the `nextPageToken` returned by a
107279// previous list request to get the next page of results.
107280func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
107281	c.urlParams_.Set("pageToken", pageToken)
107282	return c
107283}
107284
107285// ReturnPartialSuccess sets the optional parameter
107286// "returnPartialSuccess": Opt-in for partial success behavior which
107287// provides partial results in case of failure. The default value is
107288// false.
107289func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesListCall {
107290	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
107291	return c
107292}
107293
107294// Fields allows partial responses to be retrieved. See
107295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107296// for more information.
107297func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
107298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107299	return c
107300}
107301
107302// IfNoneMatch sets the optional parameter which makes the operation
107303// fail if the object's ETag matches the given value. This is useful for
107304// getting updates only after the object has changed since the last
107305// request. Use googleapi.IsNotModified to check whether the response
107306// error from Do is the result of In-None-Match.
107307func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
107308	c.ifNoneMatch_ = entityTag
107309	return c
107310}
107311
107312// Context sets the context to be used in this call's Do method. Any
107313// pending HTTP request will be aborted if the provided context is
107314// canceled.
107315func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
107316	c.ctx_ = ctx
107317	return c
107318}
107319
107320// Header returns an http.Header that can be modified by the caller to
107321// add HTTP headers to the request.
107322func (c *MachineTypesListCall) Header() http.Header {
107323	if c.header_ == nil {
107324		c.header_ = make(http.Header)
107325	}
107326	return c.header_
107327}
107328
107329func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
107330	reqHeaders := make(http.Header)
107331	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107332	for k, v := range c.header_ {
107333		reqHeaders[k] = v
107334	}
107335	reqHeaders.Set("User-Agent", c.s.userAgent())
107336	if c.ifNoneMatch_ != "" {
107337		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107338	}
107339	var body io.Reader = nil
107340	c.urlParams_.Set("alt", alt)
107341	c.urlParams_.Set("prettyPrint", "false")
107342	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes")
107343	urls += "?" + c.urlParams_.Encode()
107344	req, err := http.NewRequest("GET", urls, body)
107345	if err != nil {
107346		return nil, err
107347	}
107348	req.Header = reqHeaders
107349	googleapi.Expand(req.URL, map[string]string{
107350		"project": c.project,
107351		"zone":    c.zone,
107352	})
107353	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107354}
107355
107356// Do executes the "compute.machineTypes.list" call.
107357// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
107358// status code is an error. Response headers are in either
107359// *MachineTypeList.ServerResponse.Header or (if a response was returned
107360// at all) in error.(*googleapi.Error).Header. Use
107361// googleapi.IsNotModified to check whether the returned error was
107362// because http.StatusNotModified was returned.
107363func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
107364	gensupport.SetOptions(c.urlParams_, opts...)
107365	res, err := c.doRequest("json")
107366	if res != nil && res.StatusCode == http.StatusNotModified {
107367		if res.Body != nil {
107368			res.Body.Close()
107369		}
107370		return nil, &googleapi.Error{
107371			Code:   res.StatusCode,
107372			Header: res.Header,
107373		}
107374	}
107375	if err != nil {
107376		return nil, err
107377	}
107378	defer googleapi.CloseBody(res)
107379	if err := googleapi.CheckResponse(res); err != nil {
107380		return nil, err
107381	}
107382	ret := &MachineTypeList{
107383		ServerResponse: googleapi.ServerResponse{
107384			Header:         res.Header,
107385			HTTPStatusCode: res.StatusCode,
107386		},
107387	}
107388	target := &ret
107389	if err := gensupport.DecodeResponse(target, res); err != nil {
107390		return nil, err
107391	}
107392	return ret, nil
107393	// {
107394	//   "description": "Retrieves a list of machine types available to the specified project.",
107395	//   "httpMethod": "GET",
107396	//   "id": "compute.machineTypes.list",
107397	//   "parameterOrder": [
107398	//     "project",
107399	//     "zone"
107400	//   ],
107401	//   "parameters": {
107402	//     "filter": {
107403	//       "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) ```",
107404	//       "location": "query",
107405	//       "type": "string"
107406	//     },
107407	//     "maxResults": {
107408	//       "default": "500",
107409	//       "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`)",
107410	//       "format": "uint32",
107411	//       "location": "query",
107412	//       "minimum": "0",
107413	//       "type": "integer"
107414	//     },
107415	//     "orderBy": {
107416	//       "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.",
107417	//       "location": "query",
107418	//       "type": "string"
107419	//     },
107420	//     "pageToken": {
107421	//       "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.",
107422	//       "location": "query",
107423	//       "type": "string"
107424	//     },
107425	//     "project": {
107426	//       "description": "Project ID for this request.",
107427	//       "location": "path",
107428	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107429	//       "required": true,
107430	//       "type": "string"
107431	//     },
107432	//     "returnPartialSuccess": {
107433	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
107434	//       "location": "query",
107435	//       "type": "boolean"
107436	//     },
107437	//     "zone": {
107438	//       "description": "The name of the zone for this request.",
107439	//       "location": "path",
107440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107441	//       "required": true,
107442	//       "type": "string"
107443	//     }
107444	//   },
107445	//   "path": "projects/{project}/zones/{zone}/machineTypes",
107446	//   "response": {
107447	//     "$ref": "MachineTypeList"
107448	//   },
107449	//   "scopes": [
107450	//     "https://www.googleapis.com/auth/cloud-platform",
107451	//     "https://www.googleapis.com/auth/compute",
107452	//     "https://www.googleapis.com/auth/compute.readonly"
107453	//   ]
107454	// }
107455
107456}
107457
107458// Pages invokes f for each page of results.
107459// A non-nil error returned from f will halt the iteration.
107460// The provided context supersedes any context provided to the Context method.
107461func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
107462	c.ctx_ = ctx
107463	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107464	for {
107465		x, err := c.Do()
107466		if err != nil {
107467			return err
107468		}
107469		if err := f(x); err != nil {
107470			return err
107471		}
107472		if x.NextPageToken == "" {
107473			return nil
107474		}
107475		c.PageToken(x.NextPageToken)
107476	}
107477}
107478
107479// method id "compute.networkEndpointGroups.aggregatedList":
107480
107481type NetworkEndpointGroupsAggregatedListCall struct {
107482	s            *Service
107483	project      string
107484	urlParams_   gensupport.URLParams
107485	ifNoneMatch_ string
107486	ctx_         context.Context
107487	header_      http.Header
107488}
107489
107490// AggregatedList: Retrieves the list of network endpoint groups and
107491// sorts them by zone.
107492//
107493// - project: Project ID for this request.
107494func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
107495	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107496	c.project = project
107497	return c
107498}
107499
107500// Filter sets the optional parameter "filter": A filter expression that
107501// filters resources listed in the response. The expression must specify
107502// the field name, a comparison operator, and the value that you want to
107503// use for filtering. The value must be a string, a number, or a
107504// boolean. The comparison operator must be either `=`, `!=`, `>`, or
107505// `<`.
107506//
107507// For example, if you are filtering Compute Engine instances, you can
107508// exclude instances named `example-instance` by specifying `name !=
107509// example-instance`.
107510//
107511// You can also filter nested fields. For example, you could specify
107512// `scheduling.automaticRestart = false` to include instances only if
107513// they are not scheduled for automatic restarts. You can use filtering
107514// on nested fields to filter based on resource labels.
107515//
107516// To filter on multiple expressions, provide each separate expression
107517// within parentheses. For example: ``` (scheduling.automaticRestart =
107518// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
107519// is an `AND` expression. However, you can include `AND` and `OR`
107520// expressions explicitly. For example: ``` (cpuPlatform = "Intel
107521// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
107522// (scheduling.automaticRestart = true) ```
107523func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
107524	c.urlParams_.Set("filter", filter)
107525	return c
107526}
107527
107528// IncludeAllScopes sets the optional parameter "includeAllScopes":
107529// Indicates whether every visible scope for each scope type (zone,
107530// region, global) should be included in the response. For new resource
107531// types added after this field, the flag has no effect as new resource
107532// types will always include every visible scope for each scope type in
107533// response. For resource types which predate this field, if this flag
107534// is omitted or false, only scopes of the scope types where the
107535// resource type is expected to be found will be included.
107536func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
107537	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
107538	return c
107539}
107540
107541// MaxResults sets the optional parameter "maxResults": The maximum
107542// number of results per page that should be returned. If the number of
107543// available results is larger than `maxResults`, Compute Engine returns
107544// a `nextPageToken` that can be used to get the next page of results in
107545// subsequent list requests. Acceptable values are `0` to `500`,
107546// inclusive. (Default: `500`)
107547func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
107548	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107549	return c
107550}
107551
107552// OrderBy sets the optional parameter "orderBy": Sorts list results by
107553// a certain order. By default, results are returned in alphanumerical
107554// order based on the resource name.
107555//
107556// You can also sort results in descending order based on the creation
107557// timestamp using `orderBy="creationTimestamp desc". This sorts
107558// results based on the `creationTimestamp` field in reverse
107559// chronological order (newest result first). Use this to sort resources
107560// like operations so that the newest operation is returned
107561// first.
107562//
107563// Currently, only sorting by `name` or `creationTimestamp desc` is
107564// supported.
107565func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
107566	c.urlParams_.Set("orderBy", orderBy)
107567	return c
107568}
107569
107570// PageToken sets the optional parameter "pageToken": Specifies a page
107571// token to use. Set `pageToken` to the `nextPageToken` returned by a
107572// previous list request to get the next page of results.
107573func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
107574	c.urlParams_.Set("pageToken", pageToken)
107575	return c
107576}
107577
107578// ReturnPartialSuccess sets the optional parameter
107579// "returnPartialSuccess": Opt-in for partial success behavior which
107580// provides partial results in case of failure. The default value is
107581// false.
107582func (c *NetworkEndpointGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsAggregatedListCall {
107583	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
107584	return c
107585}
107586
107587// Fields allows partial responses to be retrieved. See
107588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107589// for more information.
107590func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
107591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107592	return c
107593}
107594
107595// IfNoneMatch sets the optional parameter which makes the operation
107596// fail if the object's ETag matches the given value. This is useful for
107597// getting updates only after the object has changed since the last
107598// request. Use googleapi.IsNotModified to check whether the response
107599// error from Do is the result of In-None-Match.
107600func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
107601	c.ifNoneMatch_ = entityTag
107602	return c
107603}
107604
107605// Context sets the context to be used in this call's Do method. Any
107606// pending HTTP request will be aborted if the provided context is
107607// canceled.
107608func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
107609	c.ctx_ = ctx
107610	return c
107611}
107612
107613// Header returns an http.Header that can be modified by the caller to
107614// add HTTP headers to the request.
107615func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
107616	if c.header_ == nil {
107617		c.header_ = make(http.Header)
107618	}
107619	return c.header_
107620}
107621
107622func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
107623	reqHeaders := make(http.Header)
107624	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107625	for k, v := range c.header_ {
107626		reqHeaders[k] = v
107627	}
107628	reqHeaders.Set("User-Agent", c.s.userAgent())
107629	if c.ifNoneMatch_ != "" {
107630		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107631	}
107632	var body io.Reader = nil
107633	c.urlParams_.Set("alt", alt)
107634	c.urlParams_.Set("prettyPrint", "false")
107635	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEndpointGroups")
107636	urls += "?" + c.urlParams_.Encode()
107637	req, err := http.NewRequest("GET", urls, body)
107638	if err != nil {
107639		return nil, err
107640	}
107641	req.Header = reqHeaders
107642	googleapi.Expand(req.URL, map[string]string{
107643		"project": c.project,
107644	})
107645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107646}
107647
107648// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
107649// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
107650// non-nil. Any non-2xx status code is an error. Response headers are in
107651// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
107652// (if a response was returned at all) in
107653// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
107654// whether the returned error was because http.StatusNotModified was
107655// returned.
107656func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
107657	gensupport.SetOptions(c.urlParams_, opts...)
107658	res, err := c.doRequest("json")
107659	if res != nil && res.StatusCode == http.StatusNotModified {
107660		if res.Body != nil {
107661			res.Body.Close()
107662		}
107663		return nil, &googleapi.Error{
107664			Code:   res.StatusCode,
107665			Header: res.Header,
107666		}
107667	}
107668	if err != nil {
107669		return nil, err
107670	}
107671	defer googleapi.CloseBody(res)
107672	if err := googleapi.CheckResponse(res); err != nil {
107673		return nil, err
107674	}
107675	ret := &NetworkEndpointGroupAggregatedList{
107676		ServerResponse: googleapi.ServerResponse{
107677			Header:         res.Header,
107678			HTTPStatusCode: res.StatusCode,
107679		},
107680	}
107681	target := &ret
107682	if err := gensupport.DecodeResponse(target, res); err != nil {
107683		return nil, err
107684	}
107685	return ret, nil
107686	// {
107687	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
107688	//   "httpMethod": "GET",
107689	//   "id": "compute.networkEndpointGroups.aggregatedList",
107690	//   "parameterOrder": [
107691	//     "project"
107692	//   ],
107693	//   "parameters": {
107694	//     "filter": {
107695	//       "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) ```",
107696	//       "location": "query",
107697	//       "type": "string"
107698	//     },
107699	//     "includeAllScopes": {
107700	//       "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.",
107701	//       "location": "query",
107702	//       "type": "boolean"
107703	//     },
107704	//     "maxResults": {
107705	//       "default": "500",
107706	//       "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`)",
107707	//       "format": "uint32",
107708	//       "location": "query",
107709	//       "minimum": "0",
107710	//       "type": "integer"
107711	//     },
107712	//     "orderBy": {
107713	//       "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.",
107714	//       "location": "query",
107715	//       "type": "string"
107716	//     },
107717	//     "pageToken": {
107718	//       "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.",
107719	//       "location": "query",
107720	//       "type": "string"
107721	//     },
107722	//     "project": {
107723	//       "description": "Project ID for this request.",
107724	//       "location": "path",
107725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107726	//       "required": true,
107727	//       "type": "string"
107728	//     },
107729	//     "returnPartialSuccess": {
107730	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
107731	//       "location": "query",
107732	//       "type": "boolean"
107733	//     }
107734	//   },
107735	//   "path": "projects/{project}/aggregated/networkEndpointGroups",
107736	//   "response": {
107737	//     "$ref": "NetworkEndpointGroupAggregatedList"
107738	//   },
107739	//   "scopes": [
107740	//     "https://www.googleapis.com/auth/cloud-platform",
107741	//     "https://www.googleapis.com/auth/compute",
107742	//     "https://www.googleapis.com/auth/compute.readonly"
107743	//   ]
107744	// }
107745
107746}
107747
107748// Pages invokes f for each page of results.
107749// A non-nil error returned from f will halt the iteration.
107750// The provided context supersedes any context provided to the Context method.
107751func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
107752	c.ctx_ = ctx
107753	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107754	for {
107755		x, err := c.Do()
107756		if err != nil {
107757			return err
107758		}
107759		if err := f(x); err != nil {
107760			return err
107761		}
107762		if x.NextPageToken == "" {
107763			return nil
107764		}
107765		c.PageToken(x.NextPageToken)
107766	}
107767}
107768
107769// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
107770
107771type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
107772	s                                           *Service
107773	project                                     string
107774	zone                                        string
107775	networkEndpointGroup                        string
107776	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
107777	urlParams_                                  gensupport.URLParams
107778	ctx_                                        context.Context
107779	header_                                     http.Header
107780}
107781
107782// AttachNetworkEndpoints: Attach a list of network endpoints to the
107783// specified network endpoint group.
107784//
107785// - networkEndpointGroup: The name of the network endpoint group where
107786//   you are attaching network endpoints to. It should comply with
107787//   RFC1035.
107788// - project: Project ID for this request.
107789// - zone: The name of the zone where the network endpoint group is
107790//   located. It should comply with RFC1035.
107791func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
107792	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107793	c.project = project
107794	c.zone = zone
107795	c.networkEndpointGroup = networkEndpointGroup
107796	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
107797	return c
107798}
107799
107800// RequestId sets the optional parameter "requestId": An optional
107801// request ID to identify requests. Specify a unique request ID so that
107802// if you must retry your request, the server will know to ignore the
107803// request if it has already been completed.
107804//
107805// For example, consider a situation where you make an initial request
107806// and the request times out. If you make the request again with the
107807// same request ID, the server can check if original operation with the
107808// same request ID was received, and if so, will ignore the second
107809// request. This prevents clients from accidentally creating duplicate
107810// commitments.
107811//
107812// The request ID must be a valid UUID with the exception that zero UUID
107813// is not supported (00000000-0000-0000-0000-000000000000).
107814func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
107815	c.urlParams_.Set("requestId", requestId)
107816	return c
107817}
107818
107819// Fields allows partial responses to be retrieved. See
107820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107821// for more information.
107822func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
107823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107824	return c
107825}
107826
107827// Context sets the context to be used in this call's Do method. Any
107828// pending HTTP request will be aborted if the provided context is
107829// canceled.
107830func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
107831	c.ctx_ = ctx
107832	return c
107833}
107834
107835// Header returns an http.Header that can be modified by the caller to
107836// add HTTP headers to the request.
107837func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
107838	if c.header_ == nil {
107839		c.header_ = make(http.Header)
107840	}
107841	return c.header_
107842}
107843
107844func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
107845	reqHeaders := make(http.Header)
107846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107847	for k, v := range c.header_ {
107848		reqHeaders[k] = v
107849	}
107850	reqHeaders.Set("User-Agent", c.s.userAgent())
107851	var body io.Reader = nil
107852	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
107853	if err != nil {
107854		return nil, err
107855	}
107856	reqHeaders.Set("Content-Type", "application/json")
107857	c.urlParams_.Set("alt", alt)
107858	c.urlParams_.Set("prettyPrint", "false")
107859	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
107860	urls += "?" + c.urlParams_.Encode()
107861	req, err := http.NewRequest("POST", urls, body)
107862	if err != nil {
107863		return nil, err
107864	}
107865	req.Header = reqHeaders
107866	googleapi.Expand(req.URL, map[string]string{
107867		"project":              c.project,
107868		"zone":                 c.zone,
107869		"networkEndpointGroup": c.networkEndpointGroup,
107870	})
107871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107872}
107873
107874// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
107875// Exactly one of *Operation or error will be non-nil. Any non-2xx
107876// status code is an error. Response headers are in either
107877// *Operation.ServerResponse.Header or (if a response was returned at
107878// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107879// to check whether the returned error was because
107880// http.StatusNotModified was returned.
107881func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107882	gensupport.SetOptions(c.urlParams_, opts...)
107883	res, err := c.doRequest("json")
107884	if res != nil && res.StatusCode == http.StatusNotModified {
107885		if res.Body != nil {
107886			res.Body.Close()
107887		}
107888		return nil, &googleapi.Error{
107889			Code:   res.StatusCode,
107890			Header: res.Header,
107891		}
107892	}
107893	if err != nil {
107894		return nil, err
107895	}
107896	defer googleapi.CloseBody(res)
107897	if err := googleapi.CheckResponse(res); err != nil {
107898		return nil, err
107899	}
107900	ret := &Operation{
107901		ServerResponse: googleapi.ServerResponse{
107902			Header:         res.Header,
107903			HTTPStatusCode: res.StatusCode,
107904		},
107905	}
107906	target := &ret
107907	if err := gensupport.DecodeResponse(target, res); err != nil {
107908		return nil, err
107909	}
107910	return ret, nil
107911	// {
107912	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
107913	//   "httpMethod": "POST",
107914	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
107915	//   "parameterOrder": [
107916	//     "project",
107917	//     "zone",
107918	//     "networkEndpointGroup"
107919	//   ],
107920	//   "parameters": {
107921	//     "networkEndpointGroup": {
107922	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
107923	//       "location": "path",
107924	//       "required": true,
107925	//       "type": "string"
107926	//     },
107927	//     "project": {
107928	//       "description": "Project ID for this request.",
107929	//       "location": "path",
107930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107931	//       "required": true,
107932	//       "type": "string"
107933	//     },
107934	//     "requestId": {
107935	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107936	//       "location": "query",
107937	//       "type": "string"
107938	//     },
107939	//     "zone": {
107940	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
107941	//       "location": "path",
107942	//       "required": true,
107943	//       "type": "string"
107944	//     }
107945	//   },
107946	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
107947	//   "request": {
107948	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
107949	//   },
107950	//   "response": {
107951	//     "$ref": "Operation"
107952	//   },
107953	//   "scopes": [
107954	//     "https://www.googleapis.com/auth/cloud-platform",
107955	//     "https://www.googleapis.com/auth/compute"
107956	//   ]
107957	// }
107958
107959}
107960
107961// method id "compute.networkEndpointGroups.delete":
107962
107963type NetworkEndpointGroupsDeleteCall struct {
107964	s                    *Service
107965	project              string
107966	zone                 string
107967	networkEndpointGroup string
107968	urlParams_           gensupport.URLParams
107969	ctx_                 context.Context
107970	header_              http.Header
107971}
107972
107973// Delete: Deletes the specified network endpoint group. The network
107974// endpoints in the NEG and the VM instances they belong to are not
107975// terminated when the NEG is deleted. Note that the NEG cannot be
107976// deleted if there are backend services referencing it.
107977//
107978// - networkEndpointGroup: The name of the network endpoint group to
107979//   delete. It should comply with RFC1035.
107980// - project: Project ID for this request.
107981// - zone: The name of the zone where the network endpoint group is
107982//   located. It should comply with RFC1035.
107983func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
107984	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107985	c.project = project
107986	c.zone = zone
107987	c.networkEndpointGroup = networkEndpointGroup
107988	return c
107989}
107990
107991// RequestId sets the optional parameter "requestId": An optional
107992// request ID to identify requests. Specify a unique request ID so that
107993// if you must retry your request, the server will know to ignore the
107994// request if it has already been completed.
107995//
107996// For example, consider a situation where you make an initial request
107997// and the request times out. If you make the request again with the
107998// same request ID, the server can check if original operation with the
107999// same request ID was received, and if so, will ignore the second
108000// request. This prevents clients from accidentally creating duplicate
108001// commitments.
108002//
108003// The request ID must be a valid UUID with the exception that zero UUID
108004// is not supported (00000000-0000-0000-0000-000000000000).
108005func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
108006	c.urlParams_.Set("requestId", requestId)
108007	return c
108008}
108009
108010// Fields allows partial responses to be retrieved. See
108011// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108012// for more information.
108013func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
108014	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108015	return c
108016}
108017
108018// Context sets the context to be used in this call's Do method. Any
108019// pending HTTP request will be aborted if the provided context is
108020// canceled.
108021func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
108022	c.ctx_ = ctx
108023	return c
108024}
108025
108026// Header returns an http.Header that can be modified by the caller to
108027// add HTTP headers to the request.
108028func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
108029	if c.header_ == nil {
108030		c.header_ = make(http.Header)
108031	}
108032	return c.header_
108033}
108034
108035func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
108036	reqHeaders := make(http.Header)
108037	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108038	for k, v := range c.header_ {
108039		reqHeaders[k] = v
108040	}
108041	reqHeaders.Set("User-Agent", c.s.userAgent())
108042	var body io.Reader = nil
108043	c.urlParams_.Set("alt", alt)
108044	c.urlParams_.Set("prettyPrint", "false")
108045	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
108046	urls += "?" + c.urlParams_.Encode()
108047	req, err := http.NewRequest("DELETE", urls, body)
108048	if err != nil {
108049		return nil, err
108050	}
108051	req.Header = reqHeaders
108052	googleapi.Expand(req.URL, map[string]string{
108053		"project":              c.project,
108054		"zone":                 c.zone,
108055		"networkEndpointGroup": c.networkEndpointGroup,
108056	})
108057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108058}
108059
108060// Do executes the "compute.networkEndpointGroups.delete" call.
108061// Exactly one of *Operation or error will be non-nil. Any non-2xx
108062// status code is an error. Response headers are in either
108063// *Operation.ServerResponse.Header or (if a response was returned at
108064// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108065// to check whether the returned error was because
108066// http.StatusNotModified was returned.
108067func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108068	gensupport.SetOptions(c.urlParams_, opts...)
108069	res, err := c.doRequest("json")
108070	if res != nil && res.StatusCode == http.StatusNotModified {
108071		if res.Body != nil {
108072			res.Body.Close()
108073		}
108074		return nil, &googleapi.Error{
108075			Code:   res.StatusCode,
108076			Header: res.Header,
108077		}
108078	}
108079	if err != nil {
108080		return nil, err
108081	}
108082	defer googleapi.CloseBody(res)
108083	if err := googleapi.CheckResponse(res); err != nil {
108084		return nil, err
108085	}
108086	ret := &Operation{
108087		ServerResponse: googleapi.ServerResponse{
108088			Header:         res.Header,
108089			HTTPStatusCode: res.StatusCode,
108090		},
108091	}
108092	target := &ret
108093	if err := gensupport.DecodeResponse(target, res); err != nil {
108094		return nil, err
108095	}
108096	return ret, nil
108097	// {
108098	//   "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.",
108099	//   "httpMethod": "DELETE",
108100	//   "id": "compute.networkEndpointGroups.delete",
108101	//   "parameterOrder": [
108102	//     "project",
108103	//     "zone",
108104	//     "networkEndpointGroup"
108105	//   ],
108106	//   "parameters": {
108107	//     "networkEndpointGroup": {
108108	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
108109	//       "location": "path",
108110	//       "required": true,
108111	//       "type": "string"
108112	//     },
108113	//     "project": {
108114	//       "description": "Project ID for this request.",
108115	//       "location": "path",
108116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108117	//       "required": true,
108118	//       "type": "string"
108119	//     },
108120	//     "requestId": {
108121	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108122	//       "location": "query",
108123	//       "type": "string"
108124	//     },
108125	//     "zone": {
108126	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
108127	//       "location": "path",
108128	//       "required": true,
108129	//       "type": "string"
108130	//     }
108131	//   },
108132	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
108133	//   "response": {
108134	//     "$ref": "Operation"
108135	//   },
108136	//   "scopes": [
108137	//     "https://www.googleapis.com/auth/cloud-platform",
108138	//     "https://www.googleapis.com/auth/compute"
108139	//   ]
108140	// }
108141
108142}
108143
108144// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
108145
108146type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
108147	s                                           *Service
108148	project                                     string
108149	zone                                        string
108150	networkEndpointGroup                        string
108151	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
108152	urlParams_                                  gensupport.URLParams
108153	ctx_                                        context.Context
108154	header_                                     http.Header
108155}
108156
108157// DetachNetworkEndpoints: Detach a list of network endpoints from the
108158// specified network endpoint group.
108159//
108160// - networkEndpointGroup: The name of the network endpoint group where
108161//   you are removing network endpoints. It should comply with RFC1035.
108162// - project: Project ID for this request.
108163// - zone: The name of the zone where the network endpoint group is
108164//   located. It should comply with RFC1035.
108165func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
108166	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108167	c.project = project
108168	c.zone = zone
108169	c.networkEndpointGroup = networkEndpointGroup
108170	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
108171	return c
108172}
108173
108174// RequestId sets the optional parameter "requestId": An optional
108175// request ID to identify requests. Specify a unique request ID so that
108176// if you must retry your request, the server will know to ignore the
108177// request if it has already been completed.
108178//
108179// For example, consider a situation where you make an initial request
108180// and the request times out. If you make the request again with the
108181// same request ID, the server can check if original operation with the
108182// same request ID was received, and if so, will ignore the second
108183// request. This prevents clients from accidentally creating duplicate
108184// commitments.
108185//
108186// The request ID must be a valid UUID with the exception that zero UUID
108187// is not supported (00000000-0000-0000-0000-000000000000).
108188func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
108189	c.urlParams_.Set("requestId", requestId)
108190	return c
108191}
108192
108193// Fields allows partial responses to be retrieved. See
108194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108195// for more information.
108196func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
108197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108198	return c
108199}
108200
108201// Context sets the context to be used in this call's Do method. Any
108202// pending HTTP request will be aborted if the provided context is
108203// canceled.
108204func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
108205	c.ctx_ = ctx
108206	return c
108207}
108208
108209// Header returns an http.Header that can be modified by the caller to
108210// add HTTP headers to the request.
108211func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
108212	if c.header_ == nil {
108213		c.header_ = make(http.Header)
108214	}
108215	return c.header_
108216}
108217
108218func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
108219	reqHeaders := make(http.Header)
108220	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108221	for k, v := range c.header_ {
108222		reqHeaders[k] = v
108223	}
108224	reqHeaders.Set("User-Agent", c.s.userAgent())
108225	var body io.Reader = nil
108226	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
108227	if err != nil {
108228		return nil, err
108229	}
108230	reqHeaders.Set("Content-Type", "application/json")
108231	c.urlParams_.Set("alt", alt)
108232	c.urlParams_.Set("prettyPrint", "false")
108233	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
108234	urls += "?" + c.urlParams_.Encode()
108235	req, err := http.NewRequest("POST", urls, body)
108236	if err != nil {
108237		return nil, err
108238	}
108239	req.Header = reqHeaders
108240	googleapi.Expand(req.URL, map[string]string{
108241		"project":              c.project,
108242		"zone":                 c.zone,
108243		"networkEndpointGroup": c.networkEndpointGroup,
108244	})
108245	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108246}
108247
108248// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
108249// Exactly one of *Operation or error will be non-nil. Any non-2xx
108250// status code is an error. Response headers are in either
108251// *Operation.ServerResponse.Header or (if a response was returned at
108252// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108253// to check whether the returned error was because
108254// http.StatusNotModified was returned.
108255func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108256	gensupport.SetOptions(c.urlParams_, opts...)
108257	res, err := c.doRequest("json")
108258	if res != nil && res.StatusCode == http.StatusNotModified {
108259		if res.Body != nil {
108260			res.Body.Close()
108261		}
108262		return nil, &googleapi.Error{
108263			Code:   res.StatusCode,
108264			Header: res.Header,
108265		}
108266	}
108267	if err != nil {
108268		return nil, err
108269	}
108270	defer googleapi.CloseBody(res)
108271	if err := googleapi.CheckResponse(res); err != nil {
108272		return nil, err
108273	}
108274	ret := &Operation{
108275		ServerResponse: googleapi.ServerResponse{
108276			Header:         res.Header,
108277			HTTPStatusCode: res.StatusCode,
108278		},
108279	}
108280	target := &ret
108281	if err := gensupport.DecodeResponse(target, res); err != nil {
108282		return nil, err
108283	}
108284	return ret, nil
108285	// {
108286	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
108287	//   "httpMethod": "POST",
108288	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
108289	//   "parameterOrder": [
108290	//     "project",
108291	//     "zone",
108292	//     "networkEndpointGroup"
108293	//   ],
108294	//   "parameters": {
108295	//     "networkEndpointGroup": {
108296	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
108297	//       "location": "path",
108298	//       "required": true,
108299	//       "type": "string"
108300	//     },
108301	//     "project": {
108302	//       "description": "Project ID for this request.",
108303	//       "location": "path",
108304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108305	//       "required": true,
108306	//       "type": "string"
108307	//     },
108308	//     "requestId": {
108309	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108310	//       "location": "query",
108311	//       "type": "string"
108312	//     },
108313	//     "zone": {
108314	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
108315	//       "location": "path",
108316	//       "required": true,
108317	//       "type": "string"
108318	//     }
108319	//   },
108320	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
108321	//   "request": {
108322	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
108323	//   },
108324	//   "response": {
108325	//     "$ref": "Operation"
108326	//   },
108327	//   "scopes": [
108328	//     "https://www.googleapis.com/auth/cloud-platform",
108329	//     "https://www.googleapis.com/auth/compute"
108330	//   ]
108331	// }
108332
108333}
108334
108335// method id "compute.networkEndpointGroups.get":
108336
108337type NetworkEndpointGroupsGetCall struct {
108338	s                    *Service
108339	project              string
108340	zone                 string
108341	networkEndpointGroup string
108342	urlParams_           gensupport.URLParams
108343	ifNoneMatch_         string
108344	ctx_                 context.Context
108345	header_              http.Header
108346}
108347
108348// Get: Returns the specified network endpoint group. Gets a list of
108349// available network endpoint groups by making a list() request.
108350//
108351// - networkEndpointGroup: The name of the network endpoint group. It
108352//   should comply with RFC1035.
108353// - project: Project ID for this request.
108354// - zone: The name of the zone where the network endpoint group is
108355//   located. It should comply with RFC1035.
108356func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
108357	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108358	c.project = project
108359	c.zone = zone
108360	c.networkEndpointGroup = networkEndpointGroup
108361	return c
108362}
108363
108364// Fields allows partial responses to be retrieved. See
108365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108366// for more information.
108367func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
108368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108369	return c
108370}
108371
108372// IfNoneMatch sets the optional parameter which makes the operation
108373// fail if the object's ETag matches the given value. This is useful for
108374// getting updates only after the object has changed since the last
108375// request. Use googleapi.IsNotModified to check whether the response
108376// error from Do is the result of In-None-Match.
108377func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
108378	c.ifNoneMatch_ = entityTag
108379	return c
108380}
108381
108382// Context sets the context to be used in this call's Do method. Any
108383// pending HTTP request will be aborted if the provided context is
108384// canceled.
108385func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
108386	c.ctx_ = ctx
108387	return c
108388}
108389
108390// Header returns an http.Header that can be modified by the caller to
108391// add HTTP headers to the request.
108392func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
108393	if c.header_ == nil {
108394		c.header_ = make(http.Header)
108395	}
108396	return c.header_
108397}
108398
108399func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
108400	reqHeaders := make(http.Header)
108401	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108402	for k, v := range c.header_ {
108403		reqHeaders[k] = v
108404	}
108405	reqHeaders.Set("User-Agent", c.s.userAgent())
108406	if c.ifNoneMatch_ != "" {
108407		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108408	}
108409	var body io.Reader = nil
108410	c.urlParams_.Set("alt", alt)
108411	c.urlParams_.Set("prettyPrint", "false")
108412	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
108413	urls += "?" + c.urlParams_.Encode()
108414	req, err := http.NewRequest("GET", urls, body)
108415	if err != nil {
108416		return nil, err
108417	}
108418	req.Header = reqHeaders
108419	googleapi.Expand(req.URL, map[string]string{
108420		"project":              c.project,
108421		"zone":                 c.zone,
108422		"networkEndpointGroup": c.networkEndpointGroup,
108423	})
108424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108425}
108426
108427// Do executes the "compute.networkEndpointGroups.get" call.
108428// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
108429// non-2xx status code is an error. Response headers are in either
108430// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
108431// returned at all) in error.(*googleapi.Error).Header. Use
108432// googleapi.IsNotModified to check whether the returned error was
108433// because http.StatusNotModified was returned.
108434func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
108435	gensupport.SetOptions(c.urlParams_, opts...)
108436	res, err := c.doRequest("json")
108437	if res != nil && res.StatusCode == http.StatusNotModified {
108438		if res.Body != nil {
108439			res.Body.Close()
108440		}
108441		return nil, &googleapi.Error{
108442			Code:   res.StatusCode,
108443			Header: res.Header,
108444		}
108445	}
108446	if err != nil {
108447		return nil, err
108448	}
108449	defer googleapi.CloseBody(res)
108450	if err := googleapi.CheckResponse(res); err != nil {
108451		return nil, err
108452	}
108453	ret := &NetworkEndpointGroup{
108454		ServerResponse: googleapi.ServerResponse{
108455			Header:         res.Header,
108456			HTTPStatusCode: res.StatusCode,
108457		},
108458	}
108459	target := &ret
108460	if err := gensupport.DecodeResponse(target, res); err != nil {
108461		return nil, err
108462	}
108463	return ret, nil
108464	// {
108465	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
108466	//   "httpMethod": "GET",
108467	//   "id": "compute.networkEndpointGroups.get",
108468	//   "parameterOrder": [
108469	//     "project",
108470	//     "zone",
108471	//     "networkEndpointGroup"
108472	//   ],
108473	//   "parameters": {
108474	//     "networkEndpointGroup": {
108475	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
108476	//       "location": "path",
108477	//       "required": true,
108478	//       "type": "string"
108479	//     },
108480	//     "project": {
108481	//       "description": "Project ID for this request.",
108482	//       "location": "path",
108483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108484	//       "required": true,
108485	//       "type": "string"
108486	//     },
108487	//     "zone": {
108488	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
108489	//       "location": "path",
108490	//       "required": true,
108491	//       "type": "string"
108492	//     }
108493	//   },
108494	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
108495	//   "response": {
108496	//     "$ref": "NetworkEndpointGroup"
108497	//   },
108498	//   "scopes": [
108499	//     "https://www.googleapis.com/auth/cloud-platform",
108500	//     "https://www.googleapis.com/auth/compute",
108501	//     "https://www.googleapis.com/auth/compute.readonly"
108502	//   ]
108503	// }
108504
108505}
108506
108507// method id "compute.networkEndpointGroups.insert":
108508
108509type NetworkEndpointGroupsInsertCall struct {
108510	s                    *Service
108511	project              string
108512	zone                 string
108513	networkendpointgroup *NetworkEndpointGroup
108514	urlParams_           gensupport.URLParams
108515	ctx_                 context.Context
108516	header_              http.Header
108517}
108518
108519// Insert: Creates a network endpoint group in the specified project
108520// using the parameters that are included in the request.
108521//
108522// - project: Project ID for this request.
108523// - zone: The name of the zone where you want to create the network
108524//   endpoint group. It should comply with RFC1035.
108525func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
108526	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108527	c.project = project
108528	c.zone = zone
108529	c.networkendpointgroup = networkendpointgroup
108530	return c
108531}
108532
108533// RequestId sets the optional parameter "requestId": An optional
108534// request ID to identify requests. Specify a unique request ID so that
108535// if you must retry your request, the server will know to ignore the
108536// request if it has already been completed.
108537//
108538// For example, consider a situation where you make an initial request
108539// and the request times out. If you make the request again with the
108540// same request ID, the server can check if original operation with the
108541// same request ID was received, and if so, will ignore the second
108542// request. This prevents clients from accidentally creating duplicate
108543// commitments.
108544//
108545// The request ID must be a valid UUID with the exception that zero UUID
108546// is not supported (00000000-0000-0000-0000-000000000000).
108547func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
108548	c.urlParams_.Set("requestId", requestId)
108549	return c
108550}
108551
108552// Fields allows partial responses to be retrieved. See
108553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108554// for more information.
108555func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
108556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108557	return c
108558}
108559
108560// Context sets the context to be used in this call's Do method. Any
108561// pending HTTP request will be aborted if the provided context is
108562// canceled.
108563func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
108564	c.ctx_ = ctx
108565	return c
108566}
108567
108568// Header returns an http.Header that can be modified by the caller to
108569// add HTTP headers to the request.
108570func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
108571	if c.header_ == nil {
108572		c.header_ = make(http.Header)
108573	}
108574	return c.header_
108575}
108576
108577func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
108578	reqHeaders := make(http.Header)
108579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108580	for k, v := range c.header_ {
108581		reqHeaders[k] = v
108582	}
108583	reqHeaders.Set("User-Agent", c.s.userAgent())
108584	var body io.Reader = nil
108585	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
108586	if err != nil {
108587		return nil, err
108588	}
108589	reqHeaders.Set("Content-Type", "application/json")
108590	c.urlParams_.Set("alt", alt)
108591	c.urlParams_.Set("prettyPrint", "false")
108592	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
108593	urls += "?" + c.urlParams_.Encode()
108594	req, err := http.NewRequest("POST", urls, body)
108595	if err != nil {
108596		return nil, err
108597	}
108598	req.Header = reqHeaders
108599	googleapi.Expand(req.URL, map[string]string{
108600		"project": c.project,
108601		"zone":    c.zone,
108602	})
108603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108604}
108605
108606// Do executes the "compute.networkEndpointGroups.insert" call.
108607// Exactly one of *Operation or error will be non-nil. Any non-2xx
108608// status code is an error. Response headers are in either
108609// *Operation.ServerResponse.Header or (if a response was returned at
108610// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108611// to check whether the returned error was because
108612// http.StatusNotModified was returned.
108613func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108614	gensupport.SetOptions(c.urlParams_, opts...)
108615	res, err := c.doRequest("json")
108616	if res != nil && res.StatusCode == http.StatusNotModified {
108617		if res.Body != nil {
108618			res.Body.Close()
108619		}
108620		return nil, &googleapi.Error{
108621			Code:   res.StatusCode,
108622			Header: res.Header,
108623		}
108624	}
108625	if err != nil {
108626		return nil, err
108627	}
108628	defer googleapi.CloseBody(res)
108629	if err := googleapi.CheckResponse(res); err != nil {
108630		return nil, err
108631	}
108632	ret := &Operation{
108633		ServerResponse: googleapi.ServerResponse{
108634			Header:         res.Header,
108635			HTTPStatusCode: res.StatusCode,
108636		},
108637	}
108638	target := &ret
108639	if err := gensupport.DecodeResponse(target, res); err != nil {
108640		return nil, err
108641	}
108642	return ret, nil
108643	// {
108644	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
108645	//   "httpMethod": "POST",
108646	//   "id": "compute.networkEndpointGroups.insert",
108647	//   "parameterOrder": [
108648	//     "project",
108649	//     "zone"
108650	//   ],
108651	//   "parameters": {
108652	//     "project": {
108653	//       "description": "Project ID for this request.",
108654	//       "location": "path",
108655	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108656	//       "required": true,
108657	//       "type": "string"
108658	//     },
108659	//     "requestId": {
108660	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108661	//       "location": "query",
108662	//       "type": "string"
108663	//     },
108664	//     "zone": {
108665	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
108666	//       "location": "path",
108667	//       "required": true,
108668	//       "type": "string"
108669	//     }
108670	//   },
108671	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
108672	//   "request": {
108673	//     "$ref": "NetworkEndpointGroup"
108674	//   },
108675	//   "response": {
108676	//     "$ref": "Operation"
108677	//   },
108678	//   "scopes": [
108679	//     "https://www.googleapis.com/auth/cloud-platform",
108680	//     "https://www.googleapis.com/auth/compute"
108681	//   ]
108682	// }
108683
108684}
108685
108686// method id "compute.networkEndpointGroups.list":
108687
108688type NetworkEndpointGroupsListCall struct {
108689	s            *Service
108690	project      string
108691	zone         string
108692	urlParams_   gensupport.URLParams
108693	ifNoneMatch_ string
108694	ctx_         context.Context
108695	header_      http.Header
108696}
108697
108698// List: Retrieves the list of network endpoint groups that are located
108699// in the specified project and zone.
108700//
108701// - project: Project ID for this request.
108702// - zone: The name of the zone where the network endpoint group is
108703//   located. It should comply with RFC1035.
108704func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
108705	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108706	c.project = project
108707	c.zone = zone
108708	return c
108709}
108710
108711// Filter sets the optional parameter "filter": A filter expression that
108712// filters resources listed in the response. The expression must specify
108713// the field name, a comparison operator, and the value that you want to
108714// use for filtering. The value must be a string, a number, or a
108715// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108716// `<`.
108717//
108718// For example, if you are filtering Compute Engine instances, you can
108719// exclude instances named `example-instance` by specifying `name !=
108720// example-instance`.
108721//
108722// You can also filter nested fields. For example, you could specify
108723// `scheduling.automaticRestart = false` to include instances only if
108724// they are not scheduled for automatic restarts. You can use filtering
108725// on nested fields to filter based on resource labels.
108726//
108727// To filter on multiple expressions, provide each separate expression
108728// within parentheses. For example: ``` (scheduling.automaticRestart =
108729// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
108730// is an `AND` expression. However, you can include `AND` and `OR`
108731// expressions explicitly. For example: ``` (cpuPlatform = "Intel
108732// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
108733// (scheduling.automaticRestart = true) ```
108734func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
108735	c.urlParams_.Set("filter", filter)
108736	return c
108737}
108738
108739// MaxResults sets the optional parameter "maxResults": The maximum
108740// number of results per page that should be returned. If the number of
108741// available results is larger than `maxResults`, Compute Engine returns
108742// a `nextPageToken` that can be used to get the next page of results in
108743// subsequent list requests. Acceptable values are `0` to `500`,
108744// inclusive. (Default: `500`)
108745func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
108746	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108747	return c
108748}
108749
108750// OrderBy sets the optional parameter "orderBy": Sorts list results by
108751// a certain order. By default, results are returned in alphanumerical
108752// order based on the resource name.
108753//
108754// You can also sort results in descending order based on the creation
108755// timestamp using `orderBy="creationTimestamp desc". This sorts
108756// results based on the `creationTimestamp` field in reverse
108757// chronological order (newest result first). Use this to sort resources
108758// like operations so that the newest operation is returned
108759// first.
108760//
108761// Currently, only sorting by `name` or `creationTimestamp desc` is
108762// supported.
108763func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
108764	c.urlParams_.Set("orderBy", orderBy)
108765	return c
108766}
108767
108768// PageToken sets the optional parameter "pageToken": Specifies a page
108769// token to use. Set `pageToken` to the `nextPageToken` returned by a
108770// previous list request to get the next page of results.
108771func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
108772	c.urlParams_.Set("pageToken", pageToken)
108773	return c
108774}
108775
108776// ReturnPartialSuccess sets the optional parameter
108777// "returnPartialSuccess": Opt-in for partial success behavior which
108778// provides partial results in case of failure. The default value is
108779// false.
108780func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListCall {
108781	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
108782	return c
108783}
108784
108785// Fields allows partial responses to be retrieved. See
108786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108787// for more information.
108788func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
108789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108790	return c
108791}
108792
108793// IfNoneMatch sets the optional parameter which makes the operation
108794// fail if the object's ETag matches the given value. This is useful for
108795// getting updates only after the object has changed since the last
108796// request. Use googleapi.IsNotModified to check whether the response
108797// error from Do is the result of In-None-Match.
108798func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
108799	c.ifNoneMatch_ = entityTag
108800	return c
108801}
108802
108803// Context sets the context to be used in this call's Do method. Any
108804// pending HTTP request will be aborted if the provided context is
108805// canceled.
108806func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
108807	c.ctx_ = ctx
108808	return c
108809}
108810
108811// Header returns an http.Header that can be modified by the caller to
108812// add HTTP headers to the request.
108813func (c *NetworkEndpointGroupsListCall) Header() http.Header {
108814	if c.header_ == nil {
108815		c.header_ = make(http.Header)
108816	}
108817	return c.header_
108818}
108819
108820func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
108821	reqHeaders := make(http.Header)
108822	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108823	for k, v := range c.header_ {
108824		reqHeaders[k] = v
108825	}
108826	reqHeaders.Set("User-Agent", c.s.userAgent())
108827	if c.ifNoneMatch_ != "" {
108828		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108829	}
108830	var body io.Reader = nil
108831	c.urlParams_.Set("alt", alt)
108832	c.urlParams_.Set("prettyPrint", "false")
108833	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
108834	urls += "?" + c.urlParams_.Encode()
108835	req, err := http.NewRequest("GET", urls, body)
108836	if err != nil {
108837		return nil, err
108838	}
108839	req.Header = reqHeaders
108840	googleapi.Expand(req.URL, map[string]string{
108841		"project": c.project,
108842		"zone":    c.zone,
108843	})
108844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108845}
108846
108847// Do executes the "compute.networkEndpointGroups.list" call.
108848// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
108849// Any non-2xx status code is an error. Response headers are in either
108850// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
108851// returned at all) in error.(*googleapi.Error).Header. Use
108852// googleapi.IsNotModified to check whether the returned error was
108853// because http.StatusNotModified was returned.
108854func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
108855	gensupport.SetOptions(c.urlParams_, opts...)
108856	res, err := c.doRequest("json")
108857	if res != nil && res.StatusCode == http.StatusNotModified {
108858		if res.Body != nil {
108859			res.Body.Close()
108860		}
108861		return nil, &googleapi.Error{
108862			Code:   res.StatusCode,
108863			Header: res.Header,
108864		}
108865	}
108866	if err != nil {
108867		return nil, err
108868	}
108869	defer googleapi.CloseBody(res)
108870	if err := googleapi.CheckResponse(res); err != nil {
108871		return nil, err
108872	}
108873	ret := &NetworkEndpointGroupList{
108874		ServerResponse: googleapi.ServerResponse{
108875			Header:         res.Header,
108876			HTTPStatusCode: res.StatusCode,
108877		},
108878	}
108879	target := &ret
108880	if err := gensupport.DecodeResponse(target, res); err != nil {
108881		return nil, err
108882	}
108883	return ret, nil
108884	// {
108885	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
108886	//   "httpMethod": "GET",
108887	//   "id": "compute.networkEndpointGroups.list",
108888	//   "parameterOrder": [
108889	//     "project",
108890	//     "zone"
108891	//   ],
108892	//   "parameters": {
108893	//     "filter": {
108894	//       "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) ```",
108895	//       "location": "query",
108896	//       "type": "string"
108897	//     },
108898	//     "maxResults": {
108899	//       "default": "500",
108900	//       "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`)",
108901	//       "format": "uint32",
108902	//       "location": "query",
108903	//       "minimum": "0",
108904	//       "type": "integer"
108905	//     },
108906	//     "orderBy": {
108907	//       "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.",
108908	//       "location": "query",
108909	//       "type": "string"
108910	//     },
108911	//     "pageToken": {
108912	//       "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.",
108913	//       "location": "query",
108914	//       "type": "string"
108915	//     },
108916	//     "project": {
108917	//       "description": "Project ID for this request.",
108918	//       "location": "path",
108919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108920	//       "required": true,
108921	//       "type": "string"
108922	//     },
108923	//     "returnPartialSuccess": {
108924	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
108925	//       "location": "query",
108926	//       "type": "boolean"
108927	//     },
108928	//     "zone": {
108929	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
108930	//       "location": "path",
108931	//       "required": true,
108932	//       "type": "string"
108933	//     }
108934	//   },
108935	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
108936	//   "response": {
108937	//     "$ref": "NetworkEndpointGroupList"
108938	//   },
108939	//   "scopes": [
108940	//     "https://www.googleapis.com/auth/cloud-platform",
108941	//     "https://www.googleapis.com/auth/compute",
108942	//     "https://www.googleapis.com/auth/compute.readonly"
108943	//   ]
108944	// }
108945
108946}
108947
108948// Pages invokes f for each page of results.
108949// A non-nil error returned from f will halt the iteration.
108950// The provided context supersedes any context provided to the Context method.
108951func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
108952	c.ctx_ = ctx
108953	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108954	for {
108955		x, err := c.Do()
108956		if err != nil {
108957			return err
108958		}
108959		if err := f(x); err != nil {
108960			return err
108961		}
108962		if x.NextPageToken == "" {
108963			return nil
108964		}
108965		c.PageToken(x.NextPageToken)
108966	}
108967}
108968
108969// method id "compute.networkEndpointGroups.listNetworkEndpoints":
108970
108971type NetworkEndpointGroupsListNetworkEndpointsCall struct {
108972	s                                         *Service
108973	project                                   string
108974	zone                                      string
108975	networkEndpointGroup                      string
108976	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
108977	urlParams_                                gensupport.URLParams
108978	ctx_                                      context.Context
108979	header_                                   http.Header
108980}
108981
108982// ListNetworkEndpoints: Lists the network endpoints in the specified
108983// network endpoint group.
108984//
108985// - networkEndpointGroup: The name of the network endpoint group from
108986//   which you want to generate a list of included network endpoints. It
108987//   should comply with RFC1035.
108988// - project: Project ID for this request.
108989// - zone: The name of the zone where the network endpoint group is
108990//   located. It should comply with RFC1035.
108991func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
108992	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108993	c.project = project
108994	c.zone = zone
108995	c.networkEndpointGroup = networkEndpointGroup
108996	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
108997	return c
108998}
108999
109000// Filter sets the optional parameter "filter": A filter expression that
109001// filters resources listed in the response. The expression must specify
109002// the field name, a comparison operator, and the value that you want to
109003// use for filtering. The value must be a string, a number, or a
109004// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109005// `<`.
109006//
109007// For example, if you are filtering Compute Engine instances, you can
109008// exclude instances named `example-instance` by specifying `name !=
109009// example-instance`.
109010//
109011// You can also filter nested fields. For example, you could specify
109012// `scheduling.automaticRestart = false` to include instances only if
109013// they are not scheduled for automatic restarts. You can use filtering
109014// on nested fields to filter based on resource labels.
109015//
109016// To filter on multiple expressions, provide each separate expression
109017// within parentheses. For example: ``` (scheduling.automaticRestart =
109018// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
109019// is an `AND` expression. However, you can include `AND` and `OR`
109020// expressions explicitly. For example: ``` (cpuPlatform = "Intel
109021// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
109022// (scheduling.automaticRestart = true) ```
109023func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
109024	c.urlParams_.Set("filter", filter)
109025	return c
109026}
109027
109028// MaxResults sets the optional parameter "maxResults": The maximum
109029// number of results per page that should be returned. If the number of
109030// available results is larger than `maxResults`, Compute Engine returns
109031// a `nextPageToken` that can be used to get the next page of results in
109032// subsequent list requests. Acceptable values are `0` to `500`,
109033// inclusive. (Default: `500`)
109034func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
109035	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109036	return c
109037}
109038
109039// OrderBy sets the optional parameter "orderBy": Sorts list results by
109040// a certain order. By default, results are returned in alphanumerical
109041// order based on the resource name.
109042//
109043// You can also sort results in descending order based on the creation
109044// timestamp using `orderBy="creationTimestamp desc". This sorts
109045// results based on the `creationTimestamp` field in reverse
109046// chronological order (newest result first). Use this to sort resources
109047// like operations so that the newest operation is returned
109048// first.
109049//
109050// Currently, only sorting by `name` or `creationTimestamp desc` is
109051// supported.
109052func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
109053	c.urlParams_.Set("orderBy", orderBy)
109054	return c
109055}
109056
109057// PageToken sets the optional parameter "pageToken": Specifies a page
109058// token to use. Set `pageToken` to the `nextPageToken` returned by a
109059// previous list request to get the next page of results.
109060func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
109061	c.urlParams_.Set("pageToken", pageToken)
109062	return c
109063}
109064
109065// ReturnPartialSuccess sets the optional parameter
109066// "returnPartialSuccess": Opt-in for partial success behavior which
109067// provides partial results in case of failure. The default value is
109068// false.
109069func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListNetworkEndpointsCall {
109070	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109071	return c
109072}
109073
109074// Fields allows partial responses to be retrieved. See
109075// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109076// for more information.
109077func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
109078	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109079	return c
109080}
109081
109082// Context sets the context to be used in this call's Do method. Any
109083// pending HTTP request will be aborted if the provided context is
109084// canceled.
109085func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
109086	c.ctx_ = ctx
109087	return c
109088}
109089
109090// Header returns an http.Header that can be modified by the caller to
109091// add HTTP headers to the request.
109092func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
109093	if c.header_ == nil {
109094		c.header_ = make(http.Header)
109095	}
109096	return c.header_
109097}
109098
109099func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
109100	reqHeaders := make(http.Header)
109101	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109102	for k, v := range c.header_ {
109103		reqHeaders[k] = v
109104	}
109105	reqHeaders.Set("User-Agent", c.s.userAgent())
109106	var body io.Reader = nil
109107	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
109108	if err != nil {
109109		return nil, err
109110	}
109111	reqHeaders.Set("Content-Type", "application/json")
109112	c.urlParams_.Set("alt", alt)
109113	c.urlParams_.Set("prettyPrint", "false")
109114	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
109115	urls += "?" + c.urlParams_.Encode()
109116	req, err := http.NewRequest("POST", urls, body)
109117	if err != nil {
109118		return nil, err
109119	}
109120	req.Header = reqHeaders
109121	googleapi.Expand(req.URL, map[string]string{
109122		"project":              c.project,
109123		"zone":                 c.zone,
109124		"networkEndpointGroup": c.networkEndpointGroup,
109125	})
109126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109127}
109128
109129// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
109130// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
109131// will be non-nil. Any non-2xx status code is an error. Response
109132// headers are in either
109133// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
109134// (if a response was returned at all) in
109135// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
109136// whether the returned error was because http.StatusNotModified was
109137// returned.
109138func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
109139	gensupport.SetOptions(c.urlParams_, opts...)
109140	res, err := c.doRequest("json")
109141	if res != nil && res.StatusCode == http.StatusNotModified {
109142		if res.Body != nil {
109143			res.Body.Close()
109144		}
109145		return nil, &googleapi.Error{
109146			Code:   res.StatusCode,
109147			Header: res.Header,
109148		}
109149	}
109150	if err != nil {
109151		return nil, err
109152	}
109153	defer googleapi.CloseBody(res)
109154	if err := googleapi.CheckResponse(res); err != nil {
109155		return nil, err
109156	}
109157	ret := &NetworkEndpointGroupsListNetworkEndpoints{
109158		ServerResponse: googleapi.ServerResponse{
109159			Header:         res.Header,
109160			HTTPStatusCode: res.StatusCode,
109161		},
109162	}
109163	target := &ret
109164	if err := gensupport.DecodeResponse(target, res); err != nil {
109165		return nil, err
109166	}
109167	return ret, nil
109168	// {
109169	//   "description": "Lists the network endpoints in the specified network endpoint group.",
109170	//   "httpMethod": "POST",
109171	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
109172	//   "parameterOrder": [
109173	//     "project",
109174	//     "zone",
109175	//     "networkEndpointGroup"
109176	//   ],
109177	//   "parameters": {
109178	//     "filter": {
109179	//       "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) ```",
109180	//       "location": "query",
109181	//       "type": "string"
109182	//     },
109183	//     "maxResults": {
109184	//       "default": "500",
109185	//       "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`)",
109186	//       "format": "uint32",
109187	//       "location": "query",
109188	//       "minimum": "0",
109189	//       "type": "integer"
109190	//     },
109191	//     "networkEndpointGroup": {
109192	//       "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.",
109193	//       "location": "path",
109194	//       "required": true,
109195	//       "type": "string"
109196	//     },
109197	//     "orderBy": {
109198	//       "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.",
109199	//       "location": "query",
109200	//       "type": "string"
109201	//     },
109202	//     "pageToken": {
109203	//       "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.",
109204	//       "location": "query",
109205	//       "type": "string"
109206	//     },
109207	//     "project": {
109208	//       "description": "Project ID for this request.",
109209	//       "location": "path",
109210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109211	//       "required": true,
109212	//       "type": "string"
109213	//     },
109214	//     "returnPartialSuccess": {
109215	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
109216	//       "location": "query",
109217	//       "type": "boolean"
109218	//     },
109219	//     "zone": {
109220	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
109221	//       "location": "path",
109222	//       "required": true,
109223	//       "type": "string"
109224	//     }
109225	//   },
109226	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
109227	//   "request": {
109228	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
109229	//   },
109230	//   "response": {
109231	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
109232	//   },
109233	//   "scopes": [
109234	//     "https://www.googleapis.com/auth/cloud-platform",
109235	//     "https://www.googleapis.com/auth/compute",
109236	//     "https://www.googleapis.com/auth/compute.readonly"
109237	//   ]
109238	// }
109239
109240}
109241
109242// Pages invokes f for each page of results.
109243// A non-nil error returned from f will halt the iteration.
109244// The provided context supersedes any context provided to the Context method.
109245func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
109246	c.ctx_ = ctx
109247	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109248	for {
109249		x, err := c.Do()
109250		if err != nil {
109251			return err
109252		}
109253		if err := f(x); err != nil {
109254			return err
109255		}
109256		if x.NextPageToken == "" {
109257			return nil
109258		}
109259		c.PageToken(x.NextPageToken)
109260	}
109261}
109262
109263// method id "compute.networkEndpointGroups.testIamPermissions":
109264
109265type NetworkEndpointGroupsTestIamPermissionsCall struct {
109266	s                      *Service
109267	project                string
109268	zone                   string
109269	resource               string
109270	testpermissionsrequest *TestPermissionsRequest
109271	urlParams_             gensupport.URLParams
109272	ctx_                   context.Context
109273	header_                http.Header
109274}
109275
109276// TestIamPermissions: Returns permissions that a caller has on the
109277// specified resource.
109278//
109279// - project: Project ID for this request.
109280// - resource: Name or id of the resource for this request.
109281// - zone: The name of the zone for this request.
109282func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
109283	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109284	c.project = project
109285	c.zone = zone
109286	c.resource = resource
109287	c.testpermissionsrequest = testpermissionsrequest
109288	return c
109289}
109290
109291// Fields allows partial responses to be retrieved. See
109292// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109293// for more information.
109294func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
109295	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109296	return c
109297}
109298
109299// Context sets the context to be used in this call's Do method. Any
109300// pending HTTP request will be aborted if the provided context is
109301// canceled.
109302func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
109303	c.ctx_ = ctx
109304	return c
109305}
109306
109307// Header returns an http.Header that can be modified by the caller to
109308// add HTTP headers to the request.
109309func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
109310	if c.header_ == nil {
109311		c.header_ = make(http.Header)
109312	}
109313	return c.header_
109314}
109315
109316func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
109317	reqHeaders := make(http.Header)
109318	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109319	for k, v := range c.header_ {
109320		reqHeaders[k] = v
109321	}
109322	reqHeaders.Set("User-Agent", c.s.userAgent())
109323	var body io.Reader = nil
109324	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
109325	if err != nil {
109326		return nil, err
109327	}
109328	reqHeaders.Set("Content-Type", "application/json")
109329	c.urlParams_.Set("alt", alt)
109330	c.urlParams_.Set("prettyPrint", "false")
109331	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
109332	urls += "?" + c.urlParams_.Encode()
109333	req, err := http.NewRequest("POST", urls, body)
109334	if err != nil {
109335		return nil, err
109336	}
109337	req.Header = reqHeaders
109338	googleapi.Expand(req.URL, map[string]string{
109339		"project":  c.project,
109340		"zone":     c.zone,
109341		"resource": c.resource,
109342	})
109343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109344}
109345
109346// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
109347// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
109348// non-2xx status code is an error. Response headers are in either
109349// *TestPermissionsResponse.ServerResponse.Header or (if a response was
109350// returned at all) in error.(*googleapi.Error).Header. Use
109351// googleapi.IsNotModified to check whether the returned error was
109352// because http.StatusNotModified was returned.
109353func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
109354	gensupport.SetOptions(c.urlParams_, opts...)
109355	res, err := c.doRequest("json")
109356	if res != nil && res.StatusCode == http.StatusNotModified {
109357		if res.Body != nil {
109358			res.Body.Close()
109359		}
109360		return nil, &googleapi.Error{
109361			Code:   res.StatusCode,
109362			Header: res.Header,
109363		}
109364	}
109365	if err != nil {
109366		return nil, err
109367	}
109368	defer googleapi.CloseBody(res)
109369	if err := googleapi.CheckResponse(res); err != nil {
109370		return nil, err
109371	}
109372	ret := &TestPermissionsResponse{
109373		ServerResponse: googleapi.ServerResponse{
109374			Header:         res.Header,
109375			HTTPStatusCode: res.StatusCode,
109376		},
109377	}
109378	target := &ret
109379	if err := gensupport.DecodeResponse(target, res); err != nil {
109380		return nil, err
109381	}
109382	return ret, nil
109383	// {
109384	//   "description": "Returns permissions that a caller has on the specified resource.",
109385	//   "httpMethod": "POST",
109386	//   "id": "compute.networkEndpointGroups.testIamPermissions",
109387	//   "parameterOrder": [
109388	//     "project",
109389	//     "zone",
109390	//     "resource"
109391	//   ],
109392	//   "parameters": {
109393	//     "project": {
109394	//       "description": "Project ID for this request.",
109395	//       "location": "path",
109396	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109397	//       "required": true,
109398	//       "type": "string"
109399	//     },
109400	//     "resource": {
109401	//       "description": "Name or id of the resource for this request.",
109402	//       "location": "path",
109403	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109404	//       "required": true,
109405	//       "type": "string"
109406	//     },
109407	//     "zone": {
109408	//       "description": "The name of the zone for this request.",
109409	//       "location": "path",
109410	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109411	//       "required": true,
109412	//       "type": "string"
109413	//     }
109414	//   },
109415	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
109416	//   "request": {
109417	//     "$ref": "TestPermissionsRequest"
109418	//   },
109419	//   "response": {
109420	//     "$ref": "TestPermissionsResponse"
109421	//   },
109422	//   "scopes": [
109423	//     "https://www.googleapis.com/auth/cloud-platform",
109424	//     "https://www.googleapis.com/auth/compute",
109425	//     "https://www.googleapis.com/auth/compute.readonly"
109426	//   ]
109427	// }
109428
109429}
109430
109431// method id "compute.networks.addPeering":
109432
109433type NetworksAddPeeringCall struct {
109434	s                         *Service
109435	project                   string
109436	network                   string
109437	networksaddpeeringrequest *NetworksAddPeeringRequest
109438	urlParams_                gensupport.URLParams
109439	ctx_                      context.Context
109440	header_                   http.Header
109441}
109442
109443// AddPeering: Adds a peering to the specified network.
109444//
109445// - network: Name of the network resource to add peering to.
109446// - project: Project ID for this request.
109447func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
109448	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109449	c.project = project
109450	c.network = network
109451	c.networksaddpeeringrequest = networksaddpeeringrequest
109452	return c
109453}
109454
109455// RequestId sets the optional parameter "requestId": An optional
109456// request ID to identify requests. Specify a unique request ID so that
109457// if you must retry your request, the server will know to ignore the
109458// request if it has already been completed.
109459//
109460// For example, consider a situation where you make an initial request
109461// and the request times out. If you make the request again with the
109462// same request ID, the server can check if original operation with the
109463// same request ID was received, and if so, will ignore the second
109464// request. This prevents clients from accidentally creating duplicate
109465// commitments.
109466//
109467// The request ID must be a valid UUID with the exception that zero UUID
109468// is not supported (00000000-0000-0000-0000-000000000000).
109469func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
109470	c.urlParams_.Set("requestId", requestId)
109471	return c
109472}
109473
109474// Fields allows partial responses to be retrieved. See
109475// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109476// for more information.
109477func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
109478	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109479	return c
109480}
109481
109482// Context sets the context to be used in this call's Do method. Any
109483// pending HTTP request will be aborted if the provided context is
109484// canceled.
109485func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
109486	c.ctx_ = ctx
109487	return c
109488}
109489
109490// Header returns an http.Header that can be modified by the caller to
109491// add HTTP headers to the request.
109492func (c *NetworksAddPeeringCall) Header() http.Header {
109493	if c.header_ == nil {
109494		c.header_ = make(http.Header)
109495	}
109496	return c.header_
109497}
109498
109499func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
109500	reqHeaders := make(http.Header)
109501	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109502	for k, v := range c.header_ {
109503		reqHeaders[k] = v
109504	}
109505	reqHeaders.Set("User-Agent", c.s.userAgent())
109506	var body io.Reader = nil
109507	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
109508	if err != nil {
109509		return nil, err
109510	}
109511	reqHeaders.Set("Content-Type", "application/json")
109512	c.urlParams_.Set("alt", alt)
109513	c.urlParams_.Set("prettyPrint", "false")
109514	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/addPeering")
109515	urls += "?" + c.urlParams_.Encode()
109516	req, err := http.NewRequest("POST", urls, body)
109517	if err != nil {
109518		return nil, err
109519	}
109520	req.Header = reqHeaders
109521	googleapi.Expand(req.URL, map[string]string{
109522		"project": c.project,
109523		"network": c.network,
109524	})
109525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109526}
109527
109528// Do executes the "compute.networks.addPeering" call.
109529// Exactly one of *Operation or error will be non-nil. Any non-2xx
109530// status code is an error. Response headers are in either
109531// *Operation.ServerResponse.Header or (if a response was returned at
109532// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109533// to check whether the returned error was because
109534// http.StatusNotModified was returned.
109535func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109536	gensupport.SetOptions(c.urlParams_, opts...)
109537	res, err := c.doRequest("json")
109538	if res != nil && res.StatusCode == http.StatusNotModified {
109539		if res.Body != nil {
109540			res.Body.Close()
109541		}
109542		return nil, &googleapi.Error{
109543			Code:   res.StatusCode,
109544			Header: res.Header,
109545		}
109546	}
109547	if err != nil {
109548		return nil, err
109549	}
109550	defer googleapi.CloseBody(res)
109551	if err := googleapi.CheckResponse(res); err != nil {
109552		return nil, err
109553	}
109554	ret := &Operation{
109555		ServerResponse: googleapi.ServerResponse{
109556			Header:         res.Header,
109557			HTTPStatusCode: res.StatusCode,
109558		},
109559	}
109560	target := &ret
109561	if err := gensupport.DecodeResponse(target, res); err != nil {
109562		return nil, err
109563	}
109564	return ret, nil
109565	// {
109566	//   "description": "Adds a peering to the specified network.",
109567	//   "httpMethod": "POST",
109568	//   "id": "compute.networks.addPeering",
109569	//   "parameterOrder": [
109570	//     "project",
109571	//     "network"
109572	//   ],
109573	//   "parameters": {
109574	//     "network": {
109575	//       "description": "Name of the network resource to add peering to.",
109576	//       "location": "path",
109577	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109578	//       "required": true,
109579	//       "type": "string"
109580	//     },
109581	//     "project": {
109582	//       "description": "Project ID for this request.",
109583	//       "location": "path",
109584	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109585	//       "required": true,
109586	//       "type": "string"
109587	//     },
109588	//     "requestId": {
109589	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109590	//       "location": "query",
109591	//       "type": "string"
109592	//     }
109593	//   },
109594	//   "path": "projects/{project}/global/networks/{network}/addPeering",
109595	//   "request": {
109596	//     "$ref": "NetworksAddPeeringRequest"
109597	//   },
109598	//   "response": {
109599	//     "$ref": "Operation"
109600	//   },
109601	//   "scopes": [
109602	//     "https://www.googleapis.com/auth/cloud-platform",
109603	//     "https://www.googleapis.com/auth/compute"
109604	//   ]
109605	// }
109606
109607}
109608
109609// method id "compute.networks.delete":
109610
109611type NetworksDeleteCall struct {
109612	s          *Service
109613	project    string
109614	network    string
109615	urlParams_ gensupport.URLParams
109616	ctx_       context.Context
109617	header_    http.Header
109618}
109619
109620// Delete: Deletes the specified network.
109621//
109622// - network: Name of the network to delete.
109623// - project: Project ID for this request.
109624// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
109625func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
109626	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109627	c.project = project
109628	c.network = network
109629	return c
109630}
109631
109632// RequestId sets the optional parameter "requestId": An optional
109633// request ID to identify requests. Specify a unique request ID so that
109634// if you must retry your request, the server will know to ignore the
109635// request if it has already been completed.
109636//
109637// For example, consider a situation where you make an initial request
109638// and the request times out. If you make the request again with the
109639// same request ID, the server can check if original operation with the
109640// same request ID was received, and if so, will ignore the second
109641// request. This prevents clients from accidentally creating duplicate
109642// commitments.
109643//
109644// The request ID must be a valid UUID with the exception that zero UUID
109645// is not supported (00000000-0000-0000-0000-000000000000).
109646func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
109647	c.urlParams_.Set("requestId", requestId)
109648	return c
109649}
109650
109651// Fields allows partial responses to be retrieved. See
109652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109653// for more information.
109654func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
109655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109656	return c
109657}
109658
109659// Context sets the context to be used in this call's Do method. Any
109660// pending HTTP request will be aborted if the provided context is
109661// canceled.
109662func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
109663	c.ctx_ = ctx
109664	return c
109665}
109666
109667// Header returns an http.Header that can be modified by the caller to
109668// add HTTP headers to the request.
109669func (c *NetworksDeleteCall) Header() http.Header {
109670	if c.header_ == nil {
109671		c.header_ = make(http.Header)
109672	}
109673	return c.header_
109674}
109675
109676func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
109677	reqHeaders := make(http.Header)
109678	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109679	for k, v := range c.header_ {
109680		reqHeaders[k] = v
109681	}
109682	reqHeaders.Set("User-Agent", c.s.userAgent())
109683	var body io.Reader = nil
109684	c.urlParams_.Set("alt", alt)
109685	c.urlParams_.Set("prettyPrint", "false")
109686	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
109687	urls += "?" + c.urlParams_.Encode()
109688	req, err := http.NewRequest("DELETE", urls, body)
109689	if err != nil {
109690		return nil, err
109691	}
109692	req.Header = reqHeaders
109693	googleapi.Expand(req.URL, map[string]string{
109694		"project": c.project,
109695		"network": c.network,
109696	})
109697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109698}
109699
109700// Do executes the "compute.networks.delete" call.
109701// Exactly one of *Operation or error will be non-nil. Any non-2xx
109702// status code is an error. Response headers are in either
109703// *Operation.ServerResponse.Header or (if a response was returned at
109704// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109705// to check whether the returned error was because
109706// http.StatusNotModified was returned.
109707func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109708	gensupport.SetOptions(c.urlParams_, opts...)
109709	res, err := c.doRequest("json")
109710	if res != nil && res.StatusCode == http.StatusNotModified {
109711		if res.Body != nil {
109712			res.Body.Close()
109713		}
109714		return nil, &googleapi.Error{
109715			Code:   res.StatusCode,
109716			Header: res.Header,
109717		}
109718	}
109719	if err != nil {
109720		return nil, err
109721	}
109722	defer googleapi.CloseBody(res)
109723	if err := googleapi.CheckResponse(res); err != nil {
109724		return nil, err
109725	}
109726	ret := &Operation{
109727		ServerResponse: googleapi.ServerResponse{
109728			Header:         res.Header,
109729			HTTPStatusCode: res.StatusCode,
109730		},
109731	}
109732	target := &ret
109733	if err := gensupport.DecodeResponse(target, res); err != nil {
109734		return nil, err
109735	}
109736	return ret, nil
109737	// {
109738	//   "description": "Deletes the specified network.",
109739	//   "httpMethod": "DELETE",
109740	//   "id": "compute.networks.delete",
109741	//   "parameterOrder": [
109742	//     "project",
109743	//     "network"
109744	//   ],
109745	//   "parameters": {
109746	//     "network": {
109747	//       "description": "Name of the network to delete.",
109748	//       "location": "path",
109749	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109750	//       "required": true,
109751	//       "type": "string"
109752	//     },
109753	//     "project": {
109754	//       "description": "Project ID for this request.",
109755	//       "location": "path",
109756	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109757	//       "required": true,
109758	//       "type": "string"
109759	//     },
109760	//     "requestId": {
109761	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109762	//       "location": "query",
109763	//       "type": "string"
109764	//     }
109765	//   },
109766	//   "path": "projects/{project}/global/networks/{network}",
109767	//   "response": {
109768	//     "$ref": "Operation"
109769	//   },
109770	//   "scopes": [
109771	//     "https://www.googleapis.com/auth/cloud-platform",
109772	//     "https://www.googleapis.com/auth/compute"
109773	//   ]
109774	// }
109775
109776}
109777
109778// method id "compute.networks.get":
109779
109780type NetworksGetCall struct {
109781	s            *Service
109782	project      string
109783	network      string
109784	urlParams_   gensupport.URLParams
109785	ifNoneMatch_ string
109786	ctx_         context.Context
109787	header_      http.Header
109788}
109789
109790// Get: Returns the specified network. Gets a list of available networks
109791// by making a list() request.
109792//
109793// - network: Name of the network to return.
109794// - project: Project ID for this request.
109795// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
109796func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
109797	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109798	c.project = project
109799	c.network = network
109800	return c
109801}
109802
109803// Fields allows partial responses to be retrieved. See
109804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109805// for more information.
109806func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
109807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109808	return c
109809}
109810
109811// IfNoneMatch sets the optional parameter which makes the operation
109812// fail if the object's ETag matches the given value. This is useful for
109813// getting updates only after the object has changed since the last
109814// request. Use googleapi.IsNotModified to check whether the response
109815// error from Do is the result of In-None-Match.
109816func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
109817	c.ifNoneMatch_ = entityTag
109818	return c
109819}
109820
109821// Context sets the context to be used in this call's Do method. Any
109822// pending HTTP request will be aborted if the provided context is
109823// canceled.
109824func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
109825	c.ctx_ = ctx
109826	return c
109827}
109828
109829// Header returns an http.Header that can be modified by the caller to
109830// add HTTP headers to the request.
109831func (c *NetworksGetCall) Header() http.Header {
109832	if c.header_ == nil {
109833		c.header_ = make(http.Header)
109834	}
109835	return c.header_
109836}
109837
109838func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
109839	reqHeaders := make(http.Header)
109840	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109841	for k, v := range c.header_ {
109842		reqHeaders[k] = v
109843	}
109844	reqHeaders.Set("User-Agent", c.s.userAgent())
109845	if c.ifNoneMatch_ != "" {
109846		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109847	}
109848	var body io.Reader = nil
109849	c.urlParams_.Set("alt", alt)
109850	c.urlParams_.Set("prettyPrint", "false")
109851	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
109852	urls += "?" + c.urlParams_.Encode()
109853	req, err := http.NewRequest("GET", urls, body)
109854	if err != nil {
109855		return nil, err
109856	}
109857	req.Header = reqHeaders
109858	googleapi.Expand(req.URL, map[string]string{
109859		"project": c.project,
109860		"network": c.network,
109861	})
109862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109863}
109864
109865// Do executes the "compute.networks.get" call.
109866// Exactly one of *Network or error will be non-nil. Any non-2xx status
109867// code is an error. Response headers are in either
109868// *Network.ServerResponse.Header or (if a response was returned at all)
109869// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
109870// check whether the returned error was because http.StatusNotModified
109871// was returned.
109872func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
109873	gensupport.SetOptions(c.urlParams_, opts...)
109874	res, err := c.doRequest("json")
109875	if res != nil && res.StatusCode == http.StatusNotModified {
109876		if res.Body != nil {
109877			res.Body.Close()
109878		}
109879		return nil, &googleapi.Error{
109880			Code:   res.StatusCode,
109881			Header: res.Header,
109882		}
109883	}
109884	if err != nil {
109885		return nil, err
109886	}
109887	defer googleapi.CloseBody(res)
109888	if err := googleapi.CheckResponse(res); err != nil {
109889		return nil, err
109890	}
109891	ret := &Network{
109892		ServerResponse: googleapi.ServerResponse{
109893			Header:         res.Header,
109894			HTTPStatusCode: res.StatusCode,
109895		},
109896	}
109897	target := &ret
109898	if err := gensupport.DecodeResponse(target, res); err != nil {
109899		return nil, err
109900	}
109901	return ret, nil
109902	// {
109903	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
109904	//   "httpMethod": "GET",
109905	//   "id": "compute.networks.get",
109906	//   "parameterOrder": [
109907	//     "project",
109908	//     "network"
109909	//   ],
109910	//   "parameters": {
109911	//     "network": {
109912	//       "description": "Name of the network to return.",
109913	//       "location": "path",
109914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109915	//       "required": true,
109916	//       "type": "string"
109917	//     },
109918	//     "project": {
109919	//       "description": "Project ID for this request.",
109920	//       "location": "path",
109921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109922	//       "required": true,
109923	//       "type": "string"
109924	//     }
109925	//   },
109926	//   "path": "projects/{project}/global/networks/{network}",
109927	//   "response": {
109928	//     "$ref": "Network"
109929	//   },
109930	//   "scopes": [
109931	//     "https://www.googleapis.com/auth/cloud-platform",
109932	//     "https://www.googleapis.com/auth/compute",
109933	//     "https://www.googleapis.com/auth/compute.readonly"
109934	//   ]
109935	// }
109936
109937}
109938
109939// method id "compute.networks.getEffectiveFirewalls":
109940
109941type NetworksGetEffectiveFirewallsCall struct {
109942	s            *Service
109943	project      string
109944	network      string
109945	urlParams_   gensupport.URLParams
109946	ifNoneMatch_ string
109947	ctx_         context.Context
109948	header_      http.Header
109949}
109950
109951// GetEffectiveFirewalls: Returns the effective firewalls on a given
109952// network.
109953//
109954// - network: Name of the network for this request.
109955// - project: Project ID for this request.
109956func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
109957	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109958	c.project = project
109959	c.network = network
109960	return c
109961}
109962
109963// Fields allows partial responses to be retrieved. See
109964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109965// for more information.
109966func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
109967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109968	return c
109969}
109970
109971// IfNoneMatch sets the optional parameter which makes the operation
109972// fail if the object's ETag matches the given value. This is useful for
109973// getting updates only after the object has changed since the last
109974// request. Use googleapi.IsNotModified to check whether the response
109975// error from Do is the result of In-None-Match.
109976func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
109977	c.ifNoneMatch_ = entityTag
109978	return c
109979}
109980
109981// Context sets the context to be used in this call's Do method. Any
109982// pending HTTP request will be aborted if the provided context is
109983// canceled.
109984func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
109985	c.ctx_ = ctx
109986	return c
109987}
109988
109989// Header returns an http.Header that can be modified by the caller to
109990// add HTTP headers to the request.
109991func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
109992	if c.header_ == nil {
109993		c.header_ = make(http.Header)
109994	}
109995	return c.header_
109996}
109997
109998func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
109999	reqHeaders := make(http.Header)
110000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110001	for k, v := range c.header_ {
110002		reqHeaders[k] = v
110003	}
110004	reqHeaders.Set("User-Agent", c.s.userAgent())
110005	if c.ifNoneMatch_ != "" {
110006		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110007	}
110008	var body io.Reader = nil
110009	c.urlParams_.Set("alt", alt)
110010	c.urlParams_.Set("prettyPrint", "false")
110011	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/getEffectiveFirewalls")
110012	urls += "?" + c.urlParams_.Encode()
110013	req, err := http.NewRequest("GET", urls, body)
110014	if err != nil {
110015		return nil, err
110016	}
110017	req.Header = reqHeaders
110018	googleapi.Expand(req.URL, map[string]string{
110019		"project": c.project,
110020		"network": c.network,
110021	})
110022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110023}
110024
110025// Do executes the "compute.networks.getEffectiveFirewalls" call.
110026// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
110027// be non-nil. Any non-2xx status code is an error. Response headers are
110028// in either
110029// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
110030// response was returned at all) in error.(*googleapi.Error).Header. Use
110031// googleapi.IsNotModified to check whether the returned error was
110032// because http.StatusNotModified was returned.
110033func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
110034	gensupport.SetOptions(c.urlParams_, opts...)
110035	res, err := c.doRequest("json")
110036	if res != nil && res.StatusCode == http.StatusNotModified {
110037		if res.Body != nil {
110038			res.Body.Close()
110039		}
110040		return nil, &googleapi.Error{
110041			Code:   res.StatusCode,
110042			Header: res.Header,
110043		}
110044	}
110045	if err != nil {
110046		return nil, err
110047	}
110048	defer googleapi.CloseBody(res)
110049	if err := googleapi.CheckResponse(res); err != nil {
110050		return nil, err
110051	}
110052	ret := &NetworksGetEffectiveFirewallsResponse{
110053		ServerResponse: googleapi.ServerResponse{
110054			Header:         res.Header,
110055			HTTPStatusCode: res.StatusCode,
110056		},
110057	}
110058	target := &ret
110059	if err := gensupport.DecodeResponse(target, res); err != nil {
110060		return nil, err
110061	}
110062	return ret, nil
110063	// {
110064	//   "description": "Returns the effective firewalls on a given network.",
110065	//   "httpMethod": "GET",
110066	//   "id": "compute.networks.getEffectiveFirewalls",
110067	//   "parameterOrder": [
110068	//     "project",
110069	//     "network"
110070	//   ],
110071	//   "parameters": {
110072	//     "network": {
110073	//       "description": "Name of the network for this request.",
110074	//       "location": "path",
110075	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110076	//       "required": true,
110077	//       "type": "string"
110078	//     },
110079	//     "project": {
110080	//       "description": "Project ID for this request.",
110081	//       "location": "path",
110082	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110083	//       "required": true,
110084	//       "type": "string"
110085	//     }
110086	//   },
110087	//   "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls",
110088	//   "response": {
110089	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
110090	//   },
110091	//   "scopes": [
110092	//     "https://www.googleapis.com/auth/cloud-platform",
110093	//     "https://www.googleapis.com/auth/compute",
110094	//     "https://www.googleapis.com/auth/compute.readonly"
110095	//   ]
110096	// }
110097
110098}
110099
110100// method id "compute.networks.insert":
110101
110102type NetworksInsertCall struct {
110103	s          *Service
110104	project    string
110105	network    *Network
110106	urlParams_ gensupport.URLParams
110107	ctx_       context.Context
110108	header_    http.Header
110109}
110110
110111// Insert: Creates a network in the specified project using the data
110112// included in the request.
110113//
110114// - project: Project ID for this request.
110115// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
110116func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
110117	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110118	c.project = project
110119	c.network = network
110120	return c
110121}
110122
110123// RequestId sets the optional parameter "requestId": An optional
110124// request ID to identify requests. Specify a unique request ID so that
110125// if you must retry your request, the server will know to ignore the
110126// request if it has already been completed.
110127//
110128// For example, consider a situation where you make an initial request
110129// and the request times out. If you make the request again with the
110130// same request ID, the server can check if original operation with the
110131// same request ID was received, and if so, will ignore the second
110132// request. This prevents clients from accidentally creating duplicate
110133// commitments.
110134//
110135// The request ID must be a valid UUID with the exception that zero UUID
110136// is not supported (00000000-0000-0000-0000-000000000000).
110137func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
110138	c.urlParams_.Set("requestId", requestId)
110139	return c
110140}
110141
110142// Fields allows partial responses to be retrieved. See
110143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110144// for more information.
110145func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
110146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110147	return c
110148}
110149
110150// Context sets the context to be used in this call's Do method. Any
110151// pending HTTP request will be aborted if the provided context is
110152// canceled.
110153func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
110154	c.ctx_ = ctx
110155	return c
110156}
110157
110158// Header returns an http.Header that can be modified by the caller to
110159// add HTTP headers to the request.
110160func (c *NetworksInsertCall) Header() http.Header {
110161	if c.header_ == nil {
110162		c.header_ = make(http.Header)
110163	}
110164	return c.header_
110165}
110166
110167func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
110168	reqHeaders := make(http.Header)
110169	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110170	for k, v := range c.header_ {
110171		reqHeaders[k] = v
110172	}
110173	reqHeaders.Set("User-Agent", c.s.userAgent())
110174	var body io.Reader = nil
110175	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
110176	if err != nil {
110177		return nil, err
110178	}
110179	reqHeaders.Set("Content-Type", "application/json")
110180	c.urlParams_.Set("alt", alt)
110181	c.urlParams_.Set("prettyPrint", "false")
110182	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
110183	urls += "?" + c.urlParams_.Encode()
110184	req, err := http.NewRequest("POST", urls, body)
110185	if err != nil {
110186		return nil, err
110187	}
110188	req.Header = reqHeaders
110189	googleapi.Expand(req.URL, map[string]string{
110190		"project": c.project,
110191	})
110192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110193}
110194
110195// Do executes the "compute.networks.insert" call.
110196// Exactly one of *Operation or error will be non-nil. Any non-2xx
110197// status code is an error. Response headers are in either
110198// *Operation.ServerResponse.Header or (if a response was returned at
110199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110200// to check whether the returned error was because
110201// http.StatusNotModified was returned.
110202func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110203	gensupport.SetOptions(c.urlParams_, opts...)
110204	res, err := c.doRequest("json")
110205	if res != nil && res.StatusCode == http.StatusNotModified {
110206		if res.Body != nil {
110207			res.Body.Close()
110208		}
110209		return nil, &googleapi.Error{
110210			Code:   res.StatusCode,
110211			Header: res.Header,
110212		}
110213	}
110214	if err != nil {
110215		return nil, err
110216	}
110217	defer googleapi.CloseBody(res)
110218	if err := googleapi.CheckResponse(res); err != nil {
110219		return nil, err
110220	}
110221	ret := &Operation{
110222		ServerResponse: googleapi.ServerResponse{
110223			Header:         res.Header,
110224			HTTPStatusCode: res.StatusCode,
110225		},
110226	}
110227	target := &ret
110228	if err := gensupport.DecodeResponse(target, res); err != nil {
110229		return nil, err
110230	}
110231	return ret, nil
110232	// {
110233	//   "description": "Creates a network in the specified project using the data included in the request.",
110234	//   "httpMethod": "POST",
110235	//   "id": "compute.networks.insert",
110236	//   "parameterOrder": [
110237	//     "project"
110238	//   ],
110239	//   "parameters": {
110240	//     "project": {
110241	//       "description": "Project ID for this request.",
110242	//       "location": "path",
110243	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110244	//       "required": true,
110245	//       "type": "string"
110246	//     },
110247	//     "requestId": {
110248	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110249	//       "location": "query",
110250	//       "type": "string"
110251	//     }
110252	//   },
110253	//   "path": "projects/{project}/global/networks",
110254	//   "request": {
110255	//     "$ref": "Network"
110256	//   },
110257	//   "response": {
110258	//     "$ref": "Operation"
110259	//   },
110260	//   "scopes": [
110261	//     "https://www.googleapis.com/auth/cloud-platform",
110262	//     "https://www.googleapis.com/auth/compute"
110263	//   ]
110264	// }
110265
110266}
110267
110268// method id "compute.networks.list":
110269
110270type NetworksListCall struct {
110271	s            *Service
110272	project      string
110273	urlParams_   gensupport.URLParams
110274	ifNoneMatch_ string
110275	ctx_         context.Context
110276	header_      http.Header
110277}
110278
110279// List: Retrieves the list of networks available to the specified
110280// project.
110281//
110282// - project: Project ID for this request.
110283// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
110284func (r *NetworksService) List(project string) *NetworksListCall {
110285	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110286	c.project = project
110287	return c
110288}
110289
110290// Filter sets the optional parameter "filter": A filter expression that
110291// filters resources listed in the response. The expression must specify
110292// the field name, a comparison operator, and the value that you want to
110293// use for filtering. The value must be a string, a number, or a
110294// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110295// `<`.
110296//
110297// For example, if you are filtering Compute Engine instances, you can
110298// exclude instances named `example-instance` by specifying `name !=
110299// example-instance`.
110300//
110301// You can also filter nested fields. For example, you could specify
110302// `scheduling.automaticRestart = false` to include instances only if
110303// they are not scheduled for automatic restarts. You can use filtering
110304// on nested fields to filter based on resource labels.
110305//
110306// To filter on multiple expressions, provide each separate expression
110307// within parentheses. For example: ``` (scheduling.automaticRestart =
110308// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
110309// is an `AND` expression. However, you can include `AND` and `OR`
110310// expressions explicitly. For example: ``` (cpuPlatform = "Intel
110311// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
110312// (scheduling.automaticRestart = true) ```
110313func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
110314	c.urlParams_.Set("filter", filter)
110315	return c
110316}
110317
110318// MaxResults sets the optional parameter "maxResults": The maximum
110319// number of results per page that should be returned. If the number of
110320// available results is larger than `maxResults`, Compute Engine returns
110321// a `nextPageToken` that can be used to get the next page of results in
110322// subsequent list requests. Acceptable values are `0` to `500`,
110323// inclusive. (Default: `500`)
110324func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
110325	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110326	return c
110327}
110328
110329// OrderBy sets the optional parameter "orderBy": Sorts list results by
110330// a certain order. By default, results are returned in alphanumerical
110331// order based on the resource name.
110332//
110333// You can also sort results in descending order based on the creation
110334// timestamp using `orderBy="creationTimestamp desc". This sorts
110335// results based on the `creationTimestamp` field in reverse
110336// chronological order (newest result first). Use this to sort resources
110337// like operations so that the newest operation is returned
110338// first.
110339//
110340// Currently, only sorting by `name` or `creationTimestamp desc` is
110341// supported.
110342func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
110343	c.urlParams_.Set("orderBy", orderBy)
110344	return c
110345}
110346
110347// PageToken sets the optional parameter "pageToken": Specifies a page
110348// token to use. Set `pageToken` to the `nextPageToken` returned by a
110349// previous list request to get the next page of results.
110350func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
110351	c.urlParams_.Set("pageToken", pageToken)
110352	return c
110353}
110354
110355// ReturnPartialSuccess sets the optional parameter
110356// "returnPartialSuccess": Opt-in for partial success behavior which
110357// provides partial results in case of failure. The default value is
110358// false.
110359func (c *NetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListCall {
110360	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110361	return c
110362}
110363
110364// Fields allows partial responses to be retrieved. See
110365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110366// for more information.
110367func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
110368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110369	return c
110370}
110371
110372// IfNoneMatch sets the optional parameter which makes the operation
110373// fail if the object's ETag matches the given value. This is useful for
110374// getting updates only after the object has changed since the last
110375// request. Use googleapi.IsNotModified to check whether the response
110376// error from Do is the result of In-None-Match.
110377func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
110378	c.ifNoneMatch_ = entityTag
110379	return c
110380}
110381
110382// Context sets the context to be used in this call's Do method. Any
110383// pending HTTP request will be aborted if the provided context is
110384// canceled.
110385func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
110386	c.ctx_ = ctx
110387	return c
110388}
110389
110390// Header returns an http.Header that can be modified by the caller to
110391// add HTTP headers to the request.
110392func (c *NetworksListCall) Header() http.Header {
110393	if c.header_ == nil {
110394		c.header_ = make(http.Header)
110395	}
110396	return c.header_
110397}
110398
110399func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
110400	reqHeaders := make(http.Header)
110401	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110402	for k, v := range c.header_ {
110403		reqHeaders[k] = v
110404	}
110405	reqHeaders.Set("User-Agent", c.s.userAgent())
110406	if c.ifNoneMatch_ != "" {
110407		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110408	}
110409	var body io.Reader = nil
110410	c.urlParams_.Set("alt", alt)
110411	c.urlParams_.Set("prettyPrint", "false")
110412	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
110413	urls += "?" + c.urlParams_.Encode()
110414	req, err := http.NewRequest("GET", urls, body)
110415	if err != nil {
110416		return nil, err
110417	}
110418	req.Header = reqHeaders
110419	googleapi.Expand(req.URL, map[string]string{
110420		"project": c.project,
110421	})
110422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110423}
110424
110425// Do executes the "compute.networks.list" call.
110426// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
110427// status code is an error. Response headers are in either
110428// *NetworkList.ServerResponse.Header or (if a response was returned at
110429// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110430// to check whether the returned error was because
110431// http.StatusNotModified was returned.
110432func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, 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 := &NetworkList{
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": "Retrieves the list of networks available to the specified project.",
110464	//   "httpMethod": "GET",
110465	//   "id": "compute.networks.list",
110466	//   "parameterOrder": [
110467	//     "project"
110468	//   ],
110469	//   "parameters": {
110470	//     "filter": {
110471	//       "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) ```",
110472	//       "location": "query",
110473	//       "type": "string"
110474	//     },
110475	//     "maxResults": {
110476	//       "default": "500",
110477	//       "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`)",
110478	//       "format": "uint32",
110479	//       "location": "query",
110480	//       "minimum": "0",
110481	//       "type": "integer"
110482	//     },
110483	//     "orderBy": {
110484	//       "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.",
110485	//       "location": "query",
110486	//       "type": "string"
110487	//     },
110488	//     "pageToken": {
110489	//       "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.",
110490	//       "location": "query",
110491	//       "type": "string"
110492	//     },
110493	//     "project": {
110494	//       "description": "Project ID for this request.",
110495	//       "location": "path",
110496	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110497	//       "required": true,
110498	//       "type": "string"
110499	//     },
110500	//     "returnPartialSuccess": {
110501	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
110502	//       "location": "query",
110503	//       "type": "boolean"
110504	//     }
110505	//   },
110506	//   "path": "projects/{project}/global/networks",
110507	//   "response": {
110508	//     "$ref": "NetworkList"
110509	//   },
110510	//   "scopes": [
110511	//     "https://www.googleapis.com/auth/cloud-platform",
110512	//     "https://www.googleapis.com/auth/compute",
110513	//     "https://www.googleapis.com/auth/compute.readonly"
110514	//   ]
110515	// }
110516
110517}
110518
110519// Pages invokes f for each page of results.
110520// A non-nil error returned from f will halt the iteration.
110521// The provided context supersedes any context provided to the Context method.
110522func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
110523	c.ctx_ = ctx
110524	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110525	for {
110526		x, err := c.Do()
110527		if err != nil {
110528			return err
110529		}
110530		if err := f(x); err != nil {
110531			return err
110532		}
110533		if x.NextPageToken == "" {
110534			return nil
110535		}
110536		c.PageToken(x.NextPageToken)
110537	}
110538}
110539
110540// method id "compute.networks.listPeeringRoutes":
110541
110542type NetworksListPeeringRoutesCall struct {
110543	s            *Service
110544	project      string
110545	network      string
110546	urlParams_   gensupport.URLParams
110547	ifNoneMatch_ string
110548	ctx_         context.Context
110549	header_      http.Header
110550}
110551
110552// ListPeeringRoutes: Lists the peering routes exchanged over peering
110553// connection.
110554//
110555// - network: Name of the network for this request.
110556// - project: Project ID for this request.
110557func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
110558	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110559	c.project = project
110560	c.network = network
110561	return c
110562}
110563
110564// Direction sets the optional parameter "direction": The direction of
110565// the exchanged routes.
110566//
110567// Possible values:
110568//   "INCOMING"
110569//   "OUTGOING"
110570func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
110571	c.urlParams_.Set("direction", direction)
110572	return c
110573}
110574
110575// Filter sets the optional parameter "filter": A filter expression that
110576// filters resources listed in the response. The expression must specify
110577// the field name, a comparison operator, and the value that you want to
110578// use for filtering. The value must be a string, a number, or a
110579// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110580// `<`.
110581//
110582// For example, if you are filtering Compute Engine instances, you can
110583// exclude instances named `example-instance` by specifying `name !=
110584// example-instance`.
110585//
110586// You can also filter nested fields. For example, you could specify
110587// `scheduling.automaticRestart = false` to include instances only if
110588// they are not scheduled for automatic restarts. You can use filtering
110589// on nested fields to filter based on resource labels.
110590//
110591// To filter on multiple expressions, provide each separate expression
110592// within parentheses. For example: ``` (scheduling.automaticRestart =
110593// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
110594// is an `AND` expression. However, you can include `AND` and `OR`
110595// expressions explicitly. For example: ``` (cpuPlatform = "Intel
110596// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
110597// (scheduling.automaticRestart = true) ```
110598func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
110599	c.urlParams_.Set("filter", filter)
110600	return c
110601}
110602
110603// MaxResults sets the optional parameter "maxResults": The maximum
110604// number of results per page that should be returned. If the number of
110605// available results is larger than `maxResults`, Compute Engine returns
110606// a `nextPageToken` that can be used to get the next page of results in
110607// subsequent list requests. Acceptable values are `0` to `500`,
110608// inclusive. (Default: `500`)
110609func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
110610	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110611	return c
110612}
110613
110614// OrderBy sets the optional parameter "orderBy": Sorts list results by
110615// a certain order. By default, results are returned in alphanumerical
110616// order based on the resource name.
110617//
110618// You can also sort results in descending order based on the creation
110619// timestamp using `orderBy="creationTimestamp desc". This sorts
110620// results based on the `creationTimestamp` field in reverse
110621// chronological order (newest result first). Use this to sort resources
110622// like operations so that the newest operation is returned
110623// first.
110624//
110625// Currently, only sorting by `name` or `creationTimestamp desc` is
110626// supported.
110627func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
110628	c.urlParams_.Set("orderBy", orderBy)
110629	return c
110630}
110631
110632// PageToken sets the optional parameter "pageToken": Specifies a page
110633// token to use. Set `pageToken` to the `nextPageToken` returned by a
110634// previous list request to get the next page of results.
110635func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
110636	c.urlParams_.Set("pageToken", pageToken)
110637	return c
110638}
110639
110640// PeeringName sets the optional parameter "peeringName": The response
110641// will show routes exchanged over the given peering connection.
110642func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
110643	c.urlParams_.Set("peeringName", peeringName)
110644	return c
110645}
110646
110647// Region sets the optional parameter "region": The region of the
110648// request. The response will include all subnet routes, static routes
110649// and dynamic routes in the region.
110650func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
110651	c.urlParams_.Set("region", region)
110652	return c
110653}
110654
110655// ReturnPartialSuccess sets the optional parameter
110656// "returnPartialSuccess": Opt-in for partial success behavior which
110657// provides partial results in case of failure. The default value is
110658// false.
110659func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListPeeringRoutesCall {
110660	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110661	return c
110662}
110663
110664// Fields allows partial responses to be retrieved. See
110665// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110666// for more information.
110667func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
110668	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110669	return c
110670}
110671
110672// IfNoneMatch sets the optional parameter which makes the operation
110673// fail if the object's ETag matches the given value. This is useful for
110674// getting updates only after the object has changed since the last
110675// request. Use googleapi.IsNotModified to check whether the response
110676// error from Do is the result of In-None-Match.
110677func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
110678	c.ifNoneMatch_ = entityTag
110679	return c
110680}
110681
110682// Context sets the context to be used in this call's Do method. Any
110683// pending HTTP request will be aborted if the provided context is
110684// canceled.
110685func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
110686	c.ctx_ = ctx
110687	return c
110688}
110689
110690// Header returns an http.Header that can be modified by the caller to
110691// add HTTP headers to the request.
110692func (c *NetworksListPeeringRoutesCall) Header() http.Header {
110693	if c.header_ == nil {
110694		c.header_ = make(http.Header)
110695	}
110696	return c.header_
110697}
110698
110699func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
110700	reqHeaders := make(http.Header)
110701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110702	for k, v := range c.header_ {
110703		reqHeaders[k] = v
110704	}
110705	reqHeaders.Set("User-Agent", c.s.userAgent())
110706	if c.ifNoneMatch_ != "" {
110707		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110708	}
110709	var body io.Reader = nil
110710	c.urlParams_.Set("alt", alt)
110711	c.urlParams_.Set("prettyPrint", "false")
110712	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/listPeeringRoutes")
110713	urls += "?" + c.urlParams_.Encode()
110714	req, err := http.NewRequest("GET", urls, body)
110715	if err != nil {
110716		return nil, err
110717	}
110718	req.Header = reqHeaders
110719	googleapi.Expand(req.URL, map[string]string{
110720		"project": c.project,
110721		"network": c.network,
110722	})
110723	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110724}
110725
110726// Do executes the "compute.networks.listPeeringRoutes" call.
110727// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
110728// Any non-2xx status code is an error. Response headers are in either
110729// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
110730// was returned at all) in error.(*googleapi.Error).Header. Use
110731// googleapi.IsNotModified to check whether the returned error was
110732// because http.StatusNotModified was returned.
110733func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
110734	gensupport.SetOptions(c.urlParams_, opts...)
110735	res, err := c.doRequest("json")
110736	if res != nil && res.StatusCode == http.StatusNotModified {
110737		if res.Body != nil {
110738			res.Body.Close()
110739		}
110740		return nil, &googleapi.Error{
110741			Code:   res.StatusCode,
110742			Header: res.Header,
110743		}
110744	}
110745	if err != nil {
110746		return nil, err
110747	}
110748	defer googleapi.CloseBody(res)
110749	if err := googleapi.CheckResponse(res); err != nil {
110750		return nil, err
110751	}
110752	ret := &ExchangedPeeringRoutesList{
110753		ServerResponse: googleapi.ServerResponse{
110754			Header:         res.Header,
110755			HTTPStatusCode: res.StatusCode,
110756		},
110757	}
110758	target := &ret
110759	if err := gensupport.DecodeResponse(target, res); err != nil {
110760		return nil, err
110761	}
110762	return ret, nil
110763	// {
110764	//   "description": "Lists the peering routes exchanged over peering connection.",
110765	//   "httpMethod": "GET",
110766	//   "id": "compute.networks.listPeeringRoutes",
110767	//   "parameterOrder": [
110768	//     "project",
110769	//     "network"
110770	//   ],
110771	//   "parameters": {
110772	//     "direction": {
110773	//       "description": "The direction of the exchanged routes.",
110774	//       "enum": [
110775	//         "INCOMING",
110776	//         "OUTGOING"
110777	//       ],
110778	//       "enumDescriptions": [
110779	//         "",
110780	//         ""
110781	//       ],
110782	//       "location": "query",
110783	//       "type": "string"
110784	//     },
110785	//     "filter": {
110786	//       "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) ```",
110787	//       "location": "query",
110788	//       "type": "string"
110789	//     },
110790	//     "maxResults": {
110791	//       "default": "500",
110792	//       "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`)",
110793	//       "format": "uint32",
110794	//       "location": "query",
110795	//       "minimum": "0",
110796	//       "type": "integer"
110797	//     },
110798	//     "network": {
110799	//       "description": "Name of the network for this request.",
110800	//       "location": "path",
110801	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110802	//       "required": true,
110803	//       "type": "string"
110804	//     },
110805	//     "orderBy": {
110806	//       "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.",
110807	//       "location": "query",
110808	//       "type": "string"
110809	//     },
110810	//     "pageToken": {
110811	//       "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.",
110812	//       "location": "query",
110813	//       "type": "string"
110814	//     },
110815	//     "peeringName": {
110816	//       "description": "The response will show routes exchanged over the given peering connection.",
110817	//       "location": "query",
110818	//       "type": "string"
110819	//     },
110820	//     "project": {
110821	//       "description": "Project ID for this request.",
110822	//       "location": "path",
110823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110824	//       "required": true,
110825	//       "type": "string"
110826	//     },
110827	//     "region": {
110828	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
110829	//       "location": "query",
110830	//       "type": "string"
110831	//     },
110832	//     "returnPartialSuccess": {
110833	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
110834	//       "location": "query",
110835	//       "type": "boolean"
110836	//     }
110837	//   },
110838	//   "path": "projects/{project}/global/networks/{network}/listPeeringRoutes",
110839	//   "response": {
110840	//     "$ref": "ExchangedPeeringRoutesList"
110841	//   },
110842	//   "scopes": [
110843	//     "https://www.googleapis.com/auth/cloud-platform",
110844	//     "https://www.googleapis.com/auth/compute",
110845	//     "https://www.googleapis.com/auth/compute.readonly"
110846	//   ]
110847	// }
110848
110849}
110850
110851// Pages invokes f for each page of results.
110852// A non-nil error returned from f will halt the iteration.
110853// The provided context supersedes any context provided to the Context method.
110854func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
110855	c.ctx_ = ctx
110856	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110857	for {
110858		x, err := c.Do()
110859		if err != nil {
110860			return err
110861		}
110862		if err := f(x); err != nil {
110863			return err
110864		}
110865		if x.NextPageToken == "" {
110866			return nil
110867		}
110868		c.PageToken(x.NextPageToken)
110869	}
110870}
110871
110872// method id "compute.networks.patch":
110873
110874type NetworksPatchCall struct {
110875	s          *Service
110876	project    string
110877	network    string
110878	network2   *Network
110879	urlParams_ gensupport.URLParams
110880	ctx_       context.Context
110881	header_    http.Header
110882}
110883
110884// Patch: Patches the specified network with the data included in the
110885// request. Only the following fields can be modified:
110886// routingConfig.routingMode.
110887//
110888// - network: Name of the network to update.
110889// - project: Project ID for this request.
110890func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
110891	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110892	c.project = project
110893	c.network = network
110894	c.network2 = network2
110895	return c
110896}
110897
110898// RequestId sets the optional parameter "requestId": An optional
110899// request ID to identify requests. Specify a unique request ID so that
110900// if you must retry your request, the server will know to ignore the
110901// request if it has already been completed.
110902//
110903// For example, consider a situation where you make an initial request
110904// and the request times out. If you make the request again with the
110905// same request ID, the server can check if original operation with the
110906// same request ID was received, and if so, will ignore the second
110907// request. This prevents clients from accidentally creating duplicate
110908// commitments.
110909//
110910// The request ID must be a valid UUID with the exception that zero UUID
110911// is not supported (00000000-0000-0000-0000-000000000000).
110912func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
110913	c.urlParams_.Set("requestId", requestId)
110914	return c
110915}
110916
110917// Fields allows partial responses to be retrieved. See
110918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110919// for more information.
110920func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
110921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110922	return c
110923}
110924
110925// Context sets the context to be used in this call's Do method. Any
110926// pending HTTP request will be aborted if the provided context is
110927// canceled.
110928func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
110929	c.ctx_ = ctx
110930	return c
110931}
110932
110933// Header returns an http.Header that can be modified by the caller to
110934// add HTTP headers to the request.
110935func (c *NetworksPatchCall) Header() http.Header {
110936	if c.header_ == nil {
110937		c.header_ = make(http.Header)
110938	}
110939	return c.header_
110940}
110941
110942func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
110943	reqHeaders := make(http.Header)
110944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110945	for k, v := range c.header_ {
110946		reqHeaders[k] = v
110947	}
110948	reqHeaders.Set("User-Agent", c.s.userAgent())
110949	var body io.Reader = nil
110950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
110951	if err != nil {
110952		return nil, err
110953	}
110954	reqHeaders.Set("Content-Type", "application/json")
110955	c.urlParams_.Set("alt", alt)
110956	c.urlParams_.Set("prettyPrint", "false")
110957	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
110958	urls += "?" + c.urlParams_.Encode()
110959	req, err := http.NewRequest("PATCH", urls, body)
110960	if err != nil {
110961		return nil, err
110962	}
110963	req.Header = reqHeaders
110964	googleapi.Expand(req.URL, map[string]string{
110965		"project": c.project,
110966		"network": c.network,
110967	})
110968	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110969}
110970
110971// Do executes the "compute.networks.patch" call.
110972// Exactly one of *Operation or error will be non-nil. Any non-2xx
110973// status code is an error. Response headers are in either
110974// *Operation.ServerResponse.Header or (if a response was returned at
110975// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110976// to check whether the returned error was because
110977// http.StatusNotModified was returned.
110978func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110979	gensupport.SetOptions(c.urlParams_, opts...)
110980	res, err := c.doRequest("json")
110981	if res != nil && res.StatusCode == http.StatusNotModified {
110982		if res.Body != nil {
110983			res.Body.Close()
110984		}
110985		return nil, &googleapi.Error{
110986			Code:   res.StatusCode,
110987			Header: res.Header,
110988		}
110989	}
110990	if err != nil {
110991		return nil, err
110992	}
110993	defer googleapi.CloseBody(res)
110994	if err := googleapi.CheckResponse(res); err != nil {
110995		return nil, err
110996	}
110997	ret := &Operation{
110998		ServerResponse: googleapi.ServerResponse{
110999			Header:         res.Header,
111000			HTTPStatusCode: res.StatusCode,
111001		},
111002	}
111003	target := &ret
111004	if err := gensupport.DecodeResponse(target, res); err != nil {
111005		return nil, err
111006	}
111007	return ret, nil
111008	// {
111009	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
111010	//   "httpMethod": "PATCH",
111011	//   "id": "compute.networks.patch",
111012	//   "parameterOrder": [
111013	//     "project",
111014	//     "network"
111015	//   ],
111016	//   "parameters": {
111017	//     "network": {
111018	//       "description": "Name of the network to update.",
111019	//       "location": "path",
111020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111021	//       "required": true,
111022	//       "type": "string"
111023	//     },
111024	//     "project": {
111025	//       "description": "Project ID for this request.",
111026	//       "location": "path",
111027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111028	//       "required": true,
111029	//       "type": "string"
111030	//     },
111031	//     "requestId": {
111032	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111033	//       "location": "query",
111034	//       "type": "string"
111035	//     }
111036	//   },
111037	//   "path": "projects/{project}/global/networks/{network}",
111038	//   "request": {
111039	//     "$ref": "Network"
111040	//   },
111041	//   "response": {
111042	//     "$ref": "Operation"
111043	//   },
111044	//   "scopes": [
111045	//     "https://www.googleapis.com/auth/cloud-platform",
111046	//     "https://www.googleapis.com/auth/compute"
111047	//   ]
111048	// }
111049
111050}
111051
111052// method id "compute.networks.removePeering":
111053
111054type NetworksRemovePeeringCall struct {
111055	s                            *Service
111056	project                      string
111057	network                      string
111058	networksremovepeeringrequest *NetworksRemovePeeringRequest
111059	urlParams_                   gensupport.URLParams
111060	ctx_                         context.Context
111061	header_                      http.Header
111062}
111063
111064// RemovePeering: Removes a peering from the specified network.
111065//
111066// - network: Name of the network resource to remove peering from.
111067// - project: Project ID for this request.
111068func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
111069	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111070	c.project = project
111071	c.network = network
111072	c.networksremovepeeringrequest = networksremovepeeringrequest
111073	return c
111074}
111075
111076// RequestId sets the optional parameter "requestId": An optional
111077// request ID to identify requests. Specify a unique request ID so that
111078// if you must retry your request, the server will know to ignore the
111079// request if it has already been completed.
111080//
111081// For example, consider a situation where you make an initial request
111082// and the request times out. If you make the request again with the
111083// same request ID, the server can check if original operation with the
111084// same request ID was received, and if so, will ignore the second
111085// request. This prevents clients from accidentally creating duplicate
111086// commitments.
111087//
111088// The request ID must be a valid UUID with the exception that zero UUID
111089// is not supported (00000000-0000-0000-0000-000000000000).
111090func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
111091	c.urlParams_.Set("requestId", requestId)
111092	return c
111093}
111094
111095// Fields allows partial responses to be retrieved. See
111096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111097// for more information.
111098func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
111099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111100	return c
111101}
111102
111103// Context sets the context to be used in this call's Do method. Any
111104// pending HTTP request will be aborted if the provided context is
111105// canceled.
111106func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
111107	c.ctx_ = ctx
111108	return c
111109}
111110
111111// Header returns an http.Header that can be modified by the caller to
111112// add HTTP headers to the request.
111113func (c *NetworksRemovePeeringCall) Header() http.Header {
111114	if c.header_ == nil {
111115		c.header_ = make(http.Header)
111116	}
111117	return c.header_
111118}
111119
111120func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
111121	reqHeaders := make(http.Header)
111122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111123	for k, v := range c.header_ {
111124		reqHeaders[k] = v
111125	}
111126	reqHeaders.Set("User-Agent", c.s.userAgent())
111127	var body io.Reader = nil
111128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
111129	if err != nil {
111130		return nil, err
111131	}
111132	reqHeaders.Set("Content-Type", "application/json")
111133	c.urlParams_.Set("alt", alt)
111134	c.urlParams_.Set("prettyPrint", "false")
111135	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/removePeering")
111136	urls += "?" + c.urlParams_.Encode()
111137	req, err := http.NewRequest("POST", urls, body)
111138	if err != nil {
111139		return nil, err
111140	}
111141	req.Header = reqHeaders
111142	googleapi.Expand(req.URL, map[string]string{
111143		"project": c.project,
111144		"network": c.network,
111145	})
111146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111147}
111148
111149// Do executes the "compute.networks.removePeering" call.
111150// Exactly one of *Operation or error will be non-nil. Any non-2xx
111151// status code is an error. Response headers are in either
111152// *Operation.ServerResponse.Header or (if a response was returned at
111153// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111154// to check whether the returned error was because
111155// http.StatusNotModified was returned.
111156func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111157	gensupport.SetOptions(c.urlParams_, opts...)
111158	res, err := c.doRequest("json")
111159	if res != nil && res.StatusCode == http.StatusNotModified {
111160		if res.Body != nil {
111161			res.Body.Close()
111162		}
111163		return nil, &googleapi.Error{
111164			Code:   res.StatusCode,
111165			Header: res.Header,
111166		}
111167	}
111168	if err != nil {
111169		return nil, err
111170	}
111171	defer googleapi.CloseBody(res)
111172	if err := googleapi.CheckResponse(res); err != nil {
111173		return nil, err
111174	}
111175	ret := &Operation{
111176		ServerResponse: googleapi.ServerResponse{
111177			Header:         res.Header,
111178			HTTPStatusCode: res.StatusCode,
111179		},
111180	}
111181	target := &ret
111182	if err := gensupport.DecodeResponse(target, res); err != nil {
111183		return nil, err
111184	}
111185	return ret, nil
111186	// {
111187	//   "description": "Removes a peering from the specified network.",
111188	//   "httpMethod": "POST",
111189	//   "id": "compute.networks.removePeering",
111190	//   "parameterOrder": [
111191	//     "project",
111192	//     "network"
111193	//   ],
111194	//   "parameters": {
111195	//     "network": {
111196	//       "description": "Name of the network resource to remove peering from.",
111197	//       "location": "path",
111198	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111199	//       "required": true,
111200	//       "type": "string"
111201	//     },
111202	//     "project": {
111203	//       "description": "Project ID for this request.",
111204	//       "location": "path",
111205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111206	//       "required": true,
111207	//       "type": "string"
111208	//     },
111209	//     "requestId": {
111210	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111211	//       "location": "query",
111212	//       "type": "string"
111213	//     }
111214	//   },
111215	//   "path": "projects/{project}/global/networks/{network}/removePeering",
111216	//   "request": {
111217	//     "$ref": "NetworksRemovePeeringRequest"
111218	//   },
111219	//   "response": {
111220	//     "$ref": "Operation"
111221	//   },
111222	//   "scopes": [
111223	//     "https://www.googleapis.com/auth/cloud-platform",
111224	//     "https://www.googleapis.com/auth/compute"
111225	//   ]
111226	// }
111227
111228}
111229
111230// method id "compute.networks.switchToCustomMode":
111231
111232type NetworksSwitchToCustomModeCall struct {
111233	s          *Service
111234	project    string
111235	network    string
111236	urlParams_ gensupport.URLParams
111237	ctx_       context.Context
111238	header_    http.Header
111239}
111240
111241// SwitchToCustomMode: Switches the network mode from auto subnet mode
111242// to custom subnet mode.
111243//
111244// - network: Name of the network to be updated.
111245// - project: Project ID for this request.
111246func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
111247	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111248	c.project = project
111249	c.network = network
111250	return c
111251}
111252
111253// RequestId sets the optional parameter "requestId": An optional
111254// request ID to identify requests. Specify a unique request ID so that
111255// if you must retry your request, the server will know to ignore the
111256// request if it has already been completed.
111257//
111258// For example, consider a situation where you make an initial request
111259// and the request times out. If you make the request again with the
111260// same request ID, the server can check if original operation with the
111261// same request ID was received, and if so, will ignore the second
111262// request. This prevents clients from accidentally creating duplicate
111263// commitments.
111264//
111265// The request ID must be a valid UUID with the exception that zero UUID
111266// is not supported (00000000-0000-0000-0000-000000000000).
111267func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
111268	c.urlParams_.Set("requestId", requestId)
111269	return c
111270}
111271
111272// Fields allows partial responses to be retrieved. See
111273// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111274// for more information.
111275func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
111276	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111277	return c
111278}
111279
111280// Context sets the context to be used in this call's Do method. Any
111281// pending HTTP request will be aborted if the provided context is
111282// canceled.
111283func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
111284	c.ctx_ = ctx
111285	return c
111286}
111287
111288// Header returns an http.Header that can be modified by the caller to
111289// add HTTP headers to the request.
111290func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
111291	if c.header_ == nil {
111292		c.header_ = make(http.Header)
111293	}
111294	return c.header_
111295}
111296
111297func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
111298	reqHeaders := make(http.Header)
111299	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111300	for k, v := range c.header_ {
111301		reqHeaders[k] = v
111302	}
111303	reqHeaders.Set("User-Agent", c.s.userAgent())
111304	var body io.Reader = nil
111305	c.urlParams_.Set("alt", alt)
111306	c.urlParams_.Set("prettyPrint", "false")
111307	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/switchToCustomMode")
111308	urls += "?" + c.urlParams_.Encode()
111309	req, err := http.NewRequest("POST", urls, body)
111310	if err != nil {
111311		return nil, err
111312	}
111313	req.Header = reqHeaders
111314	googleapi.Expand(req.URL, map[string]string{
111315		"project": c.project,
111316		"network": c.network,
111317	})
111318	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111319}
111320
111321// Do executes the "compute.networks.switchToCustomMode" call.
111322// Exactly one of *Operation or error will be non-nil. Any non-2xx
111323// status code is an error. Response headers are in either
111324// *Operation.ServerResponse.Header or (if a response was returned at
111325// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111326// to check whether the returned error was because
111327// http.StatusNotModified was returned.
111328func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111329	gensupport.SetOptions(c.urlParams_, opts...)
111330	res, err := c.doRequest("json")
111331	if res != nil && res.StatusCode == http.StatusNotModified {
111332		if res.Body != nil {
111333			res.Body.Close()
111334		}
111335		return nil, &googleapi.Error{
111336			Code:   res.StatusCode,
111337			Header: res.Header,
111338		}
111339	}
111340	if err != nil {
111341		return nil, err
111342	}
111343	defer googleapi.CloseBody(res)
111344	if err := googleapi.CheckResponse(res); err != nil {
111345		return nil, err
111346	}
111347	ret := &Operation{
111348		ServerResponse: googleapi.ServerResponse{
111349			Header:         res.Header,
111350			HTTPStatusCode: res.StatusCode,
111351		},
111352	}
111353	target := &ret
111354	if err := gensupport.DecodeResponse(target, res); err != nil {
111355		return nil, err
111356	}
111357	return ret, nil
111358	// {
111359	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
111360	//   "httpMethod": "POST",
111361	//   "id": "compute.networks.switchToCustomMode",
111362	//   "parameterOrder": [
111363	//     "project",
111364	//     "network"
111365	//   ],
111366	//   "parameters": {
111367	//     "network": {
111368	//       "description": "Name of the network to be updated.",
111369	//       "location": "path",
111370	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111371	//       "required": true,
111372	//       "type": "string"
111373	//     },
111374	//     "project": {
111375	//       "description": "Project ID for this request.",
111376	//       "location": "path",
111377	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111378	//       "required": true,
111379	//       "type": "string"
111380	//     },
111381	//     "requestId": {
111382	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111383	//       "location": "query",
111384	//       "type": "string"
111385	//     }
111386	//   },
111387	//   "path": "projects/{project}/global/networks/{network}/switchToCustomMode",
111388	//   "response": {
111389	//     "$ref": "Operation"
111390	//   },
111391	//   "scopes": [
111392	//     "https://www.googleapis.com/auth/cloud-platform",
111393	//     "https://www.googleapis.com/auth/compute"
111394	//   ]
111395	// }
111396
111397}
111398
111399// method id "compute.networks.testIamPermissions":
111400
111401type NetworksTestIamPermissionsCall struct {
111402	s                      *Service
111403	project                string
111404	resource               string
111405	testpermissionsrequest *TestPermissionsRequest
111406	urlParams_             gensupport.URLParams
111407	ctx_                   context.Context
111408	header_                http.Header
111409}
111410
111411// TestIamPermissions: Returns permissions that a caller has on the
111412// specified resource.
111413//
111414// - project: Project ID for this request.
111415// - resource: Name or id of the resource for this request.
111416func (r *NetworksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworksTestIamPermissionsCall {
111417	c := &NetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111418	c.project = project
111419	c.resource = resource
111420	c.testpermissionsrequest = testpermissionsrequest
111421	return c
111422}
111423
111424// Fields allows partial responses to be retrieved. See
111425// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111426// for more information.
111427func (c *NetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworksTestIamPermissionsCall {
111428	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111429	return c
111430}
111431
111432// Context sets the context to be used in this call's Do method. Any
111433// pending HTTP request will be aborted if the provided context is
111434// canceled.
111435func (c *NetworksTestIamPermissionsCall) Context(ctx context.Context) *NetworksTestIamPermissionsCall {
111436	c.ctx_ = ctx
111437	return c
111438}
111439
111440// Header returns an http.Header that can be modified by the caller to
111441// add HTTP headers to the request.
111442func (c *NetworksTestIamPermissionsCall) Header() http.Header {
111443	if c.header_ == nil {
111444		c.header_ = make(http.Header)
111445	}
111446	return c.header_
111447}
111448
111449func (c *NetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
111450	reqHeaders := make(http.Header)
111451	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111452	for k, v := range c.header_ {
111453		reqHeaders[k] = v
111454	}
111455	reqHeaders.Set("User-Agent", c.s.userAgent())
111456	var body io.Reader = nil
111457	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
111458	if err != nil {
111459		return nil, err
111460	}
111461	reqHeaders.Set("Content-Type", "application/json")
111462	c.urlParams_.Set("alt", alt)
111463	c.urlParams_.Set("prettyPrint", "false")
111464	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{resource}/testIamPermissions")
111465	urls += "?" + c.urlParams_.Encode()
111466	req, err := http.NewRequest("POST", urls, body)
111467	if err != nil {
111468		return nil, err
111469	}
111470	req.Header = reqHeaders
111471	googleapi.Expand(req.URL, map[string]string{
111472		"project":  c.project,
111473		"resource": c.resource,
111474	})
111475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111476}
111477
111478// Do executes the "compute.networks.testIamPermissions" call.
111479// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
111480// non-2xx status code is an error. Response headers are in either
111481// *TestPermissionsResponse.ServerResponse.Header or (if a response was
111482// returned at all) in error.(*googleapi.Error).Header. Use
111483// googleapi.IsNotModified to check whether the returned error was
111484// because http.StatusNotModified was returned.
111485func (c *NetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
111486	gensupport.SetOptions(c.urlParams_, opts...)
111487	res, err := c.doRequest("json")
111488	if res != nil && res.StatusCode == http.StatusNotModified {
111489		if res.Body != nil {
111490			res.Body.Close()
111491		}
111492		return nil, &googleapi.Error{
111493			Code:   res.StatusCode,
111494			Header: res.Header,
111495		}
111496	}
111497	if err != nil {
111498		return nil, err
111499	}
111500	defer googleapi.CloseBody(res)
111501	if err := googleapi.CheckResponse(res); err != nil {
111502		return nil, err
111503	}
111504	ret := &TestPermissionsResponse{
111505		ServerResponse: googleapi.ServerResponse{
111506			Header:         res.Header,
111507			HTTPStatusCode: res.StatusCode,
111508		},
111509	}
111510	target := &ret
111511	if err := gensupport.DecodeResponse(target, res); err != nil {
111512		return nil, err
111513	}
111514	return ret, nil
111515	// {
111516	//   "description": "Returns permissions that a caller has on the specified resource.",
111517	//   "httpMethod": "POST",
111518	//   "id": "compute.networks.testIamPermissions",
111519	//   "parameterOrder": [
111520	//     "project",
111521	//     "resource"
111522	//   ],
111523	//   "parameters": {
111524	//     "project": {
111525	//       "description": "Project ID for this request.",
111526	//       "location": "path",
111527	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111528	//       "required": true,
111529	//       "type": "string"
111530	//     },
111531	//     "resource": {
111532	//       "description": "Name or id of the resource for this request.",
111533	//       "location": "path",
111534	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111535	//       "required": true,
111536	//       "type": "string"
111537	//     }
111538	//   },
111539	//   "path": "projects/{project}/global/networks/{resource}/testIamPermissions",
111540	//   "request": {
111541	//     "$ref": "TestPermissionsRequest"
111542	//   },
111543	//   "response": {
111544	//     "$ref": "TestPermissionsResponse"
111545	//   },
111546	//   "scopes": [
111547	//     "https://www.googleapis.com/auth/cloud-platform",
111548	//     "https://www.googleapis.com/auth/compute",
111549	//     "https://www.googleapis.com/auth/compute.readonly"
111550	//   ]
111551	// }
111552
111553}
111554
111555// method id "compute.networks.updatePeering":
111556
111557type NetworksUpdatePeeringCall struct {
111558	s                            *Service
111559	project                      string
111560	network                      string
111561	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
111562	urlParams_                   gensupport.URLParams
111563	ctx_                         context.Context
111564	header_                      http.Header
111565}
111566
111567// UpdatePeering: Updates the specified network peering with the data
111568// included in the request Only the following fields can be modified:
111569// NetworkPeering.export_custom_routes, and
111570// NetworkPeering.import_custom_routes
111571//
111572// - network: Name of the network resource which the updated peering is
111573//   belonging to.
111574// - project: Project ID for this request.
111575func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
111576	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111577	c.project = project
111578	c.network = network
111579	c.networksupdatepeeringrequest = networksupdatepeeringrequest
111580	return c
111581}
111582
111583// RequestId sets the optional parameter "requestId": An optional
111584// request ID to identify requests. Specify a unique request ID so that
111585// if you must retry your request, the server will know to ignore the
111586// request if it has already been completed.
111587//
111588// For example, consider a situation where you make an initial request
111589// and the request times out. If you make the request again with the
111590// same request ID, the server can check if original operation with the
111591// same request ID was received, and if so, will ignore the second
111592// request. This prevents clients from accidentally creating duplicate
111593// commitments.
111594//
111595// The request ID must be a valid UUID with the exception that zero UUID
111596// is not supported (00000000-0000-0000-0000-000000000000).
111597func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
111598	c.urlParams_.Set("requestId", requestId)
111599	return c
111600}
111601
111602// Fields allows partial responses to be retrieved. See
111603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111604// for more information.
111605func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
111606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111607	return c
111608}
111609
111610// Context sets the context to be used in this call's Do method. Any
111611// pending HTTP request will be aborted if the provided context is
111612// canceled.
111613func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
111614	c.ctx_ = ctx
111615	return c
111616}
111617
111618// Header returns an http.Header that can be modified by the caller to
111619// add HTTP headers to the request.
111620func (c *NetworksUpdatePeeringCall) Header() http.Header {
111621	if c.header_ == nil {
111622		c.header_ = make(http.Header)
111623	}
111624	return c.header_
111625}
111626
111627func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
111628	reqHeaders := make(http.Header)
111629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111630	for k, v := range c.header_ {
111631		reqHeaders[k] = v
111632	}
111633	reqHeaders.Set("User-Agent", c.s.userAgent())
111634	var body io.Reader = nil
111635	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
111636	if err != nil {
111637		return nil, err
111638	}
111639	reqHeaders.Set("Content-Type", "application/json")
111640	c.urlParams_.Set("alt", alt)
111641	c.urlParams_.Set("prettyPrint", "false")
111642	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/updatePeering")
111643	urls += "?" + c.urlParams_.Encode()
111644	req, err := http.NewRequest("PATCH", urls, body)
111645	if err != nil {
111646		return nil, err
111647	}
111648	req.Header = reqHeaders
111649	googleapi.Expand(req.URL, map[string]string{
111650		"project": c.project,
111651		"network": c.network,
111652	})
111653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111654}
111655
111656// Do executes the "compute.networks.updatePeering" call.
111657// Exactly one of *Operation or error will be non-nil. Any non-2xx
111658// status code is an error. Response headers are in either
111659// *Operation.ServerResponse.Header or (if a response was returned at
111660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111661// to check whether the returned error was because
111662// http.StatusNotModified was returned.
111663func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111664	gensupport.SetOptions(c.urlParams_, opts...)
111665	res, err := c.doRequest("json")
111666	if res != nil && res.StatusCode == http.StatusNotModified {
111667		if res.Body != nil {
111668			res.Body.Close()
111669		}
111670		return nil, &googleapi.Error{
111671			Code:   res.StatusCode,
111672			Header: res.Header,
111673		}
111674	}
111675	if err != nil {
111676		return nil, err
111677	}
111678	defer googleapi.CloseBody(res)
111679	if err := googleapi.CheckResponse(res); err != nil {
111680		return nil, err
111681	}
111682	ret := &Operation{
111683		ServerResponse: googleapi.ServerResponse{
111684			Header:         res.Header,
111685			HTTPStatusCode: res.StatusCode,
111686		},
111687	}
111688	target := &ret
111689	if err := gensupport.DecodeResponse(target, res); err != nil {
111690		return nil, err
111691	}
111692	return ret, nil
111693	// {
111694	//   "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",
111695	//   "httpMethod": "PATCH",
111696	//   "id": "compute.networks.updatePeering",
111697	//   "parameterOrder": [
111698	//     "project",
111699	//     "network"
111700	//   ],
111701	//   "parameters": {
111702	//     "network": {
111703	//       "description": "Name of the network resource which the updated peering is belonging to.",
111704	//       "location": "path",
111705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111706	//       "required": true,
111707	//       "type": "string"
111708	//     },
111709	//     "project": {
111710	//       "description": "Project ID for this request.",
111711	//       "location": "path",
111712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111713	//       "required": true,
111714	//       "type": "string"
111715	//     },
111716	//     "requestId": {
111717	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111718	//       "location": "query",
111719	//       "type": "string"
111720	//     }
111721	//   },
111722	//   "path": "projects/{project}/global/networks/{network}/updatePeering",
111723	//   "request": {
111724	//     "$ref": "NetworksUpdatePeeringRequest"
111725	//   },
111726	//   "response": {
111727	//     "$ref": "Operation"
111728	//   },
111729	//   "scopes": [
111730	//     "https://www.googleapis.com/auth/cloud-platform",
111731	//     "https://www.googleapis.com/auth/compute"
111732	//   ]
111733	// }
111734
111735}
111736
111737// method id "compute.nodeGroups.addNodes":
111738
111739type NodeGroupsAddNodesCall struct {
111740	s                         *Service
111741	project                   string
111742	zone                      string
111743	nodeGroup                 string
111744	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
111745	urlParams_                gensupport.URLParams
111746	ctx_                      context.Context
111747	header_                   http.Header
111748}
111749
111750// AddNodes: Adds specified number of nodes to the node group.
111751//
111752// - nodeGroup: Name of the NodeGroup resource.
111753// - project: Project ID for this request.
111754// - zone: The name of the zone for this request.
111755func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
111756	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111757	c.project = project
111758	c.zone = zone
111759	c.nodeGroup = nodeGroup
111760	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
111761	return c
111762}
111763
111764// RequestId sets the optional parameter "requestId": An optional
111765// request ID to identify requests. Specify a unique request ID so that
111766// if you must retry your request, the server will know to ignore the
111767// request if it has already been completed.
111768//
111769// For example, consider a situation where you make an initial request
111770// and the request times out. If you make the request again with the
111771// same request ID, the server can check if original operation with the
111772// same request ID was received, and if so, will ignore the second
111773// request. This prevents clients from accidentally creating duplicate
111774// commitments.
111775//
111776// The request ID must be a valid UUID with the exception that zero UUID
111777// is not supported (00000000-0000-0000-0000-000000000000).
111778func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
111779	c.urlParams_.Set("requestId", requestId)
111780	return c
111781}
111782
111783// Fields allows partial responses to be retrieved. See
111784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111785// for more information.
111786func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
111787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111788	return c
111789}
111790
111791// Context sets the context to be used in this call's Do method. Any
111792// pending HTTP request will be aborted if the provided context is
111793// canceled.
111794func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
111795	c.ctx_ = ctx
111796	return c
111797}
111798
111799// Header returns an http.Header that can be modified by the caller to
111800// add HTTP headers to the request.
111801func (c *NodeGroupsAddNodesCall) Header() http.Header {
111802	if c.header_ == nil {
111803		c.header_ = make(http.Header)
111804	}
111805	return c.header_
111806}
111807
111808func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
111809	reqHeaders := make(http.Header)
111810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111811	for k, v := range c.header_ {
111812		reqHeaders[k] = v
111813	}
111814	reqHeaders.Set("User-Agent", c.s.userAgent())
111815	var body io.Reader = nil
111816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
111817	if err != nil {
111818		return nil, err
111819	}
111820	reqHeaders.Set("Content-Type", "application/json")
111821	c.urlParams_.Set("alt", alt)
111822	c.urlParams_.Set("prettyPrint", "false")
111823	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
111824	urls += "?" + c.urlParams_.Encode()
111825	req, err := http.NewRequest("POST", urls, body)
111826	if err != nil {
111827		return nil, err
111828	}
111829	req.Header = reqHeaders
111830	googleapi.Expand(req.URL, map[string]string{
111831		"project":   c.project,
111832		"zone":      c.zone,
111833		"nodeGroup": c.nodeGroup,
111834	})
111835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111836}
111837
111838// Do executes the "compute.nodeGroups.addNodes" call.
111839// Exactly one of *Operation or error will be non-nil. Any non-2xx
111840// status code is an error. Response headers are in either
111841// *Operation.ServerResponse.Header or (if a response was returned at
111842// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111843// to check whether the returned error was because
111844// http.StatusNotModified was returned.
111845func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111846	gensupport.SetOptions(c.urlParams_, opts...)
111847	res, err := c.doRequest("json")
111848	if res != nil && res.StatusCode == http.StatusNotModified {
111849		if res.Body != nil {
111850			res.Body.Close()
111851		}
111852		return nil, &googleapi.Error{
111853			Code:   res.StatusCode,
111854			Header: res.Header,
111855		}
111856	}
111857	if err != nil {
111858		return nil, err
111859	}
111860	defer googleapi.CloseBody(res)
111861	if err := googleapi.CheckResponse(res); err != nil {
111862		return nil, err
111863	}
111864	ret := &Operation{
111865		ServerResponse: googleapi.ServerResponse{
111866			Header:         res.Header,
111867			HTTPStatusCode: res.StatusCode,
111868		},
111869	}
111870	target := &ret
111871	if err := gensupport.DecodeResponse(target, res); err != nil {
111872		return nil, err
111873	}
111874	return ret, nil
111875	// {
111876	//   "description": "Adds specified number of nodes to the node group.",
111877	//   "httpMethod": "POST",
111878	//   "id": "compute.nodeGroups.addNodes",
111879	//   "parameterOrder": [
111880	//     "project",
111881	//     "zone",
111882	//     "nodeGroup"
111883	//   ],
111884	//   "parameters": {
111885	//     "nodeGroup": {
111886	//       "description": "Name of the NodeGroup resource.",
111887	//       "location": "path",
111888	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111889	//       "required": true,
111890	//       "type": "string"
111891	//     },
111892	//     "project": {
111893	//       "description": "Project ID for this request.",
111894	//       "location": "path",
111895	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111896	//       "required": true,
111897	//       "type": "string"
111898	//     },
111899	//     "requestId": {
111900	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111901	//       "location": "query",
111902	//       "type": "string"
111903	//     },
111904	//     "zone": {
111905	//       "description": "The name of the zone for this request.",
111906	//       "location": "path",
111907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111908	//       "required": true,
111909	//       "type": "string"
111910	//     }
111911	//   },
111912	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
111913	//   "request": {
111914	//     "$ref": "NodeGroupsAddNodesRequest"
111915	//   },
111916	//   "response": {
111917	//     "$ref": "Operation"
111918	//   },
111919	//   "scopes": [
111920	//     "https://www.googleapis.com/auth/cloud-platform",
111921	//     "https://www.googleapis.com/auth/compute"
111922	//   ]
111923	// }
111924
111925}
111926
111927// method id "compute.nodeGroups.aggregatedList":
111928
111929type NodeGroupsAggregatedListCall struct {
111930	s            *Service
111931	project      string
111932	urlParams_   gensupport.URLParams
111933	ifNoneMatch_ string
111934	ctx_         context.Context
111935	header_      http.Header
111936}
111937
111938// AggregatedList: Retrieves an aggregated list of node groups. Note:
111939// use nodeGroups.listNodes for more details about each group.
111940//
111941// - project: Project ID for this request.
111942func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
111943	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111944	c.project = project
111945	return c
111946}
111947
111948// Filter sets the optional parameter "filter": A filter expression that
111949// filters resources listed in the response. The expression must specify
111950// the field name, a comparison operator, and the value that you want to
111951// use for filtering. The value must be a string, a number, or a
111952// boolean. The comparison operator must be either `=`, `!=`, `>`, or
111953// `<`.
111954//
111955// For example, if you are filtering Compute Engine instances, you can
111956// exclude instances named `example-instance` by specifying `name !=
111957// example-instance`.
111958//
111959// You can also filter nested fields. For example, you could specify
111960// `scheduling.automaticRestart = false` to include instances only if
111961// they are not scheduled for automatic restarts. You can use filtering
111962// on nested fields to filter based on resource labels.
111963//
111964// To filter on multiple expressions, provide each separate expression
111965// within parentheses. For example: ``` (scheduling.automaticRestart =
111966// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
111967// is an `AND` expression. However, you can include `AND` and `OR`
111968// expressions explicitly. For example: ``` (cpuPlatform = "Intel
111969// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
111970// (scheduling.automaticRestart = true) ```
111971func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
111972	c.urlParams_.Set("filter", filter)
111973	return c
111974}
111975
111976// IncludeAllScopes sets the optional parameter "includeAllScopes":
111977// Indicates whether every visible scope for each scope type (zone,
111978// region, global) should be included in the response. For new resource
111979// types added after this field, the flag has no effect as new resource
111980// types will always include every visible scope for each scope type in
111981// response. For resource types which predate this field, if this flag
111982// is omitted or false, only scopes of the scope types where the
111983// resource type is expected to be found will be included.
111984func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
111985	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
111986	return c
111987}
111988
111989// MaxResults sets the optional parameter "maxResults": The maximum
111990// number of results per page that should be returned. If the number of
111991// available results is larger than `maxResults`, Compute Engine returns
111992// a `nextPageToken` that can be used to get the next page of results in
111993// subsequent list requests. Acceptable values are `0` to `500`,
111994// inclusive. (Default: `500`)
111995func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
111996	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111997	return c
111998}
111999
112000// OrderBy sets the optional parameter "orderBy": Sorts list results by
112001// a certain order. By default, results are returned in alphanumerical
112002// order based on the resource name.
112003//
112004// You can also sort results in descending order based on the creation
112005// timestamp using `orderBy="creationTimestamp desc". This sorts
112006// results based on the `creationTimestamp` field in reverse
112007// chronological order (newest result first). Use this to sort resources
112008// like operations so that the newest operation is returned
112009// first.
112010//
112011// Currently, only sorting by `name` or `creationTimestamp desc` is
112012// supported.
112013func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
112014	c.urlParams_.Set("orderBy", orderBy)
112015	return c
112016}
112017
112018// PageToken sets the optional parameter "pageToken": Specifies a page
112019// token to use. Set `pageToken` to the `nextPageToken` returned by a
112020// previous list request to get the next page of results.
112021func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
112022	c.urlParams_.Set("pageToken", pageToken)
112023	return c
112024}
112025
112026// ReturnPartialSuccess sets the optional parameter
112027// "returnPartialSuccess": Opt-in for partial success behavior which
112028// provides partial results in case of failure. The default value is
112029// false.
112030func (c *NodeGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsAggregatedListCall {
112031	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112032	return c
112033}
112034
112035// Fields allows partial responses to be retrieved. See
112036// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112037// for more information.
112038func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
112039	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112040	return c
112041}
112042
112043// IfNoneMatch sets the optional parameter which makes the operation
112044// fail if the object's ETag matches the given value. This is useful for
112045// getting updates only after the object has changed since the last
112046// request. Use googleapi.IsNotModified to check whether the response
112047// error from Do is the result of In-None-Match.
112048func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
112049	c.ifNoneMatch_ = entityTag
112050	return c
112051}
112052
112053// Context sets the context to be used in this call's Do method. Any
112054// pending HTTP request will be aborted if the provided context is
112055// canceled.
112056func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
112057	c.ctx_ = ctx
112058	return c
112059}
112060
112061// Header returns an http.Header that can be modified by the caller to
112062// add HTTP headers to the request.
112063func (c *NodeGroupsAggregatedListCall) Header() http.Header {
112064	if c.header_ == nil {
112065		c.header_ = make(http.Header)
112066	}
112067	return c.header_
112068}
112069
112070func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
112071	reqHeaders := make(http.Header)
112072	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112073	for k, v := range c.header_ {
112074		reqHeaders[k] = v
112075	}
112076	reqHeaders.Set("User-Agent", c.s.userAgent())
112077	if c.ifNoneMatch_ != "" {
112078		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112079	}
112080	var body io.Reader = nil
112081	c.urlParams_.Set("alt", alt)
112082	c.urlParams_.Set("prettyPrint", "false")
112083	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeGroups")
112084	urls += "?" + c.urlParams_.Encode()
112085	req, err := http.NewRequest("GET", urls, body)
112086	if err != nil {
112087		return nil, err
112088	}
112089	req.Header = reqHeaders
112090	googleapi.Expand(req.URL, map[string]string{
112091		"project": c.project,
112092	})
112093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112094}
112095
112096// Do executes the "compute.nodeGroups.aggregatedList" call.
112097// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
112098// non-2xx status code is an error. Response headers are in either
112099// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
112100// returned at all) in error.(*googleapi.Error).Header. Use
112101// googleapi.IsNotModified to check whether the returned error was
112102// because http.StatusNotModified was returned.
112103func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
112104	gensupport.SetOptions(c.urlParams_, opts...)
112105	res, err := c.doRequest("json")
112106	if res != nil && res.StatusCode == http.StatusNotModified {
112107		if res.Body != nil {
112108			res.Body.Close()
112109		}
112110		return nil, &googleapi.Error{
112111			Code:   res.StatusCode,
112112			Header: res.Header,
112113		}
112114	}
112115	if err != nil {
112116		return nil, err
112117	}
112118	defer googleapi.CloseBody(res)
112119	if err := googleapi.CheckResponse(res); err != nil {
112120		return nil, err
112121	}
112122	ret := &NodeGroupAggregatedList{
112123		ServerResponse: googleapi.ServerResponse{
112124			Header:         res.Header,
112125			HTTPStatusCode: res.StatusCode,
112126		},
112127	}
112128	target := &ret
112129	if err := gensupport.DecodeResponse(target, res); err != nil {
112130		return nil, err
112131	}
112132	return ret, nil
112133	// {
112134	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
112135	//   "httpMethod": "GET",
112136	//   "id": "compute.nodeGroups.aggregatedList",
112137	//   "parameterOrder": [
112138	//     "project"
112139	//   ],
112140	//   "parameters": {
112141	//     "filter": {
112142	//       "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) ```",
112143	//       "location": "query",
112144	//       "type": "string"
112145	//     },
112146	//     "includeAllScopes": {
112147	//       "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.",
112148	//       "location": "query",
112149	//       "type": "boolean"
112150	//     },
112151	//     "maxResults": {
112152	//       "default": "500",
112153	//       "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`)",
112154	//       "format": "uint32",
112155	//       "location": "query",
112156	//       "minimum": "0",
112157	//       "type": "integer"
112158	//     },
112159	//     "orderBy": {
112160	//       "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.",
112161	//       "location": "query",
112162	//       "type": "string"
112163	//     },
112164	//     "pageToken": {
112165	//       "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.",
112166	//       "location": "query",
112167	//       "type": "string"
112168	//     },
112169	//     "project": {
112170	//       "description": "Project ID for this request.",
112171	//       "location": "path",
112172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112173	//       "required": true,
112174	//       "type": "string"
112175	//     },
112176	//     "returnPartialSuccess": {
112177	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
112178	//       "location": "query",
112179	//       "type": "boolean"
112180	//     }
112181	//   },
112182	//   "path": "projects/{project}/aggregated/nodeGroups",
112183	//   "response": {
112184	//     "$ref": "NodeGroupAggregatedList"
112185	//   },
112186	//   "scopes": [
112187	//     "https://www.googleapis.com/auth/cloud-platform",
112188	//     "https://www.googleapis.com/auth/compute",
112189	//     "https://www.googleapis.com/auth/compute.readonly"
112190	//   ]
112191	// }
112192
112193}
112194
112195// Pages invokes f for each page of results.
112196// A non-nil error returned from f will halt the iteration.
112197// The provided context supersedes any context provided to the Context method.
112198func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
112199	c.ctx_ = ctx
112200	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112201	for {
112202		x, err := c.Do()
112203		if err != nil {
112204			return err
112205		}
112206		if err := f(x); err != nil {
112207			return err
112208		}
112209		if x.NextPageToken == "" {
112210			return nil
112211		}
112212		c.PageToken(x.NextPageToken)
112213	}
112214}
112215
112216// method id "compute.nodeGroups.delete":
112217
112218type NodeGroupsDeleteCall struct {
112219	s          *Service
112220	project    string
112221	zone       string
112222	nodeGroup  string
112223	urlParams_ gensupport.URLParams
112224	ctx_       context.Context
112225	header_    http.Header
112226}
112227
112228// Delete: Deletes the specified NodeGroup resource.
112229//
112230// - nodeGroup: Name of the NodeGroup resource to delete.
112231// - project: Project ID for this request.
112232// - zone: The name of the zone for this request.
112233func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
112234	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112235	c.project = project
112236	c.zone = zone
112237	c.nodeGroup = nodeGroup
112238	return c
112239}
112240
112241// RequestId sets the optional parameter "requestId": An optional
112242// request ID to identify requests. Specify a unique request ID so that
112243// if you must retry your request, the server will know to ignore the
112244// request if it has already been completed.
112245//
112246// For example, consider a situation where you make an initial request
112247// and the request times out. If you make the request again with the
112248// same request ID, the server can check if original operation with the
112249// same request ID was received, and if so, will ignore the second
112250// request. This prevents clients from accidentally creating duplicate
112251// commitments.
112252//
112253// The request ID must be a valid UUID with the exception that zero UUID
112254// is not supported (00000000-0000-0000-0000-000000000000).
112255func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
112256	c.urlParams_.Set("requestId", requestId)
112257	return c
112258}
112259
112260// Fields allows partial responses to be retrieved. See
112261// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112262// for more information.
112263func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
112264	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112265	return c
112266}
112267
112268// Context sets the context to be used in this call's Do method. Any
112269// pending HTTP request will be aborted if the provided context is
112270// canceled.
112271func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
112272	c.ctx_ = ctx
112273	return c
112274}
112275
112276// Header returns an http.Header that can be modified by the caller to
112277// add HTTP headers to the request.
112278func (c *NodeGroupsDeleteCall) Header() http.Header {
112279	if c.header_ == nil {
112280		c.header_ = make(http.Header)
112281	}
112282	return c.header_
112283}
112284
112285func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
112286	reqHeaders := make(http.Header)
112287	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112288	for k, v := range c.header_ {
112289		reqHeaders[k] = v
112290	}
112291	reqHeaders.Set("User-Agent", c.s.userAgent())
112292	var body io.Reader = nil
112293	c.urlParams_.Set("alt", alt)
112294	c.urlParams_.Set("prettyPrint", "false")
112295	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
112296	urls += "?" + c.urlParams_.Encode()
112297	req, err := http.NewRequest("DELETE", urls, body)
112298	if err != nil {
112299		return nil, err
112300	}
112301	req.Header = reqHeaders
112302	googleapi.Expand(req.URL, map[string]string{
112303		"project":   c.project,
112304		"zone":      c.zone,
112305		"nodeGroup": c.nodeGroup,
112306	})
112307	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112308}
112309
112310// Do executes the "compute.nodeGroups.delete" call.
112311// Exactly one of *Operation or error will be non-nil. Any non-2xx
112312// status code is an error. Response headers are in either
112313// *Operation.ServerResponse.Header or (if a response was returned at
112314// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112315// to check whether the returned error was because
112316// http.StatusNotModified was returned.
112317func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112318	gensupport.SetOptions(c.urlParams_, opts...)
112319	res, err := c.doRequest("json")
112320	if res != nil && res.StatusCode == http.StatusNotModified {
112321		if res.Body != nil {
112322			res.Body.Close()
112323		}
112324		return nil, &googleapi.Error{
112325			Code:   res.StatusCode,
112326			Header: res.Header,
112327		}
112328	}
112329	if err != nil {
112330		return nil, err
112331	}
112332	defer googleapi.CloseBody(res)
112333	if err := googleapi.CheckResponse(res); err != nil {
112334		return nil, err
112335	}
112336	ret := &Operation{
112337		ServerResponse: googleapi.ServerResponse{
112338			Header:         res.Header,
112339			HTTPStatusCode: res.StatusCode,
112340		},
112341	}
112342	target := &ret
112343	if err := gensupport.DecodeResponse(target, res); err != nil {
112344		return nil, err
112345	}
112346	return ret, nil
112347	// {
112348	//   "description": "Deletes the specified NodeGroup resource.",
112349	//   "httpMethod": "DELETE",
112350	//   "id": "compute.nodeGroups.delete",
112351	//   "parameterOrder": [
112352	//     "project",
112353	//     "zone",
112354	//     "nodeGroup"
112355	//   ],
112356	//   "parameters": {
112357	//     "nodeGroup": {
112358	//       "description": "Name of the NodeGroup resource to delete.",
112359	//       "location": "path",
112360	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112361	//       "required": true,
112362	//       "type": "string"
112363	//     },
112364	//     "project": {
112365	//       "description": "Project ID for this request.",
112366	//       "location": "path",
112367	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112368	//       "required": true,
112369	//       "type": "string"
112370	//     },
112371	//     "requestId": {
112372	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112373	//       "location": "query",
112374	//       "type": "string"
112375	//     },
112376	//     "zone": {
112377	//       "description": "The name of the zone for this request.",
112378	//       "location": "path",
112379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112380	//       "required": true,
112381	//       "type": "string"
112382	//     }
112383	//   },
112384	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
112385	//   "response": {
112386	//     "$ref": "Operation"
112387	//   },
112388	//   "scopes": [
112389	//     "https://www.googleapis.com/auth/cloud-platform",
112390	//     "https://www.googleapis.com/auth/compute"
112391	//   ]
112392	// }
112393
112394}
112395
112396// method id "compute.nodeGroups.deleteNodes":
112397
112398type NodeGroupsDeleteNodesCall struct {
112399	s                            *Service
112400	project                      string
112401	zone                         string
112402	nodeGroup                    string
112403	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
112404	urlParams_                   gensupport.URLParams
112405	ctx_                         context.Context
112406	header_                      http.Header
112407}
112408
112409// DeleteNodes: Deletes specified nodes from the node group.
112410//
112411// - nodeGroup: Name of the NodeGroup resource whose nodes will be
112412//   deleted.
112413// - project: Project ID for this request.
112414// - zone: The name of the zone for this request.
112415func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
112416	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112417	c.project = project
112418	c.zone = zone
112419	c.nodeGroup = nodeGroup
112420	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
112421	return c
112422}
112423
112424// RequestId sets the optional parameter "requestId": An optional
112425// request ID to identify requests. Specify a unique request ID so that
112426// if you must retry your request, the server will know to ignore the
112427// request if it has already been completed.
112428//
112429// For example, consider a situation where you make an initial request
112430// and the request times out. If you make the request again with the
112431// same request ID, the server can check if original operation with the
112432// same request ID was received, and if so, will ignore the second
112433// request. This prevents clients from accidentally creating duplicate
112434// commitments.
112435//
112436// The request ID must be a valid UUID with the exception that zero UUID
112437// is not supported (00000000-0000-0000-0000-000000000000).
112438func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
112439	c.urlParams_.Set("requestId", requestId)
112440	return c
112441}
112442
112443// Fields allows partial responses to be retrieved. See
112444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112445// for more information.
112446func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
112447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112448	return c
112449}
112450
112451// Context sets the context to be used in this call's Do method. Any
112452// pending HTTP request will be aborted if the provided context is
112453// canceled.
112454func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
112455	c.ctx_ = ctx
112456	return c
112457}
112458
112459// Header returns an http.Header that can be modified by the caller to
112460// add HTTP headers to the request.
112461func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
112462	if c.header_ == nil {
112463		c.header_ = make(http.Header)
112464	}
112465	return c.header_
112466}
112467
112468func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
112469	reqHeaders := make(http.Header)
112470	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112471	for k, v := range c.header_ {
112472		reqHeaders[k] = v
112473	}
112474	reqHeaders.Set("User-Agent", c.s.userAgent())
112475	var body io.Reader = nil
112476	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
112477	if err != nil {
112478		return nil, err
112479	}
112480	reqHeaders.Set("Content-Type", "application/json")
112481	c.urlParams_.Set("alt", alt)
112482	c.urlParams_.Set("prettyPrint", "false")
112483	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
112484	urls += "?" + c.urlParams_.Encode()
112485	req, err := http.NewRequest("POST", urls, body)
112486	if err != nil {
112487		return nil, err
112488	}
112489	req.Header = reqHeaders
112490	googleapi.Expand(req.URL, map[string]string{
112491		"project":   c.project,
112492		"zone":      c.zone,
112493		"nodeGroup": c.nodeGroup,
112494	})
112495	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112496}
112497
112498// Do executes the "compute.nodeGroups.deleteNodes" call.
112499// Exactly one of *Operation or error will be non-nil. Any non-2xx
112500// status code is an error. Response headers are in either
112501// *Operation.ServerResponse.Header or (if a response was returned at
112502// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112503// to check whether the returned error was because
112504// http.StatusNotModified was returned.
112505func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112506	gensupport.SetOptions(c.urlParams_, opts...)
112507	res, err := c.doRequest("json")
112508	if res != nil && res.StatusCode == http.StatusNotModified {
112509		if res.Body != nil {
112510			res.Body.Close()
112511		}
112512		return nil, &googleapi.Error{
112513			Code:   res.StatusCode,
112514			Header: res.Header,
112515		}
112516	}
112517	if err != nil {
112518		return nil, err
112519	}
112520	defer googleapi.CloseBody(res)
112521	if err := googleapi.CheckResponse(res); err != nil {
112522		return nil, err
112523	}
112524	ret := &Operation{
112525		ServerResponse: googleapi.ServerResponse{
112526			Header:         res.Header,
112527			HTTPStatusCode: res.StatusCode,
112528		},
112529	}
112530	target := &ret
112531	if err := gensupport.DecodeResponse(target, res); err != nil {
112532		return nil, err
112533	}
112534	return ret, nil
112535	// {
112536	//   "description": "Deletes specified nodes from the node group.",
112537	//   "httpMethod": "POST",
112538	//   "id": "compute.nodeGroups.deleteNodes",
112539	//   "parameterOrder": [
112540	//     "project",
112541	//     "zone",
112542	//     "nodeGroup"
112543	//   ],
112544	//   "parameters": {
112545	//     "nodeGroup": {
112546	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
112547	//       "location": "path",
112548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112549	//       "required": true,
112550	//       "type": "string"
112551	//     },
112552	//     "project": {
112553	//       "description": "Project ID for this request.",
112554	//       "location": "path",
112555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112556	//       "required": true,
112557	//       "type": "string"
112558	//     },
112559	//     "requestId": {
112560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112561	//       "location": "query",
112562	//       "type": "string"
112563	//     },
112564	//     "zone": {
112565	//       "description": "The name of the zone for this request.",
112566	//       "location": "path",
112567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112568	//       "required": true,
112569	//       "type": "string"
112570	//     }
112571	//   },
112572	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
112573	//   "request": {
112574	//     "$ref": "NodeGroupsDeleteNodesRequest"
112575	//   },
112576	//   "response": {
112577	//     "$ref": "Operation"
112578	//   },
112579	//   "scopes": [
112580	//     "https://www.googleapis.com/auth/cloud-platform",
112581	//     "https://www.googleapis.com/auth/compute"
112582	//   ]
112583	// }
112584
112585}
112586
112587// method id "compute.nodeGroups.get":
112588
112589type NodeGroupsGetCall struct {
112590	s            *Service
112591	project      string
112592	zone         string
112593	nodeGroup    string
112594	urlParams_   gensupport.URLParams
112595	ifNoneMatch_ string
112596	ctx_         context.Context
112597	header_      http.Header
112598}
112599
112600// Get: Returns the specified NodeGroup. Get a list of available
112601// NodeGroups by making a list() request. Note: the "nodes" field should
112602// not be used. Use nodeGroups.listNodes instead.
112603//
112604// - nodeGroup: Name of the node group to return.
112605// - project: Project ID for this request.
112606// - zone: The name of the zone for this request.
112607func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
112608	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112609	c.project = project
112610	c.zone = zone
112611	c.nodeGroup = nodeGroup
112612	return c
112613}
112614
112615// Fields allows partial responses to be retrieved. See
112616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112617// for more information.
112618func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
112619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112620	return c
112621}
112622
112623// IfNoneMatch sets the optional parameter which makes the operation
112624// fail if the object's ETag matches the given value. This is useful for
112625// getting updates only after the object has changed since the last
112626// request. Use googleapi.IsNotModified to check whether the response
112627// error from Do is the result of In-None-Match.
112628func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
112629	c.ifNoneMatch_ = entityTag
112630	return c
112631}
112632
112633// Context sets the context to be used in this call's Do method. Any
112634// pending HTTP request will be aborted if the provided context is
112635// canceled.
112636func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
112637	c.ctx_ = ctx
112638	return c
112639}
112640
112641// Header returns an http.Header that can be modified by the caller to
112642// add HTTP headers to the request.
112643func (c *NodeGroupsGetCall) Header() http.Header {
112644	if c.header_ == nil {
112645		c.header_ = make(http.Header)
112646	}
112647	return c.header_
112648}
112649
112650func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
112651	reqHeaders := make(http.Header)
112652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112653	for k, v := range c.header_ {
112654		reqHeaders[k] = v
112655	}
112656	reqHeaders.Set("User-Agent", c.s.userAgent())
112657	if c.ifNoneMatch_ != "" {
112658		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112659	}
112660	var body io.Reader = nil
112661	c.urlParams_.Set("alt", alt)
112662	c.urlParams_.Set("prettyPrint", "false")
112663	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
112664	urls += "?" + c.urlParams_.Encode()
112665	req, err := http.NewRequest("GET", urls, body)
112666	if err != nil {
112667		return nil, err
112668	}
112669	req.Header = reqHeaders
112670	googleapi.Expand(req.URL, map[string]string{
112671		"project":   c.project,
112672		"zone":      c.zone,
112673		"nodeGroup": c.nodeGroup,
112674	})
112675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112676}
112677
112678// Do executes the "compute.nodeGroups.get" call.
112679// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
112680// status code is an error. Response headers are in either
112681// *NodeGroup.ServerResponse.Header or (if a response was returned at
112682// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112683// to check whether the returned error was because
112684// http.StatusNotModified was returned.
112685func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
112686	gensupport.SetOptions(c.urlParams_, opts...)
112687	res, err := c.doRequest("json")
112688	if res != nil && res.StatusCode == http.StatusNotModified {
112689		if res.Body != nil {
112690			res.Body.Close()
112691		}
112692		return nil, &googleapi.Error{
112693			Code:   res.StatusCode,
112694			Header: res.Header,
112695		}
112696	}
112697	if err != nil {
112698		return nil, err
112699	}
112700	defer googleapi.CloseBody(res)
112701	if err := googleapi.CheckResponse(res); err != nil {
112702		return nil, err
112703	}
112704	ret := &NodeGroup{
112705		ServerResponse: googleapi.ServerResponse{
112706			Header:         res.Header,
112707			HTTPStatusCode: res.StatusCode,
112708		},
112709	}
112710	target := &ret
112711	if err := gensupport.DecodeResponse(target, res); err != nil {
112712		return nil, err
112713	}
112714	return ret, nil
112715	// {
112716	//   "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.",
112717	//   "httpMethod": "GET",
112718	//   "id": "compute.nodeGroups.get",
112719	//   "parameterOrder": [
112720	//     "project",
112721	//     "zone",
112722	//     "nodeGroup"
112723	//   ],
112724	//   "parameters": {
112725	//     "nodeGroup": {
112726	//       "description": "Name of the node group to return.",
112727	//       "location": "path",
112728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112729	//       "required": true,
112730	//       "type": "string"
112731	//     },
112732	//     "project": {
112733	//       "description": "Project ID for this request.",
112734	//       "location": "path",
112735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112736	//       "required": true,
112737	//       "type": "string"
112738	//     },
112739	//     "zone": {
112740	//       "description": "The name of the zone for this request.",
112741	//       "location": "path",
112742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112743	//       "required": true,
112744	//       "type": "string"
112745	//     }
112746	//   },
112747	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
112748	//   "response": {
112749	//     "$ref": "NodeGroup"
112750	//   },
112751	//   "scopes": [
112752	//     "https://www.googleapis.com/auth/cloud-platform",
112753	//     "https://www.googleapis.com/auth/compute",
112754	//     "https://www.googleapis.com/auth/compute.readonly"
112755	//   ]
112756	// }
112757
112758}
112759
112760// method id "compute.nodeGroups.getIamPolicy":
112761
112762type NodeGroupsGetIamPolicyCall struct {
112763	s            *Service
112764	project      string
112765	zone         string
112766	resource     string
112767	urlParams_   gensupport.URLParams
112768	ifNoneMatch_ string
112769	ctx_         context.Context
112770	header_      http.Header
112771}
112772
112773// GetIamPolicy: Gets the access control policy for a resource. May be
112774// empty if no such policy or resource exists.
112775//
112776// - project: Project ID for this request.
112777// - resource: Name or id of the resource for this request.
112778// - zone: The name of the zone for this request.
112779func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
112780	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112781	c.project = project
112782	c.zone = zone
112783	c.resource = resource
112784	return c
112785}
112786
112787// OptionsRequestedPolicyVersion sets the optional parameter
112788// "optionsRequestedPolicyVersion": Requested IAM Policy version.
112789func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
112790	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
112791	return c
112792}
112793
112794// Fields allows partial responses to be retrieved. See
112795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112796// for more information.
112797func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
112798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112799	return c
112800}
112801
112802// IfNoneMatch sets the optional parameter which makes the operation
112803// fail if the object's ETag matches the given value. This is useful for
112804// getting updates only after the object has changed since the last
112805// request. Use googleapi.IsNotModified to check whether the response
112806// error from Do is the result of In-None-Match.
112807func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
112808	c.ifNoneMatch_ = entityTag
112809	return c
112810}
112811
112812// Context sets the context to be used in this call's Do method. Any
112813// pending HTTP request will be aborted if the provided context is
112814// canceled.
112815func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
112816	c.ctx_ = ctx
112817	return c
112818}
112819
112820// Header returns an http.Header that can be modified by the caller to
112821// add HTTP headers to the request.
112822func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
112823	if c.header_ == nil {
112824		c.header_ = make(http.Header)
112825	}
112826	return c.header_
112827}
112828
112829func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
112830	reqHeaders := make(http.Header)
112831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112832	for k, v := range c.header_ {
112833		reqHeaders[k] = v
112834	}
112835	reqHeaders.Set("User-Agent", c.s.userAgent())
112836	if c.ifNoneMatch_ != "" {
112837		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112838	}
112839	var body io.Reader = nil
112840	c.urlParams_.Set("alt", alt)
112841	c.urlParams_.Set("prettyPrint", "false")
112842	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
112843	urls += "?" + c.urlParams_.Encode()
112844	req, err := http.NewRequest("GET", urls, body)
112845	if err != nil {
112846		return nil, err
112847	}
112848	req.Header = reqHeaders
112849	googleapi.Expand(req.URL, map[string]string{
112850		"project":  c.project,
112851		"zone":     c.zone,
112852		"resource": c.resource,
112853	})
112854	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112855}
112856
112857// Do executes the "compute.nodeGroups.getIamPolicy" call.
112858// Exactly one of *Policy or error will be non-nil. Any non-2xx status
112859// code is an error. Response headers are in either
112860// *Policy.ServerResponse.Header or (if a response was returned at all)
112861// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
112862// check whether the returned error was because http.StatusNotModified
112863// was returned.
112864func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
112865	gensupport.SetOptions(c.urlParams_, opts...)
112866	res, err := c.doRequest("json")
112867	if res != nil && res.StatusCode == http.StatusNotModified {
112868		if res.Body != nil {
112869			res.Body.Close()
112870		}
112871		return nil, &googleapi.Error{
112872			Code:   res.StatusCode,
112873			Header: res.Header,
112874		}
112875	}
112876	if err != nil {
112877		return nil, err
112878	}
112879	defer googleapi.CloseBody(res)
112880	if err := googleapi.CheckResponse(res); err != nil {
112881		return nil, err
112882	}
112883	ret := &Policy{
112884		ServerResponse: googleapi.ServerResponse{
112885			Header:         res.Header,
112886			HTTPStatusCode: res.StatusCode,
112887		},
112888	}
112889	target := &ret
112890	if err := gensupport.DecodeResponse(target, res); err != nil {
112891		return nil, err
112892	}
112893	return ret, nil
112894	// {
112895	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
112896	//   "httpMethod": "GET",
112897	//   "id": "compute.nodeGroups.getIamPolicy",
112898	//   "parameterOrder": [
112899	//     "project",
112900	//     "zone",
112901	//     "resource"
112902	//   ],
112903	//   "parameters": {
112904	//     "optionsRequestedPolicyVersion": {
112905	//       "description": "Requested IAM Policy version.",
112906	//       "format": "int32",
112907	//       "location": "query",
112908	//       "type": "integer"
112909	//     },
112910	//     "project": {
112911	//       "description": "Project ID for this request.",
112912	//       "location": "path",
112913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112914	//       "required": true,
112915	//       "type": "string"
112916	//     },
112917	//     "resource": {
112918	//       "description": "Name or id of the resource for this request.",
112919	//       "location": "path",
112920	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112921	//       "required": true,
112922	//       "type": "string"
112923	//     },
112924	//     "zone": {
112925	//       "description": "The name of the zone for this request.",
112926	//       "location": "path",
112927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112928	//       "required": true,
112929	//       "type": "string"
112930	//     }
112931	//   },
112932	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
112933	//   "response": {
112934	//     "$ref": "Policy"
112935	//   },
112936	//   "scopes": [
112937	//     "https://www.googleapis.com/auth/cloud-platform",
112938	//     "https://www.googleapis.com/auth/compute",
112939	//     "https://www.googleapis.com/auth/compute.readonly"
112940	//   ]
112941	// }
112942
112943}
112944
112945// method id "compute.nodeGroups.insert":
112946
112947type NodeGroupsInsertCall struct {
112948	s          *Service
112949	project    string
112950	zone       string
112951	nodegroup  *NodeGroup
112952	urlParams_ gensupport.URLParams
112953	ctx_       context.Context
112954	header_    http.Header
112955}
112956
112957// Insert: Creates a NodeGroup resource in the specified project using
112958// the data included in the request.
112959//
112960// - initialNodeCount: Initial count of nodes in the node group.
112961// - project: Project ID for this request.
112962// - zone: The name of the zone for this request.
112963func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
112964	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112965	c.project = project
112966	c.zone = zone
112967	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
112968	c.nodegroup = nodegroup
112969	return c
112970}
112971
112972// RequestId sets the optional parameter "requestId": An optional
112973// request ID to identify requests. Specify a unique request ID so that
112974// if you must retry your request, the server will know to ignore the
112975// request if it has already been completed.
112976//
112977// For example, consider a situation where you make an initial request
112978// and the request times out. If you make the request again with the
112979// same request ID, the server can check if original operation with the
112980// same request ID was received, and if so, will ignore the second
112981// request. This prevents clients from accidentally creating duplicate
112982// commitments.
112983//
112984// The request ID must be a valid UUID with the exception that zero UUID
112985// is not supported (00000000-0000-0000-0000-000000000000).
112986func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
112987	c.urlParams_.Set("requestId", requestId)
112988	return c
112989}
112990
112991// Fields allows partial responses to be retrieved. See
112992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112993// for more information.
112994func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
112995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112996	return c
112997}
112998
112999// Context sets the context to be used in this call's Do method. Any
113000// pending HTTP request will be aborted if the provided context is
113001// canceled.
113002func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
113003	c.ctx_ = ctx
113004	return c
113005}
113006
113007// Header returns an http.Header that can be modified by the caller to
113008// add HTTP headers to the request.
113009func (c *NodeGroupsInsertCall) Header() http.Header {
113010	if c.header_ == nil {
113011		c.header_ = make(http.Header)
113012	}
113013	return c.header_
113014}
113015
113016func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
113017	reqHeaders := make(http.Header)
113018	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113019	for k, v := range c.header_ {
113020		reqHeaders[k] = v
113021	}
113022	reqHeaders.Set("User-Agent", c.s.userAgent())
113023	var body io.Reader = nil
113024	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
113025	if err != nil {
113026		return nil, err
113027	}
113028	reqHeaders.Set("Content-Type", "application/json")
113029	c.urlParams_.Set("alt", alt)
113030	c.urlParams_.Set("prettyPrint", "false")
113031	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
113032	urls += "?" + c.urlParams_.Encode()
113033	req, err := http.NewRequest("POST", urls, body)
113034	if err != nil {
113035		return nil, err
113036	}
113037	req.Header = reqHeaders
113038	googleapi.Expand(req.URL, map[string]string{
113039		"project": c.project,
113040		"zone":    c.zone,
113041	})
113042	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113043}
113044
113045// Do executes the "compute.nodeGroups.insert" call.
113046// Exactly one of *Operation or error will be non-nil. Any non-2xx
113047// status code is an error. Response headers are in either
113048// *Operation.ServerResponse.Header or (if a response was returned at
113049// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113050// to check whether the returned error was because
113051// http.StatusNotModified was returned.
113052func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113053	gensupport.SetOptions(c.urlParams_, opts...)
113054	res, err := c.doRequest("json")
113055	if res != nil && res.StatusCode == http.StatusNotModified {
113056		if res.Body != nil {
113057			res.Body.Close()
113058		}
113059		return nil, &googleapi.Error{
113060			Code:   res.StatusCode,
113061			Header: res.Header,
113062		}
113063	}
113064	if err != nil {
113065		return nil, err
113066	}
113067	defer googleapi.CloseBody(res)
113068	if err := googleapi.CheckResponse(res); err != nil {
113069		return nil, err
113070	}
113071	ret := &Operation{
113072		ServerResponse: googleapi.ServerResponse{
113073			Header:         res.Header,
113074			HTTPStatusCode: res.StatusCode,
113075		},
113076	}
113077	target := &ret
113078	if err := gensupport.DecodeResponse(target, res); err != nil {
113079		return nil, err
113080	}
113081	return ret, nil
113082	// {
113083	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
113084	//   "httpMethod": "POST",
113085	//   "id": "compute.nodeGroups.insert",
113086	//   "parameterOrder": [
113087	//     "project",
113088	//     "zone",
113089	//     "initialNodeCount"
113090	//   ],
113091	//   "parameters": {
113092	//     "initialNodeCount": {
113093	//       "description": "Initial count of nodes in the node group.",
113094	//       "format": "int32",
113095	//       "location": "query",
113096	//       "required": true,
113097	//       "type": "integer"
113098	//     },
113099	//     "project": {
113100	//       "description": "Project ID for this request.",
113101	//       "location": "path",
113102	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113103	//       "required": true,
113104	//       "type": "string"
113105	//     },
113106	//     "requestId": {
113107	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113108	//       "location": "query",
113109	//       "type": "string"
113110	//     },
113111	//     "zone": {
113112	//       "description": "The name of the zone for this request.",
113113	//       "location": "path",
113114	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113115	//       "required": true,
113116	//       "type": "string"
113117	//     }
113118	//   },
113119	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
113120	//   "request": {
113121	//     "$ref": "NodeGroup"
113122	//   },
113123	//   "response": {
113124	//     "$ref": "Operation"
113125	//   },
113126	//   "scopes": [
113127	//     "https://www.googleapis.com/auth/cloud-platform",
113128	//     "https://www.googleapis.com/auth/compute"
113129	//   ]
113130	// }
113131
113132}
113133
113134// method id "compute.nodeGroups.list":
113135
113136type NodeGroupsListCall struct {
113137	s            *Service
113138	project      string
113139	zone         string
113140	urlParams_   gensupport.URLParams
113141	ifNoneMatch_ string
113142	ctx_         context.Context
113143	header_      http.Header
113144}
113145
113146// List: Retrieves a list of node groups available to the specified
113147// project. Note: use nodeGroups.listNodes for more details about each
113148// group.
113149//
113150// - project: Project ID for this request.
113151// - zone: The name of the zone for this request.
113152func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
113153	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113154	c.project = project
113155	c.zone = zone
113156	return c
113157}
113158
113159// Filter sets the optional parameter "filter": A filter expression that
113160// filters resources listed in the response. The expression must specify
113161// the field name, a comparison operator, and the value that you want to
113162// use for filtering. The value must be a string, a number, or a
113163// boolean. The comparison operator must be either `=`, `!=`, `>`, or
113164// `<`.
113165//
113166// For example, if you are filtering Compute Engine instances, you can
113167// exclude instances named `example-instance` by specifying `name !=
113168// example-instance`.
113169//
113170// You can also filter nested fields. For example, you could specify
113171// `scheduling.automaticRestart = false` to include instances only if
113172// they are not scheduled for automatic restarts. You can use filtering
113173// on nested fields to filter based on resource labels.
113174//
113175// To filter on multiple expressions, provide each separate expression
113176// within parentheses. For example: ``` (scheduling.automaticRestart =
113177// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
113178// is an `AND` expression. However, you can include `AND` and `OR`
113179// expressions explicitly. For example: ``` (cpuPlatform = "Intel
113180// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
113181// (scheduling.automaticRestart = true) ```
113182func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
113183	c.urlParams_.Set("filter", filter)
113184	return c
113185}
113186
113187// MaxResults sets the optional parameter "maxResults": The maximum
113188// number of results per page that should be returned. If the number of
113189// available results is larger than `maxResults`, Compute Engine returns
113190// a `nextPageToken` that can be used to get the next page of results in
113191// subsequent list requests. Acceptable values are `0` to `500`,
113192// inclusive. (Default: `500`)
113193func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
113194	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113195	return c
113196}
113197
113198// OrderBy sets the optional parameter "orderBy": Sorts list results by
113199// a certain order. By default, results are returned in alphanumerical
113200// order based on the resource name.
113201//
113202// You can also sort results in descending order based on the creation
113203// timestamp using `orderBy="creationTimestamp desc". This sorts
113204// results based on the `creationTimestamp` field in reverse
113205// chronological order (newest result first). Use this to sort resources
113206// like operations so that the newest operation is returned
113207// first.
113208//
113209// Currently, only sorting by `name` or `creationTimestamp desc` is
113210// supported.
113211func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
113212	c.urlParams_.Set("orderBy", orderBy)
113213	return c
113214}
113215
113216// PageToken sets the optional parameter "pageToken": Specifies a page
113217// token to use. Set `pageToken` to the `nextPageToken` returned by a
113218// previous list request to get the next page of results.
113219func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
113220	c.urlParams_.Set("pageToken", pageToken)
113221	return c
113222}
113223
113224// ReturnPartialSuccess sets the optional parameter
113225// "returnPartialSuccess": Opt-in for partial success behavior which
113226// provides partial results in case of failure. The default value is
113227// false.
113228func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListCall {
113229	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
113230	return c
113231}
113232
113233// Fields allows partial responses to be retrieved. See
113234// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113235// for more information.
113236func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
113237	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113238	return c
113239}
113240
113241// IfNoneMatch sets the optional parameter which makes the operation
113242// fail if the object's ETag matches the given value. This is useful for
113243// getting updates only after the object has changed since the last
113244// request. Use googleapi.IsNotModified to check whether the response
113245// error from Do is the result of In-None-Match.
113246func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
113247	c.ifNoneMatch_ = entityTag
113248	return c
113249}
113250
113251// Context sets the context to be used in this call's Do method. Any
113252// pending HTTP request will be aborted if the provided context is
113253// canceled.
113254func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
113255	c.ctx_ = ctx
113256	return c
113257}
113258
113259// Header returns an http.Header that can be modified by the caller to
113260// add HTTP headers to the request.
113261func (c *NodeGroupsListCall) Header() http.Header {
113262	if c.header_ == nil {
113263		c.header_ = make(http.Header)
113264	}
113265	return c.header_
113266}
113267
113268func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
113269	reqHeaders := make(http.Header)
113270	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113271	for k, v := range c.header_ {
113272		reqHeaders[k] = v
113273	}
113274	reqHeaders.Set("User-Agent", c.s.userAgent())
113275	if c.ifNoneMatch_ != "" {
113276		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113277	}
113278	var body io.Reader = nil
113279	c.urlParams_.Set("alt", alt)
113280	c.urlParams_.Set("prettyPrint", "false")
113281	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
113282	urls += "?" + c.urlParams_.Encode()
113283	req, err := http.NewRequest("GET", urls, body)
113284	if err != nil {
113285		return nil, err
113286	}
113287	req.Header = reqHeaders
113288	googleapi.Expand(req.URL, map[string]string{
113289		"project": c.project,
113290		"zone":    c.zone,
113291	})
113292	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113293}
113294
113295// Do executes the "compute.nodeGroups.list" call.
113296// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
113297// status code is an error. Response headers are in either
113298// *NodeGroupList.ServerResponse.Header or (if a response was returned
113299// at all) in error.(*googleapi.Error).Header. Use
113300// googleapi.IsNotModified to check whether the returned error was
113301// because http.StatusNotModified was returned.
113302func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
113303	gensupport.SetOptions(c.urlParams_, opts...)
113304	res, err := c.doRequest("json")
113305	if res != nil && res.StatusCode == http.StatusNotModified {
113306		if res.Body != nil {
113307			res.Body.Close()
113308		}
113309		return nil, &googleapi.Error{
113310			Code:   res.StatusCode,
113311			Header: res.Header,
113312		}
113313	}
113314	if err != nil {
113315		return nil, err
113316	}
113317	defer googleapi.CloseBody(res)
113318	if err := googleapi.CheckResponse(res); err != nil {
113319		return nil, err
113320	}
113321	ret := &NodeGroupList{
113322		ServerResponse: googleapi.ServerResponse{
113323			Header:         res.Header,
113324			HTTPStatusCode: res.StatusCode,
113325		},
113326	}
113327	target := &ret
113328	if err := gensupport.DecodeResponse(target, res); err != nil {
113329		return nil, err
113330	}
113331	return ret, nil
113332	// {
113333	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
113334	//   "httpMethod": "GET",
113335	//   "id": "compute.nodeGroups.list",
113336	//   "parameterOrder": [
113337	//     "project",
113338	//     "zone"
113339	//   ],
113340	//   "parameters": {
113341	//     "filter": {
113342	//       "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) ```",
113343	//       "location": "query",
113344	//       "type": "string"
113345	//     },
113346	//     "maxResults": {
113347	//       "default": "500",
113348	//       "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`)",
113349	//       "format": "uint32",
113350	//       "location": "query",
113351	//       "minimum": "0",
113352	//       "type": "integer"
113353	//     },
113354	//     "orderBy": {
113355	//       "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.",
113356	//       "location": "query",
113357	//       "type": "string"
113358	//     },
113359	//     "pageToken": {
113360	//       "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.",
113361	//       "location": "query",
113362	//       "type": "string"
113363	//     },
113364	//     "project": {
113365	//       "description": "Project ID for this request.",
113366	//       "location": "path",
113367	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113368	//       "required": true,
113369	//       "type": "string"
113370	//     },
113371	//     "returnPartialSuccess": {
113372	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
113373	//       "location": "query",
113374	//       "type": "boolean"
113375	//     },
113376	//     "zone": {
113377	//       "description": "The name of the zone for this request.",
113378	//       "location": "path",
113379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113380	//       "required": true,
113381	//       "type": "string"
113382	//     }
113383	//   },
113384	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
113385	//   "response": {
113386	//     "$ref": "NodeGroupList"
113387	//   },
113388	//   "scopes": [
113389	//     "https://www.googleapis.com/auth/cloud-platform",
113390	//     "https://www.googleapis.com/auth/compute",
113391	//     "https://www.googleapis.com/auth/compute.readonly"
113392	//   ]
113393	// }
113394
113395}
113396
113397// Pages invokes f for each page of results.
113398// A non-nil error returned from f will halt the iteration.
113399// The provided context supersedes any context provided to the Context method.
113400func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
113401	c.ctx_ = ctx
113402	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
113403	for {
113404		x, err := c.Do()
113405		if err != nil {
113406			return err
113407		}
113408		if err := f(x); err != nil {
113409			return err
113410		}
113411		if x.NextPageToken == "" {
113412			return nil
113413		}
113414		c.PageToken(x.NextPageToken)
113415	}
113416}
113417
113418// method id "compute.nodeGroups.listNodes":
113419
113420type NodeGroupsListNodesCall struct {
113421	s          *Service
113422	project    string
113423	zone       string
113424	nodeGroup  string
113425	urlParams_ gensupport.URLParams
113426	ctx_       context.Context
113427	header_    http.Header
113428}
113429
113430// ListNodes: Lists nodes in the node group.
113431//
113432// - nodeGroup: Name of the NodeGroup resource whose nodes you want to
113433//   list.
113434// - project: Project ID for this request.
113435// - zone: The name of the zone for this request.
113436func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
113437	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113438	c.project = project
113439	c.zone = zone
113440	c.nodeGroup = nodeGroup
113441	return c
113442}
113443
113444// Filter sets the optional parameter "filter": A filter expression that
113445// filters resources listed in the response. The expression must specify
113446// the field name, a comparison operator, and the value that you want to
113447// use for filtering. The value must be a string, a number, or a
113448// boolean. The comparison operator must be either `=`, `!=`, `>`, or
113449// `<`.
113450//
113451// For example, if you are filtering Compute Engine instances, you can
113452// exclude instances named `example-instance` by specifying `name !=
113453// example-instance`.
113454//
113455// You can also filter nested fields. For example, you could specify
113456// `scheduling.automaticRestart = false` to include instances only if
113457// they are not scheduled for automatic restarts. You can use filtering
113458// on nested fields to filter based on resource labels.
113459//
113460// To filter on multiple expressions, provide each separate expression
113461// within parentheses. For example: ``` (scheduling.automaticRestart =
113462// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
113463// is an `AND` expression. However, you can include `AND` and `OR`
113464// expressions explicitly. For example: ``` (cpuPlatform = "Intel
113465// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
113466// (scheduling.automaticRestart = true) ```
113467func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
113468	c.urlParams_.Set("filter", filter)
113469	return c
113470}
113471
113472// MaxResults sets the optional parameter "maxResults": The maximum
113473// number of results per page that should be returned. If the number of
113474// available results is larger than `maxResults`, Compute Engine returns
113475// a `nextPageToken` that can be used to get the next page of results in
113476// subsequent list requests. Acceptable values are `0` to `500`,
113477// inclusive. (Default: `500`)
113478func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
113479	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113480	return c
113481}
113482
113483// OrderBy sets the optional parameter "orderBy": Sorts list results by
113484// a certain order. By default, results are returned in alphanumerical
113485// order based on the resource name.
113486//
113487// You can also sort results in descending order based on the creation
113488// timestamp using `orderBy="creationTimestamp desc". This sorts
113489// results based on the `creationTimestamp` field in reverse
113490// chronological order (newest result first). Use this to sort resources
113491// like operations so that the newest operation is returned
113492// first.
113493//
113494// Currently, only sorting by `name` or `creationTimestamp desc` is
113495// supported.
113496func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
113497	c.urlParams_.Set("orderBy", orderBy)
113498	return c
113499}
113500
113501// PageToken sets the optional parameter "pageToken": Specifies a page
113502// token to use. Set `pageToken` to the `nextPageToken` returned by a
113503// previous list request to get the next page of results.
113504func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
113505	c.urlParams_.Set("pageToken", pageToken)
113506	return c
113507}
113508
113509// ReturnPartialSuccess sets the optional parameter
113510// "returnPartialSuccess": Opt-in for partial success behavior which
113511// provides partial results in case of failure. The default value is
113512// false.
113513func (c *NodeGroupsListNodesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListNodesCall {
113514	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
113515	return c
113516}
113517
113518// Fields allows partial responses to be retrieved. See
113519// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113520// for more information.
113521func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
113522	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113523	return c
113524}
113525
113526// Context sets the context to be used in this call's Do method. Any
113527// pending HTTP request will be aborted if the provided context is
113528// canceled.
113529func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
113530	c.ctx_ = ctx
113531	return c
113532}
113533
113534// Header returns an http.Header that can be modified by the caller to
113535// add HTTP headers to the request.
113536func (c *NodeGroupsListNodesCall) Header() http.Header {
113537	if c.header_ == nil {
113538		c.header_ = make(http.Header)
113539	}
113540	return c.header_
113541}
113542
113543func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
113544	reqHeaders := make(http.Header)
113545	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113546	for k, v := range c.header_ {
113547		reqHeaders[k] = v
113548	}
113549	reqHeaders.Set("User-Agent", c.s.userAgent())
113550	var body io.Reader = nil
113551	c.urlParams_.Set("alt", alt)
113552	c.urlParams_.Set("prettyPrint", "false")
113553	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
113554	urls += "?" + c.urlParams_.Encode()
113555	req, err := http.NewRequest("POST", urls, body)
113556	if err != nil {
113557		return nil, err
113558	}
113559	req.Header = reqHeaders
113560	googleapi.Expand(req.URL, map[string]string{
113561		"project":   c.project,
113562		"zone":      c.zone,
113563		"nodeGroup": c.nodeGroup,
113564	})
113565	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113566}
113567
113568// Do executes the "compute.nodeGroups.listNodes" call.
113569// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
113570// non-2xx status code is an error. Response headers are in either
113571// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
113572// returned at all) in error.(*googleapi.Error).Header. Use
113573// googleapi.IsNotModified to check whether the returned error was
113574// because http.StatusNotModified was returned.
113575func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
113576	gensupport.SetOptions(c.urlParams_, opts...)
113577	res, err := c.doRequest("json")
113578	if res != nil && res.StatusCode == http.StatusNotModified {
113579		if res.Body != nil {
113580			res.Body.Close()
113581		}
113582		return nil, &googleapi.Error{
113583			Code:   res.StatusCode,
113584			Header: res.Header,
113585		}
113586	}
113587	if err != nil {
113588		return nil, err
113589	}
113590	defer googleapi.CloseBody(res)
113591	if err := googleapi.CheckResponse(res); err != nil {
113592		return nil, err
113593	}
113594	ret := &NodeGroupsListNodes{
113595		ServerResponse: googleapi.ServerResponse{
113596			Header:         res.Header,
113597			HTTPStatusCode: res.StatusCode,
113598		},
113599	}
113600	target := &ret
113601	if err := gensupport.DecodeResponse(target, res); err != nil {
113602		return nil, err
113603	}
113604	return ret, nil
113605	// {
113606	//   "description": "Lists nodes in the node group.",
113607	//   "httpMethod": "POST",
113608	//   "id": "compute.nodeGroups.listNodes",
113609	//   "parameterOrder": [
113610	//     "project",
113611	//     "zone",
113612	//     "nodeGroup"
113613	//   ],
113614	//   "parameters": {
113615	//     "filter": {
113616	//       "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) ```",
113617	//       "location": "query",
113618	//       "type": "string"
113619	//     },
113620	//     "maxResults": {
113621	//       "default": "500",
113622	//       "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`)",
113623	//       "format": "uint32",
113624	//       "location": "query",
113625	//       "minimum": "0",
113626	//       "type": "integer"
113627	//     },
113628	//     "nodeGroup": {
113629	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
113630	//       "location": "path",
113631	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113632	//       "required": true,
113633	//       "type": "string"
113634	//     },
113635	//     "orderBy": {
113636	//       "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.",
113637	//       "location": "query",
113638	//       "type": "string"
113639	//     },
113640	//     "pageToken": {
113641	//       "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.",
113642	//       "location": "query",
113643	//       "type": "string"
113644	//     },
113645	//     "project": {
113646	//       "description": "Project ID for this request.",
113647	//       "location": "path",
113648	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113649	//       "required": true,
113650	//       "type": "string"
113651	//     },
113652	//     "returnPartialSuccess": {
113653	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
113654	//       "location": "query",
113655	//       "type": "boolean"
113656	//     },
113657	//     "zone": {
113658	//       "description": "The name of the zone for this request.",
113659	//       "location": "path",
113660	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113661	//       "required": true,
113662	//       "type": "string"
113663	//     }
113664	//   },
113665	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
113666	//   "response": {
113667	//     "$ref": "NodeGroupsListNodes"
113668	//   },
113669	//   "scopes": [
113670	//     "https://www.googleapis.com/auth/cloud-platform",
113671	//     "https://www.googleapis.com/auth/compute",
113672	//     "https://www.googleapis.com/auth/compute.readonly"
113673	//   ]
113674	// }
113675
113676}
113677
113678// Pages invokes f for each page of results.
113679// A non-nil error returned from f will halt the iteration.
113680// The provided context supersedes any context provided to the Context method.
113681func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
113682	c.ctx_ = ctx
113683	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
113684	for {
113685		x, err := c.Do()
113686		if err != nil {
113687			return err
113688		}
113689		if err := f(x); err != nil {
113690			return err
113691		}
113692		if x.NextPageToken == "" {
113693			return nil
113694		}
113695		c.PageToken(x.NextPageToken)
113696	}
113697}
113698
113699// method id "compute.nodeGroups.patch":
113700
113701type NodeGroupsPatchCall struct {
113702	s          *Service
113703	project    string
113704	zone       string
113705	nodeGroup  string
113706	nodegroup  *NodeGroup
113707	urlParams_ gensupport.URLParams
113708	ctx_       context.Context
113709	header_    http.Header
113710}
113711
113712// Patch: Updates the specified node group.
113713//
113714// - nodeGroup: Name of the NodeGroup resource to update.
113715// - project: Project ID for this request.
113716// - zone: The name of the zone for this request.
113717func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
113718	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113719	c.project = project
113720	c.zone = zone
113721	c.nodeGroup = nodeGroup
113722	c.nodegroup = nodegroup
113723	return c
113724}
113725
113726// RequestId sets the optional parameter "requestId": An optional
113727// request ID to identify requests. Specify a unique request ID so that
113728// if you must retry your request, the server will know to ignore the
113729// request if it has already been completed.
113730//
113731// For example, consider a situation where you make an initial request
113732// and the request times out. If you make the request again with the
113733// same request ID, the server can check if original operation with the
113734// same request ID was received, and if so, will ignore the second
113735// request. This prevents clients from accidentally creating duplicate
113736// commitments.
113737//
113738// The request ID must be a valid UUID with the exception that zero UUID
113739// is not supported (00000000-0000-0000-0000-000000000000).
113740func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
113741	c.urlParams_.Set("requestId", requestId)
113742	return c
113743}
113744
113745// Fields allows partial responses to be retrieved. See
113746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113747// for more information.
113748func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
113749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113750	return c
113751}
113752
113753// Context sets the context to be used in this call's Do method. Any
113754// pending HTTP request will be aborted if the provided context is
113755// canceled.
113756func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
113757	c.ctx_ = ctx
113758	return c
113759}
113760
113761// Header returns an http.Header that can be modified by the caller to
113762// add HTTP headers to the request.
113763func (c *NodeGroupsPatchCall) Header() http.Header {
113764	if c.header_ == nil {
113765		c.header_ = make(http.Header)
113766	}
113767	return c.header_
113768}
113769
113770func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
113771	reqHeaders := make(http.Header)
113772	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113773	for k, v := range c.header_ {
113774		reqHeaders[k] = v
113775	}
113776	reqHeaders.Set("User-Agent", c.s.userAgent())
113777	var body io.Reader = nil
113778	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
113779	if err != nil {
113780		return nil, err
113781	}
113782	reqHeaders.Set("Content-Type", "application/json")
113783	c.urlParams_.Set("alt", alt)
113784	c.urlParams_.Set("prettyPrint", "false")
113785	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
113786	urls += "?" + c.urlParams_.Encode()
113787	req, err := http.NewRequest("PATCH", urls, body)
113788	if err != nil {
113789		return nil, err
113790	}
113791	req.Header = reqHeaders
113792	googleapi.Expand(req.URL, map[string]string{
113793		"project":   c.project,
113794		"zone":      c.zone,
113795		"nodeGroup": c.nodeGroup,
113796	})
113797	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113798}
113799
113800// Do executes the "compute.nodeGroups.patch" call.
113801// Exactly one of *Operation or error will be non-nil. Any non-2xx
113802// status code is an error. Response headers are in either
113803// *Operation.ServerResponse.Header or (if a response was returned at
113804// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113805// to check whether the returned error was because
113806// http.StatusNotModified was returned.
113807func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113808	gensupport.SetOptions(c.urlParams_, opts...)
113809	res, err := c.doRequest("json")
113810	if res != nil && res.StatusCode == http.StatusNotModified {
113811		if res.Body != nil {
113812			res.Body.Close()
113813		}
113814		return nil, &googleapi.Error{
113815			Code:   res.StatusCode,
113816			Header: res.Header,
113817		}
113818	}
113819	if err != nil {
113820		return nil, err
113821	}
113822	defer googleapi.CloseBody(res)
113823	if err := googleapi.CheckResponse(res); err != nil {
113824		return nil, err
113825	}
113826	ret := &Operation{
113827		ServerResponse: googleapi.ServerResponse{
113828			Header:         res.Header,
113829			HTTPStatusCode: res.StatusCode,
113830		},
113831	}
113832	target := &ret
113833	if err := gensupport.DecodeResponse(target, res); err != nil {
113834		return nil, err
113835	}
113836	return ret, nil
113837	// {
113838	//   "description": "Updates the specified node group.",
113839	//   "httpMethod": "PATCH",
113840	//   "id": "compute.nodeGroups.patch",
113841	//   "parameterOrder": [
113842	//     "project",
113843	//     "zone",
113844	//     "nodeGroup"
113845	//   ],
113846	//   "parameters": {
113847	//     "nodeGroup": {
113848	//       "description": "Name of the NodeGroup resource to update.",
113849	//       "location": "path",
113850	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113851	//       "required": true,
113852	//       "type": "string"
113853	//     },
113854	//     "project": {
113855	//       "description": "Project ID for this request.",
113856	//       "location": "path",
113857	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113858	//       "required": true,
113859	//       "type": "string"
113860	//     },
113861	//     "requestId": {
113862	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113863	//       "location": "query",
113864	//       "type": "string"
113865	//     },
113866	//     "zone": {
113867	//       "description": "The name of the zone for this request.",
113868	//       "location": "path",
113869	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113870	//       "required": true,
113871	//       "type": "string"
113872	//     }
113873	//   },
113874	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
113875	//   "request": {
113876	//     "$ref": "NodeGroup"
113877	//   },
113878	//   "response": {
113879	//     "$ref": "Operation"
113880	//   },
113881	//   "scopes": [
113882	//     "https://www.googleapis.com/auth/cloud-platform",
113883	//     "https://www.googleapis.com/auth/compute"
113884	//   ]
113885	// }
113886
113887}
113888
113889// method id "compute.nodeGroups.setIamPolicy":
113890
113891type NodeGroupsSetIamPolicyCall struct {
113892	s                    *Service
113893	project              string
113894	zone                 string
113895	resource             string
113896	zonesetpolicyrequest *ZoneSetPolicyRequest
113897	urlParams_           gensupport.URLParams
113898	ctx_                 context.Context
113899	header_              http.Header
113900}
113901
113902// SetIamPolicy: Sets the access control policy on the specified
113903// resource. Replaces any existing policy.
113904//
113905// - project: Project ID for this request.
113906// - resource: Name or id of the resource for this request.
113907// - zone: The name of the zone for this request.
113908func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
113909	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113910	c.project = project
113911	c.zone = zone
113912	c.resource = resource
113913	c.zonesetpolicyrequest = zonesetpolicyrequest
113914	return c
113915}
113916
113917// Fields allows partial responses to be retrieved. See
113918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113919// for more information.
113920func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
113921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113922	return c
113923}
113924
113925// Context sets the context to be used in this call's Do method. Any
113926// pending HTTP request will be aborted if the provided context is
113927// canceled.
113928func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
113929	c.ctx_ = ctx
113930	return c
113931}
113932
113933// Header returns an http.Header that can be modified by the caller to
113934// add HTTP headers to the request.
113935func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
113936	if c.header_ == nil {
113937		c.header_ = make(http.Header)
113938	}
113939	return c.header_
113940}
113941
113942func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
113943	reqHeaders := make(http.Header)
113944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113945	for k, v := range c.header_ {
113946		reqHeaders[k] = v
113947	}
113948	reqHeaders.Set("User-Agent", c.s.userAgent())
113949	var body io.Reader = nil
113950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
113951	if err != nil {
113952		return nil, err
113953	}
113954	reqHeaders.Set("Content-Type", "application/json")
113955	c.urlParams_.Set("alt", alt)
113956	c.urlParams_.Set("prettyPrint", "false")
113957	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
113958	urls += "?" + c.urlParams_.Encode()
113959	req, err := http.NewRequest("POST", urls, body)
113960	if err != nil {
113961		return nil, err
113962	}
113963	req.Header = reqHeaders
113964	googleapi.Expand(req.URL, map[string]string{
113965		"project":  c.project,
113966		"zone":     c.zone,
113967		"resource": c.resource,
113968	})
113969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113970}
113971
113972// Do executes the "compute.nodeGroups.setIamPolicy" call.
113973// Exactly one of *Policy or error will be non-nil. Any non-2xx status
113974// code is an error. Response headers are in either
113975// *Policy.ServerResponse.Header or (if a response was returned at all)
113976// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
113977// check whether the returned error was because http.StatusNotModified
113978// was returned.
113979func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
113980	gensupport.SetOptions(c.urlParams_, opts...)
113981	res, err := c.doRequest("json")
113982	if res != nil && res.StatusCode == http.StatusNotModified {
113983		if res.Body != nil {
113984			res.Body.Close()
113985		}
113986		return nil, &googleapi.Error{
113987			Code:   res.StatusCode,
113988			Header: res.Header,
113989		}
113990	}
113991	if err != nil {
113992		return nil, err
113993	}
113994	defer googleapi.CloseBody(res)
113995	if err := googleapi.CheckResponse(res); err != nil {
113996		return nil, err
113997	}
113998	ret := &Policy{
113999		ServerResponse: googleapi.ServerResponse{
114000			Header:         res.Header,
114001			HTTPStatusCode: res.StatusCode,
114002		},
114003	}
114004	target := &ret
114005	if err := gensupport.DecodeResponse(target, res); err != nil {
114006		return nil, err
114007	}
114008	return ret, nil
114009	// {
114010	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
114011	//   "httpMethod": "POST",
114012	//   "id": "compute.nodeGroups.setIamPolicy",
114013	//   "parameterOrder": [
114014	//     "project",
114015	//     "zone",
114016	//     "resource"
114017	//   ],
114018	//   "parameters": {
114019	//     "project": {
114020	//       "description": "Project ID for this request.",
114021	//       "location": "path",
114022	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114023	//       "required": true,
114024	//       "type": "string"
114025	//     },
114026	//     "resource": {
114027	//       "description": "Name or id of the resource for this request.",
114028	//       "location": "path",
114029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114030	//       "required": true,
114031	//       "type": "string"
114032	//     },
114033	//     "zone": {
114034	//       "description": "The name of the zone for this request.",
114035	//       "location": "path",
114036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114037	//       "required": true,
114038	//       "type": "string"
114039	//     }
114040	//   },
114041	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
114042	//   "request": {
114043	//     "$ref": "ZoneSetPolicyRequest"
114044	//   },
114045	//   "response": {
114046	//     "$ref": "Policy"
114047	//   },
114048	//   "scopes": [
114049	//     "https://www.googleapis.com/auth/cloud-platform",
114050	//     "https://www.googleapis.com/auth/compute"
114051	//   ]
114052	// }
114053
114054}
114055
114056// method id "compute.nodeGroups.setNodeTemplate":
114057
114058type NodeGroupsSetNodeTemplateCall struct {
114059	s                                *Service
114060	project                          string
114061	zone                             string
114062	nodeGroup                        string
114063	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
114064	urlParams_                       gensupport.URLParams
114065	ctx_                             context.Context
114066	header_                          http.Header
114067}
114068
114069// SetNodeTemplate: Updates the node template of the node group.
114070//
114071// - nodeGroup: Name of the NodeGroup resource to update.
114072// - project: Project ID for this request.
114073// - zone: The name of the zone for this request.
114074func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
114075	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114076	c.project = project
114077	c.zone = zone
114078	c.nodeGroup = nodeGroup
114079	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
114080	return c
114081}
114082
114083// RequestId sets the optional parameter "requestId": An optional
114084// request ID to identify requests. Specify a unique request ID so that
114085// if you must retry your request, the server will know to ignore the
114086// request if it has already been completed.
114087//
114088// For example, consider a situation where you make an initial request
114089// and the request times out. If you make the request again with the
114090// same request ID, the server can check if original operation with the
114091// same request ID was received, and if so, will ignore the second
114092// request. This prevents clients from accidentally creating duplicate
114093// commitments.
114094//
114095// The request ID must be a valid UUID with the exception that zero UUID
114096// is not supported (00000000-0000-0000-0000-000000000000).
114097func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
114098	c.urlParams_.Set("requestId", requestId)
114099	return c
114100}
114101
114102// Fields allows partial responses to be retrieved. See
114103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114104// for more information.
114105func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
114106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114107	return c
114108}
114109
114110// Context sets the context to be used in this call's Do method. Any
114111// pending HTTP request will be aborted if the provided context is
114112// canceled.
114113func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
114114	c.ctx_ = ctx
114115	return c
114116}
114117
114118// Header returns an http.Header that can be modified by the caller to
114119// add HTTP headers to the request.
114120func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
114121	if c.header_ == nil {
114122		c.header_ = make(http.Header)
114123	}
114124	return c.header_
114125}
114126
114127func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
114128	reqHeaders := make(http.Header)
114129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114130	for k, v := range c.header_ {
114131		reqHeaders[k] = v
114132	}
114133	reqHeaders.Set("User-Agent", c.s.userAgent())
114134	var body io.Reader = nil
114135	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
114136	if err != nil {
114137		return nil, err
114138	}
114139	reqHeaders.Set("Content-Type", "application/json")
114140	c.urlParams_.Set("alt", alt)
114141	c.urlParams_.Set("prettyPrint", "false")
114142	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
114143	urls += "?" + c.urlParams_.Encode()
114144	req, err := http.NewRequest("POST", urls, body)
114145	if err != nil {
114146		return nil, err
114147	}
114148	req.Header = reqHeaders
114149	googleapi.Expand(req.URL, map[string]string{
114150		"project":   c.project,
114151		"zone":      c.zone,
114152		"nodeGroup": c.nodeGroup,
114153	})
114154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114155}
114156
114157// Do executes the "compute.nodeGroups.setNodeTemplate" call.
114158// Exactly one of *Operation or error will be non-nil. Any non-2xx
114159// status code is an error. Response headers are in either
114160// *Operation.ServerResponse.Header or (if a response was returned at
114161// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114162// to check whether the returned error was because
114163// http.StatusNotModified was returned.
114164func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114165	gensupport.SetOptions(c.urlParams_, opts...)
114166	res, err := c.doRequest("json")
114167	if res != nil && res.StatusCode == http.StatusNotModified {
114168		if res.Body != nil {
114169			res.Body.Close()
114170		}
114171		return nil, &googleapi.Error{
114172			Code:   res.StatusCode,
114173			Header: res.Header,
114174		}
114175	}
114176	if err != nil {
114177		return nil, err
114178	}
114179	defer googleapi.CloseBody(res)
114180	if err := googleapi.CheckResponse(res); err != nil {
114181		return nil, err
114182	}
114183	ret := &Operation{
114184		ServerResponse: googleapi.ServerResponse{
114185			Header:         res.Header,
114186			HTTPStatusCode: res.StatusCode,
114187		},
114188	}
114189	target := &ret
114190	if err := gensupport.DecodeResponse(target, res); err != nil {
114191		return nil, err
114192	}
114193	return ret, nil
114194	// {
114195	//   "description": "Updates the node template of the node group.",
114196	//   "httpMethod": "POST",
114197	//   "id": "compute.nodeGroups.setNodeTemplate",
114198	//   "parameterOrder": [
114199	//     "project",
114200	//     "zone",
114201	//     "nodeGroup"
114202	//   ],
114203	//   "parameters": {
114204	//     "nodeGroup": {
114205	//       "description": "Name of the NodeGroup resource to update.",
114206	//       "location": "path",
114207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114208	//       "required": true,
114209	//       "type": "string"
114210	//     },
114211	//     "project": {
114212	//       "description": "Project ID for this request.",
114213	//       "location": "path",
114214	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114215	//       "required": true,
114216	//       "type": "string"
114217	//     },
114218	//     "requestId": {
114219	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114220	//       "location": "query",
114221	//       "type": "string"
114222	//     },
114223	//     "zone": {
114224	//       "description": "The name of the zone for this request.",
114225	//       "location": "path",
114226	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114227	//       "required": true,
114228	//       "type": "string"
114229	//     }
114230	//   },
114231	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
114232	//   "request": {
114233	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
114234	//   },
114235	//   "response": {
114236	//     "$ref": "Operation"
114237	//   },
114238	//   "scopes": [
114239	//     "https://www.googleapis.com/auth/cloud-platform",
114240	//     "https://www.googleapis.com/auth/compute"
114241	//   ]
114242	// }
114243
114244}
114245
114246// method id "compute.nodeGroups.testIamPermissions":
114247
114248type NodeGroupsTestIamPermissionsCall struct {
114249	s                      *Service
114250	project                string
114251	zone                   string
114252	resource               string
114253	testpermissionsrequest *TestPermissionsRequest
114254	urlParams_             gensupport.URLParams
114255	ctx_                   context.Context
114256	header_                http.Header
114257}
114258
114259// TestIamPermissions: Returns permissions that a caller has on the
114260// specified resource.
114261//
114262// - project: Project ID for this request.
114263// - resource: Name or id of the resource for this request.
114264// - zone: The name of the zone for this request.
114265func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
114266	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114267	c.project = project
114268	c.zone = zone
114269	c.resource = resource
114270	c.testpermissionsrequest = testpermissionsrequest
114271	return c
114272}
114273
114274// Fields allows partial responses to be retrieved. See
114275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114276// for more information.
114277func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
114278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114279	return c
114280}
114281
114282// Context sets the context to be used in this call's Do method. Any
114283// pending HTTP request will be aborted if the provided context is
114284// canceled.
114285func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
114286	c.ctx_ = ctx
114287	return c
114288}
114289
114290// Header returns an http.Header that can be modified by the caller to
114291// add HTTP headers to the request.
114292func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
114293	if c.header_ == nil {
114294		c.header_ = make(http.Header)
114295	}
114296	return c.header_
114297}
114298
114299func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
114300	reqHeaders := make(http.Header)
114301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114302	for k, v := range c.header_ {
114303		reqHeaders[k] = v
114304	}
114305	reqHeaders.Set("User-Agent", c.s.userAgent())
114306	var body io.Reader = nil
114307	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
114308	if err != nil {
114309		return nil, err
114310	}
114311	reqHeaders.Set("Content-Type", "application/json")
114312	c.urlParams_.Set("alt", alt)
114313	c.urlParams_.Set("prettyPrint", "false")
114314	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
114315	urls += "?" + c.urlParams_.Encode()
114316	req, err := http.NewRequest("POST", urls, body)
114317	if err != nil {
114318		return nil, err
114319	}
114320	req.Header = reqHeaders
114321	googleapi.Expand(req.URL, map[string]string{
114322		"project":  c.project,
114323		"zone":     c.zone,
114324		"resource": c.resource,
114325	})
114326	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114327}
114328
114329// Do executes the "compute.nodeGroups.testIamPermissions" call.
114330// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
114331// non-2xx status code is an error. Response headers are in either
114332// *TestPermissionsResponse.ServerResponse.Header or (if a response was
114333// returned at all) in error.(*googleapi.Error).Header. Use
114334// googleapi.IsNotModified to check whether the returned error was
114335// because http.StatusNotModified was returned.
114336func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
114337	gensupport.SetOptions(c.urlParams_, opts...)
114338	res, err := c.doRequest("json")
114339	if res != nil && res.StatusCode == http.StatusNotModified {
114340		if res.Body != nil {
114341			res.Body.Close()
114342		}
114343		return nil, &googleapi.Error{
114344			Code:   res.StatusCode,
114345			Header: res.Header,
114346		}
114347	}
114348	if err != nil {
114349		return nil, err
114350	}
114351	defer googleapi.CloseBody(res)
114352	if err := googleapi.CheckResponse(res); err != nil {
114353		return nil, err
114354	}
114355	ret := &TestPermissionsResponse{
114356		ServerResponse: googleapi.ServerResponse{
114357			Header:         res.Header,
114358			HTTPStatusCode: res.StatusCode,
114359		},
114360	}
114361	target := &ret
114362	if err := gensupport.DecodeResponse(target, res); err != nil {
114363		return nil, err
114364	}
114365	return ret, nil
114366	// {
114367	//   "description": "Returns permissions that a caller has on the specified resource.",
114368	//   "httpMethod": "POST",
114369	//   "id": "compute.nodeGroups.testIamPermissions",
114370	//   "parameterOrder": [
114371	//     "project",
114372	//     "zone",
114373	//     "resource"
114374	//   ],
114375	//   "parameters": {
114376	//     "project": {
114377	//       "description": "Project ID for this request.",
114378	//       "location": "path",
114379	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114380	//       "required": true,
114381	//       "type": "string"
114382	//     },
114383	//     "resource": {
114384	//       "description": "Name or id of the resource for this request.",
114385	//       "location": "path",
114386	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114387	//       "required": true,
114388	//       "type": "string"
114389	//     },
114390	//     "zone": {
114391	//       "description": "The name of the zone for this request.",
114392	//       "location": "path",
114393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114394	//       "required": true,
114395	//       "type": "string"
114396	//     }
114397	//   },
114398	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
114399	//   "request": {
114400	//     "$ref": "TestPermissionsRequest"
114401	//   },
114402	//   "response": {
114403	//     "$ref": "TestPermissionsResponse"
114404	//   },
114405	//   "scopes": [
114406	//     "https://www.googleapis.com/auth/cloud-platform",
114407	//     "https://www.googleapis.com/auth/compute",
114408	//     "https://www.googleapis.com/auth/compute.readonly"
114409	//   ]
114410	// }
114411
114412}
114413
114414// method id "compute.nodeTemplates.aggregatedList":
114415
114416type NodeTemplatesAggregatedListCall struct {
114417	s            *Service
114418	project      string
114419	urlParams_   gensupport.URLParams
114420	ifNoneMatch_ string
114421	ctx_         context.Context
114422	header_      http.Header
114423}
114424
114425// AggregatedList: Retrieves an aggregated list of node templates.
114426//
114427// - project: Project ID for this request.
114428func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
114429	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114430	c.project = project
114431	return c
114432}
114433
114434// Filter sets the optional parameter "filter": A filter expression that
114435// filters resources listed in the response. The expression must specify
114436// the field name, a comparison operator, and the value that you want to
114437// use for filtering. The value must be a string, a number, or a
114438// boolean. The comparison operator must be either `=`, `!=`, `>`, or
114439// `<`.
114440//
114441// For example, if you are filtering Compute Engine instances, you can
114442// exclude instances named `example-instance` by specifying `name !=
114443// example-instance`.
114444//
114445// You can also filter nested fields. For example, you could specify
114446// `scheduling.automaticRestart = false` to include instances only if
114447// they are not scheduled for automatic restarts. You can use filtering
114448// on nested fields to filter based on resource labels.
114449//
114450// To filter on multiple expressions, provide each separate expression
114451// within parentheses. For example: ``` (scheduling.automaticRestart =
114452// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
114453// is an `AND` expression. However, you can include `AND` and `OR`
114454// expressions explicitly. For example: ``` (cpuPlatform = "Intel
114455// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
114456// (scheduling.automaticRestart = true) ```
114457func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
114458	c.urlParams_.Set("filter", filter)
114459	return c
114460}
114461
114462// IncludeAllScopes sets the optional parameter "includeAllScopes":
114463// Indicates whether every visible scope for each scope type (zone,
114464// region, global) should be included in the response. For new resource
114465// types added after this field, the flag has no effect as new resource
114466// types will always include every visible scope for each scope type in
114467// response. For resource types which predate this field, if this flag
114468// is omitted or false, only scopes of the scope types where the
114469// resource type is expected to be found will be included.
114470func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
114471	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
114472	return c
114473}
114474
114475// MaxResults sets the optional parameter "maxResults": The maximum
114476// number of results per page that should be returned. If the number of
114477// available results is larger than `maxResults`, Compute Engine returns
114478// a `nextPageToken` that can be used to get the next page of results in
114479// subsequent list requests. Acceptable values are `0` to `500`,
114480// inclusive. (Default: `500`)
114481func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
114482	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114483	return c
114484}
114485
114486// OrderBy sets the optional parameter "orderBy": Sorts list results by
114487// a certain order. By default, results are returned in alphanumerical
114488// order based on the resource name.
114489//
114490// You can also sort results in descending order based on the creation
114491// timestamp using `orderBy="creationTimestamp desc". This sorts
114492// results based on the `creationTimestamp` field in reverse
114493// chronological order (newest result first). Use this to sort resources
114494// like operations so that the newest operation is returned
114495// first.
114496//
114497// Currently, only sorting by `name` or `creationTimestamp desc` is
114498// supported.
114499func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
114500	c.urlParams_.Set("orderBy", orderBy)
114501	return c
114502}
114503
114504// PageToken sets the optional parameter "pageToken": Specifies a page
114505// token to use. Set `pageToken` to the `nextPageToken` returned by a
114506// previous list request to get the next page of results.
114507func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
114508	c.urlParams_.Set("pageToken", pageToken)
114509	return c
114510}
114511
114512// ReturnPartialSuccess sets the optional parameter
114513// "returnPartialSuccess": Opt-in for partial success behavior which
114514// provides partial results in case of failure. The default value is
114515// false.
114516func (c *NodeTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesAggregatedListCall {
114517	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
114518	return c
114519}
114520
114521// Fields allows partial responses to be retrieved. See
114522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114523// for more information.
114524func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
114525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114526	return c
114527}
114528
114529// IfNoneMatch sets the optional parameter which makes the operation
114530// fail if the object's ETag matches the given value. This is useful for
114531// getting updates only after the object has changed since the last
114532// request. Use googleapi.IsNotModified to check whether the response
114533// error from Do is the result of In-None-Match.
114534func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
114535	c.ifNoneMatch_ = entityTag
114536	return c
114537}
114538
114539// Context sets the context to be used in this call's Do method. Any
114540// pending HTTP request will be aborted if the provided context is
114541// canceled.
114542func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
114543	c.ctx_ = ctx
114544	return c
114545}
114546
114547// Header returns an http.Header that can be modified by the caller to
114548// add HTTP headers to the request.
114549func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
114550	if c.header_ == nil {
114551		c.header_ = make(http.Header)
114552	}
114553	return c.header_
114554}
114555
114556func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
114557	reqHeaders := make(http.Header)
114558	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114559	for k, v := range c.header_ {
114560		reqHeaders[k] = v
114561	}
114562	reqHeaders.Set("User-Agent", c.s.userAgent())
114563	if c.ifNoneMatch_ != "" {
114564		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114565	}
114566	var body io.Reader = nil
114567	c.urlParams_.Set("alt", alt)
114568	c.urlParams_.Set("prettyPrint", "false")
114569	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTemplates")
114570	urls += "?" + c.urlParams_.Encode()
114571	req, err := http.NewRequest("GET", urls, body)
114572	if err != nil {
114573		return nil, err
114574	}
114575	req.Header = reqHeaders
114576	googleapi.Expand(req.URL, map[string]string{
114577		"project": c.project,
114578	})
114579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114580}
114581
114582// Do executes the "compute.nodeTemplates.aggregatedList" call.
114583// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
114584// Any non-2xx status code is an error. Response headers are in either
114585// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
114586// was returned at all) in error.(*googleapi.Error).Header. Use
114587// googleapi.IsNotModified to check whether the returned error was
114588// because http.StatusNotModified was returned.
114589func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
114590	gensupport.SetOptions(c.urlParams_, opts...)
114591	res, err := c.doRequest("json")
114592	if res != nil && res.StatusCode == http.StatusNotModified {
114593		if res.Body != nil {
114594			res.Body.Close()
114595		}
114596		return nil, &googleapi.Error{
114597			Code:   res.StatusCode,
114598			Header: res.Header,
114599		}
114600	}
114601	if err != nil {
114602		return nil, err
114603	}
114604	defer googleapi.CloseBody(res)
114605	if err := googleapi.CheckResponse(res); err != nil {
114606		return nil, err
114607	}
114608	ret := &NodeTemplateAggregatedList{
114609		ServerResponse: googleapi.ServerResponse{
114610			Header:         res.Header,
114611			HTTPStatusCode: res.StatusCode,
114612		},
114613	}
114614	target := &ret
114615	if err := gensupport.DecodeResponse(target, res); err != nil {
114616		return nil, err
114617	}
114618	return ret, nil
114619	// {
114620	//   "description": "Retrieves an aggregated list of node templates.",
114621	//   "httpMethod": "GET",
114622	//   "id": "compute.nodeTemplates.aggregatedList",
114623	//   "parameterOrder": [
114624	//     "project"
114625	//   ],
114626	//   "parameters": {
114627	//     "filter": {
114628	//       "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) ```",
114629	//       "location": "query",
114630	//       "type": "string"
114631	//     },
114632	//     "includeAllScopes": {
114633	//       "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.",
114634	//       "location": "query",
114635	//       "type": "boolean"
114636	//     },
114637	//     "maxResults": {
114638	//       "default": "500",
114639	//       "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`)",
114640	//       "format": "uint32",
114641	//       "location": "query",
114642	//       "minimum": "0",
114643	//       "type": "integer"
114644	//     },
114645	//     "orderBy": {
114646	//       "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.",
114647	//       "location": "query",
114648	//       "type": "string"
114649	//     },
114650	//     "pageToken": {
114651	//       "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.",
114652	//       "location": "query",
114653	//       "type": "string"
114654	//     },
114655	//     "project": {
114656	//       "description": "Project ID for this request.",
114657	//       "location": "path",
114658	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114659	//       "required": true,
114660	//       "type": "string"
114661	//     },
114662	//     "returnPartialSuccess": {
114663	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
114664	//       "location": "query",
114665	//       "type": "boolean"
114666	//     }
114667	//   },
114668	//   "path": "projects/{project}/aggregated/nodeTemplates",
114669	//   "response": {
114670	//     "$ref": "NodeTemplateAggregatedList"
114671	//   },
114672	//   "scopes": [
114673	//     "https://www.googleapis.com/auth/cloud-platform",
114674	//     "https://www.googleapis.com/auth/compute",
114675	//     "https://www.googleapis.com/auth/compute.readonly"
114676	//   ]
114677	// }
114678
114679}
114680
114681// Pages invokes f for each page of results.
114682// A non-nil error returned from f will halt the iteration.
114683// The provided context supersedes any context provided to the Context method.
114684func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
114685	c.ctx_ = ctx
114686	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114687	for {
114688		x, err := c.Do()
114689		if err != nil {
114690			return err
114691		}
114692		if err := f(x); err != nil {
114693			return err
114694		}
114695		if x.NextPageToken == "" {
114696			return nil
114697		}
114698		c.PageToken(x.NextPageToken)
114699	}
114700}
114701
114702// method id "compute.nodeTemplates.delete":
114703
114704type NodeTemplatesDeleteCall struct {
114705	s            *Service
114706	project      string
114707	region       string
114708	nodeTemplate string
114709	urlParams_   gensupport.URLParams
114710	ctx_         context.Context
114711	header_      http.Header
114712}
114713
114714// Delete: Deletes the specified NodeTemplate resource.
114715//
114716// - nodeTemplate: Name of the NodeTemplate resource to delete.
114717// - project: Project ID for this request.
114718// - region: The name of the region for this request.
114719func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
114720	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114721	c.project = project
114722	c.region = region
114723	c.nodeTemplate = nodeTemplate
114724	return c
114725}
114726
114727// RequestId sets the optional parameter "requestId": An optional
114728// request ID to identify requests. Specify a unique request ID so that
114729// if you must retry your request, the server will know to ignore the
114730// request if it has already been completed.
114731//
114732// For example, consider a situation where you make an initial request
114733// and the request times out. If you make the request again with the
114734// same request ID, the server can check if original operation with the
114735// same request ID was received, and if so, will ignore the second
114736// request. This prevents clients from accidentally creating duplicate
114737// commitments.
114738//
114739// The request ID must be a valid UUID with the exception that zero UUID
114740// is not supported (00000000-0000-0000-0000-000000000000).
114741func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
114742	c.urlParams_.Set("requestId", requestId)
114743	return c
114744}
114745
114746// Fields allows partial responses to be retrieved. See
114747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114748// for more information.
114749func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
114750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114751	return c
114752}
114753
114754// Context sets the context to be used in this call's Do method. Any
114755// pending HTTP request will be aborted if the provided context is
114756// canceled.
114757func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
114758	c.ctx_ = ctx
114759	return c
114760}
114761
114762// Header returns an http.Header that can be modified by the caller to
114763// add HTTP headers to the request.
114764func (c *NodeTemplatesDeleteCall) Header() http.Header {
114765	if c.header_ == nil {
114766		c.header_ = make(http.Header)
114767	}
114768	return c.header_
114769}
114770
114771func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
114772	reqHeaders := make(http.Header)
114773	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114774	for k, v := range c.header_ {
114775		reqHeaders[k] = v
114776	}
114777	reqHeaders.Set("User-Agent", c.s.userAgent())
114778	var body io.Reader = nil
114779	c.urlParams_.Set("alt", alt)
114780	c.urlParams_.Set("prettyPrint", "false")
114781	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
114782	urls += "?" + c.urlParams_.Encode()
114783	req, err := http.NewRequest("DELETE", urls, body)
114784	if err != nil {
114785		return nil, err
114786	}
114787	req.Header = reqHeaders
114788	googleapi.Expand(req.URL, map[string]string{
114789		"project":      c.project,
114790		"region":       c.region,
114791		"nodeTemplate": c.nodeTemplate,
114792	})
114793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114794}
114795
114796// Do executes the "compute.nodeTemplates.delete" call.
114797// Exactly one of *Operation or error will be non-nil. Any non-2xx
114798// status code is an error. Response headers are in either
114799// *Operation.ServerResponse.Header or (if a response was returned at
114800// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114801// to check whether the returned error was because
114802// http.StatusNotModified was returned.
114803func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114804	gensupport.SetOptions(c.urlParams_, opts...)
114805	res, err := c.doRequest("json")
114806	if res != nil && res.StatusCode == http.StatusNotModified {
114807		if res.Body != nil {
114808			res.Body.Close()
114809		}
114810		return nil, &googleapi.Error{
114811			Code:   res.StatusCode,
114812			Header: res.Header,
114813		}
114814	}
114815	if err != nil {
114816		return nil, err
114817	}
114818	defer googleapi.CloseBody(res)
114819	if err := googleapi.CheckResponse(res); err != nil {
114820		return nil, err
114821	}
114822	ret := &Operation{
114823		ServerResponse: googleapi.ServerResponse{
114824			Header:         res.Header,
114825			HTTPStatusCode: res.StatusCode,
114826		},
114827	}
114828	target := &ret
114829	if err := gensupport.DecodeResponse(target, res); err != nil {
114830		return nil, err
114831	}
114832	return ret, nil
114833	// {
114834	//   "description": "Deletes the specified NodeTemplate resource.",
114835	//   "httpMethod": "DELETE",
114836	//   "id": "compute.nodeTemplates.delete",
114837	//   "parameterOrder": [
114838	//     "project",
114839	//     "region",
114840	//     "nodeTemplate"
114841	//   ],
114842	//   "parameters": {
114843	//     "nodeTemplate": {
114844	//       "description": "Name of the NodeTemplate resource to delete.",
114845	//       "location": "path",
114846	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114847	//       "required": true,
114848	//       "type": "string"
114849	//     },
114850	//     "project": {
114851	//       "description": "Project ID for this request.",
114852	//       "location": "path",
114853	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114854	//       "required": true,
114855	//       "type": "string"
114856	//     },
114857	//     "region": {
114858	//       "description": "The name of the region for this request.",
114859	//       "location": "path",
114860	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114861	//       "required": true,
114862	//       "type": "string"
114863	//     },
114864	//     "requestId": {
114865	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114866	//       "location": "query",
114867	//       "type": "string"
114868	//     }
114869	//   },
114870	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
114871	//   "response": {
114872	//     "$ref": "Operation"
114873	//   },
114874	//   "scopes": [
114875	//     "https://www.googleapis.com/auth/cloud-platform",
114876	//     "https://www.googleapis.com/auth/compute"
114877	//   ]
114878	// }
114879
114880}
114881
114882// method id "compute.nodeTemplates.get":
114883
114884type NodeTemplatesGetCall struct {
114885	s            *Service
114886	project      string
114887	region       string
114888	nodeTemplate string
114889	urlParams_   gensupport.URLParams
114890	ifNoneMatch_ string
114891	ctx_         context.Context
114892	header_      http.Header
114893}
114894
114895// Get: Returns the specified node template. Gets a list of available
114896// node templates by making a list() request.
114897//
114898// - nodeTemplate: Name of the node template to return.
114899// - project: Project ID for this request.
114900// - region: The name of the region for this request.
114901func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
114902	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114903	c.project = project
114904	c.region = region
114905	c.nodeTemplate = nodeTemplate
114906	return c
114907}
114908
114909// Fields allows partial responses to be retrieved. See
114910// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114911// for more information.
114912func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
114913	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114914	return c
114915}
114916
114917// IfNoneMatch sets the optional parameter which makes the operation
114918// fail if the object's ETag matches the given value. This is useful for
114919// getting updates only after the object has changed since the last
114920// request. Use googleapi.IsNotModified to check whether the response
114921// error from Do is the result of In-None-Match.
114922func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
114923	c.ifNoneMatch_ = entityTag
114924	return c
114925}
114926
114927// Context sets the context to be used in this call's Do method. Any
114928// pending HTTP request will be aborted if the provided context is
114929// canceled.
114930func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
114931	c.ctx_ = ctx
114932	return c
114933}
114934
114935// Header returns an http.Header that can be modified by the caller to
114936// add HTTP headers to the request.
114937func (c *NodeTemplatesGetCall) Header() http.Header {
114938	if c.header_ == nil {
114939		c.header_ = make(http.Header)
114940	}
114941	return c.header_
114942}
114943
114944func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
114945	reqHeaders := make(http.Header)
114946	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114947	for k, v := range c.header_ {
114948		reqHeaders[k] = v
114949	}
114950	reqHeaders.Set("User-Agent", c.s.userAgent())
114951	if c.ifNoneMatch_ != "" {
114952		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114953	}
114954	var body io.Reader = nil
114955	c.urlParams_.Set("alt", alt)
114956	c.urlParams_.Set("prettyPrint", "false")
114957	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
114958	urls += "?" + c.urlParams_.Encode()
114959	req, err := http.NewRequest("GET", urls, body)
114960	if err != nil {
114961		return nil, err
114962	}
114963	req.Header = reqHeaders
114964	googleapi.Expand(req.URL, map[string]string{
114965		"project":      c.project,
114966		"region":       c.region,
114967		"nodeTemplate": c.nodeTemplate,
114968	})
114969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114970}
114971
114972// Do executes the "compute.nodeTemplates.get" call.
114973// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
114974// status code is an error. Response headers are in either
114975// *NodeTemplate.ServerResponse.Header or (if a response was returned at
114976// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114977// to check whether the returned error was because
114978// http.StatusNotModified was returned.
114979func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
114980	gensupport.SetOptions(c.urlParams_, opts...)
114981	res, err := c.doRequest("json")
114982	if res != nil && res.StatusCode == http.StatusNotModified {
114983		if res.Body != nil {
114984			res.Body.Close()
114985		}
114986		return nil, &googleapi.Error{
114987			Code:   res.StatusCode,
114988			Header: res.Header,
114989		}
114990	}
114991	if err != nil {
114992		return nil, err
114993	}
114994	defer googleapi.CloseBody(res)
114995	if err := googleapi.CheckResponse(res); err != nil {
114996		return nil, err
114997	}
114998	ret := &NodeTemplate{
114999		ServerResponse: googleapi.ServerResponse{
115000			Header:         res.Header,
115001			HTTPStatusCode: res.StatusCode,
115002		},
115003	}
115004	target := &ret
115005	if err := gensupport.DecodeResponse(target, res); err != nil {
115006		return nil, err
115007	}
115008	return ret, nil
115009	// {
115010	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
115011	//   "httpMethod": "GET",
115012	//   "id": "compute.nodeTemplates.get",
115013	//   "parameterOrder": [
115014	//     "project",
115015	//     "region",
115016	//     "nodeTemplate"
115017	//   ],
115018	//   "parameters": {
115019	//     "nodeTemplate": {
115020	//       "description": "Name of the node template to return.",
115021	//       "location": "path",
115022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115023	//       "required": true,
115024	//       "type": "string"
115025	//     },
115026	//     "project": {
115027	//       "description": "Project ID for this request.",
115028	//       "location": "path",
115029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115030	//       "required": true,
115031	//       "type": "string"
115032	//     },
115033	//     "region": {
115034	//       "description": "The name of the region for this request.",
115035	//       "location": "path",
115036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115037	//       "required": true,
115038	//       "type": "string"
115039	//     }
115040	//   },
115041	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
115042	//   "response": {
115043	//     "$ref": "NodeTemplate"
115044	//   },
115045	//   "scopes": [
115046	//     "https://www.googleapis.com/auth/cloud-platform",
115047	//     "https://www.googleapis.com/auth/compute",
115048	//     "https://www.googleapis.com/auth/compute.readonly"
115049	//   ]
115050	// }
115051
115052}
115053
115054// method id "compute.nodeTemplates.getIamPolicy":
115055
115056type NodeTemplatesGetIamPolicyCall struct {
115057	s            *Service
115058	project      string
115059	region       string
115060	resource     string
115061	urlParams_   gensupport.URLParams
115062	ifNoneMatch_ string
115063	ctx_         context.Context
115064	header_      http.Header
115065}
115066
115067// GetIamPolicy: Gets the access control policy for a resource. May be
115068// empty if no such policy or resource exists.
115069//
115070// - project: Project ID for this request.
115071// - region: The name of the region for this request.
115072// - resource: Name or id of the resource for this request.
115073func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
115074	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115075	c.project = project
115076	c.region = region
115077	c.resource = resource
115078	return c
115079}
115080
115081// OptionsRequestedPolicyVersion sets the optional parameter
115082// "optionsRequestedPolicyVersion": Requested IAM Policy version.
115083func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
115084	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
115085	return c
115086}
115087
115088// Fields allows partial responses to be retrieved. See
115089// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115090// for more information.
115091func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
115092	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115093	return c
115094}
115095
115096// IfNoneMatch sets the optional parameter which makes the operation
115097// fail if the object's ETag matches the given value. This is useful for
115098// getting updates only after the object has changed since the last
115099// request. Use googleapi.IsNotModified to check whether the response
115100// error from Do is the result of In-None-Match.
115101func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
115102	c.ifNoneMatch_ = entityTag
115103	return c
115104}
115105
115106// Context sets the context to be used in this call's Do method. Any
115107// pending HTTP request will be aborted if the provided context is
115108// canceled.
115109func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
115110	c.ctx_ = ctx
115111	return c
115112}
115113
115114// Header returns an http.Header that can be modified by the caller to
115115// add HTTP headers to the request.
115116func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
115117	if c.header_ == nil {
115118		c.header_ = make(http.Header)
115119	}
115120	return c.header_
115121}
115122
115123func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
115124	reqHeaders := make(http.Header)
115125	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115126	for k, v := range c.header_ {
115127		reqHeaders[k] = v
115128	}
115129	reqHeaders.Set("User-Agent", c.s.userAgent())
115130	if c.ifNoneMatch_ != "" {
115131		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115132	}
115133	var body io.Reader = nil
115134	c.urlParams_.Set("alt", alt)
115135	c.urlParams_.Set("prettyPrint", "false")
115136	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
115137	urls += "?" + c.urlParams_.Encode()
115138	req, err := http.NewRequest("GET", urls, body)
115139	if err != nil {
115140		return nil, err
115141	}
115142	req.Header = reqHeaders
115143	googleapi.Expand(req.URL, map[string]string{
115144		"project":  c.project,
115145		"region":   c.region,
115146		"resource": c.resource,
115147	})
115148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115149}
115150
115151// Do executes the "compute.nodeTemplates.getIamPolicy" call.
115152// Exactly one of *Policy or error will be non-nil. Any non-2xx status
115153// code is an error. Response headers are in either
115154// *Policy.ServerResponse.Header or (if a response was returned at all)
115155// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
115156// check whether the returned error was because http.StatusNotModified
115157// was returned.
115158func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
115159	gensupport.SetOptions(c.urlParams_, opts...)
115160	res, err := c.doRequest("json")
115161	if res != nil && res.StatusCode == http.StatusNotModified {
115162		if res.Body != nil {
115163			res.Body.Close()
115164		}
115165		return nil, &googleapi.Error{
115166			Code:   res.StatusCode,
115167			Header: res.Header,
115168		}
115169	}
115170	if err != nil {
115171		return nil, err
115172	}
115173	defer googleapi.CloseBody(res)
115174	if err := googleapi.CheckResponse(res); err != nil {
115175		return nil, err
115176	}
115177	ret := &Policy{
115178		ServerResponse: googleapi.ServerResponse{
115179			Header:         res.Header,
115180			HTTPStatusCode: res.StatusCode,
115181		},
115182	}
115183	target := &ret
115184	if err := gensupport.DecodeResponse(target, res); err != nil {
115185		return nil, err
115186	}
115187	return ret, nil
115188	// {
115189	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
115190	//   "httpMethod": "GET",
115191	//   "id": "compute.nodeTemplates.getIamPolicy",
115192	//   "parameterOrder": [
115193	//     "project",
115194	//     "region",
115195	//     "resource"
115196	//   ],
115197	//   "parameters": {
115198	//     "optionsRequestedPolicyVersion": {
115199	//       "description": "Requested IAM Policy version.",
115200	//       "format": "int32",
115201	//       "location": "query",
115202	//       "type": "integer"
115203	//     },
115204	//     "project": {
115205	//       "description": "Project ID for this request.",
115206	//       "location": "path",
115207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115208	//       "required": true,
115209	//       "type": "string"
115210	//     },
115211	//     "region": {
115212	//       "description": "The name of the region for this request.",
115213	//       "location": "path",
115214	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115215	//       "required": true,
115216	//       "type": "string"
115217	//     },
115218	//     "resource": {
115219	//       "description": "Name or id of the resource for this request.",
115220	//       "location": "path",
115221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115222	//       "required": true,
115223	//       "type": "string"
115224	//     }
115225	//   },
115226	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
115227	//   "response": {
115228	//     "$ref": "Policy"
115229	//   },
115230	//   "scopes": [
115231	//     "https://www.googleapis.com/auth/cloud-platform",
115232	//     "https://www.googleapis.com/auth/compute",
115233	//     "https://www.googleapis.com/auth/compute.readonly"
115234	//   ]
115235	// }
115236
115237}
115238
115239// method id "compute.nodeTemplates.insert":
115240
115241type NodeTemplatesInsertCall struct {
115242	s            *Service
115243	project      string
115244	region       string
115245	nodetemplate *NodeTemplate
115246	urlParams_   gensupport.URLParams
115247	ctx_         context.Context
115248	header_      http.Header
115249}
115250
115251// Insert: Creates a NodeTemplate resource in the specified project
115252// using the data included in the request.
115253//
115254// - project: Project ID for this request.
115255// - region: The name of the region for this request.
115256func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
115257	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115258	c.project = project
115259	c.region = region
115260	c.nodetemplate = nodetemplate
115261	return c
115262}
115263
115264// RequestId sets the optional parameter "requestId": An optional
115265// request ID to identify requests. Specify a unique request ID so that
115266// if you must retry your request, the server will know to ignore the
115267// request if it has already been completed.
115268//
115269// For example, consider a situation where you make an initial request
115270// and the request times out. If you make the request again with the
115271// same request ID, the server can check if original operation with the
115272// same request ID was received, and if so, will ignore the second
115273// request. This prevents clients from accidentally creating duplicate
115274// commitments.
115275//
115276// The request ID must be a valid UUID with the exception that zero UUID
115277// is not supported (00000000-0000-0000-0000-000000000000).
115278func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
115279	c.urlParams_.Set("requestId", requestId)
115280	return c
115281}
115282
115283// Fields allows partial responses to be retrieved. See
115284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115285// for more information.
115286func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
115287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115288	return c
115289}
115290
115291// Context sets the context to be used in this call's Do method. Any
115292// pending HTTP request will be aborted if the provided context is
115293// canceled.
115294func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
115295	c.ctx_ = ctx
115296	return c
115297}
115298
115299// Header returns an http.Header that can be modified by the caller to
115300// add HTTP headers to the request.
115301func (c *NodeTemplatesInsertCall) Header() http.Header {
115302	if c.header_ == nil {
115303		c.header_ = make(http.Header)
115304	}
115305	return c.header_
115306}
115307
115308func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
115309	reqHeaders := make(http.Header)
115310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115311	for k, v := range c.header_ {
115312		reqHeaders[k] = v
115313	}
115314	reqHeaders.Set("User-Agent", c.s.userAgent())
115315	var body io.Reader = nil
115316	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
115317	if err != nil {
115318		return nil, err
115319	}
115320	reqHeaders.Set("Content-Type", "application/json")
115321	c.urlParams_.Set("alt", alt)
115322	c.urlParams_.Set("prettyPrint", "false")
115323	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
115324	urls += "?" + c.urlParams_.Encode()
115325	req, err := http.NewRequest("POST", urls, body)
115326	if err != nil {
115327		return nil, err
115328	}
115329	req.Header = reqHeaders
115330	googleapi.Expand(req.URL, map[string]string{
115331		"project": c.project,
115332		"region":  c.region,
115333	})
115334	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115335}
115336
115337// Do executes the "compute.nodeTemplates.insert" call.
115338// Exactly one of *Operation or error will be non-nil. Any non-2xx
115339// status code is an error. Response headers are in either
115340// *Operation.ServerResponse.Header or (if a response was returned at
115341// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115342// to check whether the returned error was because
115343// http.StatusNotModified was returned.
115344func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115345	gensupport.SetOptions(c.urlParams_, opts...)
115346	res, err := c.doRequest("json")
115347	if res != nil && res.StatusCode == http.StatusNotModified {
115348		if res.Body != nil {
115349			res.Body.Close()
115350		}
115351		return nil, &googleapi.Error{
115352			Code:   res.StatusCode,
115353			Header: res.Header,
115354		}
115355	}
115356	if err != nil {
115357		return nil, err
115358	}
115359	defer googleapi.CloseBody(res)
115360	if err := googleapi.CheckResponse(res); err != nil {
115361		return nil, err
115362	}
115363	ret := &Operation{
115364		ServerResponse: googleapi.ServerResponse{
115365			Header:         res.Header,
115366			HTTPStatusCode: res.StatusCode,
115367		},
115368	}
115369	target := &ret
115370	if err := gensupport.DecodeResponse(target, res); err != nil {
115371		return nil, err
115372	}
115373	return ret, nil
115374	// {
115375	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
115376	//   "httpMethod": "POST",
115377	//   "id": "compute.nodeTemplates.insert",
115378	//   "parameterOrder": [
115379	//     "project",
115380	//     "region"
115381	//   ],
115382	//   "parameters": {
115383	//     "project": {
115384	//       "description": "Project ID for this request.",
115385	//       "location": "path",
115386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115387	//       "required": true,
115388	//       "type": "string"
115389	//     },
115390	//     "region": {
115391	//       "description": "The name of the region for this request.",
115392	//       "location": "path",
115393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115394	//       "required": true,
115395	//       "type": "string"
115396	//     },
115397	//     "requestId": {
115398	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115399	//       "location": "query",
115400	//       "type": "string"
115401	//     }
115402	//   },
115403	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
115404	//   "request": {
115405	//     "$ref": "NodeTemplate"
115406	//   },
115407	//   "response": {
115408	//     "$ref": "Operation"
115409	//   },
115410	//   "scopes": [
115411	//     "https://www.googleapis.com/auth/cloud-platform",
115412	//     "https://www.googleapis.com/auth/compute"
115413	//   ]
115414	// }
115415
115416}
115417
115418// method id "compute.nodeTemplates.list":
115419
115420type NodeTemplatesListCall struct {
115421	s            *Service
115422	project      string
115423	region       string
115424	urlParams_   gensupport.URLParams
115425	ifNoneMatch_ string
115426	ctx_         context.Context
115427	header_      http.Header
115428}
115429
115430// List: Retrieves a list of node templates available to the specified
115431// project.
115432//
115433// - project: Project ID for this request.
115434// - region: The name of the region for this request.
115435func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
115436	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115437	c.project = project
115438	c.region = region
115439	return c
115440}
115441
115442// Filter sets the optional parameter "filter": A filter expression that
115443// filters resources listed in the response. The expression must specify
115444// the field name, a comparison operator, and the value that you want to
115445// use for filtering. The value must be a string, a number, or a
115446// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115447// `<`.
115448//
115449// For example, if you are filtering Compute Engine instances, you can
115450// exclude instances named `example-instance` by specifying `name !=
115451// example-instance`.
115452//
115453// You can also filter nested fields. For example, you could specify
115454// `scheduling.automaticRestart = false` to include instances only if
115455// they are not scheduled for automatic restarts. You can use filtering
115456// on nested fields to filter based on resource labels.
115457//
115458// To filter on multiple expressions, provide each separate expression
115459// within parentheses. For example: ``` (scheduling.automaticRestart =
115460// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
115461// is an `AND` expression. However, you can include `AND` and `OR`
115462// expressions explicitly. For example: ``` (cpuPlatform = "Intel
115463// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
115464// (scheduling.automaticRestart = true) ```
115465func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
115466	c.urlParams_.Set("filter", filter)
115467	return c
115468}
115469
115470// MaxResults sets the optional parameter "maxResults": The maximum
115471// number of results per page that should be returned. If the number of
115472// available results is larger than `maxResults`, Compute Engine returns
115473// a `nextPageToken` that can be used to get the next page of results in
115474// subsequent list requests. Acceptable values are `0` to `500`,
115475// inclusive. (Default: `500`)
115476func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
115477	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115478	return c
115479}
115480
115481// OrderBy sets the optional parameter "orderBy": Sorts list results by
115482// a certain order. By default, results are returned in alphanumerical
115483// order based on the resource name.
115484//
115485// You can also sort results in descending order based on the creation
115486// timestamp using `orderBy="creationTimestamp desc". This sorts
115487// results based on the `creationTimestamp` field in reverse
115488// chronological order (newest result first). Use this to sort resources
115489// like operations so that the newest operation is returned
115490// first.
115491//
115492// Currently, only sorting by `name` or `creationTimestamp desc` is
115493// supported.
115494func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
115495	c.urlParams_.Set("orderBy", orderBy)
115496	return c
115497}
115498
115499// PageToken sets the optional parameter "pageToken": Specifies a page
115500// token to use. Set `pageToken` to the `nextPageToken` returned by a
115501// previous list request to get the next page of results.
115502func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
115503	c.urlParams_.Set("pageToken", pageToken)
115504	return c
115505}
115506
115507// ReturnPartialSuccess sets the optional parameter
115508// "returnPartialSuccess": Opt-in for partial success behavior which
115509// provides partial results in case of failure. The default value is
115510// false.
115511func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesListCall {
115512	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
115513	return c
115514}
115515
115516// Fields allows partial responses to be retrieved. See
115517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115518// for more information.
115519func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
115520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115521	return c
115522}
115523
115524// IfNoneMatch sets the optional parameter which makes the operation
115525// fail if the object's ETag matches the given value. This is useful for
115526// getting updates only after the object has changed since the last
115527// request. Use googleapi.IsNotModified to check whether the response
115528// error from Do is the result of In-None-Match.
115529func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
115530	c.ifNoneMatch_ = entityTag
115531	return c
115532}
115533
115534// Context sets the context to be used in this call's Do method. Any
115535// pending HTTP request will be aborted if the provided context is
115536// canceled.
115537func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
115538	c.ctx_ = ctx
115539	return c
115540}
115541
115542// Header returns an http.Header that can be modified by the caller to
115543// add HTTP headers to the request.
115544func (c *NodeTemplatesListCall) Header() http.Header {
115545	if c.header_ == nil {
115546		c.header_ = make(http.Header)
115547	}
115548	return c.header_
115549}
115550
115551func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
115552	reqHeaders := make(http.Header)
115553	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115554	for k, v := range c.header_ {
115555		reqHeaders[k] = v
115556	}
115557	reqHeaders.Set("User-Agent", c.s.userAgent())
115558	if c.ifNoneMatch_ != "" {
115559		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115560	}
115561	var body io.Reader = nil
115562	c.urlParams_.Set("alt", alt)
115563	c.urlParams_.Set("prettyPrint", "false")
115564	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
115565	urls += "?" + c.urlParams_.Encode()
115566	req, err := http.NewRequest("GET", urls, body)
115567	if err != nil {
115568		return nil, err
115569	}
115570	req.Header = reqHeaders
115571	googleapi.Expand(req.URL, map[string]string{
115572		"project": c.project,
115573		"region":  c.region,
115574	})
115575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115576}
115577
115578// Do executes the "compute.nodeTemplates.list" call.
115579// Exactly one of *NodeTemplateList or error will be non-nil. Any
115580// non-2xx status code is an error. Response headers are in either
115581// *NodeTemplateList.ServerResponse.Header or (if a response was
115582// returned at all) in error.(*googleapi.Error).Header. Use
115583// googleapi.IsNotModified to check whether the returned error was
115584// because http.StatusNotModified was returned.
115585func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
115586	gensupport.SetOptions(c.urlParams_, opts...)
115587	res, err := c.doRequest("json")
115588	if res != nil && res.StatusCode == http.StatusNotModified {
115589		if res.Body != nil {
115590			res.Body.Close()
115591		}
115592		return nil, &googleapi.Error{
115593			Code:   res.StatusCode,
115594			Header: res.Header,
115595		}
115596	}
115597	if err != nil {
115598		return nil, err
115599	}
115600	defer googleapi.CloseBody(res)
115601	if err := googleapi.CheckResponse(res); err != nil {
115602		return nil, err
115603	}
115604	ret := &NodeTemplateList{
115605		ServerResponse: googleapi.ServerResponse{
115606			Header:         res.Header,
115607			HTTPStatusCode: res.StatusCode,
115608		},
115609	}
115610	target := &ret
115611	if err := gensupport.DecodeResponse(target, res); err != nil {
115612		return nil, err
115613	}
115614	return ret, nil
115615	// {
115616	//   "description": "Retrieves a list of node templates available to the specified project.",
115617	//   "httpMethod": "GET",
115618	//   "id": "compute.nodeTemplates.list",
115619	//   "parameterOrder": [
115620	//     "project",
115621	//     "region"
115622	//   ],
115623	//   "parameters": {
115624	//     "filter": {
115625	//       "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) ```",
115626	//       "location": "query",
115627	//       "type": "string"
115628	//     },
115629	//     "maxResults": {
115630	//       "default": "500",
115631	//       "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`)",
115632	//       "format": "uint32",
115633	//       "location": "query",
115634	//       "minimum": "0",
115635	//       "type": "integer"
115636	//     },
115637	//     "orderBy": {
115638	//       "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.",
115639	//       "location": "query",
115640	//       "type": "string"
115641	//     },
115642	//     "pageToken": {
115643	//       "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.",
115644	//       "location": "query",
115645	//       "type": "string"
115646	//     },
115647	//     "project": {
115648	//       "description": "Project ID for this request.",
115649	//       "location": "path",
115650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115651	//       "required": true,
115652	//       "type": "string"
115653	//     },
115654	//     "region": {
115655	//       "description": "The name of the region for this request.",
115656	//       "location": "path",
115657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115658	//       "required": true,
115659	//       "type": "string"
115660	//     },
115661	//     "returnPartialSuccess": {
115662	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
115663	//       "location": "query",
115664	//       "type": "boolean"
115665	//     }
115666	//   },
115667	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
115668	//   "response": {
115669	//     "$ref": "NodeTemplateList"
115670	//   },
115671	//   "scopes": [
115672	//     "https://www.googleapis.com/auth/cloud-platform",
115673	//     "https://www.googleapis.com/auth/compute",
115674	//     "https://www.googleapis.com/auth/compute.readonly"
115675	//   ]
115676	// }
115677
115678}
115679
115680// Pages invokes f for each page of results.
115681// A non-nil error returned from f will halt the iteration.
115682// The provided context supersedes any context provided to the Context method.
115683func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
115684	c.ctx_ = ctx
115685	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115686	for {
115687		x, err := c.Do()
115688		if err != nil {
115689			return err
115690		}
115691		if err := f(x); err != nil {
115692			return err
115693		}
115694		if x.NextPageToken == "" {
115695			return nil
115696		}
115697		c.PageToken(x.NextPageToken)
115698	}
115699}
115700
115701// method id "compute.nodeTemplates.setIamPolicy":
115702
115703type NodeTemplatesSetIamPolicyCall struct {
115704	s                      *Service
115705	project                string
115706	region                 string
115707	resource               string
115708	regionsetpolicyrequest *RegionSetPolicyRequest
115709	urlParams_             gensupport.URLParams
115710	ctx_                   context.Context
115711	header_                http.Header
115712}
115713
115714// SetIamPolicy: Sets the access control policy on the specified
115715// resource. Replaces any existing policy.
115716//
115717// - project: Project ID for this request.
115718// - region: The name of the region for this request.
115719// - resource: Name or id of the resource for this request.
115720func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
115721	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115722	c.project = project
115723	c.region = region
115724	c.resource = resource
115725	c.regionsetpolicyrequest = regionsetpolicyrequest
115726	return c
115727}
115728
115729// Fields allows partial responses to be retrieved. See
115730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115731// for more information.
115732func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
115733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115734	return c
115735}
115736
115737// Context sets the context to be used in this call's Do method. Any
115738// pending HTTP request will be aborted if the provided context is
115739// canceled.
115740func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
115741	c.ctx_ = ctx
115742	return c
115743}
115744
115745// Header returns an http.Header that can be modified by the caller to
115746// add HTTP headers to the request.
115747func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
115748	if c.header_ == nil {
115749		c.header_ = make(http.Header)
115750	}
115751	return c.header_
115752}
115753
115754func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
115755	reqHeaders := make(http.Header)
115756	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115757	for k, v := range c.header_ {
115758		reqHeaders[k] = v
115759	}
115760	reqHeaders.Set("User-Agent", c.s.userAgent())
115761	var body io.Reader = nil
115762	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
115763	if err != nil {
115764		return nil, err
115765	}
115766	reqHeaders.Set("Content-Type", "application/json")
115767	c.urlParams_.Set("alt", alt)
115768	c.urlParams_.Set("prettyPrint", "false")
115769	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
115770	urls += "?" + c.urlParams_.Encode()
115771	req, err := http.NewRequest("POST", urls, body)
115772	if err != nil {
115773		return nil, err
115774	}
115775	req.Header = reqHeaders
115776	googleapi.Expand(req.URL, map[string]string{
115777		"project":  c.project,
115778		"region":   c.region,
115779		"resource": c.resource,
115780	})
115781	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115782}
115783
115784// Do executes the "compute.nodeTemplates.setIamPolicy" call.
115785// Exactly one of *Policy or error will be non-nil. Any non-2xx status
115786// code is an error. Response headers are in either
115787// *Policy.ServerResponse.Header or (if a response was returned at all)
115788// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
115789// check whether the returned error was because http.StatusNotModified
115790// was returned.
115791func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
115792	gensupport.SetOptions(c.urlParams_, opts...)
115793	res, err := c.doRequest("json")
115794	if res != nil && res.StatusCode == http.StatusNotModified {
115795		if res.Body != nil {
115796			res.Body.Close()
115797		}
115798		return nil, &googleapi.Error{
115799			Code:   res.StatusCode,
115800			Header: res.Header,
115801		}
115802	}
115803	if err != nil {
115804		return nil, err
115805	}
115806	defer googleapi.CloseBody(res)
115807	if err := googleapi.CheckResponse(res); err != nil {
115808		return nil, err
115809	}
115810	ret := &Policy{
115811		ServerResponse: googleapi.ServerResponse{
115812			Header:         res.Header,
115813			HTTPStatusCode: res.StatusCode,
115814		},
115815	}
115816	target := &ret
115817	if err := gensupport.DecodeResponse(target, res); err != nil {
115818		return nil, err
115819	}
115820	return ret, nil
115821	// {
115822	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
115823	//   "httpMethod": "POST",
115824	//   "id": "compute.nodeTemplates.setIamPolicy",
115825	//   "parameterOrder": [
115826	//     "project",
115827	//     "region",
115828	//     "resource"
115829	//   ],
115830	//   "parameters": {
115831	//     "project": {
115832	//       "description": "Project ID for this request.",
115833	//       "location": "path",
115834	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115835	//       "required": true,
115836	//       "type": "string"
115837	//     },
115838	//     "region": {
115839	//       "description": "The name of the region for this request.",
115840	//       "location": "path",
115841	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115842	//       "required": true,
115843	//       "type": "string"
115844	//     },
115845	//     "resource": {
115846	//       "description": "Name or id of the resource for this request.",
115847	//       "location": "path",
115848	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115849	//       "required": true,
115850	//       "type": "string"
115851	//     }
115852	//   },
115853	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
115854	//   "request": {
115855	//     "$ref": "RegionSetPolicyRequest"
115856	//   },
115857	//   "response": {
115858	//     "$ref": "Policy"
115859	//   },
115860	//   "scopes": [
115861	//     "https://www.googleapis.com/auth/cloud-platform",
115862	//     "https://www.googleapis.com/auth/compute"
115863	//   ]
115864	// }
115865
115866}
115867
115868// method id "compute.nodeTemplates.testIamPermissions":
115869
115870type NodeTemplatesTestIamPermissionsCall struct {
115871	s                      *Service
115872	project                string
115873	region                 string
115874	resource               string
115875	testpermissionsrequest *TestPermissionsRequest
115876	urlParams_             gensupport.URLParams
115877	ctx_                   context.Context
115878	header_                http.Header
115879}
115880
115881// TestIamPermissions: Returns permissions that a caller has on the
115882// specified resource.
115883//
115884// - project: Project ID for this request.
115885// - region: The name of the region for this request.
115886// - resource: Name or id of the resource for this request.
115887func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
115888	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115889	c.project = project
115890	c.region = region
115891	c.resource = resource
115892	c.testpermissionsrequest = testpermissionsrequest
115893	return c
115894}
115895
115896// Fields allows partial responses to be retrieved. See
115897// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115898// for more information.
115899func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
115900	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115901	return c
115902}
115903
115904// Context sets the context to be used in this call's Do method. Any
115905// pending HTTP request will be aborted if the provided context is
115906// canceled.
115907func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
115908	c.ctx_ = ctx
115909	return c
115910}
115911
115912// Header returns an http.Header that can be modified by the caller to
115913// add HTTP headers to the request.
115914func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
115915	if c.header_ == nil {
115916		c.header_ = make(http.Header)
115917	}
115918	return c.header_
115919}
115920
115921func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
115922	reqHeaders := make(http.Header)
115923	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115924	for k, v := range c.header_ {
115925		reqHeaders[k] = v
115926	}
115927	reqHeaders.Set("User-Agent", c.s.userAgent())
115928	var body io.Reader = nil
115929	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
115930	if err != nil {
115931		return nil, err
115932	}
115933	reqHeaders.Set("Content-Type", "application/json")
115934	c.urlParams_.Set("alt", alt)
115935	c.urlParams_.Set("prettyPrint", "false")
115936	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
115937	urls += "?" + c.urlParams_.Encode()
115938	req, err := http.NewRequest("POST", urls, body)
115939	if err != nil {
115940		return nil, err
115941	}
115942	req.Header = reqHeaders
115943	googleapi.Expand(req.URL, map[string]string{
115944		"project":  c.project,
115945		"region":   c.region,
115946		"resource": c.resource,
115947	})
115948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115949}
115950
115951// Do executes the "compute.nodeTemplates.testIamPermissions" call.
115952// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
115953// non-2xx status code is an error. Response headers are in either
115954// *TestPermissionsResponse.ServerResponse.Header or (if a response was
115955// returned at all) in error.(*googleapi.Error).Header. Use
115956// googleapi.IsNotModified to check whether the returned error was
115957// because http.StatusNotModified was returned.
115958func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
115959	gensupport.SetOptions(c.urlParams_, opts...)
115960	res, err := c.doRequest("json")
115961	if res != nil && res.StatusCode == http.StatusNotModified {
115962		if res.Body != nil {
115963			res.Body.Close()
115964		}
115965		return nil, &googleapi.Error{
115966			Code:   res.StatusCode,
115967			Header: res.Header,
115968		}
115969	}
115970	if err != nil {
115971		return nil, err
115972	}
115973	defer googleapi.CloseBody(res)
115974	if err := googleapi.CheckResponse(res); err != nil {
115975		return nil, err
115976	}
115977	ret := &TestPermissionsResponse{
115978		ServerResponse: googleapi.ServerResponse{
115979			Header:         res.Header,
115980			HTTPStatusCode: res.StatusCode,
115981		},
115982	}
115983	target := &ret
115984	if err := gensupport.DecodeResponse(target, res); err != nil {
115985		return nil, err
115986	}
115987	return ret, nil
115988	// {
115989	//   "description": "Returns permissions that a caller has on the specified resource.",
115990	//   "httpMethod": "POST",
115991	//   "id": "compute.nodeTemplates.testIamPermissions",
115992	//   "parameterOrder": [
115993	//     "project",
115994	//     "region",
115995	//     "resource"
115996	//   ],
115997	//   "parameters": {
115998	//     "project": {
115999	//       "description": "Project ID for this request.",
116000	//       "location": "path",
116001	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116002	//       "required": true,
116003	//       "type": "string"
116004	//     },
116005	//     "region": {
116006	//       "description": "The name of the region for this request.",
116007	//       "location": "path",
116008	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116009	//       "required": true,
116010	//       "type": "string"
116011	//     },
116012	//     "resource": {
116013	//       "description": "Name or id of the resource for this request.",
116014	//       "location": "path",
116015	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116016	//       "required": true,
116017	//       "type": "string"
116018	//     }
116019	//   },
116020	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
116021	//   "request": {
116022	//     "$ref": "TestPermissionsRequest"
116023	//   },
116024	//   "response": {
116025	//     "$ref": "TestPermissionsResponse"
116026	//   },
116027	//   "scopes": [
116028	//     "https://www.googleapis.com/auth/cloud-platform",
116029	//     "https://www.googleapis.com/auth/compute",
116030	//     "https://www.googleapis.com/auth/compute.readonly"
116031	//   ]
116032	// }
116033
116034}
116035
116036// method id "compute.nodeTypes.aggregatedList":
116037
116038type NodeTypesAggregatedListCall struct {
116039	s            *Service
116040	project      string
116041	urlParams_   gensupport.URLParams
116042	ifNoneMatch_ string
116043	ctx_         context.Context
116044	header_      http.Header
116045}
116046
116047// AggregatedList: Retrieves an aggregated list of node types.
116048//
116049// - project: Project ID for this request.
116050func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
116051	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116052	c.project = project
116053	return c
116054}
116055
116056// Filter sets the optional parameter "filter": A filter expression that
116057// filters resources listed in the response. The expression must specify
116058// the field name, a comparison operator, and the value that you want to
116059// use for filtering. The value must be a string, a number, or a
116060// boolean. The comparison operator must be either `=`, `!=`, `>`, or
116061// `<`.
116062//
116063// For example, if you are filtering Compute Engine instances, you can
116064// exclude instances named `example-instance` by specifying `name !=
116065// example-instance`.
116066//
116067// You can also filter nested fields. For example, you could specify
116068// `scheduling.automaticRestart = false` to include instances only if
116069// they are not scheduled for automatic restarts. You can use filtering
116070// on nested fields to filter based on resource labels.
116071//
116072// To filter on multiple expressions, provide each separate expression
116073// within parentheses. For example: ``` (scheduling.automaticRestart =
116074// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
116075// is an `AND` expression. However, you can include `AND` and `OR`
116076// expressions explicitly. For example: ``` (cpuPlatform = "Intel
116077// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
116078// (scheduling.automaticRestart = true) ```
116079func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
116080	c.urlParams_.Set("filter", filter)
116081	return c
116082}
116083
116084// IncludeAllScopes sets the optional parameter "includeAllScopes":
116085// Indicates whether every visible scope for each scope type (zone,
116086// region, global) should be included in the response. For new resource
116087// types added after this field, the flag has no effect as new resource
116088// types will always include every visible scope for each scope type in
116089// response. For resource types which predate this field, if this flag
116090// is omitted or false, only scopes of the scope types where the
116091// resource type is expected to be found will be included.
116092func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
116093	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
116094	return c
116095}
116096
116097// MaxResults sets the optional parameter "maxResults": The maximum
116098// number of results per page that should be returned. If the number of
116099// available results is larger than `maxResults`, Compute Engine returns
116100// a `nextPageToken` that can be used to get the next page of results in
116101// subsequent list requests. Acceptable values are `0` to `500`,
116102// inclusive. (Default: `500`)
116103func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
116104	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116105	return c
116106}
116107
116108// OrderBy sets the optional parameter "orderBy": Sorts list results by
116109// a certain order. By default, results are returned in alphanumerical
116110// order based on the resource name.
116111//
116112// You can also sort results in descending order based on the creation
116113// timestamp using `orderBy="creationTimestamp desc". This sorts
116114// results based on the `creationTimestamp` field in reverse
116115// chronological order (newest result first). Use this to sort resources
116116// like operations so that the newest operation is returned
116117// first.
116118//
116119// Currently, only sorting by `name` or `creationTimestamp desc` is
116120// supported.
116121func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
116122	c.urlParams_.Set("orderBy", orderBy)
116123	return c
116124}
116125
116126// PageToken sets the optional parameter "pageToken": Specifies a page
116127// token to use. Set `pageToken` to the `nextPageToken` returned by a
116128// previous list request to get the next page of results.
116129func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
116130	c.urlParams_.Set("pageToken", pageToken)
116131	return c
116132}
116133
116134// ReturnPartialSuccess sets the optional parameter
116135// "returnPartialSuccess": Opt-in for partial success behavior which
116136// provides partial results in case of failure. The default value is
116137// false.
116138func (c *NodeTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesAggregatedListCall {
116139	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
116140	return c
116141}
116142
116143// Fields allows partial responses to be retrieved. See
116144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116145// for more information.
116146func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
116147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116148	return c
116149}
116150
116151// IfNoneMatch sets the optional parameter which makes the operation
116152// fail if the object's ETag matches the given value. This is useful for
116153// getting updates only after the object has changed since the last
116154// request. Use googleapi.IsNotModified to check whether the response
116155// error from Do is the result of In-None-Match.
116156func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
116157	c.ifNoneMatch_ = entityTag
116158	return c
116159}
116160
116161// Context sets the context to be used in this call's Do method. Any
116162// pending HTTP request will be aborted if the provided context is
116163// canceled.
116164func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
116165	c.ctx_ = ctx
116166	return c
116167}
116168
116169// Header returns an http.Header that can be modified by the caller to
116170// add HTTP headers to the request.
116171func (c *NodeTypesAggregatedListCall) Header() http.Header {
116172	if c.header_ == nil {
116173		c.header_ = make(http.Header)
116174	}
116175	return c.header_
116176}
116177
116178func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
116179	reqHeaders := make(http.Header)
116180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116181	for k, v := range c.header_ {
116182		reqHeaders[k] = v
116183	}
116184	reqHeaders.Set("User-Agent", c.s.userAgent())
116185	if c.ifNoneMatch_ != "" {
116186		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116187	}
116188	var body io.Reader = nil
116189	c.urlParams_.Set("alt", alt)
116190	c.urlParams_.Set("prettyPrint", "false")
116191	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTypes")
116192	urls += "?" + c.urlParams_.Encode()
116193	req, err := http.NewRequest("GET", urls, body)
116194	if err != nil {
116195		return nil, err
116196	}
116197	req.Header = reqHeaders
116198	googleapi.Expand(req.URL, map[string]string{
116199		"project": c.project,
116200	})
116201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116202}
116203
116204// Do executes the "compute.nodeTypes.aggregatedList" call.
116205// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
116206// non-2xx status code is an error. Response headers are in either
116207// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
116208// returned at all) in error.(*googleapi.Error).Header. Use
116209// googleapi.IsNotModified to check whether the returned error was
116210// because http.StatusNotModified was returned.
116211func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
116212	gensupport.SetOptions(c.urlParams_, opts...)
116213	res, err := c.doRequest("json")
116214	if res != nil && res.StatusCode == http.StatusNotModified {
116215		if res.Body != nil {
116216			res.Body.Close()
116217		}
116218		return nil, &googleapi.Error{
116219			Code:   res.StatusCode,
116220			Header: res.Header,
116221		}
116222	}
116223	if err != nil {
116224		return nil, err
116225	}
116226	defer googleapi.CloseBody(res)
116227	if err := googleapi.CheckResponse(res); err != nil {
116228		return nil, err
116229	}
116230	ret := &NodeTypeAggregatedList{
116231		ServerResponse: googleapi.ServerResponse{
116232			Header:         res.Header,
116233			HTTPStatusCode: res.StatusCode,
116234		},
116235	}
116236	target := &ret
116237	if err := gensupport.DecodeResponse(target, res); err != nil {
116238		return nil, err
116239	}
116240	return ret, nil
116241	// {
116242	//   "description": "Retrieves an aggregated list of node types.",
116243	//   "httpMethod": "GET",
116244	//   "id": "compute.nodeTypes.aggregatedList",
116245	//   "parameterOrder": [
116246	//     "project"
116247	//   ],
116248	//   "parameters": {
116249	//     "filter": {
116250	//       "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) ```",
116251	//       "location": "query",
116252	//       "type": "string"
116253	//     },
116254	//     "includeAllScopes": {
116255	//       "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.",
116256	//       "location": "query",
116257	//       "type": "boolean"
116258	//     },
116259	//     "maxResults": {
116260	//       "default": "500",
116261	//       "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`)",
116262	//       "format": "uint32",
116263	//       "location": "query",
116264	//       "minimum": "0",
116265	//       "type": "integer"
116266	//     },
116267	//     "orderBy": {
116268	//       "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.",
116269	//       "location": "query",
116270	//       "type": "string"
116271	//     },
116272	//     "pageToken": {
116273	//       "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.",
116274	//       "location": "query",
116275	//       "type": "string"
116276	//     },
116277	//     "project": {
116278	//       "description": "Project ID for this request.",
116279	//       "location": "path",
116280	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116281	//       "required": true,
116282	//       "type": "string"
116283	//     },
116284	//     "returnPartialSuccess": {
116285	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
116286	//       "location": "query",
116287	//       "type": "boolean"
116288	//     }
116289	//   },
116290	//   "path": "projects/{project}/aggregated/nodeTypes",
116291	//   "response": {
116292	//     "$ref": "NodeTypeAggregatedList"
116293	//   },
116294	//   "scopes": [
116295	//     "https://www.googleapis.com/auth/cloud-platform",
116296	//     "https://www.googleapis.com/auth/compute",
116297	//     "https://www.googleapis.com/auth/compute.readonly"
116298	//   ]
116299	// }
116300
116301}
116302
116303// Pages invokes f for each page of results.
116304// A non-nil error returned from f will halt the iteration.
116305// The provided context supersedes any context provided to the Context method.
116306func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
116307	c.ctx_ = ctx
116308	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116309	for {
116310		x, err := c.Do()
116311		if err != nil {
116312			return err
116313		}
116314		if err := f(x); err != nil {
116315			return err
116316		}
116317		if x.NextPageToken == "" {
116318			return nil
116319		}
116320		c.PageToken(x.NextPageToken)
116321	}
116322}
116323
116324// method id "compute.nodeTypes.get":
116325
116326type NodeTypesGetCall struct {
116327	s            *Service
116328	project      string
116329	zone         string
116330	nodeType     string
116331	urlParams_   gensupport.URLParams
116332	ifNoneMatch_ string
116333	ctx_         context.Context
116334	header_      http.Header
116335}
116336
116337// Get: Returns the specified node type. Gets a list of available node
116338// types by making a list() request.
116339//
116340// - nodeType: Name of the node type to return.
116341// - project: Project ID for this request.
116342// - zone: The name of the zone for this request.
116343func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
116344	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116345	c.project = project
116346	c.zone = zone
116347	c.nodeType = nodeType
116348	return c
116349}
116350
116351// Fields allows partial responses to be retrieved. See
116352// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116353// for more information.
116354func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
116355	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116356	return c
116357}
116358
116359// IfNoneMatch sets the optional parameter which makes the operation
116360// fail if the object's ETag matches the given value. This is useful for
116361// getting updates only after the object has changed since the last
116362// request. Use googleapi.IsNotModified to check whether the response
116363// error from Do is the result of In-None-Match.
116364func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
116365	c.ifNoneMatch_ = entityTag
116366	return c
116367}
116368
116369// Context sets the context to be used in this call's Do method. Any
116370// pending HTTP request will be aborted if the provided context is
116371// canceled.
116372func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
116373	c.ctx_ = ctx
116374	return c
116375}
116376
116377// Header returns an http.Header that can be modified by the caller to
116378// add HTTP headers to the request.
116379func (c *NodeTypesGetCall) Header() http.Header {
116380	if c.header_ == nil {
116381		c.header_ = make(http.Header)
116382	}
116383	return c.header_
116384}
116385
116386func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
116387	reqHeaders := make(http.Header)
116388	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116389	for k, v := range c.header_ {
116390		reqHeaders[k] = v
116391	}
116392	reqHeaders.Set("User-Agent", c.s.userAgent())
116393	if c.ifNoneMatch_ != "" {
116394		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116395	}
116396	var body io.Reader = nil
116397	c.urlParams_.Set("alt", alt)
116398	c.urlParams_.Set("prettyPrint", "false")
116399	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes/{nodeType}")
116400	urls += "?" + c.urlParams_.Encode()
116401	req, err := http.NewRequest("GET", urls, body)
116402	if err != nil {
116403		return nil, err
116404	}
116405	req.Header = reqHeaders
116406	googleapi.Expand(req.URL, map[string]string{
116407		"project":  c.project,
116408		"zone":     c.zone,
116409		"nodeType": c.nodeType,
116410	})
116411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116412}
116413
116414// Do executes the "compute.nodeTypes.get" call.
116415// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
116416// code is an error. Response headers are in either
116417// *NodeType.ServerResponse.Header or (if a response was returned at
116418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116419// to check whether the returned error was because
116420// http.StatusNotModified was returned.
116421func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
116422	gensupport.SetOptions(c.urlParams_, opts...)
116423	res, err := c.doRequest("json")
116424	if res != nil && res.StatusCode == http.StatusNotModified {
116425		if res.Body != nil {
116426			res.Body.Close()
116427		}
116428		return nil, &googleapi.Error{
116429			Code:   res.StatusCode,
116430			Header: res.Header,
116431		}
116432	}
116433	if err != nil {
116434		return nil, err
116435	}
116436	defer googleapi.CloseBody(res)
116437	if err := googleapi.CheckResponse(res); err != nil {
116438		return nil, err
116439	}
116440	ret := &NodeType{
116441		ServerResponse: googleapi.ServerResponse{
116442			Header:         res.Header,
116443			HTTPStatusCode: res.StatusCode,
116444		},
116445	}
116446	target := &ret
116447	if err := gensupport.DecodeResponse(target, res); err != nil {
116448		return nil, err
116449	}
116450	return ret, nil
116451	// {
116452	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
116453	//   "httpMethod": "GET",
116454	//   "id": "compute.nodeTypes.get",
116455	//   "parameterOrder": [
116456	//     "project",
116457	//     "zone",
116458	//     "nodeType"
116459	//   ],
116460	//   "parameters": {
116461	//     "nodeType": {
116462	//       "description": "Name of the node type to return.",
116463	//       "location": "path",
116464	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116465	//       "required": true,
116466	//       "type": "string"
116467	//     },
116468	//     "project": {
116469	//       "description": "Project ID for this request.",
116470	//       "location": "path",
116471	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116472	//       "required": true,
116473	//       "type": "string"
116474	//     },
116475	//     "zone": {
116476	//       "description": "The name of the zone for this request.",
116477	//       "location": "path",
116478	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116479	//       "required": true,
116480	//       "type": "string"
116481	//     }
116482	//   },
116483	//   "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
116484	//   "response": {
116485	//     "$ref": "NodeType"
116486	//   },
116487	//   "scopes": [
116488	//     "https://www.googleapis.com/auth/cloud-platform",
116489	//     "https://www.googleapis.com/auth/compute",
116490	//     "https://www.googleapis.com/auth/compute.readonly"
116491	//   ]
116492	// }
116493
116494}
116495
116496// method id "compute.nodeTypes.list":
116497
116498type NodeTypesListCall struct {
116499	s            *Service
116500	project      string
116501	zone         string
116502	urlParams_   gensupport.URLParams
116503	ifNoneMatch_ string
116504	ctx_         context.Context
116505	header_      http.Header
116506}
116507
116508// List: Retrieves a list of node types available to the specified
116509// project.
116510//
116511// - project: Project ID for this request.
116512// - zone: The name of the zone for this request.
116513func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
116514	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116515	c.project = project
116516	c.zone = zone
116517	return c
116518}
116519
116520// Filter sets the optional parameter "filter": A filter expression that
116521// filters resources listed in the response. The expression must specify
116522// the field name, a comparison operator, and the value that you want to
116523// use for filtering. The value must be a string, a number, or a
116524// boolean. The comparison operator must be either `=`, `!=`, `>`, or
116525// `<`.
116526//
116527// For example, if you are filtering Compute Engine instances, you can
116528// exclude instances named `example-instance` by specifying `name !=
116529// example-instance`.
116530//
116531// You can also filter nested fields. For example, you could specify
116532// `scheduling.automaticRestart = false` to include instances only if
116533// they are not scheduled for automatic restarts. You can use filtering
116534// on nested fields to filter based on resource labels.
116535//
116536// To filter on multiple expressions, provide each separate expression
116537// within parentheses. For example: ``` (scheduling.automaticRestart =
116538// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
116539// is an `AND` expression. However, you can include `AND` and `OR`
116540// expressions explicitly. For example: ``` (cpuPlatform = "Intel
116541// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
116542// (scheduling.automaticRestart = true) ```
116543func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
116544	c.urlParams_.Set("filter", filter)
116545	return c
116546}
116547
116548// MaxResults sets the optional parameter "maxResults": The maximum
116549// number of results per page that should be returned. If the number of
116550// available results is larger than `maxResults`, Compute Engine returns
116551// a `nextPageToken` that can be used to get the next page of results in
116552// subsequent list requests. Acceptable values are `0` to `500`,
116553// inclusive. (Default: `500`)
116554func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
116555	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116556	return c
116557}
116558
116559// OrderBy sets the optional parameter "orderBy": Sorts list results by
116560// a certain order. By default, results are returned in alphanumerical
116561// order based on the resource name.
116562//
116563// You can also sort results in descending order based on the creation
116564// timestamp using `orderBy="creationTimestamp desc". This sorts
116565// results based on the `creationTimestamp` field in reverse
116566// chronological order (newest result first). Use this to sort resources
116567// like operations so that the newest operation is returned
116568// first.
116569//
116570// Currently, only sorting by `name` or `creationTimestamp desc` is
116571// supported.
116572func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
116573	c.urlParams_.Set("orderBy", orderBy)
116574	return c
116575}
116576
116577// PageToken sets the optional parameter "pageToken": Specifies a page
116578// token to use. Set `pageToken` to the `nextPageToken` returned by a
116579// previous list request to get the next page of results.
116580func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
116581	c.urlParams_.Set("pageToken", pageToken)
116582	return c
116583}
116584
116585// ReturnPartialSuccess sets the optional parameter
116586// "returnPartialSuccess": Opt-in for partial success behavior which
116587// provides partial results in case of failure. The default value is
116588// false.
116589func (c *NodeTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesListCall {
116590	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
116591	return c
116592}
116593
116594// Fields allows partial responses to be retrieved. See
116595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116596// for more information.
116597func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
116598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116599	return c
116600}
116601
116602// IfNoneMatch sets the optional parameter which makes the operation
116603// fail if the object's ETag matches the given value. This is useful for
116604// getting updates only after the object has changed since the last
116605// request. Use googleapi.IsNotModified to check whether the response
116606// error from Do is the result of In-None-Match.
116607func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
116608	c.ifNoneMatch_ = entityTag
116609	return c
116610}
116611
116612// Context sets the context to be used in this call's Do method. Any
116613// pending HTTP request will be aborted if the provided context is
116614// canceled.
116615func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
116616	c.ctx_ = ctx
116617	return c
116618}
116619
116620// Header returns an http.Header that can be modified by the caller to
116621// add HTTP headers to the request.
116622func (c *NodeTypesListCall) Header() http.Header {
116623	if c.header_ == nil {
116624		c.header_ = make(http.Header)
116625	}
116626	return c.header_
116627}
116628
116629func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
116630	reqHeaders := make(http.Header)
116631	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116632	for k, v := range c.header_ {
116633		reqHeaders[k] = v
116634	}
116635	reqHeaders.Set("User-Agent", c.s.userAgent())
116636	if c.ifNoneMatch_ != "" {
116637		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116638	}
116639	var body io.Reader = nil
116640	c.urlParams_.Set("alt", alt)
116641	c.urlParams_.Set("prettyPrint", "false")
116642	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes")
116643	urls += "?" + c.urlParams_.Encode()
116644	req, err := http.NewRequest("GET", urls, body)
116645	if err != nil {
116646		return nil, err
116647	}
116648	req.Header = reqHeaders
116649	googleapi.Expand(req.URL, map[string]string{
116650		"project": c.project,
116651		"zone":    c.zone,
116652	})
116653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116654}
116655
116656// Do executes the "compute.nodeTypes.list" call.
116657// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
116658// status code is an error. Response headers are in either
116659// *NodeTypeList.ServerResponse.Header or (if a response was returned at
116660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116661// to check whether the returned error was because
116662// http.StatusNotModified was returned.
116663func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
116664	gensupport.SetOptions(c.urlParams_, opts...)
116665	res, err := c.doRequest("json")
116666	if res != nil && res.StatusCode == http.StatusNotModified {
116667		if res.Body != nil {
116668			res.Body.Close()
116669		}
116670		return nil, &googleapi.Error{
116671			Code:   res.StatusCode,
116672			Header: res.Header,
116673		}
116674	}
116675	if err != nil {
116676		return nil, err
116677	}
116678	defer googleapi.CloseBody(res)
116679	if err := googleapi.CheckResponse(res); err != nil {
116680		return nil, err
116681	}
116682	ret := &NodeTypeList{
116683		ServerResponse: googleapi.ServerResponse{
116684			Header:         res.Header,
116685			HTTPStatusCode: res.StatusCode,
116686		},
116687	}
116688	target := &ret
116689	if err := gensupport.DecodeResponse(target, res); err != nil {
116690		return nil, err
116691	}
116692	return ret, nil
116693	// {
116694	//   "description": "Retrieves a list of node types available to the specified project.",
116695	//   "httpMethod": "GET",
116696	//   "id": "compute.nodeTypes.list",
116697	//   "parameterOrder": [
116698	//     "project",
116699	//     "zone"
116700	//   ],
116701	//   "parameters": {
116702	//     "filter": {
116703	//       "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) ```",
116704	//       "location": "query",
116705	//       "type": "string"
116706	//     },
116707	//     "maxResults": {
116708	//       "default": "500",
116709	//       "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`)",
116710	//       "format": "uint32",
116711	//       "location": "query",
116712	//       "minimum": "0",
116713	//       "type": "integer"
116714	//     },
116715	//     "orderBy": {
116716	//       "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.",
116717	//       "location": "query",
116718	//       "type": "string"
116719	//     },
116720	//     "pageToken": {
116721	//       "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.",
116722	//       "location": "query",
116723	//       "type": "string"
116724	//     },
116725	//     "project": {
116726	//       "description": "Project ID for this request.",
116727	//       "location": "path",
116728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116729	//       "required": true,
116730	//       "type": "string"
116731	//     },
116732	//     "returnPartialSuccess": {
116733	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
116734	//       "location": "query",
116735	//       "type": "boolean"
116736	//     },
116737	//     "zone": {
116738	//       "description": "The name of the zone for this request.",
116739	//       "location": "path",
116740	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116741	//       "required": true,
116742	//       "type": "string"
116743	//     }
116744	//   },
116745	//   "path": "projects/{project}/zones/{zone}/nodeTypes",
116746	//   "response": {
116747	//     "$ref": "NodeTypeList"
116748	//   },
116749	//   "scopes": [
116750	//     "https://www.googleapis.com/auth/cloud-platform",
116751	//     "https://www.googleapis.com/auth/compute",
116752	//     "https://www.googleapis.com/auth/compute.readonly"
116753	//   ]
116754	// }
116755
116756}
116757
116758// Pages invokes f for each page of results.
116759// A non-nil error returned from f will halt the iteration.
116760// The provided context supersedes any context provided to the Context method.
116761func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
116762	c.ctx_ = ctx
116763	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116764	for {
116765		x, err := c.Do()
116766		if err != nil {
116767			return err
116768		}
116769		if err := f(x); err != nil {
116770			return err
116771		}
116772		if x.NextPageToken == "" {
116773			return nil
116774		}
116775		c.PageToken(x.NextPageToken)
116776	}
116777}
116778
116779// method id "compute.organizationSecurityPolicies.addAssociation":
116780
116781type OrganizationSecurityPoliciesAddAssociationCall struct {
116782	s                         *Service
116783	securityPolicy            string
116784	securitypolicyassociation *SecurityPolicyAssociation
116785	urlParams_                gensupport.URLParams
116786	ctx_                      context.Context
116787	header_                   http.Header
116788}
116789
116790// AddAssociation: Inserts an association for the specified security
116791// policy.
116792//
116793// - securityPolicy: Name of the security policy to update.
116794func (r *OrganizationSecurityPoliciesService) AddAssociation(securityPolicy string, securitypolicyassociation *SecurityPolicyAssociation) *OrganizationSecurityPoliciesAddAssociationCall {
116795	c := &OrganizationSecurityPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116796	c.securityPolicy = securityPolicy
116797	c.securitypolicyassociation = securitypolicyassociation
116798	return c
116799}
116800
116801// ReplaceExistingAssociation sets the optional parameter
116802// "replaceExistingAssociation": Indicates whether or not to replace it
116803// if an association of the attachment already exists. This is false by
116804// default, in which case an error will be returned if an association
116805// already exists.
116806func (c *OrganizationSecurityPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *OrganizationSecurityPoliciesAddAssociationCall {
116807	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
116808	return c
116809}
116810
116811// RequestId sets the optional parameter "requestId": An optional
116812// request ID to identify requests. Specify a unique request ID so that
116813// if you must retry your request, the server will know to ignore the
116814// request if it has already been completed.
116815//
116816// For example, consider a situation where you make an initial request
116817// and the request times out. If you make the request again with the
116818// same request ID, the server can check if original operation with the
116819// same request ID was received, and if so, will ignore the second
116820// request. This prevents clients from accidentally creating duplicate
116821// commitments.
116822//
116823// The request ID must be a valid UUID with the exception that zero UUID
116824// is not supported (00000000-0000-0000-0000-000000000000).
116825func (c *OrganizationSecurityPoliciesAddAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddAssociationCall {
116826	c.urlParams_.Set("requestId", requestId)
116827	return c
116828}
116829
116830// Fields allows partial responses to be retrieved. See
116831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116832// for more information.
116833func (c *OrganizationSecurityPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddAssociationCall {
116834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116835	return c
116836}
116837
116838// Context sets the context to be used in this call's Do method. Any
116839// pending HTTP request will be aborted if the provided context is
116840// canceled.
116841func (c *OrganizationSecurityPoliciesAddAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddAssociationCall {
116842	c.ctx_ = ctx
116843	return c
116844}
116845
116846// Header returns an http.Header that can be modified by the caller to
116847// add HTTP headers to the request.
116848func (c *OrganizationSecurityPoliciesAddAssociationCall) Header() http.Header {
116849	if c.header_ == nil {
116850		c.header_ = make(http.Header)
116851	}
116852	return c.header_
116853}
116854
116855func (c *OrganizationSecurityPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
116856	reqHeaders := make(http.Header)
116857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116858	for k, v := range c.header_ {
116859		reqHeaders[k] = v
116860	}
116861	reqHeaders.Set("User-Agent", c.s.userAgent())
116862	var body io.Reader = nil
116863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyassociation)
116864	if err != nil {
116865		return nil, err
116866	}
116867	reqHeaders.Set("Content-Type", "application/json")
116868	c.urlParams_.Set("alt", alt)
116869	c.urlParams_.Set("prettyPrint", "false")
116870	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addAssociation")
116871	urls += "?" + c.urlParams_.Encode()
116872	req, err := http.NewRequest("POST", urls, body)
116873	if err != nil {
116874		return nil, err
116875	}
116876	req.Header = reqHeaders
116877	googleapi.Expand(req.URL, map[string]string{
116878		"securityPolicy": c.securityPolicy,
116879	})
116880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116881}
116882
116883// Do executes the "compute.organizationSecurityPolicies.addAssociation" call.
116884// Exactly one of *Operation or error will be non-nil. Any non-2xx
116885// status code is an error. Response headers are in either
116886// *Operation.ServerResponse.Header or (if a response was returned at
116887// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116888// to check whether the returned error was because
116889// http.StatusNotModified was returned.
116890func (c *OrganizationSecurityPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116891	gensupport.SetOptions(c.urlParams_, opts...)
116892	res, err := c.doRequest("json")
116893	if res != nil && res.StatusCode == http.StatusNotModified {
116894		if res.Body != nil {
116895			res.Body.Close()
116896		}
116897		return nil, &googleapi.Error{
116898			Code:   res.StatusCode,
116899			Header: res.Header,
116900		}
116901	}
116902	if err != nil {
116903		return nil, err
116904	}
116905	defer googleapi.CloseBody(res)
116906	if err := googleapi.CheckResponse(res); err != nil {
116907		return nil, err
116908	}
116909	ret := &Operation{
116910		ServerResponse: googleapi.ServerResponse{
116911			Header:         res.Header,
116912			HTTPStatusCode: res.StatusCode,
116913		},
116914	}
116915	target := &ret
116916	if err := gensupport.DecodeResponse(target, res); err != nil {
116917		return nil, err
116918	}
116919	return ret, nil
116920	// {
116921	//   "description": "Inserts an association for the specified security policy.",
116922	//   "httpMethod": "POST",
116923	//   "id": "compute.organizationSecurityPolicies.addAssociation",
116924	//   "parameterOrder": [
116925	//     "securityPolicy"
116926	//   ],
116927	//   "parameters": {
116928	//     "replaceExistingAssociation": {
116929	//       "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.",
116930	//       "location": "query",
116931	//       "type": "boolean"
116932	//     },
116933	//     "requestId": {
116934	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116935	//       "location": "query",
116936	//       "type": "string"
116937	//     },
116938	//     "securityPolicy": {
116939	//       "description": "Name of the security policy to update.",
116940	//       "location": "path",
116941	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
116942	//       "required": true,
116943	//       "type": "string"
116944	//     }
116945	//   },
116946	//   "path": "locations/global/securityPolicies/{securityPolicy}/addAssociation",
116947	//   "request": {
116948	//     "$ref": "SecurityPolicyAssociation"
116949	//   },
116950	//   "response": {
116951	//     "$ref": "Operation"
116952	//   },
116953	//   "scopes": [
116954	//     "https://www.googleapis.com/auth/cloud-platform",
116955	//     "https://www.googleapis.com/auth/compute"
116956	//   ]
116957	// }
116958
116959}
116960
116961// method id "compute.organizationSecurityPolicies.addRule":
116962
116963type OrganizationSecurityPoliciesAddRuleCall struct {
116964	s                  *Service
116965	securityPolicy     string
116966	securitypolicyrule *SecurityPolicyRule
116967	urlParams_         gensupport.URLParams
116968	ctx_               context.Context
116969	header_            http.Header
116970}
116971
116972// AddRule: Inserts a rule into a security policy.
116973//
116974// - securityPolicy: Name of the security policy to update.
116975func (r *OrganizationSecurityPoliciesService) AddRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesAddRuleCall {
116976	c := &OrganizationSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116977	c.securityPolicy = securityPolicy
116978	c.securitypolicyrule = securitypolicyrule
116979	return c
116980}
116981
116982// RequestId sets the optional parameter "requestId": An optional
116983// request ID to identify requests. Specify a unique request ID so that
116984// if you must retry your request, the server will know to ignore the
116985// request if it has already been completed.
116986//
116987// For example, consider a situation where you make an initial request
116988// and the request times out. If you make the request again with the
116989// same request ID, the server can check if original operation with the
116990// same request ID was received, and if so, will ignore the second
116991// request. This prevents clients from accidentally creating duplicate
116992// commitments.
116993//
116994// The request ID must be a valid UUID with the exception that zero UUID
116995// is not supported (00000000-0000-0000-0000-000000000000).
116996func (c *OrganizationSecurityPoliciesAddRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddRuleCall {
116997	c.urlParams_.Set("requestId", requestId)
116998	return c
116999}
117000
117001// Fields allows partial responses to be retrieved. See
117002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117003// for more information.
117004func (c *OrganizationSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddRuleCall {
117005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117006	return c
117007}
117008
117009// Context sets the context to be used in this call's Do method. Any
117010// pending HTTP request will be aborted if the provided context is
117011// canceled.
117012func (c *OrganizationSecurityPoliciesAddRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddRuleCall {
117013	c.ctx_ = ctx
117014	return c
117015}
117016
117017// Header returns an http.Header that can be modified by the caller to
117018// add HTTP headers to the request.
117019func (c *OrganizationSecurityPoliciesAddRuleCall) Header() http.Header {
117020	if c.header_ == nil {
117021		c.header_ = make(http.Header)
117022	}
117023	return c.header_
117024}
117025
117026func (c *OrganizationSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
117027	reqHeaders := make(http.Header)
117028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117029	for k, v := range c.header_ {
117030		reqHeaders[k] = v
117031	}
117032	reqHeaders.Set("User-Agent", c.s.userAgent())
117033	var body io.Reader = nil
117034	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
117035	if err != nil {
117036		return nil, err
117037	}
117038	reqHeaders.Set("Content-Type", "application/json")
117039	c.urlParams_.Set("alt", alt)
117040	c.urlParams_.Set("prettyPrint", "false")
117041	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addRule")
117042	urls += "?" + c.urlParams_.Encode()
117043	req, err := http.NewRequest("POST", urls, body)
117044	if err != nil {
117045		return nil, err
117046	}
117047	req.Header = reqHeaders
117048	googleapi.Expand(req.URL, map[string]string{
117049		"securityPolicy": c.securityPolicy,
117050	})
117051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117052}
117053
117054// Do executes the "compute.organizationSecurityPolicies.addRule" call.
117055// Exactly one of *Operation or error will be non-nil. Any non-2xx
117056// status code is an error. Response headers are in either
117057// *Operation.ServerResponse.Header or (if a response was returned at
117058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117059// to check whether the returned error was because
117060// http.StatusNotModified was returned.
117061func (c *OrganizationSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117062	gensupport.SetOptions(c.urlParams_, opts...)
117063	res, err := c.doRequest("json")
117064	if res != nil && res.StatusCode == http.StatusNotModified {
117065		if res.Body != nil {
117066			res.Body.Close()
117067		}
117068		return nil, &googleapi.Error{
117069			Code:   res.StatusCode,
117070			Header: res.Header,
117071		}
117072	}
117073	if err != nil {
117074		return nil, err
117075	}
117076	defer googleapi.CloseBody(res)
117077	if err := googleapi.CheckResponse(res); err != nil {
117078		return nil, err
117079	}
117080	ret := &Operation{
117081		ServerResponse: googleapi.ServerResponse{
117082			Header:         res.Header,
117083			HTTPStatusCode: res.StatusCode,
117084		},
117085	}
117086	target := &ret
117087	if err := gensupport.DecodeResponse(target, res); err != nil {
117088		return nil, err
117089	}
117090	return ret, nil
117091	// {
117092	//   "description": "Inserts a rule into a security policy.",
117093	//   "httpMethod": "POST",
117094	//   "id": "compute.organizationSecurityPolicies.addRule",
117095	//   "parameterOrder": [
117096	//     "securityPolicy"
117097	//   ],
117098	//   "parameters": {
117099	//     "requestId": {
117100	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117101	//       "location": "query",
117102	//       "type": "string"
117103	//     },
117104	//     "securityPolicy": {
117105	//       "description": "Name of the security policy to update.",
117106	//       "location": "path",
117107	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
117108	//       "required": true,
117109	//       "type": "string"
117110	//     }
117111	//   },
117112	//   "path": "locations/global/securityPolicies/{securityPolicy}/addRule",
117113	//   "request": {
117114	//     "$ref": "SecurityPolicyRule"
117115	//   },
117116	//   "response": {
117117	//     "$ref": "Operation"
117118	//   },
117119	//   "scopes": [
117120	//     "https://www.googleapis.com/auth/cloud-platform",
117121	//     "https://www.googleapis.com/auth/compute"
117122	//   ]
117123	// }
117124
117125}
117126
117127// method id "compute.organizationSecurityPolicies.copyRules":
117128
117129type OrganizationSecurityPoliciesCopyRulesCall struct {
117130	s              *Service
117131	securityPolicy string
117132	urlParams_     gensupport.URLParams
117133	ctx_           context.Context
117134	header_        http.Header
117135}
117136
117137// CopyRules: Copies rules to the specified security policy.
117138//
117139// - securityPolicy: Name of the security policy to update.
117140func (r *OrganizationSecurityPoliciesService) CopyRules(securityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
117141	c := &OrganizationSecurityPoliciesCopyRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117142	c.securityPolicy = securityPolicy
117143	return c
117144}
117145
117146// RequestId sets the optional parameter "requestId": An optional
117147// request ID to identify requests. Specify a unique request ID so that
117148// if you must retry your request, the server will know to ignore the
117149// request if it has already been completed.
117150//
117151// For example, consider a situation where you make an initial request
117152// and the request times out. If you make the request again with the
117153// same request ID, the server can check if original operation with the
117154// same request ID was received, and if so, will ignore the second
117155// request. This prevents clients from accidentally creating duplicate
117156// commitments.
117157//
117158// The request ID must be a valid UUID with the exception that zero UUID
117159// is not supported (00000000-0000-0000-0000-000000000000).
117160func (c *OrganizationSecurityPoliciesCopyRulesCall) RequestId(requestId string) *OrganizationSecurityPoliciesCopyRulesCall {
117161	c.urlParams_.Set("requestId", requestId)
117162	return c
117163}
117164
117165// SourceSecurityPolicy sets the optional parameter
117166// "sourceSecurityPolicy": The security policy from which to copy rules.
117167func (c *OrganizationSecurityPoliciesCopyRulesCall) SourceSecurityPolicy(sourceSecurityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
117168	c.urlParams_.Set("sourceSecurityPolicy", sourceSecurityPolicy)
117169	return c
117170}
117171
117172// Fields allows partial responses to be retrieved. See
117173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117174// for more information.
117175func (c *OrganizationSecurityPoliciesCopyRulesCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesCopyRulesCall {
117176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117177	return c
117178}
117179
117180// Context sets the context to be used in this call's Do method. Any
117181// pending HTTP request will be aborted if the provided context is
117182// canceled.
117183func (c *OrganizationSecurityPoliciesCopyRulesCall) Context(ctx context.Context) *OrganizationSecurityPoliciesCopyRulesCall {
117184	c.ctx_ = ctx
117185	return c
117186}
117187
117188// Header returns an http.Header that can be modified by the caller to
117189// add HTTP headers to the request.
117190func (c *OrganizationSecurityPoliciesCopyRulesCall) Header() http.Header {
117191	if c.header_ == nil {
117192		c.header_ = make(http.Header)
117193	}
117194	return c.header_
117195}
117196
117197func (c *OrganizationSecurityPoliciesCopyRulesCall) doRequest(alt string) (*http.Response, error) {
117198	reqHeaders := make(http.Header)
117199	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117200	for k, v := range c.header_ {
117201		reqHeaders[k] = v
117202	}
117203	reqHeaders.Set("User-Agent", c.s.userAgent())
117204	var body io.Reader = nil
117205	c.urlParams_.Set("alt", alt)
117206	c.urlParams_.Set("prettyPrint", "false")
117207	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/copyRules")
117208	urls += "?" + c.urlParams_.Encode()
117209	req, err := http.NewRequest("POST", urls, body)
117210	if err != nil {
117211		return nil, err
117212	}
117213	req.Header = reqHeaders
117214	googleapi.Expand(req.URL, map[string]string{
117215		"securityPolicy": c.securityPolicy,
117216	})
117217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117218}
117219
117220// Do executes the "compute.organizationSecurityPolicies.copyRules" call.
117221// Exactly one of *Operation or error will be non-nil. Any non-2xx
117222// status code is an error. Response headers are in either
117223// *Operation.ServerResponse.Header or (if a response was returned at
117224// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117225// to check whether the returned error was because
117226// http.StatusNotModified was returned.
117227func (c *OrganizationSecurityPoliciesCopyRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117228	gensupport.SetOptions(c.urlParams_, opts...)
117229	res, err := c.doRequest("json")
117230	if res != nil && res.StatusCode == http.StatusNotModified {
117231		if res.Body != nil {
117232			res.Body.Close()
117233		}
117234		return nil, &googleapi.Error{
117235			Code:   res.StatusCode,
117236			Header: res.Header,
117237		}
117238	}
117239	if err != nil {
117240		return nil, err
117241	}
117242	defer googleapi.CloseBody(res)
117243	if err := googleapi.CheckResponse(res); err != nil {
117244		return nil, err
117245	}
117246	ret := &Operation{
117247		ServerResponse: googleapi.ServerResponse{
117248			Header:         res.Header,
117249			HTTPStatusCode: res.StatusCode,
117250		},
117251	}
117252	target := &ret
117253	if err := gensupport.DecodeResponse(target, res); err != nil {
117254		return nil, err
117255	}
117256	return ret, nil
117257	// {
117258	//   "description": "Copies rules to the specified security policy.",
117259	//   "httpMethod": "POST",
117260	//   "id": "compute.organizationSecurityPolicies.copyRules",
117261	//   "parameterOrder": [
117262	//     "securityPolicy"
117263	//   ],
117264	//   "parameters": {
117265	//     "requestId": {
117266	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117267	//       "location": "query",
117268	//       "type": "string"
117269	//     },
117270	//     "securityPolicy": {
117271	//       "description": "Name of the security policy to update.",
117272	//       "location": "path",
117273	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
117274	//       "required": true,
117275	//       "type": "string"
117276	//     },
117277	//     "sourceSecurityPolicy": {
117278	//       "description": "The security policy from which to copy rules.",
117279	//       "location": "query",
117280	//       "type": "string"
117281	//     }
117282	//   },
117283	//   "path": "locations/global/securityPolicies/{securityPolicy}/copyRules",
117284	//   "response": {
117285	//     "$ref": "Operation"
117286	//   },
117287	//   "scopes": [
117288	//     "https://www.googleapis.com/auth/cloud-platform",
117289	//     "https://www.googleapis.com/auth/compute"
117290	//   ]
117291	// }
117292
117293}
117294
117295// method id "compute.organizationSecurityPolicies.delete":
117296
117297type OrganizationSecurityPoliciesDeleteCall struct {
117298	s              *Service
117299	securityPolicy string
117300	urlParams_     gensupport.URLParams
117301	ctx_           context.Context
117302	header_        http.Header
117303}
117304
117305// Delete: Deletes the specified policy.
117306//
117307// - securityPolicy: Name of the security policy to delete.
117308func (r *OrganizationSecurityPoliciesService) Delete(securityPolicy string) *OrganizationSecurityPoliciesDeleteCall {
117309	c := &OrganizationSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117310	c.securityPolicy = securityPolicy
117311	return c
117312}
117313
117314// RequestId sets the optional parameter "requestId": An optional
117315// request ID to identify requests. Specify a unique request ID so that
117316// if you must retry your request, the server will know to ignore the
117317// request if it has already been completed.
117318//
117319// For example, consider a situation where you make an initial request
117320// and the request times out. If you make the request again with the
117321// same request ID, the server can check if original operation with the
117322// same request ID was received, and if so, will ignore the second
117323// request. This prevents clients from accidentally creating duplicate
117324// commitments.
117325//
117326// The request ID must be a valid UUID with the exception that zero UUID
117327// is not supported (00000000-0000-0000-0000-000000000000).
117328func (c *OrganizationSecurityPoliciesDeleteCall) RequestId(requestId string) *OrganizationSecurityPoliciesDeleteCall {
117329	c.urlParams_.Set("requestId", requestId)
117330	return c
117331}
117332
117333// Fields allows partial responses to be retrieved. See
117334// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117335// for more information.
117336func (c *OrganizationSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesDeleteCall {
117337	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117338	return c
117339}
117340
117341// Context sets the context to be used in this call's Do method. Any
117342// pending HTTP request will be aborted if the provided context is
117343// canceled.
117344func (c *OrganizationSecurityPoliciesDeleteCall) Context(ctx context.Context) *OrganizationSecurityPoliciesDeleteCall {
117345	c.ctx_ = ctx
117346	return c
117347}
117348
117349// Header returns an http.Header that can be modified by the caller to
117350// add HTTP headers to the request.
117351func (c *OrganizationSecurityPoliciesDeleteCall) Header() http.Header {
117352	if c.header_ == nil {
117353		c.header_ = make(http.Header)
117354	}
117355	return c.header_
117356}
117357
117358func (c *OrganizationSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
117359	reqHeaders := make(http.Header)
117360	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117361	for k, v := range c.header_ {
117362		reqHeaders[k] = v
117363	}
117364	reqHeaders.Set("User-Agent", c.s.userAgent())
117365	var body io.Reader = nil
117366	c.urlParams_.Set("alt", alt)
117367	c.urlParams_.Set("prettyPrint", "false")
117368	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
117369	urls += "?" + c.urlParams_.Encode()
117370	req, err := http.NewRequest("DELETE", urls, body)
117371	if err != nil {
117372		return nil, err
117373	}
117374	req.Header = reqHeaders
117375	googleapi.Expand(req.URL, map[string]string{
117376		"securityPolicy": c.securityPolicy,
117377	})
117378	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117379}
117380
117381// Do executes the "compute.organizationSecurityPolicies.delete" call.
117382// Exactly one of *Operation or error will be non-nil. Any non-2xx
117383// status code is an error. Response headers are in either
117384// *Operation.ServerResponse.Header or (if a response was returned at
117385// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117386// to check whether the returned error was because
117387// http.StatusNotModified was returned.
117388func (c *OrganizationSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117389	gensupport.SetOptions(c.urlParams_, opts...)
117390	res, err := c.doRequest("json")
117391	if res != nil && res.StatusCode == http.StatusNotModified {
117392		if res.Body != nil {
117393			res.Body.Close()
117394		}
117395		return nil, &googleapi.Error{
117396			Code:   res.StatusCode,
117397			Header: res.Header,
117398		}
117399	}
117400	if err != nil {
117401		return nil, err
117402	}
117403	defer googleapi.CloseBody(res)
117404	if err := googleapi.CheckResponse(res); err != nil {
117405		return nil, err
117406	}
117407	ret := &Operation{
117408		ServerResponse: googleapi.ServerResponse{
117409			Header:         res.Header,
117410			HTTPStatusCode: res.StatusCode,
117411		},
117412	}
117413	target := &ret
117414	if err := gensupport.DecodeResponse(target, res); err != nil {
117415		return nil, err
117416	}
117417	return ret, nil
117418	// {
117419	//   "description": "Deletes the specified policy.",
117420	//   "httpMethod": "DELETE",
117421	//   "id": "compute.organizationSecurityPolicies.delete",
117422	//   "parameterOrder": [
117423	//     "securityPolicy"
117424	//   ],
117425	//   "parameters": {
117426	//     "requestId": {
117427	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117428	//       "location": "query",
117429	//       "type": "string"
117430	//     },
117431	//     "securityPolicy": {
117432	//       "description": "Name of the security policy to delete.",
117433	//       "location": "path",
117434	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
117435	//       "required": true,
117436	//       "type": "string"
117437	//     }
117438	//   },
117439	//   "path": "locations/global/securityPolicies/{securityPolicy}",
117440	//   "response": {
117441	//     "$ref": "Operation"
117442	//   },
117443	//   "scopes": [
117444	//     "https://www.googleapis.com/auth/cloud-platform",
117445	//     "https://www.googleapis.com/auth/compute"
117446	//   ]
117447	// }
117448
117449}
117450
117451// method id "compute.organizationSecurityPolicies.get":
117452
117453type OrganizationSecurityPoliciesGetCall struct {
117454	s              *Service
117455	securityPolicy string
117456	urlParams_     gensupport.URLParams
117457	ifNoneMatch_   string
117458	ctx_           context.Context
117459	header_        http.Header
117460}
117461
117462// Get: List all of the ordered rules present in a single specified
117463// policy.
117464//
117465// - securityPolicy: Name of the security policy to get.
117466func (r *OrganizationSecurityPoliciesService) Get(securityPolicy string) *OrganizationSecurityPoliciesGetCall {
117467	c := &OrganizationSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117468	c.securityPolicy = securityPolicy
117469	return c
117470}
117471
117472// Fields allows partial responses to be retrieved. See
117473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117474// for more information.
117475func (c *OrganizationSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetCall {
117476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117477	return c
117478}
117479
117480// IfNoneMatch sets the optional parameter which makes the operation
117481// fail if the object's ETag matches the given value. This is useful for
117482// getting updates only after the object has changed since the last
117483// request. Use googleapi.IsNotModified to check whether the response
117484// error from Do is the result of In-None-Match.
117485func (c *OrganizationSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetCall {
117486	c.ifNoneMatch_ = entityTag
117487	return c
117488}
117489
117490// Context sets the context to be used in this call's Do method. Any
117491// pending HTTP request will be aborted if the provided context is
117492// canceled.
117493func (c *OrganizationSecurityPoliciesGetCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetCall {
117494	c.ctx_ = ctx
117495	return c
117496}
117497
117498// Header returns an http.Header that can be modified by the caller to
117499// add HTTP headers to the request.
117500func (c *OrganizationSecurityPoliciesGetCall) Header() http.Header {
117501	if c.header_ == nil {
117502		c.header_ = make(http.Header)
117503	}
117504	return c.header_
117505}
117506
117507func (c *OrganizationSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
117508	reqHeaders := make(http.Header)
117509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117510	for k, v := range c.header_ {
117511		reqHeaders[k] = v
117512	}
117513	reqHeaders.Set("User-Agent", c.s.userAgent())
117514	if c.ifNoneMatch_ != "" {
117515		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117516	}
117517	var body io.Reader = nil
117518	c.urlParams_.Set("alt", alt)
117519	c.urlParams_.Set("prettyPrint", "false")
117520	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
117521	urls += "?" + c.urlParams_.Encode()
117522	req, err := http.NewRequest("GET", urls, body)
117523	if err != nil {
117524		return nil, err
117525	}
117526	req.Header = reqHeaders
117527	googleapi.Expand(req.URL, map[string]string{
117528		"securityPolicy": c.securityPolicy,
117529	})
117530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117531}
117532
117533// Do executes the "compute.organizationSecurityPolicies.get" call.
117534// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
117535// status code is an error. Response headers are in either
117536// *SecurityPolicy.ServerResponse.Header or (if a response was returned
117537// at all) in error.(*googleapi.Error).Header. Use
117538// googleapi.IsNotModified to check whether the returned error was
117539// because http.StatusNotModified was returned.
117540func (c *OrganizationSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
117541	gensupport.SetOptions(c.urlParams_, opts...)
117542	res, err := c.doRequest("json")
117543	if res != nil && res.StatusCode == http.StatusNotModified {
117544		if res.Body != nil {
117545			res.Body.Close()
117546		}
117547		return nil, &googleapi.Error{
117548			Code:   res.StatusCode,
117549			Header: res.Header,
117550		}
117551	}
117552	if err != nil {
117553		return nil, err
117554	}
117555	defer googleapi.CloseBody(res)
117556	if err := googleapi.CheckResponse(res); err != nil {
117557		return nil, err
117558	}
117559	ret := &SecurityPolicy{
117560		ServerResponse: googleapi.ServerResponse{
117561			Header:         res.Header,
117562			HTTPStatusCode: res.StatusCode,
117563		},
117564	}
117565	target := &ret
117566	if err := gensupport.DecodeResponse(target, res); err != nil {
117567		return nil, err
117568	}
117569	return ret, nil
117570	// {
117571	//   "description": "List all of the ordered rules present in a single specified policy.",
117572	//   "httpMethod": "GET",
117573	//   "id": "compute.organizationSecurityPolicies.get",
117574	//   "parameterOrder": [
117575	//     "securityPolicy"
117576	//   ],
117577	//   "parameters": {
117578	//     "securityPolicy": {
117579	//       "description": "Name of the security policy to get.",
117580	//       "location": "path",
117581	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
117582	//       "required": true,
117583	//       "type": "string"
117584	//     }
117585	//   },
117586	//   "path": "locations/global/securityPolicies/{securityPolicy}",
117587	//   "response": {
117588	//     "$ref": "SecurityPolicy"
117589	//   },
117590	//   "scopes": [
117591	//     "https://www.googleapis.com/auth/cloud-platform",
117592	//     "https://www.googleapis.com/auth/compute",
117593	//     "https://www.googleapis.com/auth/compute.readonly"
117594	//   ]
117595	// }
117596
117597}
117598
117599// method id "compute.organizationSecurityPolicies.getAssociation":
117600
117601type OrganizationSecurityPoliciesGetAssociationCall struct {
117602	s              *Service
117603	securityPolicy string
117604	urlParams_     gensupport.URLParams
117605	ifNoneMatch_   string
117606	ctx_           context.Context
117607	header_        http.Header
117608}
117609
117610// GetAssociation: Gets an association with the specified name.
117611//
117612// - securityPolicy: Name of the security policy to which the queried
117613//   rule belongs.
117614func (r *OrganizationSecurityPoliciesService) GetAssociation(securityPolicy string) *OrganizationSecurityPoliciesGetAssociationCall {
117615	c := &OrganizationSecurityPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117616	c.securityPolicy = securityPolicy
117617	return c
117618}
117619
117620// Name sets the optional parameter "name": The name of the association
117621// to get from the security policy.
117622func (c *OrganizationSecurityPoliciesGetAssociationCall) Name(name string) *OrganizationSecurityPoliciesGetAssociationCall {
117623	c.urlParams_.Set("name", name)
117624	return c
117625}
117626
117627// Fields allows partial responses to be retrieved. See
117628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117629// for more information.
117630func (c *OrganizationSecurityPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetAssociationCall {
117631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117632	return c
117633}
117634
117635// IfNoneMatch sets the optional parameter which makes the operation
117636// fail if the object's ETag matches the given value. This is useful for
117637// getting updates only after the object has changed since the last
117638// request. Use googleapi.IsNotModified to check whether the response
117639// error from Do is the result of In-None-Match.
117640func (c *OrganizationSecurityPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetAssociationCall {
117641	c.ifNoneMatch_ = entityTag
117642	return c
117643}
117644
117645// Context sets the context to be used in this call's Do method. Any
117646// pending HTTP request will be aborted if the provided context is
117647// canceled.
117648func (c *OrganizationSecurityPoliciesGetAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetAssociationCall {
117649	c.ctx_ = ctx
117650	return c
117651}
117652
117653// Header returns an http.Header that can be modified by the caller to
117654// add HTTP headers to the request.
117655func (c *OrganizationSecurityPoliciesGetAssociationCall) Header() http.Header {
117656	if c.header_ == nil {
117657		c.header_ = make(http.Header)
117658	}
117659	return c.header_
117660}
117661
117662func (c *OrganizationSecurityPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
117663	reqHeaders := make(http.Header)
117664	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117665	for k, v := range c.header_ {
117666		reqHeaders[k] = v
117667	}
117668	reqHeaders.Set("User-Agent", c.s.userAgent())
117669	if c.ifNoneMatch_ != "" {
117670		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117671	}
117672	var body io.Reader = nil
117673	c.urlParams_.Set("alt", alt)
117674	c.urlParams_.Set("prettyPrint", "false")
117675	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getAssociation")
117676	urls += "?" + c.urlParams_.Encode()
117677	req, err := http.NewRequest("GET", urls, body)
117678	if err != nil {
117679		return nil, err
117680	}
117681	req.Header = reqHeaders
117682	googleapi.Expand(req.URL, map[string]string{
117683		"securityPolicy": c.securityPolicy,
117684	})
117685	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117686}
117687
117688// Do executes the "compute.organizationSecurityPolicies.getAssociation" call.
117689// Exactly one of *SecurityPolicyAssociation or error will be non-nil.
117690// Any non-2xx status code is an error. Response headers are in either
117691// *SecurityPolicyAssociation.ServerResponse.Header or (if a response
117692// was returned at all) in error.(*googleapi.Error).Header. Use
117693// googleapi.IsNotModified to check whether the returned error was
117694// because http.StatusNotModified was returned.
117695func (c *OrganizationSecurityPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyAssociation, error) {
117696	gensupport.SetOptions(c.urlParams_, opts...)
117697	res, err := c.doRequest("json")
117698	if res != nil && res.StatusCode == http.StatusNotModified {
117699		if res.Body != nil {
117700			res.Body.Close()
117701		}
117702		return nil, &googleapi.Error{
117703			Code:   res.StatusCode,
117704			Header: res.Header,
117705		}
117706	}
117707	if err != nil {
117708		return nil, err
117709	}
117710	defer googleapi.CloseBody(res)
117711	if err := googleapi.CheckResponse(res); err != nil {
117712		return nil, err
117713	}
117714	ret := &SecurityPolicyAssociation{
117715		ServerResponse: googleapi.ServerResponse{
117716			Header:         res.Header,
117717			HTTPStatusCode: res.StatusCode,
117718		},
117719	}
117720	target := &ret
117721	if err := gensupport.DecodeResponse(target, res); err != nil {
117722		return nil, err
117723	}
117724	return ret, nil
117725	// {
117726	//   "description": "Gets an association with the specified name.",
117727	//   "httpMethod": "GET",
117728	//   "id": "compute.organizationSecurityPolicies.getAssociation",
117729	//   "parameterOrder": [
117730	//     "securityPolicy"
117731	//   ],
117732	//   "parameters": {
117733	//     "name": {
117734	//       "description": "The name of the association to get from the security policy.",
117735	//       "location": "query",
117736	//       "type": "string"
117737	//     },
117738	//     "securityPolicy": {
117739	//       "description": "Name of the security policy to which the queried rule belongs.",
117740	//       "location": "path",
117741	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
117742	//       "required": true,
117743	//       "type": "string"
117744	//     }
117745	//   },
117746	//   "path": "locations/global/securityPolicies/{securityPolicy}/getAssociation",
117747	//   "response": {
117748	//     "$ref": "SecurityPolicyAssociation"
117749	//   },
117750	//   "scopes": [
117751	//     "https://www.googleapis.com/auth/cloud-platform",
117752	//     "https://www.googleapis.com/auth/compute",
117753	//     "https://www.googleapis.com/auth/compute.readonly"
117754	//   ]
117755	// }
117756
117757}
117758
117759// method id "compute.organizationSecurityPolicies.getRule":
117760
117761type OrganizationSecurityPoliciesGetRuleCall struct {
117762	s              *Service
117763	securityPolicy string
117764	urlParams_     gensupport.URLParams
117765	ifNoneMatch_   string
117766	ctx_           context.Context
117767	header_        http.Header
117768}
117769
117770// GetRule: Gets a rule at the specified priority.
117771//
117772// - securityPolicy: Name of the security policy to which the queried
117773//   rule belongs.
117774func (r *OrganizationSecurityPoliciesService) GetRule(securityPolicy string) *OrganizationSecurityPoliciesGetRuleCall {
117775	c := &OrganizationSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117776	c.securityPolicy = securityPolicy
117777	return c
117778}
117779
117780// Priority sets the optional parameter "priority": The priority of the
117781// rule to get from the security policy.
117782func (c *OrganizationSecurityPoliciesGetRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesGetRuleCall {
117783	c.urlParams_.Set("priority", fmt.Sprint(priority))
117784	return c
117785}
117786
117787// Fields allows partial responses to be retrieved. See
117788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117789// for more information.
117790func (c *OrganizationSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetRuleCall {
117791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117792	return c
117793}
117794
117795// IfNoneMatch sets the optional parameter which makes the operation
117796// fail if the object's ETag matches the given value. This is useful for
117797// getting updates only after the object has changed since the last
117798// request. Use googleapi.IsNotModified to check whether the response
117799// error from Do is the result of In-None-Match.
117800func (c *OrganizationSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetRuleCall {
117801	c.ifNoneMatch_ = entityTag
117802	return c
117803}
117804
117805// Context sets the context to be used in this call's Do method. Any
117806// pending HTTP request will be aborted if the provided context is
117807// canceled.
117808func (c *OrganizationSecurityPoliciesGetRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetRuleCall {
117809	c.ctx_ = ctx
117810	return c
117811}
117812
117813// Header returns an http.Header that can be modified by the caller to
117814// add HTTP headers to the request.
117815func (c *OrganizationSecurityPoliciesGetRuleCall) Header() http.Header {
117816	if c.header_ == nil {
117817		c.header_ = make(http.Header)
117818	}
117819	return c.header_
117820}
117821
117822func (c *OrganizationSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
117823	reqHeaders := make(http.Header)
117824	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117825	for k, v := range c.header_ {
117826		reqHeaders[k] = v
117827	}
117828	reqHeaders.Set("User-Agent", c.s.userAgent())
117829	if c.ifNoneMatch_ != "" {
117830		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117831	}
117832	var body io.Reader = nil
117833	c.urlParams_.Set("alt", alt)
117834	c.urlParams_.Set("prettyPrint", "false")
117835	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getRule")
117836	urls += "?" + c.urlParams_.Encode()
117837	req, err := http.NewRequest("GET", urls, body)
117838	if err != nil {
117839		return nil, err
117840	}
117841	req.Header = reqHeaders
117842	googleapi.Expand(req.URL, map[string]string{
117843		"securityPolicy": c.securityPolicy,
117844	})
117845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117846}
117847
117848// Do executes the "compute.organizationSecurityPolicies.getRule" call.
117849// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
117850// non-2xx status code is an error. Response headers are in either
117851// *SecurityPolicyRule.ServerResponse.Header or (if a response was
117852// returned at all) in error.(*googleapi.Error).Header. Use
117853// googleapi.IsNotModified to check whether the returned error was
117854// because http.StatusNotModified was returned.
117855func (c *OrganizationSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
117856	gensupport.SetOptions(c.urlParams_, opts...)
117857	res, err := c.doRequest("json")
117858	if res != nil && res.StatusCode == http.StatusNotModified {
117859		if res.Body != nil {
117860			res.Body.Close()
117861		}
117862		return nil, &googleapi.Error{
117863			Code:   res.StatusCode,
117864			Header: res.Header,
117865		}
117866	}
117867	if err != nil {
117868		return nil, err
117869	}
117870	defer googleapi.CloseBody(res)
117871	if err := googleapi.CheckResponse(res); err != nil {
117872		return nil, err
117873	}
117874	ret := &SecurityPolicyRule{
117875		ServerResponse: googleapi.ServerResponse{
117876			Header:         res.Header,
117877			HTTPStatusCode: res.StatusCode,
117878		},
117879	}
117880	target := &ret
117881	if err := gensupport.DecodeResponse(target, res); err != nil {
117882		return nil, err
117883	}
117884	return ret, nil
117885	// {
117886	//   "description": "Gets a rule at the specified priority.",
117887	//   "httpMethod": "GET",
117888	//   "id": "compute.organizationSecurityPolicies.getRule",
117889	//   "parameterOrder": [
117890	//     "securityPolicy"
117891	//   ],
117892	//   "parameters": {
117893	//     "priority": {
117894	//       "description": "The priority of the rule to get from the security policy.",
117895	//       "format": "int32",
117896	//       "location": "query",
117897	//       "type": "integer"
117898	//     },
117899	//     "securityPolicy": {
117900	//       "description": "Name of the security policy to which the queried rule belongs.",
117901	//       "location": "path",
117902	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
117903	//       "required": true,
117904	//       "type": "string"
117905	//     }
117906	//   },
117907	//   "path": "locations/global/securityPolicies/{securityPolicy}/getRule",
117908	//   "response": {
117909	//     "$ref": "SecurityPolicyRule"
117910	//   },
117911	//   "scopes": [
117912	//     "https://www.googleapis.com/auth/cloud-platform",
117913	//     "https://www.googleapis.com/auth/compute",
117914	//     "https://www.googleapis.com/auth/compute.readonly"
117915	//   ]
117916	// }
117917
117918}
117919
117920// method id "compute.organizationSecurityPolicies.insert":
117921
117922type OrganizationSecurityPoliciesInsertCall struct {
117923	s              *Service
117924	securitypolicy *SecurityPolicy
117925	urlParams_     gensupport.URLParams
117926	ctx_           context.Context
117927	header_        http.Header
117928}
117929
117930// Insert: Creates a new policy in the specified project using the data
117931// included in the request.
117932func (r *OrganizationSecurityPoliciesService) Insert(securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesInsertCall {
117933	c := &OrganizationSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117934	c.securitypolicy = securitypolicy
117935	return c
117936}
117937
117938// ParentId sets the optional parameter "parentId": Parent ID for this
117939// request. The ID can be either be "folders/[FOLDER_ID]" if the parent
117940// is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an
117941// organization.
117942func (c *OrganizationSecurityPoliciesInsertCall) ParentId(parentId string) *OrganizationSecurityPoliciesInsertCall {
117943	c.urlParams_.Set("parentId", parentId)
117944	return c
117945}
117946
117947// RequestId sets the optional parameter "requestId": An optional
117948// request ID to identify requests. Specify a unique request ID so that
117949// if you must retry your request, the server will know to ignore the
117950// request if it has already been completed.
117951//
117952// For example, consider a situation where you make an initial request
117953// and the request times out. If you make the request again with the
117954// same request ID, the server can check if original operation with the
117955// same request ID was received, and if so, will ignore the second
117956// request. This prevents clients from accidentally creating duplicate
117957// commitments.
117958//
117959// The request ID must be a valid UUID with the exception that zero UUID
117960// is not supported (00000000-0000-0000-0000-000000000000).
117961func (c *OrganizationSecurityPoliciesInsertCall) RequestId(requestId string) *OrganizationSecurityPoliciesInsertCall {
117962	c.urlParams_.Set("requestId", requestId)
117963	return c
117964}
117965
117966// Fields allows partial responses to be retrieved. See
117967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117968// for more information.
117969func (c *OrganizationSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesInsertCall {
117970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117971	return c
117972}
117973
117974// Context sets the context to be used in this call's Do method. Any
117975// pending HTTP request will be aborted if the provided context is
117976// canceled.
117977func (c *OrganizationSecurityPoliciesInsertCall) Context(ctx context.Context) *OrganizationSecurityPoliciesInsertCall {
117978	c.ctx_ = ctx
117979	return c
117980}
117981
117982// Header returns an http.Header that can be modified by the caller to
117983// add HTTP headers to the request.
117984func (c *OrganizationSecurityPoliciesInsertCall) Header() http.Header {
117985	if c.header_ == nil {
117986		c.header_ = make(http.Header)
117987	}
117988	return c.header_
117989}
117990
117991func (c *OrganizationSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
117992	reqHeaders := make(http.Header)
117993	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117994	for k, v := range c.header_ {
117995		reqHeaders[k] = v
117996	}
117997	reqHeaders.Set("User-Agent", c.s.userAgent())
117998	var body io.Reader = nil
117999	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
118000	if err != nil {
118001		return nil, err
118002	}
118003	reqHeaders.Set("Content-Type", "application/json")
118004	c.urlParams_.Set("alt", alt)
118005	c.urlParams_.Set("prettyPrint", "false")
118006	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
118007	urls += "?" + c.urlParams_.Encode()
118008	req, err := http.NewRequest("POST", urls, body)
118009	if err != nil {
118010		return nil, err
118011	}
118012	req.Header = reqHeaders
118013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118014}
118015
118016// Do executes the "compute.organizationSecurityPolicies.insert" call.
118017// Exactly one of *Operation or error will be non-nil. Any non-2xx
118018// status code is an error. Response headers are in either
118019// *Operation.ServerResponse.Header or (if a response was returned at
118020// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118021// to check whether the returned error was because
118022// http.StatusNotModified was returned.
118023func (c *OrganizationSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118024	gensupport.SetOptions(c.urlParams_, opts...)
118025	res, err := c.doRequest("json")
118026	if res != nil && res.StatusCode == http.StatusNotModified {
118027		if res.Body != nil {
118028			res.Body.Close()
118029		}
118030		return nil, &googleapi.Error{
118031			Code:   res.StatusCode,
118032			Header: res.Header,
118033		}
118034	}
118035	if err != nil {
118036		return nil, err
118037	}
118038	defer googleapi.CloseBody(res)
118039	if err := googleapi.CheckResponse(res); err != nil {
118040		return nil, err
118041	}
118042	ret := &Operation{
118043		ServerResponse: googleapi.ServerResponse{
118044			Header:         res.Header,
118045			HTTPStatusCode: res.StatusCode,
118046		},
118047	}
118048	target := &ret
118049	if err := gensupport.DecodeResponse(target, res); err != nil {
118050		return nil, err
118051	}
118052	return ret, nil
118053	// {
118054	//   "description": "Creates a new policy in the specified project using the data included in the request.",
118055	//   "httpMethod": "POST",
118056	//   "id": "compute.organizationSecurityPolicies.insert",
118057	//   "parameters": {
118058	//     "parentId": {
118059	//       "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.",
118060	//       "location": "query",
118061	//       "type": "string"
118062	//     },
118063	//     "requestId": {
118064	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118065	//       "location": "query",
118066	//       "type": "string"
118067	//     }
118068	//   },
118069	//   "path": "locations/global/securityPolicies",
118070	//   "request": {
118071	//     "$ref": "SecurityPolicy"
118072	//   },
118073	//   "response": {
118074	//     "$ref": "Operation"
118075	//   },
118076	//   "scopes": [
118077	//     "https://www.googleapis.com/auth/cloud-platform",
118078	//     "https://www.googleapis.com/auth/compute"
118079	//   ]
118080	// }
118081
118082}
118083
118084// method id "compute.organizationSecurityPolicies.list":
118085
118086type OrganizationSecurityPoliciesListCall struct {
118087	s            *Service
118088	urlParams_   gensupport.URLParams
118089	ifNoneMatch_ string
118090	ctx_         context.Context
118091	header_      http.Header
118092}
118093
118094// List: List all the policies that have been configured for the
118095// specified project.
118096func (r *OrganizationSecurityPoliciesService) List() *OrganizationSecurityPoliciesListCall {
118097	c := &OrganizationSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118098	return c
118099}
118100
118101// Filter sets the optional parameter "filter": A filter expression that
118102// filters resources listed in the response. The expression must specify
118103// the field name, a comparison operator, and the value that you want to
118104// use for filtering. The value must be a string, a number, or a
118105// boolean. The comparison operator must be either `=`, `!=`, `>`, or
118106// `<`.
118107//
118108// For example, if you are filtering Compute Engine instances, you can
118109// exclude instances named `example-instance` by specifying `name !=
118110// example-instance`.
118111//
118112// You can also filter nested fields. For example, you could specify
118113// `scheduling.automaticRestart = false` to include instances only if
118114// they are not scheduled for automatic restarts. You can use filtering
118115// on nested fields to filter based on resource labels.
118116//
118117// To filter on multiple expressions, provide each separate expression
118118// within parentheses. For example: ``` (scheduling.automaticRestart =
118119// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
118120// is an `AND` expression. However, you can include `AND` and `OR`
118121// expressions explicitly. For example: ``` (cpuPlatform = "Intel
118122// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
118123// (scheduling.automaticRestart = true) ```
118124func (c *OrganizationSecurityPoliciesListCall) Filter(filter string) *OrganizationSecurityPoliciesListCall {
118125	c.urlParams_.Set("filter", filter)
118126	return c
118127}
118128
118129// MaxResults sets the optional parameter "maxResults": The maximum
118130// number of results per page that should be returned. If the number of
118131// available results is larger than `maxResults`, Compute Engine returns
118132// a `nextPageToken` that can be used to get the next page of results in
118133// subsequent list requests. Acceptable values are `0` to `500`,
118134// inclusive. (Default: `500`)
118135func (c *OrganizationSecurityPoliciesListCall) MaxResults(maxResults int64) *OrganizationSecurityPoliciesListCall {
118136	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118137	return c
118138}
118139
118140// OrderBy sets the optional parameter "orderBy": Sorts list results by
118141// a certain order. By default, results are returned in alphanumerical
118142// order based on the resource name.
118143//
118144// You can also sort results in descending order based on the creation
118145// timestamp using `orderBy="creationTimestamp desc". This sorts
118146// results based on the `creationTimestamp` field in reverse
118147// chronological order (newest result first). Use this to sort resources
118148// like operations so that the newest operation is returned
118149// first.
118150//
118151// Currently, only sorting by `name` or `creationTimestamp desc` is
118152// supported.
118153func (c *OrganizationSecurityPoliciesListCall) OrderBy(orderBy string) *OrganizationSecurityPoliciesListCall {
118154	c.urlParams_.Set("orderBy", orderBy)
118155	return c
118156}
118157
118158// PageToken sets the optional parameter "pageToken": Specifies a page
118159// token to use. Set `pageToken` to the `nextPageToken` returned by a
118160// previous list request to get the next page of results.
118161func (c *OrganizationSecurityPoliciesListCall) PageToken(pageToken string) *OrganizationSecurityPoliciesListCall {
118162	c.urlParams_.Set("pageToken", pageToken)
118163	return c
118164}
118165
118166// ParentId sets the optional parameter "parentId": Parent ID for this
118167// request.
118168func (c *OrganizationSecurityPoliciesListCall) ParentId(parentId string) *OrganizationSecurityPoliciesListCall {
118169	c.urlParams_.Set("parentId", parentId)
118170	return c
118171}
118172
118173// ReturnPartialSuccess sets the optional parameter
118174// "returnPartialSuccess": Opt-in for partial success behavior which
118175// provides partial results in case of failure. The default value is
118176// false.
118177func (c *OrganizationSecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *OrganizationSecurityPoliciesListCall {
118178	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
118179	return c
118180}
118181
118182// Fields allows partial responses to be retrieved. See
118183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118184// for more information.
118185func (c *OrganizationSecurityPoliciesListCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListCall {
118186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118187	return c
118188}
118189
118190// IfNoneMatch sets the optional parameter which makes the operation
118191// fail if the object's ETag matches the given value. This is useful for
118192// getting updates only after the object has changed since the last
118193// request. Use googleapi.IsNotModified to check whether the response
118194// error from Do is the result of In-None-Match.
118195func (c *OrganizationSecurityPoliciesListCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListCall {
118196	c.ifNoneMatch_ = entityTag
118197	return c
118198}
118199
118200// Context sets the context to be used in this call's Do method. Any
118201// pending HTTP request will be aborted if the provided context is
118202// canceled.
118203func (c *OrganizationSecurityPoliciesListCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListCall {
118204	c.ctx_ = ctx
118205	return c
118206}
118207
118208// Header returns an http.Header that can be modified by the caller to
118209// add HTTP headers to the request.
118210func (c *OrganizationSecurityPoliciesListCall) Header() http.Header {
118211	if c.header_ == nil {
118212		c.header_ = make(http.Header)
118213	}
118214	return c.header_
118215}
118216
118217func (c *OrganizationSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
118218	reqHeaders := make(http.Header)
118219	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118220	for k, v := range c.header_ {
118221		reqHeaders[k] = v
118222	}
118223	reqHeaders.Set("User-Agent", c.s.userAgent())
118224	if c.ifNoneMatch_ != "" {
118225		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118226	}
118227	var body io.Reader = nil
118228	c.urlParams_.Set("alt", alt)
118229	c.urlParams_.Set("prettyPrint", "false")
118230	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
118231	urls += "?" + c.urlParams_.Encode()
118232	req, err := http.NewRequest("GET", urls, body)
118233	if err != nil {
118234		return nil, err
118235	}
118236	req.Header = reqHeaders
118237	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118238}
118239
118240// Do executes the "compute.organizationSecurityPolicies.list" call.
118241// Exactly one of *SecurityPolicyList or error will be non-nil. Any
118242// non-2xx status code is an error. Response headers are in either
118243// *SecurityPolicyList.ServerResponse.Header or (if a response was
118244// returned at all) in error.(*googleapi.Error).Header. Use
118245// googleapi.IsNotModified to check whether the returned error was
118246// because http.StatusNotModified was returned.
118247func (c *OrganizationSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
118248	gensupport.SetOptions(c.urlParams_, opts...)
118249	res, err := c.doRequest("json")
118250	if res != nil && res.StatusCode == http.StatusNotModified {
118251		if res.Body != nil {
118252			res.Body.Close()
118253		}
118254		return nil, &googleapi.Error{
118255			Code:   res.StatusCode,
118256			Header: res.Header,
118257		}
118258	}
118259	if err != nil {
118260		return nil, err
118261	}
118262	defer googleapi.CloseBody(res)
118263	if err := googleapi.CheckResponse(res); err != nil {
118264		return nil, err
118265	}
118266	ret := &SecurityPolicyList{
118267		ServerResponse: googleapi.ServerResponse{
118268			Header:         res.Header,
118269			HTTPStatusCode: res.StatusCode,
118270		},
118271	}
118272	target := &ret
118273	if err := gensupport.DecodeResponse(target, res); err != nil {
118274		return nil, err
118275	}
118276	return ret, nil
118277	// {
118278	//   "description": "List all the policies that have been configured for the specified project.",
118279	//   "httpMethod": "GET",
118280	//   "id": "compute.organizationSecurityPolicies.list",
118281	//   "parameters": {
118282	//     "filter": {
118283	//       "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) ```",
118284	//       "location": "query",
118285	//       "type": "string"
118286	//     },
118287	//     "maxResults": {
118288	//       "default": "500",
118289	//       "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`)",
118290	//       "format": "uint32",
118291	//       "location": "query",
118292	//       "minimum": "0",
118293	//       "type": "integer"
118294	//     },
118295	//     "orderBy": {
118296	//       "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.",
118297	//       "location": "query",
118298	//       "type": "string"
118299	//     },
118300	//     "pageToken": {
118301	//       "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.",
118302	//       "location": "query",
118303	//       "type": "string"
118304	//     },
118305	//     "parentId": {
118306	//       "description": "Parent ID for this request.",
118307	//       "location": "query",
118308	//       "type": "string"
118309	//     },
118310	//     "returnPartialSuccess": {
118311	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
118312	//       "location": "query",
118313	//       "type": "boolean"
118314	//     }
118315	//   },
118316	//   "path": "locations/global/securityPolicies",
118317	//   "response": {
118318	//     "$ref": "SecurityPolicyList"
118319	//   },
118320	//   "scopes": [
118321	//     "https://www.googleapis.com/auth/cloud-platform",
118322	//     "https://www.googleapis.com/auth/compute",
118323	//     "https://www.googleapis.com/auth/compute.readonly"
118324	//   ]
118325	// }
118326
118327}
118328
118329// Pages invokes f for each page of results.
118330// A non-nil error returned from f will halt the iteration.
118331// The provided context supersedes any context provided to the Context method.
118332func (c *OrganizationSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
118333	c.ctx_ = ctx
118334	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118335	for {
118336		x, err := c.Do()
118337		if err != nil {
118338			return err
118339		}
118340		if err := f(x); err != nil {
118341			return err
118342		}
118343		if x.NextPageToken == "" {
118344			return nil
118345		}
118346		c.PageToken(x.NextPageToken)
118347	}
118348}
118349
118350// method id "compute.organizationSecurityPolicies.listAssociations":
118351
118352type OrganizationSecurityPoliciesListAssociationsCall struct {
118353	s            *Service
118354	urlParams_   gensupport.URLParams
118355	ifNoneMatch_ string
118356	ctx_         context.Context
118357	header_      http.Header
118358}
118359
118360// ListAssociations: Lists associations of a specified target, i.e.,
118361// organization or folder.
118362func (r *OrganizationSecurityPoliciesService) ListAssociations() *OrganizationSecurityPoliciesListAssociationsCall {
118363	c := &OrganizationSecurityPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118364	return c
118365}
118366
118367// TargetResource sets the optional parameter "targetResource": The
118368// target resource to list associations. It is an organization, or a
118369// folder.
118370func (c *OrganizationSecurityPoliciesListAssociationsCall) TargetResource(targetResource string) *OrganizationSecurityPoliciesListAssociationsCall {
118371	c.urlParams_.Set("targetResource", targetResource)
118372	return c
118373}
118374
118375// Fields allows partial responses to be retrieved. See
118376// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118377// for more information.
118378func (c *OrganizationSecurityPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListAssociationsCall {
118379	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118380	return c
118381}
118382
118383// IfNoneMatch sets the optional parameter which makes the operation
118384// fail if the object's ETag matches the given value. This is useful for
118385// getting updates only after the object has changed since the last
118386// request. Use googleapi.IsNotModified to check whether the response
118387// error from Do is the result of In-None-Match.
118388func (c *OrganizationSecurityPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListAssociationsCall {
118389	c.ifNoneMatch_ = entityTag
118390	return c
118391}
118392
118393// Context sets the context to be used in this call's Do method. Any
118394// pending HTTP request will be aborted if the provided context is
118395// canceled.
118396func (c *OrganizationSecurityPoliciesListAssociationsCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListAssociationsCall {
118397	c.ctx_ = ctx
118398	return c
118399}
118400
118401// Header returns an http.Header that can be modified by the caller to
118402// add HTTP headers to the request.
118403func (c *OrganizationSecurityPoliciesListAssociationsCall) Header() http.Header {
118404	if c.header_ == nil {
118405		c.header_ = make(http.Header)
118406	}
118407	return c.header_
118408}
118409
118410func (c *OrganizationSecurityPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
118411	reqHeaders := make(http.Header)
118412	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118413	for k, v := range c.header_ {
118414		reqHeaders[k] = v
118415	}
118416	reqHeaders.Set("User-Agent", c.s.userAgent())
118417	if c.ifNoneMatch_ != "" {
118418		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118419	}
118420	var body io.Reader = nil
118421	c.urlParams_.Set("alt", alt)
118422	c.urlParams_.Set("prettyPrint", "false")
118423	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/listAssociations")
118424	urls += "?" + c.urlParams_.Encode()
118425	req, err := http.NewRequest("GET", urls, body)
118426	if err != nil {
118427		return nil, err
118428	}
118429	req.Header = reqHeaders
118430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118431}
118432
118433// Do executes the "compute.organizationSecurityPolicies.listAssociations" call.
118434// Exactly one of *OrganizationSecurityPoliciesListAssociationsResponse
118435// or error will be non-nil. Any non-2xx status code is an error.
118436// Response headers are in either
118437// *OrganizationSecurityPoliciesListAssociationsResponse.ServerResponse.H
118438// eader or (if a response was returned at all) in
118439// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
118440// whether the returned error was because http.StatusNotModified was
118441// returned.
118442func (c *OrganizationSecurityPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*OrganizationSecurityPoliciesListAssociationsResponse, error) {
118443	gensupport.SetOptions(c.urlParams_, opts...)
118444	res, err := c.doRequest("json")
118445	if res != nil && res.StatusCode == http.StatusNotModified {
118446		if res.Body != nil {
118447			res.Body.Close()
118448		}
118449		return nil, &googleapi.Error{
118450			Code:   res.StatusCode,
118451			Header: res.Header,
118452		}
118453	}
118454	if err != nil {
118455		return nil, err
118456	}
118457	defer googleapi.CloseBody(res)
118458	if err := googleapi.CheckResponse(res); err != nil {
118459		return nil, err
118460	}
118461	ret := &OrganizationSecurityPoliciesListAssociationsResponse{
118462		ServerResponse: googleapi.ServerResponse{
118463			Header:         res.Header,
118464			HTTPStatusCode: res.StatusCode,
118465		},
118466	}
118467	target := &ret
118468	if err := gensupport.DecodeResponse(target, res); err != nil {
118469		return nil, err
118470	}
118471	return ret, nil
118472	// {
118473	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
118474	//   "httpMethod": "GET",
118475	//   "id": "compute.organizationSecurityPolicies.listAssociations",
118476	//   "parameters": {
118477	//     "targetResource": {
118478	//       "description": "The target resource to list associations. It is an organization, or a folder.",
118479	//       "location": "query",
118480	//       "type": "string"
118481	//     }
118482	//   },
118483	//   "path": "locations/global/securityPolicies/listAssociations",
118484	//   "response": {
118485	//     "$ref": "OrganizationSecurityPoliciesListAssociationsResponse"
118486	//   },
118487	//   "scopes": [
118488	//     "https://www.googleapis.com/auth/cloud-platform",
118489	//     "https://www.googleapis.com/auth/compute"
118490	//   ]
118491	// }
118492
118493}
118494
118495// method id "compute.organizationSecurityPolicies.move":
118496
118497type OrganizationSecurityPoliciesMoveCall struct {
118498	s              *Service
118499	securityPolicy string
118500	urlParams_     gensupport.URLParams
118501	ctx_           context.Context
118502	header_        http.Header
118503}
118504
118505// Move: Moves the specified security policy.
118506//
118507// - securityPolicy: Name of the security policy to update.
118508func (r *OrganizationSecurityPoliciesService) Move(securityPolicy string) *OrganizationSecurityPoliciesMoveCall {
118509	c := &OrganizationSecurityPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118510	c.securityPolicy = securityPolicy
118511	return c
118512}
118513
118514// ParentId sets the optional parameter "parentId": The new parent of
118515// the security policy.
118516func (c *OrganizationSecurityPoliciesMoveCall) ParentId(parentId string) *OrganizationSecurityPoliciesMoveCall {
118517	c.urlParams_.Set("parentId", parentId)
118518	return c
118519}
118520
118521// RequestId sets the optional parameter "requestId": An optional
118522// request ID to identify requests. Specify a unique request ID so that
118523// if you must retry your request, the server will know to ignore the
118524// request if it has already been completed.
118525//
118526// For example, consider a situation where you make an initial request
118527// and the request times out. If you make the request again with the
118528// same request ID, the server can check if original operation with the
118529// same request ID was received, and if so, will ignore the second
118530// request. This prevents clients from accidentally creating duplicate
118531// commitments.
118532//
118533// The request ID must be a valid UUID with the exception that zero UUID
118534// is not supported (00000000-0000-0000-0000-000000000000).
118535func (c *OrganizationSecurityPoliciesMoveCall) RequestId(requestId string) *OrganizationSecurityPoliciesMoveCall {
118536	c.urlParams_.Set("requestId", requestId)
118537	return c
118538}
118539
118540// Fields allows partial responses to be retrieved. See
118541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118542// for more information.
118543func (c *OrganizationSecurityPoliciesMoveCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesMoveCall {
118544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118545	return c
118546}
118547
118548// Context sets the context to be used in this call's Do method. Any
118549// pending HTTP request will be aborted if the provided context is
118550// canceled.
118551func (c *OrganizationSecurityPoliciesMoveCall) Context(ctx context.Context) *OrganizationSecurityPoliciesMoveCall {
118552	c.ctx_ = ctx
118553	return c
118554}
118555
118556// Header returns an http.Header that can be modified by the caller to
118557// add HTTP headers to the request.
118558func (c *OrganizationSecurityPoliciesMoveCall) Header() http.Header {
118559	if c.header_ == nil {
118560		c.header_ = make(http.Header)
118561	}
118562	return c.header_
118563}
118564
118565func (c *OrganizationSecurityPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
118566	reqHeaders := make(http.Header)
118567	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118568	for k, v := range c.header_ {
118569		reqHeaders[k] = v
118570	}
118571	reqHeaders.Set("User-Agent", c.s.userAgent())
118572	var body io.Reader = nil
118573	c.urlParams_.Set("alt", alt)
118574	c.urlParams_.Set("prettyPrint", "false")
118575	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/move")
118576	urls += "?" + c.urlParams_.Encode()
118577	req, err := http.NewRequest("POST", urls, body)
118578	if err != nil {
118579		return nil, err
118580	}
118581	req.Header = reqHeaders
118582	googleapi.Expand(req.URL, map[string]string{
118583		"securityPolicy": c.securityPolicy,
118584	})
118585	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118586}
118587
118588// Do executes the "compute.organizationSecurityPolicies.move" call.
118589// Exactly one of *Operation or error will be non-nil. Any non-2xx
118590// status code is an error. Response headers are in either
118591// *Operation.ServerResponse.Header or (if a response was returned at
118592// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118593// to check whether the returned error was because
118594// http.StatusNotModified was returned.
118595func (c *OrganizationSecurityPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118596	gensupport.SetOptions(c.urlParams_, opts...)
118597	res, err := c.doRequest("json")
118598	if res != nil && res.StatusCode == http.StatusNotModified {
118599		if res.Body != nil {
118600			res.Body.Close()
118601		}
118602		return nil, &googleapi.Error{
118603			Code:   res.StatusCode,
118604			Header: res.Header,
118605		}
118606	}
118607	if err != nil {
118608		return nil, err
118609	}
118610	defer googleapi.CloseBody(res)
118611	if err := googleapi.CheckResponse(res); err != nil {
118612		return nil, err
118613	}
118614	ret := &Operation{
118615		ServerResponse: googleapi.ServerResponse{
118616			Header:         res.Header,
118617			HTTPStatusCode: res.StatusCode,
118618		},
118619	}
118620	target := &ret
118621	if err := gensupport.DecodeResponse(target, res); err != nil {
118622		return nil, err
118623	}
118624	return ret, nil
118625	// {
118626	//   "description": "Moves the specified security policy.",
118627	//   "httpMethod": "POST",
118628	//   "id": "compute.organizationSecurityPolicies.move",
118629	//   "parameterOrder": [
118630	//     "securityPolicy"
118631	//   ],
118632	//   "parameters": {
118633	//     "parentId": {
118634	//       "description": "The new parent of the security policy.",
118635	//       "location": "query",
118636	//       "type": "string"
118637	//     },
118638	//     "requestId": {
118639	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118640	//       "location": "query",
118641	//       "type": "string"
118642	//     },
118643	//     "securityPolicy": {
118644	//       "description": "Name of the security policy to update.",
118645	//       "location": "path",
118646	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
118647	//       "required": true,
118648	//       "type": "string"
118649	//     }
118650	//   },
118651	//   "path": "locations/global/securityPolicies/{securityPolicy}/move",
118652	//   "response": {
118653	//     "$ref": "Operation"
118654	//   },
118655	//   "scopes": [
118656	//     "https://www.googleapis.com/auth/cloud-platform",
118657	//     "https://www.googleapis.com/auth/compute"
118658	//   ]
118659	// }
118660
118661}
118662
118663// method id "compute.organizationSecurityPolicies.patch":
118664
118665type OrganizationSecurityPoliciesPatchCall struct {
118666	s              *Service
118667	securityPolicy string
118668	securitypolicy *SecurityPolicy
118669	urlParams_     gensupport.URLParams
118670	ctx_           context.Context
118671	header_        http.Header
118672}
118673
118674// Patch: Patches the specified policy with the data included in the
118675// request.
118676//
118677// - securityPolicy: Name of the security policy to update.
118678func (r *OrganizationSecurityPoliciesService) Patch(securityPolicy string, securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesPatchCall {
118679	c := &OrganizationSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118680	c.securityPolicy = securityPolicy
118681	c.securitypolicy = securitypolicy
118682	return c
118683}
118684
118685// RequestId sets the optional parameter "requestId": An optional
118686// request ID to identify requests. Specify a unique request ID so that
118687// if you must retry your request, the server will know to ignore the
118688// request if it has already been completed.
118689//
118690// For example, consider a situation where you make an initial request
118691// and the request times out. If you make the request again with the
118692// same request ID, the server can check if original operation with the
118693// same request ID was received, and if so, will ignore the second
118694// request. This prevents clients from accidentally creating duplicate
118695// commitments.
118696//
118697// The request ID must be a valid UUID with the exception that zero UUID
118698// is not supported (00000000-0000-0000-0000-000000000000).
118699func (c *OrganizationSecurityPoliciesPatchCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchCall {
118700	c.urlParams_.Set("requestId", requestId)
118701	return c
118702}
118703
118704// Fields allows partial responses to be retrieved. See
118705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118706// for more information.
118707func (c *OrganizationSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchCall {
118708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118709	return c
118710}
118711
118712// Context sets the context to be used in this call's Do method. Any
118713// pending HTTP request will be aborted if the provided context is
118714// canceled.
118715func (c *OrganizationSecurityPoliciesPatchCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchCall {
118716	c.ctx_ = ctx
118717	return c
118718}
118719
118720// Header returns an http.Header that can be modified by the caller to
118721// add HTTP headers to the request.
118722func (c *OrganizationSecurityPoliciesPatchCall) Header() http.Header {
118723	if c.header_ == nil {
118724		c.header_ = make(http.Header)
118725	}
118726	return c.header_
118727}
118728
118729func (c *OrganizationSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
118730	reqHeaders := make(http.Header)
118731	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118732	for k, v := range c.header_ {
118733		reqHeaders[k] = v
118734	}
118735	reqHeaders.Set("User-Agent", c.s.userAgent())
118736	var body io.Reader = nil
118737	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
118738	if err != nil {
118739		return nil, err
118740	}
118741	reqHeaders.Set("Content-Type", "application/json")
118742	c.urlParams_.Set("alt", alt)
118743	c.urlParams_.Set("prettyPrint", "false")
118744	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
118745	urls += "?" + c.urlParams_.Encode()
118746	req, err := http.NewRequest("PATCH", urls, body)
118747	if err != nil {
118748		return nil, err
118749	}
118750	req.Header = reqHeaders
118751	googleapi.Expand(req.URL, map[string]string{
118752		"securityPolicy": c.securityPolicy,
118753	})
118754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118755}
118756
118757// Do executes the "compute.organizationSecurityPolicies.patch" call.
118758// Exactly one of *Operation or error will be non-nil. Any non-2xx
118759// status code is an error. Response headers are in either
118760// *Operation.ServerResponse.Header or (if a response was returned at
118761// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118762// to check whether the returned error was because
118763// http.StatusNotModified was returned.
118764func (c *OrganizationSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118765	gensupport.SetOptions(c.urlParams_, opts...)
118766	res, err := c.doRequest("json")
118767	if res != nil && res.StatusCode == http.StatusNotModified {
118768		if res.Body != nil {
118769			res.Body.Close()
118770		}
118771		return nil, &googleapi.Error{
118772			Code:   res.StatusCode,
118773			Header: res.Header,
118774		}
118775	}
118776	if err != nil {
118777		return nil, err
118778	}
118779	defer googleapi.CloseBody(res)
118780	if err := googleapi.CheckResponse(res); err != nil {
118781		return nil, err
118782	}
118783	ret := &Operation{
118784		ServerResponse: googleapi.ServerResponse{
118785			Header:         res.Header,
118786			HTTPStatusCode: res.StatusCode,
118787		},
118788	}
118789	target := &ret
118790	if err := gensupport.DecodeResponse(target, res); err != nil {
118791		return nil, err
118792	}
118793	return ret, nil
118794	// {
118795	//   "description": "Patches the specified policy with the data included in the request.",
118796	//   "httpMethod": "PATCH",
118797	//   "id": "compute.organizationSecurityPolicies.patch",
118798	//   "parameterOrder": [
118799	//     "securityPolicy"
118800	//   ],
118801	//   "parameters": {
118802	//     "requestId": {
118803	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118804	//       "location": "query",
118805	//       "type": "string"
118806	//     },
118807	//     "securityPolicy": {
118808	//       "description": "Name of the security policy to update.",
118809	//       "location": "path",
118810	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
118811	//       "required": true,
118812	//       "type": "string"
118813	//     }
118814	//   },
118815	//   "path": "locations/global/securityPolicies/{securityPolicy}",
118816	//   "request": {
118817	//     "$ref": "SecurityPolicy"
118818	//   },
118819	//   "response": {
118820	//     "$ref": "Operation"
118821	//   },
118822	//   "scopes": [
118823	//     "https://www.googleapis.com/auth/cloud-platform",
118824	//     "https://www.googleapis.com/auth/compute"
118825	//   ]
118826	// }
118827
118828}
118829
118830// method id "compute.organizationSecurityPolicies.patchRule":
118831
118832type OrganizationSecurityPoliciesPatchRuleCall struct {
118833	s                  *Service
118834	securityPolicy     string
118835	securitypolicyrule *SecurityPolicyRule
118836	urlParams_         gensupport.URLParams
118837	ctx_               context.Context
118838	header_            http.Header
118839}
118840
118841// PatchRule: Patches a rule at the specified priority.
118842//
118843// - securityPolicy: Name of the security policy to update.
118844func (r *OrganizationSecurityPoliciesService) PatchRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesPatchRuleCall {
118845	c := &OrganizationSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118846	c.securityPolicy = securityPolicy
118847	c.securitypolicyrule = securitypolicyrule
118848	return c
118849}
118850
118851// Priority sets the optional parameter "priority": The priority of the
118852// rule to patch.
118853func (c *OrganizationSecurityPoliciesPatchRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesPatchRuleCall {
118854	c.urlParams_.Set("priority", fmt.Sprint(priority))
118855	return c
118856}
118857
118858// RequestId sets the optional parameter "requestId": An optional
118859// request ID to identify requests. Specify a unique request ID so that
118860// if you must retry your request, the server will know to ignore the
118861// request if it has already been completed.
118862//
118863// For example, consider a situation where you make an initial request
118864// and the request times out. If you make the request again with the
118865// same request ID, the server can check if original operation with the
118866// same request ID was received, and if so, will ignore the second
118867// request. This prevents clients from accidentally creating duplicate
118868// commitments.
118869//
118870// The request ID must be a valid UUID with the exception that zero UUID
118871// is not supported (00000000-0000-0000-0000-000000000000).
118872func (c *OrganizationSecurityPoliciesPatchRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchRuleCall {
118873	c.urlParams_.Set("requestId", requestId)
118874	return c
118875}
118876
118877// Fields allows partial responses to be retrieved. See
118878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118879// for more information.
118880func (c *OrganizationSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchRuleCall {
118881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118882	return c
118883}
118884
118885// Context sets the context to be used in this call's Do method. Any
118886// pending HTTP request will be aborted if the provided context is
118887// canceled.
118888func (c *OrganizationSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchRuleCall {
118889	c.ctx_ = ctx
118890	return c
118891}
118892
118893// Header returns an http.Header that can be modified by the caller to
118894// add HTTP headers to the request.
118895func (c *OrganizationSecurityPoliciesPatchRuleCall) Header() http.Header {
118896	if c.header_ == nil {
118897		c.header_ = make(http.Header)
118898	}
118899	return c.header_
118900}
118901
118902func (c *OrganizationSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
118903	reqHeaders := make(http.Header)
118904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118905	for k, v := range c.header_ {
118906		reqHeaders[k] = v
118907	}
118908	reqHeaders.Set("User-Agent", c.s.userAgent())
118909	var body io.Reader = nil
118910	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
118911	if err != nil {
118912		return nil, err
118913	}
118914	reqHeaders.Set("Content-Type", "application/json")
118915	c.urlParams_.Set("alt", alt)
118916	c.urlParams_.Set("prettyPrint", "false")
118917	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/patchRule")
118918	urls += "?" + c.urlParams_.Encode()
118919	req, err := http.NewRequest("POST", urls, body)
118920	if err != nil {
118921		return nil, err
118922	}
118923	req.Header = reqHeaders
118924	googleapi.Expand(req.URL, map[string]string{
118925		"securityPolicy": c.securityPolicy,
118926	})
118927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118928}
118929
118930// Do executes the "compute.organizationSecurityPolicies.patchRule" call.
118931// Exactly one of *Operation or error will be non-nil. Any non-2xx
118932// status code is an error. Response headers are in either
118933// *Operation.ServerResponse.Header or (if a response was returned at
118934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118935// to check whether the returned error was because
118936// http.StatusNotModified was returned.
118937func (c *OrganizationSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118938	gensupport.SetOptions(c.urlParams_, opts...)
118939	res, err := c.doRequest("json")
118940	if res != nil && res.StatusCode == http.StatusNotModified {
118941		if res.Body != nil {
118942			res.Body.Close()
118943		}
118944		return nil, &googleapi.Error{
118945			Code:   res.StatusCode,
118946			Header: res.Header,
118947		}
118948	}
118949	if err != nil {
118950		return nil, err
118951	}
118952	defer googleapi.CloseBody(res)
118953	if err := googleapi.CheckResponse(res); err != nil {
118954		return nil, err
118955	}
118956	ret := &Operation{
118957		ServerResponse: googleapi.ServerResponse{
118958			Header:         res.Header,
118959			HTTPStatusCode: res.StatusCode,
118960		},
118961	}
118962	target := &ret
118963	if err := gensupport.DecodeResponse(target, res); err != nil {
118964		return nil, err
118965	}
118966	return ret, nil
118967	// {
118968	//   "description": "Patches a rule at the specified priority.",
118969	//   "httpMethod": "POST",
118970	//   "id": "compute.organizationSecurityPolicies.patchRule",
118971	//   "parameterOrder": [
118972	//     "securityPolicy"
118973	//   ],
118974	//   "parameters": {
118975	//     "priority": {
118976	//       "description": "The priority of the rule to patch.",
118977	//       "format": "int32",
118978	//       "location": "query",
118979	//       "type": "integer"
118980	//     },
118981	//     "requestId": {
118982	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118983	//       "location": "query",
118984	//       "type": "string"
118985	//     },
118986	//     "securityPolicy": {
118987	//       "description": "Name of the security policy to update.",
118988	//       "location": "path",
118989	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
118990	//       "required": true,
118991	//       "type": "string"
118992	//     }
118993	//   },
118994	//   "path": "locations/global/securityPolicies/{securityPolicy}/patchRule",
118995	//   "request": {
118996	//     "$ref": "SecurityPolicyRule"
118997	//   },
118998	//   "response": {
118999	//     "$ref": "Operation"
119000	//   },
119001	//   "scopes": [
119002	//     "https://www.googleapis.com/auth/cloud-platform",
119003	//     "https://www.googleapis.com/auth/compute"
119004	//   ]
119005	// }
119006
119007}
119008
119009// method id "compute.organizationSecurityPolicies.removeAssociation":
119010
119011type OrganizationSecurityPoliciesRemoveAssociationCall struct {
119012	s              *Service
119013	securityPolicy string
119014	urlParams_     gensupport.URLParams
119015	ctx_           context.Context
119016	header_        http.Header
119017}
119018
119019// RemoveAssociation: Removes an association for the specified security
119020// policy.
119021//
119022// - securityPolicy: Name of the security policy to update.
119023func (r *OrganizationSecurityPoliciesService) RemoveAssociation(securityPolicy string) *OrganizationSecurityPoliciesRemoveAssociationCall {
119024	c := &OrganizationSecurityPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119025	c.securityPolicy = securityPolicy
119026	return c
119027}
119028
119029// Name sets the optional parameter "name": Name for the attachment that
119030// will be removed.
119031func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Name(name string) *OrganizationSecurityPoliciesRemoveAssociationCall {
119032	c.urlParams_.Set("name", name)
119033	return c
119034}
119035
119036// RequestId sets the optional parameter "requestId": An optional
119037// request ID to identify requests. Specify a unique request ID so that
119038// if you must retry your request, the server will know to ignore the
119039// request if it has already been completed.
119040//
119041// For example, consider a situation where you make an initial request
119042// and the request times out. If you make the request again with the
119043// same request ID, the server can check if original operation with the
119044// same request ID was received, and if so, will ignore the second
119045// request. This prevents clients from accidentally creating duplicate
119046// commitments.
119047//
119048// The request ID must be a valid UUID with the exception that zero UUID
119049// is not supported (00000000-0000-0000-0000-000000000000).
119050func (c *OrganizationSecurityPoliciesRemoveAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveAssociationCall {
119051	c.urlParams_.Set("requestId", requestId)
119052	return c
119053}
119054
119055// Fields allows partial responses to be retrieved. See
119056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119057// for more information.
119058func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveAssociationCall {
119059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119060	return c
119061}
119062
119063// Context sets the context to be used in this call's Do method. Any
119064// pending HTTP request will be aborted if the provided context is
119065// canceled.
119066func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveAssociationCall {
119067	c.ctx_ = ctx
119068	return c
119069}
119070
119071// Header returns an http.Header that can be modified by the caller to
119072// add HTTP headers to the request.
119073func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Header() http.Header {
119074	if c.header_ == nil {
119075		c.header_ = make(http.Header)
119076	}
119077	return c.header_
119078}
119079
119080func (c *OrganizationSecurityPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
119081	reqHeaders := make(http.Header)
119082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119083	for k, v := range c.header_ {
119084		reqHeaders[k] = v
119085	}
119086	reqHeaders.Set("User-Agent", c.s.userAgent())
119087	var body io.Reader = nil
119088	c.urlParams_.Set("alt", alt)
119089	c.urlParams_.Set("prettyPrint", "false")
119090	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeAssociation")
119091	urls += "?" + c.urlParams_.Encode()
119092	req, err := http.NewRequest("POST", urls, body)
119093	if err != nil {
119094		return nil, err
119095	}
119096	req.Header = reqHeaders
119097	googleapi.Expand(req.URL, map[string]string{
119098		"securityPolicy": c.securityPolicy,
119099	})
119100	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119101}
119102
119103// Do executes the "compute.organizationSecurityPolicies.removeAssociation" call.
119104// Exactly one of *Operation or error will be non-nil. Any non-2xx
119105// status code is an error. Response headers are in either
119106// *Operation.ServerResponse.Header or (if a response was returned at
119107// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119108// to check whether the returned error was because
119109// http.StatusNotModified was returned.
119110func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119111	gensupport.SetOptions(c.urlParams_, opts...)
119112	res, err := c.doRequest("json")
119113	if res != nil && res.StatusCode == http.StatusNotModified {
119114		if res.Body != nil {
119115			res.Body.Close()
119116		}
119117		return nil, &googleapi.Error{
119118			Code:   res.StatusCode,
119119			Header: res.Header,
119120		}
119121	}
119122	if err != nil {
119123		return nil, err
119124	}
119125	defer googleapi.CloseBody(res)
119126	if err := googleapi.CheckResponse(res); err != nil {
119127		return nil, err
119128	}
119129	ret := &Operation{
119130		ServerResponse: googleapi.ServerResponse{
119131			Header:         res.Header,
119132			HTTPStatusCode: res.StatusCode,
119133		},
119134	}
119135	target := &ret
119136	if err := gensupport.DecodeResponse(target, res); err != nil {
119137		return nil, err
119138	}
119139	return ret, nil
119140	// {
119141	//   "description": "Removes an association for the specified security policy.",
119142	//   "httpMethod": "POST",
119143	//   "id": "compute.organizationSecurityPolicies.removeAssociation",
119144	//   "parameterOrder": [
119145	//     "securityPolicy"
119146	//   ],
119147	//   "parameters": {
119148	//     "name": {
119149	//       "description": "Name for the attachment that will be removed.",
119150	//       "location": "query",
119151	//       "type": "string"
119152	//     },
119153	//     "requestId": {
119154	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119155	//       "location": "query",
119156	//       "type": "string"
119157	//     },
119158	//     "securityPolicy": {
119159	//       "description": "Name of the security policy to update.",
119160	//       "location": "path",
119161	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
119162	//       "required": true,
119163	//       "type": "string"
119164	//     }
119165	//   },
119166	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeAssociation",
119167	//   "response": {
119168	//     "$ref": "Operation"
119169	//   },
119170	//   "scopes": [
119171	//     "https://www.googleapis.com/auth/cloud-platform",
119172	//     "https://www.googleapis.com/auth/compute"
119173	//   ]
119174	// }
119175
119176}
119177
119178// method id "compute.organizationSecurityPolicies.removeRule":
119179
119180type OrganizationSecurityPoliciesRemoveRuleCall struct {
119181	s              *Service
119182	securityPolicy string
119183	urlParams_     gensupport.URLParams
119184	ctx_           context.Context
119185	header_        http.Header
119186}
119187
119188// RemoveRule: Deletes a rule at the specified priority.
119189//
119190// - securityPolicy: Name of the security policy to update.
119191func (r *OrganizationSecurityPoliciesService) RemoveRule(securityPolicy string) *OrganizationSecurityPoliciesRemoveRuleCall {
119192	c := &OrganizationSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119193	c.securityPolicy = securityPolicy
119194	return c
119195}
119196
119197// Priority sets the optional parameter "priority": The priority of the
119198// rule to remove from the security policy.
119199func (c *OrganizationSecurityPoliciesRemoveRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesRemoveRuleCall {
119200	c.urlParams_.Set("priority", fmt.Sprint(priority))
119201	return c
119202}
119203
119204// RequestId sets the optional parameter "requestId": An optional
119205// request ID to identify requests. Specify a unique request ID so that
119206// if you must retry your request, the server will know to ignore the
119207// request if it has already been completed.
119208//
119209// For example, consider a situation where you make an initial request
119210// and the request times out. If you make the request again with the
119211// same request ID, the server can check if original operation with the
119212// same request ID was received, and if so, will ignore the second
119213// request. This prevents clients from accidentally creating duplicate
119214// commitments.
119215//
119216// The request ID must be a valid UUID with the exception that zero UUID
119217// is not supported (00000000-0000-0000-0000-000000000000).
119218func (c *OrganizationSecurityPoliciesRemoveRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveRuleCall {
119219	c.urlParams_.Set("requestId", requestId)
119220	return c
119221}
119222
119223// Fields allows partial responses to be retrieved. See
119224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119225// for more information.
119226func (c *OrganizationSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveRuleCall {
119227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119228	return c
119229}
119230
119231// Context sets the context to be used in this call's Do method. Any
119232// pending HTTP request will be aborted if the provided context is
119233// canceled.
119234func (c *OrganizationSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveRuleCall {
119235	c.ctx_ = ctx
119236	return c
119237}
119238
119239// Header returns an http.Header that can be modified by the caller to
119240// add HTTP headers to the request.
119241func (c *OrganizationSecurityPoliciesRemoveRuleCall) Header() http.Header {
119242	if c.header_ == nil {
119243		c.header_ = make(http.Header)
119244	}
119245	return c.header_
119246}
119247
119248func (c *OrganizationSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
119249	reqHeaders := make(http.Header)
119250	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119251	for k, v := range c.header_ {
119252		reqHeaders[k] = v
119253	}
119254	reqHeaders.Set("User-Agent", c.s.userAgent())
119255	var body io.Reader = nil
119256	c.urlParams_.Set("alt", alt)
119257	c.urlParams_.Set("prettyPrint", "false")
119258	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeRule")
119259	urls += "?" + c.urlParams_.Encode()
119260	req, err := http.NewRequest("POST", urls, body)
119261	if err != nil {
119262		return nil, err
119263	}
119264	req.Header = reqHeaders
119265	googleapi.Expand(req.URL, map[string]string{
119266		"securityPolicy": c.securityPolicy,
119267	})
119268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119269}
119270
119271// Do executes the "compute.organizationSecurityPolicies.removeRule" call.
119272// Exactly one of *Operation or error will be non-nil. Any non-2xx
119273// status code is an error. Response headers are in either
119274// *Operation.ServerResponse.Header or (if a response was returned at
119275// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119276// to check whether the returned error was because
119277// http.StatusNotModified was returned.
119278func (c *OrganizationSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119279	gensupport.SetOptions(c.urlParams_, opts...)
119280	res, err := c.doRequest("json")
119281	if res != nil && res.StatusCode == http.StatusNotModified {
119282		if res.Body != nil {
119283			res.Body.Close()
119284		}
119285		return nil, &googleapi.Error{
119286			Code:   res.StatusCode,
119287			Header: res.Header,
119288		}
119289	}
119290	if err != nil {
119291		return nil, err
119292	}
119293	defer googleapi.CloseBody(res)
119294	if err := googleapi.CheckResponse(res); err != nil {
119295		return nil, err
119296	}
119297	ret := &Operation{
119298		ServerResponse: googleapi.ServerResponse{
119299			Header:         res.Header,
119300			HTTPStatusCode: res.StatusCode,
119301		},
119302	}
119303	target := &ret
119304	if err := gensupport.DecodeResponse(target, res); err != nil {
119305		return nil, err
119306	}
119307	return ret, nil
119308	// {
119309	//   "description": "Deletes a rule at the specified priority.",
119310	//   "httpMethod": "POST",
119311	//   "id": "compute.organizationSecurityPolicies.removeRule",
119312	//   "parameterOrder": [
119313	//     "securityPolicy"
119314	//   ],
119315	//   "parameters": {
119316	//     "priority": {
119317	//       "description": "The priority of the rule to remove from the security policy.",
119318	//       "format": "int32",
119319	//       "location": "query",
119320	//       "type": "integer"
119321	//     },
119322	//     "requestId": {
119323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119324	//       "location": "query",
119325	//       "type": "string"
119326	//     },
119327	//     "securityPolicy": {
119328	//       "description": "Name of the security policy to update.",
119329	//       "location": "path",
119330	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
119331	//       "required": true,
119332	//       "type": "string"
119333	//     }
119334	//   },
119335	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeRule",
119336	//   "response": {
119337	//     "$ref": "Operation"
119338	//   },
119339	//   "scopes": [
119340	//     "https://www.googleapis.com/auth/cloud-platform",
119341	//     "https://www.googleapis.com/auth/compute"
119342	//   ]
119343	// }
119344
119345}
119346
119347// method id "compute.packetMirrorings.aggregatedList":
119348
119349type PacketMirroringsAggregatedListCall struct {
119350	s            *Service
119351	project      string
119352	urlParams_   gensupport.URLParams
119353	ifNoneMatch_ string
119354	ctx_         context.Context
119355	header_      http.Header
119356}
119357
119358// AggregatedList: Retrieves an aggregated list of packetMirrorings.
119359//
119360// - project: Project ID for this request.
119361func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
119362	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119363	c.project = project
119364	return c
119365}
119366
119367// Filter sets the optional parameter "filter": A filter expression that
119368// filters resources listed in the response. The expression must specify
119369// the field name, a comparison operator, and the value that you want to
119370// use for filtering. The value must be a string, a number, or a
119371// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119372// `<`.
119373//
119374// For example, if you are filtering Compute Engine instances, you can
119375// exclude instances named `example-instance` by specifying `name !=
119376// example-instance`.
119377//
119378// You can also filter nested fields. For example, you could specify
119379// `scheduling.automaticRestart = false` to include instances only if
119380// they are not scheduled for automatic restarts. You can use filtering
119381// on nested fields to filter based on resource labels.
119382//
119383// To filter on multiple expressions, provide each separate expression
119384// within parentheses. For example: ``` (scheduling.automaticRestart =
119385// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
119386// is an `AND` expression. However, you can include `AND` and `OR`
119387// expressions explicitly. For example: ``` (cpuPlatform = "Intel
119388// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
119389// (scheduling.automaticRestart = true) ```
119390func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
119391	c.urlParams_.Set("filter", filter)
119392	return c
119393}
119394
119395// IncludeAllScopes sets the optional parameter "includeAllScopes":
119396// Indicates whether every visible scope for each scope type (zone,
119397// region, global) should be included in the response. For new resource
119398// types added after this field, the flag has no effect as new resource
119399// types will always include every visible scope for each scope type in
119400// response. For resource types which predate this field, if this flag
119401// is omitted or false, only scopes of the scope types where the
119402// resource type is expected to be found will be included.
119403func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
119404	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
119405	return c
119406}
119407
119408// MaxResults sets the optional parameter "maxResults": The maximum
119409// number of results per page that should be returned. If the number of
119410// available results is larger than `maxResults`, Compute Engine returns
119411// a `nextPageToken` that can be used to get the next page of results in
119412// subsequent list requests. Acceptable values are `0` to `500`,
119413// inclusive. (Default: `500`)
119414func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
119415	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119416	return c
119417}
119418
119419// OrderBy sets the optional parameter "orderBy": Sorts list results by
119420// a certain order. By default, results are returned in alphanumerical
119421// order based on the resource name.
119422//
119423// You can also sort results in descending order based on the creation
119424// timestamp using `orderBy="creationTimestamp desc". This sorts
119425// results based on the `creationTimestamp` field in reverse
119426// chronological order (newest result first). Use this to sort resources
119427// like operations so that the newest operation is returned
119428// first.
119429//
119430// Currently, only sorting by `name` or `creationTimestamp desc` is
119431// supported.
119432func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
119433	c.urlParams_.Set("orderBy", orderBy)
119434	return c
119435}
119436
119437// PageToken sets the optional parameter "pageToken": Specifies a page
119438// token to use. Set `pageToken` to the `nextPageToken` returned by a
119439// previous list request to get the next page of results.
119440func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
119441	c.urlParams_.Set("pageToken", pageToken)
119442	return c
119443}
119444
119445// ReturnPartialSuccess sets the optional parameter
119446// "returnPartialSuccess": Opt-in for partial success behavior which
119447// provides partial results in case of failure. The default value is
119448// false.
119449func (c *PacketMirroringsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsAggregatedListCall {
119450	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
119451	return c
119452}
119453
119454// Fields allows partial responses to be retrieved. See
119455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119456// for more information.
119457func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
119458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119459	return c
119460}
119461
119462// IfNoneMatch sets the optional parameter which makes the operation
119463// fail if the object's ETag matches the given value. This is useful for
119464// getting updates only after the object has changed since the last
119465// request. Use googleapi.IsNotModified to check whether the response
119466// error from Do is the result of In-None-Match.
119467func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
119468	c.ifNoneMatch_ = entityTag
119469	return c
119470}
119471
119472// Context sets the context to be used in this call's Do method. Any
119473// pending HTTP request will be aborted if the provided context is
119474// canceled.
119475func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
119476	c.ctx_ = ctx
119477	return c
119478}
119479
119480// Header returns an http.Header that can be modified by the caller to
119481// add HTTP headers to the request.
119482func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
119483	if c.header_ == nil {
119484		c.header_ = make(http.Header)
119485	}
119486	return c.header_
119487}
119488
119489func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
119490	reqHeaders := make(http.Header)
119491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119492	for k, v := range c.header_ {
119493		reqHeaders[k] = v
119494	}
119495	reqHeaders.Set("User-Agent", c.s.userAgent())
119496	if c.ifNoneMatch_ != "" {
119497		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119498	}
119499	var body io.Reader = nil
119500	c.urlParams_.Set("alt", alt)
119501	c.urlParams_.Set("prettyPrint", "false")
119502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/packetMirrorings")
119503	urls += "?" + c.urlParams_.Encode()
119504	req, err := http.NewRequest("GET", urls, body)
119505	if err != nil {
119506		return nil, err
119507	}
119508	req.Header = reqHeaders
119509	googleapi.Expand(req.URL, map[string]string{
119510		"project": c.project,
119511	})
119512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119513}
119514
119515// Do executes the "compute.packetMirrorings.aggregatedList" call.
119516// Exactly one of *PacketMirroringAggregatedList or error will be
119517// non-nil. Any non-2xx status code is an error. Response headers are in
119518// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
119519// response was returned at all) in error.(*googleapi.Error).Header. Use
119520// googleapi.IsNotModified to check whether the returned error was
119521// because http.StatusNotModified was returned.
119522func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
119523	gensupport.SetOptions(c.urlParams_, opts...)
119524	res, err := c.doRequest("json")
119525	if res != nil && res.StatusCode == http.StatusNotModified {
119526		if res.Body != nil {
119527			res.Body.Close()
119528		}
119529		return nil, &googleapi.Error{
119530			Code:   res.StatusCode,
119531			Header: res.Header,
119532		}
119533	}
119534	if err != nil {
119535		return nil, err
119536	}
119537	defer googleapi.CloseBody(res)
119538	if err := googleapi.CheckResponse(res); err != nil {
119539		return nil, err
119540	}
119541	ret := &PacketMirroringAggregatedList{
119542		ServerResponse: googleapi.ServerResponse{
119543			Header:         res.Header,
119544			HTTPStatusCode: res.StatusCode,
119545		},
119546	}
119547	target := &ret
119548	if err := gensupport.DecodeResponse(target, res); err != nil {
119549		return nil, err
119550	}
119551	return ret, nil
119552	// {
119553	//   "description": "Retrieves an aggregated list of packetMirrorings.",
119554	//   "httpMethod": "GET",
119555	//   "id": "compute.packetMirrorings.aggregatedList",
119556	//   "parameterOrder": [
119557	//     "project"
119558	//   ],
119559	//   "parameters": {
119560	//     "filter": {
119561	//       "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) ```",
119562	//       "location": "query",
119563	//       "type": "string"
119564	//     },
119565	//     "includeAllScopes": {
119566	//       "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.",
119567	//       "location": "query",
119568	//       "type": "boolean"
119569	//     },
119570	//     "maxResults": {
119571	//       "default": "500",
119572	//       "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`)",
119573	//       "format": "uint32",
119574	//       "location": "query",
119575	//       "minimum": "0",
119576	//       "type": "integer"
119577	//     },
119578	//     "orderBy": {
119579	//       "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.",
119580	//       "location": "query",
119581	//       "type": "string"
119582	//     },
119583	//     "pageToken": {
119584	//       "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.",
119585	//       "location": "query",
119586	//       "type": "string"
119587	//     },
119588	//     "project": {
119589	//       "description": "Project ID for this request.",
119590	//       "location": "path",
119591	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119592	//       "required": true,
119593	//       "type": "string"
119594	//     },
119595	//     "returnPartialSuccess": {
119596	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
119597	//       "location": "query",
119598	//       "type": "boolean"
119599	//     }
119600	//   },
119601	//   "path": "projects/{project}/aggregated/packetMirrorings",
119602	//   "response": {
119603	//     "$ref": "PacketMirroringAggregatedList"
119604	//   },
119605	//   "scopes": [
119606	//     "https://www.googleapis.com/auth/cloud-platform",
119607	//     "https://www.googleapis.com/auth/compute",
119608	//     "https://www.googleapis.com/auth/compute.readonly"
119609	//   ]
119610	// }
119611
119612}
119613
119614// Pages invokes f for each page of results.
119615// A non-nil error returned from f will halt the iteration.
119616// The provided context supersedes any context provided to the Context method.
119617func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
119618	c.ctx_ = ctx
119619	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119620	for {
119621		x, err := c.Do()
119622		if err != nil {
119623			return err
119624		}
119625		if err := f(x); err != nil {
119626			return err
119627		}
119628		if x.NextPageToken == "" {
119629			return nil
119630		}
119631		c.PageToken(x.NextPageToken)
119632	}
119633}
119634
119635// method id "compute.packetMirrorings.delete":
119636
119637type PacketMirroringsDeleteCall struct {
119638	s               *Service
119639	project         string
119640	region          string
119641	packetMirroring string
119642	urlParams_      gensupport.URLParams
119643	ctx_            context.Context
119644	header_         http.Header
119645}
119646
119647// Delete: Deletes the specified PacketMirroring resource.
119648//
119649// - packetMirroring: Name of the PacketMirroring resource to delete.
119650// - project: Project ID for this request.
119651// - region: Name of the region for this request.
119652func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
119653	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119654	c.project = project
119655	c.region = region
119656	c.packetMirroring = packetMirroring
119657	return c
119658}
119659
119660// RequestId sets the optional parameter "requestId": An optional
119661// request ID to identify requests. Specify a unique request ID so that
119662// if you must retry your request, the server will know to ignore the
119663// request if it has already been completed.
119664//
119665// For example, consider a situation where you make an initial request
119666// and the request times out. If you make the request again with the
119667// same request ID, the server can check if original operation with the
119668// same request ID was received, and if so, will ignore the second
119669// request. This prevents clients from accidentally creating duplicate
119670// commitments.
119671//
119672// The request ID must be a valid UUID with the exception that zero UUID
119673// is not supported (00000000-0000-0000-0000-000000000000).
119674func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
119675	c.urlParams_.Set("requestId", requestId)
119676	return c
119677}
119678
119679// Fields allows partial responses to be retrieved. See
119680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119681// for more information.
119682func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
119683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119684	return c
119685}
119686
119687// Context sets the context to be used in this call's Do method. Any
119688// pending HTTP request will be aborted if the provided context is
119689// canceled.
119690func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
119691	c.ctx_ = ctx
119692	return c
119693}
119694
119695// Header returns an http.Header that can be modified by the caller to
119696// add HTTP headers to the request.
119697func (c *PacketMirroringsDeleteCall) Header() http.Header {
119698	if c.header_ == nil {
119699		c.header_ = make(http.Header)
119700	}
119701	return c.header_
119702}
119703
119704func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
119705	reqHeaders := make(http.Header)
119706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119707	for k, v := range c.header_ {
119708		reqHeaders[k] = v
119709	}
119710	reqHeaders.Set("User-Agent", c.s.userAgent())
119711	var body io.Reader = nil
119712	c.urlParams_.Set("alt", alt)
119713	c.urlParams_.Set("prettyPrint", "false")
119714	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
119715	urls += "?" + c.urlParams_.Encode()
119716	req, err := http.NewRequest("DELETE", urls, body)
119717	if err != nil {
119718		return nil, err
119719	}
119720	req.Header = reqHeaders
119721	googleapi.Expand(req.URL, map[string]string{
119722		"project":         c.project,
119723		"region":          c.region,
119724		"packetMirroring": c.packetMirroring,
119725	})
119726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119727}
119728
119729// Do executes the "compute.packetMirrorings.delete" call.
119730// Exactly one of *Operation or error will be non-nil. Any non-2xx
119731// status code is an error. Response headers are in either
119732// *Operation.ServerResponse.Header or (if a response was returned at
119733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119734// to check whether the returned error was because
119735// http.StatusNotModified was returned.
119736func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119737	gensupport.SetOptions(c.urlParams_, opts...)
119738	res, err := c.doRequest("json")
119739	if res != nil && res.StatusCode == http.StatusNotModified {
119740		if res.Body != nil {
119741			res.Body.Close()
119742		}
119743		return nil, &googleapi.Error{
119744			Code:   res.StatusCode,
119745			Header: res.Header,
119746		}
119747	}
119748	if err != nil {
119749		return nil, err
119750	}
119751	defer googleapi.CloseBody(res)
119752	if err := googleapi.CheckResponse(res); err != nil {
119753		return nil, err
119754	}
119755	ret := &Operation{
119756		ServerResponse: googleapi.ServerResponse{
119757			Header:         res.Header,
119758			HTTPStatusCode: res.StatusCode,
119759		},
119760	}
119761	target := &ret
119762	if err := gensupport.DecodeResponse(target, res); err != nil {
119763		return nil, err
119764	}
119765	return ret, nil
119766	// {
119767	//   "description": "Deletes the specified PacketMirroring resource.",
119768	//   "httpMethod": "DELETE",
119769	//   "id": "compute.packetMirrorings.delete",
119770	//   "parameterOrder": [
119771	//     "project",
119772	//     "region",
119773	//     "packetMirroring"
119774	//   ],
119775	//   "parameters": {
119776	//     "packetMirroring": {
119777	//       "description": "Name of the PacketMirroring resource to delete.",
119778	//       "location": "path",
119779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119780	//       "required": true,
119781	//       "type": "string"
119782	//     },
119783	//     "project": {
119784	//       "description": "Project ID for this request.",
119785	//       "location": "path",
119786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119787	//       "required": true,
119788	//       "type": "string"
119789	//     },
119790	//     "region": {
119791	//       "description": "Name of the region for this request.",
119792	//       "location": "path",
119793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119794	//       "required": true,
119795	//       "type": "string"
119796	//     },
119797	//     "requestId": {
119798	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119799	//       "location": "query",
119800	//       "type": "string"
119801	//     }
119802	//   },
119803	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
119804	//   "response": {
119805	//     "$ref": "Operation"
119806	//   },
119807	//   "scopes": [
119808	//     "https://www.googleapis.com/auth/cloud-platform",
119809	//     "https://www.googleapis.com/auth/compute"
119810	//   ]
119811	// }
119812
119813}
119814
119815// method id "compute.packetMirrorings.get":
119816
119817type PacketMirroringsGetCall struct {
119818	s               *Service
119819	project         string
119820	region          string
119821	packetMirroring string
119822	urlParams_      gensupport.URLParams
119823	ifNoneMatch_    string
119824	ctx_            context.Context
119825	header_         http.Header
119826}
119827
119828// Get: Returns the specified PacketMirroring resource.
119829//
119830// - packetMirroring: Name of the PacketMirroring resource to return.
119831// - project: Project ID for this request.
119832// - region: Name of the region for this request.
119833func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
119834	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119835	c.project = project
119836	c.region = region
119837	c.packetMirroring = packetMirroring
119838	return c
119839}
119840
119841// Fields allows partial responses to be retrieved. See
119842// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119843// for more information.
119844func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
119845	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119846	return c
119847}
119848
119849// IfNoneMatch sets the optional parameter which makes the operation
119850// fail if the object's ETag matches the given value. This is useful for
119851// getting updates only after the object has changed since the last
119852// request. Use googleapi.IsNotModified to check whether the response
119853// error from Do is the result of In-None-Match.
119854func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
119855	c.ifNoneMatch_ = entityTag
119856	return c
119857}
119858
119859// Context sets the context to be used in this call's Do method. Any
119860// pending HTTP request will be aborted if the provided context is
119861// canceled.
119862func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
119863	c.ctx_ = ctx
119864	return c
119865}
119866
119867// Header returns an http.Header that can be modified by the caller to
119868// add HTTP headers to the request.
119869func (c *PacketMirroringsGetCall) Header() http.Header {
119870	if c.header_ == nil {
119871		c.header_ = make(http.Header)
119872	}
119873	return c.header_
119874}
119875
119876func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
119877	reqHeaders := make(http.Header)
119878	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119879	for k, v := range c.header_ {
119880		reqHeaders[k] = v
119881	}
119882	reqHeaders.Set("User-Agent", c.s.userAgent())
119883	if c.ifNoneMatch_ != "" {
119884		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119885	}
119886	var body io.Reader = nil
119887	c.urlParams_.Set("alt", alt)
119888	c.urlParams_.Set("prettyPrint", "false")
119889	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
119890	urls += "?" + c.urlParams_.Encode()
119891	req, err := http.NewRequest("GET", urls, body)
119892	if err != nil {
119893		return nil, err
119894	}
119895	req.Header = reqHeaders
119896	googleapi.Expand(req.URL, map[string]string{
119897		"project":         c.project,
119898		"region":          c.region,
119899		"packetMirroring": c.packetMirroring,
119900	})
119901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119902}
119903
119904// Do executes the "compute.packetMirrorings.get" call.
119905// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
119906// status code is an error. Response headers are in either
119907// *PacketMirroring.ServerResponse.Header or (if a response was returned
119908// at all) in error.(*googleapi.Error).Header. Use
119909// googleapi.IsNotModified to check whether the returned error was
119910// because http.StatusNotModified was returned.
119911func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
119912	gensupport.SetOptions(c.urlParams_, opts...)
119913	res, err := c.doRequest("json")
119914	if res != nil && res.StatusCode == http.StatusNotModified {
119915		if res.Body != nil {
119916			res.Body.Close()
119917		}
119918		return nil, &googleapi.Error{
119919			Code:   res.StatusCode,
119920			Header: res.Header,
119921		}
119922	}
119923	if err != nil {
119924		return nil, err
119925	}
119926	defer googleapi.CloseBody(res)
119927	if err := googleapi.CheckResponse(res); err != nil {
119928		return nil, err
119929	}
119930	ret := &PacketMirroring{
119931		ServerResponse: googleapi.ServerResponse{
119932			Header:         res.Header,
119933			HTTPStatusCode: res.StatusCode,
119934		},
119935	}
119936	target := &ret
119937	if err := gensupport.DecodeResponse(target, res); err != nil {
119938		return nil, err
119939	}
119940	return ret, nil
119941	// {
119942	//   "description": "Returns the specified PacketMirroring resource.",
119943	//   "httpMethod": "GET",
119944	//   "id": "compute.packetMirrorings.get",
119945	//   "parameterOrder": [
119946	//     "project",
119947	//     "region",
119948	//     "packetMirroring"
119949	//   ],
119950	//   "parameters": {
119951	//     "packetMirroring": {
119952	//       "description": "Name of the PacketMirroring resource to return.",
119953	//       "location": "path",
119954	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119955	//       "required": true,
119956	//       "type": "string"
119957	//     },
119958	//     "project": {
119959	//       "description": "Project ID for this request.",
119960	//       "location": "path",
119961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119962	//       "required": true,
119963	//       "type": "string"
119964	//     },
119965	//     "region": {
119966	//       "description": "Name of the region for this request.",
119967	//       "location": "path",
119968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119969	//       "required": true,
119970	//       "type": "string"
119971	//     }
119972	//   },
119973	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
119974	//   "response": {
119975	//     "$ref": "PacketMirroring"
119976	//   },
119977	//   "scopes": [
119978	//     "https://www.googleapis.com/auth/cloud-platform",
119979	//     "https://www.googleapis.com/auth/compute",
119980	//     "https://www.googleapis.com/auth/compute.readonly"
119981	//   ]
119982	// }
119983
119984}
119985
119986// method id "compute.packetMirrorings.insert":
119987
119988type PacketMirroringsInsertCall struct {
119989	s               *Service
119990	project         string
119991	region          string
119992	packetmirroring *PacketMirroring
119993	urlParams_      gensupport.URLParams
119994	ctx_            context.Context
119995	header_         http.Header
119996}
119997
119998// Insert: Creates a PacketMirroring resource in the specified project
119999// and region using the data included in the request.
120000//
120001// - project: Project ID for this request.
120002// - region: Name of the region for this request.
120003func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
120004	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120005	c.project = project
120006	c.region = region
120007	c.packetmirroring = packetmirroring
120008	return c
120009}
120010
120011// RequestId sets the optional parameter "requestId": An optional
120012// request ID to identify requests. Specify a unique request ID so that
120013// if you must retry your request, the server will know to ignore the
120014// request if it has already been completed.
120015//
120016// For example, consider a situation where you make an initial request
120017// and the request times out. If you make the request again with the
120018// same request ID, the server can check if original operation with the
120019// same request ID was received, and if so, will ignore the second
120020// request. This prevents clients from accidentally creating duplicate
120021// commitments.
120022//
120023// The request ID must be a valid UUID with the exception that zero UUID
120024// is not supported (00000000-0000-0000-0000-000000000000).
120025func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
120026	c.urlParams_.Set("requestId", requestId)
120027	return c
120028}
120029
120030// Fields allows partial responses to be retrieved. See
120031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120032// for more information.
120033func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
120034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120035	return c
120036}
120037
120038// Context sets the context to be used in this call's Do method. Any
120039// pending HTTP request will be aborted if the provided context is
120040// canceled.
120041func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
120042	c.ctx_ = ctx
120043	return c
120044}
120045
120046// Header returns an http.Header that can be modified by the caller to
120047// add HTTP headers to the request.
120048func (c *PacketMirroringsInsertCall) Header() http.Header {
120049	if c.header_ == nil {
120050		c.header_ = make(http.Header)
120051	}
120052	return c.header_
120053}
120054
120055func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
120056	reqHeaders := make(http.Header)
120057	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
120058	for k, v := range c.header_ {
120059		reqHeaders[k] = v
120060	}
120061	reqHeaders.Set("User-Agent", c.s.userAgent())
120062	var body io.Reader = nil
120063	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
120064	if err != nil {
120065		return nil, err
120066	}
120067	reqHeaders.Set("Content-Type", "application/json")
120068	c.urlParams_.Set("alt", alt)
120069	c.urlParams_.Set("prettyPrint", "false")
120070	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
120071	urls += "?" + c.urlParams_.Encode()
120072	req, err := http.NewRequest("POST", urls, body)
120073	if err != nil {
120074		return nil, err
120075	}
120076	req.Header = reqHeaders
120077	googleapi.Expand(req.URL, map[string]string{
120078		"project": c.project,
120079		"region":  c.region,
120080	})
120081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120082}
120083
120084// Do executes the "compute.packetMirrorings.insert" call.
120085// Exactly one of *Operation or error will be non-nil. Any non-2xx
120086// status code is an error. Response headers are in either
120087// *Operation.ServerResponse.Header or (if a response was returned at
120088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120089// to check whether the returned error was because
120090// http.StatusNotModified was returned.
120091func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120092	gensupport.SetOptions(c.urlParams_, opts...)
120093	res, err := c.doRequest("json")
120094	if res != nil && res.StatusCode == http.StatusNotModified {
120095		if res.Body != nil {
120096			res.Body.Close()
120097		}
120098		return nil, &googleapi.Error{
120099			Code:   res.StatusCode,
120100			Header: res.Header,
120101		}
120102	}
120103	if err != nil {
120104		return nil, err
120105	}
120106	defer googleapi.CloseBody(res)
120107	if err := googleapi.CheckResponse(res); err != nil {
120108		return nil, err
120109	}
120110	ret := &Operation{
120111		ServerResponse: googleapi.ServerResponse{
120112			Header:         res.Header,
120113			HTTPStatusCode: res.StatusCode,
120114		},
120115	}
120116	target := &ret
120117	if err := gensupport.DecodeResponse(target, res); err != nil {
120118		return nil, err
120119	}
120120	return ret, nil
120121	// {
120122	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
120123	//   "httpMethod": "POST",
120124	//   "id": "compute.packetMirrorings.insert",
120125	//   "parameterOrder": [
120126	//     "project",
120127	//     "region"
120128	//   ],
120129	//   "parameters": {
120130	//     "project": {
120131	//       "description": "Project ID for this request.",
120132	//       "location": "path",
120133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120134	//       "required": true,
120135	//       "type": "string"
120136	//     },
120137	//     "region": {
120138	//       "description": "Name of the region for this request.",
120139	//       "location": "path",
120140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120141	//       "required": true,
120142	//       "type": "string"
120143	//     },
120144	//     "requestId": {
120145	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120146	//       "location": "query",
120147	//       "type": "string"
120148	//     }
120149	//   },
120150	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
120151	//   "request": {
120152	//     "$ref": "PacketMirroring"
120153	//   },
120154	//   "response": {
120155	//     "$ref": "Operation"
120156	//   },
120157	//   "scopes": [
120158	//     "https://www.googleapis.com/auth/cloud-platform",
120159	//     "https://www.googleapis.com/auth/compute"
120160	//   ]
120161	// }
120162
120163}
120164
120165// method id "compute.packetMirrorings.list":
120166
120167type PacketMirroringsListCall struct {
120168	s            *Service
120169	project      string
120170	region       string
120171	urlParams_   gensupport.URLParams
120172	ifNoneMatch_ string
120173	ctx_         context.Context
120174	header_      http.Header
120175}
120176
120177// List: Retrieves a list of PacketMirroring resources available to the
120178// specified project and region.
120179//
120180// - project: Project ID for this request.
120181// - region: Name of the region for this request.
120182func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
120183	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120184	c.project = project
120185	c.region = region
120186	return c
120187}
120188
120189// Filter sets the optional parameter "filter": A filter expression that
120190// filters resources listed in the response. The expression must specify
120191// the field name, a comparison operator, and the value that you want to
120192// use for filtering. The value must be a string, a number, or a
120193// boolean. The comparison operator must be either `=`, `!=`, `>`, or
120194// `<`.
120195//
120196// For example, if you are filtering Compute Engine instances, you can
120197// exclude instances named `example-instance` by specifying `name !=
120198// example-instance`.
120199//
120200// You can also filter nested fields. For example, you could specify
120201// `scheduling.automaticRestart = false` to include instances only if
120202// they are not scheduled for automatic restarts. You can use filtering
120203// on nested fields to filter based on resource labels.
120204//
120205// To filter on multiple expressions, provide each separate expression
120206// within parentheses. For example: ``` (scheduling.automaticRestart =
120207// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
120208// is an `AND` expression. However, you can include `AND` and `OR`
120209// expressions explicitly. For example: ``` (cpuPlatform = "Intel
120210// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
120211// (scheduling.automaticRestart = true) ```
120212func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
120213	c.urlParams_.Set("filter", filter)
120214	return c
120215}
120216
120217// MaxResults sets the optional parameter "maxResults": The maximum
120218// number of results per page that should be returned. If the number of
120219// available results is larger than `maxResults`, Compute Engine returns
120220// a `nextPageToken` that can be used to get the next page of results in
120221// subsequent list requests. Acceptable values are `0` to `500`,
120222// inclusive. (Default: `500`)
120223func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
120224	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120225	return c
120226}
120227
120228// OrderBy sets the optional parameter "orderBy": Sorts list results by
120229// a certain order. By default, results are returned in alphanumerical
120230// order based on the resource name.
120231//
120232// You can also sort results in descending order based on the creation
120233// timestamp using `orderBy="creationTimestamp desc". This sorts
120234// results based on the `creationTimestamp` field in reverse
120235// chronological order (newest result first). Use this to sort resources
120236// like operations so that the newest operation is returned
120237// first.
120238//
120239// Currently, only sorting by `name` or `creationTimestamp desc` is
120240// supported.
120241func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
120242	c.urlParams_.Set("orderBy", orderBy)
120243	return c
120244}
120245
120246// PageToken sets the optional parameter "pageToken": Specifies a page
120247// token to use. Set `pageToken` to the `nextPageToken` returned by a
120248// previous list request to get the next page of results.
120249func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
120250	c.urlParams_.Set("pageToken", pageToken)
120251	return c
120252}
120253
120254// ReturnPartialSuccess sets the optional parameter
120255// "returnPartialSuccess": Opt-in for partial success behavior which
120256// provides partial results in case of failure. The default value is
120257// false.
120258func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsListCall {
120259	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
120260	return c
120261}
120262
120263// Fields allows partial responses to be retrieved. See
120264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120265// for more information.
120266func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
120267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120268	return c
120269}
120270
120271// IfNoneMatch sets the optional parameter which makes the operation
120272// fail if the object's ETag matches the given value. This is useful for
120273// getting updates only after the object has changed since the last
120274// request. Use googleapi.IsNotModified to check whether the response
120275// error from Do is the result of In-None-Match.
120276func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
120277	c.ifNoneMatch_ = entityTag
120278	return c
120279}
120280
120281// Context sets the context to be used in this call's Do method. Any
120282// pending HTTP request will be aborted if the provided context is
120283// canceled.
120284func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
120285	c.ctx_ = ctx
120286	return c
120287}
120288
120289// Header returns an http.Header that can be modified by the caller to
120290// add HTTP headers to the request.
120291func (c *PacketMirroringsListCall) Header() http.Header {
120292	if c.header_ == nil {
120293		c.header_ = make(http.Header)
120294	}
120295	return c.header_
120296}
120297
120298func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
120299	reqHeaders := make(http.Header)
120300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
120301	for k, v := range c.header_ {
120302		reqHeaders[k] = v
120303	}
120304	reqHeaders.Set("User-Agent", c.s.userAgent())
120305	if c.ifNoneMatch_ != "" {
120306		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120307	}
120308	var body io.Reader = nil
120309	c.urlParams_.Set("alt", alt)
120310	c.urlParams_.Set("prettyPrint", "false")
120311	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
120312	urls += "?" + c.urlParams_.Encode()
120313	req, err := http.NewRequest("GET", urls, body)
120314	if err != nil {
120315		return nil, err
120316	}
120317	req.Header = reqHeaders
120318	googleapi.Expand(req.URL, map[string]string{
120319		"project": c.project,
120320		"region":  c.region,
120321	})
120322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120323}
120324
120325// Do executes the "compute.packetMirrorings.list" call.
120326// Exactly one of *PacketMirroringList or error will be non-nil. Any
120327// non-2xx status code is an error. Response headers are in either
120328// *PacketMirroringList.ServerResponse.Header or (if a response was
120329// returned at all) in error.(*googleapi.Error).Header. Use
120330// googleapi.IsNotModified to check whether the returned error was
120331// because http.StatusNotModified was returned.
120332func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
120333	gensupport.SetOptions(c.urlParams_, opts...)
120334	res, err := c.doRequest("json")
120335	if res != nil && res.StatusCode == http.StatusNotModified {
120336		if res.Body != nil {
120337			res.Body.Close()
120338		}
120339		return nil, &googleapi.Error{
120340			Code:   res.StatusCode,
120341			Header: res.Header,
120342		}
120343	}
120344	if err != nil {
120345		return nil, err
120346	}
120347	defer googleapi.CloseBody(res)
120348	if err := googleapi.CheckResponse(res); err != nil {
120349		return nil, err
120350	}
120351	ret := &PacketMirroringList{
120352		ServerResponse: googleapi.ServerResponse{
120353			Header:         res.Header,
120354			HTTPStatusCode: res.StatusCode,
120355		},
120356	}
120357	target := &ret
120358	if err := gensupport.DecodeResponse(target, res); err != nil {
120359		return nil, err
120360	}
120361	return ret, nil
120362	// {
120363	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
120364	//   "httpMethod": "GET",
120365	//   "id": "compute.packetMirrorings.list",
120366	//   "parameterOrder": [
120367	//     "project",
120368	//     "region"
120369	//   ],
120370	//   "parameters": {
120371	//     "filter": {
120372	//       "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) ```",
120373	//       "location": "query",
120374	//       "type": "string"
120375	//     },
120376	//     "maxResults": {
120377	//       "default": "500",
120378	//       "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`)",
120379	//       "format": "uint32",
120380	//       "location": "query",
120381	//       "minimum": "0",
120382	//       "type": "integer"
120383	//     },
120384	//     "orderBy": {
120385	//       "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.",
120386	//       "location": "query",
120387	//       "type": "string"
120388	//     },
120389	//     "pageToken": {
120390	//       "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.",
120391	//       "location": "query",
120392	//       "type": "string"
120393	//     },
120394	//     "project": {
120395	//       "description": "Project ID for this request.",
120396	//       "location": "path",
120397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120398	//       "required": true,
120399	//       "type": "string"
120400	//     },
120401	//     "region": {
120402	//       "description": "Name of the region for this request.",
120403	//       "location": "path",
120404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120405	//       "required": true,
120406	//       "type": "string"
120407	//     },
120408	//     "returnPartialSuccess": {
120409	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
120410	//       "location": "query",
120411	//       "type": "boolean"
120412	//     }
120413	//   },
120414	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
120415	//   "response": {
120416	//     "$ref": "PacketMirroringList"
120417	//   },
120418	//   "scopes": [
120419	//     "https://www.googleapis.com/auth/cloud-platform",
120420	//     "https://www.googleapis.com/auth/compute",
120421	//     "https://www.googleapis.com/auth/compute.readonly"
120422	//   ]
120423	// }
120424
120425}
120426
120427// Pages invokes f for each page of results.
120428// A non-nil error returned from f will halt the iteration.
120429// The provided context supersedes any context provided to the Context method.
120430func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
120431	c.ctx_ = ctx
120432	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120433	for {
120434		x, err := c.Do()
120435		if err != nil {
120436			return err
120437		}
120438		if err := f(x); err != nil {
120439			return err
120440		}
120441		if x.NextPageToken == "" {
120442			return nil
120443		}
120444		c.PageToken(x.NextPageToken)
120445	}
120446}
120447
120448// method id "compute.packetMirrorings.patch":
120449
120450type PacketMirroringsPatchCall struct {
120451	s               *Service
120452	project         string
120453	region          string
120454	packetMirroring string
120455	packetmirroring *PacketMirroring
120456	urlParams_      gensupport.URLParams
120457	ctx_            context.Context
120458	header_         http.Header
120459}
120460
120461// Patch: Patches the specified PacketMirroring resource with the data
120462// included in the request. This method supports PATCH semantics and
120463// uses JSON merge patch format and processing rules.
120464//
120465// - packetMirroring: Name of the PacketMirroring resource to patch.
120466// - project: Project ID for this request.
120467// - region: Name of the region for this request.
120468func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
120469	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120470	c.project = project
120471	c.region = region
120472	c.packetMirroring = packetMirroring
120473	c.packetmirroring = packetmirroring
120474	return c
120475}
120476
120477// RequestId sets the optional parameter "requestId": An optional
120478// request ID to identify requests. Specify a unique request ID so that
120479// if you must retry your request, the server will know to ignore the
120480// request if it has already been completed.
120481//
120482// For example, consider a situation where you make an initial request
120483// and the request times out. If you make the request again with the
120484// same request ID, the server can check if original operation with the
120485// same request ID was received, and if so, will ignore the second
120486// request. This prevents clients from accidentally creating duplicate
120487// commitments.
120488//
120489// The request ID must be a valid UUID with the exception that zero UUID
120490// is not supported (00000000-0000-0000-0000-000000000000).
120491func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
120492	c.urlParams_.Set("requestId", requestId)
120493	return c
120494}
120495
120496// Fields allows partial responses to be retrieved. See
120497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120498// for more information.
120499func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
120500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120501	return c
120502}
120503
120504// Context sets the context to be used in this call's Do method. Any
120505// pending HTTP request will be aborted if the provided context is
120506// canceled.
120507func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
120508	c.ctx_ = ctx
120509	return c
120510}
120511
120512// Header returns an http.Header that can be modified by the caller to
120513// add HTTP headers to the request.
120514func (c *PacketMirroringsPatchCall) Header() http.Header {
120515	if c.header_ == nil {
120516		c.header_ = make(http.Header)
120517	}
120518	return c.header_
120519}
120520
120521func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
120522	reqHeaders := make(http.Header)
120523	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
120524	for k, v := range c.header_ {
120525		reqHeaders[k] = v
120526	}
120527	reqHeaders.Set("User-Agent", c.s.userAgent())
120528	var body io.Reader = nil
120529	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
120530	if err != nil {
120531		return nil, err
120532	}
120533	reqHeaders.Set("Content-Type", "application/json")
120534	c.urlParams_.Set("alt", alt)
120535	c.urlParams_.Set("prettyPrint", "false")
120536	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
120537	urls += "?" + c.urlParams_.Encode()
120538	req, err := http.NewRequest("PATCH", urls, body)
120539	if err != nil {
120540		return nil, err
120541	}
120542	req.Header = reqHeaders
120543	googleapi.Expand(req.URL, map[string]string{
120544		"project":         c.project,
120545		"region":          c.region,
120546		"packetMirroring": c.packetMirroring,
120547	})
120548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120549}
120550
120551// Do executes the "compute.packetMirrorings.patch" call.
120552// Exactly one of *Operation or error will be non-nil. Any non-2xx
120553// status code is an error. Response headers are in either
120554// *Operation.ServerResponse.Header or (if a response was returned at
120555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120556// to check whether the returned error was because
120557// http.StatusNotModified was returned.
120558func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120559	gensupport.SetOptions(c.urlParams_, opts...)
120560	res, err := c.doRequest("json")
120561	if res != nil && res.StatusCode == http.StatusNotModified {
120562		if res.Body != nil {
120563			res.Body.Close()
120564		}
120565		return nil, &googleapi.Error{
120566			Code:   res.StatusCode,
120567			Header: res.Header,
120568		}
120569	}
120570	if err != nil {
120571		return nil, err
120572	}
120573	defer googleapi.CloseBody(res)
120574	if err := googleapi.CheckResponse(res); err != nil {
120575		return nil, err
120576	}
120577	ret := &Operation{
120578		ServerResponse: googleapi.ServerResponse{
120579			Header:         res.Header,
120580			HTTPStatusCode: res.StatusCode,
120581		},
120582	}
120583	target := &ret
120584	if err := gensupport.DecodeResponse(target, res); err != nil {
120585		return nil, err
120586	}
120587	return ret, nil
120588	// {
120589	//   "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.",
120590	//   "httpMethod": "PATCH",
120591	//   "id": "compute.packetMirrorings.patch",
120592	//   "parameterOrder": [
120593	//     "project",
120594	//     "region",
120595	//     "packetMirroring"
120596	//   ],
120597	//   "parameters": {
120598	//     "packetMirroring": {
120599	//       "description": "Name of the PacketMirroring resource to patch.",
120600	//       "location": "path",
120601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120602	//       "required": true,
120603	//       "type": "string"
120604	//     },
120605	//     "project": {
120606	//       "description": "Project ID for this request.",
120607	//       "location": "path",
120608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120609	//       "required": true,
120610	//       "type": "string"
120611	//     },
120612	//     "region": {
120613	//       "description": "Name of the region for this request.",
120614	//       "location": "path",
120615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120616	//       "required": true,
120617	//       "type": "string"
120618	//     },
120619	//     "requestId": {
120620	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120621	//       "location": "query",
120622	//       "type": "string"
120623	//     }
120624	//   },
120625	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
120626	//   "request": {
120627	//     "$ref": "PacketMirroring"
120628	//   },
120629	//   "response": {
120630	//     "$ref": "Operation"
120631	//   },
120632	//   "scopes": [
120633	//     "https://www.googleapis.com/auth/cloud-platform",
120634	//     "https://www.googleapis.com/auth/compute"
120635	//   ]
120636	// }
120637
120638}
120639
120640// method id "compute.packetMirrorings.testIamPermissions":
120641
120642type PacketMirroringsTestIamPermissionsCall struct {
120643	s                      *Service
120644	project                string
120645	region                 string
120646	resource               string
120647	testpermissionsrequest *TestPermissionsRequest
120648	urlParams_             gensupport.URLParams
120649	ctx_                   context.Context
120650	header_                http.Header
120651}
120652
120653// TestIamPermissions: Returns permissions that a caller has on the
120654// specified resource.
120655//
120656// - project: Project ID for this request.
120657// - region: The name of the region for this request.
120658// - resource: Name or id of the resource for this request.
120659func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
120660	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120661	c.project = project
120662	c.region = region
120663	c.resource = resource
120664	c.testpermissionsrequest = testpermissionsrequest
120665	return c
120666}
120667
120668// Fields allows partial responses to be retrieved. See
120669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120670// for more information.
120671func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
120672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120673	return c
120674}
120675
120676// Context sets the context to be used in this call's Do method. Any
120677// pending HTTP request will be aborted if the provided context is
120678// canceled.
120679func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
120680	c.ctx_ = ctx
120681	return c
120682}
120683
120684// Header returns an http.Header that can be modified by the caller to
120685// add HTTP headers to the request.
120686func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
120687	if c.header_ == nil {
120688		c.header_ = make(http.Header)
120689	}
120690	return c.header_
120691}
120692
120693func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
120694	reqHeaders := make(http.Header)
120695	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
120696	for k, v := range c.header_ {
120697		reqHeaders[k] = v
120698	}
120699	reqHeaders.Set("User-Agent", c.s.userAgent())
120700	var body io.Reader = nil
120701	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
120702	if err != nil {
120703		return nil, err
120704	}
120705	reqHeaders.Set("Content-Type", "application/json")
120706	c.urlParams_.Set("alt", alt)
120707	c.urlParams_.Set("prettyPrint", "false")
120708	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
120709	urls += "?" + c.urlParams_.Encode()
120710	req, err := http.NewRequest("POST", urls, body)
120711	if err != nil {
120712		return nil, err
120713	}
120714	req.Header = reqHeaders
120715	googleapi.Expand(req.URL, map[string]string{
120716		"project":  c.project,
120717		"region":   c.region,
120718		"resource": c.resource,
120719	})
120720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120721}
120722
120723// Do executes the "compute.packetMirrorings.testIamPermissions" call.
120724// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
120725// non-2xx status code is an error. Response headers are in either
120726// *TestPermissionsResponse.ServerResponse.Header or (if a response was
120727// returned at all) in error.(*googleapi.Error).Header. Use
120728// googleapi.IsNotModified to check whether the returned error was
120729// because http.StatusNotModified was returned.
120730func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
120731	gensupport.SetOptions(c.urlParams_, opts...)
120732	res, err := c.doRequest("json")
120733	if res != nil && res.StatusCode == http.StatusNotModified {
120734		if res.Body != nil {
120735			res.Body.Close()
120736		}
120737		return nil, &googleapi.Error{
120738			Code:   res.StatusCode,
120739			Header: res.Header,
120740		}
120741	}
120742	if err != nil {
120743		return nil, err
120744	}
120745	defer googleapi.CloseBody(res)
120746	if err := googleapi.CheckResponse(res); err != nil {
120747		return nil, err
120748	}
120749	ret := &TestPermissionsResponse{
120750		ServerResponse: googleapi.ServerResponse{
120751			Header:         res.Header,
120752			HTTPStatusCode: res.StatusCode,
120753		},
120754	}
120755	target := &ret
120756	if err := gensupport.DecodeResponse(target, res); err != nil {
120757		return nil, err
120758	}
120759	return ret, nil
120760	// {
120761	//   "description": "Returns permissions that a caller has on the specified resource.",
120762	//   "httpMethod": "POST",
120763	//   "id": "compute.packetMirrorings.testIamPermissions",
120764	//   "parameterOrder": [
120765	//     "project",
120766	//     "region",
120767	//     "resource"
120768	//   ],
120769	//   "parameters": {
120770	//     "project": {
120771	//       "description": "Project ID for this request.",
120772	//       "location": "path",
120773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120774	//       "required": true,
120775	//       "type": "string"
120776	//     },
120777	//     "region": {
120778	//       "description": "The name of the region for this request.",
120779	//       "location": "path",
120780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120781	//       "required": true,
120782	//       "type": "string"
120783	//     },
120784	//     "resource": {
120785	//       "description": "Name or id of the resource for this request.",
120786	//       "location": "path",
120787	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120788	//       "required": true,
120789	//       "type": "string"
120790	//     }
120791	//   },
120792	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
120793	//   "request": {
120794	//     "$ref": "TestPermissionsRequest"
120795	//   },
120796	//   "response": {
120797	//     "$ref": "TestPermissionsResponse"
120798	//   },
120799	//   "scopes": [
120800	//     "https://www.googleapis.com/auth/cloud-platform",
120801	//     "https://www.googleapis.com/auth/compute",
120802	//     "https://www.googleapis.com/auth/compute.readonly"
120803	//   ]
120804	// }
120805
120806}
120807
120808// method id "compute.projects.disableXpnHost":
120809
120810type ProjectsDisableXpnHostCall struct {
120811	s          *Service
120812	project    string
120813	urlParams_ gensupport.URLParams
120814	ctx_       context.Context
120815	header_    http.Header
120816}
120817
120818// DisableXpnHost: Disable this project as a shared VPC host project.
120819//
120820// - project: Project ID for this request.
120821func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
120822	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120823	c.project = project
120824	return c
120825}
120826
120827// RequestId sets the optional parameter "requestId": An optional
120828// request ID to identify requests. Specify a unique request ID so that
120829// if you must retry your request, the server will know to ignore the
120830// request if it has already been completed.
120831//
120832// For example, consider a situation where you make an initial request
120833// and the request times out. If you make the request again with the
120834// same request ID, the server can check if original operation with the
120835// same request ID was received, and if so, will ignore the second
120836// request. This prevents clients from accidentally creating duplicate
120837// commitments.
120838//
120839// The request ID must be a valid UUID with the exception that zero UUID
120840// is not supported (00000000-0000-0000-0000-000000000000).
120841func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
120842	c.urlParams_.Set("requestId", requestId)
120843	return c
120844}
120845
120846// Fields allows partial responses to be retrieved. See
120847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120848// for more information.
120849func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
120850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120851	return c
120852}
120853
120854// Context sets the context to be used in this call's Do method. Any
120855// pending HTTP request will be aborted if the provided context is
120856// canceled.
120857func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
120858	c.ctx_ = ctx
120859	return c
120860}
120861
120862// Header returns an http.Header that can be modified by the caller to
120863// add HTTP headers to the request.
120864func (c *ProjectsDisableXpnHostCall) Header() http.Header {
120865	if c.header_ == nil {
120866		c.header_ = make(http.Header)
120867	}
120868	return c.header_
120869}
120870
120871func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
120872	reqHeaders := make(http.Header)
120873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
120874	for k, v := range c.header_ {
120875		reqHeaders[k] = v
120876	}
120877	reqHeaders.Set("User-Agent", c.s.userAgent())
120878	var body io.Reader = nil
120879	c.urlParams_.Set("alt", alt)
120880	c.urlParams_.Set("prettyPrint", "false")
120881	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnHost")
120882	urls += "?" + c.urlParams_.Encode()
120883	req, err := http.NewRequest("POST", urls, body)
120884	if err != nil {
120885		return nil, err
120886	}
120887	req.Header = reqHeaders
120888	googleapi.Expand(req.URL, map[string]string{
120889		"project": c.project,
120890	})
120891	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120892}
120893
120894// Do executes the "compute.projects.disableXpnHost" call.
120895// Exactly one of *Operation or error will be non-nil. Any non-2xx
120896// status code is an error. Response headers are in either
120897// *Operation.ServerResponse.Header or (if a response was returned at
120898// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120899// to check whether the returned error was because
120900// http.StatusNotModified was returned.
120901func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120902	gensupport.SetOptions(c.urlParams_, opts...)
120903	res, err := c.doRequest("json")
120904	if res != nil && res.StatusCode == http.StatusNotModified {
120905		if res.Body != nil {
120906			res.Body.Close()
120907		}
120908		return nil, &googleapi.Error{
120909			Code:   res.StatusCode,
120910			Header: res.Header,
120911		}
120912	}
120913	if err != nil {
120914		return nil, err
120915	}
120916	defer googleapi.CloseBody(res)
120917	if err := googleapi.CheckResponse(res); err != nil {
120918		return nil, err
120919	}
120920	ret := &Operation{
120921		ServerResponse: googleapi.ServerResponse{
120922			Header:         res.Header,
120923			HTTPStatusCode: res.StatusCode,
120924		},
120925	}
120926	target := &ret
120927	if err := gensupport.DecodeResponse(target, res); err != nil {
120928		return nil, err
120929	}
120930	return ret, nil
120931	// {
120932	//   "description": "Disable this project as a shared VPC host project.",
120933	//   "httpMethod": "POST",
120934	//   "id": "compute.projects.disableXpnHost",
120935	//   "parameterOrder": [
120936	//     "project"
120937	//   ],
120938	//   "parameters": {
120939	//     "project": {
120940	//       "description": "Project ID for this request.",
120941	//       "location": "path",
120942	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120943	//       "required": true,
120944	//       "type": "string"
120945	//     },
120946	//     "requestId": {
120947	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120948	//       "location": "query",
120949	//       "type": "string"
120950	//     }
120951	//   },
120952	//   "path": "projects/{project}/disableXpnHost",
120953	//   "response": {
120954	//     "$ref": "Operation"
120955	//   },
120956	//   "scopes": [
120957	//     "https://www.googleapis.com/auth/cloud-platform",
120958	//     "https://www.googleapis.com/auth/compute"
120959	//   ]
120960	// }
120961
120962}
120963
120964// method id "compute.projects.disableXpnResource":
120965
120966type ProjectsDisableXpnResourceCall struct {
120967	s                                 *Service
120968	project                           string
120969	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
120970	urlParams_                        gensupport.URLParams
120971	ctx_                              context.Context
120972	header_                           http.Header
120973}
120974
120975// DisableXpnResource: Disable a service resource (also known as service
120976// project) associated with this host project.
120977//
120978// - project: Project ID for this request.
120979func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
120980	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120981	c.project = project
120982	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
120983	return c
120984}
120985
120986// RequestId sets the optional parameter "requestId": An optional
120987// request ID to identify requests. Specify a unique request ID so that
120988// if you must retry your request, the server will know to ignore the
120989// request if it has already been completed.
120990//
120991// For example, consider a situation where you make an initial request
120992// and the request times out. If you make the request again with the
120993// same request ID, the server can check if original operation with the
120994// same request ID was received, and if so, will ignore the second
120995// request. This prevents clients from accidentally creating duplicate
120996// commitments.
120997//
120998// The request ID must be a valid UUID with the exception that zero UUID
120999// is not supported (00000000-0000-0000-0000-000000000000).
121000func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
121001	c.urlParams_.Set("requestId", requestId)
121002	return c
121003}
121004
121005// Fields allows partial responses to be retrieved. See
121006// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121007// for more information.
121008func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
121009	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121010	return c
121011}
121012
121013// Context sets the context to be used in this call's Do method. Any
121014// pending HTTP request will be aborted if the provided context is
121015// canceled.
121016func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
121017	c.ctx_ = ctx
121018	return c
121019}
121020
121021// Header returns an http.Header that can be modified by the caller to
121022// add HTTP headers to the request.
121023func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
121024	if c.header_ == nil {
121025		c.header_ = make(http.Header)
121026	}
121027	return c.header_
121028}
121029
121030func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
121031	reqHeaders := make(http.Header)
121032	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121033	for k, v := range c.header_ {
121034		reqHeaders[k] = v
121035	}
121036	reqHeaders.Set("User-Agent", c.s.userAgent())
121037	var body io.Reader = nil
121038	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
121039	if err != nil {
121040		return nil, err
121041	}
121042	reqHeaders.Set("Content-Type", "application/json")
121043	c.urlParams_.Set("alt", alt)
121044	c.urlParams_.Set("prettyPrint", "false")
121045	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnResource")
121046	urls += "?" + c.urlParams_.Encode()
121047	req, err := http.NewRequest("POST", urls, body)
121048	if err != nil {
121049		return nil, err
121050	}
121051	req.Header = reqHeaders
121052	googleapi.Expand(req.URL, map[string]string{
121053		"project": c.project,
121054	})
121055	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121056}
121057
121058// Do executes the "compute.projects.disableXpnResource" call.
121059// Exactly one of *Operation or error will be non-nil. Any non-2xx
121060// status code is an error. Response headers are in either
121061// *Operation.ServerResponse.Header or (if a response was returned at
121062// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121063// to check whether the returned error was because
121064// http.StatusNotModified was returned.
121065func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121066	gensupport.SetOptions(c.urlParams_, opts...)
121067	res, err := c.doRequest("json")
121068	if res != nil && res.StatusCode == http.StatusNotModified {
121069		if res.Body != nil {
121070			res.Body.Close()
121071		}
121072		return nil, &googleapi.Error{
121073			Code:   res.StatusCode,
121074			Header: res.Header,
121075		}
121076	}
121077	if err != nil {
121078		return nil, err
121079	}
121080	defer googleapi.CloseBody(res)
121081	if err := googleapi.CheckResponse(res); err != nil {
121082		return nil, err
121083	}
121084	ret := &Operation{
121085		ServerResponse: googleapi.ServerResponse{
121086			Header:         res.Header,
121087			HTTPStatusCode: res.StatusCode,
121088		},
121089	}
121090	target := &ret
121091	if err := gensupport.DecodeResponse(target, res); err != nil {
121092		return nil, err
121093	}
121094	return ret, nil
121095	// {
121096	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
121097	//   "httpMethod": "POST",
121098	//   "id": "compute.projects.disableXpnResource",
121099	//   "parameterOrder": [
121100	//     "project"
121101	//   ],
121102	//   "parameters": {
121103	//     "project": {
121104	//       "description": "Project ID for this request.",
121105	//       "location": "path",
121106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121107	//       "required": true,
121108	//       "type": "string"
121109	//     },
121110	//     "requestId": {
121111	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121112	//       "location": "query",
121113	//       "type": "string"
121114	//     }
121115	//   },
121116	//   "path": "projects/{project}/disableXpnResource",
121117	//   "request": {
121118	//     "$ref": "ProjectsDisableXpnResourceRequest"
121119	//   },
121120	//   "response": {
121121	//     "$ref": "Operation"
121122	//   },
121123	//   "scopes": [
121124	//     "https://www.googleapis.com/auth/cloud-platform",
121125	//     "https://www.googleapis.com/auth/compute"
121126	//   ]
121127	// }
121128
121129}
121130
121131// method id "compute.projects.enableXpnHost":
121132
121133type ProjectsEnableXpnHostCall struct {
121134	s          *Service
121135	project    string
121136	urlParams_ gensupport.URLParams
121137	ctx_       context.Context
121138	header_    http.Header
121139}
121140
121141// EnableXpnHost: Enable this project as a shared VPC host project.
121142//
121143// - project: Project ID for this request.
121144func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
121145	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121146	c.project = project
121147	return c
121148}
121149
121150// RequestId sets the optional parameter "requestId": An optional
121151// request ID to identify requests. Specify a unique request ID so that
121152// if you must retry your request, the server will know to ignore the
121153// request if it has already been completed.
121154//
121155// For example, consider a situation where you make an initial request
121156// and the request times out. If you make the request again with the
121157// same request ID, the server can check if original operation with the
121158// same request ID was received, and if so, will ignore the second
121159// request. This prevents clients from accidentally creating duplicate
121160// commitments.
121161//
121162// The request ID must be a valid UUID with the exception that zero UUID
121163// is not supported (00000000-0000-0000-0000-000000000000).
121164func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
121165	c.urlParams_.Set("requestId", requestId)
121166	return c
121167}
121168
121169// Fields allows partial responses to be retrieved. See
121170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121171// for more information.
121172func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
121173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121174	return c
121175}
121176
121177// Context sets the context to be used in this call's Do method. Any
121178// pending HTTP request will be aborted if the provided context is
121179// canceled.
121180func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
121181	c.ctx_ = ctx
121182	return c
121183}
121184
121185// Header returns an http.Header that can be modified by the caller to
121186// add HTTP headers to the request.
121187func (c *ProjectsEnableXpnHostCall) Header() http.Header {
121188	if c.header_ == nil {
121189		c.header_ = make(http.Header)
121190	}
121191	return c.header_
121192}
121193
121194func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
121195	reqHeaders := make(http.Header)
121196	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121197	for k, v := range c.header_ {
121198		reqHeaders[k] = v
121199	}
121200	reqHeaders.Set("User-Agent", c.s.userAgent())
121201	var body io.Reader = nil
121202	c.urlParams_.Set("alt", alt)
121203	c.urlParams_.Set("prettyPrint", "false")
121204	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnHost")
121205	urls += "?" + c.urlParams_.Encode()
121206	req, err := http.NewRequest("POST", urls, body)
121207	if err != nil {
121208		return nil, err
121209	}
121210	req.Header = reqHeaders
121211	googleapi.Expand(req.URL, map[string]string{
121212		"project": c.project,
121213	})
121214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121215}
121216
121217// Do executes the "compute.projects.enableXpnHost" call.
121218// Exactly one of *Operation or error will be non-nil. Any non-2xx
121219// status code is an error. Response headers are in either
121220// *Operation.ServerResponse.Header or (if a response was returned at
121221// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121222// to check whether the returned error was because
121223// http.StatusNotModified was returned.
121224func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121225	gensupport.SetOptions(c.urlParams_, opts...)
121226	res, err := c.doRequest("json")
121227	if res != nil && res.StatusCode == http.StatusNotModified {
121228		if res.Body != nil {
121229			res.Body.Close()
121230		}
121231		return nil, &googleapi.Error{
121232			Code:   res.StatusCode,
121233			Header: res.Header,
121234		}
121235	}
121236	if err != nil {
121237		return nil, err
121238	}
121239	defer googleapi.CloseBody(res)
121240	if err := googleapi.CheckResponse(res); err != nil {
121241		return nil, err
121242	}
121243	ret := &Operation{
121244		ServerResponse: googleapi.ServerResponse{
121245			Header:         res.Header,
121246			HTTPStatusCode: res.StatusCode,
121247		},
121248	}
121249	target := &ret
121250	if err := gensupport.DecodeResponse(target, res); err != nil {
121251		return nil, err
121252	}
121253	return ret, nil
121254	// {
121255	//   "description": "Enable this project as a shared VPC host project.",
121256	//   "httpMethod": "POST",
121257	//   "id": "compute.projects.enableXpnHost",
121258	//   "parameterOrder": [
121259	//     "project"
121260	//   ],
121261	//   "parameters": {
121262	//     "project": {
121263	//       "description": "Project ID for this request.",
121264	//       "location": "path",
121265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121266	//       "required": true,
121267	//       "type": "string"
121268	//     },
121269	//     "requestId": {
121270	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121271	//       "location": "query",
121272	//       "type": "string"
121273	//     }
121274	//   },
121275	//   "path": "projects/{project}/enableXpnHost",
121276	//   "response": {
121277	//     "$ref": "Operation"
121278	//   },
121279	//   "scopes": [
121280	//     "https://www.googleapis.com/auth/cloud-platform",
121281	//     "https://www.googleapis.com/auth/compute"
121282	//   ]
121283	// }
121284
121285}
121286
121287// method id "compute.projects.enableXpnResource":
121288
121289type ProjectsEnableXpnResourceCall struct {
121290	s                                *Service
121291	project                          string
121292	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
121293	urlParams_                       gensupport.URLParams
121294	ctx_                             context.Context
121295	header_                          http.Header
121296}
121297
121298// EnableXpnResource: Enable service resource (a.k.a service project)
121299// for a host project, so that subnets in the host project can be used
121300// by instances in the service project.
121301//
121302// - project: Project ID for this request.
121303func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
121304	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121305	c.project = project
121306	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
121307	return c
121308}
121309
121310// RequestId sets the optional parameter "requestId": An optional
121311// request ID to identify requests. Specify a unique request ID so that
121312// if you must retry your request, the server will know to ignore the
121313// request if it has already been completed.
121314//
121315// For example, consider a situation where you make an initial request
121316// and the request times out. If you make the request again with the
121317// same request ID, the server can check if original operation with the
121318// same request ID was received, and if so, will ignore the second
121319// request. This prevents clients from accidentally creating duplicate
121320// commitments.
121321//
121322// The request ID must be a valid UUID with the exception that zero UUID
121323// is not supported (00000000-0000-0000-0000-000000000000).
121324func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
121325	c.urlParams_.Set("requestId", requestId)
121326	return c
121327}
121328
121329// Fields allows partial responses to be retrieved. See
121330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121331// for more information.
121332func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
121333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121334	return c
121335}
121336
121337// Context sets the context to be used in this call's Do method. Any
121338// pending HTTP request will be aborted if the provided context is
121339// canceled.
121340func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
121341	c.ctx_ = ctx
121342	return c
121343}
121344
121345// Header returns an http.Header that can be modified by the caller to
121346// add HTTP headers to the request.
121347func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
121348	if c.header_ == nil {
121349		c.header_ = make(http.Header)
121350	}
121351	return c.header_
121352}
121353
121354func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
121355	reqHeaders := make(http.Header)
121356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121357	for k, v := range c.header_ {
121358		reqHeaders[k] = v
121359	}
121360	reqHeaders.Set("User-Agent", c.s.userAgent())
121361	var body io.Reader = nil
121362	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
121363	if err != nil {
121364		return nil, err
121365	}
121366	reqHeaders.Set("Content-Type", "application/json")
121367	c.urlParams_.Set("alt", alt)
121368	c.urlParams_.Set("prettyPrint", "false")
121369	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnResource")
121370	urls += "?" + c.urlParams_.Encode()
121371	req, err := http.NewRequest("POST", urls, body)
121372	if err != nil {
121373		return nil, err
121374	}
121375	req.Header = reqHeaders
121376	googleapi.Expand(req.URL, map[string]string{
121377		"project": c.project,
121378	})
121379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121380}
121381
121382// Do executes the "compute.projects.enableXpnResource" call.
121383// Exactly one of *Operation or error will be non-nil. Any non-2xx
121384// status code is an error. Response headers are in either
121385// *Operation.ServerResponse.Header or (if a response was returned at
121386// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121387// to check whether the returned error was because
121388// http.StatusNotModified was returned.
121389func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121390	gensupport.SetOptions(c.urlParams_, opts...)
121391	res, err := c.doRequest("json")
121392	if res != nil && res.StatusCode == http.StatusNotModified {
121393		if res.Body != nil {
121394			res.Body.Close()
121395		}
121396		return nil, &googleapi.Error{
121397			Code:   res.StatusCode,
121398			Header: res.Header,
121399		}
121400	}
121401	if err != nil {
121402		return nil, err
121403	}
121404	defer googleapi.CloseBody(res)
121405	if err := googleapi.CheckResponse(res); err != nil {
121406		return nil, err
121407	}
121408	ret := &Operation{
121409		ServerResponse: googleapi.ServerResponse{
121410			Header:         res.Header,
121411			HTTPStatusCode: res.StatusCode,
121412		},
121413	}
121414	target := &ret
121415	if err := gensupport.DecodeResponse(target, res); err != nil {
121416		return nil, err
121417	}
121418	return ret, nil
121419	// {
121420	//   "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.",
121421	//   "httpMethod": "POST",
121422	//   "id": "compute.projects.enableXpnResource",
121423	//   "parameterOrder": [
121424	//     "project"
121425	//   ],
121426	//   "parameters": {
121427	//     "project": {
121428	//       "description": "Project ID for this request.",
121429	//       "location": "path",
121430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121431	//       "required": true,
121432	//       "type": "string"
121433	//     },
121434	//     "requestId": {
121435	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121436	//       "location": "query",
121437	//       "type": "string"
121438	//     }
121439	//   },
121440	//   "path": "projects/{project}/enableXpnResource",
121441	//   "request": {
121442	//     "$ref": "ProjectsEnableXpnResourceRequest"
121443	//   },
121444	//   "response": {
121445	//     "$ref": "Operation"
121446	//   },
121447	//   "scopes": [
121448	//     "https://www.googleapis.com/auth/cloud-platform",
121449	//     "https://www.googleapis.com/auth/compute"
121450	//   ]
121451	// }
121452
121453}
121454
121455// method id "compute.projects.get":
121456
121457type ProjectsGetCall struct {
121458	s            *Service
121459	project      string
121460	urlParams_   gensupport.URLParams
121461	ifNoneMatch_ string
121462	ctx_         context.Context
121463	header_      http.Header
121464}
121465
121466// Get: Returns the specified Project resource.
121467//
121468// - project: Project ID for this request.
121469// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
121470func (r *ProjectsService) Get(project string) *ProjectsGetCall {
121471	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121472	c.project = project
121473	return c
121474}
121475
121476// Fields allows partial responses to be retrieved. See
121477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121478// for more information.
121479func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
121480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121481	return c
121482}
121483
121484// IfNoneMatch sets the optional parameter which makes the operation
121485// fail if the object's ETag matches the given value. This is useful for
121486// getting updates only after the object has changed since the last
121487// request. Use googleapi.IsNotModified to check whether the response
121488// error from Do is the result of In-None-Match.
121489func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
121490	c.ifNoneMatch_ = entityTag
121491	return c
121492}
121493
121494// Context sets the context to be used in this call's Do method. Any
121495// pending HTTP request will be aborted if the provided context is
121496// canceled.
121497func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
121498	c.ctx_ = ctx
121499	return c
121500}
121501
121502// Header returns an http.Header that can be modified by the caller to
121503// add HTTP headers to the request.
121504func (c *ProjectsGetCall) Header() http.Header {
121505	if c.header_ == nil {
121506		c.header_ = make(http.Header)
121507	}
121508	return c.header_
121509}
121510
121511func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
121512	reqHeaders := make(http.Header)
121513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121514	for k, v := range c.header_ {
121515		reqHeaders[k] = v
121516	}
121517	reqHeaders.Set("User-Agent", c.s.userAgent())
121518	if c.ifNoneMatch_ != "" {
121519		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121520	}
121521	var body io.Reader = nil
121522	c.urlParams_.Set("alt", alt)
121523	c.urlParams_.Set("prettyPrint", "false")
121524	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}")
121525	urls += "?" + c.urlParams_.Encode()
121526	req, err := http.NewRequest("GET", urls, body)
121527	if err != nil {
121528		return nil, err
121529	}
121530	req.Header = reqHeaders
121531	googleapi.Expand(req.URL, map[string]string{
121532		"project": c.project,
121533	})
121534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121535}
121536
121537// Do executes the "compute.projects.get" call.
121538// Exactly one of *Project or error will be non-nil. Any non-2xx status
121539// code is an error. Response headers are in either
121540// *Project.ServerResponse.Header or (if a response was returned at all)
121541// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
121542// check whether the returned error was because http.StatusNotModified
121543// was returned.
121544func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
121545	gensupport.SetOptions(c.urlParams_, opts...)
121546	res, err := c.doRequest("json")
121547	if res != nil && res.StatusCode == http.StatusNotModified {
121548		if res.Body != nil {
121549			res.Body.Close()
121550		}
121551		return nil, &googleapi.Error{
121552			Code:   res.StatusCode,
121553			Header: res.Header,
121554		}
121555	}
121556	if err != nil {
121557		return nil, err
121558	}
121559	defer googleapi.CloseBody(res)
121560	if err := googleapi.CheckResponse(res); err != nil {
121561		return nil, err
121562	}
121563	ret := &Project{
121564		ServerResponse: googleapi.ServerResponse{
121565			Header:         res.Header,
121566			HTTPStatusCode: res.StatusCode,
121567		},
121568	}
121569	target := &ret
121570	if err := gensupport.DecodeResponse(target, res); err != nil {
121571		return nil, err
121572	}
121573	return ret, nil
121574	// {
121575	//   "description": "Returns the specified Project resource.",
121576	//   "httpMethod": "GET",
121577	//   "id": "compute.projects.get",
121578	//   "parameterOrder": [
121579	//     "project"
121580	//   ],
121581	//   "parameters": {
121582	//     "project": {
121583	//       "description": "Project ID for this request.",
121584	//       "location": "path",
121585	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121586	//       "required": true,
121587	//       "type": "string"
121588	//     }
121589	//   },
121590	//   "path": "projects/{project}",
121591	//   "response": {
121592	//     "$ref": "Project"
121593	//   },
121594	//   "scopes": [
121595	//     "https://www.googleapis.com/auth/cloud-platform",
121596	//     "https://www.googleapis.com/auth/compute",
121597	//     "https://www.googleapis.com/auth/compute.readonly"
121598	//   ]
121599	// }
121600
121601}
121602
121603// method id "compute.projects.getXpnHost":
121604
121605type ProjectsGetXpnHostCall struct {
121606	s            *Service
121607	project      string
121608	urlParams_   gensupport.URLParams
121609	ifNoneMatch_ string
121610	ctx_         context.Context
121611	header_      http.Header
121612}
121613
121614// GetXpnHost: Gets the shared VPC host project that this project links
121615// to. May be empty if no link exists.
121616//
121617// - project: Project ID for this request.
121618func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
121619	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121620	c.project = project
121621	return c
121622}
121623
121624// Fields allows partial responses to be retrieved. See
121625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121626// for more information.
121627func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
121628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121629	return c
121630}
121631
121632// IfNoneMatch sets the optional parameter which makes the operation
121633// fail if the object's ETag matches the given value. This is useful for
121634// getting updates only after the object has changed since the last
121635// request. Use googleapi.IsNotModified to check whether the response
121636// error from Do is the result of In-None-Match.
121637func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
121638	c.ifNoneMatch_ = entityTag
121639	return c
121640}
121641
121642// Context sets the context to be used in this call's Do method. Any
121643// pending HTTP request will be aborted if the provided context is
121644// canceled.
121645func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
121646	c.ctx_ = ctx
121647	return c
121648}
121649
121650// Header returns an http.Header that can be modified by the caller to
121651// add HTTP headers to the request.
121652func (c *ProjectsGetXpnHostCall) Header() http.Header {
121653	if c.header_ == nil {
121654		c.header_ = make(http.Header)
121655	}
121656	return c.header_
121657}
121658
121659func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
121660	reqHeaders := make(http.Header)
121661	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121662	for k, v := range c.header_ {
121663		reqHeaders[k] = v
121664	}
121665	reqHeaders.Set("User-Agent", c.s.userAgent())
121666	if c.ifNoneMatch_ != "" {
121667		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121668	}
121669	var body io.Reader = nil
121670	c.urlParams_.Set("alt", alt)
121671	c.urlParams_.Set("prettyPrint", "false")
121672	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnHost")
121673	urls += "?" + c.urlParams_.Encode()
121674	req, err := http.NewRequest("GET", urls, body)
121675	if err != nil {
121676		return nil, err
121677	}
121678	req.Header = reqHeaders
121679	googleapi.Expand(req.URL, map[string]string{
121680		"project": c.project,
121681	})
121682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121683}
121684
121685// Do executes the "compute.projects.getXpnHost" call.
121686// Exactly one of *Project or error will be non-nil. Any non-2xx status
121687// code is an error. Response headers are in either
121688// *Project.ServerResponse.Header or (if a response was returned at all)
121689// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
121690// check whether the returned error was because http.StatusNotModified
121691// was returned.
121692func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
121693	gensupport.SetOptions(c.urlParams_, opts...)
121694	res, err := c.doRequest("json")
121695	if res != nil && res.StatusCode == http.StatusNotModified {
121696		if res.Body != nil {
121697			res.Body.Close()
121698		}
121699		return nil, &googleapi.Error{
121700			Code:   res.StatusCode,
121701			Header: res.Header,
121702		}
121703	}
121704	if err != nil {
121705		return nil, err
121706	}
121707	defer googleapi.CloseBody(res)
121708	if err := googleapi.CheckResponse(res); err != nil {
121709		return nil, err
121710	}
121711	ret := &Project{
121712		ServerResponse: googleapi.ServerResponse{
121713			Header:         res.Header,
121714			HTTPStatusCode: res.StatusCode,
121715		},
121716	}
121717	target := &ret
121718	if err := gensupport.DecodeResponse(target, res); err != nil {
121719		return nil, err
121720	}
121721	return ret, nil
121722	// {
121723	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
121724	//   "httpMethod": "GET",
121725	//   "id": "compute.projects.getXpnHost",
121726	//   "parameterOrder": [
121727	//     "project"
121728	//   ],
121729	//   "parameters": {
121730	//     "project": {
121731	//       "description": "Project ID for this request.",
121732	//       "location": "path",
121733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121734	//       "required": true,
121735	//       "type": "string"
121736	//     }
121737	//   },
121738	//   "path": "projects/{project}/getXpnHost",
121739	//   "response": {
121740	//     "$ref": "Project"
121741	//   },
121742	//   "scopes": [
121743	//     "https://www.googleapis.com/auth/cloud-platform",
121744	//     "https://www.googleapis.com/auth/compute"
121745	//   ]
121746	// }
121747
121748}
121749
121750// method id "compute.projects.getXpnResources":
121751
121752type ProjectsGetXpnResourcesCall struct {
121753	s            *Service
121754	project      string
121755	urlParams_   gensupport.URLParams
121756	ifNoneMatch_ string
121757	ctx_         context.Context
121758	header_      http.Header
121759}
121760
121761// GetXpnResources: Gets service resources (a.k.a service project)
121762// associated with this host project.
121763//
121764// - project: Project ID for this request.
121765func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
121766	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121767	c.project = project
121768	return c
121769}
121770
121771// Filter sets the optional parameter "filter": A filter expression that
121772// filters resources listed in the response. The expression must specify
121773// the field name, a comparison operator, and the value that you want to
121774// use for filtering. The value must be a string, a number, or a
121775// boolean. The comparison operator must be either `=`, `!=`, `>`, or
121776// `<`.
121777//
121778// For example, if you are filtering Compute Engine instances, you can
121779// exclude instances named `example-instance` by specifying `name !=
121780// example-instance`.
121781//
121782// You can also filter nested fields. For example, you could specify
121783// `scheduling.automaticRestart = false` to include instances only if
121784// they are not scheduled for automatic restarts. You can use filtering
121785// on nested fields to filter based on resource labels.
121786//
121787// To filter on multiple expressions, provide each separate expression
121788// within parentheses. For example: ``` (scheduling.automaticRestart =
121789// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
121790// is an `AND` expression. However, you can include `AND` and `OR`
121791// expressions explicitly. For example: ``` (cpuPlatform = "Intel
121792// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
121793// (scheduling.automaticRestart = true) ```
121794func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
121795	c.urlParams_.Set("filter", filter)
121796	return c
121797}
121798
121799// MaxResults sets the optional parameter "maxResults": The maximum
121800// number of results per page that should be returned. If the number of
121801// available results is larger than `maxResults`, Compute Engine returns
121802// a `nextPageToken` that can be used to get the next page of results in
121803// subsequent list requests. Acceptable values are `0` to `500`,
121804// inclusive. (Default: `500`)
121805func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
121806	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121807	return c
121808}
121809
121810// OrderBy sets the optional parameter "orderBy": Sorts list results by
121811// a certain order. By default, results are returned in alphanumerical
121812// order based on the resource name.
121813//
121814// You can also sort results in descending order based on the creation
121815// timestamp using `orderBy="creationTimestamp desc". This sorts
121816// results based on the `creationTimestamp` field in reverse
121817// chronological order (newest result first). Use this to sort resources
121818// like operations so that the newest operation is returned
121819// first.
121820//
121821// Currently, only sorting by `name` or `creationTimestamp desc` is
121822// supported.
121823func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
121824	c.urlParams_.Set("orderBy", orderBy)
121825	return c
121826}
121827
121828// PageToken sets the optional parameter "pageToken": Specifies a page
121829// token to use. Set `pageToken` to the `nextPageToken` returned by a
121830// previous list request to get the next page of results.
121831func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
121832	c.urlParams_.Set("pageToken", pageToken)
121833	return c
121834}
121835
121836// ReturnPartialSuccess sets the optional parameter
121837// "returnPartialSuccess": Opt-in for partial success behavior which
121838// provides partial results in case of failure. The default value is
121839// false.
121840func (c *ProjectsGetXpnResourcesCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsGetXpnResourcesCall {
121841	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
121842	return c
121843}
121844
121845// Fields allows partial responses to be retrieved. See
121846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121847// for more information.
121848func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
121849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121850	return c
121851}
121852
121853// IfNoneMatch sets the optional parameter which makes the operation
121854// fail if the object's ETag matches the given value. This is useful for
121855// getting updates only after the object has changed since the last
121856// request. Use googleapi.IsNotModified to check whether the response
121857// error from Do is the result of In-None-Match.
121858func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
121859	c.ifNoneMatch_ = entityTag
121860	return c
121861}
121862
121863// Context sets the context to be used in this call's Do method. Any
121864// pending HTTP request will be aborted if the provided context is
121865// canceled.
121866func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
121867	c.ctx_ = ctx
121868	return c
121869}
121870
121871// Header returns an http.Header that can be modified by the caller to
121872// add HTTP headers to the request.
121873func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
121874	if c.header_ == nil {
121875		c.header_ = make(http.Header)
121876	}
121877	return c.header_
121878}
121879
121880func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
121881	reqHeaders := make(http.Header)
121882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121883	for k, v := range c.header_ {
121884		reqHeaders[k] = v
121885	}
121886	reqHeaders.Set("User-Agent", c.s.userAgent())
121887	if c.ifNoneMatch_ != "" {
121888		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121889	}
121890	var body io.Reader = nil
121891	c.urlParams_.Set("alt", alt)
121892	c.urlParams_.Set("prettyPrint", "false")
121893	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnResources")
121894	urls += "?" + c.urlParams_.Encode()
121895	req, err := http.NewRequest("GET", urls, body)
121896	if err != nil {
121897		return nil, err
121898	}
121899	req.Header = reqHeaders
121900	googleapi.Expand(req.URL, map[string]string{
121901		"project": c.project,
121902	})
121903	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121904}
121905
121906// Do executes the "compute.projects.getXpnResources" call.
121907// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
121908// non-2xx status code is an error. Response headers are in either
121909// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
121910// returned at all) in error.(*googleapi.Error).Header. Use
121911// googleapi.IsNotModified to check whether the returned error was
121912// because http.StatusNotModified was returned.
121913func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
121914	gensupport.SetOptions(c.urlParams_, opts...)
121915	res, err := c.doRequest("json")
121916	if res != nil && res.StatusCode == http.StatusNotModified {
121917		if res.Body != nil {
121918			res.Body.Close()
121919		}
121920		return nil, &googleapi.Error{
121921			Code:   res.StatusCode,
121922			Header: res.Header,
121923		}
121924	}
121925	if err != nil {
121926		return nil, err
121927	}
121928	defer googleapi.CloseBody(res)
121929	if err := googleapi.CheckResponse(res); err != nil {
121930		return nil, err
121931	}
121932	ret := &ProjectsGetXpnResources{
121933		ServerResponse: googleapi.ServerResponse{
121934			Header:         res.Header,
121935			HTTPStatusCode: res.StatusCode,
121936		},
121937	}
121938	target := &ret
121939	if err := gensupport.DecodeResponse(target, res); err != nil {
121940		return nil, err
121941	}
121942	return ret, nil
121943	// {
121944	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
121945	//   "httpMethod": "GET",
121946	//   "id": "compute.projects.getXpnResources",
121947	//   "parameterOrder": [
121948	//     "project"
121949	//   ],
121950	//   "parameters": {
121951	//     "filter": {
121952	//       "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) ```",
121953	//       "location": "query",
121954	//       "type": "string"
121955	//     },
121956	//     "maxResults": {
121957	//       "default": "500",
121958	//       "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`)",
121959	//       "format": "uint32",
121960	//       "location": "query",
121961	//       "minimum": "0",
121962	//       "type": "integer"
121963	//     },
121964	//     "orderBy": {
121965	//       "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.",
121966	//       "location": "query",
121967	//       "type": "string"
121968	//     },
121969	//     "pageToken": {
121970	//       "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.",
121971	//       "location": "query",
121972	//       "type": "string"
121973	//     },
121974	//     "project": {
121975	//       "description": "Project ID for this request.",
121976	//       "location": "path",
121977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121978	//       "required": true,
121979	//       "type": "string"
121980	//     },
121981	//     "returnPartialSuccess": {
121982	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
121983	//       "location": "query",
121984	//       "type": "boolean"
121985	//     }
121986	//   },
121987	//   "path": "projects/{project}/getXpnResources",
121988	//   "response": {
121989	//     "$ref": "ProjectsGetXpnResources"
121990	//   },
121991	//   "scopes": [
121992	//     "https://www.googleapis.com/auth/cloud-platform",
121993	//     "https://www.googleapis.com/auth/compute"
121994	//   ]
121995	// }
121996
121997}
121998
121999// Pages invokes f for each page of results.
122000// A non-nil error returned from f will halt the iteration.
122001// The provided context supersedes any context provided to the Context method.
122002func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
122003	c.ctx_ = ctx
122004	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122005	for {
122006		x, err := c.Do()
122007		if err != nil {
122008			return err
122009		}
122010		if err := f(x); err != nil {
122011			return err
122012		}
122013		if x.NextPageToken == "" {
122014			return nil
122015		}
122016		c.PageToken(x.NextPageToken)
122017	}
122018}
122019
122020// method id "compute.projects.listXpnHosts":
122021
122022type ProjectsListXpnHostsCall struct {
122023	s                           *Service
122024	project                     string
122025	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
122026	urlParams_                  gensupport.URLParams
122027	ctx_                        context.Context
122028	header_                     http.Header
122029}
122030
122031// ListXpnHosts: Lists all shared VPC host projects visible to the user
122032// in an organization.
122033//
122034// - project: Project ID for this request.
122035func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
122036	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122037	c.project = project
122038	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
122039	return c
122040}
122041
122042// Filter sets the optional parameter "filter": A filter expression that
122043// filters resources listed in the response. The expression must specify
122044// the field name, a comparison operator, and the value that you want to
122045// use for filtering. The value must be a string, a number, or a
122046// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122047// `<`.
122048//
122049// For example, if you are filtering Compute Engine instances, you can
122050// exclude instances named `example-instance` by specifying `name !=
122051// example-instance`.
122052//
122053// You can also filter nested fields. For example, you could specify
122054// `scheduling.automaticRestart = false` to include instances only if
122055// they are not scheduled for automatic restarts. You can use filtering
122056// on nested fields to filter based on resource labels.
122057//
122058// To filter on multiple expressions, provide each separate expression
122059// within parentheses. For example: ``` (scheduling.automaticRestart =
122060// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
122061// is an `AND` expression. However, you can include `AND` and `OR`
122062// expressions explicitly. For example: ``` (cpuPlatform = "Intel
122063// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
122064// (scheduling.automaticRestart = true) ```
122065func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
122066	c.urlParams_.Set("filter", filter)
122067	return c
122068}
122069
122070// MaxResults sets the optional parameter "maxResults": The maximum
122071// number of results per page that should be returned. If the number of
122072// available results is larger than `maxResults`, Compute Engine returns
122073// a `nextPageToken` that can be used to get the next page of results in
122074// subsequent list requests. Acceptable values are `0` to `500`,
122075// inclusive. (Default: `500`)
122076func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
122077	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122078	return c
122079}
122080
122081// OrderBy sets the optional parameter "orderBy": Sorts list results by
122082// a certain order. By default, results are returned in alphanumerical
122083// order based on the resource name.
122084//
122085// You can also sort results in descending order based on the creation
122086// timestamp using `orderBy="creationTimestamp desc". This sorts
122087// results based on the `creationTimestamp` field in reverse
122088// chronological order (newest result first). Use this to sort resources
122089// like operations so that the newest operation is returned
122090// first.
122091//
122092// Currently, only sorting by `name` or `creationTimestamp desc` is
122093// supported.
122094func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
122095	c.urlParams_.Set("orderBy", orderBy)
122096	return c
122097}
122098
122099// PageToken sets the optional parameter "pageToken": Specifies a page
122100// token to use. Set `pageToken` to the `nextPageToken` returned by a
122101// previous list request to get the next page of results.
122102func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
122103	c.urlParams_.Set("pageToken", pageToken)
122104	return c
122105}
122106
122107// ReturnPartialSuccess sets the optional parameter
122108// "returnPartialSuccess": Opt-in for partial success behavior which
122109// provides partial results in case of failure. The default value is
122110// false.
122111func (c *ProjectsListXpnHostsCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsListXpnHostsCall {
122112	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
122113	return c
122114}
122115
122116// Fields allows partial responses to be retrieved. See
122117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122118// for more information.
122119func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
122120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122121	return c
122122}
122123
122124// Context sets the context to be used in this call's Do method. Any
122125// pending HTTP request will be aborted if the provided context is
122126// canceled.
122127func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
122128	c.ctx_ = ctx
122129	return c
122130}
122131
122132// Header returns an http.Header that can be modified by the caller to
122133// add HTTP headers to the request.
122134func (c *ProjectsListXpnHostsCall) Header() http.Header {
122135	if c.header_ == nil {
122136		c.header_ = make(http.Header)
122137	}
122138	return c.header_
122139}
122140
122141func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
122142	reqHeaders := make(http.Header)
122143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122144	for k, v := range c.header_ {
122145		reqHeaders[k] = v
122146	}
122147	reqHeaders.Set("User-Agent", c.s.userAgent())
122148	var body io.Reader = nil
122149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
122150	if err != nil {
122151		return nil, err
122152	}
122153	reqHeaders.Set("Content-Type", "application/json")
122154	c.urlParams_.Set("alt", alt)
122155	c.urlParams_.Set("prettyPrint", "false")
122156	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/listXpnHosts")
122157	urls += "?" + c.urlParams_.Encode()
122158	req, err := http.NewRequest("POST", urls, body)
122159	if err != nil {
122160		return nil, err
122161	}
122162	req.Header = reqHeaders
122163	googleapi.Expand(req.URL, map[string]string{
122164		"project": c.project,
122165	})
122166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122167}
122168
122169// Do executes the "compute.projects.listXpnHosts" call.
122170// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
122171// status code is an error. Response headers are in either
122172// *XpnHostList.ServerResponse.Header or (if a response was returned at
122173// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122174// to check whether the returned error was because
122175// http.StatusNotModified was returned.
122176func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
122177	gensupport.SetOptions(c.urlParams_, opts...)
122178	res, err := c.doRequest("json")
122179	if res != nil && res.StatusCode == http.StatusNotModified {
122180		if res.Body != nil {
122181			res.Body.Close()
122182		}
122183		return nil, &googleapi.Error{
122184			Code:   res.StatusCode,
122185			Header: res.Header,
122186		}
122187	}
122188	if err != nil {
122189		return nil, err
122190	}
122191	defer googleapi.CloseBody(res)
122192	if err := googleapi.CheckResponse(res); err != nil {
122193		return nil, err
122194	}
122195	ret := &XpnHostList{
122196		ServerResponse: googleapi.ServerResponse{
122197			Header:         res.Header,
122198			HTTPStatusCode: res.StatusCode,
122199		},
122200	}
122201	target := &ret
122202	if err := gensupport.DecodeResponse(target, res); err != nil {
122203		return nil, err
122204	}
122205	return ret, nil
122206	// {
122207	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
122208	//   "httpMethod": "POST",
122209	//   "id": "compute.projects.listXpnHosts",
122210	//   "parameterOrder": [
122211	//     "project"
122212	//   ],
122213	//   "parameters": {
122214	//     "filter": {
122215	//       "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) ```",
122216	//       "location": "query",
122217	//       "type": "string"
122218	//     },
122219	//     "maxResults": {
122220	//       "default": "500",
122221	//       "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`)",
122222	//       "format": "uint32",
122223	//       "location": "query",
122224	//       "minimum": "0",
122225	//       "type": "integer"
122226	//     },
122227	//     "orderBy": {
122228	//       "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.",
122229	//       "location": "query",
122230	//       "type": "string"
122231	//     },
122232	//     "pageToken": {
122233	//       "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.",
122234	//       "location": "query",
122235	//       "type": "string"
122236	//     },
122237	//     "project": {
122238	//       "description": "Project ID for this request.",
122239	//       "location": "path",
122240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122241	//       "required": true,
122242	//       "type": "string"
122243	//     },
122244	//     "returnPartialSuccess": {
122245	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
122246	//       "location": "query",
122247	//       "type": "boolean"
122248	//     }
122249	//   },
122250	//   "path": "projects/{project}/listXpnHosts",
122251	//   "request": {
122252	//     "$ref": "ProjectsListXpnHostsRequest"
122253	//   },
122254	//   "response": {
122255	//     "$ref": "XpnHostList"
122256	//   },
122257	//   "scopes": [
122258	//     "https://www.googleapis.com/auth/cloud-platform",
122259	//     "https://www.googleapis.com/auth/compute"
122260	//   ]
122261	// }
122262
122263}
122264
122265// Pages invokes f for each page of results.
122266// A non-nil error returned from f will halt the iteration.
122267// The provided context supersedes any context provided to the Context method.
122268func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
122269	c.ctx_ = ctx
122270	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122271	for {
122272		x, err := c.Do()
122273		if err != nil {
122274			return err
122275		}
122276		if err := f(x); err != nil {
122277			return err
122278		}
122279		if x.NextPageToken == "" {
122280			return nil
122281		}
122282		c.PageToken(x.NextPageToken)
122283	}
122284}
122285
122286// method id "compute.projects.moveDisk":
122287
122288type ProjectsMoveDiskCall struct {
122289	s               *Service
122290	project         string
122291	diskmoverequest *DiskMoveRequest
122292	urlParams_      gensupport.URLParams
122293	ctx_            context.Context
122294	header_         http.Header
122295}
122296
122297// MoveDisk: Moves a persistent disk from one zone to another.
122298//
122299// - project: Project ID for this request.
122300func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
122301	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122302	c.project = project
122303	c.diskmoverequest = diskmoverequest
122304	return c
122305}
122306
122307// RequestId sets the optional parameter "requestId": An optional
122308// request ID to identify requests. Specify a unique request ID so that
122309// if you must retry your request, the server will know to ignore the
122310// request if it has already been completed.
122311//
122312// For example, consider a situation where you make an initial request
122313// and the request times out. If you make the request again with the
122314// same request ID, the server can check if original operation with the
122315// same request ID was received, and if so, will ignore the second
122316// request. This prevents clients from accidentally creating duplicate
122317// commitments.
122318//
122319// The request ID must be a valid UUID with the exception that zero UUID
122320// is not supported (00000000-0000-0000-0000-000000000000).
122321func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
122322	c.urlParams_.Set("requestId", requestId)
122323	return c
122324}
122325
122326// Fields allows partial responses to be retrieved. See
122327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122328// for more information.
122329func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
122330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122331	return c
122332}
122333
122334// Context sets the context to be used in this call's Do method. Any
122335// pending HTTP request will be aborted if the provided context is
122336// canceled.
122337func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
122338	c.ctx_ = ctx
122339	return c
122340}
122341
122342// Header returns an http.Header that can be modified by the caller to
122343// add HTTP headers to the request.
122344func (c *ProjectsMoveDiskCall) Header() http.Header {
122345	if c.header_ == nil {
122346		c.header_ = make(http.Header)
122347	}
122348	return c.header_
122349}
122350
122351func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
122352	reqHeaders := make(http.Header)
122353	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122354	for k, v := range c.header_ {
122355		reqHeaders[k] = v
122356	}
122357	reqHeaders.Set("User-Agent", c.s.userAgent())
122358	var body io.Reader = nil
122359	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
122360	if err != nil {
122361		return nil, err
122362	}
122363	reqHeaders.Set("Content-Type", "application/json")
122364	c.urlParams_.Set("alt", alt)
122365	c.urlParams_.Set("prettyPrint", "false")
122366	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveDisk")
122367	urls += "?" + c.urlParams_.Encode()
122368	req, err := http.NewRequest("POST", urls, body)
122369	if err != nil {
122370		return nil, err
122371	}
122372	req.Header = reqHeaders
122373	googleapi.Expand(req.URL, map[string]string{
122374		"project": c.project,
122375	})
122376	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122377}
122378
122379// Do executes the "compute.projects.moveDisk" call.
122380// Exactly one of *Operation or error will be non-nil. Any non-2xx
122381// status code is an error. Response headers are in either
122382// *Operation.ServerResponse.Header or (if a response was returned at
122383// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122384// to check whether the returned error was because
122385// http.StatusNotModified was returned.
122386func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122387	gensupport.SetOptions(c.urlParams_, opts...)
122388	res, err := c.doRequest("json")
122389	if res != nil && res.StatusCode == http.StatusNotModified {
122390		if res.Body != nil {
122391			res.Body.Close()
122392		}
122393		return nil, &googleapi.Error{
122394			Code:   res.StatusCode,
122395			Header: res.Header,
122396		}
122397	}
122398	if err != nil {
122399		return nil, err
122400	}
122401	defer googleapi.CloseBody(res)
122402	if err := googleapi.CheckResponse(res); err != nil {
122403		return nil, err
122404	}
122405	ret := &Operation{
122406		ServerResponse: googleapi.ServerResponse{
122407			Header:         res.Header,
122408			HTTPStatusCode: res.StatusCode,
122409		},
122410	}
122411	target := &ret
122412	if err := gensupport.DecodeResponse(target, res); err != nil {
122413		return nil, err
122414	}
122415	return ret, nil
122416	// {
122417	//   "description": "Moves a persistent disk from one zone to another.",
122418	//   "httpMethod": "POST",
122419	//   "id": "compute.projects.moveDisk",
122420	//   "parameterOrder": [
122421	//     "project"
122422	//   ],
122423	//   "parameters": {
122424	//     "project": {
122425	//       "description": "Project ID for this request.",
122426	//       "location": "path",
122427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122428	//       "required": true,
122429	//       "type": "string"
122430	//     },
122431	//     "requestId": {
122432	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122433	//       "location": "query",
122434	//       "type": "string"
122435	//     }
122436	//   },
122437	//   "path": "projects/{project}/moveDisk",
122438	//   "request": {
122439	//     "$ref": "DiskMoveRequest"
122440	//   },
122441	//   "response": {
122442	//     "$ref": "Operation"
122443	//   },
122444	//   "scopes": [
122445	//     "https://www.googleapis.com/auth/cloud-platform",
122446	//     "https://www.googleapis.com/auth/compute"
122447	//   ]
122448	// }
122449
122450}
122451
122452// method id "compute.projects.moveInstance":
122453
122454type ProjectsMoveInstanceCall struct {
122455	s                   *Service
122456	project             string
122457	instancemoverequest *InstanceMoveRequest
122458	urlParams_          gensupport.URLParams
122459	ctx_                context.Context
122460	header_             http.Header
122461}
122462
122463// MoveInstance: Moves an instance and its attached persistent disks
122464// from one zone to another.
122465//
122466// - project: Project ID for this request.
122467func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
122468	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122469	c.project = project
122470	c.instancemoverequest = instancemoverequest
122471	return c
122472}
122473
122474// RequestId sets the optional parameter "requestId": An optional
122475// request ID to identify requests. Specify a unique request ID so that
122476// if you must retry your request, the server will know to ignore the
122477// request if it has already been completed.
122478//
122479// For example, consider a situation where you make an initial request
122480// and the request times out. If you make the request again with the
122481// same request ID, the server can check if original operation with the
122482// same request ID was received, and if so, will ignore the second
122483// request. This prevents clients from accidentally creating duplicate
122484// commitments.
122485//
122486// The request ID must be a valid UUID with the exception that zero UUID
122487// is not supported (00000000-0000-0000-0000-000000000000).
122488func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
122489	c.urlParams_.Set("requestId", requestId)
122490	return c
122491}
122492
122493// Fields allows partial responses to be retrieved. See
122494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122495// for more information.
122496func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
122497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122498	return c
122499}
122500
122501// Context sets the context to be used in this call's Do method. Any
122502// pending HTTP request will be aborted if the provided context is
122503// canceled.
122504func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
122505	c.ctx_ = ctx
122506	return c
122507}
122508
122509// Header returns an http.Header that can be modified by the caller to
122510// add HTTP headers to the request.
122511func (c *ProjectsMoveInstanceCall) Header() http.Header {
122512	if c.header_ == nil {
122513		c.header_ = make(http.Header)
122514	}
122515	return c.header_
122516}
122517
122518func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
122519	reqHeaders := make(http.Header)
122520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122521	for k, v := range c.header_ {
122522		reqHeaders[k] = v
122523	}
122524	reqHeaders.Set("User-Agent", c.s.userAgent())
122525	var body io.Reader = nil
122526	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
122527	if err != nil {
122528		return nil, err
122529	}
122530	reqHeaders.Set("Content-Type", "application/json")
122531	c.urlParams_.Set("alt", alt)
122532	c.urlParams_.Set("prettyPrint", "false")
122533	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveInstance")
122534	urls += "?" + c.urlParams_.Encode()
122535	req, err := http.NewRequest("POST", urls, body)
122536	if err != nil {
122537		return nil, err
122538	}
122539	req.Header = reqHeaders
122540	googleapi.Expand(req.URL, map[string]string{
122541		"project": c.project,
122542	})
122543	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122544}
122545
122546// Do executes the "compute.projects.moveInstance" call.
122547// Exactly one of *Operation or error will be non-nil. Any non-2xx
122548// status code is an error. Response headers are in either
122549// *Operation.ServerResponse.Header or (if a response was returned at
122550// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122551// to check whether the returned error was because
122552// http.StatusNotModified was returned.
122553func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122554	gensupport.SetOptions(c.urlParams_, opts...)
122555	res, err := c.doRequest("json")
122556	if res != nil && res.StatusCode == http.StatusNotModified {
122557		if res.Body != nil {
122558			res.Body.Close()
122559		}
122560		return nil, &googleapi.Error{
122561			Code:   res.StatusCode,
122562			Header: res.Header,
122563		}
122564	}
122565	if err != nil {
122566		return nil, err
122567	}
122568	defer googleapi.CloseBody(res)
122569	if err := googleapi.CheckResponse(res); err != nil {
122570		return nil, err
122571	}
122572	ret := &Operation{
122573		ServerResponse: googleapi.ServerResponse{
122574			Header:         res.Header,
122575			HTTPStatusCode: res.StatusCode,
122576		},
122577	}
122578	target := &ret
122579	if err := gensupport.DecodeResponse(target, res); err != nil {
122580		return nil, err
122581	}
122582	return ret, nil
122583	// {
122584	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
122585	//   "httpMethod": "POST",
122586	//   "id": "compute.projects.moveInstance",
122587	//   "parameterOrder": [
122588	//     "project"
122589	//   ],
122590	//   "parameters": {
122591	//     "project": {
122592	//       "description": "Project ID for this request.",
122593	//       "location": "path",
122594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122595	//       "required": true,
122596	//       "type": "string"
122597	//     },
122598	//     "requestId": {
122599	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122600	//       "location": "query",
122601	//       "type": "string"
122602	//     }
122603	//   },
122604	//   "path": "projects/{project}/moveInstance",
122605	//   "request": {
122606	//     "$ref": "InstanceMoveRequest"
122607	//   },
122608	//   "response": {
122609	//     "$ref": "Operation"
122610	//   },
122611	//   "scopes": [
122612	//     "https://www.googleapis.com/auth/cloud-platform",
122613	//     "https://www.googleapis.com/auth/compute"
122614	//   ]
122615	// }
122616
122617}
122618
122619// method id "compute.projects.setCommonInstanceMetadata":
122620
122621type ProjectsSetCommonInstanceMetadataCall struct {
122622	s          *Service
122623	project    string
122624	metadata   *Metadata
122625	urlParams_ gensupport.URLParams
122626	ctx_       context.Context
122627	header_    http.Header
122628}
122629
122630// SetCommonInstanceMetadata: Sets metadata common to all instances
122631// within the specified project using the data included in the request.
122632//
122633// - project: Project ID for this request.
122634// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
122635func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
122636	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122637	c.project = project
122638	c.metadata = metadata
122639	return c
122640}
122641
122642// RequestId sets the optional parameter "requestId": An optional
122643// request ID to identify requests. Specify a unique request ID so that
122644// if you must retry your request, the server will know to ignore the
122645// request if it has already been completed.
122646//
122647// For example, consider a situation where you make an initial request
122648// and the request times out. If you make the request again with the
122649// same request ID, the server can check if original operation with the
122650// same request ID was received, and if so, will ignore the second
122651// request. This prevents clients from accidentally creating duplicate
122652// commitments.
122653//
122654// The request ID must be a valid UUID with the exception that zero UUID
122655// is not supported (00000000-0000-0000-0000-000000000000).
122656func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
122657	c.urlParams_.Set("requestId", requestId)
122658	return c
122659}
122660
122661// Fields allows partial responses to be retrieved. See
122662// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122663// for more information.
122664func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
122665	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122666	return c
122667}
122668
122669// Context sets the context to be used in this call's Do method. Any
122670// pending HTTP request will be aborted if the provided context is
122671// canceled.
122672func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
122673	c.ctx_ = ctx
122674	return c
122675}
122676
122677// Header returns an http.Header that can be modified by the caller to
122678// add HTTP headers to the request.
122679func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
122680	if c.header_ == nil {
122681		c.header_ = make(http.Header)
122682	}
122683	return c.header_
122684}
122685
122686func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
122687	reqHeaders := make(http.Header)
122688	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122689	for k, v := range c.header_ {
122690		reqHeaders[k] = v
122691	}
122692	reqHeaders.Set("User-Agent", c.s.userAgent())
122693	var body io.Reader = nil
122694	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
122695	if err != nil {
122696		return nil, err
122697	}
122698	reqHeaders.Set("Content-Type", "application/json")
122699	c.urlParams_.Set("alt", alt)
122700	c.urlParams_.Set("prettyPrint", "false")
122701	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCommonInstanceMetadata")
122702	urls += "?" + c.urlParams_.Encode()
122703	req, err := http.NewRequest("POST", urls, body)
122704	if err != nil {
122705		return nil, err
122706	}
122707	req.Header = reqHeaders
122708	googleapi.Expand(req.URL, map[string]string{
122709		"project": c.project,
122710	})
122711	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122712}
122713
122714// Do executes the "compute.projects.setCommonInstanceMetadata" call.
122715// Exactly one of *Operation or error will be non-nil. Any non-2xx
122716// status code is an error. Response headers are in either
122717// *Operation.ServerResponse.Header or (if a response was returned at
122718// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122719// to check whether the returned error was because
122720// http.StatusNotModified was returned.
122721func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122722	gensupport.SetOptions(c.urlParams_, opts...)
122723	res, err := c.doRequest("json")
122724	if res != nil && res.StatusCode == http.StatusNotModified {
122725		if res.Body != nil {
122726			res.Body.Close()
122727		}
122728		return nil, &googleapi.Error{
122729			Code:   res.StatusCode,
122730			Header: res.Header,
122731		}
122732	}
122733	if err != nil {
122734		return nil, err
122735	}
122736	defer googleapi.CloseBody(res)
122737	if err := googleapi.CheckResponse(res); err != nil {
122738		return nil, err
122739	}
122740	ret := &Operation{
122741		ServerResponse: googleapi.ServerResponse{
122742			Header:         res.Header,
122743			HTTPStatusCode: res.StatusCode,
122744		},
122745	}
122746	target := &ret
122747	if err := gensupport.DecodeResponse(target, res); err != nil {
122748		return nil, err
122749	}
122750	return ret, nil
122751	// {
122752	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
122753	//   "httpMethod": "POST",
122754	//   "id": "compute.projects.setCommonInstanceMetadata",
122755	//   "parameterOrder": [
122756	//     "project"
122757	//   ],
122758	//   "parameters": {
122759	//     "project": {
122760	//       "description": "Project ID for this request.",
122761	//       "location": "path",
122762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122763	//       "required": true,
122764	//       "type": "string"
122765	//     },
122766	//     "requestId": {
122767	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122768	//       "location": "query",
122769	//       "type": "string"
122770	//     }
122771	//   },
122772	//   "path": "projects/{project}/setCommonInstanceMetadata",
122773	//   "request": {
122774	//     "$ref": "Metadata"
122775	//   },
122776	//   "response": {
122777	//     "$ref": "Operation"
122778	//   },
122779	//   "scopes": [
122780	//     "https://www.googleapis.com/auth/cloud-platform",
122781	//     "https://www.googleapis.com/auth/compute"
122782	//   ]
122783	// }
122784
122785}
122786
122787// method id "compute.projects.setDefaultNetworkTier":
122788
122789type ProjectsSetDefaultNetworkTierCall struct {
122790	s                                    *Service
122791	project                              string
122792	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
122793	urlParams_                           gensupport.URLParams
122794	ctx_                                 context.Context
122795	header_                              http.Header
122796}
122797
122798// SetDefaultNetworkTier: Sets the default network tier of the project.
122799// The default network tier is used when an
122800// address/forwardingRule/instance is created without specifying the
122801// network tier field.
122802//
122803// - project: Project ID for this request.
122804func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
122805	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122806	c.project = project
122807	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
122808	return c
122809}
122810
122811// RequestId sets the optional parameter "requestId": An optional
122812// request ID to identify requests. Specify a unique request ID so that
122813// if you must retry your request, the server will know to ignore the
122814// request if it has already been completed.
122815//
122816// For example, consider a situation where you make an initial request
122817// and the request times out. If you make the request again with the
122818// same request ID, the server can check if original operation with the
122819// same request ID was received, and if so, will ignore the second
122820// request. This prevents clients from accidentally creating duplicate
122821// commitments.
122822//
122823// The request ID must be a valid UUID with the exception that zero UUID
122824// is not supported (00000000-0000-0000-0000-000000000000).
122825func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
122826	c.urlParams_.Set("requestId", requestId)
122827	return c
122828}
122829
122830// Fields allows partial responses to be retrieved. See
122831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122832// for more information.
122833func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
122834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122835	return c
122836}
122837
122838// Context sets the context to be used in this call's Do method. Any
122839// pending HTTP request will be aborted if the provided context is
122840// canceled.
122841func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
122842	c.ctx_ = ctx
122843	return c
122844}
122845
122846// Header returns an http.Header that can be modified by the caller to
122847// add HTTP headers to the request.
122848func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
122849	if c.header_ == nil {
122850		c.header_ = make(http.Header)
122851	}
122852	return c.header_
122853}
122854
122855func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
122856	reqHeaders := make(http.Header)
122857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122858	for k, v := range c.header_ {
122859		reqHeaders[k] = v
122860	}
122861	reqHeaders.Set("User-Agent", c.s.userAgent())
122862	var body io.Reader = nil
122863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
122864	if err != nil {
122865		return nil, err
122866	}
122867	reqHeaders.Set("Content-Type", "application/json")
122868	c.urlParams_.Set("alt", alt)
122869	c.urlParams_.Set("prettyPrint", "false")
122870	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setDefaultNetworkTier")
122871	urls += "?" + c.urlParams_.Encode()
122872	req, err := http.NewRequest("POST", urls, body)
122873	if err != nil {
122874		return nil, err
122875	}
122876	req.Header = reqHeaders
122877	googleapi.Expand(req.URL, map[string]string{
122878		"project": c.project,
122879	})
122880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122881}
122882
122883// Do executes the "compute.projects.setDefaultNetworkTier" call.
122884// Exactly one of *Operation or error will be non-nil. Any non-2xx
122885// status code is an error. Response headers are in either
122886// *Operation.ServerResponse.Header or (if a response was returned at
122887// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122888// to check whether the returned error was because
122889// http.StatusNotModified was returned.
122890func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122891	gensupport.SetOptions(c.urlParams_, opts...)
122892	res, err := c.doRequest("json")
122893	if res != nil && res.StatusCode == http.StatusNotModified {
122894		if res.Body != nil {
122895			res.Body.Close()
122896		}
122897		return nil, &googleapi.Error{
122898			Code:   res.StatusCode,
122899			Header: res.Header,
122900		}
122901	}
122902	if err != nil {
122903		return nil, err
122904	}
122905	defer googleapi.CloseBody(res)
122906	if err := googleapi.CheckResponse(res); err != nil {
122907		return nil, err
122908	}
122909	ret := &Operation{
122910		ServerResponse: googleapi.ServerResponse{
122911			Header:         res.Header,
122912			HTTPStatusCode: res.StatusCode,
122913		},
122914	}
122915	target := &ret
122916	if err := gensupport.DecodeResponse(target, res); err != nil {
122917		return nil, err
122918	}
122919	return ret, nil
122920	// {
122921	//   "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.",
122922	//   "httpMethod": "POST",
122923	//   "id": "compute.projects.setDefaultNetworkTier",
122924	//   "parameterOrder": [
122925	//     "project"
122926	//   ],
122927	//   "parameters": {
122928	//     "project": {
122929	//       "description": "Project ID for this request.",
122930	//       "location": "path",
122931	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122932	//       "required": true,
122933	//       "type": "string"
122934	//     },
122935	//     "requestId": {
122936	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122937	//       "location": "query",
122938	//       "type": "string"
122939	//     }
122940	//   },
122941	//   "path": "projects/{project}/setDefaultNetworkTier",
122942	//   "request": {
122943	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
122944	//   },
122945	//   "response": {
122946	//     "$ref": "Operation"
122947	//   },
122948	//   "scopes": [
122949	//     "https://www.googleapis.com/auth/cloud-platform",
122950	//     "https://www.googleapis.com/auth/compute"
122951	//   ]
122952	// }
122953
122954}
122955
122956// method id "compute.projects.setUsageExportBucket":
122957
122958type ProjectsSetUsageExportBucketCall struct {
122959	s                   *Service
122960	project             string
122961	usageexportlocation *UsageExportLocation
122962	urlParams_          gensupport.URLParams
122963	ctx_                context.Context
122964	header_             http.Header
122965}
122966
122967// SetUsageExportBucket: Enables the usage export feature and sets the
122968// usage export bucket where reports are stored. If you provide an empty
122969// request body using this method, the usage export feature will be
122970// disabled.
122971//
122972// - project: Project ID for this request.
122973// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
122974func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
122975	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122976	c.project = project
122977	c.usageexportlocation = usageexportlocation
122978	return c
122979}
122980
122981// RequestId sets the optional parameter "requestId": An optional
122982// request ID to identify requests. Specify a unique request ID so that
122983// if you must retry your request, the server will know to ignore the
122984// request if it has already been completed.
122985//
122986// For example, consider a situation where you make an initial request
122987// and the request times out. If you make the request again with the
122988// same request ID, the server can check if original operation with the
122989// same request ID was received, and if so, will ignore the second
122990// request. This prevents clients from accidentally creating duplicate
122991// commitments.
122992//
122993// The request ID must be a valid UUID with the exception that zero UUID
122994// is not supported (00000000-0000-0000-0000-000000000000).
122995func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
122996	c.urlParams_.Set("requestId", requestId)
122997	return c
122998}
122999
123000// Fields allows partial responses to be retrieved. See
123001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123002// for more information.
123003func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
123004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123005	return c
123006}
123007
123008// Context sets the context to be used in this call's Do method. Any
123009// pending HTTP request will be aborted if the provided context is
123010// canceled.
123011func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
123012	c.ctx_ = ctx
123013	return c
123014}
123015
123016// Header returns an http.Header that can be modified by the caller to
123017// add HTTP headers to the request.
123018func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
123019	if c.header_ == nil {
123020		c.header_ = make(http.Header)
123021	}
123022	return c.header_
123023}
123024
123025func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
123026	reqHeaders := make(http.Header)
123027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123028	for k, v := range c.header_ {
123029		reqHeaders[k] = v
123030	}
123031	reqHeaders.Set("User-Agent", c.s.userAgent())
123032	var body io.Reader = nil
123033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
123034	if err != nil {
123035		return nil, err
123036	}
123037	reqHeaders.Set("Content-Type", "application/json")
123038	c.urlParams_.Set("alt", alt)
123039	c.urlParams_.Set("prettyPrint", "false")
123040	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setUsageExportBucket")
123041	urls += "?" + c.urlParams_.Encode()
123042	req, err := http.NewRequest("POST", urls, body)
123043	if err != nil {
123044		return nil, err
123045	}
123046	req.Header = reqHeaders
123047	googleapi.Expand(req.URL, map[string]string{
123048		"project": c.project,
123049	})
123050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123051}
123052
123053// Do executes the "compute.projects.setUsageExportBucket" call.
123054// Exactly one of *Operation or error will be non-nil. Any non-2xx
123055// status code is an error. Response headers are in either
123056// *Operation.ServerResponse.Header or (if a response was returned at
123057// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123058// to check whether the returned error was because
123059// http.StatusNotModified was returned.
123060func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123061	gensupport.SetOptions(c.urlParams_, opts...)
123062	res, err := c.doRequest("json")
123063	if res != nil && res.StatusCode == http.StatusNotModified {
123064		if res.Body != nil {
123065			res.Body.Close()
123066		}
123067		return nil, &googleapi.Error{
123068			Code:   res.StatusCode,
123069			Header: res.Header,
123070		}
123071	}
123072	if err != nil {
123073		return nil, err
123074	}
123075	defer googleapi.CloseBody(res)
123076	if err := googleapi.CheckResponse(res); err != nil {
123077		return nil, err
123078	}
123079	ret := &Operation{
123080		ServerResponse: googleapi.ServerResponse{
123081			Header:         res.Header,
123082			HTTPStatusCode: res.StatusCode,
123083		},
123084	}
123085	target := &ret
123086	if err := gensupport.DecodeResponse(target, res); err != nil {
123087		return nil, err
123088	}
123089	return ret, nil
123090	// {
123091	//   "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.",
123092	//   "httpMethod": "POST",
123093	//   "id": "compute.projects.setUsageExportBucket",
123094	//   "parameterOrder": [
123095	//     "project"
123096	//   ],
123097	//   "parameters": {
123098	//     "project": {
123099	//       "description": "Project ID for this request.",
123100	//       "location": "path",
123101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123102	//       "required": true,
123103	//       "type": "string"
123104	//     },
123105	//     "requestId": {
123106	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123107	//       "location": "query",
123108	//       "type": "string"
123109	//     }
123110	//   },
123111	//   "path": "projects/{project}/setUsageExportBucket",
123112	//   "request": {
123113	//     "$ref": "UsageExportLocation"
123114	//   },
123115	//   "response": {
123116	//     "$ref": "Operation"
123117	//   },
123118	//   "scopes": [
123119	//     "https://www.googleapis.com/auth/cloud-platform",
123120	//     "https://www.googleapis.com/auth/compute",
123121	//     "https://www.googleapis.com/auth/devstorage.full_control",
123122	//     "https://www.googleapis.com/auth/devstorage.read_only",
123123	//     "https://www.googleapis.com/auth/devstorage.read_write"
123124	//   ]
123125	// }
123126
123127}
123128
123129// method id "compute.publicAdvertisedPrefixes.delete":
123130
123131type PublicAdvertisedPrefixesDeleteCall struct {
123132	s                      *Service
123133	project                string
123134	publicAdvertisedPrefix string
123135	urlParams_             gensupport.URLParams
123136	ctx_                   context.Context
123137	header_                http.Header
123138}
123139
123140// Delete: Deletes the specified PublicAdvertisedPrefix
123141//
123142// - project: Project ID for this request.
123143// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
123144//   to delete.
123145func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall {
123146	c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123147	c.project = project
123148	c.publicAdvertisedPrefix = publicAdvertisedPrefix
123149	return c
123150}
123151
123152// RequestId sets the optional parameter "requestId": An optional
123153// request ID to identify requests. Specify a unique request ID so that
123154// if you must retry your request, the server will know to ignore the
123155// request if it has already been completed.
123156//
123157// For example, consider a situation where you make an initial request
123158// and the request times out. If you make the request again with the
123159// same request ID, the server can check if original operation with the
123160// same request ID was received, and if so, will ignore the second
123161// request. This prevents clients from accidentally creating duplicate
123162// commitments.
123163//
123164// The request ID must be a valid UUID with the exception that zero UUID
123165// is not supported (00000000-0000-0000-0000-000000000000).
123166func (c *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall {
123167	c.urlParams_.Set("requestId", requestId)
123168	return c
123169}
123170
123171// Fields allows partial responses to be retrieved. See
123172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123173// for more information.
123174func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall {
123175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123176	return c
123177}
123178
123179// Context sets the context to be used in this call's Do method. Any
123180// pending HTTP request will be aborted if the provided context is
123181// canceled.
123182func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall {
123183	c.ctx_ = ctx
123184	return c
123185}
123186
123187// Header returns an http.Header that can be modified by the caller to
123188// add HTTP headers to the request.
123189func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header {
123190	if c.header_ == nil {
123191		c.header_ = make(http.Header)
123192	}
123193	return c.header_
123194}
123195
123196func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
123197	reqHeaders := make(http.Header)
123198	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123199	for k, v := range c.header_ {
123200		reqHeaders[k] = v
123201	}
123202	reqHeaders.Set("User-Agent", c.s.userAgent())
123203	var body io.Reader = nil
123204	c.urlParams_.Set("alt", alt)
123205	c.urlParams_.Set("prettyPrint", "false")
123206	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
123207	urls += "?" + c.urlParams_.Encode()
123208	req, err := http.NewRequest("DELETE", urls, body)
123209	if err != nil {
123210		return nil, err
123211	}
123212	req.Header = reqHeaders
123213	googleapi.Expand(req.URL, map[string]string{
123214		"project":                c.project,
123215		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
123216	})
123217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123218}
123219
123220// Do executes the "compute.publicAdvertisedPrefixes.delete" call.
123221// Exactly one of *Operation or error will be non-nil. Any non-2xx
123222// status code is an error. Response headers are in either
123223// *Operation.ServerResponse.Header or (if a response was returned at
123224// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123225// to check whether the returned error was because
123226// http.StatusNotModified was returned.
123227func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123228	gensupport.SetOptions(c.urlParams_, opts...)
123229	res, err := c.doRequest("json")
123230	if res != nil && res.StatusCode == http.StatusNotModified {
123231		if res.Body != nil {
123232			res.Body.Close()
123233		}
123234		return nil, &googleapi.Error{
123235			Code:   res.StatusCode,
123236			Header: res.Header,
123237		}
123238	}
123239	if err != nil {
123240		return nil, err
123241	}
123242	defer googleapi.CloseBody(res)
123243	if err := googleapi.CheckResponse(res); err != nil {
123244		return nil, err
123245	}
123246	ret := &Operation{
123247		ServerResponse: googleapi.ServerResponse{
123248			Header:         res.Header,
123249			HTTPStatusCode: res.StatusCode,
123250		},
123251	}
123252	target := &ret
123253	if err := gensupport.DecodeResponse(target, res); err != nil {
123254		return nil, err
123255	}
123256	return ret, nil
123257	// {
123258	//   "description": "Deletes the specified PublicAdvertisedPrefix",
123259	//   "httpMethod": "DELETE",
123260	//   "id": "compute.publicAdvertisedPrefixes.delete",
123261	//   "parameterOrder": [
123262	//     "project",
123263	//     "publicAdvertisedPrefix"
123264	//   ],
123265	//   "parameters": {
123266	//     "project": {
123267	//       "description": "Project ID for this request.",
123268	//       "location": "path",
123269	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123270	//       "required": true,
123271	//       "type": "string"
123272	//     },
123273	//     "publicAdvertisedPrefix": {
123274	//       "description": "Name of the PublicAdvertisedPrefix resource to delete.",
123275	//       "location": "path",
123276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123277	//       "required": true,
123278	//       "type": "string"
123279	//     },
123280	//     "requestId": {
123281	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123282	//       "location": "query",
123283	//       "type": "string"
123284	//     }
123285	//   },
123286	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
123287	//   "response": {
123288	//     "$ref": "Operation"
123289	//   },
123290	//   "scopes": [
123291	//     "https://www.googleapis.com/auth/cloud-platform",
123292	//     "https://www.googleapis.com/auth/compute"
123293	//   ]
123294	// }
123295
123296}
123297
123298// method id "compute.publicAdvertisedPrefixes.get":
123299
123300type PublicAdvertisedPrefixesGetCall struct {
123301	s                      *Service
123302	project                string
123303	publicAdvertisedPrefix string
123304	urlParams_             gensupport.URLParams
123305	ifNoneMatch_           string
123306	ctx_                   context.Context
123307	header_                http.Header
123308}
123309
123310// Get: Returns the specified PublicAdvertisedPrefix resource.
123311//
123312// - project: Project ID for this request.
123313// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
123314//   to return.
123315func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall {
123316	c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123317	c.project = project
123318	c.publicAdvertisedPrefix = publicAdvertisedPrefix
123319	return c
123320}
123321
123322// Fields allows partial responses to be retrieved. See
123323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123324// for more information.
123325func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall {
123326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123327	return c
123328}
123329
123330// IfNoneMatch sets the optional parameter which makes the operation
123331// fail if the object's ETag matches the given value. This is useful for
123332// getting updates only after the object has changed since the last
123333// request. Use googleapi.IsNotModified to check whether the response
123334// error from Do is the result of In-None-Match.
123335func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall {
123336	c.ifNoneMatch_ = entityTag
123337	return c
123338}
123339
123340// Context sets the context to be used in this call's Do method. Any
123341// pending HTTP request will be aborted if the provided context is
123342// canceled.
123343func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall {
123344	c.ctx_ = ctx
123345	return c
123346}
123347
123348// Header returns an http.Header that can be modified by the caller to
123349// add HTTP headers to the request.
123350func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header {
123351	if c.header_ == nil {
123352		c.header_ = make(http.Header)
123353	}
123354	return c.header_
123355}
123356
123357func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
123358	reqHeaders := make(http.Header)
123359	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123360	for k, v := range c.header_ {
123361		reqHeaders[k] = v
123362	}
123363	reqHeaders.Set("User-Agent", c.s.userAgent())
123364	if c.ifNoneMatch_ != "" {
123365		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123366	}
123367	var body io.Reader = nil
123368	c.urlParams_.Set("alt", alt)
123369	c.urlParams_.Set("prettyPrint", "false")
123370	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
123371	urls += "?" + c.urlParams_.Encode()
123372	req, err := http.NewRequest("GET", urls, body)
123373	if err != nil {
123374		return nil, err
123375	}
123376	req.Header = reqHeaders
123377	googleapi.Expand(req.URL, map[string]string{
123378		"project":                c.project,
123379		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
123380	})
123381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123382}
123383
123384// Do executes the "compute.publicAdvertisedPrefixes.get" call.
123385// Exactly one of *PublicAdvertisedPrefix or error will be non-nil. Any
123386// non-2xx status code is an error. Response headers are in either
123387// *PublicAdvertisedPrefix.ServerResponse.Header or (if a response was
123388// returned at all) in error.(*googleapi.Error).Header. Use
123389// googleapi.IsNotModified to check whether the returned error was
123390// because http.StatusNotModified was returned.
123391func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) {
123392	gensupport.SetOptions(c.urlParams_, opts...)
123393	res, err := c.doRequest("json")
123394	if res != nil && res.StatusCode == http.StatusNotModified {
123395		if res.Body != nil {
123396			res.Body.Close()
123397		}
123398		return nil, &googleapi.Error{
123399			Code:   res.StatusCode,
123400			Header: res.Header,
123401		}
123402	}
123403	if err != nil {
123404		return nil, err
123405	}
123406	defer googleapi.CloseBody(res)
123407	if err := googleapi.CheckResponse(res); err != nil {
123408		return nil, err
123409	}
123410	ret := &PublicAdvertisedPrefix{
123411		ServerResponse: googleapi.ServerResponse{
123412			Header:         res.Header,
123413			HTTPStatusCode: res.StatusCode,
123414		},
123415	}
123416	target := &ret
123417	if err := gensupport.DecodeResponse(target, res); err != nil {
123418		return nil, err
123419	}
123420	return ret, nil
123421	// {
123422	//   "description": "Returns the specified PublicAdvertisedPrefix resource.",
123423	//   "httpMethod": "GET",
123424	//   "id": "compute.publicAdvertisedPrefixes.get",
123425	//   "parameterOrder": [
123426	//     "project",
123427	//     "publicAdvertisedPrefix"
123428	//   ],
123429	//   "parameters": {
123430	//     "project": {
123431	//       "description": "Project ID for this request.",
123432	//       "location": "path",
123433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123434	//       "required": true,
123435	//       "type": "string"
123436	//     },
123437	//     "publicAdvertisedPrefix": {
123438	//       "description": "Name of the PublicAdvertisedPrefix resource to return.",
123439	//       "location": "path",
123440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123441	//       "required": true,
123442	//       "type": "string"
123443	//     }
123444	//   },
123445	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
123446	//   "response": {
123447	//     "$ref": "PublicAdvertisedPrefix"
123448	//   },
123449	//   "scopes": [
123450	//     "https://www.googleapis.com/auth/cloud-platform",
123451	//     "https://www.googleapis.com/auth/compute",
123452	//     "https://www.googleapis.com/auth/compute.readonly"
123453	//   ]
123454	// }
123455
123456}
123457
123458// method id "compute.publicAdvertisedPrefixes.insert":
123459
123460type PublicAdvertisedPrefixesInsertCall struct {
123461	s                      *Service
123462	project                string
123463	publicadvertisedprefix *PublicAdvertisedPrefix
123464	urlParams_             gensupport.URLParams
123465	ctx_                   context.Context
123466	header_                http.Header
123467}
123468
123469// Insert: Creates a PublicAdvertisedPrefix in the specified project
123470// using the parameters that are included in the request.
123471//
123472// - project: Project ID for this request.
123473func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall {
123474	c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123475	c.project = project
123476	c.publicadvertisedprefix = publicadvertisedprefix
123477	return c
123478}
123479
123480// RequestId sets the optional parameter "requestId": An optional
123481// request ID to identify requests. Specify a unique request ID so that
123482// if you must retry your request, the server will know to ignore the
123483// request if it has already been completed.
123484//
123485// For example, consider a situation where you make an initial request
123486// and the request times out. If you make the request again with the
123487// same request ID, the server can check if original operation with the
123488// same request ID was received, and if so, will ignore the second
123489// request. This prevents clients from accidentally creating duplicate
123490// commitments.
123491//
123492// The request ID must be a valid UUID with the exception that zero UUID
123493// is not supported (00000000-0000-0000-0000-000000000000).
123494func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall {
123495	c.urlParams_.Set("requestId", requestId)
123496	return c
123497}
123498
123499// Fields allows partial responses to be retrieved. See
123500// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123501// for more information.
123502func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall {
123503	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123504	return c
123505}
123506
123507// Context sets the context to be used in this call's Do method. Any
123508// pending HTTP request will be aborted if the provided context is
123509// canceled.
123510func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall {
123511	c.ctx_ = ctx
123512	return c
123513}
123514
123515// Header returns an http.Header that can be modified by the caller to
123516// add HTTP headers to the request.
123517func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header {
123518	if c.header_ == nil {
123519		c.header_ = make(http.Header)
123520	}
123521	return c.header_
123522}
123523
123524func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
123525	reqHeaders := make(http.Header)
123526	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123527	for k, v := range c.header_ {
123528		reqHeaders[k] = v
123529	}
123530	reqHeaders.Set("User-Agent", c.s.userAgent())
123531	var body io.Reader = nil
123532	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
123533	if err != nil {
123534		return nil, err
123535	}
123536	reqHeaders.Set("Content-Type", "application/json")
123537	c.urlParams_.Set("alt", alt)
123538	c.urlParams_.Set("prettyPrint", "false")
123539	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
123540	urls += "?" + c.urlParams_.Encode()
123541	req, err := http.NewRequest("POST", urls, body)
123542	if err != nil {
123543		return nil, err
123544	}
123545	req.Header = reqHeaders
123546	googleapi.Expand(req.URL, map[string]string{
123547		"project": c.project,
123548	})
123549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123550}
123551
123552// Do executes the "compute.publicAdvertisedPrefixes.insert" call.
123553// Exactly one of *Operation or error will be non-nil. Any non-2xx
123554// status code is an error. Response headers are in either
123555// *Operation.ServerResponse.Header or (if a response was returned at
123556// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123557// to check whether the returned error was because
123558// http.StatusNotModified was returned.
123559func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123560	gensupport.SetOptions(c.urlParams_, opts...)
123561	res, err := c.doRequest("json")
123562	if res != nil && res.StatusCode == http.StatusNotModified {
123563		if res.Body != nil {
123564			res.Body.Close()
123565		}
123566		return nil, &googleapi.Error{
123567			Code:   res.StatusCode,
123568			Header: res.Header,
123569		}
123570	}
123571	if err != nil {
123572		return nil, err
123573	}
123574	defer googleapi.CloseBody(res)
123575	if err := googleapi.CheckResponse(res); err != nil {
123576		return nil, err
123577	}
123578	ret := &Operation{
123579		ServerResponse: googleapi.ServerResponse{
123580			Header:         res.Header,
123581			HTTPStatusCode: res.StatusCode,
123582		},
123583	}
123584	target := &ret
123585	if err := gensupport.DecodeResponse(target, res); err != nil {
123586		return nil, err
123587	}
123588	return ret, nil
123589	// {
123590	//   "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.",
123591	//   "httpMethod": "POST",
123592	//   "id": "compute.publicAdvertisedPrefixes.insert",
123593	//   "parameterOrder": [
123594	//     "project"
123595	//   ],
123596	//   "parameters": {
123597	//     "project": {
123598	//       "description": "Project ID for this request.",
123599	//       "location": "path",
123600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123601	//       "required": true,
123602	//       "type": "string"
123603	//     },
123604	//     "requestId": {
123605	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123606	//       "location": "query",
123607	//       "type": "string"
123608	//     }
123609	//   },
123610	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
123611	//   "request": {
123612	//     "$ref": "PublicAdvertisedPrefix"
123613	//   },
123614	//   "response": {
123615	//     "$ref": "Operation"
123616	//   },
123617	//   "scopes": [
123618	//     "https://www.googleapis.com/auth/cloud-platform",
123619	//     "https://www.googleapis.com/auth/compute"
123620	//   ]
123621	// }
123622
123623}
123624
123625// method id "compute.publicAdvertisedPrefixes.list":
123626
123627type PublicAdvertisedPrefixesListCall struct {
123628	s            *Service
123629	project      string
123630	urlParams_   gensupport.URLParams
123631	ifNoneMatch_ string
123632	ctx_         context.Context
123633	header_      http.Header
123634}
123635
123636// List: Lists the PublicAdvertisedPrefixes for a project.
123637//
123638// - project: Project ID for this request.
123639func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall {
123640	c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123641	c.project = project
123642	return c
123643}
123644
123645// Filter sets the optional parameter "filter": A filter expression that
123646// filters resources listed in the response. The expression must specify
123647// the field name, a comparison operator, and the value that you want to
123648// use for filtering. The value must be a string, a number, or a
123649// boolean. The comparison operator must be either `=`, `!=`, `>`, or
123650// `<`.
123651//
123652// For example, if you are filtering Compute Engine instances, you can
123653// exclude instances named `example-instance` by specifying `name !=
123654// example-instance`.
123655//
123656// You can also filter nested fields. For example, you could specify
123657// `scheduling.automaticRestart = false` to include instances only if
123658// they are not scheduled for automatic restarts. You can use filtering
123659// on nested fields to filter based on resource labels.
123660//
123661// To filter on multiple expressions, provide each separate expression
123662// within parentheses. For example: ``` (scheduling.automaticRestart =
123663// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
123664// is an `AND` expression. However, you can include `AND` and `OR`
123665// expressions explicitly. For example: ``` (cpuPlatform = "Intel
123666// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
123667// (scheduling.automaticRestart = true) ```
123668func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall {
123669	c.urlParams_.Set("filter", filter)
123670	return c
123671}
123672
123673// MaxResults sets the optional parameter "maxResults": The maximum
123674// number of results per page that should be returned. If the number of
123675// available results is larger than `maxResults`, Compute Engine returns
123676// a `nextPageToken` that can be used to get the next page of results in
123677// subsequent list requests. Acceptable values are `0` to `500`,
123678// inclusive. (Default: `500`)
123679func (c *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall {
123680	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123681	return c
123682}
123683
123684// OrderBy sets the optional parameter "orderBy": Sorts list results by
123685// a certain order. By default, results are returned in alphanumerical
123686// order based on the resource name.
123687//
123688// You can also sort results in descending order based on the creation
123689// timestamp using `orderBy="creationTimestamp desc". This sorts
123690// results based on the `creationTimestamp` field in reverse
123691// chronological order (newest result first). Use this to sort resources
123692// like operations so that the newest operation is returned
123693// first.
123694//
123695// Currently, only sorting by `name` or `creationTimestamp desc` is
123696// supported.
123697func (c *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall {
123698	c.urlParams_.Set("orderBy", orderBy)
123699	return c
123700}
123701
123702// PageToken sets the optional parameter "pageToken": Specifies a page
123703// token to use. Set `pageToken` to the `nextPageToken` returned by a
123704// previous list request to get the next page of results.
123705func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall {
123706	c.urlParams_.Set("pageToken", pageToken)
123707	return c
123708}
123709
123710// ReturnPartialSuccess sets the optional parameter
123711// "returnPartialSuccess": Opt-in for partial success behavior which
123712// provides partial results in case of failure. The default value is
123713// false.
123714func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicAdvertisedPrefixesListCall {
123715	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
123716	return c
123717}
123718
123719// Fields allows partial responses to be retrieved. See
123720// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123721// for more information.
123722func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall {
123723	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123724	return c
123725}
123726
123727// IfNoneMatch sets the optional parameter which makes the operation
123728// fail if the object's ETag matches the given value. This is useful for
123729// getting updates only after the object has changed since the last
123730// request. Use googleapi.IsNotModified to check whether the response
123731// error from Do is the result of In-None-Match.
123732func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall {
123733	c.ifNoneMatch_ = entityTag
123734	return c
123735}
123736
123737// Context sets the context to be used in this call's Do method. Any
123738// pending HTTP request will be aborted if the provided context is
123739// canceled.
123740func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall {
123741	c.ctx_ = ctx
123742	return c
123743}
123744
123745// Header returns an http.Header that can be modified by the caller to
123746// add HTTP headers to the request.
123747func (c *PublicAdvertisedPrefixesListCall) Header() http.Header {
123748	if c.header_ == nil {
123749		c.header_ = make(http.Header)
123750	}
123751	return c.header_
123752}
123753
123754func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
123755	reqHeaders := make(http.Header)
123756	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123757	for k, v := range c.header_ {
123758		reqHeaders[k] = v
123759	}
123760	reqHeaders.Set("User-Agent", c.s.userAgent())
123761	if c.ifNoneMatch_ != "" {
123762		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123763	}
123764	var body io.Reader = nil
123765	c.urlParams_.Set("alt", alt)
123766	c.urlParams_.Set("prettyPrint", "false")
123767	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
123768	urls += "?" + c.urlParams_.Encode()
123769	req, err := http.NewRequest("GET", urls, body)
123770	if err != nil {
123771		return nil, err
123772	}
123773	req.Header = reqHeaders
123774	googleapi.Expand(req.URL, map[string]string{
123775		"project": c.project,
123776	})
123777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123778}
123779
123780// Do executes the "compute.publicAdvertisedPrefixes.list" call.
123781// Exactly one of *PublicAdvertisedPrefixList or error will be non-nil.
123782// Any non-2xx status code is an error. Response headers are in either
123783// *PublicAdvertisedPrefixList.ServerResponse.Header or (if a response
123784// was returned at all) in error.(*googleapi.Error).Header. Use
123785// googleapi.IsNotModified to check whether the returned error was
123786// because http.StatusNotModified was returned.
123787func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) {
123788	gensupport.SetOptions(c.urlParams_, opts...)
123789	res, err := c.doRequest("json")
123790	if res != nil && res.StatusCode == http.StatusNotModified {
123791		if res.Body != nil {
123792			res.Body.Close()
123793		}
123794		return nil, &googleapi.Error{
123795			Code:   res.StatusCode,
123796			Header: res.Header,
123797		}
123798	}
123799	if err != nil {
123800		return nil, err
123801	}
123802	defer googleapi.CloseBody(res)
123803	if err := googleapi.CheckResponse(res); err != nil {
123804		return nil, err
123805	}
123806	ret := &PublicAdvertisedPrefixList{
123807		ServerResponse: googleapi.ServerResponse{
123808			Header:         res.Header,
123809			HTTPStatusCode: res.StatusCode,
123810		},
123811	}
123812	target := &ret
123813	if err := gensupport.DecodeResponse(target, res); err != nil {
123814		return nil, err
123815	}
123816	return ret, nil
123817	// {
123818	//   "description": "Lists the PublicAdvertisedPrefixes for a project.",
123819	//   "httpMethod": "GET",
123820	//   "id": "compute.publicAdvertisedPrefixes.list",
123821	//   "parameterOrder": [
123822	//     "project"
123823	//   ],
123824	//   "parameters": {
123825	//     "filter": {
123826	//       "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) ```",
123827	//       "location": "query",
123828	//       "type": "string"
123829	//     },
123830	//     "maxResults": {
123831	//       "default": "500",
123832	//       "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`)",
123833	//       "format": "uint32",
123834	//       "location": "query",
123835	//       "minimum": "0",
123836	//       "type": "integer"
123837	//     },
123838	//     "orderBy": {
123839	//       "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.",
123840	//       "location": "query",
123841	//       "type": "string"
123842	//     },
123843	//     "pageToken": {
123844	//       "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.",
123845	//       "location": "query",
123846	//       "type": "string"
123847	//     },
123848	//     "project": {
123849	//       "description": "Project ID for this request.",
123850	//       "location": "path",
123851	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123852	//       "required": true,
123853	//       "type": "string"
123854	//     },
123855	//     "returnPartialSuccess": {
123856	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
123857	//       "location": "query",
123858	//       "type": "boolean"
123859	//     }
123860	//   },
123861	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
123862	//   "response": {
123863	//     "$ref": "PublicAdvertisedPrefixList"
123864	//   },
123865	//   "scopes": [
123866	//     "https://www.googleapis.com/auth/cloud-platform",
123867	//     "https://www.googleapis.com/auth/compute",
123868	//     "https://www.googleapis.com/auth/compute.readonly"
123869	//   ]
123870	// }
123871
123872}
123873
123874// Pages invokes f for each page of results.
123875// A non-nil error returned from f will halt the iteration.
123876// The provided context supersedes any context provided to the Context method.
123877func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error {
123878	c.ctx_ = ctx
123879	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123880	for {
123881		x, err := c.Do()
123882		if err != nil {
123883			return err
123884		}
123885		if err := f(x); err != nil {
123886			return err
123887		}
123888		if x.NextPageToken == "" {
123889			return nil
123890		}
123891		c.PageToken(x.NextPageToken)
123892	}
123893}
123894
123895// method id "compute.publicAdvertisedPrefixes.patch":
123896
123897type PublicAdvertisedPrefixesPatchCall struct {
123898	s                      *Service
123899	project                string
123900	publicAdvertisedPrefix string
123901	publicadvertisedprefix *PublicAdvertisedPrefix
123902	urlParams_             gensupport.URLParams
123903	ctx_                   context.Context
123904	header_                http.Header
123905}
123906
123907// Patch: Patches the specified Router resource with the data included
123908// in the request. This method supports PATCH semantics and uses JSON
123909// merge patch format and processing rules.
123910//
123911// - project: Project ID for this request.
123912// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
123913//   to patch.
123914func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall {
123915	c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123916	c.project = project
123917	c.publicAdvertisedPrefix = publicAdvertisedPrefix
123918	c.publicadvertisedprefix = publicadvertisedprefix
123919	return c
123920}
123921
123922// RequestId sets the optional parameter "requestId": An optional
123923// request ID to identify requests. Specify a unique request ID so that
123924// if you must retry your request, the server will know to ignore the
123925// request if it has already been completed.
123926//
123927// For example, consider a situation where you make an initial request
123928// and the request times out. If you make the request again with the
123929// same request ID, the server can check if original operation with the
123930// same request ID was received, and if so, will ignore the second
123931// request. This prevents clients from accidentally creating duplicate
123932// commitments.
123933//
123934// The request ID must be a valid UUID with the exception that zero UUID
123935// is not supported (00000000-0000-0000-0000-000000000000).
123936func (c *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall {
123937	c.urlParams_.Set("requestId", requestId)
123938	return c
123939}
123940
123941// Fields allows partial responses to be retrieved. See
123942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123943// for more information.
123944func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall {
123945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123946	return c
123947}
123948
123949// Context sets the context to be used in this call's Do method. Any
123950// pending HTTP request will be aborted if the provided context is
123951// canceled.
123952func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall {
123953	c.ctx_ = ctx
123954	return c
123955}
123956
123957// Header returns an http.Header that can be modified by the caller to
123958// add HTTP headers to the request.
123959func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header {
123960	if c.header_ == nil {
123961		c.header_ = make(http.Header)
123962	}
123963	return c.header_
123964}
123965
123966func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
123967	reqHeaders := make(http.Header)
123968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123969	for k, v := range c.header_ {
123970		reqHeaders[k] = v
123971	}
123972	reqHeaders.Set("User-Agent", c.s.userAgent())
123973	var body io.Reader = nil
123974	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
123975	if err != nil {
123976		return nil, err
123977	}
123978	reqHeaders.Set("Content-Type", "application/json")
123979	c.urlParams_.Set("alt", alt)
123980	c.urlParams_.Set("prettyPrint", "false")
123981	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
123982	urls += "?" + c.urlParams_.Encode()
123983	req, err := http.NewRequest("PATCH", urls, body)
123984	if err != nil {
123985		return nil, err
123986	}
123987	req.Header = reqHeaders
123988	googleapi.Expand(req.URL, map[string]string{
123989		"project":                c.project,
123990		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
123991	})
123992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123993}
123994
123995// Do executes the "compute.publicAdvertisedPrefixes.patch" call.
123996// Exactly one of *Operation or error will be non-nil. Any non-2xx
123997// status code is an error. Response headers are in either
123998// *Operation.ServerResponse.Header or (if a response was returned at
123999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124000// to check whether the returned error was because
124001// http.StatusNotModified was returned.
124002func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124003	gensupport.SetOptions(c.urlParams_, opts...)
124004	res, err := c.doRequest("json")
124005	if res != nil && res.StatusCode == http.StatusNotModified {
124006		if res.Body != nil {
124007			res.Body.Close()
124008		}
124009		return nil, &googleapi.Error{
124010			Code:   res.StatusCode,
124011			Header: res.Header,
124012		}
124013	}
124014	if err != nil {
124015		return nil, err
124016	}
124017	defer googleapi.CloseBody(res)
124018	if err := googleapi.CheckResponse(res); err != nil {
124019		return nil, err
124020	}
124021	ret := &Operation{
124022		ServerResponse: googleapi.ServerResponse{
124023			Header:         res.Header,
124024			HTTPStatusCode: res.StatusCode,
124025		},
124026	}
124027	target := &ret
124028	if err := gensupport.DecodeResponse(target, res); err != nil {
124029		return nil, err
124030	}
124031	return ret, nil
124032	// {
124033	//   "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.",
124034	//   "httpMethod": "PATCH",
124035	//   "id": "compute.publicAdvertisedPrefixes.patch",
124036	//   "parameterOrder": [
124037	//     "project",
124038	//     "publicAdvertisedPrefix"
124039	//   ],
124040	//   "parameters": {
124041	//     "project": {
124042	//       "description": "Project ID for this request.",
124043	//       "location": "path",
124044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124045	//       "required": true,
124046	//       "type": "string"
124047	//     },
124048	//     "publicAdvertisedPrefix": {
124049	//       "description": "Name of the PublicAdvertisedPrefix resource to patch.",
124050	//       "location": "path",
124051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124052	//       "required": true,
124053	//       "type": "string"
124054	//     },
124055	//     "requestId": {
124056	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124057	//       "location": "query",
124058	//       "type": "string"
124059	//     }
124060	//   },
124061	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
124062	//   "request": {
124063	//     "$ref": "PublicAdvertisedPrefix"
124064	//   },
124065	//   "response": {
124066	//     "$ref": "Operation"
124067	//   },
124068	//   "scopes": [
124069	//     "https://www.googleapis.com/auth/cloud-platform",
124070	//     "https://www.googleapis.com/auth/compute"
124071	//   ]
124072	// }
124073
124074}
124075
124076// method id "compute.publicDelegatedPrefixes.aggregatedList":
124077
124078type PublicDelegatedPrefixesAggregatedListCall struct {
124079	s            *Service
124080	project      string
124081	urlParams_   gensupport.URLParams
124082	ifNoneMatch_ string
124083	ctx_         context.Context
124084	header_      http.Header
124085}
124086
124087// AggregatedList: Lists all PublicDelegatedPrefix resources owned by
124088// the specific project across all scopes.
124089//
124090// - project: Name of the project scoping this request.
124091func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall {
124092	c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124093	c.project = project
124094	return c
124095}
124096
124097// Filter sets the optional parameter "filter": A filter expression that
124098// filters resources listed in the response. The expression must specify
124099// the field name, a comparison operator, and the value that you want to
124100// use for filtering. The value must be a string, a number, or a
124101// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124102// `<`.
124103//
124104// For example, if you are filtering Compute Engine instances, you can
124105// exclude instances named `example-instance` by specifying `name !=
124106// example-instance`.
124107//
124108// You can also filter nested fields. For example, you could specify
124109// `scheduling.automaticRestart = false` to include instances only if
124110// they are not scheduled for automatic restarts. You can use filtering
124111// on nested fields to filter based on resource labels.
124112//
124113// To filter on multiple expressions, provide each separate expression
124114// within parentheses. For example: ``` (scheduling.automaticRestart =
124115// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124116// is an `AND` expression. However, you can include `AND` and `OR`
124117// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124118// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124119// (scheduling.automaticRestart = true) ```
124120func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall {
124121	c.urlParams_.Set("filter", filter)
124122	return c
124123}
124124
124125// IncludeAllScopes sets the optional parameter "includeAllScopes":
124126// Indicates whether every visible scope for each scope type (zone,
124127// region, global) should be included in the response. For new resource
124128// types added after this field, the flag has no effect as new resource
124129// types will always include every visible scope for each scope type in
124130// response. For resource types which predate this field, if this flag
124131// is omitted or false, only scopes of the scope types where the
124132// resource type is expected to be found will be included.
124133func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall {
124134	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
124135	return c
124136}
124137
124138// MaxResults sets the optional parameter "maxResults": The maximum
124139// number of results per page that should be returned. If the number of
124140// available results is larger than `maxResults`, Compute Engine returns
124141// a `nextPageToken` that can be used to get the next page of results in
124142// subsequent list requests. Acceptable values are `0` to `500`,
124143// inclusive. (Default: `500`)
124144func (c *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall {
124145	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124146	return c
124147}
124148
124149// OrderBy sets the optional parameter "orderBy": Sorts list results by
124150// a certain order. By default, results are returned in alphanumerical
124151// order based on the resource name.
124152//
124153// You can also sort results in descending order based on the creation
124154// timestamp using `orderBy="creationTimestamp desc". This sorts
124155// results based on the `creationTimestamp` field in reverse
124156// chronological order (newest result first). Use this to sort resources
124157// like operations so that the newest operation is returned
124158// first.
124159//
124160// Currently, only sorting by `name` or `creationTimestamp desc` is
124161// supported.
124162func (c *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall {
124163	c.urlParams_.Set("orderBy", orderBy)
124164	return c
124165}
124166
124167// PageToken sets the optional parameter "pageToken": Specifies a page
124168// token to use. Set `pageToken` to the `nextPageToken` returned by a
124169// previous list request to get the next page of results.
124170func (c *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall {
124171	c.urlParams_.Set("pageToken", pageToken)
124172	return c
124173}
124174
124175// ReturnPartialSuccess sets the optional parameter
124176// "returnPartialSuccess": Opt-in for partial success behavior which
124177// provides partial results in case of failure. The default value is
124178// false.
124179func (c *PublicDelegatedPrefixesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesAggregatedListCall {
124180	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
124181	return c
124182}
124183
124184// Fields allows partial responses to be retrieved. See
124185// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124186// for more information.
124187func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall {
124188	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124189	return c
124190}
124191
124192// IfNoneMatch sets the optional parameter which makes the operation
124193// fail if the object's ETag matches the given value. This is useful for
124194// getting updates only after the object has changed since the last
124195// request. Use googleapi.IsNotModified to check whether the response
124196// error from Do is the result of In-None-Match.
124197func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall {
124198	c.ifNoneMatch_ = entityTag
124199	return c
124200}
124201
124202// Context sets the context to be used in this call's Do method. Any
124203// pending HTTP request will be aborted if the provided context is
124204// canceled.
124205func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall {
124206	c.ctx_ = ctx
124207	return c
124208}
124209
124210// Header returns an http.Header that can be modified by the caller to
124211// add HTTP headers to the request.
124212func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header {
124213	if c.header_ == nil {
124214		c.header_ = make(http.Header)
124215	}
124216	return c.header_
124217}
124218
124219func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
124220	reqHeaders := make(http.Header)
124221	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
124222	for k, v := range c.header_ {
124223		reqHeaders[k] = v
124224	}
124225	reqHeaders.Set("User-Agent", c.s.userAgent())
124226	if c.ifNoneMatch_ != "" {
124227		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124228	}
124229	var body io.Reader = nil
124230	c.urlParams_.Set("alt", alt)
124231	c.urlParams_.Set("prettyPrint", "false")
124232	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/publicDelegatedPrefixes")
124233	urls += "?" + c.urlParams_.Encode()
124234	req, err := http.NewRequest("GET", urls, body)
124235	if err != nil {
124236		return nil, err
124237	}
124238	req.Header = reqHeaders
124239	googleapi.Expand(req.URL, map[string]string{
124240		"project": c.project,
124241	})
124242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124243}
124244
124245// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call.
124246// Exactly one of *PublicDelegatedPrefixAggregatedList or error will be
124247// non-nil. Any non-2xx status code is an error. Response headers are in
124248// either *PublicDelegatedPrefixAggregatedList.ServerResponse.Header or
124249// (if a response was returned at all) in
124250// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
124251// whether the returned error was because http.StatusNotModified was
124252// returned.
124253func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) {
124254	gensupport.SetOptions(c.urlParams_, opts...)
124255	res, err := c.doRequest("json")
124256	if res != nil && res.StatusCode == http.StatusNotModified {
124257		if res.Body != nil {
124258			res.Body.Close()
124259		}
124260		return nil, &googleapi.Error{
124261			Code:   res.StatusCode,
124262			Header: res.Header,
124263		}
124264	}
124265	if err != nil {
124266		return nil, err
124267	}
124268	defer googleapi.CloseBody(res)
124269	if err := googleapi.CheckResponse(res); err != nil {
124270		return nil, err
124271	}
124272	ret := &PublicDelegatedPrefixAggregatedList{
124273		ServerResponse: googleapi.ServerResponse{
124274			Header:         res.Header,
124275			HTTPStatusCode: res.StatusCode,
124276		},
124277	}
124278	target := &ret
124279	if err := gensupport.DecodeResponse(target, res); err != nil {
124280		return nil, err
124281	}
124282	return ret, nil
124283	// {
124284	//   "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.",
124285	//   "httpMethod": "GET",
124286	//   "id": "compute.publicDelegatedPrefixes.aggregatedList",
124287	//   "parameterOrder": [
124288	//     "project"
124289	//   ],
124290	//   "parameters": {
124291	//     "filter": {
124292	//       "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) ```",
124293	//       "location": "query",
124294	//       "type": "string"
124295	//     },
124296	//     "includeAllScopes": {
124297	//       "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.",
124298	//       "location": "query",
124299	//       "type": "boolean"
124300	//     },
124301	//     "maxResults": {
124302	//       "default": "500",
124303	//       "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`)",
124304	//       "format": "uint32",
124305	//       "location": "query",
124306	//       "minimum": "0",
124307	//       "type": "integer"
124308	//     },
124309	//     "orderBy": {
124310	//       "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.",
124311	//       "location": "query",
124312	//       "type": "string"
124313	//     },
124314	//     "pageToken": {
124315	//       "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.",
124316	//       "location": "query",
124317	//       "type": "string"
124318	//     },
124319	//     "project": {
124320	//       "description": "Name of the project scoping this request.",
124321	//       "location": "path",
124322	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124323	//       "required": true,
124324	//       "type": "string"
124325	//     },
124326	//     "returnPartialSuccess": {
124327	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
124328	//       "location": "query",
124329	//       "type": "boolean"
124330	//     }
124331	//   },
124332	//   "path": "projects/{project}/aggregated/publicDelegatedPrefixes",
124333	//   "response": {
124334	//     "$ref": "PublicDelegatedPrefixAggregatedList"
124335	//   },
124336	//   "scopes": [
124337	//     "https://www.googleapis.com/auth/cloud-platform",
124338	//     "https://www.googleapis.com/auth/compute",
124339	//     "https://www.googleapis.com/auth/compute.readonly"
124340	//   ]
124341	// }
124342
124343}
124344
124345// Pages invokes f for each page of results.
124346// A non-nil error returned from f will halt the iteration.
124347// The provided context supersedes any context provided to the Context method.
124348func (c *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error {
124349	c.ctx_ = ctx
124350	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124351	for {
124352		x, err := c.Do()
124353		if err != nil {
124354			return err
124355		}
124356		if err := f(x); err != nil {
124357			return err
124358		}
124359		if x.NextPageToken == "" {
124360			return nil
124361		}
124362		c.PageToken(x.NextPageToken)
124363	}
124364}
124365
124366// method id "compute.publicDelegatedPrefixes.delete":
124367
124368type PublicDelegatedPrefixesDeleteCall struct {
124369	s                     *Service
124370	project               string
124371	region                string
124372	publicDelegatedPrefix string
124373	urlParams_            gensupport.URLParams
124374	ctx_                  context.Context
124375	header_               http.Header
124376}
124377
124378// Delete: Deletes the specified PublicDelegatedPrefix in the given
124379// region.
124380//
124381// - project: Project ID for this request.
124382// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
124383//   to delete.
124384// - region: Name of the region of this request.
124385func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall {
124386	c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124387	c.project = project
124388	c.region = region
124389	c.publicDelegatedPrefix = publicDelegatedPrefix
124390	return c
124391}
124392
124393// RequestId sets the optional parameter "requestId": An optional
124394// request ID to identify requests. Specify a unique request ID so that
124395// if you must retry your request, the server will know to ignore the
124396// request if it has already been completed.
124397//
124398// For example, consider a situation where you make an initial request
124399// and the request times out. If you make the request again with the
124400// same request ID, the server can check if original operation with the
124401// same request ID was received, and if so, will ignore the second
124402// request. This prevents clients from accidentally creating duplicate
124403// commitments.
124404//
124405// The request ID must be a valid UUID with the exception that zero UUID
124406// is not supported (00000000-0000-0000-0000-000000000000).
124407func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall {
124408	c.urlParams_.Set("requestId", requestId)
124409	return c
124410}
124411
124412// Fields allows partial responses to be retrieved. See
124413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124414// for more information.
124415func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall {
124416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124417	return c
124418}
124419
124420// Context sets the context to be used in this call's Do method. Any
124421// pending HTTP request will be aborted if the provided context is
124422// canceled.
124423func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall {
124424	c.ctx_ = ctx
124425	return c
124426}
124427
124428// Header returns an http.Header that can be modified by the caller to
124429// add HTTP headers to the request.
124430func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header {
124431	if c.header_ == nil {
124432		c.header_ = make(http.Header)
124433	}
124434	return c.header_
124435}
124436
124437func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
124438	reqHeaders := make(http.Header)
124439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
124440	for k, v := range c.header_ {
124441		reqHeaders[k] = v
124442	}
124443	reqHeaders.Set("User-Agent", c.s.userAgent())
124444	var body io.Reader = nil
124445	c.urlParams_.Set("alt", alt)
124446	c.urlParams_.Set("prettyPrint", "false")
124447	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
124448	urls += "?" + c.urlParams_.Encode()
124449	req, err := http.NewRequest("DELETE", urls, body)
124450	if err != nil {
124451		return nil, err
124452	}
124453	req.Header = reqHeaders
124454	googleapi.Expand(req.URL, map[string]string{
124455		"project":               c.project,
124456		"region":                c.region,
124457		"publicDelegatedPrefix": c.publicDelegatedPrefix,
124458	})
124459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124460}
124461
124462// Do executes the "compute.publicDelegatedPrefixes.delete" call.
124463// Exactly one of *Operation or error will be non-nil. Any non-2xx
124464// status code is an error. Response headers are in either
124465// *Operation.ServerResponse.Header or (if a response was returned at
124466// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124467// to check whether the returned error was because
124468// http.StatusNotModified was returned.
124469func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124470	gensupport.SetOptions(c.urlParams_, opts...)
124471	res, err := c.doRequest("json")
124472	if res != nil && res.StatusCode == http.StatusNotModified {
124473		if res.Body != nil {
124474			res.Body.Close()
124475		}
124476		return nil, &googleapi.Error{
124477			Code:   res.StatusCode,
124478			Header: res.Header,
124479		}
124480	}
124481	if err != nil {
124482		return nil, err
124483	}
124484	defer googleapi.CloseBody(res)
124485	if err := googleapi.CheckResponse(res); err != nil {
124486		return nil, err
124487	}
124488	ret := &Operation{
124489		ServerResponse: googleapi.ServerResponse{
124490			Header:         res.Header,
124491			HTTPStatusCode: res.StatusCode,
124492		},
124493	}
124494	target := &ret
124495	if err := gensupport.DecodeResponse(target, res); err != nil {
124496		return nil, err
124497	}
124498	return ret, nil
124499	// {
124500	//   "description": "Deletes the specified PublicDelegatedPrefix in the given region.",
124501	//   "httpMethod": "DELETE",
124502	//   "id": "compute.publicDelegatedPrefixes.delete",
124503	//   "parameterOrder": [
124504	//     "project",
124505	//     "region",
124506	//     "publicDelegatedPrefix"
124507	//   ],
124508	//   "parameters": {
124509	//     "project": {
124510	//       "description": "Project ID for this request.",
124511	//       "location": "path",
124512	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124513	//       "required": true,
124514	//       "type": "string"
124515	//     },
124516	//     "publicDelegatedPrefix": {
124517	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
124518	//       "location": "path",
124519	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124520	//       "required": true,
124521	//       "type": "string"
124522	//     },
124523	//     "region": {
124524	//       "description": "Name of the region of this request.",
124525	//       "location": "path",
124526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124527	//       "required": true,
124528	//       "type": "string"
124529	//     },
124530	//     "requestId": {
124531	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124532	//       "location": "query",
124533	//       "type": "string"
124534	//     }
124535	//   },
124536	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
124537	//   "response": {
124538	//     "$ref": "Operation"
124539	//   },
124540	//   "scopes": [
124541	//     "https://www.googleapis.com/auth/cloud-platform",
124542	//     "https://www.googleapis.com/auth/compute"
124543	//   ]
124544	// }
124545
124546}
124547
124548// method id "compute.publicDelegatedPrefixes.get":
124549
124550type PublicDelegatedPrefixesGetCall struct {
124551	s                     *Service
124552	project               string
124553	region                string
124554	publicDelegatedPrefix string
124555	urlParams_            gensupport.URLParams
124556	ifNoneMatch_          string
124557	ctx_                  context.Context
124558	header_               http.Header
124559}
124560
124561// Get: Returns the specified PublicDelegatedPrefix resource in the
124562// given region.
124563//
124564// - project: Project ID for this request.
124565// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
124566//   to return.
124567// - region: Name of the region of this request.
124568func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall {
124569	c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124570	c.project = project
124571	c.region = region
124572	c.publicDelegatedPrefix = publicDelegatedPrefix
124573	return c
124574}
124575
124576// Fields allows partial responses to be retrieved. See
124577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124578// for more information.
124579func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall {
124580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124581	return c
124582}
124583
124584// IfNoneMatch sets the optional parameter which makes the operation
124585// fail if the object's ETag matches the given value. This is useful for
124586// getting updates only after the object has changed since the last
124587// request. Use googleapi.IsNotModified to check whether the response
124588// error from Do is the result of In-None-Match.
124589func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall {
124590	c.ifNoneMatch_ = entityTag
124591	return c
124592}
124593
124594// Context sets the context to be used in this call's Do method. Any
124595// pending HTTP request will be aborted if the provided context is
124596// canceled.
124597func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall {
124598	c.ctx_ = ctx
124599	return c
124600}
124601
124602// Header returns an http.Header that can be modified by the caller to
124603// add HTTP headers to the request.
124604func (c *PublicDelegatedPrefixesGetCall) Header() http.Header {
124605	if c.header_ == nil {
124606		c.header_ = make(http.Header)
124607	}
124608	return c.header_
124609}
124610
124611func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
124612	reqHeaders := make(http.Header)
124613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
124614	for k, v := range c.header_ {
124615		reqHeaders[k] = v
124616	}
124617	reqHeaders.Set("User-Agent", c.s.userAgent())
124618	if c.ifNoneMatch_ != "" {
124619		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124620	}
124621	var body io.Reader = nil
124622	c.urlParams_.Set("alt", alt)
124623	c.urlParams_.Set("prettyPrint", "false")
124624	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
124625	urls += "?" + c.urlParams_.Encode()
124626	req, err := http.NewRequest("GET", urls, body)
124627	if err != nil {
124628		return nil, err
124629	}
124630	req.Header = reqHeaders
124631	googleapi.Expand(req.URL, map[string]string{
124632		"project":               c.project,
124633		"region":                c.region,
124634		"publicDelegatedPrefix": c.publicDelegatedPrefix,
124635	})
124636	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124637}
124638
124639// Do executes the "compute.publicDelegatedPrefixes.get" call.
124640// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
124641// non-2xx status code is an error. Response headers are in either
124642// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
124643// returned at all) in error.(*googleapi.Error).Header. Use
124644// googleapi.IsNotModified to check whether the returned error was
124645// because http.StatusNotModified was returned.
124646func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
124647	gensupport.SetOptions(c.urlParams_, opts...)
124648	res, err := c.doRequest("json")
124649	if res != nil && res.StatusCode == http.StatusNotModified {
124650		if res.Body != nil {
124651			res.Body.Close()
124652		}
124653		return nil, &googleapi.Error{
124654			Code:   res.StatusCode,
124655			Header: res.Header,
124656		}
124657	}
124658	if err != nil {
124659		return nil, err
124660	}
124661	defer googleapi.CloseBody(res)
124662	if err := googleapi.CheckResponse(res); err != nil {
124663		return nil, err
124664	}
124665	ret := &PublicDelegatedPrefix{
124666		ServerResponse: googleapi.ServerResponse{
124667			Header:         res.Header,
124668			HTTPStatusCode: res.StatusCode,
124669		},
124670	}
124671	target := &ret
124672	if err := gensupport.DecodeResponse(target, res); err != nil {
124673		return nil, err
124674	}
124675	return ret, nil
124676	// {
124677	//   "description": "Returns the specified PublicDelegatedPrefix resource in the given region.",
124678	//   "httpMethod": "GET",
124679	//   "id": "compute.publicDelegatedPrefixes.get",
124680	//   "parameterOrder": [
124681	//     "project",
124682	//     "region",
124683	//     "publicDelegatedPrefix"
124684	//   ],
124685	//   "parameters": {
124686	//     "project": {
124687	//       "description": "Project ID for this request.",
124688	//       "location": "path",
124689	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124690	//       "required": true,
124691	//       "type": "string"
124692	//     },
124693	//     "publicDelegatedPrefix": {
124694	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
124695	//       "location": "path",
124696	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124697	//       "required": true,
124698	//       "type": "string"
124699	//     },
124700	//     "region": {
124701	//       "description": "Name of the region of this request.",
124702	//       "location": "path",
124703	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124704	//       "required": true,
124705	//       "type": "string"
124706	//     }
124707	//   },
124708	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
124709	//   "response": {
124710	//     "$ref": "PublicDelegatedPrefix"
124711	//   },
124712	//   "scopes": [
124713	//     "https://www.googleapis.com/auth/cloud-platform",
124714	//     "https://www.googleapis.com/auth/compute",
124715	//     "https://www.googleapis.com/auth/compute.readonly"
124716	//   ]
124717	// }
124718
124719}
124720
124721// method id "compute.publicDelegatedPrefixes.insert":
124722
124723type PublicDelegatedPrefixesInsertCall struct {
124724	s                     *Service
124725	project               string
124726	region                string
124727	publicdelegatedprefix *PublicDelegatedPrefix
124728	urlParams_            gensupport.URLParams
124729	ctx_                  context.Context
124730	header_               http.Header
124731}
124732
124733// Insert: Creates a PublicDelegatedPrefix in the specified project in
124734// the given region using the parameters that are included in the
124735// request.
124736//
124737// - project: Project ID for this request.
124738// - region: Name of the region of this request.
124739func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall {
124740	c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124741	c.project = project
124742	c.region = region
124743	c.publicdelegatedprefix = publicdelegatedprefix
124744	return c
124745}
124746
124747// RequestId sets the optional parameter "requestId": An optional
124748// request ID to identify requests. Specify a unique request ID so that
124749// if you must retry your request, the server will know to ignore the
124750// request if it has already been completed.
124751//
124752// For example, consider a situation where you make an initial request
124753// and the request times out. If you make the request again with the
124754// same request ID, the server can check if original operation with the
124755// same request ID was received, and if so, will ignore the second
124756// request. This prevents clients from accidentally creating duplicate
124757// commitments.
124758//
124759// The request ID must be a valid UUID with the exception that zero UUID
124760// is not supported (00000000-0000-0000-0000-000000000000).
124761func (c *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall {
124762	c.urlParams_.Set("requestId", requestId)
124763	return c
124764}
124765
124766// Fields allows partial responses to be retrieved. See
124767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124768// for more information.
124769func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall {
124770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124771	return c
124772}
124773
124774// Context sets the context to be used in this call's Do method. Any
124775// pending HTTP request will be aborted if the provided context is
124776// canceled.
124777func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall {
124778	c.ctx_ = ctx
124779	return c
124780}
124781
124782// Header returns an http.Header that can be modified by the caller to
124783// add HTTP headers to the request.
124784func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header {
124785	if c.header_ == nil {
124786		c.header_ = make(http.Header)
124787	}
124788	return c.header_
124789}
124790
124791func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
124792	reqHeaders := make(http.Header)
124793	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
124794	for k, v := range c.header_ {
124795		reqHeaders[k] = v
124796	}
124797	reqHeaders.Set("User-Agent", c.s.userAgent())
124798	var body io.Reader = nil
124799	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
124800	if err != nil {
124801		return nil, err
124802	}
124803	reqHeaders.Set("Content-Type", "application/json")
124804	c.urlParams_.Set("alt", alt)
124805	c.urlParams_.Set("prettyPrint", "false")
124806	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
124807	urls += "?" + c.urlParams_.Encode()
124808	req, err := http.NewRequest("POST", urls, body)
124809	if err != nil {
124810		return nil, err
124811	}
124812	req.Header = reqHeaders
124813	googleapi.Expand(req.URL, map[string]string{
124814		"project": c.project,
124815		"region":  c.region,
124816	})
124817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124818}
124819
124820// Do executes the "compute.publicDelegatedPrefixes.insert" call.
124821// Exactly one of *Operation or error will be non-nil. Any non-2xx
124822// status code is an error. Response headers are in either
124823// *Operation.ServerResponse.Header or (if a response was returned at
124824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124825// to check whether the returned error was because
124826// http.StatusNotModified was returned.
124827func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124828	gensupport.SetOptions(c.urlParams_, opts...)
124829	res, err := c.doRequest("json")
124830	if res != nil && res.StatusCode == http.StatusNotModified {
124831		if res.Body != nil {
124832			res.Body.Close()
124833		}
124834		return nil, &googleapi.Error{
124835			Code:   res.StatusCode,
124836			Header: res.Header,
124837		}
124838	}
124839	if err != nil {
124840		return nil, err
124841	}
124842	defer googleapi.CloseBody(res)
124843	if err := googleapi.CheckResponse(res); err != nil {
124844		return nil, err
124845	}
124846	ret := &Operation{
124847		ServerResponse: googleapi.ServerResponse{
124848			Header:         res.Header,
124849			HTTPStatusCode: res.StatusCode,
124850		},
124851	}
124852	target := &ret
124853	if err := gensupport.DecodeResponse(target, res); err != nil {
124854		return nil, err
124855	}
124856	return ret, nil
124857	// {
124858	//   "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.",
124859	//   "httpMethod": "POST",
124860	//   "id": "compute.publicDelegatedPrefixes.insert",
124861	//   "parameterOrder": [
124862	//     "project",
124863	//     "region"
124864	//   ],
124865	//   "parameters": {
124866	//     "project": {
124867	//       "description": "Project ID for this request.",
124868	//       "location": "path",
124869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124870	//       "required": true,
124871	//       "type": "string"
124872	//     },
124873	//     "region": {
124874	//       "description": "Name of the region of this request.",
124875	//       "location": "path",
124876	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124877	//       "required": true,
124878	//       "type": "string"
124879	//     },
124880	//     "requestId": {
124881	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124882	//       "location": "query",
124883	//       "type": "string"
124884	//     }
124885	//   },
124886	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
124887	//   "request": {
124888	//     "$ref": "PublicDelegatedPrefix"
124889	//   },
124890	//   "response": {
124891	//     "$ref": "Operation"
124892	//   },
124893	//   "scopes": [
124894	//     "https://www.googleapis.com/auth/cloud-platform",
124895	//     "https://www.googleapis.com/auth/compute"
124896	//   ]
124897	// }
124898
124899}
124900
124901// method id "compute.publicDelegatedPrefixes.list":
124902
124903type PublicDelegatedPrefixesListCall struct {
124904	s            *Service
124905	project      string
124906	region       string
124907	urlParams_   gensupport.URLParams
124908	ifNoneMatch_ string
124909	ctx_         context.Context
124910	header_      http.Header
124911}
124912
124913// List: Lists the PublicDelegatedPrefixes for a project in the given
124914// region.
124915//
124916// - project: Project ID for this request.
124917// - region: Name of the region of this request.
124918func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall {
124919	c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124920	c.project = project
124921	c.region = region
124922	return c
124923}
124924
124925// Filter sets the optional parameter "filter": A filter expression that
124926// filters resources listed in the response. The expression must specify
124927// the field name, a comparison operator, and the value that you want to
124928// use for filtering. The value must be a string, a number, or a
124929// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124930// `<`.
124931//
124932// For example, if you are filtering Compute Engine instances, you can
124933// exclude instances named `example-instance` by specifying `name !=
124934// example-instance`.
124935//
124936// You can also filter nested fields. For example, you could specify
124937// `scheduling.automaticRestart = false` to include instances only if
124938// they are not scheduled for automatic restarts. You can use filtering
124939// on nested fields to filter based on resource labels.
124940//
124941// To filter on multiple expressions, provide each separate expression
124942// within parentheses. For example: ``` (scheduling.automaticRestart =
124943// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124944// is an `AND` expression. However, you can include `AND` and `OR`
124945// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124946// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124947// (scheduling.automaticRestart = true) ```
124948func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall {
124949	c.urlParams_.Set("filter", filter)
124950	return c
124951}
124952
124953// MaxResults sets the optional parameter "maxResults": The maximum
124954// number of results per page that should be returned. If the number of
124955// available results is larger than `maxResults`, Compute Engine returns
124956// a `nextPageToken` that can be used to get the next page of results in
124957// subsequent list requests. Acceptable values are `0` to `500`,
124958// inclusive. (Default: `500`)
124959func (c *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall {
124960	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124961	return c
124962}
124963
124964// OrderBy sets the optional parameter "orderBy": Sorts list results by
124965// a certain order. By default, results are returned in alphanumerical
124966// order based on the resource name.
124967//
124968// You can also sort results in descending order based on the creation
124969// timestamp using `orderBy="creationTimestamp desc". This sorts
124970// results based on the `creationTimestamp` field in reverse
124971// chronological order (newest result first). Use this to sort resources
124972// like operations so that the newest operation is returned
124973// first.
124974//
124975// Currently, only sorting by `name` or `creationTimestamp desc` is
124976// supported.
124977func (c *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall {
124978	c.urlParams_.Set("orderBy", orderBy)
124979	return c
124980}
124981
124982// PageToken sets the optional parameter "pageToken": Specifies a page
124983// token to use. Set `pageToken` to the `nextPageToken` returned by a
124984// previous list request to get the next page of results.
124985func (c *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall {
124986	c.urlParams_.Set("pageToken", pageToken)
124987	return c
124988}
124989
124990// ReturnPartialSuccess sets the optional parameter
124991// "returnPartialSuccess": Opt-in for partial success behavior which
124992// provides partial results in case of failure. The default value is
124993// false.
124994func (c *PublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesListCall {
124995	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
124996	return c
124997}
124998
124999// Fields allows partial responses to be retrieved. See
125000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125001// for more information.
125002func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall {
125003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125004	return c
125005}
125006
125007// IfNoneMatch sets the optional parameter which makes the operation
125008// fail if the object's ETag matches the given value. This is useful for
125009// getting updates only after the object has changed since the last
125010// request. Use googleapi.IsNotModified to check whether the response
125011// error from Do is the result of In-None-Match.
125012func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall {
125013	c.ifNoneMatch_ = entityTag
125014	return c
125015}
125016
125017// Context sets the context to be used in this call's Do method. Any
125018// pending HTTP request will be aborted if the provided context is
125019// canceled.
125020func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall {
125021	c.ctx_ = ctx
125022	return c
125023}
125024
125025// Header returns an http.Header that can be modified by the caller to
125026// add HTTP headers to the request.
125027func (c *PublicDelegatedPrefixesListCall) Header() http.Header {
125028	if c.header_ == nil {
125029		c.header_ = make(http.Header)
125030	}
125031	return c.header_
125032}
125033
125034func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
125035	reqHeaders := make(http.Header)
125036	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125037	for k, v := range c.header_ {
125038		reqHeaders[k] = v
125039	}
125040	reqHeaders.Set("User-Agent", c.s.userAgent())
125041	if c.ifNoneMatch_ != "" {
125042		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125043	}
125044	var body io.Reader = nil
125045	c.urlParams_.Set("alt", alt)
125046	c.urlParams_.Set("prettyPrint", "false")
125047	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
125048	urls += "?" + c.urlParams_.Encode()
125049	req, err := http.NewRequest("GET", urls, body)
125050	if err != nil {
125051		return nil, err
125052	}
125053	req.Header = reqHeaders
125054	googleapi.Expand(req.URL, map[string]string{
125055		"project": c.project,
125056		"region":  c.region,
125057	})
125058	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125059}
125060
125061// Do executes the "compute.publicDelegatedPrefixes.list" call.
125062// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
125063// Any non-2xx status code is an error. Response headers are in either
125064// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
125065// was returned at all) in error.(*googleapi.Error).Header. Use
125066// googleapi.IsNotModified to check whether the returned error was
125067// because http.StatusNotModified was returned.
125068func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
125069	gensupport.SetOptions(c.urlParams_, opts...)
125070	res, err := c.doRequest("json")
125071	if res != nil && res.StatusCode == http.StatusNotModified {
125072		if res.Body != nil {
125073			res.Body.Close()
125074		}
125075		return nil, &googleapi.Error{
125076			Code:   res.StatusCode,
125077			Header: res.Header,
125078		}
125079	}
125080	if err != nil {
125081		return nil, err
125082	}
125083	defer googleapi.CloseBody(res)
125084	if err := googleapi.CheckResponse(res); err != nil {
125085		return nil, err
125086	}
125087	ret := &PublicDelegatedPrefixList{
125088		ServerResponse: googleapi.ServerResponse{
125089			Header:         res.Header,
125090			HTTPStatusCode: res.StatusCode,
125091		},
125092	}
125093	target := &ret
125094	if err := gensupport.DecodeResponse(target, res); err != nil {
125095		return nil, err
125096	}
125097	return ret, nil
125098	// {
125099	//   "description": "Lists the PublicDelegatedPrefixes for a project in the given region.",
125100	//   "httpMethod": "GET",
125101	//   "id": "compute.publicDelegatedPrefixes.list",
125102	//   "parameterOrder": [
125103	//     "project",
125104	//     "region"
125105	//   ],
125106	//   "parameters": {
125107	//     "filter": {
125108	//       "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) ```",
125109	//       "location": "query",
125110	//       "type": "string"
125111	//     },
125112	//     "maxResults": {
125113	//       "default": "500",
125114	//       "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`)",
125115	//       "format": "uint32",
125116	//       "location": "query",
125117	//       "minimum": "0",
125118	//       "type": "integer"
125119	//     },
125120	//     "orderBy": {
125121	//       "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.",
125122	//       "location": "query",
125123	//       "type": "string"
125124	//     },
125125	//     "pageToken": {
125126	//       "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.",
125127	//       "location": "query",
125128	//       "type": "string"
125129	//     },
125130	//     "project": {
125131	//       "description": "Project ID for this request.",
125132	//       "location": "path",
125133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125134	//       "required": true,
125135	//       "type": "string"
125136	//     },
125137	//     "region": {
125138	//       "description": "Name of the region of this request.",
125139	//       "location": "path",
125140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125141	//       "required": true,
125142	//       "type": "string"
125143	//     },
125144	//     "returnPartialSuccess": {
125145	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
125146	//       "location": "query",
125147	//       "type": "boolean"
125148	//     }
125149	//   },
125150	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
125151	//   "response": {
125152	//     "$ref": "PublicDelegatedPrefixList"
125153	//   },
125154	//   "scopes": [
125155	//     "https://www.googleapis.com/auth/cloud-platform",
125156	//     "https://www.googleapis.com/auth/compute",
125157	//     "https://www.googleapis.com/auth/compute.readonly"
125158	//   ]
125159	// }
125160
125161}
125162
125163// Pages invokes f for each page of results.
125164// A non-nil error returned from f will halt the iteration.
125165// The provided context supersedes any context provided to the Context method.
125166func (c *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
125167	c.ctx_ = ctx
125168	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125169	for {
125170		x, err := c.Do()
125171		if err != nil {
125172			return err
125173		}
125174		if err := f(x); err != nil {
125175			return err
125176		}
125177		if x.NextPageToken == "" {
125178			return nil
125179		}
125180		c.PageToken(x.NextPageToken)
125181	}
125182}
125183
125184// method id "compute.publicDelegatedPrefixes.patch":
125185
125186type PublicDelegatedPrefixesPatchCall struct {
125187	s                     *Service
125188	project               string
125189	region                string
125190	publicDelegatedPrefix string
125191	publicdelegatedprefix *PublicDelegatedPrefix
125192	urlParams_            gensupport.URLParams
125193	ctx_                  context.Context
125194	header_               http.Header
125195}
125196
125197// Patch: Patches the specified PublicDelegatedPrefix resource with the
125198// data included in the request. This method supports PATCH semantics
125199// and uses JSON merge patch format and processing rules.
125200//
125201// - project: Project ID for this request.
125202// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
125203//   to patch.
125204// - region: Name of the region for this request.
125205func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall {
125206	c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125207	c.project = project
125208	c.region = region
125209	c.publicDelegatedPrefix = publicDelegatedPrefix
125210	c.publicdelegatedprefix = publicdelegatedprefix
125211	return c
125212}
125213
125214// RequestId sets the optional parameter "requestId": An optional
125215// request ID to identify requests. Specify a unique request ID so that
125216// if you must retry your request, the server will know to ignore the
125217// request if it has already been completed.
125218//
125219// For example, consider a situation where you make an initial request
125220// and the request times out. If you make the request again with the
125221// same request ID, the server can check if original operation with the
125222// same request ID was received, and if so, will ignore the second
125223// request. This prevents clients from accidentally creating duplicate
125224// commitments.
125225//
125226// The request ID must be a valid UUID with the exception that zero UUID
125227// is not supported (00000000-0000-0000-0000-000000000000).
125228func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall {
125229	c.urlParams_.Set("requestId", requestId)
125230	return c
125231}
125232
125233// Fields allows partial responses to be retrieved. See
125234// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125235// for more information.
125236func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall {
125237	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125238	return c
125239}
125240
125241// Context sets the context to be used in this call's Do method. Any
125242// pending HTTP request will be aborted if the provided context is
125243// canceled.
125244func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall {
125245	c.ctx_ = ctx
125246	return c
125247}
125248
125249// Header returns an http.Header that can be modified by the caller to
125250// add HTTP headers to the request.
125251func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header {
125252	if c.header_ == nil {
125253		c.header_ = make(http.Header)
125254	}
125255	return c.header_
125256}
125257
125258func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
125259	reqHeaders := make(http.Header)
125260	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125261	for k, v := range c.header_ {
125262		reqHeaders[k] = v
125263	}
125264	reqHeaders.Set("User-Agent", c.s.userAgent())
125265	var body io.Reader = nil
125266	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
125267	if err != nil {
125268		return nil, err
125269	}
125270	reqHeaders.Set("Content-Type", "application/json")
125271	c.urlParams_.Set("alt", alt)
125272	c.urlParams_.Set("prettyPrint", "false")
125273	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
125274	urls += "?" + c.urlParams_.Encode()
125275	req, err := http.NewRequest("PATCH", urls, body)
125276	if err != nil {
125277		return nil, err
125278	}
125279	req.Header = reqHeaders
125280	googleapi.Expand(req.URL, map[string]string{
125281		"project":               c.project,
125282		"region":                c.region,
125283		"publicDelegatedPrefix": c.publicDelegatedPrefix,
125284	})
125285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125286}
125287
125288// Do executes the "compute.publicDelegatedPrefixes.patch" call.
125289// Exactly one of *Operation or error will be non-nil. Any non-2xx
125290// status code is an error. Response headers are in either
125291// *Operation.ServerResponse.Header or (if a response was returned at
125292// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125293// to check whether the returned error was because
125294// http.StatusNotModified was returned.
125295func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125296	gensupport.SetOptions(c.urlParams_, opts...)
125297	res, err := c.doRequest("json")
125298	if res != nil && res.StatusCode == http.StatusNotModified {
125299		if res.Body != nil {
125300			res.Body.Close()
125301		}
125302		return nil, &googleapi.Error{
125303			Code:   res.StatusCode,
125304			Header: res.Header,
125305		}
125306	}
125307	if err != nil {
125308		return nil, err
125309	}
125310	defer googleapi.CloseBody(res)
125311	if err := googleapi.CheckResponse(res); err != nil {
125312		return nil, err
125313	}
125314	ret := &Operation{
125315		ServerResponse: googleapi.ServerResponse{
125316			Header:         res.Header,
125317			HTTPStatusCode: res.StatusCode,
125318		},
125319	}
125320	target := &ret
125321	if err := gensupport.DecodeResponse(target, res); err != nil {
125322		return nil, err
125323	}
125324	return ret, nil
125325	// {
125326	//   "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.",
125327	//   "httpMethod": "PATCH",
125328	//   "id": "compute.publicDelegatedPrefixes.patch",
125329	//   "parameterOrder": [
125330	//     "project",
125331	//     "region",
125332	//     "publicDelegatedPrefix"
125333	//   ],
125334	//   "parameters": {
125335	//     "project": {
125336	//       "description": "Project ID for this request.",
125337	//       "location": "path",
125338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125339	//       "required": true,
125340	//       "type": "string"
125341	//     },
125342	//     "publicDelegatedPrefix": {
125343	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
125344	//       "location": "path",
125345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125346	//       "required": true,
125347	//       "type": "string"
125348	//     },
125349	//     "region": {
125350	//       "description": "Name of the region for this request.",
125351	//       "location": "path",
125352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125353	//       "required": true,
125354	//       "type": "string"
125355	//     },
125356	//     "requestId": {
125357	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125358	//       "location": "query",
125359	//       "type": "string"
125360	//     }
125361	//   },
125362	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
125363	//   "request": {
125364	//     "$ref": "PublicDelegatedPrefix"
125365	//   },
125366	//   "response": {
125367	//     "$ref": "Operation"
125368	//   },
125369	//   "scopes": [
125370	//     "https://www.googleapis.com/auth/cloud-platform",
125371	//     "https://www.googleapis.com/auth/compute"
125372	//   ]
125373	// }
125374
125375}
125376
125377// method id "compute.regionAutoscalers.delete":
125378
125379type RegionAutoscalersDeleteCall struct {
125380	s          *Service
125381	project    string
125382	region     string
125383	autoscaler string
125384	urlParams_ gensupport.URLParams
125385	ctx_       context.Context
125386	header_    http.Header
125387}
125388
125389// Delete: Deletes the specified autoscaler.
125390//
125391// - autoscaler: Name of the autoscaler to delete.
125392// - project: Project ID for this request.
125393// - region: Name of the region scoping this request.
125394func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
125395	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125396	c.project = project
125397	c.region = region
125398	c.autoscaler = autoscaler
125399	return c
125400}
125401
125402// RequestId sets the optional parameter "requestId": An optional
125403// request ID to identify requests. Specify a unique request ID so that
125404// if you must retry your request, the server will know to ignore the
125405// request if it has already been completed.
125406//
125407// For example, consider a situation where you make an initial request
125408// and the request times out. If you make the request again with the
125409// same request ID, the server can check if original operation with the
125410// same request ID was received, and if so, will ignore the second
125411// request. This prevents clients from accidentally creating duplicate
125412// commitments.
125413//
125414// The request ID must be a valid UUID with the exception that zero UUID
125415// is not supported (00000000-0000-0000-0000-000000000000).
125416func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
125417	c.urlParams_.Set("requestId", requestId)
125418	return c
125419}
125420
125421// Fields allows partial responses to be retrieved. See
125422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125423// for more information.
125424func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
125425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125426	return c
125427}
125428
125429// Context sets the context to be used in this call's Do method. Any
125430// pending HTTP request will be aborted if the provided context is
125431// canceled.
125432func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
125433	c.ctx_ = ctx
125434	return c
125435}
125436
125437// Header returns an http.Header that can be modified by the caller to
125438// add HTTP headers to the request.
125439func (c *RegionAutoscalersDeleteCall) Header() http.Header {
125440	if c.header_ == nil {
125441		c.header_ = make(http.Header)
125442	}
125443	return c.header_
125444}
125445
125446func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
125447	reqHeaders := make(http.Header)
125448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125449	for k, v := range c.header_ {
125450		reqHeaders[k] = v
125451	}
125452	reqHeaders.Set("User-Agent", c.s.userAgent())
125453	var body io.Reader = nil
125454	c.urlParams_.Set("alt", alt)
125455	c.urlParams_.Set("prettyPrint", "false")
125456	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
125457	urls += "?" + c.urlParams_.Encode()
125458	req, err := http.NewRequest("DELETE", urls, body)
125459	if err != nil {
125460		return nil, err
125461	}
125462	req.Header = reqHeaders
125463	googleapi.Expand(req.URL, map[string]string{
125464		"project":    c.project,
125465		"region":     c.region,
125466		"autoscaler": c.autoscaler,
125467	})
125468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125469}
125470
125471// Do executes the "compute.regionAutoscalers.delete" call.
125472// Exactly one of *Operation or error will be non-nil. Any non-2xx
125473// status code is an error. Response headers are in either
125474// *Operation.ServerResponse.Header or (if a response was returned at
125475// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125476// to check whether the returned error was because
125477// http.StatusNotModified was returned.
125478func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125479	gensupport.SetOptions(c.urlParams_, opts...)
125480	res, err := c.doRequest("json")
125481	if res != nil && res.StatusCode == http.StatusNotModified {
125482		if res.Body != nil {
125483			res.Body.Close()
125484		}
125485		return nil, &googleapi.Error{
125486			Code:   res.StatusCode,
125487			Header: res.Header,
125488		}
125489	}
125490	if err != nil {
125491		return nil, err
125492	}
125493	defer googleapi.CloseBody(res)
125494	if err := googleapi.CheckResponse(res); err != nil {
125495		return nil, err
125496	}
125497	ret := &Operation{
125498		ServerResponse: googleapi.ServerResponse{
125499			Header:         res.Header,
125500			HTTPStatusCode: res.StatusCode,
125501		},
125502	}
125503	target := &ret
125504	if err := gensupport.DecodeResponse(target, res); err != nil {
125505		return nil, err
125506	}
125507	return ret, nil
125508	// {
125509	//   "description": "Deletes the specified autoscaler.",
125510	//   "httpMethod": "DELETE",
125511	//   "id": "compute.regionAutoscalers.delete",
125512	//   "parameterOrder": [
125513	//     "project",
125514	//     "region",
125515	//     "autoscaler"
125516	//   ],
125517	//   "parameters": {
125518	//     "autoscaler": {
125519	//       "description": "Name of the autoscaler to delete.",
125520	//       "location": "path",
125521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125522	//       "required": true,
125523	//       "type": "string"
125524	//     },
125525	//     "project": {
125526	//       "description": "Project ID for this request.",
125527	//       "location": "path",
125528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125529	//       "required": true,
125530	//       "type": "string"
125531	//     },
125532	//     "region": {
125533	//       "description": "Name of the region scoping this request.",
125534	//       "location": "path",
125535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125536	//       "required": true,
125537	//       "type": "string"
125538	//     },
125539	//     "requestId": {
125540	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125541	//       "location": "query",
125542	//       "type": "string"
125543	//     }
125544	//   },
125545	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
125546	//   "response": {
125547	//     "$ref": "Operation"
125548	//   },
125549	//   "scopes": [
125550	//     "https://www.googleapis.com/auth/cloud-platform",
125551	//     "https://www.googleapis.com/auth/compute"
125552	//   ]
125553	// }
125554
125555}
125556
125557// method id "compute.regionAutoscalers.get":
125558
125559type RegionAutoscalersGetCall struct {
125560	s            *Service
125561	project      string
125562	region       string
125563	autoscaler   string
125564	urlParams_   gensupport.URLParams
125565	ifNoneMatch_ string
125566	ctx_         context.Context
125567	header_      http.Header
125568}
125569
125570// Get: Returns the specified autoscaler.
125571//
125572// - autoscaler: Name of the autoscaler to return.
125573// - project: Project ID for this request.
125574// - region: Name of the region scoping this request.
125575func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
125576	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125577	c.project = project
125578	c.region = region
125579	c.autoscaler = autoscaler
125580	return c
125581}
125582
125583// Fields allows partial responses to be retrieved. See
125584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125585// for more information.
125586func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
125587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125588	return c
125589}
125590
125591// IfNoneMatch sets the optional parameter which makes the operation
125592// fail if the object's ETag matches the given value. This is useful for
125593// getting updates only after the object has changed since the last
125594// request. Use googleapi.IsNotModified to check whether the response
125595// error from Do is the result of In-None-Match.
125596func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
125597	c.ifNoneMatch_ = entityTag
125598	return c
125599}
125600
125601// Context sets the context to be used in this call's Do method. Any
125602// pending HTTP request will be aborted if the provided context is
125603// canceled.
125604func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
125605	c.ctx_ = ctx
125606	return c
125607}
125608
125609// Header returns an http.Header that can be modified by the caller to
125610// add HTTP headers to the request.
125611func (c *RegionAutoscalersGetCall) Header() http.Header {
125612	if c.header_ == nil {
125613		c.header_ = make(http.Header)
125614	}
125615	return c.header_
125616}
125617
125618func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
125619	reqHeaders := make(http.Header)
125620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125621	for k, v := range c.header_ {
125622		reqHeaders[k] = v
125623	}
125624	reqHeaders.Set("User-Agent", c.s.userAgent())
125625	if c.ifNoneMatch_ != "" {
125626		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125627	}
125628	var body io.Reader = nil
125629	c.urlParams_.Set("alt", alt)
125630	c.urlParams_.Set("prettyPrint", "false")
125631	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
125632	urls += "?" + c.urlParams_.Encode()
125633	req, err := http.NewRequest("GET", urls, body)
125634	if err != nil {
125635		return nil, err
125636	}
125637	req.Header = reqHeaders
125638	googleapi.Expand(req.URL, map[string]string{
125639		"project":    c.project,
125640		"region":     c.region,
125641		"autoscaler": c.autoscaler,
125642	})
125643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125644}
125645
125646// Do executes the "compute.regionAutoscalers.get" call.
125647// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
125648// status code is an error. Response headers are in either
125649// *Autoscaler.ServerResponse.Header or (if a response was returned at
125650// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125651// to check whether the returned error was because
125652// http.StatusNotModified was returned.
125653func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
125654	gensupport.SetOptions(c.urlParams_, opts...)
125655	res, err := c.doRequest("json")
125656	if res != nil && res.StatusCode == http.StatusNotModified {
125657		if res.Body != nil {
125658			res.Body.Close()
125659		}
125660		return nil, &googleapi.Error{
125661			Code:   res.StatusCode,
125662			Header: res.Header,
125663		}
125664	}
125665	if err != nil {
125666		return nil, err
125667	}
125668	defer googleapi.CloseBody(res)
125669	if err := googleapi.CheckResponse(res); err != nil {
125670		return nil, err
125671	}
125672	ret := &Autoscaler{
125673		ServerResponse: googleapi.ServerResponse{
125674			Header:         res.Header,
125675			HTTPStatusCode: res.StatusCode,
125676		},
125677	}
125678	target := &ret
125679	if err := gensupport.DecodeResponse(target, res); err != nil {
125680		return nil, err
125681	}
125682	return ret, nil
125683	// {
125684	//   "description": "Returns the specified autoscaler.",
125685	//   "httpMethod": "GET",
125686	//   "id": "compute.regionAutoscalers.get",
125687	//   "parameterOrder": [
125688	//     "project",
125689	//     "region",
125690	//     "autoscaler"
125691	//   ],
125692	//   "parameters": {
125693	//     "autoscaler": {
125694	//       "description": "Name of the autoscaler to return.",
125695	//       "location": "path",
125696	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125697	//       "required": true,
125698	//       "type": "string"
125699	//     },
125700	//     "project": {
125701	//       "description": "Project ID for this request.",
125702	//       "location": "path",
125703	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125704	//       "required": true,
125705	//       "type": "string"
125706	//     },
125707	//     "region": {
125708	//       "description": "Name of the region scoping this request.",
125709	//       "location": "path",
125710	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125711	//       "required": true,
125712	//       "type": "string"
125713	//     }
125714	//   },
125715	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
125716	//   "response": {
125717	//     "$ref": "Autoscaler"
125718	//   },
125719	//   "scopes": [
125720	//     "https://www.googleapis.com/auth/cloud-platform",
125721	//     "https://www.googleapis.com/auth/compute",
125722	//     "https://www.googleapis.com/auth/compute.readonly"
125723	//   ]
125724	// }
125725
125726}
125727
125728// method id "compute.regionAutoscalers.insert":
125729
125730type RegionAutoscalersInsertCall struct {
125731	s          *Service
125732	project    string
125733	region     string
125734	autoscaler *Autoscaler
125735	urlParams_ gensupport.URLParams
125736	ctx_       context.Context
125737	header_    http.Header
125738}
125739
125740// Insert: Creates an autoscaler in the specified project using the data
125741// included in the request.
125742//
125743// - project: Project ID for this request.
125744// - region: Name of the region scoping this request.
125745func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
125746	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125747	c.project = project
125748	c.region = region
125749	c.autoscaler = autoscaler
125750	return c
125751}
125752
125753// RequestId sets the optional parameter "requestId": An optional
125754// request ID to identify requests. Specify a unique request ID so that
125755// if you must retry your request, the server will know to ignore the
125756// request if it has already been completed.
125757//
125758// For example, consider a situation where you make an initial request
125759// and the request times out. If you make the request again with the
125760// same request ID, the server can check if original operation with the
125761// same request ID was received, and if so, will ignore the second
125762// request. This prevents clients from accidentally creating duplicate
125763// commitments.
125764//
125765// The request ID must be a valid UUID with the exception that zero UUID
125766// is not supported (00000000-0000-0000-0000-000000000000).
125767func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
125768	c.urlParams_.Set("requestId", requestId)
125769	return c
125770}
125771
125772// Fields allows partial responses to be retrieved. See
125773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125774// for more information.
125775func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
125776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125777	return c
125778}
125779
125780// Context sets the context to be used in this call's Do method. Any
125781// pending HTTP request will be aborted if the provided context is
125782// canceled.
125783func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
125784	c.ctx_ = ctx
125785	return c
125786}
125787
125788// Header returns an http.Header that can be modified by the caller to
125789// add HTTP headers to the request.
125790func (c *RegionAutoscalersInsertCall) Header() http.Header {
125791	if c.header_ == nil {
125792		c.header_ = make(http.Header)
125793	}
125794	return c.header_
125795}
125796
125797func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
125798	reqHeaders := make(http.Header)
125799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125800	for k, v := range c.header_ {
125801		reqHeaders[k] = v
125802	}
125803	reqHeaders.Set("User-Agent", c.s.userAgent())
125804	var body io.Reader = nil
125805	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
125806	if err != nil {
125807		return nil, err
125808	}
125809	reqHeaders.Set("Content-Type", "application/json")
125810	c.urlParams_.Set("alt", alt)
125811	c.urlParams_.Set("prettyPrint", "false")
125812	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
125813	urls += "?" + c.urlParams_.Encode()
125814	req, err := http.NewRequest("POST", urls, body)
125815	if err != nil {
125816		return nil, err
125817	}
125818	req.Header = reqHeaders
125819	googleapi.Expand(req.URL, map[string]string{
125820		"project": c.project,
125821		"region":  c.region,
125822	})
125823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125824}
125825
125826// Do executes the "compute.regionAutoscalers.insert" call.
125827// Exactly one of *Operation or error will be non-nil. Any non-2xx
125828// status code is an error. Response headers are in either
125829// *Operation.ServerResponse.Header or (if a response was returned at
125830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125831// to check whether the returned error was because
125832// http.StatusNotModified was returned.
125833func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125834	gensupport.SetOptions(c.urlParams_, opts...)
125835	res, err := c.doRequest("json")
125836	if res != nil && res.StatusCode == http.StatusNotModified {
125837		if res.Body != nil {
125838			res.Body.Close()
125839		}
125840		return nil, &googleapi.Error{
125841			Code:   res.StatusCode,
125842			Header: res.Header,
125843		}
125844	}
125845	if err != nil {
125846		return nil, err
125847	}
125848	defer googleapi.CloseBody(res)
125849	if err := googleapi.CheckResponse(res); err != nil {
125850		return nil, err
125851	}
125852	ret := &Operation{
125853		ServerResponse: googleapi.ServerResponse{
125854			Header:         res.Header,
125855			HTTPStatusCode: res.StatusCode,
125856		},
125857	}
125858	target := &ret
125859	if err := gensupport.DecodeResponse(target, res); err != nil {
125860		return nil, err
125861	}
125862	return ret, nil
125863	// {
125864	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
125865	//   "httpMethod": "POST",
125866	//   "id": "compute.regionAutoscalers.insert",
125867	//   "parameterOrder": [
125868	//     "project",
125869	//     "region"
125870	//   ],
125871	//   "parameters": {
125872	//     "project": {
125873	//       "description": "Project ID for this request.",
125874	//       "location": "path",
125875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125876	//       "required": true,
125877	//       "type": "string"
125878	//     },
125879	//     "region": {
125880	//       "description": "Name of the region scoping this request.",
125881	//       "location": "path",
125882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125883	//       "required": true,
125884	//       "type": "string"
125885	//     },
125886	//     "requestId": {
125887	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125888	//       "location": "query",
125889	//       "type": "string"
125890	//     }
125891	//   },
125892	//   "path": "projects/{project}/regions/{region}/autoscalers",
125893	//   "request": {
125894	//     "$ref": "Autoscaler"
125895	//   },
125896	//   "response": {
125897	//     "$ref": "Operation"
125898	//   },
125899	//   "scopes": [
125900	//     "https://www.googleapis.com/auth/cloud-platform",
125901	//     "https://www.googleapis.com/auth/compute"
125902	//   ]
125903	// }
125904
125905}
125906
125907// method id "compute.regionAutoscalers.list":
125908
125909type RegionAutoscalersListCall struct {
125910	s            *Service
125911	project      string
125912	region       string
125913	urlParams_   gensupport.URLParams
125914	ifNoneMatch_ string
125915	ctx_         context.Context
125916	header_      http.Header
125917}
125918
125919// List: Retrieves a list of autoscalers contained within the specified
125920// region.
125921//
125922// - project: Project ID for this request.
125923// - region: Name of the region scoping this request.
125924func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
125925	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125926	c.project = project
125927	c.region = region
125928	return c
125929}
125930
125931// Filter sets the optional parameter "filter": A filter expression that
125932// filters resources listed in the response. The expression must specify
125933// the field name, a comparison operator, and the value that you want to
125934// use for filtering. The value must be a string, a number, or a
125935// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125936// `<`.
125937//
125938// For example, if you are filtering Compute Engine instances, you can
125939// exclude instances named `example-instance` by specifying `name !=
125940// example-instance`.
125941//
125942// You can also filter nested fields. For example, you could specify
125943// `scheduling.automaticRestart = false` to include instances only if
125944// they are not scheduled for automatic restarts. You can use filtering
125945// on nested fields to filter based on resource labels.
125946//
125947// To filter on multiple expressions, provide each separate expression
125948// within parentheses. For example: ``` (scheduling.automaticRestart =
125949// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
125950// is an `AND` expression. However, you can include `AND` and `OR`
125951// expressions explicitly. For example: ``` (cpuPlatform = "Intel
125952// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
125953// (scheduling.automaticRestart = true) ```
125954func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
125955	c.urlParams_.Set("filter", filter)
125956	return c
125957}
125958
125959// MaxResults sets the optional parameter "maxResults": The maximum
125960// number of results per page that should be returned. If the number of
125961// available results is larger than `maxResults`, Compute Engine returns
125962// a `nextPageToken` that can be used to get the next page of results in
125963// subsequent list requests. Acceptable values are `0` to `500`,
125964// inclusive. (Default: `500`)
125965func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
125966	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125967	return c
125968}
125969
125970// OrderBy sets the optional parameter "orderBy": Sorts list results by
125971// a certain order. By default, results are returned in alphanumerical
125972// order based on the resource name.
125973//
125974// You can also sort results in descending order based on the creation
125975// timestamp using `orderBy="creationTimestamp desc". This sorts
125976// results based on the `creationTimestamp` field in reverse
125977// chronological order (newest result first). Use this to sort resources
125978// like operations so that the newest operation is returned
125979// first.
125980//
125981// Currently, only sorting by `name` or `creationTimestamp desc` is
125982// supported.
125983func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
125984	c.urlParams_.Set("orderBy", orderBy)
125985	return c
125986}
125987
125988// PageToken sets the optional parameter "pageToken": Specifies a page
125989// token to use. Set `pageToken` to the `nextPageToken` returned by a
125990// previous list request to get the next page of results.
125991func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
125992	c.urlParams_.Set("pageToken", pageToken)
125993	return c
125994}
125995
125996// ReturnPartialSuccess sets the optional parameter
125997// "returnPartialSuccess": Opt-in for partial success behavior which
125998// provides partial results in case of failure. The default value is
125999// false.
126000func (c *RegionAutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionAutoscalersListCall {
126001	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126002	return c
126003}
126004
126005// Fields allows partial responses to be retrieved. See
126006// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126007// for more information.
126008func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
126009	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126010	return c
126011}
126012
126013// IfNoneMatch sets the optional parameter which makes the operation
126014// fail if the object's ETag matches the given value. This is useful for
126015// getting updates only after the object has changed since the last
126016// request. Use googleapi.IsNotModified to check whether the response
126017// error from Do is the result of In-None-Match.
126018func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
126019	c.ifNoneMatch_ = entityTag
126020	return c
126021}
126022
126023// Context sets the context to be used in this call's Do method. Any
126024// pending HTTP request will be aborted if the provided context is
126025// canceled.
126026func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
126027	c.ctx_ = ctx
126028	return c
126029}
126030
126031// Header returns an http.Header that can be modified by the caller to
126032// add HTTP headers to the request.
126033func (c *RegionAutoscalersListCall) Header() http.Header {
126034	if c.header_ == nil {
126035		c.header_ = make(http.Header)
126036	}
126037	return c.header_
126038}
126039
126040func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
126041	reqHeaders := make(http.Header)
126042	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126043	for k, v := range c.header_ {
126044		reqHeaders[k] = v
126045	}
126046	reqHeaders.Set("User-Agent", c.s.userAgent())
126047	if c.ifNoneMatch_ != "" {
126048		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126049	}
126050	var body io.Reader = nil
126051	c.urlParams_.Set("alt", alt)
126052	c.urlParams_.Set("prettyPrint", "false")
126053	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
126054	urls += "?" + c.urlParams_.Encode()
126055	req, err := http.NewRequest("GET", urls, body)
126056	if err != nil {
126057		return nil, err
126058	}
126059	req.Header = reqHeaders
126060	googleapi.Expand(req.URL, map[string]string{
126061		"project": c.project,
126062		"region":  c.region,
126063	})
126064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126065}
126066
126067// Do executes the "compute.regionAutoscalers.list" call.
126068// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
126069// non-2xx status code is an error. Response headers are in either
126070// *RegionAutoscalerList.ServerResponse.Header or (if a response was
126071// returned at all) in error.(*googleapi.Error).Header. Use
126072// googleapi.IsNotModified to check whether the returned error was
126073// because http.StatusNotModified was returned.
126074func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
126075	gensupport.SetOptions(c.urlParams_, opts...)
126076	res, err := c.doRequest("json")
126077	if res != nil && res.StatusCode == http.StatusNotModified {
126078		if res.Body != nil {
126079			res.Body.Close()
126080		}
126081		return nil, &googleapi.Error{
126082			Code:   res.StatusCode,
126083			Header: res.Header,
126084		}
126085	}
126086	if err != nil {
126087		return nil, err
126088	}
126089	defer googleapi.CloseBody(res)
126090	if err := googleapi.CheckResponse(res); err != nil {
126091		return nil, err
126092	}
126093	ret := &RegionAutoscalerList{
126094		ServerResponse: googleapi.ServerResponse{
126095			Header:         res.Header,
126096			HTTPStatusCode: res.StatusCode,
126097		},
126098	}
126099	target := &ret
126100	if err := gensupport.DecodeResponse(target, res); err != nil {
126101		return nil, err
126102	}
126103	return ret, nil
126104	// {
126105	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
126106	//   "httpMethod": "GET",
126107	//   "id": "compute.regionAutoscalers.list",
126108	//   "parameterOrder": [
126109	//     "project",
126110	//     "region"
126111	//   ],
126112	//   "parameters": {
126113	//     "filter": {
126114	//       "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) ```",
126115	//       "location": "query",
126116	//       "type": "string"
126117	//     },
126118	//     "maxResults": {
126119	//       "default": "500",
126120	//       "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`)",
126121	//       "format": "uint32",
126122	//       "location": "query",
126123	//       "minimum": "0",
126124	//       "type": "integer"
126125	//     },
126126	//     "orderBy": {
126127	//       "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.",
126128	//       "location": "query",
126129	//       "type": "string"
126130	//     },
126131	//     "pageToken": {
126132	//       "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.",
126133	//       "location": "query",
126134	//       "type": "string"
126135	//     },
126136	//     "project": {
126137	//       "description": "Project ID for this request.",
126138	//       "location": "path",
126139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126140	//       "required": true,
126141	//       "type": "string"
126142	//     },
126143	//     "region": {
126144	//       "description": "Name of the region scoping this request.",
126145	//       "location": "path",
126146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126147	//       "required": true,
126148	//       "type": "string"
126149	//     },
126150	//     "returnPartialSuccess": {
126151	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126152	//       "location": "query",
126153	//       "type": "boolean"
126154	//     }
126155	//   },
126156	//   "path": "projects/{project}/regions/{region}/autoscalers",
126157	//   "response": {
126158	//     "$ref": "RegionAutoscalerList"
126159	//   },
126160	//   "scopes": [
126161	//     "https://www.googleapis.com/auth/cloud-platform",
126162	//     "https://www.googleapis.com/auth/compute",
126163	//     "https://www.googleapis.com/auth/compute.readonly"
126164	//   ]
126165	// }
126166
126167}
126168
126169// Pages invokes f for each page of results.
126170// A non-nil error returned from f will halt the iteration.
126171// The provided context supersedes any context provided to the Context method.
126172func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
126173	c.ctx_ = ctx
126174	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126175	for {
126176		x, err := c.Do()
126177		if err != nil {
126178			return err
126179		}
126180		if err := f(x); err != nil {
126181			return err
126182		}
126183		if x.NextPageToken == "" {
126184			return nil
126185		}
126186		c.PageToken(x.NextPageToken)
126187	}
126188}
126189
126190// method id "compute.regionAutoscalers.patch":
126191
126192type RegionAutoscalersPatchCall struct {
126193	s          *Service
126194	project    string
126195	region     string
126196	autoscaler *Autoscaler
126197	urlParams_ gensupport.URLParams
126198	ctx_       context.Context
126199	header_    http.Header
126200}
126201
126202// Patch: Updates an autoscaler in the specified project using the data
126203// included in the request. This method supports PATCH semantics and
126204// uses the JSON merge patch format and processing rules.
126205//
126206// - project: Project ID for this request.
126207// - region: Name of the region scoping this request.
126208func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
126209	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126210	c.project = project
126211	c.region = region
126212	c.autoscaler = autoscaler
126213	return c
126214}
126215
126216// Autoscaler sets the optional parameter "autoscaler": Name of the
126217// autoscaler to patch.
126218func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
126219	c.urlParams_.Set("autoscaler", autoscaler)
126220	return c
126221}
126222
126223// RequestId sets the optional parameter "requestId": An optional
126224// request ID to identify requests. Specify a unique request ID so that
126225// if you must retry your request, the server will know to ignore the
126226// request if it has already been completed.
126227//
126228// For example, consider a situation where you make an initial request
126229// and the request times out. If you make the request again with the
126230// same request ID, the server can check if original operation with the
126231// same request ID was received, and if so, will ignore the second
126232// request. This prevents clients from accidentally creating duplicate
126233// commitments.
126234//
126235// The request ID must be a valid UUID with the exception that zero UUID
126236// is not supported (00000000-0000-0000-0000-000000000000).
126237func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
126238	c.urlParams_.Set("requestId", requestId)
126239	return c
126240}
126241
126242// Fields allows partial responses to be retrieved. See
126243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126244// for more information.
126245func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
126246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126247	return c
126248}
126249
126250// Context sets the context to be used in this call's Do method. Any
126251// pending HTTP request will be aborted if the provided context is
126252// canceled.
126253func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
126254	c.ctx_ = ctx
126255	return c
126256}
126257
126258// Header returns an http.Header that can be modified by the caller to
126259// add HTTP headers to the request.
126260func (c *RegionAutoscalersPatchCall) Header() http.Header {
126261	if c.header_ == nil {
126262		c.header_ = make(http.Header)
126263	}
126264	return c.header_
126265}
126266
126267func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
126268	reqHeaders := make(http.Header)
126269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126270	for k, v := range c.header_ {
126271		reqHeaders[k] = v
126272	}
126273	reqHeaders.Set("User-Agent", c.s.userAgent())
126274	var body io.Reader = nil
126275	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
126276	if err != nil {
126277		return nil, err
126278	}
126279	reqHeaders.Set("Content-Type", "application/json")
126280	c.urlParams_.Set("alt", alt)
126281	c.urlParams_.Set("prettyPrint", "false")
126282	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
126283	urls += "?" + c.urlParams_.Encode()
126284	req, err := http.NewRequest("PATCH", urls, body)
126285	if err != nil {
126286		return nil, err
126287	}
126288	req.Header = reqHeaders
126289	googleapi.Expand(req.URL, map[string]string{
126290		"project": c.project,
126291		"region":  c.region,
126292	})
126293	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126294}
126295
126296// Do executes the "compute.regionAutoscalers.patch" call.
126297// Exactly one of *Operation or error will be non-nil. Any non-2xx
126298// status code is an error. Response headers are in either
126299// *Operation.ServerResponse.Header or (if a response was returned at
126300// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126301// to check whether the returned error was because
126302// http.StatusNotModified was returned.
126303func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126304	gensupport.SetOptions(c.urlParams_, opts...)
126305	res, err := c.doRequest("json")
126306	if res != nil && res.StatusCode == http.StatusNotModified {
126307		if res.Body != nil {
126308			res.Body.Close()
126309		}
126310		return nil, &googleapi.Error{
126311			Code:   res.StatusCode,
126312			Header: res.Header,
126313		}
126314	}
126315	if err != nil {
126316		return nil, err
126317	}
126318	defer googleapi.CloseBody(res)
126319	if err := googleapi.CheckResponse(res); err != nil {
126320		return nil, err
126321	}
126322	ret := &Operation{
126323		ServerResponse: googleapi.ServerResponse{
126324			Header:         res.Header,
126325			HTTPStatusCode: res.StatusCode,
126326		},
126327	}
126328	target := &ret
126329	if err := gensupport.DecodeResponse(target, res); err != nil {
126330		return nil, err
126331	}
126332	return ret, nil
126333	// {
126334	//   "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.",
126335	//   "httpMethod": "PATCH",
126336	//   "id": "compute.regionAutoscalers.patch",
126337	//   "parameterOrder": [
126338	//     "project",
126339	//     "region"
126340	//   ],
126341	//   "parameters": {
126342	//     "autoscaler": {
126343	//       "description": "Name of the autoscaler to patch.",
126344	//       "location": "query",
126345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126346	//       "type": "string"
126347	//     },
126348	//     "project": {
126349	//       "description": "Project ID for this request.",
126350	//       "location": "path",
126351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126352	//       "required": true,
126353	//       "type": "string"
126354	//     },
126355	//     "region": {
126356	//       "description": "Name of the region scoping this request.",
126357	//       "location": "path",
126358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126359	//       "required": true,
126360	//       "type": "string"
126361	//     },
126362	//     "requestId": {
126363	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126364	//       "location": "query",
126365	//       "type": "string"
126366	//     }
126367	//   },
126368	//   "path": "projects/{project}/regions/{region}/autoscalers",
126369	//   "request": {
126370	//     "$ref": "Autoscaler"
126371	//   },
126372	//   "response": {
126373	//     "$ref": "Operation"
126374	//   },
126375	//   "scopes": [
126376	//     "https://www.googleapis.com/auth/cloud-platform",
126377	//     "https://www.googleapis.com/auth/compute"
126378	//   ]
126379	// }
126380
126381}
126382
126383// method id "compute.regionAutoscalers.testIamPermissions":
126384
126385type RegionAutoscalersTestIamPermissionsCall struct {
126386	s                      *Service
126387	project                string
126388	region                 string
126389	resource               string
126390	testpermissionsrequest *TestPermissionsRequest
126391	urlParams_             gensupport.URLParams
126392	ctx_                   context.Context
126393	header_                http.Header
126394}
126395
126396// TestIamPermissions: Returns permissions that a caller has on the
126397// specified resource.
126398//
126399// - project: Project ID for this request.
126400// - region: The name of the region for this request.
126401// - resource: Name or id of the resource for this request.
126402func (r *RegionAutoscalersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionAutoscalersTestIamPermissionsCall {
126403	c := &RegionAutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126404	c.project = project
126405	c.region = region
126406	c.resource = resource
126407	c.testpermissionsrequest = testpermissionsrequest
126408	return c
126409}
126410
126411// Fields allows partial responses to be retrieved. See
126412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126413// for more information.
126414func (c *RegionAutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionAutoscalersTestIamPermissionsCall {
126415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126416	return c
126417}
126418
126419// Context sets the context to be used in this call's Do method. Any
126420// pending HTTP request will be aborted if the provided context is
126421// canceled.
126422func (c *RegionAutoscalersTestIamPermissionsCall) Context(ctx context.Context) *RegionAutoscalersTestIamPermissionsCall {
126423	c.ctx_ = ctx
126424	return c
126425}
126426
126427// Header returns an http.Header that can be modified by the caller to
126428// add HTTP headers to the request.
126429func (c *RegionAutoscalersTestIamPermissionsCall) Header() http.Header {
126430	if c.header_ == nil {
126431		c.header_ = make(http.Header)
126432	}
126433	return c.header_
126434}
126435
126436func (c *RegionAutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
126437	reqHeaders := make(http.Header)
126438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126439	for k, v := range c.header_ {
126440		reqHeaders[k] = v
126441	}
126442	reqHeaders.Set("User-Agent", c.s.userAgent())
126443	var body io.Reader = nil
126444	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
126445	if err != nil {
126446		return nil, err
126447	}
126448	reqHeaders.Set("Content-Type", "application/json")
126449	c.urlParams_.Set("alt", alt)
126450	c.urlParams_.Set("prettyPrint", "false")
126451	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions")
126452	urls += "?" + c.urlParams_.Encode()
126453	req, err := http.NewRequest("POST", urls, body)
126454	if err != nil {
126455		return nil, err
126456	}
126457	req.Header = reqHeaders
126458	googleapi.Expand(req.URL, map[string]string{
126459		"project":  c.project,
126460		"region":   c.region,
126461		"resource": c.resource,
126462	})
126463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126464}
126465
126466// Do executes the "compute.regionAutoscalers.testIamPermissions" call.
126467// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
126468// non-2xx status code is an error. Response headers are in either
126469// *TestPermissionsResponse.ServerResponse.Header or (if a response was
126470// returned at all) in error.(*googleapi.Error).Header. Use
126471// googleapi.IsNotModified to check whether the returned error was
126472// because http.StatusNotModified was returned.
126473func (c *RegionAutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
126474	gensupport.SetOptions(c.urlParams_, opts...)
126475	res, err := c.doRequest("json")
126476	if res != nil && res.StatusCode == http.StatusNotModified {
126477		if res.Body != nil {
126478			res.Body.Close()
126479		}
126480		return nil, &googleapi.Error{
126481			Code:   res.StatusCode,
126482			Header: res.Header,
126483		}
126484	}
126485	if err != nil {
126486		return nil, err
126487	}
126488	defer googleapi.CloseBody(res)
126489	if err := googleapi.CheckResponse(res); err != nil {
126490		return nil, err
126491	}
126492	ret := &TestPermissionsResponse{
126493		ServerResponse: googleapi.ServerResponse{
126494			Header:         res.Header,
126495			HTTPStatusCode: res.StatusCode,
126496		},
126497	}
126498	target := &ret
126499	if err := gensupport.DecodeResponse(target, res); err != nil {
126500		return nil, err
126501	}
126502	return ret, nil
126503	// {
126504	//   "description": "Returns permissions that a caller has on the specified resource.",
126505	//   "httpMethod": "POST",
126506	//   "id": "compute.regionAutoscalers.testIamPermissions",
126507	//   "parameterOrder": [
126508	//     "project",
126509	//     "region",
126510	//     "resource"
126511	//   ],
126512	//   "parameters": {
126513	//     "project": {
126514	//       "description": "Project ID for this request.",
126515	//       "location": "path",
126516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126517	//       "required": true,
126518	//       "type": "string"
126519	//     },
126520	//     "region": {
126521	//       "description": "The name of the region for this request.",
126522	//       "location": "path",
126523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126524	//       "required": true,
126525	//       "type": "string"
126526	//     },
126527	//     "resource": {
126528	//       "description": "Name or id of the resource for this request.",
126529	//       "location": "path",
126530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126531	//       "required": true,
126532	//       "type": "string"
126533	//     }
126534	//   },
126535	//   "path": "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
126536	//   "request": {
126537	//     "$ref": "TestPermissionsRequest"
126538	//   },
126539	//   "response": {
126540	//     "$ref": "TestPermissionsResponse"
126541	//   },
126542	//   "scopes": [
126543	//     "https://www.googleapis.com/auth/cloud-platform",
126544	//     "https://www.googleapis.com/auth/compute",
126545	//     "https://www.googleapis.com/auth/compute.readonly"
126546	//   ]
126547	// }
126548
126549}
126550
126551// method id "compute.regionAutoscalers.update":
126552
126553type RegionAutoscalersUpdateCall struct {
126554	s          *Service
126555	project    string
126556	region     string
126557	autoscaler *Autoscaler
126558	urlParams_ gensupport.URLParams
126559	ctx_       context.Context
126560	header_    http.Header
126561}
126562
126563// Update: Updates an autoscaler in the specified project using the data
126564// included in the request.
126565//
126566// - project: Project ID for this request.
126567// - region: Name of the region scoping this request.
126568func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
126569	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126570	c.project = project
126571	c.region = region
126572	c.autoscaler = autoscaler
126573	return c
126574}
126575
126576// Autoscaler sets the optional parameter "autoscaler": Name of the
126577// autoscaler to update.
126578func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
126579	c.urlParams_.Set("autoscaler", autoscaler)
126580	return c
126581}
126582
126583// RequestId sets the optional parameter "requestId": An optional
126584// request ID to identify requests. Specify a unique request ID so that
126585// if you must retry your request, the server will know to ignore the
126586// request if it has already been completed.
126587//
126588// For example, consider a situation where you make an initial request
126589// and the request times out. If you make the request again with the
126590// same request ID, the server can check if original operation with the
126591// same request ID was received, and if so, will ignore the second
126592// request. This prevents clients from accidentally creating duplicate
126593// commitments.
126594//
126595// The request ID must be a valid UUID with the exception that zero UUID
126596// is not supported (00000000-0000-0000-0000-000000000000).
126597func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
126598	c.urlParams_.Set("requestId", requestId)
126599	return c
126600}
126601
126602// Fields allows partial responses to be retrieved. See
126603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126604// for more information.
126605func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
126606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126607	return c
126608}
126609
126610// Context sets the context to be used in this call's Do method. Any
126611// pending HTTP request will be aborted if the provided context is
126612// canceled.
126613func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
126614	c.ctx_ = ctx
126615	return c
126616}
126617
126618// Header returns an http.Header that can be modified by the caller to
126619// add HTTP headers to the request.
126620func (c *RegionAutoscalersUpdateCall) Header() http.Header {
126621	if c.header_ == nil {
126622		c.header_ = make(http.Header)
126623	}
126624	return c.header_
126625}
126626
126627func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
126628	reqHeaders := make(http.Header)
126629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126630	for k, v := range c.header_ {
126631		reqHeaders[k] = v
126632	}
126633	reqHeaders.Set("User-Agent", c.s.userAgent())
126634	var body io.Reader = nil
126635	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
126636	if err != nil {
126637		return nil, err
126638	}
126639	reqHeaders.Set("Content-Type", "application/json")
126640	c.urlParams_.Set("alt", alt)
126641	c.urlParams_.Set("prettyPrint", "false")
126642	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
126643	urls += "?" + c.urlParams_.Encode()
126644	req, err := http.NewRequest("PUT", urls, body)
126645	if err != nil {
126646		return nil, err
126647	}
126648	req.Header = reqHeaders
126649	googleapi.Expand(req.URL, map[string]string{
126650		"project": c.project,
126651		"region":  c.region,
126652	})
126653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126654}
126655
126656// Do executes the "compute.regionAutoscalers.update" call.
126657// Exactly one of *Operation or error will be non-nil. Any non-2xx
126658// status code is an error. Response headers are in either
126659// *Operation.ServerResponse.Header or (if a response was returned at
126660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126661// to check whether the returned error was because
126662// http.StatusNotModified was returned.
126663func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126664	gensupport.SetOptions(c.urlParams_, opts...)
126665	res, err := c.doRequest("json")
126666	if res != nil && res.StatusCode == http.StatusNotModified {
126667		if res.Body != nil {
126668			res.Body.Close()
126669		}
126670		return nil, &googleapi.Error{
126671			Code:   res.StatusCode,
126672			Header: res.Header,
126673		}
126674	}
126675	if err != nil {
126676		return nil, err
126677	}
126678	defer googleapi.CloseBody(res)
126679	if err := googleapi.CheckResponse(res); err != nil {
126680		return nil, err
126681	}
126682	ret := &Operation{
126683		ServerResponse: googleapi.ServerResponse{
126684			Header:         res.Header,
126685			HTTPStatusCode: res.StatusCode,
126686		},
126687	}
126688	target := &ret
126689	if err := gensupport.DecodeResponse(target, res); err != nil {
126690		return nil, err
126691	}
126692	return ret, nil
126693	// {
126694	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
126695	//   "httpMethod": "PUT",
126696	//   "id": "compute.regionAutoscalers.update",
126697	//   "parameterOrder": [
126698	//     "project",
126699	//     "region"
126700	//   ],
126701	//   "parameters": {
126702	//     "autoscaler": {
126703	//       "description": "Name of the autoscaler to update.",
126704	//       "location": "query",
126705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126706	//       "type": "string"
126707	//     },
126708	//     "project": {
126709	//       "description": "Project ID for this request.",
126710	//       "location": "path",
126711	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126712	//       "required": true,
126713	//       "type": "string"
126714	//     },
126715	//     "region": {
126716	//       "description": "Name of the region scoping this request.",
126717	//       "location": "path",
126718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126719	//       "required": true,
126720	//       "type": "string"
126721	//     },
126722	//     "requestId": {
126723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126724	//       "location": "query",
126725	//       "type": "string"
126726	//     }
126727	//   },
126728	//   "path": "projects/{project}/regions/{region}/autoscalers",
126729	//   "request": {
126730	//     "$ref": "Autoscaler"
126731	//   },
126732	//   "response": {
126733	//     "$ref": "Operation"
126734	//   },
126735	//   "scopes": [
126736	//     "https://www.googleapis.com/auth/cloud-platform",
126737	//     "https://www.googleapis.com/auth/compute"
126738	//   ]
126739	// }
126740
126741}
126742
126743// method id "compute.regionBackendServices.delete":
126744
126745type RegionBackendServicesDeleteCall struct {
126746	s              *Service
126747	project        string
126748	region         string
126749	backendService string
126750	urlParams_     gensupport.URLParams
126751	ctx_           context.Context
126752	header_        http.Header
126753}
126754
126755// Delete: Deletes the specified regional BackendService resource.
126756//
126757// - backendService: Name of the BackendService resource to delete.
126758// - project: Project ID for this request.
126759// - region: Name of the region scoping this request.
126760func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
126761	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126762	c.project = project
126763	c.region = region
126764	c.backendService = backendService
126765	return c
126766}
126767
126768// RequestId sets the optional parameter "requestId": An optional
126769// request ID to identify requests. Specify a unique request ID so that
126770// if you must retry your request, the server will know to ignore the
126771// request if it has already been completed.
126772//
126773// For example, consider a situation where you make an initial request
126774// and the request times out. If you make the request again with the
126775// same request ID, the server can check if original operation with the
126776// same request ID was received, and if so, will ignore the second
126777// request. This prevents clients from accidentally creating duplicate
126778// commitments.
126779//
126780// The request ID must be a valid UUID with the exception that zero UUID
126781// is not supported (00000000-0000-0000-0000-000000000000).
126782func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
126783	c.urlParams_.Set("requestId", requestId)
126784	return c
126785}
126786
126787// Fields allows partial responses to be retrieved. See
126788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126789// for more information.
126790func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
126791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126792	return c
126793}
126794
126795// Context sets the context to be used in this call's Do method. Any
126796// pending HTTP request will be aborted if the provided context is
126797// canceled.
126798func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
126799	c.ctx_ = ctx
126800	return c
126801}
126802
126803// Header returns an http.Header that can be modified by the caller to
126804// add HTTP headers to the request.
126805func (c *RegionBackendServicesDeleteCall) Header() http.Header {
126806	if c.header_ == nil {
126807		c.header_ = make(http.Header)
126808	}
126809	return c.header_
126810}
126811
126812func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
126813	reqHeaders := make(http.Header)
126814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126815	for k, v := range c.header_ {
126816		reqHeaders[k] = v
126817	}
126818	reqHeaders.Set("User-Agent", c.s.userAgent())
126819	var body io.Reader = nil
126820	c.urlParams_.Set("alt", alt)
126821	c.urlParams_.Set("prettyPrint", "false")
126822	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
126823	urls += "?" + c.urlParams_.Encode()
126824	req, err := http.NewRequest("DELETE", urls, body)
126825	if err != nil {
126826		return nil, err
126827	}
126828	req.Header = reqHeaders
126829	googleapi.Expand(req.URL, map[string]string{
126830		"project":        c.project,
126831		"region":         c.region,
126832		"backendService": c.backendService,
126833	})
126834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126835}
126836
126837// Do executes the "compute.regionBackendServices.delete" call.
126838// Exactly one of *Operation or error will be non-nil. Any non-2xx
126839// status code is an error. Response headers are in either
126840// *Operation.ServerResponse.Header or (if a response was returned at
126841// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126842// to check whether the returned error was because
126843// http.StatusNotModified was returned.
126844func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126845	gensupport.SetOptions(c.urlParams_, opts...)
126846	res, err := c.doRequest("json")
126847	if res != nil && res.StatusCode == http.StatusNotModified {
126848		if res.Body != nil {
126849			res.Body.Close()
126850		}
126851		return nil, &googleapi.Error{
126852			Code:   res.StatusCode,
126853			Header: res.Header,
126854		}
126855	}
126856	if err != nil {
126857		return nil, err
126858	}
126859	defer googleapi.CloseBody(res)
126860	if err := googleapi.CheckResponse(res); err != nil {
126861		return nil, err
126862	}
126863	ret := &Operation{
126864		ServerResponse: googleapi.ServerResponse{
126865			Header:         res.Header,
126866			HTTPStatusCode: res.StatusCode,
126867		},
126868	}
126869	target := &ret
126870	if err := gensupport.DecodeResponse(target, res); err != nil {
126871		return nil, err
126872	}
126873	return ret, nil
126874	// {
126875	//   "description": "Deletes the specified regional BackendService resource.",
126876	//   "httpMethod": "DELETE",
126877	//   "id": "compute.regionBackendServices.delete",
126878	//   "parameterOrder": [
126879	//     "project",
126880	//     "region",
126881	//     "backendService"
126882	//   ],
126883	//   "parameters": {
126884	//     "backendService": {
126885	//       "description": "Name of the BackendService resource to delete.",
126886	//       "location": "path",
126887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126888	//       "required": true,
126889	//       "type": "string"
126890	//     },
126891	//     "project": {
126892	//       "description": "Project ID for this request.",
126893	//       "location": "path",
126894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126895	//       "required": true,
126896	//       "type": "string"
126897	//     },
126898	//     "region": {
126899	//       "description": "Name of the region scoping this request.",
126900	//       "location": "path",
126901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126902	//       "required": true,
126903	//       "type": "string"
126904	//     },
126905	//     "requestId": {
126906	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126907	//       "location": "query",
126908	//       "type": "string"
126909	//     }
126910	//   },
126911	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
126912	//   "response": {
126913	//     "$ref": "Operation"
126914	//   },
126915	//   "scopes": [
126916	//     "https://www.googleapis.com/auth/cloud-platform",
126917	//     "https://www.googleapis.com/auth/compute"
126918	//   ]
126919	// }
126920
126921}
126922
126923// method id "compute.regionBackendServices.get":
126924
126925type RegionBackendServicesGetCall struct {
126926	s              *Service
126927	project        string
126928	region         string
126929	backendService string
126930	urlParams_     gensupport.URLParams
126931	ifNoneMatch_   string
126932	ctx_           context.Context
126933	header_        http.Header
126934}
126935
126936// Get: Returns the specified regional BackendService resource.
126937//
126938// - backendService: Name of the BackendService resource to return.
126939// - project: Project ID for this request.
126940// - region: Name of the region scoping this request.
126941func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
126942	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126943	c.project = project
126944	c.region = region
126945	c.backendService = backendService
126946	return c
126947}
126948
126949// Fields allows partial responses to be retrieved. See
126950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126951// for more information.
126952func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
126953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126954	return c
126955}
126956
126957// IfNoneMatch sets the optional parameter which makes the operation
126958// fail if the object's ETag matches the given value. This is useful for
126959// getting updates only after the object has changed since the last
126960// request. Use googleapi.IsNotModified to check whether the response
126961// error from Do is the result of In-None-Match.
126962func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
126963	c.ifNoneMatch_ = entityTag
126964	return c
126965}
126966
126967// Context sets the context to be used in this call's Do method. Any
126968// pending HTTP request will be aborted if the provided context is
126969// canceled.
126970func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
126971	c.ctx_ = ctx
126972	return c
126973}
126974
126975// Header returns an http.Header that can be modified by the caller to
126976// add HTTP headers to the request.
126977func (c *RegionBackendServicesGetCall) Header() http.Header {
126978	if c.header_ == nil {
126979		c.header_ = make(http.Header)
126980	}
126981	return c.header_
126982}
126983
126984func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
126985	reqHeaders := make(http.Header)
126986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126987	for k, v := range c.header_ {
126988		reqHeaders[k] = v
126989	}
126990	reqHeaders.Set("User-Agent", c.s.userAgent())
126991	if c.ifNoneMatch_ != "" {
126992		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126993	}
126994	var body io.Reader = nil
126995	c.urlParams_.Set("alt", alt)
126996	c.urlParams_.Set("prettyPrint", "false")
126997	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
126998	urls += "?" + c.urlParams_.Encode()
126999	req, err := http.NewRequest("GET", urls, body)
127000	if err != nil {
127001		return nil, err
127002	}
127003	req.Header = reqHeaders
127004	googleapi.Expand(req.URL, map[string]string{
127005		"project":        c.project,
127006		"region":         c.region,
127007		"backendService": c.backendService,
127008	})
127009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127010}
127011
127012// Do executes the "compute.regionBackendServices.get" call.
127013// Exactly one of *BackendService or error will be non-nil. Any non-2xx
127014// status code is an error. Response headers are in either
127015// *BackendService.ServerResponse.Header or (if a response was returned
127016// at all) in error.(*googleapi.Error).Header. Use
127017// googleapi.IsNotModified to check whether the returned error was
127018// because http.StatusNotModified was returned.
127019func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
127020	gensupport.SetOptions(c.urlParams_, opts...)
127021	res, err := c.doRequest("json")
127022	if res != nil && res.StatusCode == http.StatusNotModified {
127023		if res.Body != nil {
127024			res.Body.Close()
127025		}
127026		return nil, &googleapi.Error{
127027			Code:   res.StatusCode,
127028			Header: res.Header,
127029		}
127030	}
127031	if err != nil {
127032		return nil, err
127033	}
127034	defer googleapi.CloseBody(res)
127035	if err := googleapi.CheckResponse(res); err != nil {
127036		return nil, err
127037	}
127038	ret := &BackendService{
127039		ServerResponse: googleapi.ServerResponse{
127040			Header:         res.Header,
127041			HTTPStatusCode: res.StatusCode,
127042		},
127043	}
127044	target := &ret
127045	if err := gensupport.DecodeResponse(target, res); err != nil {
127046		return nil, err
127047	}
127048	return ret, nil
127049	// {
127050	//   "description": "Returns the specified regional BackendService resource.",
127051	//   "httpMethod": "GET",
127052	//   "id": "compute.regionBackendServices.get",
127053	//   "parameterOrder": [
127054	//     "project",
127055	//     "region",
127056	//     "backendService"
127057	//   ],
127058	//   "parameters": {
127059	//     "backendService": {
127060	//       "description": "Name of the BackendService resource to return.",
127061	//       "location": "path",
127062	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127063	//       "required": true,
127064	//       "type": "string"
127065	//     },
127066	//     "project": {
127067	//       "description": "Project ID for this request.",
127068	//       "location": "path",
127069	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127070	//       "required": true,
127071	//       "type": "string"
127072	//     },
127073	//     "region": {
127074	//       "description": "Name of the region scoping this request.",
127075	//       "location": "path",
127076	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127077	//       "required": true,
127078	//       "type": "string"
127079	//     }
127080	//   },
127081	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
127082	//   "response": {
127083	//     "$ref": "BackendService"
127084	//   },
127085	//   "scopes": [
127086	//     "https://www.googleapis.com/auth/cloud-platform",
127087	//     "https://www.googleapis.com/auth/compute",
127088	//     "https://www.googleapis.com/auth/compute.readonly"
127089	//   ]
127090	// }
127091
127092}
127093
127094// method id "compute.regionBackendServices.getHealth":
127095
127096type RegionBackendServicesGetHealthCall struct {
127097	s                      *Service
127098	project                string
127099	region                 string
127100	backendService         string
127101	resourcegroupreference *ResourceGroupReference
127102	urlParams_             gensupport.URLParams
127103	ctx_                   context.Context
127104	header_                http.Header
127105}
127106
127107// GetHealth: Gets the most recent health check results for this
127108// regional BackendService.
127109//
127110// - backendService: Name of the BackendService resource for which to
127111//   get health.
127112// - project: .
127113// - region: Name of the region scoping this request.
127114func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
127115	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127116	c.project = project
127117	c.region = region
127118	c.backendService = backendService
127119	c.resourcegroupreference = resourcegroupreference
127120	return c
127121}
127122
127123// Fields allows partial responses to be retrieved. See
127124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127125// for more information.
127126func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
127127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127128	return c
127129}
127130
127131// Context sets the context to be used in this call's Do method. Any
127132// pending HTTP request will be aborted if the provided context is
127133// canceled.
127134func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
127135	c.ctx_ = ctx
127136	return c
127137}
127138
127139// Header returns an http.Header that can be modified by the caller to
127140// add HTTP headers to the request.
127141func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
127142	if c.header_ == nil {
127143		c.header_ = make(http.Header)
127144	}
127145	return c.header_
127146}
127147
127148func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
127149	reqHeaders := make(http.Header)
127150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127151	for k, v := range c.header_ {
127152		reqHeaders[k] = v
127153	}
127154	reqHeaders.Set("User-Agent", c.s.userAgent())
127155	var body io.Reader = nil
127156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
127157	if err != nil {
127158		return nil, err
127159	}
127160	reqHeaders.Set("Content-Type", "application/json")
127161	c.urlParams_.Set("alt", alt)
127162	c.urlParams_.Set("prettyPrint", "false")
127163	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth")
127164	urls += "?" + c.urlParams_.Encode()
127165	req, err := http.NewRequest("POST", urls, body)
127166	if err != nil {
127167		return nil, err
127168	}
127169	req.Header = reqHeaders
127170	googleapi.Expand(req.URL, map[string]string{
127171		"project":        c.project,
127172		"region":         c.region,
127173		"backendService": c.backendService,
127174	})
127175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127176}
127177
127178// Do executes the "compute.regionBackendServices.getHealth" call.
127179// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
127180// Any non-2xx status code is an error. Response headers are in either
127181// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
127182// was returned at all) in error.(*googleapi.Error).Header. Use
127183// googleapi.IsNotModified to check whether the returned error was
127184// because http.StatusNotModified was returned.
127185func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
127186	gensupport.SetOptions(c.urlParams_, opts...)
127187	res, err := c.doRequest("json")
127188	if res != nil && res.StatusCode == http.StatusNotModified {
127189		if res.Body != nil {
127190			res.Body.Close()
127191		}
127192		return nil, &googleapi.Error{
127193			Code:   res.StatusCode,
127194			Header: res.Header,
127195		}
127196	}
127197	if err != nil {
127198		return nil, err
127199	}
127200	defer googleapi.CloseBody(res)
127201	if err := googleapi.CheckResponse(res); err != nil {
127202		return nil, err
127203	}
127204	ret := &BackendServiceGroupHealth{
127205		ServerResponse: googleapi.ServerResponse{
127206			Header:         res.Header,
127207			HTTPStatusCode: res.StatusCode,
127208		},
127209	}
127210	target := &ret
127211	if err := gensupport.DecodeResponse(target, res); err != nil {
127212		return nil, err
127213	}
127214	return ret, nil
127215	// {
127216	//   "description": "Gets the most recent health check results for this regional BackendService.",
127217	//   "httpMethod": "POST",
127218	//   "id": "compute.regionBackendServices.getHealth",
127219	//   "parameterOrder": [
127220	//     "project",
127221	//     "region",
127222	//     "backendService"
127223	//   ],
127224	//   "parameters": {
127225	//     "backendService": {
127226	//       "description": "Name of the BackendService resource for which to get health.",
127227	//       "location": "path",
127228	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127229	//       "required": true,
127230	//       "type": "string"
127231	//     },
127232	//     "project": {
127233	//       "location": "path",
127234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127235	//       "required": true,
127236	//       "type": "string"
127237	//     },
127238	//     "region": {
127239	//       "description": "Name of the region scoping this request.",
127240	//       "location": "path",
127241	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127242	//       "required": true,
127243	//       "type": "string"
127244	//     }
127245	//   },
127246	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
127247	//   "request": {
127248	//     "$ref": "ResourceGroupReference"
127249	//   },
127250	//   "response": {
127251	//     "$ref": "BackendServiceGroupHealth"
127252	//   },
127253	//   "scopes": [
127254	//     "https://www.googleapis.com/auth/cloud-platform",
127255	//     "https://www.googleapis.com/auth/compute",
127256	//     "https://www.googleapis.com/auth/compute.readonly"
127257	//   ]
127258	// }
127259
127260}
127261
127262// method id "compute.regionBackendServices.getIamPolicy":
127263
127264type RegionBackendServicesGetIamPolicyCall struct {
127265	s            *Service
127266	project      string
127267	region       string
127268	resource     string
127269	urlParams_   gensupport.URLParams
127270	ifNoneMatch_ string
127271	ctx_         context.Context
127272	header_      http.Header
127273}
127274
127275// GetIamPolicy: Gets the access control policy for a resource. May be
127276// empty if no such policy or resource exists.
127277//
127278// - project: Project ID for this request.
127279// - region: The name of the region for this request.
127280// - resource: Name or id of the resource for this request.
127281func (r *RegionBackendServicesService) GetIamPolicy(project string, region string, resource string) *RegionBackendServicesGetIamPolicyCall {
127282	c := &RegionBackendServicesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127283	c.project = project
127284	c.region = region
127285	c.resource = resource
127286	return c
127287}
127288
127289// OptionsRequestedPolicyVersion sets the optional parameter
127290// "optionsRequestedPolicyVersion": Requested IAM Policy version.
127291func (c *RegionBackendServicesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionBackendServicesGetIamPolicyCall {
127292	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
127293	return c
127294}
127295
127296// Fields allows partial responses to be retrieved. See
127297// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127298// for more information.
127299func (c *RegionBackendServicesGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetIamPolicyCall {
127300	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127301	return c
127302}
127303
127304// IfNoneMatch sets the optional parameter which makes the operation
127305// fail if the object's ETag matches the given value. This is useful for
127306// getting updates only after the object has changed since the last
127307// request. Use googleapi.IsNotModified to check whether the response
127308// error from Do is the result of In-None-Match.
127309func (c *RegionBackendServicesGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetIamPolicyCall {
127310	c.ifNoneMatch_ = entityTag
127311	return c
127312}
127313
127314// Context sets the context to be used in this call's Do method. Any
127315// pending HTTP request will be aborted if the provided context is
127316// canceled.
127317func (c *RegionBackendServicesGetIamPolicyCall) Context(ctx context.Context) *RegionBackendServicesGetIamPolicyCall {
127318	c.ctx_ = ctx
127319	return c
127320}
127321
127322// Header returns an http.Header that can be modified by the caller to
127323// add HTTP headers to the request.
127324func (c *RegionBackendServicesGetIamPolicyCall) Header() http.Header {
127325	if c.header_ == nil {
127326		c.header_ = make(http.Header)
127327	}
127328	return c.header_
127329}
127330
127331func (c *RegionBackendServicesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
127332	reqHeaders := make(http.Header)
127333	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127334	for k, v := range c.header_ {
127335		reqHeaders[k] = v
127336	}
127337	reqHeaders.Set("User-Agent", c.s.userAgent())
127338	if c.ifNoneMatch_ != "" {
127339		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127340	}
127341	var body io.Reader = nil
127342	c.urlParams_.Set("alt", alt)
127343	c.urlParams_.Set("prettyPrint", "false")
127344	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy")
127345	urls += "?" + c.urlParams_.Encode()
127346	req, err := http.NewRequest("GET", urls, body)
127347	if err != nil {
127348		return nil, err
127349	}
127350	req.Header = reqHeaders
127351	googleapi.Expand(req.URL, map[string]string{
127352		"project":  c.project,
127353		"region":   c.region,
127354		"resource": c.resource,
127355	})
127356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127357}
127358
127359// Do executes the "compute.regionBackendServices.getIamPolicy" call.
127360// Exactly one of *Policy or error will be non-nil. Any non-2xx status
127361// code is an error. Response headers are in either
127362// *Policy.ServerResponse.Header or (if a response was returned at all)
127363// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
127364// check whether the returned error was because http.StatusNotModified
127365// was returned.
127366func (c *RegionBackendServicesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
127367	gensupport.SetOptions(c.urlParams_, opts...)
127368	res, err := c.doRequest("json")
127369	if res != nil && res.StatusCode == http.StatusNotModified {
127370		if res.Body != nil {
127371			res.Body.Close()
127372		}
127373		return nil, &googleapi.Error{
127374			Code:   res.StatusCode,
127375			Header: res.Header,
127376		}
127377	}
127378	if err != nil {
127379		return nil, err
127380	}
127381	defer googleapi.CloseBody(res)
127382	if err := googleapi.CheckResponse(res); err != nil {
127383		return nil, err
127384	}
127385	ret := &Policy{
127386		ServerResponse: googleapi.ServerResponse{
127387			Header:         res.Header,
127388			HTTPStatusCode: res.StatusCode,
127389		},
127390	}
127391	target := &ret
127392	if err := gensupport.DecodeResponse(target, res); err != nil {
127393		return nil, err
127394	}
127395	return ret, nil
127396	// {
127397	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
127398	//   "httpMethod": "GET",
127399	//   "id": "compute.regionBackendServices.getIamPolicy",
127400	//   "parameterOrder": [
127401	//     "project",
127402	//     "region",
127403	//     "resource"
127404	//   ],
127405	//   "parameters": {
127406	//     "optionsRequestedPolicyVersion": {
127407	//       "description": "Requested IAM Policy version.",
127408	//       "format": "int32",
127409	//       "location": "query",
127410	//       "type": "integer"
127411	//     },
127412	//     "project": {
127413	//       "description": "Project ID for this request.",
127414	//       "location": "path",
127415	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127416	//       "required": true,
127417	//       "type": "string"
127418	//     },
127419	//     "region": {
127420	//       "description": "The name of the region for this request.",
127421	//       "location": "path",
127422	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127423	//       "required": true,
127424	//       "type": "string"
127425	//     },
127426	//     "resource": {
127427	//       "description": "Name or id of the resource for this request.",
127428	//       "location": "path",
127429	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127430	//       "required": true,
127431	//       "type": "string"
127432	//     }
127433	//   },
127434	//   "path": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy",
127435	//   "response": {
127436	//     "$ref": "Policy"
127437	//   },
127438	//   "scopes": [
127439	//     "https://www.googleapis.com/auth/cloud-platform",
127440	//     "https://www.googleapis.com/auth/compute",
127441	//     "https://www.googleapis.com/auth/compute.readonly"
127442	//   ]
127443	// }
127444
127445}
127446
127447// method id "compute.regionBackendServices.insert":
127448
127449type RegionBackendServicesInsertCall struct {
127450	s              *Service
127451	project        string
127452	region         string
127453	backendservice *BackendService
127454	urlParams_     gensupport.URLParams
127455	ctx_           context.Context
127456	header_        http.Header
127457}
127458
127459// Insert: Creates a regional BackendService resource in the specified
127460// project using the data included in the request. For more information,
127461// see  Backend services overview.
127462//
127463// - project: Project ID for this request.
127464// - region: Name of the region scoping this request.
127465func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
127466	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127467	c.project = project
127468	c.region = region
127469	c.backendservice = backendservice
127470	return c
127471}
127472
127473// RequestId sets the optional parameter "requestId": An optional
127474// request ID to identify requests. Specify a unique request ID so that
127475// if you must retry your request, the server will know to ignore the
127476// request if it has already been completed.
127477//
127478// For example, consider a situation where you make an initial request
127479// and the request times out. If you make the request again with the
127480// same request ID, the server can check if original operation with the
127481// same request ID was received, and if so, will ignore the second
127482// request. This prevents clients from accidentally creating duplicate
127483// commitments.
127484//
127485// The request ID must be a valid UUID with the exception that zero UUID
127486// is not supported (00000000-0000-0000-0000-000000000000).
127487func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
127488	c.urlParams_.Set("requestId", requestId)
127489	return c
127490}
127491
127492// Fields allows partial responses to be retrieved. See
127493// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127494// for more information.
127495func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
127496	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127497	return c
127498}
127499
127500// Context sets the context to be used in this call's Do method. Any
127501// pending HTTP request will be aborted if the provided context is
127502// canceled.
127503func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
127504	c.ctx_ = ctx
127505	return c
127506}
127507
127508// Header returns an http.Header that can be modified by the caller to
127509// add HTTP headers to the request.
127510func (c *RegionBackendServicesInsertCall) Header() http.Header {
127511	if c.header_ == nil {
127512		c.header_ = make(http.Header)
127513	}
127514	return c.header_
127515}
127516
127517func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
127518	reqHeaders := make(http.Header)
127519	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127520	for k, v := range c.header_ {
127521		reqHeaders[k] = v
127522	}
127523	reqHeaders.Set("User-Agent", c.s.userAgent())
127524	var body io.Reader = nil
127525	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
127526	if err != nil {
127527		return nil, err
127528	}
127529	reqHeaders.Set("Content-Type", "application/json")
127530	c.urlParams_.Set("alt", alt)
127531	c.urlParams_.Set("prettyPrint", "false")
127532	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
127533	urls += "?" + c.urlParams_.Encode()
127534	req, err := http.NewRequest("POST", urls, body)
127535	if err != nil {
127536		return nil, err
127537	}
127538	req.Header = reqHeaders
127539	googleapi.Expand(req.URL, map[string]string{
127540		"project": c.project,
127541		"region":  c.region,
127542	})
127543	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127544}
127545
127546// Do executes the "compute.regionBackendServices.insert" call.
127547// Exactly one of *Operation or error will be non-nil. Any non-2xx
127548// status code is an error. Response headers are in either
127549// *Operation.ServerResponse.Header or (if a response was returned at
127550// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127551// to check whether the returned error was because
127552// http.StatusNotModified was returned.
127553func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127554	gensupport.SetOptions(c.urlParams_, opts...)
127555	res, err := c.doRequest("json")
127556	if res != nil && res.StatusCode == http.StatusNotModified {
127557		if res.Body != nil {
127558			res.Body.Close()
127559		}
127560		return nil, &googleapi.Error{
127561			Code:   res.StatusCode,
127562			Header: res.Header,
127563		}
127564	}
127565	if err != nil {
127566		return nil, err
127567	}
127568	defer googleapi.CloseBody(res)
127569	if err := googleapi.CheckResponse(res); err != nil {
127570		return nil, err
127571	}
127572	ret := &Operation{
127573		ServerResponse: googleapi.ServerResponse{
127574			Header:         res.Header,
127575			HTTPStatusCode: res.StatusCode,
127576		},
127577	}
127578	target := &ret
127579	if err := gensupport.DecodeResponse(target, res); err != nil {
127580		return nil, err
127581	}
127582	return ret, nil
127583	// {
127584	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
127585	//   "httpMethod": "POST",
127586	//   "id": "compute.regionBackendServices.insert",
127587	//   "parameterOrder": [
127588	//     "project",
127589	//     "region"
127590	//   ],
127591	//   "parameters": {
127592	//     "project": {
127593	//       "description": "Project ID for this request.",
127594	//       "location": "path",
127595	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127596	//       "required": true,
127597	//       "type": "string"
127598	//     },
127599	//     "region": {
127600	//       "description": "Name of the region scoping this request.",
127601	//       "location": "path",
127602	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127603	//       "required": true,
127604	//       "type": "string"
127605	//     },
127606	//     "requestId": {
127607	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127608	//       "location": "query",
127609	//       "type": "string"
127610	//     }
127611	//   },
127612	//   "path": "projects/{project}/regions/{region}/backendServices",
127613	//   "request": {
127614	//     "$ref": "BackendService"
127615	//   },
127616	//   "response": {
127617	//     "$ref": "Operation"
127618	//   },
127619	//   "scopes": [
127620	//     "https://www.googleapis.com/auth/cloud-platform",
127621	//     "https://www.googleapis.com/auth/compute"
127622	//   ]
127623	// }
127624
127625}
127626
127627// method id "compute.regionBackendServices.list":
127628
127629type RegionBackendServicesListCall struct {
127630	s            *Service
127631	project      string
127632	region       string
127633	urlParams_   gensupport.URLParams
127634	ifNoneMatch_ string
127635	ctx_         context.Context
127636	header_      http.Header
127637}
127638
127639// List: Retrieves the list of regional BackendService resources
127640// available to the specified project in the given region.
127641//
127642// - project: Project ID for this request.
127643// - region: Name of the region scoping this request.
127644func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
127645	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127646	c.project = project
127647	c.region = region
127648	return c
127649}
127650
127651// Filter sets the optional parameter "filter": A filter expression that
127652// filters resources listed in the response. The expression must specify
127653// the field name, a comparison operator, and the value that you want to
127654// use for filtering. The value must be a string, a number, or a
127655// boolean. The comparison operator must be either `=`, `!=`, `>`, or
127656// `<`.
127657//
127658// For example, if you are filtering Compute Engine instances, you can
127659// exclude instances named `example-instance` by specifying `name !=
127660// example-instance`.
127661//
127662// You can also filter nested fields. For example, you could specify
127663// `scheduling.automaticRestart = false` to include instances only if
127664// they are not scheduled for automatic restarts. You can use filtering
127665// on nested fields to filter based on resource labels.
127666//
127667// To filter on multiple expressions, provide each separate expression
127668// within parentheses. For example: ``` (scheduling.automaticRestart =
127669// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
127670// is an `AND` expression. However, you can include `AND` and `OR`
127671// expressions explicitly. For example: ``` (cpuPlatform = "Intel
127672// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
127673// (scheduling.automaticRestart = true) ```
127674func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
127675	c.urlParams_.Set("filter", filter)
127676	return c
127677}
127678
127679// MaxResults sets the optional parameter "maxResults": The maximum
127680// number of results per page that should be returned. If the number of
127681// available results is larger than `maxResults`, Compute Engine returns
127682// a `nextPageToken` that can be used to get the next page of results in
127683// subsequent list requests. Acceptable values are `0` to `500`,
127684// inclusive. (Default: `500`)
127685func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
127686	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127687	return c
127688}
127689
127690// OrderBy sets the optional parameter "orderBy": Sorts list results by
127691// a certain order. By default, results are returned in alphanumerical
127692// order based on the resource name.
127693//
127694// You can also sort results in descending order based on the creation
127695// timestamp using `orderBy="creationTimestamp desc". This sorts
127696// results based on the `creationTimestamp` field in reverse
127697// chronological order (newest result first). Use this to sort resources
127698// like operations so that the newest operation is returned
127699// first.
127700//
127701// Currently, only sorting by `name` or `creationTimestamp desc` is
127702// supported.
127703func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
127704	c.urlParams_.Set("orderBy", orderBy)
127705	return c
127706}
127707
127708// PageToken sets the optional parameter "pageToken": Specifies a page
127709// token to use. Set `pageToken` to the `nextPageToken` returned by a
127710// previous list request to get the next page of results.
127711func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
127712	c.urlParams_.Set("pageToken", pageToken)
127713	return c
127714}
127715
127716// ReturnPartialSuccess sets the optional parameter
127717// "returnPartialSuccess": Opt-in for partial success behavior which
127718// provides partial results in case of failure. The default value is
127719// false.
127720func (c *RegionBackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListCall {
127721	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
127722	return c
127723}
127724
127725// Fields allows partial responses to be retrieved. See
127726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127727// for more information.
127728func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
127729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127730	return c
127731}
127732
127733// IfNoneMatch sets the optional parameter which makes the operation
127734// fail if the object's ETag matches the given value. This is useful for
127735// getting updates only after the object has changed since the last
127736// request. Use googleapi.IsNotModified to check whether the response
127737// error from Do is the result of In-None-Match.
127738func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
127739	c.ifNoneMatch_ = entityTag
127740	return c
127741}
127742
127743// Context sets the context to be used in this call's Do method. Any
127744// pending HTTP request will be aborted if the provided context is
127745// canceled.
127746func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
127747	c.ctx_ = ctx
127748	return c
127749}
127750
127751// Header returns an http.Header that can be modified by the caller to
127752// add HTTP headers to the request.
127753func (c *RegionBackendServicesListCall) Header() http.Header {
127754	if c.header_ == nil {
127755		c.header_ = make(http.Header)
127756	}
127757	return c.header_
127758}
127759
127760func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
127761	reqHeaders := make(http.Header)
127762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127763	for k, v := range c.header_ {
127764		reqHeaders[k] = v
127765	}
127766	reqHeaders.Set("User-Agent", c.s.userAgent())
127767	if c.ifNoneMatch_ != "" {
127768		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127769	}
127770	var body io.Reader = nil
127771	c.urlParams_.Set("alt", alt)
127772	c.urlParams_.Set("prettyPrint", "false")
127773	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
127774	urls += "?" + c.urlParams_.Encode()
127775	req, err := http.NewRequest("GET", urls, body)
127776	if err != nil {
127777		return nil, err
127778	}
127779	req.Header = reqHeaders
127780	googleapi.Expand(req.URL, map[string]string{
127781		"project": c.project,
127782		"region":  c.region,
127783	})
127784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127785}
127786
127787// Do executes the "compute.regionBackendServices.list" call.
127788// Exactly one of *BackendServiceList or error will be non-nil. Any
127789// non-2xx status code is an error. Response headers are in either
127790// *BackendServiceList.ServerResponse.Header or (if a response was
127791// returned at all) in error.(*googleapi.Error).Header. Use
127792// googleapi.IsNotModified to check whether the returned error was
127793// because http.StatusNotModified was returned.
127794func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, 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 := &BackendServiceList{
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": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
127826	//   "httpMethod": "GET",
127827	//   "id": "compute.regionBackendServices.list",
127828	//   "parameterOrder": [
127829	//     "project",
127830	//     "region"
127831	//   ],
127832	//   "parameters": {
127833	//     "filter": {
127834	//       "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) ```",
127835	//       "location": "query",
127836	//       "type": "string"
127837	//     },
127838	//     "maxResults": {
127839	//       "default": "500",
127840	//       "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`)",
127841	//       "format": "uint32",
127842	//       "location": "query",
127843	//       "minimum": "0",
127844	//       "type": "integer"
127845	//     },
127846	//     "orderBy": {
127847	//       "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.",
127848	//       "location": "query",
127849	//       "type": "string"
127850	//     },
127851	//     "pageToken": {
127852	//       "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.",
127853	//       "location": "query",
127854	//       "type": "string"
127855	//     },
127856	//     "project": {
127857	//       "description": "Project ID for this request.",
127858	//       "location": "path",
127859	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127860	//       "required": true,
127861	//       "type": "string"
127862	//     },
127863	//     "region": {
127864	//       "description": "Name of the region scoping this request.",
127865	//       "location": "path",
127866	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127867	//       "required": true,
127868	//       "type": "string"
127869	//     },
127870	//     "returnPartialSuccess": {
127871	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
127872	//       "location": "query",
127873	//       "type": "boolean"
127874	//     }
127875	//   },
127876	//   "path": "projects/{project}/regions/{region}/backendServices",
127877	//   "response": {
127878	//     "$ref": "BackendServiceList"
127879	//   },
127880	//   "scopes": [
127881	//     "https://www.googleapis.com/auth/cloud-platform",
127882	//     "https://www.googleapis.com/auth/compute",
127883	//     "https://www.googleapis.com/auth/compute.readonly"
127884	//   ]
127885	// }
127886
127887}
127888
127889// Pages invokes f for each page of results.
127890// A non-nil error returned from f will halt the iteration.
127891// The provided context supersedes any context provided to the Context method.
127892func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
127893	c.ctx_ = ctx
127894	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127895	for {
127896		x, err := c.Do()
127897		if err != nil {
127898			return err
127899		}
127900		if err := f(x); err != nil {
127901			return err
127902		}
127903		if x.NextPageToken == "" {
127904			return nil
127905		}
127906		c.PageToken(x.NextPageToken)
127907	}
127908}
127909
127910// method id "compute.regionBackendServices.patch":
127911
127912type RegionBackendServicesPatchCall struct {
127913	s              *Service
127914	project        string
127915	region         string
127916	backendService string
127917	backendservice *BackendService
127918	urlParams_     gensupport.URLParams
127919	ctx_           context.Context
127920	header_        http.Header
127921}
127922
127923// Patch: Updates the specified regional BackendService resource with
127924// the data included in the request. For more information, see
127925// Understanding backend services This method supports PATCH semantics
127926// and uses the JSON merge patch format and processing rules.
127927//
127928// - backendService: Name of the BackendService resource to patch.
127929// - project: Project ID for this request.
127930// - region: Name of the region scoping this request.
127931func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
127932	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127933	c.project = project
127934	c.region = region
127935	c.backendService = backendService
127936	c.backendservice = backendservice
127937	return c
127938}
127939
127940// RequestId sets the optional parameter "requestId": An optional
127941// request ID to identify requests. Specify a unique request ID so that
127942// if you must retry your request, the server will know to ignore the
127943// request if it has already been completed.
127944//
127945// For example, consider a situation where you make an initial request
127946// and the request times out. If you make the request again with the
127947// same request ID, the server can check if original operation with the
127948// same request ID was received, and if so, will ignore the second
127949// request. This prevents clients from accidentally creating duplicate
127950// commitments.
127951//
127952// The request ID must be a valid UUID with the exception that zero UUID
127953// is not supported (00000000-0000-0000-0000-000000000000).
127954func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
127955	c.urlParams_.Set("requestId", requestId)
127956	return c
127957}
127958
127959// Fields allows partial responses to be retrieved. See
127960// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127961// for more information.
127962func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
127963	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127964	return c
127965}
127966
127967// Context sets the context to be used in this call's Do method. Any
127968// pending HTTP request will be aborted if the provided context is
127969// canceled.
127970func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
127971	c.ctx_ = ctx
127972	return c
127973}
127974
127975// Header returns an http.Header that can be modified by the caller to
127976// add HTTP headers to the request.
127977func (c *RegionBackendServicesPatchCall) Header() http.Header {
127978	if c.header_ == nil {
127979		c.header_ = make(http.Header)
127980	}
127981	return c.header_
127982}
127983
127984func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
127985	reqHeaders := make(http.Header)
127986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127987	for k, v := range c.header_ {
127988		reqHeaders[k] = v
127989	}
127990	reqHeaders.Set("User-Agent", c.s.userAgent())
127991	var body io.Reader = nil
127992	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
127993	if err != nil {
127994		return nil, err
127995	}
127996	reqHeaders.Set("Content-Type", "application/json")
127997	c.urlParams_.Set("alt", alt)
127998	c.urlParams_.Set("prettyPrint", "false")
127999	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
128000	urls += "?" + c.urlParams_.Encode()
128001	req, err := http.NewRequest("PATCH", urls, body)
128002	if err != nil {
128003		return nil, err
128004	}
128005	req.Header = reqHeaders
128006	googleapi.Expand(req.URL, map[string]string{
128007		"project":        c.project,
128008		"region":         c.region,
128009		"backendService": c.backendService,
128010	})
128011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128012}
128013
128014// Do executes the "compute.regionBackendServices.patch" call.
128015// Exactly one of *Operation or error will be non-nil. Any non-2xx
128016// status code is an error. Response headers are in either
128017// *Operation.ServerResponse.Header or (if a response was returned at
128018// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128019// to check whether the returned error was because
128020// http.StatusNotModified was returned.
128021func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128022	gensupport.SetOptions(c.urlParams_, opts...)
128023	res, err := c.doRequest("json")
128024	if res != nil && res.StatusCode == http.StatusNotModified {
128025		if res.Body != nil {
128026			res.Body.Close()
128027		}
128028		return nil, &googleapi.Error{
128029			Code:   res.StatusCode,
128030			Header: res.Header,
128031		}
128032	}
128033	if err != nil {
128034		return nil, err
128035	}
128036	defer googleapi.CloseBody(res)
128037	if err := googleapi.CheckResponse(res); err != nil {
128038		return nil, err
128039	}
128040	ret := &Operation{
128041		ServerResponse: googleapi.ServerResponse{
128042			Header:         res.Header,
128043			HTTPStatusCode: res.StatusCode,
128044		},
128045	}
128046	target := &ret
128047	if err := gensupport.DecodeResponse(target, res); err != nil {
128048		return nil, err
128049	}
128050	return ret, nil
128051	// {
128052	//   "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.",
128053	//   "httpMethod": "PATCH",
128054	//   "id": "compute.regionBackendServices.patch",
128055	//   "parameterOrder": [
128056	//     "project",
128057	//     "region",
128058	//     "backendService"
128059	//   ],
128060	//   "parameters": {
128061	//     "backendService": {
128062	//       "description": "Name of the BackendService resource to patch.",
128063	//       "location": "path",
128064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128065	//       "required": true,
128066	//       "type": "string"
128067	//     },
128068	//     "project": {
128069	//       "description": "Project ID for this request.",
128070	//       "location": "path",
128071	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128072	//       "required": true,
128073	//       "type": "string"
128074	//     },
128075	//     "region": {
128076	//       "description": "Name of the region scoping this request.",
128077	//       "location": "path",
128078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128079	//       "required": true,
128080	//       "type": "string"
128081	//     },
128082	//     "requestId": {
128083	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128084	//       "location": "query",
128085	//       "type": "string"
128086	//     }
128087	//   },
128088	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
128089	//   "request": {
128090	//     "$ref": "BackendService"
128091	//   },
128092	//   "response": {
128093	//     "$ref": "Operation"
128094	//   },
128095	//   "scopes": [
128096	//     "https://www.googleapis.com/auth/cloud-platform",
128097	//     "https://www.googleapis.com/auth/compute"
128098	//   ]
128099	// }
128100
128101}
128102
128103// method id "compute.regionBackendServices.setIamPolicy":
128104
128105type RegionBackendServicesSetIamPolicyCall struct {
128106	s                      *Service
128107	project                string
128108	region                 string
128109	resource               string
128110	regionsetpolicyrequest *RegionSetPolicyRequest
128111	urlParams_             gensupport.URLParams
128112	ctx_                   context.Context
128113	header_                http.Header
128114}
128115
128116// SetIamPolicy: Sets the access control policy on the specified
128117// resource. Replaces any existing policy.
128118//
128119// - project: Project ID for this request.
128120// - region: The name of the region for this request.
128121// - resource: Name or id of the resource for this request.
128122func (r *RegionBackendServicesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionBackendServicesSetIamPolicyCall {
128123	c := &RegionBackendServicesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128124	c.project = project
128125	c.region = region
128126	c.resource = resource
128127	c.regionsetpolicyrequest = regionsetpolicyrequest
128128	return c
128129}
128130
128131// Fields allows partial responses to be retrieved. See
128132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128133// for more information.
128134func (c *RegionBackendServicesSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionBackendServicesSetIamPolicyCall {
128135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128136	return c
128137}
128138
128139// Context sets the context to be used in this call's Do method. Any
128140// pending HTTP request will be aborted if the provided context is
128141// canceled.
128142func (c *RegionBackendServicesSetIamPolicyCall) Context(ctx context.Context) *RegionBackendServicesSetIamPolicyCall {
128143	c.ctx_ = ctx
128144	return c
128145}
128146
128147// Header returns an http.Header that can be modified by the caller to
128148// add HTTP headers to the request.
128149func (c *RegionBackendServicesSetIamPolicyCall) Header() http.Header {
128150	if c.header_ == nil {
128151		c.header_ = make(http.Header)
128152	}
128153	return c.header_
128154}
128155
128156func (c *RegionBackendServicesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
128157	reqHeaders := make(http.Header)
128158	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128159	for k, v := range c.header_ {
128160		reqHeaders[k] = v
128161	}
128162	reqHeaders.Set("User-Agent", c.s.userAgent())
128163	var body io.Reader = nil
128164	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
128165	if err != nil {
128166		return nil, err
128167	}
128168	reqHeaders.Set("Content-Type", "application/json")
128169	c.urlParams_.Set("alt", alt)
128170	c.urlParams_.Set("prettyPrint", "false")
128171	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy")
128172	urls += "?" + c.urlParams_.Encode()
128173	req, err := http.NewRequest("POST", urls, body)
128174	if err != nil {
128175		return nil, err
128176	}
128177	req.Header = reqHeaders
128178	googleapi.Expand(req.URL, map[string]string{
128179		"project":  c.project,
128180		"region":   c.region,
128181		"resource": c.resource,
128182	})
128183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128184}
128185
128186// Do executes the "compute.regionBackendServices.setIamPolicy" call.
128187// Exactly one of *Policy or error will be non-nil. Any non-2xx status
128188// code is an error. Response headers are in either
128189// *Policy.ServerResponse.Header or (if a response was returned at all)
128190// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
128191// check whether the returned error was because http.StatusNotModified
128192// was returned.
128193func (c *RegionBackendServicesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
128194	gensupport.SetOptions(c.urlParams_, opts...)
128195	res, err := c.doRequest("json")
128196	if res != nil && res.StatusCode == http.StatusNotModified {
128197		if res.Body != nil {
128198			res.Body.Close()
128199		}
128200		return nil, &googleapi.Error{
128201			Code:   res.StatusCode,
128202			Header: res.Header,
128203		}
128204	}
128205	if err != nil {
128206		return nil, err
128207	}
128208	defer googleapi.CloseBody(res)
128209	if err := googleapi.CheckResponse(res); err != nil {
128210		return nil, err
128211	}
128212	ret := &Policy{
128213		ServerResponse: googleapi.ServerResponse{
128214			Header:         res.Header,
128215			HTTPStatusCode: res.StatusCode,
128216		},
128217	}
128218	target := &ret
128219	if err := gensupport.DecodeResponse(target, res); err != nil {
128220		return nil, err
128221	}
128222	return ret, nil
128223	// {
128224	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
128225	//   "httpMethod": "POST",
128226	//   "id": "compute.regionBackendServices.setIamPolicy",
128227	//   "parameterOrder": [
128228	//     "project",
128229	//     "region",
128230	//     "resource"
128231	//   ],
128232	//   "parameters": {
128233	//     "project": {
128234	//       "description": "Project ID for this request.",
128235	//       "location": "path",
128236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128237	//       "required": true,
128238	//       "type": "string"
128239	//     },
128240	//     "region": {
128241	//       "description": "The name of the region for this request.",
128242	//       "location": "path",
128243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128244	//       "required": true,
128245	//       "type": "string"
128246	//     },
128247	//     "resource": {
128248	//       "description": "Name or id of the resource for this request.",
128249	//       "location": "path",
128250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128251	//       "required": true,
128252	//       "type": "string"
128253	//     }
128254	//   },
128255	//   "path": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy",
128256	//   "request": {
128257	//     "$ref": "RegionSetPolicyRequest"
128258	//   },
128259	//   "response": {
128260	//     "$ref": "Policy"
128261	//   },
128262	//   "scopes": [
128263	//     "https://www.googleapis.com/auth/cloud-platform",
128264	//     "https://www.googleapis.com/auth/compute"
128265	//   ]
128266	// }
128267
128268}
128269
128270// method id "compute.regionBackendServices.testIamPermissions":
128271
128272type RegionBackendServicesTestIamPermissionsCall struct {
128273	s                      *Service
128274	project                string
128275	region                 string
128276	resource               string
128277	testpermissionsrequest *TestPermissionsRequest
128278	urlParams_             gensupport.URLParams
128279	ctx_                   context.Context
128280	header_                http.Header
128281}
128282
128283// TestIamPermissions: Returns permissions that a caller has on the
128284// specified resource.
128285//
128286// - project: Project ID for this request.
128287// - region: The name of the region for this request.
128288// - resource: Name or id of the resource for this request.
128289func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall {
128290	c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128291	c.project = project
128292	c.region = region
128293	c.resource = resource
128294	c.testpermissionsrequest = testpermissionsrequest
128295	return c
128296}
128297
128298// Fields allows partial responses to be retrieved. See
128299// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128300// for more information.
128301func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall {
128302	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128303	return c
128304}
128305
128306// Context sets the context to be used in this call's Do method. Any
128307// pending HTTP request will be aborted if the provided context is
128308// canceled.
128309func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall {
128310	c.ctx_ = ctx
128311	return c
128312}
128313
128314// Header returns an http.Header that can be modified by the caller to
128315// add HTTP headers to the request.
128316func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header {
128317	if c.header_ == nil {
128318		c.header_ = make(http.Header)
128319	}
128320	return c.header_
128321}
128322
128323func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
128324	reqHeaders := make(http.Header)
128325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128326	for k, v := range c.header_ {
128327		reqHeaders[k] = v
128328	}
128329	reqHeaders.Set("User-Agent", c.s.userAgent())
128330	var body io.Reader = nil
128331	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
128332	if err != nil {
128333		return nil, err
128334	}
128335	reqHeaders.Set("Content-Type", "application/json")
128336	c.urlParams_.Set("alt", alt)
128337	c.urlParams_.Set("prettyPrint", "false")
128338	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions")
128339	urls += "?" + c.urlParams_.Encode()
128340	req, err := http.NewRequest("POST", urls, body)
128341	if err != nil {
128342		return nil, err
128343	}
128344	req.Header = reqHeaders
128345	googleapi.Expand(req.URL, map[string]string{
128346		"project":  c.project,
128347		"region":   c.region,
128348		"resource": c.resource,
128349	})
128350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128351}
128352
128353// Do executes the "compute.regionBackendServices.testIamPermissions" call.
128354// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
128355// non-2xx status code is an error. Response headers are in either
128356// *TestPermissionsResponse.ServerResponse.Header or (if a response was
128357// returned at all) in error.(*googleapi.Error).Header. Use
128358// googleapi.IsNotModified to check whether the returned error was
128359// because http.StatusNotModified was returned.
128360func (c *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
128361	gensupport.SetOptions(c.urlParams_, opts...)
128362	res, err := c.doRequest("json")
128363	if res != nil && res.StatusCode == http.StatusNotModified {
128364		if res.Body != nil {
128365			res.Body.Close()
128366		}
128367		return nil, &googleapi.Error{
128368			Code:   res.StatusCode,
128369			Header: res.Header,
128370		}
128371	}
128372	if err != nil {
128373		return nil, err
128374	}
128375	defer googleapi.CloseBody(res)
128376	if err := googleapi.CheckResponse(res); err != nil {
128377		return nil, err
128378	}
128379	ret := &TestPermissionsResponse{
128380		ServerResponse: googleapi.ServerResponse{
128381			Header:         res.Header,
128382			HTTPStatusCode: res.StatusCode,
128383		},
128384	}
128385	target := &ret
128386	if err := gensupport.DecodeResponse(target, res); err != nil {
128387		return nil, err
128388	}
128389	return ret, nil
128390	// {
128391	//   "description": "Returns permissions that a caller has on the specified resource.",
128392	//   "httpMethod": "POST",
128393	//   "id": "compute.regionBackendServices.testIamPermissions",
128394	//   "parameterOrder": [
128395	//     "project",
128396	//     "region",
128397	//     "resource"
128398	//   ],
128399	//   "parameters": {
128400	//     "project": {
128401	//       "description": "Project ID for this request.",
128402	//       "location": "path",
128403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128404	//       "required": true,
128405	//       "type": "string"
128406	//     },
128407	//     "region": {
128408	//       "description": "The name of the region for this request.",
128409	//       "location": "path",
128410	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128411	//       "required": true,
128412	//       "type": "string"
128413	//     },
128414	//     "resource": {
128415	//       "description": "Name or id of the resource for this request.",
128416	//       "location": "path",
128417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128418	//       "required": true,
128419	//       "type": "string"
128420	//     }
128421	//   },
128422	//   "path": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
128423	//   "request": {
128424	//     "$ref": "TestPermissionsRequest"
128425	//   },
128426	//   "response": {
128427	//     "$ref": "TestPermissionsResponse"
128428	//   },
128429	//   "scopes": [
128430	//     "https://www.googleapis.com/auth/cloud-platform",
128431	//     "https://www.googleapis.com/auth/compute",
128432	//     "https://www.googleapis.com/auth/compute.readonly"
128433	//   ]
128434	// }
128435
128436}
128437
128438// method id "compute.regionBackendServices.update":
128439
128440type RegionBackendServicesUpdateCall struct {
128441	s              *Service
128442	project        string
128443	region         string
128444	backendService string
128445	backendservice *BackendService
128446	urlParams_     gensupport.URLParams
128447	ctx_           context.Context
128448	header_        http.Header
128449}
128450
128451// Update: Updates the specified regional BackendService resource with
128452// the data included in the request. For more information, see  Backend
128453// services overview.
128454//
128455// - backendService: Name of the BackendService resource to update.
128456// - project: Project ID for this request.
128457// - region: Name of the region scoping this request.
128458func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
128459	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128460	c.project = project
128461	c.region = region
128462	c.backendService = backendService
128463	c.backendservice = backendservice
128464	return c
128465}
128466
128467// RequestId sets the optional parameter "requestId": An optional
128468// request ID to identify requests. Specify a unique request ID so that
128469// if you must retry your request, the server will know to ignore the
128470// request if it has already been completed.
128471//
128472// For example, consider a situation where you make an initial request
128473// and the request times out. If you make the request again with the
128474// same request ID, the server can check if original operation with the
128475// same request ID was received, and if so, will ignore the second
128476// request. This prevents clients from accidentally creating duplicate
128477// commitments.
128478//
128479// The request ID must be a valid UUID with the exception that zero UUID
128480// is not supported (00000000-0000-0000-0000-000000000000).
128481func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
128482	c.urlParams_.Set("requestId", requestId)
128483	return c
128484}
128485
128486// Fields allows partial responses to be retrieved. See
128487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128488// for more information.
128489func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
128490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128491	return c
128492}
128493
128494// Context sets the context to be used in this call's Do method. Any
128495// pending HTTP request will be aborted if the provided context is
128496// canceled.
128497func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
128498	c.ctx_ = ctx
128499	return c
128500}
128501
128502// Header returns an http.Header that can be modified by the caller to
128503// add HTTP headers to the request.
128504func (c *RegionBackendServicesUpdateCall) Header() http.Header {
128505	if c.header_ == nil {
128506		c.header_ = make(http.Header)
128507	}
128508	return c.header_
128509}
128510
128511func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
128512	reqHeaders := make(http.Header)
128513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128514	for k, v := range c.header_ {
128515		reqHeaders[k] = v
128516	}
128517	reqHeaders.Set("User-Agent", c.s.userAgent())
128518	var body io.Reader = nil
128519	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
128520	if err != nil {
128521		return nil, err
128522	}
128523	reqHeaders.Set("Content-Type", "application/json")
128524	c.urlParams_.Set("alt", alt)
128525	c.urlParams_.Set("prettyPrint", "false")
128526	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
128527	urls += "?" + c.urlParams_.Encode()
128528	req, err := http.NewRequest("PUT", urls, body)
128529	if err != nil {
128530		return nil, err
128531	}
128532	req.Header = reqHeaders
128533	googleapi.Expand(req.URL, map[string]string{
128534		"project":        c.project,
128535		"region":         c.region,
128536		"backendService": c.backendService,
128537	})
128538	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128539}
128540
128541// Do executes the "compute.regionBackendServices.update" call.
128542// Exactly one of *Operation or error will be non-nil. Any non-2xx
128543// status code is an error. Response headers are in either
128544// *Operation.ServerResponse.Header or (if a response was returned at
128545// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128546// to check whether the returned error was because
128547// http.StatusNotModified was returned.
128548func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128549	gensupport.SetOptions(c.urlParams_, opts...)
128550	res, err := c.doRequest("json")
128551	if res != nil && res.StatusCode == http.StatusNotModified {
128552		if res.Body != nil {
128553			res.Body.Close()
128554		}
128555		return nil, &googleapi.Error{
128556			Code:   res.StatusCode,
128557			Header: res.Header,
128558		}
128559	}
128560	if err != nil {
128561		return nil, err
128562	}
128563	defer googleapi.CloseBody(res)
128564	if err := googleapi.CheckResponse(res); err != nil {
128565		return nil, err
128566	}
128567	ret := &Operation{
128568		ServerResponse: googleapi.ServerResponse{
128569			Header:         res.Header,
128570			HTTPStatusCode: res.StatusCode,
128571		},
128572	}
128573	target := &ret
128574	if err := gensupport.DecodeResponse(target, res); err != nil {
128575		return nil, err
128576	}
128577	return ret, nil
128578	// {
128579	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see  Backend services overview.",
128580	//   "httpMethod": "PUT",
128581	//   "id": "compute.regionBackendServices.update",
128582	//   "parameterOrder": [
128583	//     "project",
128584	//     "region",
128585	//     "backendService"
128586	//   ],
128587	//   "parameters": {
128588	//     "backendService": {
128589	//       "description": "Name of the BackendService resource to update.",
128590	//       "location": "path",
128591	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128592	//       "required": true,
128593	//       "type": "string"
128594	//     },
128595	//     "project": {
128596	//       "description": "Project ID for this request.",
128597	//       "location": "path",
128598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128599	//       "required": true,
128600	//       "type": "string"
128601	//     },
128602	//     "region": {
128603	//       "description": "Name of the region scoping this request.",
128604	//       "location": "path",
128605	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128606	//       "required": true,
128607	//       "type": "string"
128608	//     },
128609	//     "requestId": {
128610	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128611	//       "location": "query",
128612	//       "type": "string"
128613	//     }
128614	//   },
128615	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
128616	//   "request": {
128617	//     "$ref": "BackendService"
128618	//   },
128619	//   "response": {
128620	//     "$ref": "Operation"
128621	//   },
128622	//   "scopes": [
128623	//     "https://www.googleapis.com/auth/cloud-platform",
128624	//     "https://www.googleapis.com/auth/compute"
128625	//   ]
128626	// }
128627
128628}
128629
128630// method id "compute.regionCommitments.aggregatedList":
128631
128632type RegionCommitmentsAggregatedListCall struct {
128633	s            *Service
128634	project      string
128635	urlParams_   gensupport.URLParams
128636	ifNoneMatch_ string
128637	ctx_         context.Context
128638	header_      http.Header
128639}
128640
128641// AggregatedList: Retrieves an aggregated list of commitments.
128642//
128643// - project: Project ID for this request.
128644func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
128645	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128646	c.project = project
128647	return c
128648}
128649
128650// Filter sets the optional parameter "filter": A filter expression that
128651// filters resources listed in the response. The expression must specify
128652// the field name, a comparison operator, and the value that you want to
128653// use for filtering. The value must be a string, a number, or a
128654// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128655// `<`.
128656//
128657// For example, if you are filtering Compute Engine instances, you can
128658// exclude instances named `example-instance` by specifying `name !=
128659// example-instance`.
128660//
128661// You can also filter nested fields. For example, you could specify
128662// `scheduling.automaticRestart = false` to include instances only if
128663// they are not scheduled for automatic restarts. You can use filtering
128664// on nested fields to filter based on resource labels.
128665//
128666// To filter on multiple expressions, provide each separate expression
128667// within parentheses. For example: ``` (scheduling.automaticRestart =
128668// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
128669// is an `AND` expression. However, you can include `AND` and `OR`
128670// expressions explicitly. For example: ``` (cpuPlatform = "Intel
128671// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
128672// (scheduling.automaticRestart = true) ```
128673func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
128674	c.urlParams_.Set("filter", filter)
128675	return c
128676}
128677
128678// IncludeAllScopes sets the optional parameter "includeAllScopes":
128679// Indicates whether every visible scope for each scope type (zone,
128680// region, global) should be included in the response. For new resource
128681// types added after this field, the flag has no effect as new resource
128682// types will always include every visible scope for each scope type in
128683// response. For resource types which predate this field, if this flag
128684// is omitted or false, only scopes of the scope types where the
128685// resource type is expected to be found will be included.
128686func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
128687	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
128688	return c
128689}
128690
128691// MaxResults sets the optional parameter "maxResults": The maximum
128692// number of results per page that should be returned. If the number of
128693// available results is larger than `maxResults`, Compute Engine returns
128694// a `nextPageToken` that can be used to get the next page of results in
128695// subsequent list requests. Acceptable values are `0` to `500`,
128696// inclusive. (Default: `500`)
128697func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
128698	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128699	return c
128700}
128701
128702// OrderBy sets the optional parameter "orderBy": Sorts list results by
128703// a certain order. By default, results are returned in alphanumerical
128704// order based on the resource name.
128705//
128706// You can also sort results in descending order based on the creation
128707// timestamp using `orderBy="creationTimestamp desc". This sorts
128708// results based on the `creationTimestamp` field in reverse
128709// chronological order (newest result first). Use this to sort resources
128710// like operations so that the newest operation is returned
128711// first.
128712//
128713// Currently, only sorting by `name` or `creationTimestamp desc` is
128714// supported.
128715func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
128716	c.urlParams_.Set("orderBy", orderBy)
128717	return c
128718}
128719
128720// PageToken sets the optional parameter "pageToken": Specifies a page
128721// token to use. Set `pageToken` to the `nextPageToken` returned by a
128722// previous list request to get the next page of results.
128723func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
128724	c.urlParams_.Set("pageToken", pageToken)
128725	return c
128726}
128727
128728// ReturnPartialSuccess sets the optional parameter
128729// "returnPartialSuccess": Opt-in for partial success behavior which
128730// provides partial results in case of failure. The default value is
128731// false.
128732func (c *RegionCommitmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsAggregatedListCall {
128733	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
128734	return c
128735}
128736
128737// Fields allows partial responses to be retrieved. See
128738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128739// for more information.
128740func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
128741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128742	return c
128743}
128744
128745// IfNoneMatch sets the optional parameter which makes the operation
128746// fail if the object's ETag matches the given value. This is useful for
128747// getting updates only after the object has changed since the last
128748// request. Use googleapi.IsNotModified to check whether the response
128749// error from Do is the result of In-None-Match.
128750func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
128751	c.ifNoneMatch_ = entityTag
128752	return c
128753}
128754
128755// Context sets the context to be used in this call's Do method. Any
128756// pending HTTP request will be aborted if the provided context is
128757// canceled.
128758func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
128759	c.ctx_ = ctx
128760	return c
128761}
128762
128763// Header returns an http.Header that can be modified by the caller to
128764// add HTTP headers to the request.
128765func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
128766	if c.header_ == nil {
128767		c.header_ = make(http.Header)
128768	}
128769	return c.header_
128770}
128771
128772func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
128773	reqHeaders := make(http.Header)
128774	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128775	for k, v := range c.header_ {
128776		reqHeaders[k] = v
128777	}
128778	reqHeaders.Set("User-Agent", c.s.userAgent())
128779	if c.ifNoneMatch_ != "" {
128780		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128781	}
128782	var body io.Reader = nil
128783	c.urlParams_.Set("alt", alt)
128784	c.urlParams_.Set("prettyPrint", "false")
128785	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/commitments")
128786	urls += "?" + c.urlParams_.Encode()
128787	req, err := http.NewRequest("GET", urls, body)
128788	if err != nil {
128789		return nil, err
128790	}
128791	req.Header = reqHeaders
128792	googleapi.Expand(req.URL, map[string]string{
128793		"project": c.project,
128794	})
128795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128796}
128797
128798// Do executes the "compute.regionCommitments.aggregatedList" call.
128799// Exactly one of *CommitmentAggregatedList or error will be non-nil.
128800// Any non-2xx status code is an error. Response headers are in either
128801// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
128802// returned at all) in error.(*googleapi.Error).Header. Use
128803// googleapi.IsNotModified to check whether the returned error was
128804// because http.StatusNotModified was returned.
128805func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
128806	gensupport.SetOptions(c.urlParams_, opts...)
128807	res, err := c.doRequest("json")
128808	if res != nil && res.StatusCode == http.StatusNotModified {
128809		if res.Body != nil {
128810			res.Body.Close()
128811		}
128812		return nil, &googleapi.Error{
128813			Code:   res.StatusCode,
128814			Header: res.Header,
128815		}
128816	}
128817	if err != nil {
128818		return nil, err
128819	}
128820	defer googleapi.CloseBody(res)
128821	if err := googleapi.CheckResponse(res); err != nil {
128822		return nil, err
128823	}
128824	ret := &CommitmentAggregatedList{
128825		ServerResponse: googleapi.ServerResponse{
128826			Header:         res.Header,
128827			HTTPStatusCode: res.StatusCode,
128828		},
128829	}
128830	target := &ret
128831	if err := gensupport.DecodeResponse(target, res); err != nil {
128832		return nil, err
128833	}
128834	return ret, nil
128835	// {
128836	//   "description": "Retrieves an aggregated list of commitments.",
128837	//   "httpMethod": "GET",
128838	//   "id": "compute.regionCommitments.aggregatedList",
128839	//   "parameterOrder": [
128840	//     "project"
128841	//   ],
128842	//   "parameters": {
128843	//     "filter": {
128844	//       "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) ```",
128845	//       "location": "query",
128846	//       "type": "string"
128847	//     },
128848	//     "includeAllScopes": {
128849	//       "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.",
128850	//       "location": "query",
128851	//       "type": "boolean"
128852	//     },
128853	//     "maxResults": {
128854	//       "default": "500",
128855	//       "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`)",
128856	//       "format": "uint32",
128857	//       "location": "query",
128858	//       "minimum": "0",
128859	//       "type": "integer"
128860	//     },
128861	//     "orderBy": {
128862	//       "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.",
128863	//       "location": "query",
128864	//       "type": "string"
128865	//     },
128866	//     "pageToken": {
128867	//       "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.",
128868	//       "location": "query",
128869	//       "type": "string"
128870	//     },
128871	//     "project": {
128872	//       "description": "Project ID for this request.",
128873	//       "location": "path",
128874	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128875	//       "required": true,
128876	//       "type": "string"
128877	//     },
128878	//     "returnPartialSuccess": {
128879	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
128880	//       "location": "query",
128881	//       "type": "boolean"
128882	//     }
128883	//   },
128884	//   "path": "projects/{project}/aggregated/commitments",
128885	//   "response": {
128886	//     "$ref": "CommitmentAggregatedList"
128887	//   },
128888	//   "scopes": [
128889	//     "https://www.googleapis.com/auth/cloud-platform",
128890	//     "https://www.googleapis.com/auth/compute",
128891	//     "https://www.googleapis.com/auth/compute.readonly"
128892	//   ]
128893	// }
128894
128895}
128896
128897// Pages invokes f for each page of results.
128898// A non-nil error returned from f will halt the iteration.
128899// The provided context supersedes any context provided to the Context method.
128900func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
128901	c.ctx_ = ctx
128902	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128903	for {
128904		x, err := c.Do()
128905		if err != nil {
128906			return err
128907		}
128908		if err := f(x); err != nil {
128909			return err
128910		}
128911		if x.NextPageToken == "" {
128912			return nil
128913		}
128914		c.PageToken(x.NextPageToken)
128915	}
128916}
128917
128918// method id "compute.regionCommitments.get":
128919
128920type RegionCommitmentsGetCall struct {
128921	s            *Service
128922	project      string
128923	region       string
128924	commitment   string
128925	urlParams_   gensupport.URLParams
128926	ifNoneMatch_ string
128927	ctx_         context.Context
128928	header_      http.Header
128929}
128930
128931// Get: Returns the specified commitment resource. Gets a list of
128932// available commitments by making a list() request.
128933//
128934// - commitment: Name of the commitment to return.
128935// - project: Project ID for this request.
128936// - region: Name of the region for this request.
128937func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
128938	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128939	c.project = project
128940	c.region = region
128941	c.commitment = commitment
128942	return c
128943}
128944
128945// Fields allows partial responses to be retrieved. See
128946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128947// for more information.
128948func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
128949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128950	return c
128951}
128952
128953// IfNoneMatch sets the optional parameter which makes the operation
128954// fail if the object's ETag matches the given value. This is useful for
128955// getting updates only after the object has changed since the last
128956// request. Use googleapi.IsNotModified to check whether the response
128957// error from Do is the result of In-None-Match.
128958func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
128959	c.ifNoneMatch_ = entityTag
128960	return c
128961}
128962
128963// Context sets the context to be used in this call's Do method. Any
128964// pending HTTP request will be aborted if the provided context is
128965// canceled.
128966func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
128967	c.ctx_ = ctx
128968	return c
128969}
128970
128971// Header returns an http.Header that can be modified by the caller to
128972// add HTTP headers to the request.
128973func (c *RegionCommitmentsGetCall) Header() http.Header {
128974	if c.header_ == nil {
128975		c.header_ = make(http.Header)
128976	}
128977	return c.header_
128978}
128979
128980func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
128981	reqHeaders := make(http.Header)
128982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128983	for k, v := range c.header_ {
128984		reqHeaders[k] = v
128985	}
128986	reqHeaders.Set("User-Agent", c.s.userAgent())
128987	if c.ifNoneMatch_ != "" {
128988		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128989	}
128990	var body io.Reader = nil
128991	c.urlParams_.Set("alt", alt)
128992	c.urlParams_.Set("prettyPrint", "false")
128993	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}")
128994	urls += "?" + c.urlParams_.Encode()
128995	req, err := http.NewRequest("GET", urls, body)
128996	if err != nil {
128997		return nil, err
128998	}
128999	req.Header = reqHeaders
129000	googleapi.Expand(req.URL, map[string]string{
129001		"project":    c.project,
129002		"region":     c.region,
129003		"commitment": c.commitment,
129004	})
129005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129006}
129007
129008// Do executes the "compute.regionCommitments.get" call.
129009// Exactly one of *Commitment or error will be non-nil. Any non-2xx
129010// status code is an error. Response headers are in either
129011// *Commitment.ServerResponse.Header or (if a response was returned at
129012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129013// to check whether the returned error was because
129014// http.StatusNotModified was returned.
129015func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
129016	gensupport.SetOptions(c.urlParams_, opts...)
129017	res, err := c.doRequest("json")
129018	if res != nil && res.StatusCode == http.StatusNotModified {
129019		if res.Body != nil {
129020			res.Body.Close()
129021		}
129022		return nil, &googleapi.Error{
129023			Code:   res.StatusCode,
129024			Header: res.Header,
129025		}
129026	}
129027	if err != nil {
129028		return nil, err
129029	}
129030	defer googleapi.CloseBody(res)
129031	if err := googleapi.CheckResponse(res); err != nil {
129032		return nil, err
129033	}
129034	ret := &Commitment{
129035		ServerResponse: googleapi.ServerResponse{
129036			Header:         res.Header,
129037			HTTPStatusCode: res.StatusCode,
129038		},
129039	}
129040	target := &ret
129041	if err := gensupport.DecodeResponse(target, res); err != nil {
129042		return nil, err
129043	}
129044	return ret, nil
129045	// {
129046	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
129047	//   "httpMethod": "GET",
129048	//   "id": "compute.regionCommitments.get",
129049	//   "parameterOrder": [
129050	//     "project",
129051	//     "region",
129052	//     "commitment"
129053	//   ],
129054	//   "parameters": {
129055	//     "commitment": {
129056	//       "description": "Name of the commitment to return.",
129057	//       "location": "path",
129058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129059	//       "required": true,
129060	//       "type": "string"
129061	//     },
129062	//     "project": {
129063	//       "description": "Project ID for this request.",
129064	//       "location": "path",
129065	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129066	//       "required": true,
129067	//       "type": "string"
129068	//     },
129069	//     "region": {
129070	//       "description": "Name of the region for this request.",
129071	//       "location": "path",
129072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129073	//       "required": true,
129074	//       "type": "string"
129075	//     }
129076	//   },
129077	//   "path": "projects/{project}/regions/{region}/commitments/{commitment}",
129078	//   "response": {
129079	//     "$ref": "Commitment"
129080	//   },
129081	//   "scopes": [
129082	//     "https://www.googleapis.com/auth/cloud-platform",
129083	//     "https://www.googleapis.com/auth/compute",
129084	//     "https://www.googleapis.com/auth/compute.readonly"
129085	//   ]
129086	// }
129087
129088}
129089
129090// method id "compute.regionCommitments.insert":
129091
129092type RegionCommitmentsInsertCall struct {
129093	s          *Service
129094	project    string
129095	region     string
129096	commitment *Commitment
129097	urlParams_ gensupport.URLParams
129098	ctx_       context.Context
129099	header_    http.Header
129100}
129101
129102// Insert: Creates a commitment in the specified project using the data
129103// included in the request.
129104//
129105// - project: Project ID for this request.
129106// - region: Name of the region for this request.
129107func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
129108	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129109	c.project = project
129110	c.region = region
129111	c.commitment = commitment
129112	return c
129113}
129114
129115// RequestId sets the optional parameter "requestId": An optional
129116// request ID to identify requests. Specify a unique request ID so that
129117// if you must retry your request, the server will know to ignore the
129118// request if it has already been completed.
129119//
129120// For example, consider a situation where you make an initial request
129121// and the request times out. If you make the request again with the
129122// same request ID, the server can check if original operation with the
129123// same request ID was received, and if so, will ignore the second
129124// request. This prevents clients from accidentally creating duplicate
129125// commitments.
129126//
129127// The request ID must be a valid UUID with the exception that zero UUID
129128// is not supported (00000000-0000-0000-0000-000000000000).
129129func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
129130	c.urlParams_.Set("requestId", requestId)
129131	return c
129132}
129133
129134// Fields allows partial responses to be retrieved. See
129135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129136// for more information.
129137func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
129138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129139	return c
129140}
129141
129142// Context sets the context to be used in this call's Do method. Any
129143// pending HTTP request will be aborted if the provided context is
129144// canceled.
129145func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
129146	c.ctx_ = ctx
129147	return c
129148}
129149
129150// Header returns an http.Header that can be modified by the caller to
129151// add HTTP headers to the request.
129152func (c *RegionCommitmentsInsertCall) Header() http.Header {
129153	if c.header_ == nil {
129154		c.header_ = make(http.Header)
129155	}
129156	return c.header_
129157}
129158
129159func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
129160	reqHeaders := make(http.Header)
129161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129162	for k, v := range c.header_ {
129163		reqHeaders[k] = v
129164	}
129165	reqHeaders.Set("User-Agent", c.s.userAgent())
129166	var body io.Reader = nil
129167	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
129168	if err != nil {
129169		return nil, err
129170	}
129171	reqHeaders.Set("Content-Type", "application/json")
129172	c.urlParams_.Set("alt", alt)
129173	c.urlParams_.Set("prettyPrint", "false")
129174	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
129175	urls += "?" + c.urlParams_.Encode()
129176	req, err := http.NewRequest("POST", urls, body)
129177	if err != nil {
129178		return nil, err
129179	}
129180	req.Header = reqHeaders
129181	googleapi.Expand(req.URL, map[string]string{
129182		"project": c.project,
129183		"region":  c.region,
129184	})
129185	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129186}
129187
129188// Do executes the "compute.regionCommitments.insert" call.
129189// Exactly one of *Operation or error will be non-nil. Any non-2xx
129190// status code is an error. Response headers are in either
129191// *Operation.ServerResponse.Header or (if a response was returned at
129192// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129193// to check whether the returned error was because
129194// http.StatusNotModified was returned.
129195func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129196	gensupport.SetOptions(c.urlParams_, opts...)
129197	res, err := c.doRequest("json")
129198	if res != nil && res.StatusCode == http.StatusNotModified {
129199		if res.Body != nil {
129200			res.Body.Close()
129201		}
129202		return nil, &googleapi.Error{
129203			Code:   res.StatusCode,
129204			Header: res.Header,
129205		}
129206	}
129207	if err != nil {
129208		return nil, err
129209	}
129210	defer googleapi.CloseBody(res)
129211	if err := googleapi.CheckResponse(res); err != nil {
129212		return nil, err
129213	}
129214	ret := &Operation{
129215		ServerResponse: googleapi.ServerResponse{
129216			Header:         res.Header,
129217			HTTPStatusCode: res.StatusCode,
129218		},
129219	}
129220	target := &ret
129221	if err := gensupport.DecodeResponse(target, res); err != nil {
129222		return nil, err
129223	}
129224	return ret, nil
129225	// {
129226	//   "description": "Creates a commitment in the specified project using the data included in the request.",
129227	//   "httpMethod": "POST",
129228	//   "id": "compute.regionCommitments.insert",
129229	//   "parameterOrder": [
129230	//     "project",
129231	//     "region"
129232	//   ],
129233	//   "parameters": {
129234	//     "project": {
129235	//       "description": "Project ID for this request.",
129236	//       "location": "path",
129237	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129238	//       "required": true,
129239	//       "type": "string"
129240	//     },
129241	//     "region": {
129242	//       "description": "Name of the region for this request.",
129243	//       "location": "path",
129244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129245	//       "required": true,
129246	//       "type": "string"
129247	//     },
129248	//     "requestId": {
129249	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129250	//       "location": "query",
129251	//       "type": "string"
129252	//     }
129253	//   },
129254	//   "path": "projects/{project}/regions/{region}/commitments",
129255	//   "request": {
129256	//     "$ref": "Commitment"
129257	//   },
129258	//   "response": {
129259	//     "$ref": "Operation"
129260	//   },
129261	//   "scopes": [
129262	//     "https://www.googleapis.com/auth/cloud-platform",
129263	//     "https://www.googleapis.com/auth/compute"
129264	//   ]
129265	// }
129266
129267}
129268
129269// method id "compute.regionCommitments.list":
129270
129271type RegionCommitmentsListCall struct {
129272	s            *Service
129273	project      string
129274	region       string
129275	urlParams_   gensupport.URLParams
129276	ifNoneMatch_ string
129277	ctx_         context.Context
129278	header_      http.Header
129279}
129280
129281// List: Retrieves a list of commitments contained within the specified
129282// region.
129283//
129284// - project: Project ID for this request.
129285// - region: Name of the region for this request.
129286func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
129287	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129288	c.project = project
129289	c.region = region
129290	return c
129291}
129292
129293// Filter sets the optional parameter "filter": A filter expression that
129294// filters resources listed in the response. The expression must specify
129295// the field name, a comparison operator, and the value that you want to
129296// use for filtering. The value must be a string, a number, or a
129297// boolean. The comparison operator must be either `=`, `!=`, `>`, or
129298// `<`.
129299//
129300// For example, if you are filtering Compute Engine instances, you can
129301// exclude instances named `example-instance` by specifying `name !=
129302// example-instance`.
129303//
129304// You can also filter nested fields. For example, you could specify
129305// `scheduling.automaticRestart = false` to include instances only if
129306// they are not scheduled for automatic restarts. You can use filtering
129307// on nested fields to filter based on resource labels.
129308//
129309// To filter on multiple expressions, provide each separate expression
129310// within parentheses. For example: ``` (scheduling.automaticRestart =
129311// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
129312// is an `AND` expression. However, you can include `AND` and `OR`
129313// expressions explicitly. For example: ``` (cpuPlatform = "Intel
129314// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
129315// (scheduling.automaticRestart = true) ```
129316func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
129317	c.urlParams_.Set("filter", filter)
129318	return c
129319}
129320
129321// MaxResults sets the optional parameter "maxResults": The maximum
129322// number of results per page that should be returned. If the number of
129323// available results is larger than `maxResults`, Compute Engine returns
129324// a `nextPageToken` that can be used to get the next page of results in
129325// subsequent list requests. Acceptable values are `0` to `500`,
129326// inclusive. (Default: `500`)
129327func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
129328	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129329	return c
129330}
129331
129332// OrderBy sets the optional parameter "orderBy": Sorts list results by
129333// a certain order. By default, results are returned in alphanumerical
129334// order based on the resource name.
129335//
129336// You can also sort results in descending order based on the creation
129337// timestamp using `orderBy="creationTimestamp desc". This sorts
129338// results based on the `creationTimestamp` field in reverse
129339// chronological order (newest result first). Use this to sort resources
129340// like operations so that the newest operation is returned
129341// first.
129342//
129343// Currently, only sorting by `name` or `creationTimestamp desc` is
129344// supported.
129345func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
129346	c.urlParams_.Set("orderBy", orderBy)
129347	return c
129348}
129349
129350// PageToken sets the optional parameter "pageToken": Specifies a page
129351// token to use. Set `pageToken` to the `nextPageToken` returned by a
129352// previous list request to get the next page of results.
129353func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
129354	c.urlParams_.Set("pageToken", pageToken)
129355	return c
129356}
129357
129358// ReturnPartialSuccess sets the optional parameter
129359// "returnPartialSuccess": Opt-in for partial success behavior which
129360// provides partial results in case of failure. The default value is
129361// false.
129362func (c *RegionCommitmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsListCall {
129363	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
129364	return c
129365}
129366
129367// Fields allows partial responses to be retrieved. See
129368// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129369// for more information.
129370func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
129371	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129372	return c
129373}
129374
129375// IfNoneMatch sets the optional parameter which makes the operation
129376// fail if the object's ETag matches the given value. This is useful for
129377// getting updates only after the object has changed since the last
129378// request. Use googleapi.IsNotModified to check whether the response
129379// error from Do is the result of In-None-Match.
129380func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
129381	c.ifNoneMatch_ = entityTag
129382	return c
129383}
129384
129385// Context sets the context to be used in this call's Do method. Any
129386// pending HTTP request will be aborted if the provided context is
129387// canceled.
129388func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
129389	c.ctx_ = ctx
129390	return c
129391}
129392
129393// Header returns an http.Header that can be modified by the caller to
129394// add HTTP headers to the request.
129395func (c *RegionCommitmentsListCall) Header() http.Header {
129396	if c.header_ == nil {
129397		c.header_ = make(http.Header)
129398	}
129399	return c.header_
129400}
129401
129402func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
129403	reqHeaders := make(http.Header)
129404	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129405	for k, v := range c.header_ {
129406		reqHeaders[k] = v
129407	}
129408	reqHeaders.Set("User-Agent", c.s.userAgent())
129409	if c.ifNoneMatch_ != "" {
129410		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129411	}
129412	var body io.Reader = nil
129413	c.urlParams_.Set("alt", alt)
129414	c.urlParams_.Set("prettyPrint", "false")
129415	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
129416	urls += "?" + c.urlParams_.Encode()
129417	req, err := http.NewRequest("GET", urls, body)
129418	if err != nil {
129419		return nil, err
129420	}
129421	req.Header = reqHeaders
129422	googleapi.Expand(req.URL, map[string]string{
129423		"project": c.project,
129424		"region":  c.region,
129425	})
129426	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129427}
129428
129429// Do executes the "compute.regionCommitments.list" call.
129430// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
129431// status code is an error. Response headers are in either
129432// *CommitmentList.ServerResponse.Header or (if a response was returned
129433// at all) in error.(*googleapi.Error).Header. Use
129434// googleapi.IsNotModified to check whether the returned error was
129435// because http.StatusNotModified was returned.
129436func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
129437	gensupport.SetOptions(c.urlParams_, opts...)
129438	res, err := c.doRequest("json")
129439	if res != nil && res.StatusCode == http.StatusNotModified {
129440		if res.Body != nil {
129441			res.Body.Close()
129442		}
129443		return nil, &googleapi.Error{
129444			Code:   res.StatusCode,
129445			Header: res.Header,
129446		}
129447	}
129448	if err != nil {
129449		return nil, err
129450	}
129451	defer googleapi.CloseBody(res)
129452	if err := googleapi.CheckResponse(res); err != nil {
129453		return nil, err
129454	}
129455	ret := &CommitmentList{
129456		ServerResponse: googleapi.ServerResponse{
129457			Header:         res.Header,
129458			HTTPStatusCode: res.StatusCode,
129459		},
129460	}
129461	target := &ret
129462	if err := gensupport.DecodeResponse(target, res); err != nil {
129463		return nil, err
129464	}
129465	return ret, nil
129466	// {
129467	//   "description": "Retrieves a list of commitments contained within the specified region.",
129468	//   "httpMethod": "GET",
129469	//   "id": "compute.regionCommitments.list",
129470	//   "parameterOrder": [
129471	//     "project",
129472	//     "region"
129473	//   ],
129474	//   "parameters": {
129475	//     "filter": {
129476	//       "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) ```",
129477	//       "location": "query",
129478	//       "type": "string"
129479	//     },
129480	//     "maxResults": {
129481	//       "default": "500",
129482	//       "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`)",
129483	//       "format": "uint32",
129484	//       "location": "query",
129485	//       "minimum": "0",
129486	//       "type": "integer"
129487	//     },
129488	//     "orderBy": {
129489	//       "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.",
129490	//       "location": "query",
129491	//       "type": "string"
129492	//     },
129493	//     "pageToken": {
129494	//       "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.",
129495	//       "location": "query",
129496	//       "type": "string"
129497	//     },
129498	//     "project": {
129499	//       "description": "Project ID for this request.",
129500	//       "location": "path",
129501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129502	//       "required": true,
129503	//       "type": "string"
129504	//     },
129505	//     "region": {
129506	//       "description": "Name of the region for this request.",
129507	//       "location": "path",
129508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129509	//       "required": true,
129510	//       "type": "string"
129511	//     },
129512	//     "returnPartialSuccess": {
129513	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
129514	//       "location": "query",
129515	//       "type": "boolean"
129516	//     }
129517	//   },
129518	//   "path": "projects/{project}/regions/{region}/commitments",
129519	//   "response": {
129520	//     "$ref": "CommitmentList"
129521	//   },
129522	//   "scopes": [
129523	//     "https://www.googleapis.com/auth/cloud-platform",
129524	//     "https://www.googleapis.com/auth/compute",
129525	//     "https://www.googleapis.com/auth/compute.readonly"
129526	//   ]
129527	// }
129528
129529}
129530
129531// Pages invokes f for each page of results.
129532// A non-nil error returned from f will halt the iteration.
129533// The provided context supersedes any context provided to the Context method.
129534func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
129535	c.ctx_ = ctx
129536	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129537	for {
129538		x, err := c.Do()
129539		if err != nil {
129540			return err
129541		}
129542		if err := f(x); err != nil {
129543			return err
129544		}
129545		if x.NextPageToken == "" {
129546			return nil
129547		}
129548		c.PageToken(x.NextPageToken)
129549	}
129550}
129551
129552// method id "compute.regionCommitments.testIamPermissions":
129553
129554type RegionCommitmentsTestIamPermissionsCall struct {
129555	s                      *Service
129556	project                string
129557	region                 string
129558	resource               string
129559	testpermissionsrequest *TestPermissionsRequest
129560	urlParams_             gensupport.URLParams
129561	ctx_                   context.Context
129562	header_                http.Header
129563}
129564
129565// TestIamPermissions: Returns permissions that a caller has on the
129566// specified resource.
129567//
129568// - project: Project ID for this request.
129569// - region: The name of the region for this request.
129570// - resource: Name or id of the resource for this request.
129571func (r *RegionCommitmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionCommitmentsTestIamPermissionsCall {
129572	c := &RegionCommitmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129573	c.project = project
129574	c.region = region
129575	c.resource = resource
129576	c.testpermissionsrequest = testpermissionsrequest
129577	return c
129578}
129579
129580// Fields allows partial responses to be retrieved. See
129581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129582// for more information.
129583func (c *RegionCommitmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionCommitmentsTestIamPermissionsCall {
129584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129585	return c
129586}
129587
129588// Context sets the context to be used in this call's Do method. Any
129589// pending HTTP request will be aborted if the provided context is
129590// canceled.
129591func (c *RegionCommitmentsTestIamPermissionsCall) Context(ctx context.Context) *RegionCommitmentsTestIamPermissionsCall {
129592	c.ctx_ = ctx
129593	return c
129594}
129595
129596// Header returns an http.Header that can be modified by the caller to
129597// add HTTP headers to the request.
129598func (c *RegionCommitmentsTestIamPermissionsCall) Header() http.Header {
129599	if c.header_ == nil {
129600		c.header_ = make(http.Header)
129601	}
129602	return c.header_
129603}
129604
129605func (c *RegionCommitmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
129606	reqHeaders := make(http.Header)
129607	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129608	for k, v := range c.header_ {
129609		reqHeaders[k] = v
129610	}
129611	reqHeaders.Set("User-Agent", c.s.userAgent())
129612	var body io.Reader = nil
129613	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
129614	if err != nil {
129615		return nil, err
129616	}
129617	reqHeaders.Set("Content-Type", "application/json")
129618	c.urlParams_.Set("alt", alt)
129619	c.urlParams_.Set("prettyPrint", "false")
129620	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{resource}/testIamPermissions")
129621	urls += "?" + c.urlParams_.Encode()
129622	req, err := http.NewRequest("POST", urls, body)
129623	if err != nil {
129624		return nil, err
129625	}
129626	req.Header = reqHeaders
129627	googleapi.Expand(req.URL, map[string]string{
129628		"project":  c.project,
129629		"region":   c.region,
129630		"resource": c.resource,
129631	})
129632	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129633}
129634
129635// Do executes the "compute.regionCommitments.testIamPermissions" call.
129636// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
129637// non-2xx status code is an error. Response headers are in either
129638// *TestPermissionsResponse.ServerResponse.Header or (if a response was
129639// returned at all) in error.(*googleapi.Error).Header. Use
129640// googleapi.IsNotModified to check whether the returned error was
129641// because http.StatusNotModified was returned.
129642func (c *RegionCommitmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
129643	gensupport.SetOptions(c.urlParams_, opts...)
129644	res, err := c.doRequest("json")
129645	if res != nil && res.StatusCode == http.StatusNotModified {
129646		if res.Body != nil {
129647			res.Body.Close()
129648		}
129649		return nil, &googleapi.Error{
129650			Code:   res.StatusCode,
129651			Header: res.Header,
129652		}
129653	}
129654	if err != nil {
129655		return nil, err
129656	}
129657	defer googleapi.CloseBody(res)
129658	if err := googleapi.CheckResponse(res); err != nil {
129659		return nil, err
129660	}
129661	ret := &TestPermissionsResponse{
129662		ServerResponse: googleapi.ServerResponse{
129663			Header:         res.Header,
129664			HTTPStatusCode: res.StatusCode,
129665		},
129666	}
129667	target := &ret
129668	if err := gensupport.DecodeResponse(target, res); err != nil {
129669		return nil, err
129670	}
129671	return ret, nil
129672	// {
129673	//   "description": "Returns permissions that a caller has on the specified resource.",
129674	//   "httpMethod": "POST",
129675	//   "id": "compute.regionCommitments.testIamPermissions",
129676	//   "parameterOrder": [
129677	//     "project",
129678	//     "region",
129679	//     "resource"
129680	//   ],
129681	//   "parameters": {
129682	//     "project": {
129683	//       "description": "Project ID for this request.",
129684	//       "location": "path",
129685	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129686	//       "required": true,
129687	//       "type": "string"
129688	//     },
129689	//     "region": {
129690	//       "description": "The name of the region for this request.",
129691	//       "location": "path",
129692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129693	//       "required": true,
129694	//       "type": "string"
129695	//     },
129696	//     "resource": {
129697	//       "description": "Name or id of the resource for this request.",
129698	//       "location": "path",
129699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129700	//       "required": true,
129701	//       "type": "string"
129702	//     }
129703	//   },
129704	//   "path": "projects/{project}/regions/{region}/commitments/{resource}/testIamPermissions",
129705	//   "request": {
129706	//     "$ref": "TestPermissionsRequest"
129707	//   },
129708	//   "response": {
129709	//     "$ref": "TestPermissionsResponse"
129710	//   },
129711	//   "scopes": [
129712	//     "https://www.googleapis.com/auth/cloud-platform",
129713	//     "https://www.googleapis.com/auth/compute",
129714	//     "https://www.googleapis.com/auth/compute.readonly"
129715	//   ]
129716	// }
129717
129718}
129719
129720// method id "compute.regionCommitments.updateReservations":
129721
129722type RegionCommitmentsUpdateReservationsCall struct {
129723	s                                          *Service
129724	project                                    string
129725	region                                     string
129726	commitment                                 string
129727	regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest
129728	urlParams_                                 gensupport.URLParams
129729	ctx_                                       context.Context
129730	header_                                    http.Header
129731}
129732
129733// UpdateReservations: Transfers GPUs or local SSDs between reservations
129734// within commitments.
129735//
129736// - commitment: Name of the commitment for which the reservation is
129737//   being updated.
129738// - project: Project ID for this request.
129739// - region: Name of the region for this request.
129740func (r *RegionCommitmentsService) UpdateReservations(project string, region string, commitment string, regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest) *RegionCommitmentsUpdateReservationsCall {
129741	c := &RegionCommitmentsUpdateReservationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129742	c.project = project
129743	c.region = region
129744	c.commitment = commitment
129745	c.regioncommitmentsupdatereservationsrequest = regioncommitmentsupdatereservationsrequest
129746	return c
129747}
129748
129749// RequestId sets the optional parameter "requestId": An optional
129750// request ID to identify requests. Specify a unique request ID so that
129751// if you must retry your request, the server will know to ignore the
129752// request if it has already been completed.
129753//
129754// For example, consider a situation where you make an initial request
129755// and the request times out. If you make the request again with the
129756// same request ID, the server can check if original operation with the
129757// same request ID was received, and if so, will ignore the second
129758// request. This prevents clients from accidentally creating duplicate
129759// commitments.
129760//
129761// The request ID must be a valid UUID with the exception that zero UUID
129762// is not supported (00000000-0000-0000-0000-000000000000).
129763func (c *RegionCommitmentsUpdateReservationsCall) RequestId(requestId string) *RegionCommitmentsUpdateReservationsCall {
129764	c.urlParams_.Set("requestId", requestId)
129765	return c
129766}
129767
129768// Fields allows partial responses to be retrieved. See
129769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129770// for more information.
129771func (c *RegionCommitmentsUpdateReservationsCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateReservationsCall {
129772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129773	return c
129774}
129775
129776// Context sets the context to be used in this call's Do method. Any
129777// pending HTTP request will be aborted if the provided context is
129778// canceled.
129779func (c *RegionCommitmentsUpdateReservationsCall) Context(ctx context.Context) *RegionCommitmentsUpdateReservationsCall {
129780	c.ctx_ = ctx
129781	return c
129782}
129783
129784// Header returns an http.Header that can be modified by the caller to
129785// add HTTP headers to the request.
129786func (c *RegionCommitmentsUpdateReservationsCall) Header() http.Header {
129787	if c.header_ == nil {
129788		c.header_ = make(http.Header)
129789	}
129790	return c.header_
129791}
129792
129793func (c *RegionCommitmentsUpdateReservationsCall) doRequest(alt string) (*http.Response, error) {
129794	reqHeaders := make(http.Header)
129795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129796	for k, v := range c.header_ {
129797		reqHeaders[k] = v
129798	}
129799	reqHeaders.Set("User-Agent", c.s.userAgent())
129800	var body io.Reader = nil
129801	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioncommitmentsupdatereservationsrequest)
129802	if err != nil {
129803		return nil, err
129804	}
129805	reqHeaders.Set("Content-Type", "application/json")
129806	c.urlParams_.Set("alt", alt)
129807	c.urlParams_.Set("prettyPrint", "false")
129808	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}/updateReservations")
129809	urls += "?" + c.urlParams_.Encode()
129810	req, err := http.NewRequest("POST", urls, body)
129811	if err != nil {
129812		return nil, err
129813	}
129814	req.Header = reqHeaders
129815	googleapi.Expand(req.URL, map[string]string{
129816		"project":    c.project,
129817		"region":     c.region,
129818		"commitment": c.commitment,
129819	})
129820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129821}
129822
129823// Do executes the "compute.regionCommitments.updateReservations" call.
129824// Exactly one of *Operation or error will be non-nil. Any non-2xx
129825// status code is an error. Response headers are in either
129826// *Operation.ServerResponse.Header or (if a response was returned at
129827// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129828// to check whether the returned error was because
129829// http.StatusNotModified was returned.
129830func (c *RegionCommitmentsUpdateReservationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129831	gensupport.SetOptions(c.urlParams_, opts...)
129832	res, err := c.doRequest("json")
129833	if res != nil && res.StatusCode == http.StatusNotModified {
129834		if res.Body != nil {
129835			res.Body.Close()
129836		}
129837		return nil, &googleapi.Error{
129838			Code:   res.StatusCode,
129839			Header: res.Header,
129840		}
129841	}
129842	if err != nil {
129843		return nil, err
129844	}
129845	defer googleapi.CloseBody(res)
129846	if err := googleapi.CheckResponse(res); err != nil {
129847		return nil, err
129848	}
129849	ret := &Operation{
129850		ServerResponse: googleapi.ServerResponse{
129851			Header:         res.Header,
129852			HTTPStatusCode: res.StatusCode,
129853		},
129854	}
129855	target := &ret
129856	if err := gensupport.DecodeResponse(target, res); err != nil {
129857		return nil, err
129858	}
129859	return ret, nil
129860	// {
129861	//   "description": "Transfers GPUs or local SSDs between reservations within commitments.",
129862	//   "httpMethod": "POST",
129863	//   "id": "compute.regionCommitments.updateReservations",
129864	//   "parameterOrder": [
129865	//     "project",
129866	//     "region",
129867	//     "commitment"
129868	//   ],
129869	//   "parameters": {
129870	//     "commitment": {
129871	//       "description": "Name of the commitment for which the reservation is being updated.",
129872	//       "location": "path",
129873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129874	//       "required": true,
129875	//       "type": "string"
129876	//     },
129877	//     "project": {
129878	//       "description": "Project ID for this request.",
129879	//       "location": "path",
129880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129881	//       "required": true,
129882	//       "type": "string"
129883	//     },
129884	//     "region": {
129885	//       "description": "Name of the region for this request.",
129886	//       "location": "path",
129887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129888	//       "required": true,
129889	//       "type": "string"
129890	//     },
129891	//     "requestId": {
129892	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129893	//       "location": "query",
129894	//       "type": "string"
129895	//     }
129896	//   },
129897	//   "path": "projects/{project}/regions/{region}/commitments/{commitment}/updateReservations",
129898	//   "request": {
129899	//     "$ref": "RegionCommitmentsUpdateReservationsRequest"
129900	//   },
129901	//   "response": {
129902	//     "$ref": "Operation"
129903	//   },
129904	//   "scopes": [
129905	//     "https://www.googleapis.com/auth/cloud-platform",
129906	//     "https://www.googleapis.com/auth/compute"
129907	//   ]
129908	// }
129909
129910}
129911
129912// method id "compute.regionDiskTypes.get":
129913
129914type RegionDiskTypesGetCall struct {
129915	s            *Service
129916	project      string
129917	region       string
129918	diskType     string
129919	urlParams_   gensupport.URLParams
129920	ifNoneMatch_ string
129921	ctx_         context.Context
129922	header_      http.Header
129923}
129924
129925// Get: Returns the specified regional disk type. Gets a list of
129926// available disk types by making a list() request.
129927//
129928// - diskType: Name of the disk type to return.
129929// - project: Project ID for this request.
129930// - region: The name of the region for this request.
129931func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
129932	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129933	c.project = project
129934	c.region = region
129935	c.diskType = diskType
129936	return c
129937}
129938
129939// Fields allows partial responses to be retrieved. See
129940// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129941// for more information.
129942func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
129943	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129944	return c
129945}
129946
129947// IfNoneMatch sets the optional parameter which makes the operation
129948// fail if the object's ETag matches the given value. This is useful for
129949// getting updates only after the object has changed since the last
129950// request. Use googleapi.IsNotModified to check whether the response
129951// error from Do is the result of In-None-Match.
129952func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
129953	c.ifNoneMatch_ = entityTag
129954	return c
129955}
129956
129957// Context sets the context to be used in this call's Do method. Any
129958// pending HTTP request will be aborted if the provided context is
129959// canceled.
129960func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
129961	c.ctx_ = ctx
129962	return c
129963}
129964
129965// Header returns an http.Header that can be modified by the caller to
129966// add HTTP headers to the request.
129967func (c *RegionDiskTypesGetCall) Header() http.Header {
129968	if c.header_ == nil {
129969		c.header_ = make(http.Header)
129970	}
129971	return c.header_
129972}
129973
129974func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
129975	reqHeaders := make(http.Header)
129976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129977	for k, v := range c.header_ {
129978		reqHeaders[k] = v
129979	}
129980	reqHeaders.Set("User-Agent", c.s.userAgent())
129981	if c.ifNoneMatch_ != "" {
129982		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129983	}
129984	var body io.Reader = nil
129985	c.urlParams_.Set("alt", alt)
129986	c.urlParams_.Set("prettyPrint", "false")
129987	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes/{diskType}")
129988	urls += "?" + c.urlParams_.Encode()
129989	req, err := http.NewRequest("GET", urls, body)
129990	if err != nil {
129991		return nil, err
129992	}
129993	req.Header = reqHeaders
129994	googleapi.Expand(req.URL, map[string]string{
129995		"project":  c.project,
129996		"region":   c.region,
129997		"diskType": c.diskType,
129998	})
129999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130000}
130001
130002// Do executes the "compute.regionDiskTypes.get" call.
130003// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
130004// code is an error. Response headers are in either
130005// *DiskType.ServerResponse.Header or (if a response was returned at
130006// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130007// to check whether the returned error was because
130008// http.StatusNotModified was returned.
130009func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
130010	gensupport.SetOptions(c.urlParams_, opts...)
130011	res, err := c.doRequest("json")
130012	if res != nil && res.StatusCode == http.StatusNotModified {
130013		if res.Body != nil {
130014			res.Body.Close()
130015		}
130016		return nil, &googleapi.Error{
130017			Code:   res.StatusCode,
130018			Header: res.Header,
130019		}
130020	}
130021	if err != nil {
130022		return nil, err
130023	}
130024	defer googleapi.CloseBody(res)
130025	if err := googleapi.CheckResponse(res); err != nil {
130026		return nil, err
130027	}
130028	ret := &DiskType{
130029		ServerResponse: googleapi.ServerResponse{
130030			Header:         res.Header,
130031			HTTPStatusCode: res.StatusCode,
130032		},
130033	}
130034	target := &ret
130035	if err := gensupport.DecodeResponse(target, res); err != nil {
130036		return nil, err
130037	}
130038	return ret, nil
130039	// {
130040	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
130041	//   "httpMethod": "GET",
130042	//   "id": "compute.regionDiskTypes.get",
130043	//   "parameterOrder": [
130044	//     "project",
130045	//     "region",
130046	//     "diskType"
130047	//   ],
130048	//   "parameters": {
130049	//     "diskType": {
130050	//       "description": "Name of the disk type to return.",
130051	//       "location": "path",
130052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130053	//       "required": true,
130054	//       "type": "string"
130055	//     },
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": "The name of the region for 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	//   },
130071	//   "path": "projects/{project}/regions/{region}/diskTypes/{diskType}",
130072	//   "response": {
130073	//     "$ref": "DiskType"
130074	//   },
130075	//   "scopes": [
130076	//     "https://www.googleapis.com/auth/cloud-platform",
130077	//     "https://www.googleapis.com/auth/compute",
130078	//     "https://www.googleapis.com/auth/compute.readonly"
130079	//   ]
130080	// }
130081
130082}
130083
130084// method id "compute.regionDiskTypes.list":
130085
130086type RegionDiskTypesListCall struct {
130087	s            *Service
130088	project      string
130089	region       string
130090	urlParams_   gensupport.URLParams
130091	ifNoneMatch_ string
130092	ctx_         context.Context
130093	header_      http.Header
130094}
130095
130096// List: Retrieves a list of regional disk types available to the
130097// specified project.
130098//
130099// - project: Project ID for this request.
130100// - region: The name of the region for this request.
130101func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
130102	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130103	c.project = project
130104	c.region = region
130105	return c
130106}
130107
130108// Filter sets the optional parameter "filter": A filter expression that
130109// filters resources listed in the response. The expression must specify
130110// the field name, a comparison operator, and the value that you want to
130111// use for filtering. The value must be a string, a number, or a
130112// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130113// `<`.
130114//
130115// For example, if you are filtering Compute Engine instances, you can
130116// exclude instances named `example-instance` by specifying `name !=
130117// example-instance`.
130118//
130119// You can also filter nested fields. For example, you could specify
130120// `scheduling.automaticRestart = false` to include instances only if
130121// they are not scheduled for automatic restarts. You can use filtering
130122// on nested fields to filter based on resource labels.
130123//
130124// To filter on multiple expressions, provide each separate expression
130125// within parentheses. For example: ``` (scheduling.automaticRestart =
130126// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
130127// is an `AND` expression. However, you can include `AND` and `OR`
130128// expressions explicitly. For example: ``` (cpuPlatform = "Intel
130129// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
130130// (scheduling.automaticRestart = true) ```
130131func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
130132	c.urlParams_.Set("filter", filter)
130133	return c
130134}
130135
130136// MaxResults sets the optional parameter "maxResults": The maximum
130137// number of results per page that should be returned. If the number of
130138// available results is larger than `maxResults`, Compute Engine returns
130139// a `nextPageToken` that can be used to get the next page of results in
130140// subsequent list requests. Acceptable values are `0` to `500`,
130141// inclusive. (Default: `500`)
130142func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
130143	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130144	return c
130145}
130146
130147// OrderBy sets the optional parameter "orderBy": Sorts list results by
130148// a certain order. By default, results are returned in alphanumerical
130149// order based on the resource name.
130150//
130151// You can also sort results in descending order based on the creation
130152// timestamp using `orderBy="creationTimestamp desc". This sorts
130153// results based on the `creationTimestamp` field in reverse
130154// chronological order (newest result first). Use this to sort resources
130155// like operations so that the newest operation is returned
130156// first.
130157//
130158// Currently, only sorting by `name` or `creationTimestamp desc` is
130159// supported.
130160func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
130161	c.urlParams_.Set("orderBy", orderBy)
130162	return c
130163}
130164
130165// PageToken sets the optional parameter "pageToken": Specifies a page
130166// token to use. Set `pageToken` to the `nextPageToken` returned by a
130167// previous list request to get the next page of results.
130168func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
130169	c.urlParams_.Set("pageToken", pageToken)
130170	return c
130171}
130172
130173// ReturnPartialSuccess sets the optional parameter
130174// "returnPartialSuccess": Opt-in for partial success behavior which
130175// provides partial results in case of failure. The default value is
130176// false.
130177func (c *RegionDiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDiskTypesListCall {
130178	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
130179	return c
130180}
130181
130182// Fields allows partial responses to be retrieved. See
130183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130184// for more information.
130185func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
130186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130187	return c
130188}
130189
130190// IfNoneMatch sets the optional parameter which makes the operation
130191// fail if the object's ETag matches the given value. This is useful for
130192// getting updates only after the object has changed since the last
130193// request. Use googleapi.IsNotModified to check whether the response
130194// error from Do is the result of In-None-Match.
130195func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
130196	c.ifNoneMatch_ = entityTag
130197	return c
130198}
130199
130200// Context sets the context to be used in this call's Do method. Any
130201// pending HTTP request will be aborted if the provided context is
130202// canceled.
130203func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
130204	c.ctx_ = ctx
130205	return c
130206}
130207
130208// Header returns an http.Header that can be modified by the caller to
130209// add HTTP headers to the request.
130210func (c *RegionDiskTypesListCall) Header() http.Header {
130211	if c.header_ == nil {
130212		c.header_ = make(http.Header)
130213	}
130214	return c.header_
130215}
130216
130217func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
130218	reqHeaders := make(http.Header)
130219	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130220	for k, v := range c.header_ {
130221		reqHeaders[k] = v
130222	}
130223	reqHeaders.Set("User-Agent", c.s.userAgent())
130224	if c.ifNoneMatch_ != "" {
130225		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130226	}
130227	var body io.Reader = nil
130228	c.urlParams_.Set("alt", alt)
130229	c.urlParams_.Set("prettyPrint", "false")
130230	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes")
130231	urls += "?" + c.urlParams_.Encode()
130232	req, err := http.NewRequest("GET", urls, body)
130233	if err != nil {
130234		return nil, err
130235	}
130236	req.Header = reqHeaders
130237	googleapi.Expand(req.URL, map[string]string{
130238		"project": c.project,
130239		"region":  c.region,
130240	})
130241	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130242}
130243
130244// Do executes the "compute.regionDiskTypes.list" call.
130245// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
130246// non-2xx status code is an error. Response headers are in either
130247// *RegionDiskTypeList.ServerResponse.Header or (if a response was
130248// returned at all) in error.(*googleapi.Error).Header. Use
130249// googleapi.IsNotModified to check whether the returned error was
130250// because http.StatusNotModified was returned.
130251func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
130252	gensupport.SetOptions(c.urlParams_, opts...)
130253	res, err := c.doRequest("json")
130254	if res != nil && res.StatusCode == http.StatusNotModified {
130255		if res.Body != nil {
130256			res.Body.Close()
130257		}
130258		return nil, &googleapi.Error{
130259			Code:   res.StatusCode,
130260			Header: res.Header,
130261		}
130262	}
130263	if err != nil {
130264		return nil, err
130265	}
130266	defer googleapi.CloseBody(res)
130267	if err := googleapi.CheckResponse(res); err != nil {
130268		return nil, err
130269	}
130270	ret := &RegionDiskTypeList{
130271		ServerResponse: googleapi.ServerResponse{
130272			Header:         res.Header,
130273			HTTPStatusCode: res.StatusCode,
130274		},
130275	}
130276	target := &ret
130277	if err := gensupport.DecodeResponse(target, res); err != nil {
130278		return nil, err
130279	}
130280	return ret, nil
130281	// {
130282	//   "description": "Retrieves a list of regional disk types available to the specified project.",
130283	//   "httpMethod": "GET",
130284	//   "id": "compute.regionDiskTypes.list",
130285	//   "parameterOrder": [
130286	//     "project",
130287	//     "region"
130288	//   ],
130289	//   "parameters": {
130290	//     "filter": {
130291	//       "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) ```",
130292	//       "location": "query",
130293	//       "type": "string"
130294	//     },
130295	//     "maxResults": {
130296	//       "default": "500",
130297	//       "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`)",
130298	//       "format": "uint32",
130299	//       "location": "query",
130300	//       "minimum": "0",
130301	//       "type": "integer"
130302	//     },
130303	//     "orderBy": {
130304	//       "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.",
130305	//       "location": "query",
130306	//       "type": "string"
130307	//     },
130308	//     "pageToken": {
130309	//       "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.",
130310	//       "location": "query",
130311	//       "type": "string"
130312	//     },
130313	//     "project": {
130314	//       "description": "Project ID for this request.",
130315	//       "location": "path",
130316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130317	//       "required": true,
130318	//       "type": "string"
130319	//     },
130320	//     "region": {
130321	//       "description": "The name of the region for this request.",
130322	//       "location": "path",
130323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130324	//       "required": true,
130325	//       "type": "string"
130326	//     },
130327	//     "returnPartialSuccess": {
130328	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
130329	//       "location": "query",
130330	//       "type": "boolean"
130331	//     }
130332	//   },
130333	//   "path": "projects/{project}/regions/{region}/diskTypes",
130334	//   "response": {
130335	//     "$ref": "RegionDiskTypeList"
130336	//   },
130337	//   "scopes": [
130338	//     "https://www.googleapis.com/auth/cloud-platform",
130339	//     "https://www.googleapis.com/auth/compute",
130340	//     "https://www.googleapis.com/auth/compute.readonly"
130341	//   ]
130342	// }
130343
130344}
130345
130346// Pages invokes f for each page of results.
130347// A non-nil error returned from f will halt the iteration.
130348// The provided context supersedes any context provided to the Context method.
130349func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
130350	c.ctx_ = ctx
130351	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130352	for {
130353		x, err := c.Do()
130354		if err != nil {
130355			return err
130356		}
130357		if err := f(x); err != nil {
130358			return err
130359		}
130360		if x.NextPageToken == "" {
130361			return nil
130362		}
130363		c.PageToken(x.NextPageToken)
130364	}
130365}
130366
130367// method id "compute.regionDisks.addResourcePolicies":
130368
130369type RegionDisksAddResourcePoliciesCall struct {
130370	s                                     *Service
130371	project                               string
130372	region                                string
130373	disk                                  string
130374	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
130375	urlParams_                            gensupport.URLParams
130376	ctx_                                  context.Context
130377	header_                               http.Header
130378}
130379
130380// AddResourcePolicies: Adds existing resource policies to a regional
130381// disk. You can only add one policy which will be applied to this disk
130382// for scheduling snapshot creation.
130383//
130384// - disk: The disk name for this request.
130385// - project: Project ID for this request.
130386// - region: The name of the region for this request.
130387func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
130388	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130389	c.project = project
130390	c.region = region
130391	c.disk = disk
130392	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
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 *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
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 *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
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 *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
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 *RegionDisksAddResourcePoliciesCall) Header() http.Header {
130434	if c.header_ == nil {
130435		c.header_ = make(http.Header)
130436	}
130437	return c.header_
130438}
130439
130440func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
130441	reqHeaders := make(http.Header)
130442	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
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.regiondisksaddresourcepoliciesrequest)
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}/disks/{disk}/addResourcePolicies")
130456	urls += "?" + c.urlParams_.Encode()
130457	req, err := http.NewRequest("POST", 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		"disk":    c.disk,
130466	})
130467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130468}
130469
130470// Do executes the "compute.regionDisks.addResourcePolicies" 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 *RegionDisksAddResourcePoliciesCall) 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": "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.",
130509	//   "httpMethod": "POST",
130510	//   "id": "compute.regionDisks.addResourcePolicies",
130511	//   "parameterOrder": [
130512	//     "project",
130513	//     "region",
130514	//     "disk"
130515	//   ],
130516	//   "parameters": {
130517	//     "disk": {
130518	//       "description": "The disk name for this request.",
130519	//       "location": "path",
130520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130521	//       "required": true,
130522	//       "type": "string"
130523	//     },
130524	//     "project": {
130525	//       "description": "Project ID for this request.",
130526	//       "location": "path",
130527	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130528	//       "required": true,
130529	//       "type": "string"
130530	//     },
130531	//     "region": {
130532	//       "description": "The name of the region for this request.",
130533	//       "location": "path",
130534	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130535	//       "required": true,
130536	//       "type": "string"
130537	//     },
130538	//     "requestId": {
130539	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130540	//       "location": "query",
130541	//       "type": "string"
130542	//     }
130543	//   },
130544	//   "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
130545	//   "request": {
130546	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
130547	//   },
130548	//   "response": {
130549	//     "$ref": "Operation"
130550	//   },
130551	//   "scopes": [
130552	//     "https://www.googleapis.com/auth/cloud-platform",
130553	//     "https://www.googleapis.com/auth/compute"
130554	//   ]
130555	// }
130556
130557}
130558
130559// method id "compute.regionDisks.createSnapshot":
130560
130561type RegionDisksCreateSnapshotCall struct {
130562	s          *Service
130563	project    string
130564	region     string
130565	disk       string
130566	snapshot   *Snapshot
130567	urlParams_ gensupport.URLParams
130568	ctx_       context.Context
130569	header_    http.Header
130570}
130571
130572// CreateSnapshot: Creates a snapshot of this regional disk.
130573//
130574// - disk: Name of the regional persistent disk to snapshot.
130575// - project: Project ID for this request.
130576// - region: Name of the region for this request.
130577func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
130578	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130579	c.project = project
130580	c.region = region
130581	c.disk = disk
130582	c.snapshot = snapshot
130583	return c
130584}
130585
130586// RequestId sets the optional parameter "requestId": An optional
130587// request ID to identify requests. Specify a unique request ID so that
130588// if you must retry your request, the server will know to ignore the
130589// request if it has already been completed.
130590//
130591// For example, consider a situation where you make an initial request
130592// and the request times out. If you make the request again with the
130593// same request ID, the server can check if original operation with the
130594// same request ID was received, and if so, will ignore the second
130595// request. This prevents clients from accidentally creating duplicate
130596// commitments.
130597//
130598// The request ID must be a valid UUID with the exception that zero UUID
130599// is not supported (00000000-0000-0000-0000-000000000000).
130600func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
130601	c.urlParams_.Set("requestId", requestId)
130602	return c
130603}
130604
130605// Fields allows partial responses to be retrieved. See
130606// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130607// for more information.
130608func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
130609	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130610	return c
130611}
130612
130613// Context sets the context to be used in this call's Do method. Any
130614// pending HTTP request will be aborted if the provided context is
130615// canceled.
130616func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
130617	c.ctx_ = ctx
130618	return c
130619}
130620
130621// Header returns an http.Header that can be modified by the caller to
130622// add HTTP headers to the request.
130623func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
130624	if c.header_ == nil {
130625		c.header_ = make(http.Header)
130626	}
130627	return c.header_
130628}
130629
130630func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
130631	reqHeaders := make(http.Header)
130632	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130633	for k, v := range c.header_ {
130634		reqHeaders[k] = v
130635	}
130636	reqHeaders.Set("User-Agent", c.s.userAgent())
130637	var body io.Reader = nil
130638	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
130639	if err != nil {
130640		return nil, err
130641	}
130642	reqHeaders.Set("Content-Type", "application/json")
130643	c.urlParams_.Set("alt", alt)
130644	c.urlParams_.Set("prettyPrint", "false")
130645	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/createSnapshot")
130646	urls += "?" + c.urlParams_.Encode()
130647	req, err := http.NewRequest("POST", urls, body)
130648	if err != nil {
130649		return nil, err
130650	}
130651	req.Header = reqHeaders
130652	googleapi.Expand(req.URL, map[string]string{
130653		"project": c.project,
130654		"region":  c.region,
130655		"disk":    c.disk,
130656	})
130657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130658}
130659
130660// Do executes the "compute.regionDisks.createSnapshot" call.
130661// Exactly one of *Operation or error will be non-nil. Any non-2xx
130662// status code is an error. Response headers are in either
130663// *Operation.ServerResponse.Header or (if a response was returned at
130664// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130665// to check whether the returned error was because
130666// http.StatusNotModified was returned.
130667func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130668	gensupport.SetOptions(c.urlParams_, opts...)
130669	res, err := c.doRequest("json")
130670	if res != nil && res.StatusCode == http.StatusNotModified {
130671		if res.Body != nil {
130672			res.Body.Close()
130673		}
130674		return nil, &googleapi.Error{
130675			Code:   res.StatusCode,
130676			Header: res.Header,
130677		}
130678	}
130679	if err != nil {
130680		return nil, err
130681	}
130682	defer googleapi.CloseBody(res)
130683	if err := googleapi.CheckResponse(res); err != nil {
130684		return nil, err
130685	}
130686	ret := &Operation{
130687		ServerResponse: googleapi.ServerResponse{
130688			Header:         res.Header,
130689			HTTPStatusCode: res.StatusCode,
130690		},
130691	}
130692	target := &ret
130693	if err := gensupport.DecodeResponse(target, res); err != nil {
130694		return nil, err
130695	}
130696	return ret, nil
130697	// {
130698	//   "description": "Creates a snapshot of this regional disk.",
130699	//   "httpMethod": "POST",
130700	//   "id": "compute.regionDisks.createSnapshot",
130701	//   "parameterOrder": [
130702	//     "project",
130703	//     "region",
130704	//     "disk"
130705	//   ],
130706	//   "parameters": {
130707	//     "disk": {
130708	//       "description": "Name of the regional persistent disk to snapshot.",
130709	//       "location": "path",
130710	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130711	//       "required": true,
130712	//       "type": "string"
130713	//     },
130714	//     "project": {
130715	//       "description": "Project ID for this request.",
130716	//       "location": "path",
130717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130718	//       "required": true,
130719	//       "type": "string"
130720	//     },
130721	//     "region": {
130722	//       "description": "Name of the region for this request.",
130723	//       "location": "path",
130724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130725	//       "required": true,
130726	//       "type": "string"
130727	//     },
130728	//     "requestId": {
130729	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130730	//       "location": "query",
130731	//       "type": "string"
130732	//     }
130733	//   },
130734	//   "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
130735	//   "request": {
130736	//     "$ref": "Snapshot"
130737	//   },
130738	//   "response": {
130739	//     "$ref": "Operation"
130740	//   },
130741	//   "scopes": [
130742	//     "https://www.googleapis.com/auth/cloud-platform",
130743	//     "https://www.googleapis.com/auth/compute"
130744	//   ]
130745	// }
130746
130747}
130748
130749// method id "compute.regionDisks.delete":
130750
130751type RegionDisksDeleteCall struct {
130752	s          *Service
130753	project    string
130754	region     string
130755	disk       string
130756	urlParams_ gensupport.URLParams
130757	ctx_       context.Context
130758	header_    http.Header
130759}
130760
130761// Delete: Deletes the specified regional persistent disk. Deleting a
130762// regional disk removes all the replicas of its data permanently and is
130763// irreversible. However, deleting a disk does not delete any snapshots
130764// previously made from the disk. You must separately delete snapshots.
130765//
130766// - disk: Name of the regional persistent disk to delete.
130767// - project: Project ID for this request.
130768// - region: Name of the region for this request.
130769func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
130770	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130771	c.project = project
130772	c.region = region
130773	c.disk = disk
130774	return c
130775}
130776
130777// RequestId sets the optional parameter "requestId": An optional
130778// request ID to identify requests. Specify a unique request ID so that
130779// if you must retry your request, the server will know to ignore the
130780// request if it has already been completed.
130781//
130782// For example, consider a situation where you make an initial request
130783// and the request times out. If you make the request again with the
130784// same request ID, the server can check if original operation with the
130785// same request ID was received, and if so, will ignore the second
130786// request. This prevents clients from accidentally creating duplicate
130787// commitments.
130788//
130789// The request ID must be a valid UUID with the exception that zero UUID
130790// is not supported (00000000-0000-0000-0000-000000000000).
130791func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
130792	c.urlParams_.Set("requestId", requestId)
130793	return c
130794}
130795
130796// Fields allows partial responses to be retrieved. See
130797// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130798// for more information.
130799func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
130800	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130801	return c
130802}
130803
130804// Context sets the context to be used in this call's Do method. Any
130805// pending HTTP request will be aborted if the provided context is
130806// canceled.
130807func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
130808	c.ctx_ = ctx
130809	return c
130810}
130811
130812// Header returns an http.Header that can be modified by the caller to
130813// add HTTP headers to the request.
130814func (c *RegionDisksDeleteCall) Header() http.Header {
130815	if c.header_ == nil {
130816		c.header_ = make(http.Header)
130817	}
130818	return c.header_
130819}
130820
130821func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
130822	reqHeaders := make(http.Header)
130823	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130824	for k, v := range c.header_ {
130825		reqHeaders[k] = v
130826	}
130827	reqHeaders.Set("User-Agent", c.s.userAgent())
130828	var body io.Reader = nil
130829	c.urlParams_.Set("alt", alt)
130830	c.urlParams_.Set("prettyPrint", "false")
130831	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
130832	urls += "?" + c.urlParams_.Encode()
130833	req, err := http.NewRequest("DELETE", urls, body)
130834	if err != nil {
130835		return nil, err
130836	}
130837	req.Header = reqHeaders
130838	googleapi.Expand(req.URL, map[string]string{
130839		"project": c.project,
130840		"region":  c.region,
130841		"disk":    c.disk,
130842	})
130843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130844}
130845
130846// Do executes the "compute.regionDisks.delete" call.
130847// Exactly one of *Operation or error will be non-nil. Any non-2xx
130848// status code is an error. Response headers are in either
130849// *Operation.ServerResponse.Header or (if a response was returned at
130850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130851// to check whether the returned error was because
130852// http.StatusNotModified was returned.
130853func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130854	gensupport.SetOptions(c.urlParams_, opts...)
130855	res, err := c.doRequest("json")
130856	if res != nil && res.StatusCode == http.StatusNotModified {
130857		if res.Body != nil {
130858			res.Body.Close()
130859		}
130860		return nil, &googleapi.Error{
130861			Code:   res.StatusCode,
130862			Header: res.Header,
130863		}
130864	}
130865	if err != nil {
130866		return nil, err
130867	}
130868	defer googleapi.CloseBody(res)
130869	if err := googleapi.CheckResponse(res); err != nil {
130870		return nil, err
130871	}
130872	ret := &Operation{
130873		ServerResponse: googleapi.ServerResponse{
130874			Header:         res.Header,
130875			HTTPStatusCode: res.StatusCode,
130876		},
130877	}
130878	target := &ret
130879	if err := gensupport.DecodeResponse(target, res); err != nil {
130880		return nil, err
130881	}
130882	return ret, nil
130883	// {
130884	//   "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.",
130885	//   "httpMethod": "DELETE",
130886	//   "id": "compute.regionDisks.delete",
130887	//   "parameterOrder": [
130888	//     "project",
130889	//     "region",
130890	//     "disk"
130891	//   ],
130892	//   "parameters": {
130893	//     "disk": {
130894	//       "description": "Name of the regional persistent disk to delete.",
130895	//       "location": "path",
130896	//       "required": true,
130897	//       "type": "string"
130898	//     },
130899	//     "project": {
130900	//       "description": "Project ID for this request.",
130901	//       "location": "path",
130902	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130903	//       "required": true,
130904	//       "type": "string"
130905	//     },
130906	//     "region": {
130907	//       "description": "Name of the region for this request.",
130908	//       "location": "path",
130909	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130910	//       "required": true,
130911	//       "type": "string"
130912	//     },
130913	//     "requestId": {
130914	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130915	//       "location": "query",
130916	//       "type": "string"
130917	//     }
130918	//   },
130919	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
130920	//   "response": {
130921	//     "$ref": "Operation"
130922	//   },
130923	//   "scopes": [
130924	//     "https://www.googleapis.com/auth/cloud-platform",
130925	//     "https://www.googleapis.com/auth/compute"
130926	//   ]
130927	// }
130928
130929}
130930
130931// method id "compute.regionDisks.get":
130932
130933type RegionDisksGetCall struct {
130934	s            *Service
130935	project      string
130936	region       string
130937	disk         string
130938	urlParams_   gensupport.URLParams
130939	ifNoneMatch_ string
130940	ctx_         context.Context
130941	header_      http.Header
130942}
130943
130944// Get: Returns a specified regional persistent disk.
130945//
130946// - disk: Name of the regional persistent disk to return.
130947// - project: Project ID for this request.
130948// - region: Name of the region for this request.
130949func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
130950	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130951	c.project = project
130952	c.region = region
130953	c.disk = disk
130954	return c
130955}
130956
130957// Fields allows partial responses to be retrieved. See
130958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130959// for more information.
130960func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
130961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130962	return c
130963}
130964
130965// IfNoneMatch sets the optional parameter which makes the operation
130966// fail if the object's ETag matches the given value. This is useful for
130967// getting updates only after the object has changed since the last
130968// request. Use googleapi.IsNotModified to check whether the response
130969// error from Do is the result of In-None-Match.
130970func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
130971	c.ifNoneMatch_ = entityTag
130972	return c
130973}
130974
130975// Context sets the context to be used in this call's Do method. Any
130976// pending HTTP request will be aborted if the provided context is
130977// canceled.
130978func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
130979	c.ctx_ = ctx
130980	return c
130981}
130982
130983// Header returns an http.Header that can be modified by the caller to
130984// add HTTP headers to the request.
130985func (c *RegionDisksGetCall) Header() http.Header {
130986	if c.header_ == nil {
130987		c.header_ = make(http.Header)
130988	}
130989	return c.header_
130990}
130991
130992func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
130993	reqHeaders := make(http.Header)
130994	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130995	for k, v := range c.header_ {
130996		reqHeaders[k] = v
130997	}
130998	reqHeaders.Set("User-Agent", c.s.userAgent())
130999	if c.ifNoneMatch_ != "" {
131000		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131001	}
131002	var body io.Reader = nil
131003	c.urlParams_.Set("alt", alt)
131004	c.urlParams_.Set("prettyPrint", "false")
131005	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
131006	urls += "?" + c.urlParams_.Encode()
131007	req, err := http.NewRequest("GET", urls, body)
131008	if err != nil {
131009		return nil, err
131010	}
131011	req.Header = reqHeaders
131012	googleapi.Expand(req.URL, map[string]string{
131013		"project": c.project,
131014		"region":  c.region,
131015		"disk":    c.disk,
131016	})
131017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131018}
131019
131020// Do executes the "compute.regionDisks.get" call.
131021// Exactly one of *Disk or error will be non-nil. Any non-2xx status
131022// code is an error. Response headers are in either
131023// *Disk.ServerResponse.Header or (if a response was returned at all) in
131024// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
131025// whether the returned error was because http.StatusNotModified was
131026// returned.
131027func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
131028	gensupport.SetOptions(c.urlParams_, opts...)
131029	res, err := c.doRequest("json")
131030	if res != nil && res.StatusCode == http.StatusNotModified {
131031		if res.Body != nil {
131032			res.Body.Close()
131033		}
131034		return nil, &googleapi.Error{
131035			Code:   res.StatusCode,
131036			Header: res.Header,
131037		}
131038	}
131039	if err != nil {
131040		return nil, err
131041	}
131042	defer googleapi.CloseBody(res)
131043	if err := googleapi.CheckResponse(res); err != nil {
131044		return nil, err
131045	}
131046	ret := &Disk{
131047		ServerResponse: googleapi.ServerResponse{
131048			Header:         res.Header,
131049			HTTPStatusCode: res.StatusCode,
131050		},
131051	}
131052	target := &ret
131053	if err := gensupport.DecodeResponse(target, res); err != nil {
131054		return nil, err
131055	}
131056	return ret, nil
131057	// {
131058	//   "description": "Returns a specified regional persistent disk.",
131059	//   "httpMethod": "GET",
131060	//   "id": "compute.regionDisks.get",
131061	//   "parameterOrder": [
131062	//     "project",
131063	//     "region",
131064	//     "disk"
131065	//   ],
131066	//   "parameters": {
131067	//     "disk": {
131068	//       "description": "Name of the regional persistent disk to return.",
131069	//       "location": "path",
131070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131071	//       "required": true,
131072	//       "type": "string"
131073	//     },
131074	//     "project": {
131075	//       "description": "Project ID for this request.",
131076	//       "location": "path",
131077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131078	//       "required": true,
131079	//       "type": "string"
131080	//     },
131081	//     "region": {
131082	//       "description": "Name of the region for this request.",
131083	//       "location": "path",
131084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131085	//       "required": true,
131086	//       "type": "string"
131087	//     }
131088	//   },
131089	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
131090	//   "response": {
131091	//     "$ref": "Disk"
131092	//   },
131093	//   "scopes": [
131094	//     "https://www.googleapis.com/auth/cloud-platform",
131095	//     "https://www.googleapis.com/auth/compute",
131096	//     "https://www.googleapis.com/auth/compute.readonly"
131097	//   ]
131098	// }
131099
131100}
131101
131102// method id "compute.regionDisks.getIamPolicy":
131103
131104type RegionDisksGetIamPolicyCall struct {
131105	s            *Service
131106	project      string
131107	region       string
131108	resource     string
131109	urlParams_   gensupport.URLParams
131110	ifNoneMatch_ string
131111	ctx_         context.Context
131112	header_      http.Header
131113}
131114
131115// GetIamPolicy: Gets the access control policy for a resource. May be
131116// empty if no such policy or resource exists.
131117//
131118// - project: Project ID for this request.
131119// - region: The name of the region for this request.
131120// - resource: Name or id of the resource for this request.
131121func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
131122	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131123	c.project = project
131124	c.region = region
131125	c.resource = resource
131126	return c
131127}
131128
131129// OptionsRequestedPolicyVersion sets the optional parameter
131130// "optionsRequestedPolicyVersion": Requested IAM Policy version.
131131func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
131132	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
131133	return c
131134}
131135
131136// Fields allows partial responses to be retrieved. See
131137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131138// for more information.
131139func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
131140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131141	return c
131142}
131143
131144// IfNoneMatch sets the optional parameter which makes the operation
131145// fail if the object's ETag matches the given value. This is useful for
131146// getting updates only after the object has changed since the last
131147// request. Use googleapi.IsNotModified to check whether the response
131148// error from Do is the result of In-None-Match.
131149func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
131150	c.ifNoneMatch_ = entityTag
131151	return c
131152}
131153
131154// Context sets the context to be used in this call's Do method. Any
131155// pending HTTP request will be aborted if the provided context is
131156// canceled.
131157func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
131158	c.ctx_ = ctx
131159	return c
131160}
131161
131162// Header returns an http.Header that can be modified by the caller to
131163// add HTTP headers to the request.
131164func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
131165	if c.header_ == nil {
131166		c.header_ = make(http.Header)
131167	}
131168	return c.header_
131169}
131170
131171func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
131172	reqHeaders := make(http.Header)
131173	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131174	for k, v := range c.header_ {
131175		reqHeaders[k] = v
131176	}
131177	reqHeaders.Set("User-Agent", c.s.userAgent())
131178	if c.ifNoneMatch_ != "" {
131179		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131180	}
131181	var body io.Reader = nil
131182	c.urlParams_.Set("alt", alt)
131183	c.urlParams_.Set("prettyPrint", "false")
131184	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy")
131185	urls += "?" + c.urlParams_.Encode()
131186	req, err := http.NewRequest("GET", urls, body)
131187	if err != nil {
131188		return nil, err
131189	}
131190	req.Header = reqHeaders
131191	googleapi.Expand(req.URL, map[string]string{
131192		"project":  c.project,
131193		"region":   c.region,
131194		"resource": c.resource,
131195	})
131196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131197}
131198
131199// Do executes the "compute.regionDisks.getIamPolicy" call.
131200// Exactly one of *Policy or error will be non-nil. Any non-2xx status
131201// code is an error. Response headers are in either
131202// *Policy.ServerResponse.Header or (if a response was returned at all)
131203// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
131204// check whether the returned error was because http.StatusNotModified
131205// was returned.
131206func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
131207	gensupport.SetOptions(c.urlParams_, opts...)
131208	res, err := c.doRequest("json")
131209	if res != nil && res.StatusCode == http.StatusNotModified {
131210		if res.Body != nil {
131211			res.Body.Close()
131212		}
131213		return nil, &googleapi.Error{
131214			Code:   res.StatusCode,
131215			Header: res.Header,
131216		}
131217	}
131218	if err != nil {
131219		return nil, err
131220	}
131221	defer googleapi.CloseBody(res)
131222	if err := googleapi.CheckResponse(res); err != nil {
131223		return nil, err
131224	}
131225	ret := &Policy{
131226		ServerResponse: googleapi.ServerResponse{
131227			Header:         res.Header,
131228			HTTPStatusCode: res.StatusCode,
131229		},
131230	}
131231	target := &ret
131232	if err := gensupport.DecodeResponse(target, res); err != nil {
131233		return nil, err
131234	}
131235	return ret, nil
131236	// {
131237	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
131238	//   "httpMethod": "GET",
131239	//   "id": "compute.regionDisks.getIamPolicy",
131240	//   "parameterOrder": [
131241	//     "project",
131242	//     "region",
131243	//     "resource"
131244	//   ],
131245	//   "parameters": {
131246	//     "optionsRequestedPolicyVersion": {
131247	//       "description": "Requested IAM Policy version.",
131248	//       "format": "int32",
131249	//       "location": "query",
131250	//       "type": "integer"
131251	//     },
131252	//     "project": {
131253	//       "description": "Project ID for this request.",
131254	//       "location": "path",
131255	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131256	//       "required": true,
131257	//       "type": "string"
131258	//     },
131259	//     "region": {
131260	//       "description": "The name of the region for this request.",
131261	//       "location": "path",
131262	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131263	//       "required": true,
131264	//       "type": "string"
131265	//     },
131266	//     "resource": {
131267	//       "description": "Name or id of the resource for this request.",
131268	//       "location": "path",
131269	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131270	//       "required": true,
131271	//       "type": "string"
131272	//     }
131273	//   },
131274	//   "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy",
131275	//   "response": {
131276	//     "$ref": "Policy"
131277	//   },
131278	//   "scopes": [
131279	//     "https://www.googleapis.com/auth/cloud-platform",
131280	//     "https://www.googleapis.com/auth/compute",
131281	//     "https://www.googleapis.com/auth/compute.readonly"
131282	//   ]
131283	// }
131284
131285}
131286
131287// method id "compute.regionDisks.insert":
131288
131289type RegionDisksInsertCall struct {
131290	s          *Service
131291	project    string
131292	region     string
131293	disk       *Disk
131294	urlParams_ gensupport.URLParams
131295	ctx_       context.Context
131296	header_    http.Header
131297}
131298
131299// Insert: Creates a persistent regional disk in the specified project
131300// using the data included in the request.
131301//
131302// - project: Project ID for this request.
131303// - region: Name of the region for this request.
131304func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
131305	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131306	c.project = project
131307	c.region = region
131308	c.disk = disk
131309	return c
131310}
131311
131312// RequestId sets the optional parameter "requestId": An optional
131313// request ID to identify requests. Specify a unique request ID so that
131314// if you must retry your request, the server will know to ignore the
131315// request if it has already been completed.
131316//
131317// For example, consider a situation where you make an initial request
131318// and the request times out. If you make the request again with the
131319// same request ID, the server can check if original operation with the
131320// same request ID was received, and if so, will ignore the second
131321// request. This prevents clients from accidentally creating duplicate
131322// commitments.
131323//
131324// The request ID must be a valid UUID with the exception that zero UUID
131325// is not supported (00000000-0000-0000-0000-000000000000).
131326func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
131327	c.urlParams_.Set("requestId", requestId)
131328	return c
131329}
131330
131331// SourceImage sets the optional parameter "sourceImage": Source image
131332// to restore onto a disk. This field is optional.
131333func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
131334	c.urlParams_.Set("sourceImage", sourceImage)
131335	return c
131336}
131337
131338// Fields allows partial responses to be retrieved. See
131339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131340// for more information.
131341func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
131342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131343	return c
131344}
131345
131346// Context sets the context to be used in this call's Do method. Any
131347// pending HTTP request will be aborted if the provided context is
131348// canceled.
131349func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
131350	c.ctx_ = ctx
131351	return c
131352}
131353
131354// Header returns an http.Header that can be modified by the caller to
131355// add HTTP headers to the request.
131356func (c *RegionDisksInsertCall) Header() http.Header {
131357	if c.header_ == nil {
131358		c.header_ = make(http.Header)
131359	}
131360	return c.header_
131361}
131362
131363func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
131364	reqHeaders := make(http.Header)
131365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131366	for k, v := range c.header_ {
131367		reqHeaders[k] = v
131368	}
131369	reqHeaders.Set("User-Agent", c.s.userAgent())
131370	var body io.Reader = nil
131371	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
131372	if err != nil {
131373		return nil, err
131374	}
131375	reqHeaders.Set("Content-Type", "application/json")
131376	c.urlParams_.Set("alt", alt)
131377	c.urlParams_.Set("prettyPrint", "false")
131378	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
131379	urls += "?" + c.urlParams_.Encode()
131380	req, err := http.NewRequest("POST", urls, body)
131381	if err != nil {
131382		return nil, err
131383	}
131384	req.Header = reqHeaders
131385	googleapi.Expand(req.URL, map[string]string{
131386		"project": c.project,
131387		"region":  c.region,
131388	})
131389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131390}
131391
131392// Do executes the "compute.regionDisks.insert" call.
131393// Exactly one of *Operation or error will be non-nil. Any non-2xx
131394// status code is an error. Response headers are in either
131395// *Operation.ServerResponse.Header or (if a response was returned at
131396// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131397// to check whether the returned error was because
131398// http.StatusNotModified was returned.
131399func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131400	gensupport.SetOptions(c.urlParams_, opts...)
131401	res, err := c.doRequest("json")
131402	if res != nil && res.StatusCode == http.StatusNotModified {
131403		if res.Body != nil {
131404			res.Body.Close()
131405		}
131406		return nil, &googleapi.Error{
131407			Code:   res.StatusCode,
131408			Header: res.Header,
131409		}
131410	}
131411	if err != nil {
131412		return nil, err
131413	}
131414	defer googleapi.CloseBody(res)
131415	if err := googleapi.CheckResponse(res); err != nil {
131416		return nil, err
131417	}
131418	ret := &Operation{
131419		ServerResponse: googleapi.ServerResponse{
131420			Header:         res.Header,
131421			HTTPStatusCode: res.StatusCode,
131422		},
131423	}
131424	target := &ret
131425	if err := gensupport.DecodeResponse(target, res); err != nil {
131426		return nil, err
131427	}
131428	return ret, nil
131429	// {
131430	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
131431	//   "httpMethod": "POST",
131432	//   "id": "compute.regionDisks.insert",
131433	//   "parameterOrder": [
131434	//     "project",
131435	//     "region"
131436	//   ],
131437	//   "parameters": {
131438	//     "project": {
131439	//       "description": "Project ID for this request.",
131440	//       "location": "path",
131441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131442	//       "required": true,
131443	//       "type": "string"
131444	//     },
131445	//     "region": {
131446	//       "description": "Name of the region for this request.",
131447	//       "location": "path",
131448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131449	//       "required": true,
131450	//       "type": "string"
131451	//     },
131452	//     "requestId": {
131453	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131454	//       "location": "query",
131455	//       "type": "string"
131456	//     },
131457	//     "sourceImage": {
131458	//       "description": "Source image to restore onto a disk. This field is optional.",
131459	//       "location": "query",
131460	//       "type": "string"
131461	//     }
131462	//   },
131463	//   "path": "projects/{project}/regions/{region}/disks",
131464	//   "request": {
131465	//     "$ref": "Disk"
131466	//   },
131467	//   "response": {
131468	//     "$ref": "Operation"
131469	//   },
131470	//   "scopes": [
131471	//     "https://www.googleapis.com/auth/cloud-platform",
131472	//     "https://www.googleapis.com/auth/compute"
131473	//   ]
131474	// }
131475
131476}
131477
131478// method id "compute.regionDisks.list":
131479
131480type RegionDisksListCall struct {
131481	s            *Service
131482	project      string
131483	region       string
131484	urlParams_   gensupport.URLParams
131485	ifNoneMatch_ string
131486	ctx_         context.Context
131487	header_      http.Header
131488}
131489
131490// List: Retrieves the list of persistent disks contained within the
131491// specified region.
131492//
131493// - project: Project ID for this request.
131494// - region: Name of the region for this request.
131495func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
131496	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131497	c.project = project
131498	c.region = region
131499	return c
131500}
131501
131502// Filter sets the optional parameter "filter": A filter expression that
131503// filters resources listed in the response. The expression must specify
131504// the field name, a comparison operator, and the value that you want to
131505// use for filtering. The value must be a string, a number, or a
131506// boolean. The comparison operator must be either `=`, `!=`, `>`, or
131507// `<`.
131508//
131509// For example, if you are filtering Compute Engine instances, you can
131510// exclude instances named `example-instance` by specifying `name !=
131511// example-instance`.
131512//
131513// You can also filter nested fields. For example, you could specify
131514// `scheduling.automaticRestart = false` to include instances only if
131515// they are not scheduled for automatic restarts. You can use filtering
131516// on nested fields to filter based on resource labels.
131517//
131518// To filter on multiple expressions, provide each separate expression
131519// within parentheses. For example: ``` (scheduling.automaticRestart =
131520// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
131521// is an `AND` expression. However, you can include `AND` and `OR`
131522// expressions explicitly. For example: ``` (cpuPlatform = "Intel
131523// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
131524// (scheduling.automaticRestart = true) ```
131525func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
131526	c.urlParams_.Set("filter", filter)
131527	return c
131528}
131529
131530// MaxResults sets the optional parameter "maxResults": The maximum
131531// number of results per page that should be returned. If the number of
131532// available results is larger than `maxResults`, Compute Engine returns
131533// a `nextPageToken` that can be used to get the next page of results in
131534// subsequent list requests. Acceptable values are `0` to `500`,
131535// inclusive. (Default: `500`)
131536func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
131537	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131538	return c
131539}
131540
131541// OrderBy sets the optional parameter "orderBy": Sorts list results by
131542// a certain order. By default, results are returned in alphanumerical
131543// order based on the resource name.
131544//
131545// You can also sort results in descending order based on the creation
131546// timestamp using `orderBy="creationTimestamp desc". This sorts
131547// results based on the `creationTimestamp` field in reverse
131548// chronological order (newest result first). Use this to sort resources
131549// like operations so that the newest operation is returned
131550// first.
131551//
131552// Currently, only sorting by `name` or `creationTimestamp desc` is
131553// supported.
131554func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
131555	c.urlParams_.Set("orderBy", orderBy)
131556	return c
131557}
131558
131559// PageToken sets the optional parameter "pageToken": Specifies a page
131560// token to use. Set `pageToken` to the `nextPageToken` returned by a
131561// previous list request to get the next page of results.
131562func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
131563	c.urlParams_.Set("pageToken", pageToken)
131564	return c
131565}
131566
131567// ReturnPartialSuccess sets the optional parameter
131568// "returnPartialSuccess": Opt-in for partial success behavior which
131569// provides partial results in case of failure. The default value is
131570// false.
131571func (c *RegionDisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDisksListCall {
131572	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
131573	return c
131574}
131575
131576// Fields allows partial responses to be retrieved. See
131577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131578// for more information.
131579func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
131580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131581	return c
131582}
131583
131584// IfNoneMatch sets the optional parameter which makes the operation
131585// fail if the object's ETag matches the given value. This is useful for
131586// getting updates only after the object has changed since the last
131587// request. Use googleapi.IsNotModified to check whether the response
131588// error from Do is the result of In-None-Match.
131589func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
131590	c.ifNoneMatch_ = entityTag
131591	return c
131592}
131593
131594// Context sets the context to be used in this call's Do method. Any
131595// pending HTTP request will be aborted if the provided context is
131596// canceled.
131597func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
131598	c.ctx_ = ctx
131599	return c
131600}
131601
131602// Header returns an http.Header that can be modified by the caller to
131603// add HTTP headers to the request.
131604func (c *RegionDisksListCall) Header() http.Header {
131605	if c.header_ == nil {
131606		c.header_ = make(http.Header)
131607	}
131608	return c.header_
131609}
131610
131611func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
131612	reqHeaders := make(http.Header)
131613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131614	for k, v := range c.header_ {
131615		reqHeaders[k] = v
131616	}
131617	reqHeaders.Set("User-Agent", c.s.userAgent())
131618	if c.ifNoneMatch_ != "" {
131619		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131620	}
131621	var body io.Reader = nil
131622	c.urlParams_.Set("alt", alt)
131623	c.urlParams_.Set("prettyPrint", "false")
131624	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
131625	urls += "?" + c.urlParams_.Encode()
131626	req, err := http.NewRequest("GET", urls, body)
131627	if err != nil {
131628		return nil, err
131629	}
131630	req.Header = reqHeaders
131631	googleapi.Expand(req.URL, map[string]string{
131632		"project": c.project,
131633		"region":  c.region,
131634	})
131635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131636}
131637
131638// Do executes the "compute.regionDisks.list" call.
131639// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
131640// code is an error. Response headers are in either
131641// *DiskList.ServerResponse.Header or (if a response was returned at
131642// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131643// to check whether the returned error was because
131644// http.StatusNotModified was returned.
131645func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
131646	gensupport.SetOptions(c.urlParams_, opts...)
131647	res, err := c.doRequest("json")
131648	if res != nil && res.StatusCode == http.StatusNotModified {
131649		if res.Body != nil {
131650			res.Body.Close()
131651		}
131652		return nil, &googleapi.Error{
131653			Code:   res.StatusCode,
131654			Header: res.Header,
131655		}
131656	}
131657	if err != nil {
131658		return nil, err
131659	}
131660	defer googleapi.CloseBody(res)
131661	if err := googleapi.CheckResponse(res); err != nil {
131662		return nil, err
131663	}
131664	ret := &DiskList{
131665		ServerResponse: googleapi.ServerResponse{
131666			Header:         res.Header,
131667			HTTPStatusCode: res.StatusCode,
131668		},
131669	}
131670	target := &ret
131671	if err := gensupport.DecodeResponse(target, res); err != nil {
131672		return nil, err
131673	}
131674	return ret, nil
131675	// {
131676	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
131677	//   "httpMethod": "GET",
131678	//   "id": "compute.regionDisks.list",
131679	//   "parameterOrder": [
131680	//     "project",
131681	//     "region"
131682	//   ],
131683	//   "parameters": {
131684	//     "filter": {
131685	//       "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) ```",
131686	//       "location": "query",
131687	//       "type": "string"
131688	//     },
131689	//     "maxResults": {
131690	//       "default": "500",
131691	//       "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`)",
131692	//       "format": "uint32",
131693	//       "location": "query",
131694	//       "minimum": "0",
131695	//       "type": "integer"
131696	//     },
131697	//     "orderBy": {
131698	//       "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.",
131699	//       "location": "query",
131700	//       "type": "string"
131701	//     },
131702	//     "pageToken": {
131703	//       "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.",
131704	//       "location": "query",
131705	//       "type": "string"
131706	//     },
131707	//     "project": {
131708	//       "description": "Project ID for this request.",
131709	//       "location": "path",
131710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131711	//       "required": true,
131712	//       "type": "string"
131713	//     },
131714	//     "region": {
131715	//       "description": "Name of the region for this request.",
131716	//       "location": "path",
131717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131718	//       "required": true,
131719	//       "type": "string"
131720	//     },
131721	//     "returnPartialSuccess": {
131722	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
131723	//       "location": "query",
131724	//       "type": "boolean"
131725	//     }
131726	//   },
131727	//   "path": "projects/{project}/regions/{region}/disks",
131728	//   "response": {
131729	//     "$ref": "DiskList"
131730	//   },
131731	//   "scopes": [
131732	//     "https://www.googleapis.com/auth/cloud-platform",
131733	//     "https://www.googleapis.com/auth/compute",
131734	//     "https://www.googleapis.com/auth/compute.readonly"
131735	//   ]
131736	// }
131737
131738}
131739
131740// Pages invokes f for each page of results.
131741// A non-nil error returned from f will halt the iteration.
131742// The provided context supersedes any context provided to the Context method.
131743func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
131744	c.ctx_ = ctx
131745	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131746	for {
131747		x, err := c.Do()
131748		if err != nil {
131749			return err
131750		}
131751		if err := f(x); err != nil {
131752			return err
131753		}
131754		if x.NextPageToken == "" {
131755			return nil
131756		}
131757		c.PageToken(x.NextPageToken)
131758	}
131759}
131760
131761// method id "compute.regionDisks.removeResourcePolicies":
131762
131763type RegionDisksRemoveResourcePoliciesCall struct {
131764	s                                        *Service
131765	project                                  string
131766	region                                   string
131767	disk                                     string
131768	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
131769	urlParams_                               gensupport.URLParams
131770	ctx_                                     context.Context
131771	header_                                  http.Header
131772}
131773
131774// RemoveResourcePolicies: Removes resource policies from a regional
131775// disk.
131776//
131777// - disk: The disk name for this request.
131778// - project: Project ID for this request.
131779// - region: The name of the region for this request.
131780func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
131781	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131782	c.project = project
131783	c.region = region
131784	c.disk = disk
131785	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
131786	return c
131787}
131788
131789// RequestId sets the optional parameter "requestId": An optional
131790// request ID to identify requests. Specify a unique request ID so that
131791// if you must retry your request, the server will know to ignore the
131792// request if it has already been completed.
131793//
131794// For example, consider a situation where you make an initial request
131795// and the request times out. If you make the request again with the
131796// same request ID, the server can check if original operation with the
131797// same request ID was received, and if so, will ignore the second
131798// request. This prevents clients from accidentally creating duplicate
131799// commitments.
131800//
131801// The request ID must be a valid UUID with the exception that zero UUID
131802// is not supported (00000000-0000-0000-0000-000000000000).
131803func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
131804	c.urlParams_.Set("requestId", requestId)
131805	return c
131806}
131807
131808// Fields allows partial responses to be retrieved. See
131809// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131810// for more information.
131811func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
131812	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131813	return c
131814}
131815
131816// Context sets the context to be used in this call's Do method. Any
131817// pending HTTP request will be aborted if the provided context is
131818// canceled.
131819func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
131820	c.ctx_ = ctx
131821	return c
131822}
131823
131824// Header returns an http.Header that can be modified by the caller to
131825// add HTTP headers to the request.
131826func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
131827	if c.header_ == nil {
131828		c.header_ = make(http.Header)
131829	}
131830	return c.header_
131831}
131832
131833func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
131834	reqHeaders := make(http.Header)
131835	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131836	for k, v := range c.header_ {
131837		reqHeaders[k] = v
131838	}
131839	reqHeaders.Set("User-Agent", c.s.userAgent())
131840	var body io.Reader = nil
131841	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
131842	if err != nil {
131843		return nil, err
131844	}
131845	reqHeaders.Set("Content-Type", "application/json")
131846	c.urlParams_.Set("alt", alt)
131847	c.urlParams_.Set("prettyPrint", "false")
131848	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
131849	urls += "?" + c.urlParams_.Encode()
131850	req, err := http.NewRequest("POST", urls, body)
131851	if err != nil {
131852		return nil, err
131853	}
131854	req.Header = reqHeaders
131855	googleapi.Expand(req.URL, map[string]string{
131856		"project": c.project,
131857		"region":  c.region,
131858		"disk":    c.disk,
131859	})
131860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131861}
131862
131863// Do executes the "compute.regionDisks.removeResourcePolicies" call.
131864// Exactly one of *Operation or error will be non-nil. Any non-2xx
131865// status code is an error. Response headers are in either
131866// *Operation.ServerResponse.Header or (if a response was returned at
131867// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131868// to check whether the returned error was because
131869// http.StatusNotModified was returned.
131870func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131871	gensupport.SetOptions(c.urlParams_, opts...)
131872	res, err := c.doRequest("json")
131873	if res != nil && res.StatusCode == http.StatusNotModified {
131874		if res.Body != nil {
131875			res.Body.Close()
131876		}
131877		return nil, &googleapi.Error{
131878			Code:   res.StatusCode,
131879			Header: res.Header,
131880		}
131881	}
131882	if err != nil {
131883		return nil, err
131884	}
131885	defer googleapi.CloseBody(res)
131886	if err := googleapi.CheckResponse(res); err != nil {
131887		return nil, err
131888	}
131889	ret := &Operation{
131890		ServerResponse: googleapi.ServerResponse{
131891			Header:         res.Header,
131892			HTTPStatusCode: res.StatusCode,
131893		},
131894	}
131895	target := &ret
131896	if err := gensupport.DecodeResponse(target, res); err != nil {
131897		return nil, err
131898	}
131899	return ret, nil
131900	// {
131901	//   "description": "Removes resource policies from a regional disk.",
131902	//   "httpMethod": "POST",
131903	//   "id": "compute.regionDisks.removeResourcePolicies",
131904	//   "parameterOrder": [
131905	//     "project",
131906	//     "region",
131907	//     "disk"
131908	//   ],
131909	//   "parameters": {
131910	//     "disk": {
131911	//       "description": "The disk name for this request.",
131912	//       "location": "path",
131913	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131914	//       "required": true,
131915	//       "type": "string"
131916	//     },
131917	//     "project": {
131918	//       "description": "Project ID for this request.",
131919	//       "location": "path",
131920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131921	//       "required": true,
131922	//       "type": "string"
131923	//     },
131924	//     "region": {
131925	//       "description": "The name of the region for this request.",
131926	//       "location": "path",
131927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131928	//       "required": true,
131929	//       "type": "string"
131930	//     },
131931	//     "requestId": {
131932	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131933	//       "location": "query",
131934	//       "type": "string"
131935	//     }
131936	//   },
131937	//   "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
131938	//   "request": {
131939	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
131940	//   },
131941	//   "response": {
131942	//     "$ref": "Operation"
131943	//   },
131944	//   "scopes": [
131945	//     "https://www.googleapis.com/auth/cloud-platform",
131946	//     "https://www.googleapis.com/auth/compute"
131947	//   ]
131948	// }
131949
131950}
131951
131952// method id "compute.regionDisks.resize":
131953
131954type RegionDisksResizeCall struct {
131955	s                        *Service
131956	project                  string
131957	region                   string
131958	disk                     string
131959	regiondisksresizerequest *RegionDisksResizeRequest
131960	urlParams_               gensupport.URLParams
131961	ctx_                     context.Context
131962	header_                  http.Header
131963}
131964
131965// Resize: Resizes the specified regional persistent disk.
131966//
131967// - disk: Name of the regional persistent disk.
131968// - project: The project ID for this request.
131969// - region: Name of the region for this request.
131970func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
131971	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131972	c.project = project
131973	c.region = region
131974	c.disk = disk
131975	c.regiondisksresizerequest = regiondisksresizerequest
131976	return c
131977}
131978
131979// RequestId sets the optional parameter "requestId": An optional
131980// request ID to identify requests. Specify a unique request ID so that
131981// if you must retry your request, the server will know to ignore the
131982// request if it has already been completed.
131983//
131984// For example, consider a situation where you make an initial request
131985// and the request times out. If you make the request again with the
131986// same request ID, the server can check if original operation with the
131987// same request ID was received, and if so, will ignore the second
131988// request. This prevents clients from accidentally creating duplicate
131989// commitments.
131990//
131991// The request ID must be a valid UUID with the exception that zero UUID
131992// is not supported (00000000-0000-0000-0000-000000000000).
131993func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
131994	c.urlParams_.Set("requestId", requestId)
131995	return c
131996}
131997
131998// Fields allows partial responses to be retrieved. See
131999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132000// for more information.
132001func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
132002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132003	return c
132004}
132005
132006// Context sets the context to be used in this call's Do method. Any
132007// pending HTTP request will be aborted if the provided context is
132008// canceled.
132009func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
132010	c.ctx_ = ctx
132011	return c
132012}
132013
132014// Header returns an http.Header that can be modified by the caller to
132015// add HTTP headers to the request.
132016func (c *RegionDisksResizeCall) Header() http.Header {
132017	if c.header_ == nil {
132018		c.header_ = make(http.Header)
132019	}
132020	return c.header_
132021}
132022
132023func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
132024	reqHeaders := make(http.Header)
132025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132026	for k, v := range c.header_ {
132027		reqHeaders[k] = v
132028	}
132029	reqHeaders.Set("User-Agent", c.s.userAgent())
132030	var body io.Reader = nil
132031	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
132032	if err != nil {
132033		return nil, err
132034	}
132035	reqHeaders.Set("Content-Type", "application/json")
132036	c.urlParams_.Set("alt", alt)
132037	c.urlParams_.Set("prettyPrint", "false")
132038	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/resize")
132039	urls += "?" + c.urlParams_.Encode()
132040	req, err := http.NewRequest("POST", urls, body)
132041	if err != nil {
132042		return nil, err
132043	}
132044	req.Header = reqHeaders
132045	googleapi.Expand(req.URL, map[string]string{
132046		"project": c.project,
132047		"region":  c.region,
132048		"disk":    c.disk,
132049	})
132050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132051}
132052
132053// Do executes the "compute.regionDisks.resize" call.
132054// Exactly one of *Operation or error will be non-nil. Any non-2xx
132055// status code is an error. Response headers are in either
132056// *Operation.ServerResponse.Header or (if a response was returned at
132057// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132058// to check whether the returned error was because
132059// http.StatusNotModified was returned.
132060func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132061	gensupport.SetOptions(c.urlParams_, opts...)
132062	res, err := c.doRequest("json")
132063	if res != nil && res.StatusCode == http.StatusNotModified {
132064		if res.Body != nil {
132065			res.Body.Close()
132066		}
132067		return nil, &googleapi.Error{
132068			Code:   res.StatusCode,
132069			Header: res.Header,
132070		}
132071	}
132072	if err != nil {
132073		return nil, err
132074	}
132075	defer googleapi.CloseBody(res)
132076	if err := googleapi.CheckResponse(res); err != nil {
132077		return nil, err
132078	}
132079	ret := &Operation{
132080		ServerResponse: googleapi.ServerResponse{
132081			Header:         res.Header,
132082			HTTPStatusCode: res.StatusCode,
132083		},
132084	}
132085	target := &ret
132086	if err := gensupport.DecodeResponse(target, res); err != nil {
132087		return nil, err
132088	}
132089	return ret, nil
132090	// {
132091	//   "description": "Resizes the specified regional persistent disk.",
132092	//   "httpMethod": "POST",
132093	//   "id": "compute.regionDisks.resize",
132094	//   "parameterOrder": [
132095	//     "project",
132096	//     "region",
132097	//     "disk"
132098	//   ],
132099	//   "parameters": {
132100	//     "disk": {
132101	//       "description": "Name of the regional persistent disk.",
132102	//       "location": "path",
132103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132104	//       "required": true,
132105	//       "type": "string"
132106	//     },
132107	//     "project": {
132108	//       "description": "The project ID for this request.",
132109	//       "location": "path",
132110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132111	//       "required": true,
132112	//       "type": "string"
132113	//     },
132114	//     "region": {
132115	//       "description": "Name of the region for this request.",
132116	//       "location": "path",
132117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132118	//       "required": true,
132119	//       "type": "string"
132120	//     },
132121	//     "requestId": {
132122	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132123	//       "location": "query",
132124	//       "type": "string"
132125	//     }
132126	//   },
132127	//   "path": "projects/{project}/regions/{region}/disks/{disk}/resize",
132128	//   "request": {
132129	//     "$ref": "RegionDisksResizeRequest"
132130	//   },
132131	//   "response": {
132132	//     "$ref": "Operation"
132133	//   },
132134	//   "scopes": [
132135	//     "https://www.googleapis.com/auth/cloud-platform",
132136	//     "https://www.googleapis.com/auth/compute"
132137	//   ]
132138	// }
132139
132140}
132141
132142// method id "compute.regionDisks.setIamPolicy":
132143
132144type RegionDisksSetIamPolicyCall struct {
132145	s                      *Service
132146	project                string
132147	region                 string
132148	resource               string
132149	regionsetpolicyrequest *RegionSetPolicyRequest
132150	urlParams_             gensupport.URLParams
132151	ctx_                   context.Context
132152	header_                http.Header
132153}
132154
132155// SetIamPolicy: Sets the access control policy on the specified
132156// resource. Replaces any existing policy.
132157//
132158// - project: Project ID for this request.
132159// - region: The name of the region for this request.
132160// - resource: Name or id of the resource for this request.
132161func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
132162	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132163	c.project = project
132164	c.region = region
132165	c.resource = resource
132166	c.regionsetpolicyrequest = regionsetpolicyrequest
132167	return c
132168}
132169
132170// Fields allows partial responses to be retrieved. See
132171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132172// for more information.
132173func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
132174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132175	return c
132176}
132177
132178// Context sets the context to be used in this call's Do method. Any
132179// pending HTTP request will be aborted if the provided context is
132180// canceled.
132181func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
132182	c.ctx_ = ctx
132183	return c
132184}
132185
132186// Header returns an http.Header that can be modified by the caller to
132187// add HTTP headers to the request.
132188func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
132189	if c.header_ == nil {
132190		c.header_ = make(http.Header)
132191	}
132192	return c.header_
132193}
132194
132195func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
132196	reqHeaders := make(http.Header)
132197	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132198	for k, v := range c.header_ {
132199		reqHeaders[k] = v
132200	}
132201	reqHeaders.Set("User-Agent", c.s.userAgent())
132202	var body io.Reader = nil
132203	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
132204	if err != nil {
132205		return nil, err
132206	}
132207	reqHeaders.Set("Content-Type", "application/json")
132208	c.urlParams_.Set("alt", alt)
132209	c.urlParams_.Set("prettyPrint", "false")
132210	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy")
132211	urls += "?" + c.urlParams_.Encode()
132212	req, err := http.NewRequest("POST", urls, body)
132213	if err != nil {
132214		return nil, err
132215	}
132216	req.Header = reqHeaders
132217	googleapi.Expand(req.URL, map[string]string{
132218		"project":  c.project,
132219		"region":   c.region,
132220		"resource": c.resource,
132221	})
132222	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132223}
132224
132225// Do executes the "compute.regionDisks.setIamPolicy" call.
132226// Exactly one of *Policy or error will be non-nil. Any non-2xx status
132227// code is an error. Response headers are in either
132228// *Policy.ServerResponse.Header or (if a response was returned at all)
132229// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
132230// check whether the returned error was because http.StatusNotModified
132231// was returned.
132232func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
132233	gensupport.SetOptions(c.urlParams_, opts...)
132234	res, err := c.doRequest("json")
132235	if res != nil && res.StatusCode == http.StatusNotModified {
132236		if res.Body != nil {
132237			res.Body.Close()
132238		}
132239		return nil, &googleapi.Error{
132240			Code:   res.StatusCode,
132241			Header: res.Header,
132242		}
132243	}
132244	if err != nil {
132245		return nil, err
132246	}
132247	defer googleapi.CloseBody(res)
132248	if err := googleapi.CheckResponse(res); err != nil {
132249		return nil, err
132250	}
132251	ret := &Policy{
132252		ServerResponse: googleapi.ServerResponse{
132253			Header:         res.Header,
132254			HTTPStatusCode: res.StatusCode,
132255		},
132256	}
132257	target := &ret
132258	if err := gensupport.DecodeResponse(target, res); err != nil {
132259		return nil, err
132260	}
132261	return ret, nil
132262	// {
132263	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
132264	//   "httpMethod": "POST",
132265	//   "id": "compute.regionDisks.setIamPolicy",
132266	//   "parameterOrder": [
132267	//     "project",
132268	//     "region",
132269	//     "resource"
132270	//   ],
132271	//   "parameters": {
132272	//     "project": {
132273	//       "description": "Project ID for this request.",
132274	//       "location": "path",
132275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132276	//       "required": true,
132277	//       "type": "string"
132278	//     },
132279	//     "region": {
132280	//       "description": "The name of the region for this request.",
132281	//       "location": "path",
132282	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132283	//       "required": true,
132284	//       "type": "string"
132285	//     },
132286	//     "resource": {
132287	//       "description": "Name or id of the resource for this request.",
132288	//       "location": "path",
132289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132290	//       "required": true,
132291	//       "type": "string"
132292	//     }
132293	//   },
132294	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
132295	//   "request": {
132296	//     "$ref": "RegionSetPolicyRequest"
132297	//   },
132298	//   "response": {
132299	//     "$ref": "Policy"
132300	//   },
132301	//   "scopes": [
132302	//     "https://www.googleapis.com/auth/cloud-platform",
132303	//     "https://www.googleapis.com/auth/compute"
132304	//   ]
132305	// }
132306
132307}
132308
132309// method id "compute.regionDisks.setLabels":
132310
132311type RegionDisksSetLabelsCall struct {
132312	s                      *Service
132313	project                string
132314	region                 string
132315	resource               string
132316	regionsetlabelsrequest *RegionSetLabelsRequest
132317	urlParams_             gensupport.URLParams
132318	ctx_                   context.Context
132319	header_                http.Header
132320}
132321
132322// SetLabels: Sets the labels on the target regional disk.
132323//
132324// - project: Project ID for this request.
132325// - region: The region for this request.
132326// - resource: Name or id of the resource for this request.
132327func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
132328	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132329	c.project = project
132330	c.region = region
132331	c.resource = resource
132332	c.regionsetlabelsrequest = regionsetlabelsrequest
132333	return c
132334}
132335
132336// RequestId sets the optional parameter "requestId": An optional
132337// request ID to identify requests. Specify a unique request ID so that
132338// if you must retry your request, the server will know to ignore the
132339// request if it has already been completed.
132340//
132341// For example, consider a situation where you make an initial request
132342// and the request times out. If you make the request again with the
132343// same request ID, the server can check if original operation with the
132344// same request ID was received, and if so, will ignore the second
132345// request. This prevents clients from accidentally creating duplicate
132346// commitments.
132347//
132348// The request ID must be a valid UUID with the exception that zero UUID
132349// is not supported (00000000-0000-0000-0000-000000000000).
132350func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
132351	c.urlParams_.Set("requestId", requestId)
132352	return c
132353}
132354
132355// Fields allows partial responses to be retrieved. See
132356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132357// for more information.
132358func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
132359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132360	return c
132361}
132362
132363// Context sets the context to be used in this call's Do method. Any
132364// pending HTTP request will be aborted if the provided context is
132365// canceled.
132366func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
132367	c.ctx_ = ctx
132368	return c
132369}
132370
132371// Header returns an http.Header that can be modified by the caller to
132372// add HTTP headers to the request.
132373func (c *RegionDisksSetLabelsCall) Header() http.Header {
132374	if c.header_ == nil {
132375		c.header_ = make(http.Header)
132376	}
132377	return c.header_
132378}
132379
132380func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
132381	reqHeaders := make(http.Header)
132382	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132383	for k, v := range c.header_ {
132384		reqHeaders[k] = v
132385	}
132386	reqHeaders.Set("User-Agent", c.s.userAgent())
132387	var body io.Reader = nil
132388	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
132389	if err != nil {
132390		return nil, err
132391	}
132392	reqHeaders.Set("Content-Type", "application/json")
132393	c.urlParams_.Set("alt", alt)
132394	c.urlParams_.Set("prettyPrint", "false")
132395	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setLabels")
132396	urls += "?" + c.urlParams_.Encode()
132397	req, err := http.NewRequest("POST", urls, body)
132398	if err != nil {
132399		return nil, err
132400	}
132401	req.Header = reqHeaders
132402	googleapi.Expand(req.URL, map[string]string{
132403		"project":  c.project,
132404		"region":   c.region,
132405		"resource": c.resource,
132406	})
132407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132408}
132409
132410// Do executes the "compute.regionDisks.setLabels" call.
132411// Exactly one of *Operation or error will be non-nil. Any non-2xx
132412// status code is an error. Response headers are in either
132413// *Operation.ServerResponse.Header or (if a response was returned at
132414// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132415// to check whether the returned error was because
132416// http.StatusNotModified was returned.
132417func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132418	gensupport.SetOptions(c.urlParams_, opts...)
132419	res, err := c.doRequest("json")
132420	if res != nil && res.StatusCode == http.StatusNotModified {
132421		if res.Body != nil {
132422			res.Body.Close()
132423		}
132424		return nil, &googleapi.Error{
132425			Code:   res.StatusCode,
132426			Header: res.Header,
132427		}
132428	}
132429	if err != nil {
132430		return nil, err
132431	}
132432	defer googleapi.CloseBody(res)
132433	if err := googleapi.CheckResponse(res); err != nil {
132434		return nil, err
132435	}
132436	ret := &Operation{
132437		ServerResponse: googleapi.ServerResponse{
132438			Header:         res.Header,
132439			HTTPStatusCode: res.StatusCode,
132440		},
132441	}
132442	target := &ret
132443	if err := gensupport.DecodeResponse(target, res); err != nil {
132444		return nil, err
132445	}
132446	return ret, nil
132447	// {
132448	//   "description": "Sets the labels on the target regional disk.",
132449	//   "httpMethod": "POST",
132450	//   "id": "compute.regionDisks.setLabels",
132451	//   "parameterOrder": [
132452	//     "project",
132453	//     "region",
132454	//     "resource"
132455	//   ],
132456	//   "parameters": {
132457	//     "project": {
132458	//       "description": "Project ID for this request.",
132459	//       "location": "path",
132460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132461	//       "required": true,
132462	//       "type": "string"
132463	//     },
132464	//     "region": {
132465	//       "description": "The region for this request.",
132466	//       "location": "path",
132467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132468	//       "required": true,
132469	//       "type": "string"
132470	//     },
132471	//     "requestId": {
132472	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132473	//       "location": "query",
132474	//       "type": "string"
132475	//     },
132476	//     "resource": {
132477	//       "description": "Name or id of the resource for this request.",
132478	//       "location": "path",
132479	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132480	//       "required": true,
132481	//       "type": "string"
132482	//     }
132483	//   },
132484	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels",
132485	//   "request": {
132486	//     "$ref": "RegionSetLabelsRequest"
132487	//   },
132488	//   "response": {
132489	//     "$ref": "Operation"
132490	//   },
132491	//   "scopes": [
132492	//     "https://www.googleapis.com/auth/cloud-platform",
132493	//     "https://www.googleapis.com/auth/compute"
132494	//   ]
132495	// }
132496
132497}
132498
132499// method id "compute.regionDisks.testIamPermissions":
132500
132501type RegionDisksTestIamPermissionsCall struct {
132502	s                      *Service
132503	project                string
132504	region                 string
132505	resource               string
132506	testpermissionsrequest *TestPermissionsRequest
132507	urlParams_             gensupport.URLParams
132508	ctx_                   context.Context
132509	header_                http.Header
132510}
132511
132512// TestIamPermissions: Returns permissions that a caller has on the
132513// specified resource.
132514//
132515// - project: Project ID for this request.
132516// - region: The name of the region for this request.
132517// - resource: Name or id of the resource for this request.
132518func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
132519	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132520	c.project = project
132521	c.region = region
132522	c.resource = resource
132523	c.testpermissionsrequest = testpermissionsrequest
132524	return c
132525}
132526
132527// Fields allows partial responses to be retrieved. See
132528// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132529// for more information.
132530func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
132531	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132532	return c
132533}
132534
132535// Context sets the context to be used in this call's Do method. Any
132536// pending HTTP request will be aborted if the provided context is
132537// canceled.
132538func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
132539	c.ctx_ = ctx
132540	return c
132541}
132542
132543// Header returns an http.Header that can be modified by the caller to
132544// add HTTP headers to the request.
132545func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
132546	if c.header_ == nil {
132547		c.header_ = make(http.Header)
132548	}
132549	return c.header_
132550}
132551
132552func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
132553	reqHeaders := make(http.Header)
132554	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132555	for k, v := range c.header_ {
132556		reqHeaders[k] = v
132557	}
132558	reqHeaders.Set("User-Agent", c.s.userAgent())
132559	var body io.Reader = nil
132560	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
132561	if err != nil {
132562		return nil, err
132563	}
132564	reqHeaders.Set("Content-Type", "application/json")
132565	c.urlParams_.Set("alt", alt)
132566	c.urlParams_.Set("prettyPrint", "false")
132567	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions")
132568	urls += "?" + c.urlParams_.Encode()
132569	req, err := http.NewRequest("POST", urls, body)
132570	if err != nil {
132571		return nil, err
132572	}
132573	req.Header = reqHeaders
132574	googleapi.Expand(req.URL, map[string]string{
132575		"project":  c.project,
132576		"region":   c.region,
132577		"resource": c.resource,
132578	})
132579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132580}
132581
132582// Do executes the "compute.regionDisks.testIamPermissions" call.
132583// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
132584// non-2xx status code is an error. Response headers are in either
132585// *TestPermissionsResponse.ServerResponse.Header or (if a response was
132586// returned at all) in error.(*googleapi.Error).Header. Use
132587// googleapi.IsNotModified to check whether the returned error was
132588// because http.StatusNotModified was returned.
132589func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
132590	gensupport.SetOptions(c.urlParams_, opts...)
132591	res, err := c.doRequest("json")
132592	if res != nil && res.StatusCode == http.StatusNotModified {
132593		if res.Body != nil {
132594			res.Body.Close()
132595		}
132596		return nil, &googleapi.Error{
132597			Code:   res.StatusCode,
132598			Header: res.Header,
132599		}
132600	}
132601	if err != nil {
132602		return nil, err
132603	}
132604	defer googleapi.CloseBody(res)
132605	if err := googleapi.CheckResponse(res); err != nil {
132606		return nil, err
132607	}
132608	ret := &TestPermissionsResponse{
132609		ServerResponse: googleapi.ServerResponse{
132610			Header:         res.Header,
132611			HTTPStatusCode: res.StatusCode,
132612		},
132613	}
132614	target := &ret
132615	if err := gensupport.DecodeResponse(target, res); err != nil {
132616		return nil, err
132617	}
132618	return ret, nil
132619	// {
132620	//   "description": "Returns permissions that a caller has on the specified resource.",
132621	//   "httpMethod": "POST",
132622	//   "id": "compute.regionDisks.testIamPermissions",
132623	//   "parameterOrder": [
132624	//     "project",
132625	//     "region",
132626	//     "resource"
132627	//   ],
132628	//   "parameters": {
132629	//     "project": {
132630	//       "description": "Project ID for this request.",
132631	//       "location": "path",
132632	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132633	//       "required": true,
132634	//       "type": "string"
132635	//     },
132636	//     "region": {
132637	//       "description": "The name of the region for this request.",
132638	//       "location": "path",
132639	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132640	//       "required": true,
132641	//       "type": "string"
132642	//     },
132643	//     "resource": {
132644	//       "description": "Name or id of the resource for this request.",
132645	//       "location": "path",
132646	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132647	//       "required": true,
132648	//       "type": "string"
132649	//     }
132650	//   },
132651	//   "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
132652	//   "request": {
132653	//     "$ref": "TestPermissionsRequest"
132654	//   },
132655	//   "response": {
132656	//     "$ref": "TestPermissionsResponse"
132657	//   },
132658	//   "scopes": [
132659	//     "https://www.googleapis.com/auth/cloud-platform",
132660	//     "https://www.googleapis.com/auth/compute",
132661	//     "https://www.googleapis.com/auth/compute.readonly"
132662	//   ]
132663	// }
132664
132665}
132666
132667// method id "compute.regionHealthCheckServices.delete":
132668
132669type RegionHealthCheckServicesDeleteCall struct {
132670	s                  *Service
132671	project            string
132672	region             string
132673	healthCheckService string
132674	urlParams_         gensupport.URLParams
132675	ctx_               context.Context
132676	header_            http.Header
132677}
132678
132679// Delete: Deletes the specified regional HealthCheckService.
132680//
132681// - healthCheckService: Name of the HealthCheckService to delete. The
132682//   name must be 1-63 characters long, and comply with RFC1035.
132683// - project: Project ID for this request.
132684// - region: Name of the region scoping this request.
132685func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
132686	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132687	c.project = project
132688	c.region = region
132689	c.healthCheckService = healthCheckService
132690	return c
132691}
132692
132693// RequestId sets the optional parameter "requestId": An optional
132694// request ID to identify requests. Specify a unique request ID so that
132695// if you must retry your request, the server will know to ignore the
132696// request if it has already been completed.
132697//
132698// For example, consider a situation where you make an initial request
132699// and the request times out. If you make the request again with the
132700// same request ID, the server can check if original operation with the
132701// same request ID was received, and if so, will ignore the second
132702// request. This prevents clients from accidentally creating duplicate
132703// commitments.
132704//
132705// The request ID must be a valid UUID with the exception that zero UUID
132706// is not supported (00000000-0000-0000-0000-000000000000).
132707func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
132708	c.urlParams_.Set("requestId", requestId)
132709	return c
132710}
132711
132712// Fields allows partial responses to be retrieved. See
132713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132714// for more information.
132715func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
132716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132717	return c
132718}
132719
132720// Context sets the context to be used in this call's Do method. Any
132721// pending HTTP request will be aborted if the provided context is
132722// canceled.
132723func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
132724	c.ctx_ = ctx
132725	return c
132726}
132727
132728// Header returns an http.Header that can be modified by the caller to
132729// add HTTP headers to the request.
132730func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
132731	if c.header_ == nil {
132732		c.header_ = make(http.Header)
132733	}
132734	return c.header_
132735}
132736
132737func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
132738	reqHeaders := make(http.Header)
132739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132740	for k, v := range c.header_ {
132741		reqHeaders[k] = v
132742	}
132743	reqHeaders.Set("User-Agent", c.s.userAgent())
132744	var body io.Reader = nil
132745	c.urlParams_.Set("alt", alt)
132746	c.urlParams_.Set("prettyPrint", "false")
132747	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
132748	urls += "?" + c.urlParams_.Encode()
132749	req, err := http.NewRequest("DELETE", urls, body)
132750	if err != nil {
132751		return nil, err
132752	}
132753	req.Header = reqHeaders
132754	googleapi.Expand(req.URL, map[string]string{
132755		"project":            c.project,
132756		"region":             c.region,
132757		"healthCheckService": c.healthCheckService,
132758	})
132759	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132760}
132761
132762// Do executes the "compute.regionHealthCheckServices.delete" call.
132763// Exactly one of *Operation or error will be non-nil. Any non-2xx
132764// status code is an error. Response headers are in either
132765// *Operation.ServerResponse.Header or (if a response was returned at
132766// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132767// to check whether the returned error was because
132768// http.StatusNotModified was returned.
132769func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132770	gensupport.SetOptions(c.urlParams_, opts...)
132771	res, err := c.doRequest("json")
132772	if res != nil && res.StatusCode == http.StatusNotModified {
132773		if res.Body != nil {
132774			res.Body.Close()
132775		}
132776		return nil, &googleapi.Error{
132777			Code:   res.StatusCode,
132778			Header: res.Header,
132779		}
132780	}
132781	if err != nil {
132782		return nil, err
132783	}
132784	defer googleapi.CloseBody(res)
132785	if err := googleapi.CheckResponse(res); err != nil {
132786		return nil, err
132787	}
132788	ret := &Operation{
132789		ServerResponse: googleapi.ServerResponse{
132790			Header:         res.Header,
132791			HTTPStatusCode: res.StatusCode,
132792		},
132793	}
132794	target := &ret
132795	if err := gensupport.DecodeResponse(target, res); err != nil {
132796		return nil, err
132797	}
132798	return ret, nil
132799	// {
132800	//   "description": "Deletes the specified regional HealthCheckService.",
132801	//   "httpMethod": "DELETE",
132802	//   "id": "compute.regionHealthCheckServices.delete",
132803	//   "parameterOrder": [
132804	//     "project",
132805	//     "region",
132806	//     "healthCheckService"
132807	//   ],
132808	//   "parameters": {
132809	//     "healthCheckService": {
132810	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
132811	//       "location": "path",
132812	//       "required": true,
132813	//       "type": "string"
132814	//     },
132815	//     "project": {
132816	//       "description": "Project ID for this request.",
132817	//       "location": "path",
132818	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132819	//       "required": true,
132820	//       "type": "string"
132821	//     },
132822	//     "region": {
132823	//       "description": "Name of the region scoping this request.",
132824	//       "location": "path",
132825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132826	//       "required": true,
132827	//       "type": "string"
132828	//     },
132829	//     "requestId": {
132830	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132831	//       "location": "query",
132832	//       "type": "string"
132833	//     }
132834	//   },
132835	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
132836	//   "response": {
132837	//     "$ref": "Operation"
132838	//   },
132839	//   "scopes": [
132840	//     "https://www.googleapis.com/auth/cloud-platform",
132841	//     "https://www.googleapis.com/auth/compute"
132842	//   ]
132843	// }
132844
132845}
132846
132847// method id "compute.regionHealthCheckServices.get":
132848
132849type RegionHealthCheckServicesGetCall struct {
132850	s                  *Service
132851	project            string
132852	region             string
132853	healthCheckService string
132854	urlParams_         gensupport.URLParams
132855	ifNoneMatch_       string
132856	ctx_               context.Context
132857	header_            http.Header
132858}
132859
132860// Get: Returns the specified regional HealthCheckService resource.
132861//
132862// - healthCheckService: Name of the HealthCheckService to update. The
132863//   name must be 1-63 characters long, and comply with RFC1035.
132864// - project: Project ID for this request.
132865// - region: Name of the region scoping this request.
132866func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
132867	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132868	c.project = project
132869	c.region = region
132870	c.healthCheckService = healthCheckService
132871	return c
132872}
132873
132874// Fields allows partial responses to be retrieved. See
132875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132876// for more information.
132877func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
132878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132879	return c
132880}
132881
132882// IfNoneMatch sets the optional parameter which makes the operation
132883// fail if the object's ETag matches the given value. This is useful for
132884// getting updates only after the object has changed since the last
132885// request. Use googleapi.IsNotModified to check whether the response
132886// error from Do is the result of In-None-Match.
132887func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
132888	c.ifNoneMatch_ = entityTag
132889	return c
132890}
132891
132892// Context sets the context to be used in this call's Do method. Any
132893// pending HTTP request will be aborted if the provided context is
132894// canceled.
132895func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
132896	c.ctx_ = ctx
132897	return c
132898}
132899
132900// Header returns an http.Header that can be modified by the caller to
132901// add HTTP headers to the request.
132902func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
132903	if c.header_ == nil {
132904		c.header_ = make(http.Header)
132905	}
132906	return c.header_
132907}
132908
132909func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
132910	reqHeaders := make(http.Header)
132911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132912	for k, v := range c.header_ {
132913		reqHeaders[k] = v
132914	}
132915	reqHeaders.Set("User-Agent", c.s.userAgent())
132916	if c.ifNoneMatch_ != "" {
132917		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132918	}
132919	var body io.Reader = nil
132920	c.urlParams_.Set("alt", alt)
132921	c.urlParams_.Set("prettyPrint", "false")
132922	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
132923	urls += "?" + c.urlParams_.Encode()
132924	req, err := http.NewRequest("GET", urls, body)
132925	if err != nil {
132926		return nil, err
132927	}
132928	req.Header = reqHeaders
132929	googleapi.Expand(req.URL, map[string]string{
132930		"project":            c.project,
132931		"region":             c.region,
132932		"healthCheckService": c.healthCheckService,
132933	})
132934	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132935}
132936
132937// Do executes the "compute.regionHealthCheckServices.get" call.
132938// Exactly one of *HealthCheckService or error will be non-nil. Any
132939// non-2xx status code is an error. Response headers are in either
132940// *HealthCheckService.ServerResponse.Header or (if a response was
132941// returned at all) in error.(*googleapi.Error).Header. Use
132942// googleapi.IsNotModified to check whether the returned error was
132943// because http.StatusNotModified was returned.
132944func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
132945	gensupport.SetOptions(c.urlParams_, opts...)
132946	res, err := c.doRequest("json")
132947	if res != nil && res.StatusCode == http.StatusNotModified {
132948		if res.Body != nil {
132949			res.Body.Close()
132950		}
132951		return nil, &googleapi.Error{
132952			Code:   res.StatusCode,
132953			Header: res.Header,
132954		}
132955	}
132956	if err != nil {
132957		return nil, err
132958	}
132959	defer googleapi.CloseBody(res)
132960	if err := googleapi.CheckResponse(res); err != nil {
132961		return nil, err
132962	}
132963	ret := &HealthCheckService{
132964		ServerResponse: googleapi.ServerResponse{
132965			Header:         res.Header,
132966			HTTPStatusCode: res.StatusCode,
132967		},
132968	}
132969	target := &ret
132970	if err := gensupport.DecodeResponse(target, res); err != nil {
132971		return nil, err
132972	}
132973	return ret, nil
132974	// {
132975	//   "description": "Returns the specified regional HealthCheckService resource.",
132976	//   "httpMethod": "GET",
132977	//   "id": "compute.regionHealthCheckServices.get",
132978	//   "parameterOrder": [
132979	//     "project",
132980	//     "region",
132981	//     "healthCheckService"
132982	//   ],
132983	//   "parameters": {
132984	//     "healthCheckService": {
132985	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
132986	//       "location": "path",
132987	//       "required": true,
132988	//       "type": "string"
132989	//     },
132990	//     "project": {
132991	//       "description": "Project ID for this request.",
132992	//       "location": "path",
132993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132994	//       "required": true,
132995	//       "type": "string"
132996	//     },
132997	//     "region": {
132998	//       "description": "Name of the region scoping this request.",
132999	//       "location": "path",
133000	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133001	//       "required": true,
133002	//       "type": "string"
133003	//     }
133004	//   },
133005	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
133006	//   "response": {
133007	//     "$ref": "HealthCheckService"
133008	//   },
133009	//   "scopes": [
133010	//     "https://www.googleapis.com/auth/cloud-platform",
133011	//     "https://www.googleapis.com/auth/compute",
133012	//     "https://www.googleapis.com/auth/compute.readonly"
133013	//   ]
133014	// }
133015
133016}
133017
133018// method id "compute.regionHealthCheckServices.insert":
133019
133020type RegionHealthCheckServicesInsertCall struct {
133021	s                  *Service
133022	project            string
133023	region             string
133024	healthcheckservice *HealthCheckService
133025	urlParams_         gensupport.URLParams
133026	ctx_               context.Context
133027	header_            http.Header
133028}
133029
133030// Insert: Creates a regional HealthCheckService resource in the
133031// specified project and region using the data included in the request.
133032//
133033// - project: Project ID for this request.
133034// - region: Name of the region scoping this request.
133035func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
133036	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133037	c.project = project
133038	c.region = region
133039	c.healthcheckservice = healthcheckservice
133040	return c
133041}
133042
133043// RequestId sets the optional parameter "requestId": An optional
133044// request ID to identify requests. Specify a unique request ID so that
133045// if you must retry your request, the server will know to ignore the
133046// request if it has already been completed.
133047//
133048// For example, consider a situation where you make an initial request
133049// and the request times out. If you make the request again with the
133050// same request ID, the server can check if original operation with the
133051// same request ID was received, and if so, will ignore the second
133052// request. This prevents clients from accidentally creating duplicate
133053// commitments.
133054//
133055// The request ID must be a valid UUID with the exception that zero UUID
133056// is not supported (00000000-0000-0000-0000-000000000000).
133057func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
133058	c.urlParams_.Set("requestId", requestId)
133059	return c
133060}
133061
133062// Fields allows partial responses to be retrieved. See
133063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133064// for more information.
133065func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
133066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133067	return c
133068}
133069
133070// Context sets the context to be used in this call's Do method. Any
133071// pending HTTP request will be aborted if the provided context is
133072// canceled.
133073func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
133074	c.ctx_ = ctx
133075	return c
133076}
133077
133078// Header returns an http.Header that can be modified by the caller to
133079// add HTTP headers to the request.
133080func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
133081	if c.header_ == nil {
133082		c.header_ = make(http.Header)
133083	}
133084	return c.header_
133085}
133086
133087func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
133088	reqHeaders := make(http.Header)
133089	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133090	for k, v := range c.header_ {
133091		reqHeaders[k] = v
133092	}
133093	reqHeaders.Set("User-Agent", c.s.userAgent())
133094	var body io.Reader = nil
133095	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
133096	if err != nil {
133097		return nil, err
133098	}
133099	reqHeaders.Set("Content-Type", "application/json")
133100	c.urlParams_.Set("alt", alt)
133101	c.urlParams_.Set("prettyPrint", "false")
133102	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
133103	urls += "?" + c.urlParams_.Encode()
133104	req, err := http.NewRequest("POST", urls, body)
133105	if err != nil {
133106		return nil, err
133107	}
133108	req.Header = reqHeaders
133109	googleapi.Expand(req.URL, map[string]string{
133110		"project": c.project,
133111		"region":  c.region,
133112	})
133113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133114}
133115
133116// Do executes the "compute.regionHealthCheckServices.insert" call.
133117// Exactly one of *Operation or error will be non-nil. Any non-2xx
133118// status code is an error. Response headers are in either
133119// *Operation.ServerResponse.Header or (if a response was returned at
133120// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133121// to check whether the returned error was because
133122// http.StatusNotModified was returned.
133123func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133124	gensupport.SetOptions(c.urlParams_, opts...)
133125	res, err := c.doRequest("json")
133126	if res != nil && res.StatusCode == http.StatusNotModified {
133127		if res.Body != nil {
133128			res.Body.Close()
133129		}
133130		return nil, &googleapi.Error{
133131			Code:   res.StatusCode,
133132			Header: res.Header,
133133		}
133134	}
133135	if err != nil {
133136		return nil, err
133137	}
133138	defer googleapi.CloseBody(res)
133139	if err := googleapi.CheckResponse(res); err != nil {
133140		return nil, err
133141	}
133142	ret := &Operation{
133143		ServerResponse: googleapi.ServerResponse{
133144			Header:         res.Header,
133145			HTTPStatusCode: res.StatusCode,
133146		},
133147	}
133148	target := &ret
133149	if err := gensupport.DecodeResponse(target, res); err != nil {
133150		return nil, err
133151	}
133152	return ret, nil
133153	// {
133154	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
133155	//   "httpMethod": "POST",
133156	//   "id": "compute.regionHealthCheckServices.insert",
133157	//   "parameterOrder": [
133158	//     "project",
133159	//     "region"
133160	//   ],
133161	//   "parameters": {
133162	//     "project": {
133163	//       "description": "Project ID for this request.",
133164	//       "location": "path",
133165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133166	//       "required": true,
133167	//       "type": "string"
133168	//     },
133169	//     "region": {
133170	//       "description": "Name of the region scoping this request.",
133171	//       "location": "path",
133172	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133173	//       "required": true,
133174	//       "type": "string"
133175	//     },
133176	//     "requestId": {
133177	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133178	//       "location": "query",
133179	//       "type": "string"
133180	//     }
133181	//   },
133182	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
133183	//   "request": {
133184	//     "$ref": "HealthCheckService"
133185	//   },
133186	//   "response": {
133187	//     "$ref": "Operation"
133188	//   },
133189	//   "scopes": [
133190	//     "https://www.googleapis.com/auth/cloud-platform",
133191	//     "https://www.googleapis.com/auth/compute"
133192	//   ]
133193	// }
133194
133195}
133196
133197// method id "compute.regionHealthCheckServices.list":
133198
133199type RegionHealthCheckServicesListCall struct {
133200	s            *Service
133201	project      string
133202	region       string
133203	urlParams_   gensupport.URLParams
133204	ifNoneMatch_ string
133205	ctx_         context.Context
133206	header_      http.Header
133207}
133208
133209// List: Lists all the HealthCheckService resources that have been
133210// configured for the specified project in the given region.
133211//
133212// - project: Project ID for this request.
133213// - region: Name of the region scoping this request.
133214func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
133215	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133216	c.project = project
133217	c.region = region
133218	return c
133219}
133220
133221// Filter sets the optional parameter "filter": A filter expression that
133222// filters resources listed in the response. The expression must specify
133223// the field name, a comparison operator, and the value that you want to
133224// use for filtering. The value must be a string, a number, or a
133225// boolean. The comparison operator must be either `=`, `!=`, `>`, or
133226// `<`.
133227//
133228// For example, if you are filtering Compute Engine instances, you can
133229// exclude instances named `example-instance` by specifying `name !=
133230// example-instance`.
133231//
133232// You can also filter nested fields. For example, you could specify
133233// `scheduling.automaticRestart = false` to include instances only if
133234// they are not scheduled for automatic restarts. You can use filtering
133235// on nested fields to filter based on resource labels.
133236//
133237// To filter on multiple expressions, provide each separate expression
133238// within parentheses. For example: ``` (scheduling.automaticRestart =
133239// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
133240// is an `AND` expression. However, you can include `AND` and `OR`
133241// expressions explicitly. For example: ``` (cpuPlatform = "Intel
133242// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
133243// (scheduling.automaticRestart = true) ```
133244func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
133245	c.urlParams_.Set("filter", filter)
133246	return c
133247}
133248
133249// MaxResults sets the optional parameter "maxResults": The maximum
133250// number of results per page that should be returned. If the number of
133251// available results is larger than `maxResults`, Compute Engine returns
133252// a `nextPageToken` that can be used to get the next page of results in
133253// subsequent list requests. Acceptable values are `0` to `500`,
133254// inclusive. (Default: `500`)
133255func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
133256	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133257	return c
133258}
133259
133260// OrderBy sets the optional parameter "orderBy": Sorts list results by
133261// a certain order. By default, results are returned in alphanumerical
133262// order based on the resource name.
133263//
133264// You can also sort results in descending order based on the creation
133265// timestamp using `orderBy="creationTimestamp desc". This sorts
133266// results based on the `creationTimestamp` field in reverse
133267// chronological order (newest result first). Use this to sort resources
133268// like operations so that the newest operation is returned
133269// first.
133270//
133271// Currently, only sorting by `name` or `creationTimestamp desc` is
133272// supported.
133273func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
133274	c.urlParams_.Set("orderBy", orderBy)
133275	return c
133276}
133277
133278// PageToken sets the optional parameter "pageToken": Specifies a page
133279// token to use. Set `pageToken` to the `nextPageToken` returned by a
133280// previous list request to get the next page of results.
133281func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
133282	c.urlParams_.Set("pageToken", pageToken)
133283	return c
133284}
133285
133286// ReturnPartialSuccess sets the optional parameter
133287// "returnPartialSuccess": Opt-in for partial success behavior which
133288// provides partial results in case of failure. The default value is
133289// false.
133290func (c *RegionHealthCheckServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesListCall {
133291	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
133292	return c
133293}
133294
133295// Fields allows partial responses to be retrieved. See
133296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133297// for more information.
133298func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
133299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133300	return c
133301}
133302
133303// IfNoneMatch sets the optional parameter which makes the operation
133304// fail if the object's ETag matches the given value. This is useful for
133305// getting updates only after the object has changed since the last
133306// request. Use googleapi.IsNotModified to check whether the response
133307// error from Do is the result of In-None-Match.
133308func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
133309	c.ifNoneMatch_ = entityTag
133310	return c
133311}
133312
133313// Context sets the context to be used in this call's Do method. Any
133314// pending HTTP request will be aborted if the provided context is
133315// canceled.
133316func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
133317	c.ctx_ = ctx
133318	return c
133319}
133320
133321// Header returns an http.Header that can be modified by the caller to
133322// add HTTP headers to the request.
133323func (c *RegionHealthCheckServicesListCall) Header() http.Header {
133324	if c.header_ == nil {
133325		c.header_ = make(http.Header)
133326	}
133327	return c.header_
133328}
133329
133330func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
133331	reqHeaders := make(http.Header)
133332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133333	for k, v := range c.header_ {
133334		reqHeaders[k] = v
133335	}
133336	reqHeaders.Set("User-Agent", c.s.userAgent())
133337	if c.ifNoneMatch_ != "" {
133338		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133339	}
133340	var body io.Reader = nil
133341	c.urlParams_.Set("alt", alt)
133342	c.urlParams_.Set("prettyPrint", "false")
133343	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
133344	urls += "?" + c.urlParams_.Encode()
133345	req, err := http.NewRequest("GET", urls, body)
133346	if err != nil {
133347		return nil, err
133348	}
133349	req.Header = reqHeaders
133350	googleapi.Expand(req.URL, map[string]string{
133351		"project": c.project,
133352		"region":  c.region,
133353	})
133354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133355}
133356
133357// Do executes the "compute.regionHealthCheckServices.list" call.
133358// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
133359// non-2xx status code is an error. Response headers are in either
133360// *HealthCheckServicesList.ServerResponse.Header or (if a response was
133361// returned at all) in error.(*googleapi.Error).Header. Use
133362// googleapi.IsNotModified to check whether the returned error was
133363// because http.StatusNotModified was returned.
133364func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
133365	gensupport.SetOptions(c.urlParams_, opts...)
133366	res, err := c.doRequest("json")
133367	if res != nil && res.StatusCode == http.StatusNotModified {
133368		if res.Body != nil {
133369			res.Body.Close()
133370		}
133371		return nil, &googleapi.Error{
133372			Code:   res.StatusCode,
133373			Header: res.Header,
133374		}
133375	}
133376	if err != nil {
133377		return nil, err
133378	}
133379	defer googleapi.CloseBody(res)
133380	if err := googleapi.CheckResponse(res); err != nil {
133381		return nil, err
133382	}
133383	ret := &HealthCheckServicesList{
133384		ServerResponse: googleapi.ServerResponse{
133385			Header:         res.Header,
133386			HTTPStatusCode: res.StatusCode,
133387		},
133388	}
133389	target := &ret
133390	if err := gensupport.DecodeResponse(target, res); err != nil {
133391		return nil, err
133392	}
133393	return ret, nil
133394	// {
133395	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
133396	//   "httpMethod": "GET",
133397	//   "id": "compute.regionHealthCheckServices.list",
133398	//   "parameterOrder": [
133399	//     "project",
133400	//     "region"
133401	//   ],
133402	//   "parameters": {
133403	//     "filter": {
133404	//       "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) ```",
133405	//       "location": "query",
133406	//       "type": "string"
133407	//     },
133408	//     "maxResults": {
133409	//       "default": "500",
133410	//       "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`)",
133411	//       "format": "uint32",
133412	//       "location": "query",
133413	//       "minimum": "0",
133414	//       "type": "integer"
133415	//     },
133416	//     "orderBy": {
133417	//       "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.",
133418	//       "location": "query",
133419	//       "type": "string"
133420	//     },
133421	//     "pageToken": {
133422	//       "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.",
133423	//       "location": "query",
133424	//       "type": "string"
133425	//     },
133426	//     "project": {
133427	//       "description": "Project ID for this request.",
133428	//       "location": "path",
133429	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133430	//       "required": true,
133431	//       "type": "string"
133432	//     },
133433	//     "region": {
133434	//       "description": "Name of the region scoping this request.",
133435	//       "location": "path",
133436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133437	//       "required": true,
133438	//       "type": "string"
133439	//     },
133440	//     "returnPartialSuccess": {
133441	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
133442	//       "location": "query",
133443	//       "type": "boolean"
133444	//     }
133445	//   },
133446	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
133447	//   "response": {
133448	//     "$ref": "HealthCheckServicesList"
133449	//   },
133450	//   "scopes": [
133451	//     "https://www.googleapis.com/auth/cloud-platform",
133452	//     "https://www.googleapis.com/auth/compute",
133453	//     "https://www.googleapis.com/auth/compute.readonly"
133454	//   ]
133455	// }
133456
133457}
133458
133459// Pages invokes f for each page of results.
133460// A non-nil error returned from f will halt the iteration.
133461// The provided context supersedes any context provided to the Context method.
133462func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
133463	c.ctx_ = ctx
133464	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133465	for {
133466		x, err := c.Do()
133467		if err != nil {
133468			return err
133469		}
133470		if err := f(x); err != nil {
133471			return err
133472		}
133473		if x.NextPageToken == "" {
133474			return nil
133475		}
133476		c.PageToken(x.NextPageToken)
133477	}
133478}
133479
133480// method id "compute.regionHealthCheckServices.patch":
133481
133482type RegionHealthCheckServicesPatchCall struct {
133483	s                  *Service
133484	project            string
133485	region             string
133486	healthCheckService string
133487	healthcheckservice *HealthCheckService
133488	urlParams_         gensupport.URLParams
133489	ctx_               context.Context
133490	header_            http.Header
133491}
133492
133493// Patch: Updates the specified regional HealthCheckService resource
133494// with the data included in the request. This method supports PATCH
133495// semantics and uses the JSON merge patch format and processing rules.
133496//
133497// - healthCheckService: Name of the HealthCheckService to update. The
133498//   name must be 1-63 characters long, and comply with RFC1035.
133499// - project: Project ID for this request.
133500// - region: Name of the region scoping this request.
133501func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
133502	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133503	c.project = project
133504	c.region = region
133505	c.healthCheckService = healthCheckService
133506	c.healthcheckservice = healthcheckservice
133507	return c
133508}
133509
133510// RequestId sets the optional parameter "requestId": An optional
133511// request ID to identify requests. Specify a unique request ID so that
133512// if you must retry your request, the server will know to ignore the
133513// request if it has already been completed.
133514//
133515// For example, consider a situation where you make an initial request
133516// and the request times out. If you make the request again with the
133517// same request ID, the server can check if original operation with the
133518// same request ID was received, and if so, will ignore the second
133519// request. This prevents clients from accidentally creating duplicate
133520// commitments.
133521//
133522// The request ID must be a valid UUID with the exception that zero UUID
133523// is not supported (00000000-0000-0000-0000-000000000000).
133524func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
133525	c.urlParams_.Set("requestId", requestId)
133526	return c
133527}
133528
133529// Fields allows partial responses to be retrieved. See
133530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133531// for more information.
133532func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
133533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133534	return c
133535}
133536
133537// Context sets the context to be used in this call's Do method. Any
133538// pending HTTP request will be aborted if the provided context is
133539// canceled.
133540func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
133541	c.ctx_ = ctx
133542	return c
133543}
133544
133545// Header returns an http.Header that can be modified by the caller to
133546// add HTTP headers to the request.
133547func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
133548	if c.header_ == nil {
133549		c.header_ = make(http.Header)
133550	}
133551	return c.header_
133552}
133553
133554func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
133555	reqHeaders := make(http.Header)
133556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133557	for k, v := range c.header_ {
133558		reqHeaders[k] = v
133559	}
133560	reqHeaders.Set("User-Agent", c.s.userAgent())
133561	var body io.Reader = nil
133562	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
133563	if err != nil {
133564		return nil, err
133565	}
133566	reqHeaders.Set("Content-Type", "application/json")
133567	c.urlParams_.Set("alt", alt)
133568	c.urlParams_.Set("prettyPrint", "false")
133569	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
133570	urls += "?" + c.urlParams_.Encode()
133571	req, err := http.NewRequest("PATCH", urls, body)
133572	if err != nil {
133573		return nil, err
133574	}
133575	req.Header = reqHeaders
133576	googleapi.Expand(req.URL, map[string]string{
133577		"project":            c.project,
133578		"region":             c.region,
133579		"healthCheckService": c.healthCheckService,
133580	})
133581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133582}
133583
133584// Do executes the "compute.regionHealthCheckServices.patch" call.
133585// Exactly one of *Operation or error will be non-nil. Any non-2xx
133586// status code is an error. Response headers are in either
133587// *Operation.ServerResponse.Header or (if a response was returned at
133588// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133589// to check whether the returned error was because
133590// http.StatusNotModified was returned.
133591func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133592	gensupport.SetOptions(c.urlParams_, opts...)
133593	res, err := c.doRequest("json")
133594	if res != nil && res.StatusCode == http.StatusNotModified {
133595		if res.Body != nil {
133596			res.Body.Close()
133597		}
133598		return nil, &googleapi.Error{
133599			Code:   res.StatusCode,
133600			Header: res.Header,
133601		}
133602	}
133603	if err != nil {
133604		return nil, err
133605	}
133606	defer googleapi.CloseBody(res)
133607	if err := googleapi.CheckResponse(res); err != nil {
133608		return nil, err
133609	}
133610	ret := &Operation{
133611		ServerResponse: googleapi.ServerResponse{
133612			Header:         res.Header,
133613			HTTPStatusCode: res.StatusCode,
133614		},
133615	}
133616	target := &ret
133617	if err := gensupport.DecodeResponse(target, res); err != nil {
133618		return nil, err
133619	}
133620	return ret, nil
133621	// {
133622	//   "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.",
133623	//   "httpMethod": "PATCH",
133624	//   "id": "compute.regionHealthCheckServices.patch",
133625	//   "parameterOrder": [
133626	//     "project",
133627	//     "region",
133628	//     "healthCheckService"
133629	//   ],
133630	//   "parameters": {
133631	//     "healthCheckService": {
133632	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
133633	//       "location": "path",
133634	//       "required": true,
133635	//       "type": "string"
133636	//     },
133637	//     "project": {
133638	//       "description": "Project ID for this request.",
133639	//       "location": "path",
133640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133641	//       "required": true,
133642	//       "type": "string"
133643	//     },
133644	//     "region": {
133645	//       "description": "Name of the region scoping this request.",
133646	//       "location": "path",
133647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133648	//       "required": true,
133649	//       "type": "string"
133650	//     },
133651	//     "requestId": {
133652	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133653	//       "location": "query",
133654	//       "type": "string"
133655	//     }
133656	//   },
133657	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
133658	//   "request": {
133659	//     "$ref": "HealthCheckService"
133660	//   },
133661	//   "response": {
133662	//     "$ref": "Operation"
133663	//   },
133664	//   "scopes": [
133665	//     "https://www.googleapis.com/auth/cloud-platform",
133666	//     "https://www.googleapis.com/auth/compute"
133667	//   ]
133668	// }
133669
133670}
133671
133672// method id "compute.regionHealthCheckServices.testIamPermissions":
133673
133674type RegionHealthCheckServicesTestIamPermissionsCall struct {
133675	s                      *Service
133676	project                string
133677	region                 string
133678	resource               string
133679	testpermissionsrequest *TestPermissionsRequest
133680	urlParams_             gensupport.URLParams
133681	ctx_                   context.Context
133682	header_                http.Header
133683}
133684
133685// TestIamPermissions: Returns permissions that a caller has on the
133686// specified resource.
133687//
133688// - project: Project ID for this request.
133689// - region: The name of the region for this request.
133690// - resource: Name or id of the resource for this request.
133691func (r *RegionHealthCheckServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthCheckServicesTestIamPermissionsCall {
133692	c := &RegionHealthCheckServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133693	c.project = project
133694	c.region = region
133695	c.resource = resource
133696	c.testpermissionsrequest = testpermissionsrequest
133697	return c
133698}
133699
133700// Fields allows partial responses to be retrieved. See
133701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133702// for more information.
133703func (c *RegionHealthCheckServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesTestIamPermissionsCall {
133704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133705	return c
133706}
133707
133708// Context sets the context to be used in this call's Do method. Any
133709// pending HTTP request will be aborted if the provided context is
133710// canceled.
133711func (c *RegionHealthCheckServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthCheckServicesTestIamPermissionsCall {
133712	c.ctx_ = ctx
133713	return c
133714}
133715
133716// Header returns an http.Header that can be modified by the caller to
133717// add HTTP headers to the request.
133718func (c *RegionHealthCheckServicesTestIamPermissionsCall) Header() http.Header {
133719	if c.header_ == nil {
133720		c.header_ = make(http.Header)
133721	}
133722	return c.header_
133723}
133724
133725func (c *RegionHealthCheckServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
133726	reqHeaders := make(http.Header)
133727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133728	for k, v := range c.header_ {
133729		reqHeaders[k] = v
133730	}
133731	reqHeaders.Set("User-Agent", c.s.userAgent())
133732	var body io.Reader = nil
133733	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
133734	if err != nil {
133735		return nil, err
133736	}
133737	reqHeaders.Set("Content-Type", "application/json")
133738	c.urlParams_.Set("alt", alt)
133739	c.urlParams_.Set("prettyPrint", "false")
133740	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions")
133741	urls += "?" + c.urlParams_.Encode()
133742	req, err := http.NewRequest("POST", urls, body)
133743	if err != nil {
133744		return nil, err
133745	}
133746	req.Header = reqHeaders
133747	googleapi.Expand(req.URL, map[string]string{
133748		"project":  c.project,
133749		"region":   c.region,
133750		"resource": c.resource,
133751	})
133752	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133753}
133754
133755// Do executes the "compute.regionHealthCheckServices.testIamPermissions" call.
133756// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
133757// non-2xx status code is an error. Response headers are in either
133758// *TestPermissionsResponse.ServerResponse.Header or (if a response was
133759// returned at all) in error.(*googleapi.Error).Header. Use
133760// googleapi.IsNotModified to check whether the returned error was
133761// because http.StatusNotModified was returned.
133762func (c *RegionHealthCheckServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
133763	gensupport.SetOptions(c.urlParams_, opts...)
133764	res, err := c.doRequest("json")
133765	if res != nil && res.StatusCode == http.StatusNotModified {
133766		if res.Body != nil {
133767			res.Body.Close()
133768		}
133769		return nil, &googleapi.Error{
133770			Code:   res.StatusCode,
133771			Header: res.Header,
133772		}
133773	}
133774	if err != nil {
133775		return nil, err
133776	}
133777	defer googleapi.CloseBody(res)
133778	if err := googleapi.CheckResponse(res); err != nil {
133779		return nil, err
133780	}
133781	ret := &TestPermissionsResponse{
133782		ServerResponse: googleapi.ServerResponse{
133783			Header:         res.Header,
133784			HTTPStatusCode: res.StatusCode,
133785		},
133786	}
133787	target := &ret
133788	if err := gensupport.DecodeResponse(target, res); err != nil {
133789		return nil, err
133790	}
133791	return ret, nil
133792	// {
133793	//   "description": "Returns permissions that a caller has on the specified resource.",
133794	//   "httpMethod": "POST",
133795	//   "id": "compute.regionHealthCheckServices.testIamPermissions",
133796	//   "parameterOrder": [
133797	//     "project",
133798	//     "region",
133799	//     "resource"
133800	//   ],
133801	//   "parameters": {
133802	//     "project": {
133803	//       "description": "Project ID for this request.",
133804	//       "location": "path",
133805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133806	//       "required": true,
133807	//       "type": "string"
133808	//     },
133809	//     "region": {
133810	//       "description": "The name of the region for this request.",
133811	//       "location": "path",
133812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133813	//       "required": true,
133814	//       "type": "string"
133815	//     },
133816	//     "resource": {
133817	//       "description": "Name or id of the resource for this request.",
133818	//       "location": "path",
133819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133820	//       "required": true,
133821	//       "type": "string"
133822	//     }
133823	//   },
133824	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions",
133825	//   "request": {
133826	//     "$ref": "TestPermissionsRequest"
133827	//   },
133828	//   "response": {
133829	//     "$ref": "TestPermissionsResponse"
133830	//   },
133831	//   "scopes": [
133832	//     "https://www.googleapis.com/auth/cloud-platform",
133833	//     "https://www.googleapis.com/auth/compute",
133834	//     "https://www.googleapis.com/auth/compute.readonly"
133835	//   ]
133836	// }
133837
133838}
133839
133840// method id "compute.regionHealthChecks.delete":
133841
133842type RegionHealthChecksDeleteCall struct {
133843	s           *Service
133844	project     string
133845	region      string
133846	healthCheck string
133847	urlParams_  gensupport.URLParams
133848	ctx_        context.Context
133849	header_     http.Header
133850}
133851
133852// Delete: Deletes the specified HealthCheck resource.
133853//
133854// - healthCheck: Name of the HealthCheck resource to delete.
133855// - project: Project ID for this request.
133856// - region: Name of the region scoping this request.
133857func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
133858	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133859	c.project = project
133860	c.region = region
133861	c.healthCheck = healthCheck
133862	return c
133863}
133864
133865// RequestId sets the optional parameter "requestId": An optional
133866// request ID to identify requests. Specify a unique request ID so that
133867// if you must retry your request, the server will know to ignore the
133868// request if it has already been completed.
133869//
133870// For example, consider a situation where you make an initial request
133871// and the request times out. If you make the request again with the
133872// same request ID, the server can check if original operation with the
133873// same request ID was received, and if so, will ignore the second
133874// request. This prevents clients from accidentally creating duplicate
133875// commitments.
133876//
133877// The request ID must be a valid UUID with the exception that zero UUID
133878// is not supported (00000000-0000-0000-0000-000000000000).
133879func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
133880	c.urlParams_.Set("requestId", requestId)
133881	return c
133882}
133883
133884// Fields allows partial responses to be retrieved. See
133885// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133886// for more information.
133887func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
133888	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133889	return c
133890}
133891
133892// Context sets the context to be used in this call's Do method. Any
133893// pending HTTP request will be aborted if the provided context is
133894// canceled.
133895func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
133896	c.ctx_ = ctx
133897	return c
133898}
133899
133900// Header returns an http.Header that can be modified by the caller to
133901// add HTTP headers to the request.
133902func (c *RegionHealthChecksDeleteCall) Header() http.Header {
133903	if c.header_ == nil {
133904		c.header_ = make(http.Header)
133905	}
133906	return c.header_
133907}
133908
133909func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
133910	reqHeaders := make(http.Header)
133911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133912	for k, v := range c.header_ {
133913		reqHeaders[k] = v
133914	}
133915	reqHeaders.Set("User-Agent", c.s.userAgent())
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}/healthChecks/{healthCheck}")
133920	urls += "?" + c.urlParams_.Encode()
133921	req, err := http.NewRequest("DELETE", 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		"healthCheck": c.healthCheck,
133930	})
133931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133932}
133933
133934// Do executes the "compute.regionHealthChecks.delete" call.
133935// Exactly one of *Operation or error will be non-nil. Any non-2xx
133936// status code is an error. Response headers are in either
133937// *Operation.ServerResponse.Header or (if a response was returned at
133938// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133939// to check whether the returned error was because
133940// http.StatusNotModified was returned.
133941func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133942	gensupport.SetOptions(c.urlParams_, opts...)
133943	res, err := c.doRequest("json")
133944	if res != nil && res.StatusCode == http.StatusNotModified {
133945		if res.Body != nil {
133946			res.Body.Close()
133947		}
133948		return nil, &googleapi.Error{
133949			Code:   res.StatusCode,
133950			Header: res.Header,
133951		}
133952	}
133953	if err != nil {
133954		return nil, err
133955	}
133956	defer googleapi.CloseBody(res)
133957	if err := googleapi.CheckResponse(res); err != nil {
133958		return nil, err
133959	}
133960	ret := &Operation{
133961		ServerResponse: googleapi.ServerResponse{
133962			Header:         res.Header,
133963			HTTPStatusCode: res.StatusCode,
133964		},
133965	}
133966	target := &ret
133967	if err := gensupport.DecodeResponse(target, res); err != nil {
133968		return nil, err
133969	}
133970	return ret, nil
133971	// {
133972	//   "description": "Deletes the specified HealthCheck resource.",
133973	//   "httpMethod": "DELETE",
133974	//   "id": "compute.regionHealthChecks.delete",
133975	//   "parameterOrder": [
133976	//     "project",
133977	//     "region",
133978	//     "healthCheck"
133979	//   ],
133980	//   "parameters": {
133981	//     "healthCheck": {
133982	//       "description": "Name of the HealthCheck resource to delete.",
133983	//       "location": "path",
133984	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133985	//       "required": true,
133986	//       "type": "string"
133987	//     },
133988	//     "project": {
133989	//       "description": "Project ID for this request.",
133990	//       "location": "path",
133991	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133992	//       "required": true,
133993	//       "type": "string"
133994	//     },
133995	//     "region": {
133996	//       "description": "Name of the region scoping this request.",
133997	//       "location": "path",
133998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133999	//       "required": true,
134000	//       "type": "string"
134001	//     },
134002	//     "requestId": {
134003	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134004	//       "location": "query",
134005	//       "type": "string"
134006	//     }
134007	//   },
134008	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
134009	//   "response": {
134010	//     "$ref": "Operation"
134011	//   },
134012	//   "scopes": [
134013	//     "https://www.googleapis.com/auth/cloud-platform",
134014	//     "https://www.googleapis.com/auth/compute"
134015	//   ]
134016	// }
134017
134018}
134019
134020// method id "compute.regionHealthChecks.get":
134021
134022type RegionHealthChecksGetCall struct {
134023	s            *Service
134024	project      string
134025	region       string
134026	healthCheck  string
134027	urlParams_   gensupport.URLParams
134028	ifNoneMatch_ string
134029	ctx_         context.Context
134030	header_      http.Header
134031}
134032
134033// Get: Returns the specified HealthCheck resource. Gets a list of
134034// available health checks by making a list() request.
134035//
134036// - healthCheck: Name of the HealthCheck resource to return.
134037// - project: Project ID for this request.
134038// - region: Name of the region scoping this request.
134039func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
134040	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134041	c.project = project
134042	c.region = region
134043	c.healthCheck = healthCheck
134044	return c
134045}
134046
134047// Fields allows partial responses to be retrieved. See
134048// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134049// for more information.
134050func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
134051	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134052	return c
134053}
134054
134055// IfNoneMatch sets the optional parameter which makes the operation
134056// fail if the object's ETag matches the given value. This is useful for
134057// getting updates only after the object has changed since the last
134058// request. Use googleapi.IsNotModified to check whether the response
134059// error from Do is the result of In-None-Match.
134060func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
134061	c.ifNoneMatch_ = entityTag
134062	return c
134063}
134064
134065// Context sets the context to be used in this call's Do method. Any
134066// pending HTTP request will be aborted if the provided context is
134067// canceled.
134068func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
134069	c.ctx_ = ctx
134070	return c
134071}
134072
134073// Header returns an http.Header that can be modified by the caller to
134074// add HTTP headers to the request.
134075func (c *RegionHealthChecksGetCall) Header() http.Header {
134076	if c.header_ == nil {
134077		c.header_ = make(http.Header)
134078	}
134079	return c.header_
134080}
134081
134082func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
134083	reqHeaders := make(http.Header)
134084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134085	for k, v := range c.header_ {
134086		reqHeaders[k] = v
134087	}
134088	reqHeaders.Set("User-Agent", c.s.userAgent())
134089	if c.ifNoneMatch_ != "" {
134090		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134091	}
134092	var body io.Reader = nil
134093	c.urlParams_.Set("alt", alt)
134094	c.urlParams_.Set("prettyPrint", "false")
134095	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
134096	urls += "?" + c.urlParams_.Encode()
134097	req, err := http.NewRequest("GET", urls, body)
134098	if err != nil {
134099		return nil, err
134100	}
134101	req.Header = reqHeaders
134102	googleapi.Expand(req.URL, map[string]string{
134103		"project":     c.project,
134104		"region":      c.region,
134105		"healthCheck": c.healthCheck,
134106	})
134107	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134108}
134109
134110// Do executes the "compute.regionHealthChecks.get" call.
134111// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
134112// status code is an error. Response headers are in either
134113// *HealthCheck.ServerResponse.Header or (if a response was returned at
134114// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134115// to check whether the returned error was because
134116// http.StatusNotModified was returned.
134117func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
134118	gensupport.SetOptions(c.urlParams_, opts...)
134119	res, err := c.doRequest("json")
134120	if res != nil && res.StatusCode == http.StatusNotModified {
134121		if res.Body != nil {
134122			res.Body.Close()
134123		}
134124		return nil, &googleapi.Error{
134125			Code:   res.StatusCode,
134126			Header: res.Header,
134127		}
134128	}
134129	if err != nil {
134130		return nil, err
134131	}
134132	defer googleapi.CloseBody(res)
134133	if err := googleapi.CheckResponse(res); err != nil {
134134		return nil, err
134135	}
134136	ret := &HealthCheck{
134137		ServerResponse: googleapi.ServerResponse{
134138			Header:         res.Header,
134139			HTTPStatusCode: res.StatusCode,
134140		},
134141	}
134142	target := &ret
134143	if err := gensupport.DecodeResponse(target, res); err != nil {
134144		return nil, err
134145	}
134146	return ret, nil
134147	// {
134148	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
134149	//   "httpMethod": "GET",
134150	//   "id": "compute.regionHealthChecks.get",
134151	//   "parameterOrder": [
134152	//     "project",
134153	//     "region",
134154	//     "healthCheck"
134155	//   ],
134156	//   "parameters": {
134157	//     "healthCheck": {
134158	//       "description": "Name of the HealthCheck resource to return.",
134159	//       "location": "path",
134160	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134161	//       "required": true,
134162	//       "type": "string"
134163	//     },
134164	//     "project": {
134165	//       "description": "Project ID for this request.",
134166	//       "location": "path",
134167	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134168	//       "required": true,
134169	//       "type": "string"
134170	//     },
134171	//     "region": {
134172	//       "description": "Name of the region scoping this request.",
134173	//       "location": "path",
134174	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134175	//       "required": true,
134176	//       "type": "string"
134177	//     }
134178	//   },
134179	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
134180	//   "response": {
134181	//     "$ref": "HealthCheck"
134182	//   },
134183	//   "scopes": [
134184	//     "https://www.googleapis.com/auth/cloud-platform",
134185	//     "https://www.googleapis.com/auth/compute",
134186	//     "https://www.googleapis.com/auth/compute.readonly"
134187	//   ]
134188	// }
134189
134190}
134191
134192// method id "compute.regionHealthChecks.insert":
134193
134194type RegionHealthChecksInsertCall struct {
134195	s           *Service
134196	project     string
134197	region      string
134198	healthcheck *HealthCheck
134199	urlParams_  gensupport.URLParams
134200	ctx_        context.Context
134201	header_     http.Header
134202}
134203
134204// Insert: Creates a HealthCheck resource in the specified project using
134205// the data included in the request.
134206//
134207// - project: Project ID for this request.
134208// - region: Name of the region scoping this request.
134209func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
134210	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134211	c.project = project
134212	c.region = region
134213	c.healthcheck = healthcheck
134214	return c
134215}
134216
134217// RequestId sets the optional parameter "requestId": An optional
134218// request ID to identify requests. Specify a unique request ID so that
134219// if you must retry your request, the server will know to ignore the
134220// request if it has already been completed.
134221//
134222// For example, consider a situation where you make an initial request
134223// and the request times out. If you make the request again with the
134224// same request ID, the server can check if original operation with the
134225// same request ID was received, and if so, will ignore the second
134226// request. This prevents clients from accidentally creating duplicate
134227// commitments.
134228//
134229// The request ID must be a valid UUID with the exception that zero UUID
134230// is not supported (00000000-0000-0000-0000-000000000000).
134231func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
134232	c.urlParams_.Set("requestId", requestId)
134233	return c
134234}
134235
134236// Fields allows partial responses to be retrieved. See
134237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134238// for more information.
134239func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
134240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134241	return c
134242}
134243
134244// Context sets the context to be used in this call's Do method. Any
134245// pending HTTP request will be aborted if the provided context is
134246// canceled.
134247func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
134248	c.ctx_ = ctx
134249	return c
134250}
134251
134252// Header returns an http.Header that can be modified by the caller to
134253// add HTTP headers to the request.
134254func (c *RegionHealthChecksInsertCall) Header() http.Header {
134255	if c.header_ == nil {
134256		c.header_ = make(http.Header)
134257	}
134258	return c.header_
134259}
134260
134261func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
134262	reqHeaders := make(http.Header)
134263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134264	for k, v := range c.header_ {
134265		reqHeaders[k] = v
134266	}
134267	reqHeaders.Set("User-Agent", c.s.userAgent())
134268	var body io.Reader = nil
134269	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
134270	if err != nil {
134271		return nil, err
134272	}
134273	reqHeaders.Set("Content-Type", "application/json")
134274	c.urlParams_.Set("alt", alt)
134275	c.urlParams_.Set("prettyPrint", "false")
134276	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
134277	urls += "?" + c.urlParams_.Encode()
134278	req, err := http.NewRequest("POST", urls, body)
134279	if err != nil {
134280		return nil, err
134281	}
134282	req.Header = reqHeaders
134283	googleapi.Expand(req.URL, map[string]string{
134284		"project": c.project,
134285		"region":  c.region,
134286	})
134287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134288}
134289
134290// Do executes the "compute.regionHealthChecks.insert" call.
134291// Exactly one of *Operation or error will be non-nil. Any non-2xx
134292// status code is an error. Response headers are in either
134293// *Operation.ServerResponse.Header or (if a response was returned at
134294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134295// to check whether the returned error was because
134296// http.StatusNotModified was returned.
134297func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134298	gensupport.SetOptions(c.urlParams_, opts...)
134299	res, err := c.doRequest("json")
134300	if res != nil && res.StatusCode == http.StatusNotModified {
134301		if res.Body != nil {
134302			res.Body.Close()
134303		}
134304		return nil, &googleapi.Error{
134305			Code:   res.StatusCode,
134306			Header: res.Header,
134307		}
134308	}
134309	if err != nil {
134310		return nil, err
134311	}
134312	defer googleapi.CloseBody(res)
134313	if err := googleapi.CheckResponse(res); err != nil {
134314		return nil, err
134315	}
134316	ret := &Operation{
134317		ServerResponse: googleapi.ServerResponse{
134318			Header:         res.Header,
134319			HTTPStatusCode: res.StatusCode,
134320		},
134321	}
134322	target := &ret
134323	if err := gensupport.DecodeResponse(target, res); err != nil {
134324		return nil, err
134325	}
134326	return ret, nil
134327	// {
134328	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
134329	//   "httpMethod": "POST",
134330	//   "id": "compute.regionHealthChecks.insert",
134331	//   "parameterOrder": [
134332	//     "project",
134333	//     "region"
134334	//   ],
134335	//   "parameters": {
134336	//     "project": {
134337	//       "description": "Project ID for this request.",
134338	//       "location": "path",
134339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134340	//       "required": true,
134341	//       "type": "string"
134342	//     },
134343	//     "region": {
134344	//       "description": "Name of the region scoping this request.",
134345	//       "location": "path",
134346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134347	//       "required": true,
134348	//       "type": "string"
134349	//     },
134350	//     "requestId": {
134351	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134352	//       "location": "query",
134353	//       "type": "string"
134354	//     }
134355	//   },
134356	//   "path": "projects/{project}/regions/{region}/healthChecks",
134357	//   "request": {
134358	//     "$ref": "HealthCheck"
134359	//   },
134360	//   "response": {
134361	//     "$ref": "Operation"
134362	//   },
134363	//   "scopes": [
134364	//     "https://www.googleapis.com/auth/cloud-platform",
134365	//     "https://www.googleapis.com/auth/compute"
134366	//   ]
134367	// }
134368
134369}
134370
134371// method id "compute.regionHealthChecks.list":
134372
134373type RegionHealthChecksListCall struct {
134374	s            *Service
134375	project      string
134376	region       string
134377	urlParams_   gensupport.URLParams
134378	ifNoneMatch_ string
134379	ctx_         context.Context
134380	header_      http.Header
134381}
134382
134383// List: Retrieves the list of HealthCheck resources available to the
134384// specified project.
134385//
134386// - project: Project ID for this request.
134387// - region: Name of the region scoping this request.
134388func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
134389	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134390	c.project = project
134391	c.region = region
134392	return c
134393}
134394
134395// Filter sets the optional parameter "filter": A filter expression that
134396// filters resources listed in the response. The expression must specify
134397// the field name, a comparison operator, and the value that you want to
134398// use for filtering. The value must be a string, a number, or a
134399// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134400// `<`.
134401//
134402// For example, if you are filtering Compute Engine instances, you can
134403// exclude instances named `example-instance` by specifying `name !=
134404// example-instance`.
134405//
134406// You can also filter nested fields. For example, you could specify
134407// `scheduling.automaticRestart = false` to include instances only if
134408// they are not scheduled for automatic restarts. You can use filtering
134409// on nested fields to filter based on resource labels.
134410//
134411// To filter on multiple expressions, provide each separate expression
134412// within parentheses. For example: ``` (scheduling.automaticRestart =
134413// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134414// is an `AND` expression. However, you can include `AND` and `OR`
134415// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134416// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134417// (scheduling.automaticRestart = true) ```
134418func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
134419	c.urlParams_.Set("filter", filter)
134420	return c
134421}
134422
134423// MaxResults sets the optional parameter "maxResults": The maximum
134424// number of results per page that should be returned. If the number of
134425// available results is larger than `maxResults`, Compute Engine returns
134426// a `nextPageToken` that can be used to get the next page of results in
134427// subsequent list requests. Acceptable values are `0` to `500`,
134428// inclusive. (Default: `500`)
134429func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
134430	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134431	return c
134432}
134433
134434// OrderBy sets the optional parameter "orderBy": Sorts list results by
134435// a certain order. By default, results are returned in alphanumerical
134436// order based on the resource name.
134437//
134438// You can also sort results in descending order based on the creation
134439// timestamp using `orderBy="creationTimestamp desc". This sorts
134440// results based on the `creationTimestamp` field in reverse
134441// chronological order (newest result first). Use this to sort resources
134442// like operations so that the newest operation is returned
134443// first.
134444//
134445// Currently, only sorting by `name` or `creationTimestamp desc` is
134446// supported.
134447func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
134448	c.urlParams_.Set("orderBy", orderBy)
134449	return c
134450}
134451
134452// PageToken sets the optional parameter "pageToken": Specifies a page
134453// token to use. Set `pageToken` to the `nextPageToken` returned by a
134454// previous list request to get the next page of results.
134455func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
134456	c.urlParams_.Set("pageToken", pageToken)
134457	return c
134458}
134459
134460// ReturnPartialSuccess sets the optional parameter
134461// "returnPartialSuccess": Opt-in for partial success behavior which
134462// provides partial results in case of failure. The default value is
134463// false.
134464func (c *RegionHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthChecksListCall {
134465	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
134466	return c
134467}
134468
134469// Fields allows partial responses to be retrieved. See
134470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134471// for more information.
134472func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
134473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134474	return c
134475}
134476
134477// IfNoneMatch sets the optional parameter which makes the operation
134478// fail if the object's ETag matches the given value. This is useful for
134479// getting updates only after the object has changed since the last
134480// request. Use googleapi.IsNotModified to check whether the response
134481// error from Do is the result of In-None-Match.
134482func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
134483	c.ifNoneMatch_ = entityTag
134484	return c
134485}
134486
134487// Context sets the context to be used in this call's Do method. Any
134488// pending HTTP request will be aborted if the provided context is
134489// canceled.
134490func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
134491	c.ctx_ = ctx
134492	return c
134493}
134494
134495// Header returns an http.Header that can be modified by the caller to
134496// add HTTP headers to the request.
134497func (c *RegionHealthChecksListCall) Header() http.Header {
134498	if c.header_ == nil {
134499		c.header_ = make(http.Header)
134500	}
134501	return c.header_
134502}
134503
134504func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
134505	reqHeaders := make(http.Header)
134506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134507	for k, v := range c.header_ {
134508		reqHeaders[k] = v
134509	}
134510	reqHeaders.Set("User-Agent", c.s.userAgent())
134511	if c.ifNoneMatch_ != "" {
134512		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134513	}
134514	var body io.Reader = nil
134515	c.urlParams_.Set("alt", alt)
134516	c.urlParams_.Set("prettyPrint", "false")
134517	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
134518	urls += "?" + c.urlParams_.Encode()
134519	req, err := http.NewRequest("GET", urls, body)
134520	if err != nil {
134521		return nil, err
134522	}
134523	req.Header = reqHeaders
134524	googleapi.Expand(req.URL, map[string]string{
134525		"project": c.project,
134526		"region":  c.region,
134527	})
134528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134529}
134530
134531// Do executes the "compute.regionHealthChecks.list" call.
134532// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
134533// status code is an error. Response headers are in either
134534// *HealthCheckList.ServerResponse.Header or (if a response was returned
134535// at all) in error.(*googleapi.Error).Header. Use
134536// googleapi.IsNotModified to check whether the returned error was
134537// because http.StatusNotModified was returned.
134538func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
134539	gensupport.SetOptions(c.urlParams_, opts...)
134540	res, err := c.doRequest("json")
134541	if res != nil && res.StatusCode == http.StatusNotModified {
134542		if res.Body != nil {
134543			res.Body.Close()
134544		}
134545		return nil, &googleapi.Error{
134546			Code:   res.StatusCode,
134547			Header: res.Header,
134548		}
134549	}
134550	if err != nil {
134551		return nil, err
134552	}
134553	defer googleapi.CloseBody(res)
134554	if err := googleapi.CheckResponse(res); err != nil {
134555		return nil, err
134556	}
134557	ret := &HealthCheckList{
134558		ServerResponse: googleapi.ServerResponse{
134559			Header:         res.Header,
134560			HTTPStatusCode: res.StatusCode,
134561		},
134562	}
134563	target := &ret
134564	if err := gensupport.DecodeResponse(target, res); err != nil {
134565		return nil, err
134566	}
134567	return ret, nil
134568	// {
134569	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
134570	//   "httpMethod": "GET",
134571	//   "id": "compute.regionHealthChecks.list",
134572	//   "parameterOrder": [
134573	//     "project",
134574	//     "region"
134575	//   ],
134576	//   "parameters": {
134577	//     "filter": {
134578	//       "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) ```",
134579	//       "location": "query",
134580	//       "type": "string"
134581	//     },
134582	//     "maxResults": {
134583	//       "default": "500",
134584	//       "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`)",
134585	//       "format": "uint32",
134586	//       "location": "query",
134587	//       "minimum": "0",
134588	//       "type": "integer"
134589	//     },
134590	//     "orderBy": {
134591	//       "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.",
134592	//       "location": "query",
134593	//       "type": "string"
134594	//     },
134595	//     "pageToken": {
134596	//       "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.",
134597	//       "location": "query",
134598	//       "type": "string"
134599	//     },
134600	//     "project": {
134601	//       "description": "Project ID for this request.",
134602	//       "location": "path",
134603	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134604	//       "required": true,
134605	//       "type": "string"
134606	//     },
134607	//     "region": {
134608	//       "description": "Name of the region scoping this request.",
134609	//       "location": "path",
134610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134611	//       "required": true,
134612	//       "type": "string"
134613	//     },
134614	//     "returnPartialSuccess": {
134615	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
134616	//       "location": "query",
134617	//       "type": "boolean"
134618	//     }
134619	//   },
134620	//   "path": "projects/{project}/regions/{region}/healthChecks",
134621	//   "response": {
134622	//     "$ref": "HealthCheckList"
134623	//   },
134624	//   "scopes": [
134625	//     "https://www.googleapis.com/auth/cloud-platform",
134626	//     "https://www.googleapis.com/auth/compute",
134627	//     "https://www.googleapis.com/auth/compute.readonly"
134628	//   ]
134629	// }
134630
134631}
134632
134633// Pages invokes f for each page of results.
134634// A non-nil error returned from f will halt the iteration.
134635// The provided context supersedes any context provided to the Context method.
134636func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
134637	c.ctx_ = ctx
134638	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134639	for {
134640		x, err := c.Do()
134641		if err != nil {
134642			return err
134643		}
134644		if err := f(x); err != nil {
134645			return err
134646		}
134647		if x.NextPageToken == "" {
134648			return nil
134649		}
134650		c.PageToken(x.NextPageToken)
134651	}
134652}
134653
134654// method id "compute.regionHealthChecks.patch":
134655
134656type RegionHealthChecksPatchCall struct {
134657	s           *Service
134658	project     string
134659	region      string
134660	healthCheck string
134661	healthcheck *HealthCheck
134662	urlParams_  gensupport.URLParams
134663	ctx_        context.Context
134664	header_     http.Header
134665}
134666
134667// Patch: Updates a HealthCheck resource in the specified project using
134668// the data included in the request. This method supports PATCH
134669// semantics and uses the JSON merge patch format and processing rules.
134670//
134671// - healthCheck: Name of the HealthCheck resource to patch.
134672// - project: Project ID for this request.
134673// - region: Name of the region scoping this request.
134674func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
134675	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134676	c.project = project
134677	c.region = region
134678	c.healthCheck = healthCheck
134679	c.healthcheck = healthcheck
134680	return c
134681}
134682
134683// RequestId sets the optional parameter "requestId": An optional
134684// request ID to identify requests. Specify a unique request ID so that
134685// if you must retry your request, the server will know to ignore the
134686// request if it has already been completed.
134687//
134688// For example, consider a situation where you make an initial request
134689// and the request times out. If you make the request again with the
134690// same request ID, the server can check if original operation with the
134691// same request ID was received, and if so, will ignore the second
134692// request. This prevents clients from accidentally creating duplicate
134693// commitments.
134694//
134695// The request ID must be a valid UUID with the exception that zero UUID
134696// is not supported (00000000-0000-0000-0000-000000000000).
134697func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
134698	c.urlParams_.Set("requestId", requestId)
134699	return c
134700}
134701
134702// Fields allows partial responses to be retrieved. See
134703// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134704// for more information.
134705func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
134706	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134707	return c
134708}
134709
134710// Context sets the context to be used in this call's Do method. Any
134711// pending HTTP request will be aborted if the provided context is
134712// canceled.
134713func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
134714	c.ctx_ = ctx
134715	return c
134716}
134717
134718// Header returns an http.Header that can be modified by the caller to
134719// add HTTP headers to the request.
134720func (c *RegionHealthChecksPatchCall) Header() http.Header {
134721	if c.header_ == nil {
134722		c.header_ = make(http.Header)
134723	}
134724	return c.header_
134725}
134726
134727func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
134728	reqHeaders := make(http.Header)
134729	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134730	for k, v := range c.header_ {
134731		reqHeaders[k] = v
134732	}
134733	reqHeaders.Set("User-Agent", c.s.userAgent())
134734	var body io.Reader = nil
134735	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
134736	if err != nil {
134737		return nil, err
134738	}
134739	reqHeaders.Set("Content-Type", "application/json")
134740	c.urlParams_.Set("alt", alt)
134741	c.urlParams_.Set("prettyPrint", "false")
134742	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
134743	urls += "?" + c.urlParams_.Encode()
134744	req, err := http.NewRequest("PATCH", urls, body)
134745	if err != nil {
134746		return nil, err
134747	}
134748	req.Header = reqHeaders
134749	googleapi.Expand(req.URL, map[string]string{
134750		"project":     c.project,
134751		"region":      c.region,
134752		"healthCheck": c.healthCheck,
134753	})
134754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134755}
134756
134757// Do executes the "compute.regionHealthChecks.patch" call.
134758// Exactly one of *Operation or error will be non-nil. Any non-2xx
134759// status code is an error. Response headers are in either
134760// *Operation.ServerResponse.Header or (if a response was returned at
134761// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134762// to check whether the returned error was because
134763// http.StatusNotModified was returned.
134764func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134765	gensupport.SetOptions(c.urlParams_, opts...)
134766	res, err := c.doRequest("json")
134767	if res != nil && res.StatusCode == http.StatusNotModified {
134768		if res.Body != nil {
134769			res.Body.Close()
134770		}
134771		return nil, &googleapi.Error{
134772			Code:   res.StatusCode,
134773			Header: res.Header,
134774		}
134775	}
134776	if err != nil {
134777		return nil, err
134778	}
134779	defer googleapi.CloseBody(res)
134780	if err := googleapi.CheckResponse(res); err != nil {
134781		return nil, err
134782	}
134783	ret := &Operation{
134784		ServerResponse: googleapi.ServerResponse{
134785			Header:         res.Header,
134786			HTTPStatusCode: res.StatusCode,
134787		},
134788	}
134789	target := &ret
134790	if err := gensupport.DecodeResponse(target, res); err != nil {
134791		return nil, err
134792	}
134793	return ret, nil
134794	// {
134795	//   "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.",
134796	//   "httpMethod": "PATCH",
134797	//   "id": "compute.regionHealthChecks.patch",
134798	//   "parameterOrder": [
134799	//     "project",
134800	//     "region",
134801	//     "healthCheck"
134802	//   ],
134803	//   "parameters": {
134804	//     "healthCheck": {
134805	//       "description": "Name of the HealthCheck resource to patch.",
134806	//       "location": "path",
134807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134808	//       "required": true,
134809	//       "type": "string"
134810	//     },
134811	//     "project": {
134812	//       "description": "Project ID for this request.",
134813	//       "location": "path",
134814	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134815	//       "required": true,
134816	//       "type": "string"
134817	//     },
134818	//     "region": {
134819	//       "description": "Name of the region scoping this request.",
134820	//       "location": "path",
134821	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134822	//       "required": true,
134823	//       "type": "string"
134824	//     },
134825	//     "requestId": {
134826	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134827	//       "location": "query",
134828	//       "type": "string"
134829	//     }
134830	//   },
134831	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
134832	//   "request": {
134833	//     "$ref": "HealthCheck"
134834	//   },
134835	//   "response": {
134836	//     "$ref": "Operation"
134837	//   },
134838	//   "scopes": [
134839	//     "https://www.googleapis.com/auth/cloud-platform",
134840	//     "https://www.googleapis.com/auth/compute"
134841	//   ]
134842	// }
134843
134844}
134845
134846// method id "compute.regionHealthChecks.testIamPermissions":
134847
134848type RegionHealthChecksTestIamPermissionsCall struct {
134849	s                      *Service
134850	project                string
134851	region                 string
134852	resource               string
134853	testpermissionsrequest *TestPermissionsRequest
134854	urlParams_             gensupport.URLParams
134855	ctx_                   context.Context
134856	header_                http.Header
134857}
134858
134859// TestIamPermissions: Returns permissions that a caller has on the
134860// specified resource.
134861//
134862// - project: Project ID for this request.
134863// - region: The name of the region for this request.
134864// - resource: Name or id of the resource for this request.
134865func (r *RegionHealthChecksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthChecksTestIamPermissionsCall {
134866	c := &RegionHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134867	c.project = project
134868	c.region = region
134869	c.resource = resource
134870	c.testpermissionsrequest = testpermissionsrequest
134871	return c
134872}
134873
134874// Fields allows partial responses to be retrieved. See
134875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134876// for more information.
134877func (c *RegionHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthChecksTestIamPermissionsCall {
134878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134879	return c
134880}
134881
134882// Context sets the context to be used in this call's Do method. Any
134883// pending HTTP request will be aborted if the provided context is
134884// canceled.
134885func (c *RegionHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthChecksTestIamPermissionsCall {
134886	c.ctx_ = ctx
134887	return c
134888}
134889
134890// Header returns an http.Header that can be modified by the caller to
134891// add HTTP headers to the request.
134892func (c *RegionHealthChecksTestIamPermissionsCall) Header() http.Header {
134893	if c.header_ == nil {
134894		c.header_ = make(http.Header)
134895	}
134896	return c.header_
134897}
134898
134899func (c *RegionHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
134900	reqHeaders := make(http.Header)
134901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134902	for k, v := range c.header_ {
134903		reqHeaders[k] = v
134904	}
134905	reqHeaders.Set("User-Agent", c.s.userAgent())
134906	var body io.Reader = nil
134907	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
134908	if err != nil {
134909		return nil, err
134910	}
134911	reqHeaders.Set("Content-Type", "application/json")
134912	c.urlParams_.Set("alt", alt)
134913	c.urlParams_.Set("prettyPrint", "false")
134914	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions")
134915	urls += "?" + c.urlParams_.Encode()
134916	req, err := http.NewRequest("POST", urls, body)
134917	if err != nil {
134918		return nil, err
134919	}
134920	req.Header = reqHeaders
134921	googleapi.Expand(req.URL, map[string]string{
134922		"project":  c.project,
134923		"region":   c.region,
134924		"resource": c.resource,
134925	})
134926	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134927}
134928
134929// Do executes the "compute.regionHealthChecks.testIamPermissions" call.
134930// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
134931// non-2xx status code is an error. Response headers are in either
134932// *TestPermissionsResponse.ServerResponse.Header or (if a response was
134933// returned at all) in error.(*googleapi.Error).Header. Use
134934// googleapi.IsNotModified to check whether the returned error was
134935// because http.StatusNotModified was returned.
134936func (c *RegionHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
134937	gensupport.SetOptions(c.urlParams_, opts...)
134938	res, err := c.doRequest("json")
134939	if res != nil && res.StatusCode == http.StatusNotModified {
134940		if res.Body != nil {
134941			res.Body.Close()
134942		}
134943		return nil, &googleapi.Error{
134944			Code:   res.StatusCode,
134945			Header: res.Header,
134946		}
134947	}
134948	if err != nil {
134949		return nil, err
134950	}
134951	defer googleapi.CloseBody(res)
134952	if err := googleapi.CheckResponse(res); err != nil {
134953		return nil, err
134954	}
134955	ret := &TestPermissionsResponse{
134956		ServerResponse: googleapi.ServerResponse{
134957			Header:         res.Header,
134958			HTTPStatusCode: res.StatusCode,
134959		},
134960	}
134961	target := &ret
134962	if err := gensupport.DecodeResponse(target, res); err != nil {
134963		return nil, err
134964	}
134965	return ret, nil
134966	// {
134967	//   "description": "Returns permissions that a caller has on the specified resource.",
134968	//   "httpMethod": "POST",
134969	//   "id": "compute.regionHealthChecks.testIamPermissions",
134970	//   "parameterOrder": [
134971	//     "project",
134972	//     "region",
134973	//     "resource"
134974	//   ],
134975	//   "parameters": {
134976	//     "project": {
134977	//       "description": "Project ID for this request.",
134978	//       "location": "path",
134979	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134980	//       "required": true,
134981	//       "type": "string"
134982	//     },
134983	//     "region": {
134984	//       "description": "The name of the region for this request.",
134985	//       "location": "path",
134986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134987	//       "required": true,
134988	//       "type": "string"
134989	//     },
134990	//     "resource": {
134991	//       "description": "Name or id of the resource for this request.",
134992	//       "location": "path",
134993	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134994	//       "required": true,
134995	//       "type": "string"
134996	//     }
134997	//   },
134998	//   "path": "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions",
134999	//   "request": {
135000	//     "$ref": "TestPermissionsRequest"
135001	//   },
135002	//   "response": {
135003	//     "$ref": "TestPermissionsResponse"
135004	//   },
135005	//   "scopes": [
135006	//     "https://www.googleapis.com/auth/cloud-platform",
135007	//     "https://www.googleapis.com/auth/compute",
135008	//     "https://www.googleapis.com/auth/compute.readonly"
135009	//   ]
135010	// }
135011
135012}
135013
135014// method id "compute.regionHealthChecks.update":
135015
135016type RegionHealthChecksUpdateCall struct {
135017	s           *Service
135018	project     string
135019	region      string
135020	healthCheck string
135021	healthcheck *HealthCheck
135022	urlParams_  gensupport.URLParams
135023	ctx_        context.Context
135024	header_     http.Header
135025}
135026
135027// Update: Updates a HealthCheck resource in the specified project using
135028// the data included in the request.
135029//
135030// - healthCheck: Name of the HealthCheck resource to update.
135031// - project: Project ID for this request.
135032// - region: Name of the region scoping this request.
135033func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
135034	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135035	c.project = project
135036	c.region = region
135037	c.healthCheck = healthCheck
135038	c.healthcheck = healthcheck
135039	return c
135040}
135041
135042// RequestId sets the optional parameter "requestId": An optional
135043// request ID to identify requests. Specify a unique request ID so that
135044// if you must retry your request, the server will know to ignore the
135045// request if it has already been completed.
135046//
135047// For example, consider a situation where you make an initial request
135048// and the request times out. If you make the request again with the
135049// same request ID, the server can check if original operation with the
135050// same request ID was received, and if so, will ignore the second
135051// request. This prevents clients from accidentally creating duplicate
135052// commitments.
135053//
135054// The request ID must be a valid UUID with the exception that zero UUID
135055// is not supported (00000000-0000-0000-0000-000000000000).
135056func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
135057	c.urlParams_.Set("requestId", requestId)
135058	return c
135059}
135060
135061// Fields allows partial responses to be retrieved. See
135062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135063// for more information.
135064func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
135065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135066	return c
135067}
135068
135069// Context sets the context to be used in this call's Do method. Any
135070// pending HTTP request will be aborted if the provided context is
135071// canceled.
135072func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
135073	c.ctx_ = ctx
135074	return c
135075}
135076
135077// Header returns an http.Header that can be modified by the caller to
135078// add HTTP headers to the request.
135079func (c *RegionHealthChecksUpdateCall) Header() http.Header {
135080	if c.header_ == nil {
135081		c.header_ = make(http.Header)
135082	}
135083	return c.header_
135084}
135085
135086func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
135087	reqHeaders := make(http.Header)
135088	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135089	for k, v := range c.header_ {
135090		reqHeaders[k] = v
135091	}
135092	reqHeaders.Set("User-Agent", c.s.userAgent())
135093	var body io.Reader = nil
135094	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
135095	if err != nil {
135096		return nil, err
135097	}
135098	reqHeaders.Set("Content-Type", "application/json")
135099	c.urlParams_.Set("alt", alt)
135100	c.urlParams_.Set("prettyPrint", "false")
135101	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
135102	urls += "?" + c.urlParams_.Encode()
135103	req, err := http.NewRequest("PUT", urls, body)
135104	if err != nil {
135105		return nil, err
135106	}
135107	req.Header = reqHeaders
135108	googleapi.Expand(req.URL, map[string]string{
135109		"project":     c.project,
135110		"region":      c.region,
135111		"healthCheck": c.healthCheck,
135112	})
135113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135114}
135115
135116// Do executes the "compute.regionHealthChecks.update" call.
135117// Exactly one of *Operation or error will be non-nil. Any non-2xx
135118// status code is an error. Response headers are in either
135119// *Operation.ServerResponse.Header or (if a response was returned at
135120// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135121// to check whether the returned error was because
135122// http.StatusNotModified was returned.
135123func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135124	gensupport.SetOptions(c.urlParams_, opts...)
135125	res, err := c.doRequest("json")
135126	if res != nil && res.StatusCode == http.StatusNotModified {
135127		if res.Body != nil {
135128			res.Body.Close()
135129		}
135130		return nil, &googleapi.Error{
135131			Code:   res.StatusCode,
135132			Header: res.Header,
135133		}
135134	}
135135	if err != nil {
135136		return nil, err
135137	}
135138	defer googleapi.CloseBody(res)
135139	if err := googleapi.CheckResponse(res); err != nil {
135140		return nil, err
135141	}
135142	ret := &Operation{
135143		ServerResponse: googleapi.ServerResponse{
135144			Header:         res.Header,
135145			HTTPStatusCode: res.StatusCode,
135146		},
135147	}
135148	target := &ret
135149	if err := gensupport.DecodeResponse(target, res); err != nil {
135150		return nil, err
135151	}
135152	return ret, nil
135153	// {
135154	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
135155	//   "httpMethod": "PUT",
135156	//   "id": "compute.regionHealthChecks.update",
135157	//   "parameterOrder": [
135158	//     "project",
135159	//     "region",
135160	//     "healthCheck"
135161	//   ],
135162	//   "parameters": {
135163	//     "healthCheck": {
135164	//       "description": "Name of the HealthCheck resource to update.",
135165	//       "location": "path",
135166	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135167	//       "required": true,
135168	//       "type": "string"
135169	//     },
135170	//     "project": {
135171	//       "description": "Project ID for this request.",
135172	//       "location": "path",
135173	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135174	//       "required": true,
135175	//       "type": "string"
135176	//     },
135177	//     "region": {
135178	//       "description": "Name of the region scoping this request.",
135179	//       "location": "path",
135180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135181	//       "required": true,
135182	//       "type": "string"
135183	//     },
135184	//     "requestId": {
135185	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135186	//       "location": "query",
135187	//       "type": "string"
135188	//     }
135189	//   },
135190	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
135191	//   "request": {
135192	//     "$ref": "HealthCheck"
135193	//   },
135194	//   "response": {
135195	//     "$ref": "Operation"
135196	//   },
135197	//   "scopes": [
135198	//     "https://www.googleapis.com/auth/cloud-platform",
135199	//     "https://www.googleapis.com/auth/compute"
135200	//   ]
135201	// }
135202
135203}
135204
135205// method id "compute.regionInstanceGroupManagers.abandonInstances":
135206
135207type RegionInstanceGroupManagersAbandonInstancesCall struct {
135208	s                                                  *Service
135209	project                                            string
135210	region                                             string
135211	instanceGroupManager                               string
135212	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
135213	urlParams_                                         gensupport.URLParams
135214	ctx_                                               context.Context
135215	header_                                            http.Header
135216}
135217
135218// AbandonInstances: Flags the specified instances to be immediately
135219// removed from the managed instance group. Abandoning an instance does
135220// not delete the instance, but it does remove the instance from any
135221// target pools that are applied by the managed instance group. This
135222// method reduces the targetSize of the managed instance group by the
135223// number of instances that you abandon. This operation is marked as
135224// DONE when the action is scheduled even if the instances have not yet
135225// been removed from the group. You must separately verify the status of
135226// the abandoning action with the listmanagedinstances method.
135227//
135228// If the group is part of a backend service that has enabled connection
135229// draining, it can take up to 60 seconds after the connection draining
135230// duration has elapsed before the VM instance is removed or
135231// deleted.
135232//
135233// You can specify a maximum of 1000 instances with this method per
135234// request.
135235//
135236// - instanceGroupManager: Name of the managed instance group.
135237// - project: Project ID for this request.
135238// - region: Name of the region scoping this request.
135239func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
135240	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135241	c.project = project
135242	c.region = region
135243	c.instanceGroupManager = instanceGroupManager
135244	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
135245	return c
135246}
135247
135248// RequestId sets the optional parameter "requestId": An optional
135249// request ID to identify requests. Specify a unique request ID so that
135250// if you must retry your request, the server will know to ignore the
135251// request if it has already been completed.
135252//
135253// For example, consider a situation where you make an initial request
135254// and the request times out. If you make the request again with the
135255// same request ID, the server can check if original operation with the
135256// same request ID was received, and if so, will ignore the second
135257// request. This prevents clients from accidentally creating duplicate
135258// commitments.
135259//
135260// The request ID must be a valid UUID with the exception that zero UUID
135261// is not supported (00000000-0000-0000-0000-000000000000).
135262func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
135263	c.urlParams_.Set("requestId", requestId)
135264	return c
135265}
135266
135267// Fields allows partial responses to be retrieved. See
135268// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135269// for more information.
135270func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
135271	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135272	return c
135273}
135274
135275// Context sets the context to be used in this call's Do method. Any
135276// pending HTTP request will be aborted if the provided context is
135277// canceled.
135278func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
135279	c.ctx_ = ctx
135280	return c
135281}
135282
135283// Header returns an http.Header that can be modified by the caller to
135284// add HTTP headers to the request.
135285func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
135286	if c.header_ == nil {
135287		c.header_ = make(http.Header)
135288	}
135289	return c.header_
135290}
135291
135292func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
135293	reqHeaders := make(http.Header)
135294	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135295	for k, v := range c.header_ {
135296		reqHeaders[k] = v
135297	}
135298	reqHeaders.Set("User-Agent", c.s.userAgent())
135299	var body io.Reader = nil
135300	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
135301	if err != nil {
135302		return nil, err
135303	}
135304	reqHeaders.Set("Content-Type", "application/json")
135305	c.urlParams_.Set("alt", alt)
135306	c.urlParams_.Set("prettyPrint", "false")
135307	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
135308	urls += "?" + c.urlParams_.Encode()
135309	req, err := http.NewRequest("POST", urls, body)
135310	if err != nil {
135311		return nil, err
135312	}
135313	req.Header = reqHeaders
135314	googleapi.Expand(req.URL, map[string]string{
135315		"project":              c.project,
135316		"region":               c.region,
135317		"instanceGroupManager": c.instanceGroupManager,
135318	})
135319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135320}
135321
135322// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
135323// Exactly one of *Operation or error will be non-nil. Any non-2xx
135324// status code is an error. Response headers are in either
135325// *Operation.ServerResponse.Header or (if a response was returned at
135326// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135327// to check whether the returned error was because
135328// http.StatusNotModified was returned.
135329func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135330	gensupport.SetOptions(c.urlParams_, opts...)
135331	res, err := c.doRequest("json")
135332	if res != nil && res.StatusCode == http.StatusNotModified {
135333		if res.Body != nil {
135334			res.Body.Close()
135335		}
135336		return nil, &googleapi.Error{
135337			Code:   res.StatusCode,
135338			Header: res.Header,
135339		}
135340	}
135341	if err != nil {
135342		return nil, err
135343	}
135344	defer googleapi.CloseBody(res)
135345	if err := googleapi.CheckResponse(res); err != nil {
135346		return nil, err
135347	}
135348	ret := &Operation{
135349		ServerResponse: googleapi.ServerResponse{
135350			Header:         res.Header,
135351			HTTPStatusCode: res.StatusCode,
135352		},
135353	}
135354	target := &ret
135355	if err := gensupport.DecodeResponse(target, res); err != nil {
135356		return nil, err
135357	}
135358	return ret, nil
135359	// {
135360	//   "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.",
135361	//   "httpMethod": "POST",
135362	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
135363	//   "parameterOrder": [
135364	//     "project",
135365	//     "region",
135366	//     "instanceGroupManager"
135367	//   ],
135368	//   "parameters": {
135369	//     "instanceGroupManager": {
135370	//       "description": "Name of the managed instance group.",
135371	//       "location": "path",
135372	//       "required": true,
135373	//       "type": "string"
135374	//     },
135375	//     "project": {
135376	//       "description": "Project ID for this request.",
135377	//       "location": "path",
135378	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135379	//       "required": true,
135380	//       "type": "string"
135381	//     },
135382	//     "region": {
135383	//       "description": "Name of the region scoping this request.",
135384	//       "location": "path",
135385	//       "required": true,
135386	//       "type": "string"
135387	//     },
135388	//     "requestId": {
135389	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135390	//       "location": "query",
135391	//       "type": "string"
135392	//     }
135393	//   },
135394	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
135395	//   "request": {
135396	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
135397	//   },
135398	//   "response": {
135399	//     "$ref": "Operation"
135400	//   },
135401	//   "scopes": [
135402	//     "https://www.googleapis.com/auth/cloud-platform",
135403	//     "https://www.googleapis.com/auth/compute"
135404	//   ]
135405	// }
135406
135407}
135408
135409// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
135410
135411type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
135412	s                                              *Service
135413	project                                        string
135414	region                                         string
135415	instanceGroupManager                           string
135416	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
135417	urlParams_                                     gensupport.URLParams
135418	ctx_                                           context.Context
135419	header_                                        http.Header
135420}
135421
135422// ApplyUpdatesToInstances: Apply updates to selected instances the
135423// managed instance group.
135424//
135425// - instanceGroupManager: The name of the managed instance group,
135426//   should conform to RFC1035.
135427// - project: Project ID for this request.
135428// - region: Name of the region scoping this request, should conform to
135429//   RFC1035.
135430func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
135431	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135432	c.project = project
135433	c.region = region
135434	c.instanceGroupManager = instanceGroupManager
135435	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
135436	return c
135437}
135438
135439// Fields allows partial responses to be retrieved. See
135440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135441// for more information.
135442func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
135443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135444	return c
135445}
135446
135447// Context sets the context to be used in this call's Do method. Any
135448// pending HTTP request will be aborted if the provided context is
135449// canceled.
135450func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
135451	c.ctx_ = ctx
135452	return c
135453}
135454
135455// Header returns an http.Header that can be modified by the caller to
135456// add HTTP headers to the request.
135457func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
135458	if c.header_ == nil {
135459		c.header_ = make(http.Header)
135460	}
135461	return c.header_
135462}
135463
135464func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
135465	reqHeaders := make(http.Header)
135466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135467	for k, v := range c.header_ {
135468		reqHeaders[k] = v
135469	}
135470	reqHeaders.Set("User-Agent", c.s.userAgent())
135471	var body io.Reader = nil
135472	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
135473	if err != nil {
135474		return nil, err
135475	}
135476	reqHeaders.Set("Content-Type", "application/json")
135477	c.urlParams_.Set("alt", alt)
135478	c.urlParams_.Set("prettyPrint", "false")
135479	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
135480	urls += "?" + c.urlParams_.Encode()
135481	req, err := http.NewRequest("POST", urls, body)
135482	if err != nil {
135483		return nil, err
135484	}
135485	req.Header = reqHeaders
135486	googleapi.Expand(req.URL, map[string]string{
135487		"project":              c.project,
135488		"region":               c.region,
135489		"instanceGroupManager": c.instanceGroupManager,
135490	})
135491	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135492}
135493
135494// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
135495// Exactly one of *Operation or error will be non-nil. Any non-2xx
135496// status code is an error. Response headers are in either
135497// *Operation.ServerResponse.Header or (if a response was returned at
135498// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135499// to check whether the returned error was because
135500// http.StatusNotModified was returned.
135501func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135502	gensupport.SetOptions(c.urlParams_, opts...)
135503	res, err := c.doRequest("json")
135504	if res != nil && res.StatusCode == http.StatusNotModified {
135505		if res.Body != nil {
135506			res.Body.Close()
135507		}
135508		return nil, &googleapi.Error{
135509			Code:   res.StatusCode,
135510			Header: res.Header,
135511		}
135512	}
135513	if err != nil {
135514		return nil, err
135515	}
135516	defer googleapi.CloseBody(res)
135517	if err := googleapi.CheckResponse(res); err != nil {
135518		return nil, err
135519	}
135520	ret := &Operation{
135521		ServerResponse: googleapi.ServerResponse{
135522			Header:         res.Header,
135523			HTTPStatusCode: res.StatusCode,
135524		},
135525	}
135526	target := &ret
135527	if err := gensupport.DecodeResponse(target, res); err != nil {
135528		return nil, err
135529	}
135530	return ret, nil
135531	// {
135532	//   "description": "Apply updates to selected instances the managed instance group.",
135533	//   "httpMethod": "POST",
135534	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
135535	//   "parameterOrder": [
135536	//     "project",
135537	//     "region",
135538	//     "instanceGroupManager"
135539	//   ],
135540	//   "parameters": {
135541	//     "instanceGroupManager": {
135542	//       "description": "The name of the managed instance group, should conform to RFC1035.",
135543	//       "location": "path",
135544	//       "required": true,
135545	//       "type": "string"
135546	//     },
135547	//     "project": {
135548	//       "description": "Project ID for this request.",
135549	//       "location": "path",
135550	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135551	//       "required": true,
135552	//       "type": "string"
135553	//     },
135554	//     "region": {
135555	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
135556	//       "location": "path",
135557	//       "required": true,
135558	//       "type": "string"
135559	//     }
135560	//   },
135561	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
135562	//   "request": {
135563	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
135564	//   },
135565	//   "response": {
135566	//     "$ref": "Operation"
135567	//   },
135568	//   "scopes": [
135569	//     "https://www.googleapis.com/auth/cloud-platform",
135570	//     "https://www.googleapis.com/auth/compute"
135571	//   ]
135572	// }
135573
135574}
135575
135576// method id "compute.regionInstanceGroupManagers.createInstances":
135577
135578type RegionInstanceGroupManagersCreateInstancesCall struct {
135579	s                                                 *Service
135580	project                                           string
135581	region                                            string
135582	instanceGroupManager                              string
135583	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
135584	urlParams_                                        gensupport.URLParams
135585	ctx_                                              context.Context
135586	header_                                           http.Header
135587}
135588
135589// CreateInstances: Creates instances with per-instance configs in this
135590// regional managed instance group. Instances are created using the
135591// current instance template. The create instances operation is marked
135592// DONE if the createInstances request is successful. The underlying
135593// actions take additional time. You must separately verify the status
135594// of the creating or actions with the listmanagedinstances method.
135595//
135596// - instanceGroupManager: The name of the managed instance group. It
135597//   should conform to RFC1035.
135598// - project: Project ID for this request.
135599// - region: The name of the region where the managed instance group is
135600//   located. It should conform to RFC1035.
135601func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
135602	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135603	c.project = project
135604	c.region = region
135605	c.instanceGroupManager = instanceGroupManager
135606	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
135607	return c
135608}
135609
135610// RequestId sets the optional parameter "requestId": An optional
135611// request ID to identify requests. Specify a unique request ID so that
135612// if you must retry your request, the server will know to ignore the
135613// request if it has already been completed.
135614//
135615// For example, consider a situation where you make an initial request
135616// and the request times out. If you make the request again with the
135617// same request ID, the server can check if original operation with the
135618// same request ID was received, and if so, will ignore the second
135619// request.
135620//
135621// The request ID must be a valid UUID with the exception that zero UUID
135622// is not supported (00000000-0000-0000-0000-000000000000).
135623func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
135624	c.urlParams_.Set("requestId", requestId)
135625	return c
135626}
135627
135628// Fields allows partial responses to be retrieved. See
135629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135630// for more information.
135631func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
135632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135633	return c
135634}
135635
135636// Context sets the context to be used in this call's Do method. Any
135637// pending HTTP request will be aborted if the provided context is
135638// canceled.
135639func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
135640	c.ctx_ = ctx
135641	return c
135642}
135643
135644// Header returns an http.Header that can be modified by the caller to
135645// add HTTP headers to the request.
135646func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
135647	if c.header_ == nil {
135648		c.header_ = make(http.Header)
135649	}
135650	return c.header_
135651}
135652
135653func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
135654	reqHeaders := make(http.Header)
135655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135656	for k, v := range c.header_ {
135657		reqHeaders[k] = v
135658	}
135659	reqHeaders.Set("User-Agent", c.s.userAgent())
135660	var body io.Reader = nil
135661	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
135662	if err != nil {
135663		return nil, err
135664	}
135665	reqHeaders.Set("Content-Type", "application/json")
135666	c.urlParams_.Set("alt", alt)
135667	c.urlParams_.Set("prettyPrint", "false")
135668	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
135669	urls += "?" + c.urlParams_.Encode()
135670	req, err := http.NewRequest("POST", urls, body)
135671	if err != nil {
135672		return nil, err
135673	}
135674	req.Header = reqHeaders
135675	googleapi.Expand(req.URL, map[string]string{
135676		"project":              c.project,
135677		"region":               c.region,
135678		"instanceGroupManager": c.instanceGroupManager,
135679	})
135680	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135681}
135682
135683// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
135684// Exactly one of *Operation or error will be non-nil. Any non-2xx
135685// status code is an error. Response headers are in either
135686// *Operation.ServerResponse.Header or (if a response was returned at
135687// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135688// to check whether the returned error was because
135689// http.StatusNotModified was returned.
135690func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135691	gensupport.SetOptions(c.urlParams_, opts...)
135692	res, err := c.doRequest("json")
135693	if res != nil && res.StatusCode == http.StatusNotModified {
135694		if res.Body != nil {
135695			res.Body.Close()
135696		}
135697		return nil, &googleapi.Error{
135698			Code:   res.StatusCode,
135699			Header: res.Header,
135700		}
135701	}
135702	if err != nil {
135703		return nil, err
135704	}
135705	defer googleapi.CloseBody(res)
135706	if err := googleapi.CheckResponse(res); err != nil {
135707		return nil, err
135708	}
135709	ret := &Operation{
135710		ServerResponse: googleapi.ServerResponse{
135711			Header:         res.Header,
135712			HTTPStatusCode: res.StatusCode,
135713		},
135714	}
135715	target := &ret
135716	if err := gensupport.DecodeResponse(target, res); err != nil {
135717		return nil, err
135718	}
135719	return ret, nil
135720	// {
135721	//   "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.",
135722	//   "httpMethod": "POST",
135723	//   "id": "compute.regionInstanceGroupManagers.createInstances",
135724	//   "parameterOrder": [
135725	//     "project",
135726	//     "region",
135727	//     "instanceGroupManager"
135728	//   ],
135729	//   "parameters": {
135730	//     "instanceGroupManager": {
135731	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
135732	//       "location": "path",
135733	//       "required": true,
135734	//       "type": "string"
135735	//     },
135736	//     "project": {
135737	//       "description": "Project ID for this request.",
135738	//       "location": "path",
135739	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135740	//       "required": true,
135741	//       "type": "string"
135742	//     },
135743	//     "region": {
135744	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
135745	//       "location": "path",
135746	//       "required": true,
135747	//       "type": "string"
135748	//     },
135749	//     "requestId": {
135750	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
135751	//       "location": "query",
135752	//       "type": "string"
135753	//     }
135754	//   },
135755	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
135756	//   "request": {
135757	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
135758	//   },
135759	//   "response": {
135760	//     "$ref": "Operation"
135761	//   },
135762	//   "scopes": [
135763	//     "https://www.googleapis.com/auth/cloud-platform",
135764	//     "https://www.googleapis.com/auth/compute"
135765	//   ]
135766	// }
135767
135768}
135769
135770// method id "compute.regionInstanceGroupManagers.delete":
135771
135772type RegionInstanceGroupManagersDeleteCall struct {
135773	s                    *Service
135774	project              string
135775	region               string
135776	instanceGroupManager string
135777	urlParams_           gensupport.URLParams
135778	ctx_                 context.Context
135779	header_              http.Header
135780}
135781
135782// Delete: Deletes the specified managed instance group and all of the
135783// instances in that group.
135784//
135785// - instanceGroupManager: Name of the managed instance group to delete.
135786// - project: Project ID for this request.
135787// - region: Name of the region scoping this request.
135788func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
135789	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135790	c.project = project
135791	c.region = region
135792	c.instanceGroupManager = instanceGroupManager
135793	return c
135794}
135795
135796// RequestId sets the optional parameter "requestId": An optional
135797// request ID to identify requests. Specify a unique request ID so that
135798// if you must retry your request, the server will know to ignore the
135799// request if it has already been completed.
135800//
135801// For example, consider a situation where you make an initial request
135802// and the request times out. If you make the request again with the
135803// same request ID, the server can check if original operation with the
135804// same request ID was received, and if so, will ignore the second
135805// request. This prevents clients from accidentally creating duplicate
135806// commitments.
135807//
135808// The request ID must be a valid UUID with the exception that zero UUID
135809// is not supported (00000000-0000-0000-0000-000000000000).
135810func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
135811	c.urlParams_.Set("requestId", requestId)
135812	return c
135813}
135814
135815// Fields allows partial responses to be retrieved. See
135816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135817// for more information.
135818func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
135819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135820	return c
135821}
135822
135823// Context sets the context to be used in this call's Do method. Any
135824// pending HTTP request will be aborted if the provided context is
135825// canceled.
135826func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
135827	c.ctx_ = ctx
135828	return c
135829}
135830
135831// Header returns an http.Header that can be modified by the caller to
135832// add HTTP headers to the request.
135833func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
135834	if c.header_ == nil {
135835		c.header_ = make(http.Header)
135836	}
135837	return c.header_
135838}
135839
135840func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
135841	reqHeaders := make(http.Header)
135842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135843	for k, v := range c.header_ {
135844		reqHeaders[k] = v
135845	}
135846	reqHeaders.Set("User-Agent", c.s.userAgent())
135847	var body io.Reader = nil
135848	c.urlParams_.Set("alt", alt)
135849	c.urlParams_.Set("prettyPrint", "false")
135850	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
135851	urls += "?" + c.urlParams_.Encode()
135852	req, err := http.NewRequest("DELETE", urls, body)
135853	if err != nil {
135854		return nil, err
135855	}
135856	req.Header = reqHeaders
135857	googleapi.Expand(req.URL, map[string]string{
135858		"project":              c.project,
135859		"region":               c.region,
135860		"instanceGroupManager": c.instanceGroupManager,
135861	})
135862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135863}
135864
135865// Do executes the "compute.regionInstanceGroupManagers.delete" call.
135866// Exactly one of *Operation or error will be non-nil. Any non-2xx
135867// status code is an error. Response headers are in either
135868// *Operation.ServerResponse.Header or (if a response was returned at
135869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135870// to check whether the returned error was because
135871// http.StatusNotModified was returned.
135872func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135873	gensupport.SetOptions(c.urlParams_, opts...)
135874	res, err := c.doRequest("json")
135875	if res != nil && res.StatusCode == http.StatusNotModified {
135876		if res.Body != nil {
135877			res.Body.Close()
135878		}
135879		return nil, &googleapi.Error{
135880			Code:   res.StatusCode,
135881			Header: res.Header,
135882		}
135883	}
135884	if err != nil {
135885		return nil, err
135886	}
135887	defer googleapi.CloseBody(res)
135888	if err := googleapi.CheckResponse(res); err != nil {
135889		return nil, err
135890	}
135891	ret := &Operation{
135892		ServerResponse: googleapi.ServerResponse{
135893			Header:         res.Header,
135894			HTTPStatusCode: res.StatusCode,
135895		},
135896	}
135897	target := &ret
135898	if err := gensupport.DecodeResponse(target, res); err != nil {
135899		return nil, err
135900	}
135901	return ret, nil
135902	// {
135903	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
135904	//   "httpMethod": "DELETE",
135905	//   "id": "compute.regionInstanceGroupManagers.delete",
135906	//   "parameterOrder": [
135907	//     "project",
135908	//     "region",
135909	//     "instanceGroupManager"
135910	//   ],
135911	//   "parameters": {
135912	//     "instanceGroupManager": {
135913	//       "description": "Name of the managed instance group to delete.",
135914	//       "location": "path",
135915	//       "required": true,
135916	//       "type": "string"
135917	//     },
135918	//     "project": {
135919	//       "description": "Project ID for this request.",
135920	//       "location": "path",
135921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135922	//       "required": true,
135923	//       "type": "string"
135924	//     },
135925	//     "region": {
135926	//       "description": "Name of the region scoping this request.",
135927	//       "location": "path",
135928	//       "required": true,
135929	//       "type": "string"
135930	//     },
135931	//     "requestId": {
135932	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135933	//       "location": "query",
135934	//       "type": "string"
135935	//     }
135936	//   },
135937	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
135938	//   "response": {
135939	//     "$ref": "Operation"
135940	//   },
135941	//   "scopes": [
135942	//     "https://www.googleapis.com/auth/cloud-platform",
135943	//     "https://www.googleapis.com/auth/compute"
135944	//   ]
135945	// }
135946
135947}
135948
135949// method id "compute.regionInstanceGroupManagers.deleteInstances":
135950
135951type RegionInstanceGroupManagersDeleteInstancesCall struct {
135952	s                                                 *Service
135953	project                                           string
135954	region                                            string
135955	instanceGroupManager                              string
135956	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
135957	urlParams_                                        gensupport.URLParams
135958	ctx_                                              context.Context
135959	header_                                           http.Header
135960}
135961
135962// DeleteInstances: Flags the specified instances in the managed
135963// instance group to be immediately deleted. The instances are also
135964// removed from any target pools of which they were a member. This
135965// method reduces the targetSize of the managed instance group by the
135966// number of instances that you delete. The deleteInstances operation is
135967// marked DONE if the deleteInstances request is successful. The
135968// underlying actions take additional time. You must separately verify
135969// the status of the deleting action with the listmanagedinstances
135970// method.
135971//
135972// If the group is part of a backend service that has enabled connection
135973// draining, it can take up to 60 seconds after the connection draining
135974// duration has elapsed before the VM instance is removed or
135975// deleted.
135976//
135977// You can specify a maximum of 1000 instances with this method per
135978// request.
135979//
135980// - instanceGroupManager: Name of the managed instance group.
135981// - project: Project ID for this request.
135982// - region: Name of the region scoping this request.
135983func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
135984	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135985	c.project = project
135986	c.region = region
135987	c.instanceGroupManager = instanceGroupManager
135988	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
135989	return c
135990}
135991
135992// RequestId sets the optional parameter "requestId": An optional
135993// request ID to identify requests. Specify a unique request ID so that
135994// if you must retry your request, the server will know to ignore the
135995// request if it has already been completed.
135996//
135997// For example, consider a situation where you make an initial request
135998// and the request times out. If you make the request again with the
135999// same request ID, the server can check if original operation with the
136000// same request ID was received, and if so, will ignore the second
136001// request. This prevents clients from accidentally creating duplicate
136002// commitments.
136003//
136004// The request ID must be a valid UUID with the exception that zero UUID
136005// is not supported (00000000-0000-0000-0000-000000000000).
136006func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
136007	c.urlParams_.Set("requestId", requestId)
136008	return c
136009}
136010
136011// Fields allows partial responses to be retrieved. See
136012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136013// for more information.
136014func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
136015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136016	return c
136017}
136018
136019// Context sets the context to be used in this call's Do method. Any
136020// pending HTTP request will be aborted if the provided context is
136021// canceled.
136022func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
136023	c.ctx_ = ctx
136024	return c
136025}
136026
136027// Header returns an http.Header that can be modified by the caller to
136028// add HTTP headers to the request.
136029func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
136030	if c.header_ == nil {
136031		c.header_ = make(http.Header)
136032	}
136033	return c.header_
136034}
136035
136036func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
136037	reqHeaders := make(http.Header)
136038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136039	for k, v := range c.header_ {
136040		reqHeaders[k] = v
136041	}
136042	reqHeaders.Set("User-Agent", c.s.userAgent())
136043	var body io.Reader = nil
136044	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
136045	if err != nil {
136046		return nil, err
136047	}
136048	reqHeaders.Set("Content-Type", "application/json")
136049	c.urlParams_.Set("alt", alt)
136050	c.urlParams_.Set("prettyPrint", "false")
136051	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
136052	urls += "?" + c.urlParams_.Encode()
136053	req, err := http.NewRequest("POST", urls, body)
136054	if err != nil {
136055		return nil, err
136056	}
136057	req.Header = reqHeaders
136058	googleapi.Expand(req.URL, map[string]string{
136059		"project":              c.project,
136060		"region":               c.region,
136061		"instanceGroupManager": c.instanceGroupManager,
136062	})
136063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136064}
136065
136066// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
136067// Exactly one of *Operation or error will be non-nil. Any non-2xx
136068// status code is an error. Response headers are in either
136069// *Operation.ServerResponse.Header or (if a response was returned at
136070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136071// to check whether the returned error was because
136072// http.StatusNotModified was returned.
136073func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136074	gensupport.SetOptions(c.urlParams_, opts...)
136075	res, err := c.doRequest("json")
136076	if res != nil && res.StatusCode == http.StatusNotModified {
136077		if res.Body != nil {
136078			res.Body.Close()
136079		}
136080		return nil, &googleapi.Error{
136081			Code:   res.StatusCode,
136082			Header: res.Header,
136083		}
136084	}
136085	if err != nil {
136086		return nil, err
136087	}
136088	defer googleapi.CloseBody(res)
136089	if err := googleapi.CheckResponse(res); err != nil {
136090		return nil, err
136091	}
136092	ret := &Operation{
136093		ServerResponse: googleapi.ServerResponse{
136094			Header:         res.Header,
136095			HTTPStatusCode: res.StatusCode,
136096		},
136097	}
136098	target := &ret
136099	if err := gensupport.DecodeResponse(target, res); err != nil {
136100		return nil, err
136101	}
136102	return ret, nil
136103	// {
136104	//   "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.",
136105	//   "httpMethod": "POST",
136106	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
136107	//   "parameterOrder": [
136108	//     "project",
136109	//     "region",
136110	//     "instanceGroupManager"
136111	//   ],
136112	//   "parameters": {
136113	//     "instanceGroupManager": {
136114	//       "description": "Name of the managed instance group.",
136115	//       "location": "path",
136116	//       "required": true,
136117	//       "type": "string"
136118	//     },
136119	//     "project": {
136120	//       "description": "Project ID for this request.",
136121	//       "location": "path",
136122	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136123	//       "required": true,
136124	//       "type": "string"
136125	//     },
136126	//     "region": {
136127	//       "description": "Name of the region scoping this request.",
136128	//       "location": "path",
136129	//       "required": true,
136130	//       "type": "string"
136131	//     },
136132	//     "requestId": {
136133	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136134	//       "location": "query",
136135	//       "type": "string"
136136	//     }
136137	//   },
136138	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
136139	//   "request": {
136140	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
136141	//   },
136142	//   "response": {
136143	//     "$ref": "Operation"
136144	//   },
136145	//   "scopes": [
136146	//     "https://www.googleapis.com/auth/cloud-platform",
136147	//     "https://www.googleapis.com/auth/compute"
136148	//   ]
136149	// }
136150
136151}
136152
136153// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
136154
136155type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
136156	s                                                 *Service
136157	project                                           string
136158	region                                            string
136159	instanceGroupManager                              string
136160	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
136161	urlParams_                                        gensupport.URLParams
136162	ctx_                                              context.Context
136163	header_                                           http.Header
136164}
136165
136166// DeletePerInstanceConfigs: Deletes selected per-instance configs for
136167// the managed instance group.
136168//
136169// - instanceGroupManager: The name of the managed instance group. It
136170//   should conform to RFC1035.
136171// - project: Project ID for this request.
136172// - region: Name of the region scoping this request, should conform to
136173//   RFC1035.
136174func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
136175	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136176	c.project = project
136177	c.region = region
136178	c.instanceGroupManager = instanceGroupManager
136179	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
136180	return c
136181}
136182
136183// Fields allows partial responses to be retrieved. See
136184// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136185// for more information.
136186func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
136187	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136188	return c
136189}
136190
136191// Context sets the context to be used in this call's Do method. Any
136192// pending HTTP request will be aborted if the provided context is
136193// canceled.
136194func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
136195	c.ctx_ = ctx
136196	return c
136197}
136198
136199// Header returns an http.Header that can be modified by the caller to
136200// add HTTP headers to the request.
136201func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
136202	if c.header_ == nil {
136203		c.header_ = make(http.Header)
136204	}
136205	return c.header_
136206}
136207
136208func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
136209	reqHeaders := make(http.Header)
136210	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136211	for k, v := range c.header_ {
136212		reqHeaders[k] = v
136213	}
136214	reqHeaders.Set("User-Agent", c.s.userAgent())
136215	var body io.Reader = nil
136216	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
136217	if err != nil {
136218		return nil, err
136219	}
136220	reqHeaders.Set("Content-Type", "application/json")
136221	c.urlParams_.Set("alt", alt)
136222	c.urlParams_.Set("prettyPrint", "false")
136223	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
136224	urls += "?" + c.urlParams_.Encode()
136225	req, err := http.NewRequest("POST", urls, body)
136226	if err != nil {
136227		return nil, err
136228	}
136229	req.Header = reqHeaders
136230	googleapi.Expand(req.URL, map[string]string{
136231		"project":              c.project,
136232		"region":               c.region,
136233		"instanceGroupManager": c.instanceGroupManager,
136234	})
136235	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136236}
136237
136238// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
136239// Exactly one of *Operation or error will be non-nil. Any non-2xx
136240// status code is an error. Response headers are in either
136241// *Operation.ServerResponse.Header or (if a response was returned at
136242// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136243// to check whether the returned error was because
136244// http.StatusNotModified was returned.
136245func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136246	gensupport.SetOptions(c.urlParams_, opts...)
136247	res, err := c.doRequest("json")
136248	if res != nil && res.StatusCode == http.StatusNotModified {
136249		if res.Body != nil {
136250			res.Body.Close()
136251		}
136252		return nil, &googleapi.Error{
136253			Code:   res.StatusCode,
136254			Header: res.Header,
136255		}
136256	}
136257	if err != nil {
136258		return nil, err
136259	}
136260	defer googleapi.CloseBody(res)
136261	if err := googleapi.CheckResponse(res); err != nil {
136262		return nil, err
136263	}
136264	ret := &Operation{
136265		ServerResponse: googleapi.ServerResponse{
136266			Header:         res.Header,
136267			HTTPStatusCode: res.StatusCode,
136268		},
136269	}
136270	target := &ret
136271	if err := gensupport.DecodeResponse(target, res); err != nil {
136272		return nil, err
136273	}
136274	return ret, nil
136275	// {
136276	//   "description": "Deletes selected per-instance configs for the managed instance group.",
136277	//   "httpMethod": "POST",
136278	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
136279	//   "parameterOrder": [
136280	//     "project",
136281	//     "region",
136282	//     "instanceGroupManager"
136283	//   ],
136284	//   "parameters": {
136285	//     "instanceGroupManager": {
136286	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
136287	//       "location": "path",
136288	//       "required": true,
136289	//       "type": "string"
136290	//     },
136291	//     "project": {
136292	//       "description": "Project ID for this request.",
136293	//       "location": "path",
136294	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136295	//       "required": true,
136296	//       "type": "string"
136297	//     },
136298	//     "region": {
136299	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
136300	//       "location": "path",
136301	//       "required": true,
136302	//       "type": "string"
136303	//     }
136304	//   },
136305	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
136306	//   "request": {
136307	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
136308	//   },
136309	//   "response": {
136310	//     "$ref": "Operation"
136311	//   },
136312	//   "scopes": [
136313	//     "https://www.googleapis.com/auth/cloud-platform",
136314	//     "https://www.googleapis.com/auth/compute"
136315	//   ]
136316	// }
136317
136318}
136319
136320// method id "compute.regionInstanceGroupManagers.get":
136321
136322type RegionInstanceGroupManagersGetCall struct {
136323	s                    *Service
136324	project              string
136325	region               string
136326	instanceGroupManager string
136327	urlParams_           gensupport.URLParams
136328	ifNoneMatch_         string
136329	ctx_                 context.Context
136330	header_              http.Header
136331}
136332
136333// Get: Returns all of the details about the specified managed instance
136334// group.
136335//
136336// - instanceGroupManager: Name of the managed instance group to return.
136337// - project: Project ID for this request.
136338// - region: Name of the region scoping this request.
136339func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
136340	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136341	c.project = project
136342	c.region = region
136343	c.instanceGroupManager = instanceGroupManager
136344	return c
136345}
136346
136347// Fields allows partial responses to be retrieved. See
136348// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136349// for more information.
136350func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
136351	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136352	return c
136353}
136354
136355// IfNoneMatch sets the optional parameter which makes the operation
136356// fail if the object's ETag matches the given value. This is useful for
136357// getting updates only after the object has changed since the last
136358// request. Use googleapi.IsNotModified to check whether the response
136359// error from Do is the result of In-None-Match.
136360func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
136361	c.ifNoneMatch_ = entityTag
136362	return c
136363}
136364
136365// Context sets the context to be used in this call's Do method. Any
136366// pending HTTP request will be aborted if the provided context is
136367// canceled.
136368func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
136369	c.ctx_ = ctx
136370	return c
136371}
136372
136373// Header returns an http.Header that can be modified by the caller to
136374// add HTTP headers to the request.
136375func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
136376	if c.header_ == nil {
136377		c.header_ = make(http.Header)
136378	}
136379	return c.header_
136380}
136381
136382func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
136383	reqHeaders := make(http.Header)
136384	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136385	for k, v := range c.header_ {
136386		reqHeaders[k] = v
136387	}
136388	reqHeaders.Set("User-Agent", c.s.userAgent())
136389	if c.ifNoneMatch_ != "" {
136390		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136391	}
136392	var body io.Reader = nil
136393	c.urlParams_.Set("alt", alt)
136394	c.urlParams_.Set("prettyPrint", "false")
136395	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
136396	urls += "?" + c.urlParams_.Encode()
136397	req, err := http.NewRequest("GET", urls, body)
136398	if err != nil {
136399		return nil, err
136400	}
136401	req.Header = reqHeaders
136402	googleapi.Expand(req.URL, map[string]string{
136403		"project":              c.project,
136404		"region":               c.region,
136405		"instanceGroupManager": c.instanceGroupManager,
136406	})
136407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136408}
136409
136410// Do executes the "compute.regionInstanceGroupManagers.get" call.
136411// Exactly one of *InstanceGroupManager or error will be non-nil. Any
136412// non-2xx status code is an error. Response headers are in either
136413// *InstanceGroupManager.ServerResponse.Header or (if a response was
136414// returned at all) in error.(*googleapi.Error).Header. Use
136415// googleapi.IsNotModified to check whether the returned error was
136416// because http.StatusNotModified was returned.
136417func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
136418	gensupport.SetOptions(c.urlParams_, opts...)
136419	res, err := c.doRequest("json")
136420	if res != nil && res.StatusCode == http.StatusNotModified {
136421		if res.Body != nil {
136422			res.Body.Close()
136423		}
136424		return nil, &googleapi.Error{
136425			Code:   res.StatusCode,
136426			Header: res.Header,
136427		}
136428	}
136429	if err != nil {
136430		return nil, err
136431	}
136432	defer googleapi.CloseBody(res)
136433	if err := googleapi.CheckResponse(res); err != nil {
136434		return nil, err
136435	}
136436	ret := &InstanceGroupManager{
136437		ServerResponse: googleapi.ServerResponse{
136438			Header:         res.Header,
136439			HTTPStatusCode: res.StatusCode,
136440		},
136441	}
136442	target := &ret
136443	if err := gensupport.DecodeResponse(target, res); err != nil {
136444		return nil, err
136445	}
136446	return ret, nil
136447	// {
136448	//   "description": "Returns all of the details about the specified managed instance group.",
136449	//   "httpMethod": "GET",
136450	//   "id": "compute.regionInstanceGroupManagers.get",
136451	//   "parameterOrder": [
136452	//     "project",
136453	//     "region",
136454	//     "instanceGroupManager"
136455	//   ],
136456	//   "parameters": {
136457	//     "instanceGroupManager": {
136458	//       "description": "Name of the managed instance group to return.",
136459	//       "location": "path",
136460	//       "required": true,
136461	//       "type": "string"
136462	//     },
136463	//     "project": {
136464	//       "description": "Project ID for this request.",
136465	//       "location": "path",
136466	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136467	//       "required": true,
136468	//       "type": "string"
136469	//     },
136470	//     "region": {
136471	//       "description": "Name of the region scoping this request.",
136472	//       "location": "path",
136473	//       "required": true,
136474	//       "type": "string"
136475	//     }
136476	//   },
136477	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
136478	//   "response": {
136479	//     "$ref": "InstanceGroupManager"
136480	//   },
136481	//   "scopes": [
136482	//     "https://www.googleapis.com/auth/cloud-platform",
136483	//     "https://www.googleapis.com/auth/compute",
136484	//     "https://www.googleapis.com/auth/compute.readonly"
136485	//   ]
136486	// }
136487
136488}
136489
136490// method id "compute.regionInstanceGroupManagers.insert":
136491
136492type RegionInstanceGroupManagersInsertCall struct {
136493	s                    *Service
136494	project              string
136495	region               string
136496	instancegroupmanager *InstanceGroupManager
136497	urlParams_           gensupport.URLParams
136498	ctx_                 context.Context
136499	header_              http.Header
136500}
136501
136502// Insert: Creates a managed instance group using the information that
136503// you specify in the request. After the group is created, instances in
136504// the group are created using the specified instance template. This
136505// operation is marked as DONE when the group is created even if the
136506// instances in the group have not yet been created. You must separately
136507// verify the status of the individual instances with the
136508// listmanagedinstances method.
136509//
136510// A regional managed instance group can contain up to 2000 instances.
136511//
136512// - project: Project ID for this request.
136513// - region: Name of the region scoping this request.
136514func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
136515	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136516	c.project = project
136517	c.region = region
136518	c.instancegroupmanager = instancegroupmanager
136519	return c
136520}
136521
136522// RequestId sets the optional parameter "requestId": An optional
136523// request ID to identify requests. Specify a unique request ID so that
136524// if you must retry your request, the server will know to ignore the
136525// request if it has already been completed.
136526//
136527// For example, consider a situation where you make an initial request
136528// and the request times out. If you make the request again with the
136529// same request ID, the server can check if original operation with the
136530// same request ID was received, and if so, will ignore the second
136531// request. This prevents clients from accidentally creating duplicate
136532// commitments.
136533//
136534// The request ID must be a valid UUID with the exception that zero UUID
136535// is not supported (00000000-0000-0000-0000-000000000000).
136536func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
136537	c.urlParams_.Set("requestId", requestId)
136538	return c
136539}
136540
136541// Fields allows partial responses to be retrieved. See
136542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136543// for more information.
136544func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
136545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136546	return c
136547}
136548
136549// Context sets the context to be used in this call's Do method. Any
136550// pending HTTP request will be aborted if the provided context is
136551// canceled.
136552func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
136553	c.ctx_ = ctx
136554	return c
136555}
136556
136557// Header returns an http.Header that can be modified by the caller to
136558// add HTTP headers to the request.
136559func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
136560	if c.header_ == nil {
136561		c.header_ = make(http.Header)
136562	}
136563	return c.header_
136564}
136565
136566func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
136567	reqHeaders := make(http.Header)
136568	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136569	for k, v := range c.header_ {
136570		reqHeaders[k] = v
136571	}
136572	reqHeaders.Set("User-Agent", c.s.userAgent())
136573	var body io.Reader = nil
136574	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
136575	if err != nil {
136576		return nil, err
136577	}
136578	reqHeaders.Set("Content-Type", "application/json")
136579	c.urlParams_.Set("alt", alt)
136580	c.urlParams_.Set("prettyPrint", "false")
136581	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
136582	urls += "?" + c.urlParams_.Encode()
136583	req, err := http.NewRequest("POST", urls, body)
136584	if err != nil {
136585		return nil, err
136586	}
136587	req.Header = reqHeaders
136588	googleapi.Expand(req.URL, map[string]string{
136589		"project": c.project,
136590		"region":  c.region,
136591	})
136592	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136593}
136594
136595// Do executes the "compute.regionInstanceGroupManagers.insert" call.
136596// Exactly one of *Operation or error will be non-nil. Any non-2xx
136597// status code is an error. Response headers are in either
136598// *Operation.ServerResponse.Header or (if a response was returned at
136599// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136600// to check whether the returned error was because
136601// http.StatusNotModified was returned.
136602func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136603	gensupport.SetOptions(c.urlParams_, opts...)
136604	res, err := c.doRequest("json")
136605	if res != nil && res.StatusCode == http.StatusNotModified {
136606		if res.Body != nil {
136607			res.Body.Close()
136608		}
136609		return nil, &googleapi.Error{
136610			Code:   res.StatusCode,
136611			Header: res.Header,
136612		}
136613	}
136614	if err != nil {
136615		return nil, err
136616	}
136617	defer googleapi.CloseBody(res)
136618	if err := googleapi.CheckResponse(res); err != nil {
136619		return nil, err
136620	}
136621	ret := &Operation{
136622		ServerResponse: googleapi.ServerResponse{
136623			Header:         res.Header,
136624			HTTPStatusCode: res.StatusCode,
136625		},
136626	}
136627	target := &ret
136628	if err := gensupport.DecodeResponse(target, res); err != nil {
136629		return nil, err
136630	}
136631	return ret, nil
136632	// {
136633	//   "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.",
136634	//   "httpMethod": "POST",
136635	//   "id": "compute.regionInstanceGroupManagers.insert",
136636	//   "parameterOrder": [
136637	//     "project",
136638	//     "region"
136639	//   ],
136640	//   "parameters": {
136641	//     "project": {
136642	//       "description": "Project ID for this request.",
136643	//       "location": "path",
136644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136645	//       "required": true,
136646	//       "type": "string"
136647	//     },
136648	//     "region": {
136649	//       "description": "Name of the region scoping this request.",
136650	//       "location": "path",
136651	//       "required": true,
136652	//       "type": "string"
136653	//     },
136654	//     "requestId": {
136655	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136656	//       "location": "query",
136657	//       "type": "string"
136658	//     }
136659	//   },
136660	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
136661	//   "request": {
136662	//     "$ref": "InstanceGroupManager"
136663	//   },
136664	//   "response": {
136665	//     "$ref": "Operation"
136666	//   },
136667	//   "scopes": [
136668	//     "https://www.googleapis.com/auth/cloud-platform",
136669	//     "https://www.googleapis.com/auth/compute"
136670	//   ]
136671	// }
136672
136673}
136674
136675// method id "compute.regionInstanceGroupManagers.list":
136676
136677type RegionInstanceGroupManagersListCall struct {
136678	s            *Service
136679	project      string
136680	region       string
136681	urlParams_   gensupport.URLParams
136682	ifNoneMatch_ string
136683	ctx_         context.Context
136684	header_      http.Header
136685}
136686
136687// List: Retrieves the list of managed instance groups that are
136688// contained within the specified region.
136689//
136690// - project: Project ID for this request.
136691// - region: Name of the region scoping this request.
136692func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
136693	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136694	c.project = project
136695	c.region = region
136696	return c
136697}
136698
136699// Filter sets the optional parameter "filter": A filter expression that
136700// filters resources listed in the response. The expression must specify
136701// the field name, a comparison operator, and the value that you want to
136702// use for filtering. The value must be a string, a number, or a
136703// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136704// `<`.
136705//
136706// For example, if you are filtering Compute Engine instances, you can
136707// exclude instances named `example-instance` by specifying `name !=
136708// example-instance`.
136709//
136710// You can also filter nested fields. For example, you could specify
136711// `scheduling.automaticRestart = false` to include instances only if
136712// they are not scheduled for automatic restarts. You can use filtering
136713// on nested fields to filter based on resource labels.
136714//
136715// To filter on multiple expressions, provide each separate expression
136716// within parentheses. For example: ``` (scheduling.automaticRestart =
136717// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
136718// is an `AND` expression. However, you can include `AND` and `OR`
136719// expressions explicitly. For example: ``` (cpuPlatform = "Intel
136720// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
136721// (scheduling.automaticRestart = true) ```
136722func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
136723	c.urlParams_.Set("filter", filter)
136724	return c
136725}
136726
136727// MaxResults sets the optional parameter "maxResults": The maximum
136728// number of results per page that should be returned. If the number of
136729// available results is larger than `maxResults`, Compute Engine returns
136730// a `nextPageToken` that can be used to get the next page of results in
136731// subsequent list requests. Acceptable values are `0` to `500`,
136732// inclusive. (Default: `500`)
136733func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
136734	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136735	return c
136736}
136737
136738// OrderBy sets the optional parameter "orderBy": Sorts list results by
136739// a certain order. By default, results are returned in alphanumerical
136740// order based on the resource name.
136741//
136742// You can also sort results in descending order based on the creation
136743// timestamp using `orderBy="creationTimestamp desc". This sorts
136744// results based on the `creationTimestamp` field in reverse
136745// chronological order (newest result first). Use this to sort resources
136746// like operations so that the newest operation is returned
136747// first.
136748//
136749// Currently, only sorting by `name` or `creationTimestamp desc` is
136750// supported.
136751func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
136752	c.urlParams_.Set("orderBy", orderBy)
136753	return c
136754}
136755
136756// PageToken sets the optional parameter "pageToken": Specifies a page
136757// token to use. Set `pageToken` to the `nextPageToken` returned by a
136758// previous list request to get the next page of results.
136759func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
136760	c.urlParams_.Set("pageToken", pageToken)
136761	return c
136762}
136763
136764// ReturnPartialSuccess sets the optional parameter
136765// "returnPartialSuccess": Opt-in for partial success behavior which
136766// provides partial results in case of failure. The default value is
136767// false.
136768func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListCall {
136769	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
136770	return c
136771}
136772
136773// Fields allows partial responses to be retrieved. See
136774// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136775// for more information.
136776func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
136777	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136778	return c
136779}
136780
136781// IfNoneMatch sets the optional parameter which makes the operation
136782// fail if the object's ETag matches the given value. This is useful for
136783// getting updates only after the object has changed since the last
136784// request. Use googleapi.IsNotModified to check whether the response
136785// error from Do is the result of In-None-Match.
136786func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
136787	c.ifNoneMatch_ = entityTag
136788	return c
136789}
136790
136791// Context sets the context to be used in this call's Do method. Any
136792// pending HTTP request will be aborted if the provided context is
136793// canceled.
136794func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
136795	c.ctx_ = ctx
136796	return c
136797}
136798
136799// Header returns an http.Header that can be modified by the caller to
136800// add HTTP headers to the request.
136801func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
136802	if c.header_ == nil {
136803		c.header_ = make(http.Header)
136804	}
136805	return c.header_
136806}
136807
136808func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
136809	reqHeaders := make(http.Header)
136810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136811	for k, v := range c.header_ {
136812		reqHeaders[k] = v
136813	}
136814	reqHeaders.Set("User-Agent", c.s.userAgent())
136815	if c.ifNoneMatch_ != "" {
136816		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136817	}
136818	var body io.Reader = nil
136819	c.urlParams_.Set("alt", alt)
136820	c.urlParams_.Set("prettyPrint", "false")
136821	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
136822	urls += "?" + c.urlParams_.Encode()
136823	req, err := http.NewRequest("GET", urls, body)
136824	if err != nil {
136825		return nil, err
136826	}
136827	req.Header = reqHeaders
136828	googleapi.Expand(req.URL, map[string]string{
136829		"project": c.project,
136830		"region":  c.region,
136831	})
136832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136833}
136834
136835// Do executes the "compute.regionInstanceGroupManagers.list" call.
136836// Exactly one of *RegionInstanceGroupManagerList or error will be
136837// non-nil. Any non-2xx status code is an error. Response headers are in
136838// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
136839// response was returned at all) in error.(*googleapi.Error).Header. Use
136840// googleapi.IsNotModified to check whether the returned error was
136841// because http.StatusNotModified was returned.
136842func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
136843	gensupport.SetOptions(c.urlParams_, opts...)
136844	res, err := c.doRequest("json")
136845	if res != nil && res.StatusCode == http.StatusNotModified {
136846		if res.Body != nil {
136847			res.Body.Close()
136848		}
136849		return nil, &googleapi.Error{
136850			Code:   res.StatusCode,
136851			Header: res.Header,
136852		}
136853	}
136854	if err != nil {
136855		return nil, err
136856	}
136857	defer googleapi.CloseBody(res)
136858	if err := googleapi.CheckResponse(res); err != nil {
136859		return nil, err
136860	}
136861	ret := &RegionInstanceGroupManagerList{
136862		ServerResponse: googleapi.ServerResponse{
136863			Header:         res.Header,
136864			HTTPStatusCode: res.StatusCode,
136865		},
136866	}
136867	target := &ret
136868	if err := gensupport.DecodeResponse(target, res); err != nil {
136869		return nil, err
136870	}
136871	return ret, nil
136872	// {
136873	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
136874	//   "httpMethod": "GET",
136875	//   "id": "compute.regionInstanceGroupManagers.list",
136876	//   "parameterOrder": [
136877	//     "project",
136878	//     "region"
136879	//   ],
136880	//   "parameters": {
136881	//     "filter": {
136882	//       "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) ```",
136883	//       "location": "query",
136884	//       "type": "string"
136885	//     },
136886	//     "maxResults": {
136887	//       "default": "500",
136888	//       "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`)",
136889	//       "format": "uint32",
136890	//       "location": "query",
136891	//       "minimum": "0",
136892	//       "type": "integer"
136893	//     },
136894	//     "orderBy": {
136895	//       "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.",
136896	//       "location": "query",
136897	//       "type": "string"
136898	//     },
136899	//     "pageToken": {
136900	//       "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.",
136901	//       "location": "query",
136902	//       "type": "string"
136903	//     },
136904	//     "project": {
136905	//       "description": "Project ID for this request.",
136906	//       "location": "path",
136907	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136908	//       "required": true,
136909	//       "type": "string"
136910	//     },
136911	//     "region": {
136912	//       "description": "Name of the region scoping this request.",
136913	//       "location": "path",
136914	//       "required": true,
136915	//       "type": "string"
136916	//     },
136917	//     "returnPartialSuccess": {
136918	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
136919	//       "location": "query",
136920	//       "type": "boolean"
136921	//     }
136922	//   },
136923	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
136924	//   "response": {
136925	//     "$ref": "RegionInstanceGroupManagerList"
136926	//   },
136927	//   "scopes": [
136928	//     "https://www.googleapis.com/auth/cloud-platform",
136929	//     "https://www.googleapis.com/auth/compute",
136930	//     "https://www.googleapis.com/auth/compute.readonly"
136931	//   ]
136932	// }
136933
136934}
136935
136936// Pages invokes f for each page of results.
136937// A non-nil error returned from f will halt the iteration.
136938// The provided context supersedes any context provided to the Context method.
136939func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
136940	c.ctx_ = ctx
136941	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136942	for {
136943		x, err := c.Do()
136944		if err != nil {
136945			return err
136946		}
136947		if err := f(x); err != nil {
136948			return err
136949		}
136950		if x.NextPageToken == "" {
136951			return nil
136952		}
136953		c.PageToken(x.NextPageToken)
136954	}
136955}
136956
136957// method id "compute.regionInstanceGroupManagers.listErrors":
136958
136959type RegionInstanceGroupManagersListErrorsCall struct {
136960	s                    *Service
136961	project              string
136962	region               string
136963	instanceGroupManager string
136964	urlParams_           gensupport.URLParams
136965	ifNoneMatch_         string
136966	ctx_                 context.Context
136967	header_              http.Header
136968}
136969
136970// ListErrors: Lists all errors thrown by actions on instances for a
136971// given regional managed instance group. The filter and orderBy query
136972// parameters are not supported.
136973//
136974// - instanceGroupManager: The name of the managed instance group. It
136975//   must be a string that meets the requirements in RFC1035, or an
136976//   unsigned long integer: must match regexp pattern: (?:a-z
136977//   (?:[-a-z0-9]{0,61}[a-z0-9])?)|[1-9][0-9]{0,19}.
136978// - project: Project ID for this request.
136979// - region: Name of the region scoping this request. This should
136980//   conform to RFC1035.
136981func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
136982	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136983	c.project = project
136984	c.region = region
136985	c.instanceGroupManager = instanceGroupManager
136986	return c
136987}
136988
136989// Filter sets the optional parameter "filter": A filter expression that
136990// filters resources listed in the response. The expression must specify
136991// the field name, a comparison operator, and the value that you want to
136992// use for filtering. The value must be a string, a number, or a
136993// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136994// `<`.
136995//
136996// For example, if you are filtering Compute Engine instances, you can
136997// exclude instances named `example-instance` by specifying `name !=
136998// example-instance`.
136999//
137000// You can also filter nested fields. For example, you could specify
137001// `scheduling.automaticRestart = false` to include instances only if
137002// they are not scheduled for automatic restarts. You can use filtering
137003// on nested fields to filter based on resource labels.
137004//
137005// To filter on multiple expressions, provide each separate expression
137006// within parentheses. For example: ``` (scheduling.automaticRestart =
137007// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
137008// is an `AND` expression. However, you can include `AND` and `OR`
137009// expressions explicitly. For example: ``` (cpuPlatform = "Intel
137010// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
137011// (scheduling.automaticRestart = true) ```
137012func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
137013	c.urlParams_.Set("filter", filter)
137014	return c
137015}
137016
137017// MaxResults sets the optional parameter "maxResults": The maximum
137018// number of results per page that should be returned. If the number of
137019// available results is larger than `maxResults`, Compute Engine returns
137020// a `nextPageToken` that can be used to get the next page of results in
137021// subsequent list requests. Acceptable values are `0` to `500`,
137022// inclusive. (Default: `500`)
137023func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
137024	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137025	return c
137026}
137027
137028// OrderBy sets the optional parameter "orderBy": Sorts list results by
137029// a certain order. By default, results are returned in alphanumerical
137030// order based on the resource name.
137031//
137032// You can also sort results in descending order based on the creation
137033// timestamp using `orderBy="creationTimestamp desc". This sorts
137034// results based on the `creationTimestamp` field in reverse
137035// chronological order (newest result first). Use this to sort resources
137036// like operations so that the newest operation is returned
137037// first.
137038//
137039// Currently, only sorting by `name` or `creationTimestamp desc` is
137040// supported.
137041func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
137042	c.urlParams_.Set("orderBy", orderBy)
137043	return c
137044}
137045
137046// PageToken sets the optional parameter "pageToken": Specifies a page
137047// token to use. Set `pageToken` to the `nextPageToken` returned by a
137048// previous list request to get the next page of results.
137049func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
137050	c.urlParams_.Set("pageToken", pageToken)
137051	return c
137052}
137053
137054// ReturnPartialSuccess sets the optional parameter
137055// "returnPartialSuccess": Opt-in for partial success behavior which
137056// provides partial results in case of failure. The default value is
137057// false.
137058func (c *RegionInstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListErrorsCall {
137059	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137060	return c
137061}
137062
137063// Fields allows partial responses to be retrieved. See
137064// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137065// for more information.
137066func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
137067	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137068	return c
137069}
137070
137071// IfNoneMatch sets the optional parameter which makes the operation
137072// fail if the object's ETag matches the given value. This is useful for
137073// getting updates only after the object has changed since the last
137074// request. Use googleapi.IsNotModified to check whether the response
137075// error from Do is the result of In-None-Match.
137076func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
137077	c.ifNoneMatch_ = entityTag
137078	return c
137079}
137080
137081// Context sets the context to be used in this call's Do method. Any
137082// pending HTTP request will be aborted if the provided context is
137083// canceled.
137084func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
137085	c.ctx_ = ctx
137086	return c
137087}
137088
137089// Header returns an http.Header that can be modified by the caller to
137090// add HTTP headers to the request.
137091func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
137092	if c.header_ == nil {
137093		c.header_ = make(http.Header)
137094	}
137095	return c.header_
137096}
137097
137098func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
137099	reqHeaders := make(http.Header)
137100	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137101	for k, v := range c.header_ {
137102		reqHeaders[k] = v
137103	}
137104	reqHeaders.Set("User-Agent", c.s.userAgent())
137105	if c.ifNoneMatch_ != "" {
137106		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137107	}
137108	var body io.Reader = nil
137109	c.urlParams_.Set("alt", alt)
137110	c.urlParams_.Set("prettyPrint", "false")
137111	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
137112	urls += "?" + c.urlParams_.Encode()
137113	req, err := http.NewRequest("GET", urls, body)
137114	if err != nil {
137115		return nil, err
137116	}
137117	req.Header = reqHeaders
137118	googleapi.Expand(req.URL, map[string]string{
137119		"project":              c.project,
137120		"region":               c.region,
137121		"instanceGroupManager": c.instanceGroupManager,
137122	})
137123	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137124}
137125
137126// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
137127// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
137128// error will be non-nil. Any non-2xx status code is an error. Response
137129// headers are in either
137130// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
137131// or (if a response was returned at all) in
137132// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
137133// whether the returned error was because http.StatusNotModified was
137134// returned.
137135func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
137136	gensupport.SetOptions(c.urlParams_, opts...)
137137	res, err := c.doRequest("json")
137138	if res != nil && res.StatusCode == http.StatusNotModified {
137139		if res.Body != nil {
137140			res.Body.Close()
137141		}
137142		return nil, &googleapi.Error{
137143			Code:   res.StatusCode,
137144			Header: res.Header,
137145		}
137146	}
137147	if err != nil {
137148		return nil, err
137149	}
137150	defer googleapi.CloseBody(res)
137151	if err := googleapi.CheckResponse(res); err != nil {
137152		return nil, err
137153	}
137154	ret := &RegionInstanceGroupManagersListErrorsResponse{
137155		ServerResponse: googleapi.ServerResponse{
137156			Header:         res.Header,
137157			HTTPStatusCode: res.StatusCode,
137158		},
137159	}
137160	target := &ret
137161	if err := gensupport.DecodeResponse(target, res); err != nil {
137162		return nil, err
137163	}
137164	return ret, nil
137165	// {
137166	//   "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.",
137167	//   "httpMethod": "GET",
137168	//   "id": "compute.regionInstanceGroupManagers.listErrors",
137169	//   "parameterOrder": [
137170	//     "project",
137171	//     "region",
137172	//     "instanceGroupManager"
137173	//   ],
137174	//   "parameters": {
137175	//     "filter": {
137176	//       "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) ```",
137177	//       "location": "query",
137178	//       "type": "string"
137179	//     },
137180	//     "instanceGroupManager": {
137181	//       "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}.",
137182	//       "location": "path",
137183	//       "required": true,
137184	//       "type": "string"
137185	//     },
137186	//     "maxResults": {
137187	//       "default": "500",
137188	//       "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`)",
137189	//       "format": "uint32",
137190	//       "location": "query",
137191	//       "minimum": "0",
137192	//       "type": "integer"
137193	//     },
137194	//     "orderBy": {
137195	//       "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.",
137196	//       "location": "query",
137197	//       "type": "string"
137198	//     },
137199	//     "pageToken": {
137200	//       "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.",
137201	//       "location": "query",
137202	//       "type": "string"
137203	//     },
137204	//     "project": {
137205	//       "description": "Project ID for this request.",
137206	//       "location": "path",
137207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137208	//       "required": true,
137209	//       "type": "string"
137210	//     },
137211	//     "region": {
137212	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
137213	//       "location": "path",
137214	//       "required": true,
137215	//       "type": "string"
137216	//     },
137217	//     "returnPartialSuccess": {
137218	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
137219	//       "location": "query",
137220	//       "type": "boolean"
137221	//     }
137222	//   },
137223	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
137224	//   "response": {
137225	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
137226	//   },
137227	//   "scopes": [
137228	//     "https://www.googleapis.com/auth/cloud-platform",
137229	//     "https://www.googleapis.com/auth/compute",
137230	//     "https://www.googleapis.com/auth/compute.readonly"
137231	//   ]
137232	// }
137233
137234}
137235
137236// Pages invokes f for each page of results.
137237// A non-nil error returned from f will halt the iteration.
137238// The provided context supersedes any context provided to the Context method.
137239func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
137240	c.ctx_ = ctx
137241	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137242	for {
137243		x, err := c.Do()
137244		if err != nil {
137245			return err
137246		}
137247		if err := f(x); err != nil {
137248			return err
137249		}
137250		if x.NextPageToken == "" {
137251			return nil
137252		}
137253		c.PageToken(x.NextPageToken)
137254	}
137255}
137256
137257// method id "compute.regionInstanceGroupManagers.listManagedInstances":
137258
137259type RegionInstanceGroupManagersListManagedInstancesCall struct {
137260	s                    *Service
137261	project              string
137262	region               string
137263	instanceGroupManager string
137264	urlParams_           gensupport.URLParams
137265	ctx_                 context.Context
137266	header_              http.Header
137267}
137268
137269// ListManagedInstances: Lists the instances in the managed instance
137270// group and instances that are scheduled to be created. The list
137271// includes any current actions that the group has scheduled for its
137272// instances. The orderBy query parameter is not supported.
137273//
137274// - instanceGroupManager: The name of the managed instance group.
137275// - project: Project ID for this request.
137276// - region: Name of the region scoping this request.
137277func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
137278	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137279	c.project = project
137280	c.region = region
137281	c.instanceGroupManager = instanceGroupManager
137282	return c
137283}
137284
137285// Filter sets the optional parameter "filter": A filter expression that
137286// filters resources listed in the response. The expression must specify
137287// the field name, a comparison operator, and the value that you want to
137288// use for filtering. The value must be a string, a number, or a
137289// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137290// `<`.
137291//
137292// For example, if you are filtering Compute Engine instances, you can
137293// exclude instances named `example-instance` by specifying `name !=
137294// example-instance`.
137295//
137296// You can also filter nested fields. For example, you could specify
137297// `scheduling.automaticRestart = false` to include instances only if
137298// they are not scheduled for automatic restarts. You can use filtering
137299// on nested fields to filter based on resource labels.
137300//
137301// To filter on multiple expressions, provide each separate expression
137302// within parentheses. For example: ``` (scheduling.automaticRestart =
137303// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
137304// is an `AND` expression. However, you can include `AND` and `OR`
137305// expressions explicitly. For example: ``` (cpuPlatform = "Intel
137306// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
137307// (scheduling.automaticRestart = true) ```
137308func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
137309	c.urlParams_.Set("filter", filter)
137310	return c
137311}
137312
137313// MaxResults sets the optional parameter "maxResults": The maximum
137314// number of results per page that should be returned. If the number of
137315// available results is larger than `maxResults`, Compute Engine returns
137316// a `nextPageToken` that can be used to get the next page of results in
137317// subsequent list requests. Acceptable values are `0` to `500`,
137318// inclusive. (Default: `500`)
137319func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
137320	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137321	return c
137322}
137323
137324// OrderBy sets the optional parameter "orderBy": Sorts list results by
137325// a certain order. By default, results are returned in alphanumerical
137326// order based on the resource name.
137327//
137328// You can also sort results in descending order based on the creation
137329// timestamp using `orderBy="creationTimestamp desc". This sorts
137330// results based on the `creationTimestamp` field in reverse
137331// chronological order (newest result first). Use this to sort resources
137332// like operations so that the newest operation is returned
137333// first.
137334//
137335// Currently, only sorting by `name` or `creationTimestamp desc` is
137336// supported.
137337func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
137338	c.urlParams_.Set("orderBy", orderBy)
137339	return c
137340}
137341
137342// PageToken sets the optional parameter "pageToken": Specifies a page
137343// token to use. Set `pageToken` to the `nextPageToken` returned by a
137344// previous list request to get the next page of results.
137345func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
137346	c.urlParams_.Set("pageToken", pageToken)
137347	return c
137348}
137349
137350// ReturnPartialSuccess sets the optional parameter
137351// "returnPartialSuccess": Opt-in for partial success behavior which
137352// provides partial results in case of failure. The default value is
137353// false.
137354func (c *RegionInstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListManagedInstancesCall {
137355	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137356	return c
137357}
137358
137359// Fields allows partial responses to be retrieved. See
137360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137361// for more information.
137362func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
137363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137364	return c
137365}
137366
137367// Context sets the context to be used in this call's Do method. Any
137368// pending HTTP request will be aborted if the provided context is
137369// canceled.
137370func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
137371	c.ctx_ = ctx
137372	return c
137373}
137374
137375// Header returns an http.Header that can be modified by the caller to
137376// add HTTP headers to the request.
137377func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
137378	if c.header_ == nil {
137379		c.header_ = make(http.Header)
137380	}
137381	return c.header_
137382}
137383
137384func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
137385	reqHeaders := make(http.Header)
137386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137387	for k, v := range c.header_ {
137388		reqHeaders[k] = v
137389	}
137390	reqHeaders.Set("User-Agent", c.s.userAgent())
137391	var body io.Reader = nil
137392	c.urlParams_.Set("alt", alt)
137393	c.urlParams_.Set("prettyPrint", "false")
137394	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
137395	urls += "?" + c.urlParams_.Encode()
137396	req, err := http.NewRequest("POST", urls, body)
137397	if err != nil {
137398		return nil, err
137399	}
137400	req.Header = reqHeaders
137401	googleapi.Expand(req.URL, map[string]string{
137402		"project":              c.project,
137403		"region":               c.region,
137404		"instanceGroupManager": c.instanceGroupManager,
137405	})
137406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137407}
137408
137409// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
137410// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
137411// error will be non-nil. Any non-2xx status code is an error. Response
137412// headers are in either
137413// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
137414// r or (if a response was returned at all) in
137415// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
137416// whether the returned error was because http.StatusNotModified was
137417// returned.
137418func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
137419	gensupport.SetOptions(c.urlParams_, opts...)
137420	res, err := c.doRequest("json")
137421	if res != nil && res.StatusCode == http.StatusNotModified {
137422		if res.Body != nil {
137423			res.Body.Close()
137424		}
137425		return nil, &googleapi.Error{
137426			Code:   res.StatusCode,
137427			Header: res.Header,
137428		}
137429	}
137430	if err != nil {
137431		return nil, err
137432	}
137433	defer googleapi.CloseBody(res)
137434	if err := googleapi.CheckResponse(res); err != nil {
137435		return nil, err
137436	}
137437	ret := &RegionInstanceGroupManagersListInstancesResponse{
137438		ServerResponse: googleapi.ServerResponse{
137439			Header:         res.Header,
137440			HTTPStatusCode: res.StatusCode,
137441		},
137442	}
137443	target := &ret
137444	if err := gensupport.DecodeResponse(target, res); err != nil {
137445		return nil, err
137446	}
137447	return ret, nil
137448	// {
137449	//   "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.",
137450	//   "httpMethod": "POST",
137451	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
137452	//   "parameterOrder": [
137453	//     "project",
137454	//     "region",
137455	//     "instanceGroupManager"
137456	//   ],
137457	//   "parameters": {
137458	//     "filter": {
137459	//       "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) ```",
137460	//       "location": "query",
137461	//       "type": "string"
137462	//     },
137463	//     "instanceGroupManager": {
137464	//       "description": "The name of the managed instance group.",
137465	//       "location": "path",
137466	//       "required": true,
137467	//       "type": "string"
137468	//     },
137469	//     "maxResults": {
137470	//       "default": "500",
137471	//       "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`)",
137472	//       "format": "uint32",
137473	//       "location": "query",
137474	//       "minimum": "0",
137475	//       "type": "integer"
137476	//     },
137477	//     "orderBy": {
137478	//       "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.",
137479	//       "location": "query",
137480	//       "type": "string"
137481	//     },
137482	//     "pageToken": {
137483	//       "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.",
137484	//       "location": "query",
137485	//       "type": "string"
137486	//     },
137487	//     "project": {
137488	//       "description": "Project ID for this request.",
137489	//       "location": "path",
137490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137491	//       "required": true,
137492	//       "type": "string"
137493	//     },
137494	//     "region": {
137495	//       "description": "Name of the region scoping this request.",
137496	//       "location": "path",
137497	//       "required": true,
137498	//       "type": "string"
137499	//     },
137500	//     "returnPartialSuccess": {
137501	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
137502	//       "location": "query",
137503	//       "type": "boolean"
137504	//     }
137505	//   },
137506	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
137507	//   "response": {
137508	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
137509	//   },
137510	//   "scopes": [
137511	//     "https://www.googleapis.com/auth/cloud-platform",
137512	//     "https://www.googleapis.com/auth/compute",
137513	//     "https://www.googleapis.com/auth/compute.readonly"
137514	//   ]
137515	// }
137516
137517}
137518
137519// Pages invokes f for each page of results.
137520// A non-nil error returned from f will halt the iteration.
137521// The provided context supersedes any context provided to the Context method.
137522func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
137523	c.ctx_ = ctx
137524	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137525	for {
137526		x, err := c.Do()
137527		if err != nil {
137528			return err
137529		}
137530		if err := f(x); err != nil {
137531			return err
137532		}
137533		if x.NextPageToken == "" {
137534			return nil
137535		}
137536		c.PageToken(x.NextPageToken)
137537	}
137538}
137539
137540// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
137541
137542type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
137543	s                    *Service
137544	project              string
137545	region               string
137546	instanceGroupManager string
137547	urlParams_           gensupport.URLParams
137548	ctx_                 context.Context
137549	header_              http.Header
137550}
137551
137552// ListPerInstanceConfigs: Lists all of the per-instance configs defined
137553// for the managed instance group. The orderBy query parameter is not
137554// supported.
137555//
137556// - instanceGroupManager: The name of the managed instance group. It
137557//   should conform to RFC1035.
137558// - project: Project ID for this request.
137559// - region: Name of the region scoping this request, should conform to
137560//   RFC1035.
137561func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
137562	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137563	c.project = project
137564	c.region = region
137565	c.instanceGroupManager = instanceGroupManager
137566	return c
137567}
137568
137569// Filter sets the optional parameter "filter": A filter expression that
137570// filters resources listed in the response. The expression must specify
137571// the field name, a comparison operator, and the value that you want to
137572// use for filtering. The value must be a string, a number, or a
137573// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137574// `<`.
137575//
137576// For example, if you are filtering Compute Engine instances, you can
137577// exclude instances named `example-instance` by specifying `name !=
137578// example-instance`.
137579//
137580// You can also filter nested fields. For example, you could specify
137581// `scheduling.automaticRestart = false` to include instances only if
137582// they are not scheduled for automatic restarts. You can use filtering
137583// on nested fields to filter based on resource labels.
137584//
137585// To filter on multiple expressions, provide each separate expression
137586// within parentheses. For example: ``` (scheduling.automaticRestart =
137587// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
137588// is an `AND` expression. However, you can include `AND` and `OR`
137589// expressions explicitly. For example: ``` (cpuPlatform = "Intel
137590// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
137591// (scheduling.automaticRestart = true) ```
137592func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
137593	c.urlParams_.Set("filter", filter)
137594	return c
137595}
137596
137597// MaxResults sets the optional parameter "maxResults": The maximum
137598// number of results per page that should be returned. If the number of
137599// available results is larger than `maxResults`, Compute Engine returns
137600// a `nextPageToken` that can be used to get the next page of results in
137601// subsequent list requests. Acceptable values are `0` to `500`,
137602// inclusive. (Default: `500`)
137603func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
137604	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137605	return c
137606}
137607
137608// OrderBy sets the optional parameter "orderBy": Sorts list results by
137609// a certain order. By default, results are returned in alphanumerical
137610// order based on the resource name.
137611//
137612// You can also sort results in descending order based on the creation
137613// timestamp using `orderBy="creationTimestamp desc". This sorts
137614// results based on the `creationTimestamp` field in reverse
137615// chronological order (newest result first). Use this to sort resources
137616// like operations so that the newest operation is returned
137617// first.
137618//
137619// Currently, only sorting by `name` or `creationTimestamp desc` is
137620// supported.
137621func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
137622	c.urlParams_.Set("orderBy", orderBy)
137623	return c
137624}
137625
137626// PageToken sets the optional parameter "pageToken": Specifies a page
137627// token to use. Set `pageToken` to the `nextPageToken` returned by a
137628// previous list request to get the next page of results.
137629func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
137630	c.urlParams_.Set("pageToken", pageToken)
137631	return c
137632}
137633
137634// ReturnPartialSuccess sets the optional parameter
137635// "returnPartialSuccess": Opt-in for partial success behavior which
137636// provides partial results in case of failure. The default value is
137637// false.
137638func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
137639	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137640	return c
137641}
137642
137643// Fields allows partial responses to be retrieved. See
137644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137645// for more information.
137646func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
137647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137648	return c
137649}
137650
137651// Context sets the context to be used in this call's Do method. Any
137652// pending HTTP request will be aborted if the provided context is
137653// canceled.
137654func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
137655	c.ctx_ = ctx
137656	return c
137657}
137658
137659// Header returns an http.Header that can be modified by the caller to
137660// add HTTP headers to the request.
137661func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
137662	if c.header_ == nil {
137663		c.header_ = make(http.Header)
137664	}
137665	return c.header_
137666}
137667
137668func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
137669	reqHeaders := make(http.Header)
137670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137671	for k, v := range c.header_ {
137672		reqHeaders[k] = v
137673	}
137674	reqHeaders.Set("User-Agent", c.s.userAgent())
137675	var body io.Reader = nil
137676	c.urlParams_.Set("alt", alt)
137677	c.urlParams_.Set("prettyPrint", "false")
137678	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
137679	urls += "?" + c.urlParams_.Encode()
137680	req, err := http.NewRequest("POST", urls, body)
137681	if err != nil {
137682		return nil, err
137683	}
137684	req.Header = reqHeaders
137685	googleapi.Expand(req.URL, map[string]string{
137686		"project":              c.project,
137687		"region":               c.region,
137688		"instanceGroupManager": c.instanceGroupManager,
137689	})
137690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137691}
137692
137693// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
137694// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
137695// error will be non-nil. Any non-2xx status code is an error. Response
137696// headers are in either
137697// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
137698// der or (if a response was returned at all) in
137699// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
137700// whether the returned error was because http.StatusNotModified was
137701// returned.
137702func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
137703	gensupport.SetOptions(c.urlParams_, opts...)
137704	res, err := c.doRequest("json")
137705	if res != nil && res.StatusCode == http.StatusNotModified {
137706		if res.Body != nil {
137707			res.Body.Close()
137708		}
137709		return nil, &googleapi.Error{
137710			Code:   res.StatusCode,
137711			Header: res.Header,
137712		}
137713	}
137714	if err != nil {
137715		return nil, err
137716	}
137717	defer googleapi.CloseBody(res)
137718	if err := googleapi.CheckResponse(res); err != nil {
137719		return nil, err
137720	}
137721	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
137722		ServerResponse: googleapi.ServerResponse{
137723			Header:         res.Header,
137724			HTTPStatusCode: res.StatusCode,
137725		},
137726	}
137727	target := &ret
137728	if err := gensupport.DecodeResponse(target, res); err != nil {
137729		return nil, err
137730	}
137731	return ret, nil
137732	// {
137733	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
137734	//   "httpMethod": "POST",
137735	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
137736	//   "parameterOrder": [
137737	//     "project",
137738	//     "region",
137739	//     "instanceGroupManager"
137740	//   ],
137741	//   "parameters": {
137742	//     "filter": {
137743	//       "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) ```",
137744	//       "location": "query",
137745	//       "type": "string"
137746	//     },
137747	//     "instanceGroupManager": {
137748	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
137749	//       "location": "path",
137750	//       "required": true,
137751	//       "type": "string"
137752	//     },
137753	//     "maxResults": {
137754	//       "default": "500",
137755	//       "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`)",
137756	//       "format": "uint32",
137757	//       "location": "query",
137758	//       "minimum": "0",
137759	//       "type": "integer"
137760	//     },
137761	//     "orderBy": {
137762	//       "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.",
137763	//       "location": "query",
137764	//       "type": "string"
137765	//     },
137766	//     "pageToken": {
137767	//       "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.",
137768	//       "location": "query",
137769	//       "type": "string"
137770	//     },
137771	//     "project": {
137772	//       "description": "Project ID for this request.",
137773	//       "location": "path",
137774	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137775	//       "required": true,
137776	//       "type": "string"
137777	//     },
137778	//     "region": {
137779	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
137780	//       "location": "path",
137781	//       "required": true,
137782	//       "type": "string"
137783	//     },
137784	//     "returnPartialSuccess": {
137785	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
137786	//       "location": "query",
137787	//       "type": "boolean"
137788	//     }
137789	//   },
137790	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
137791	//   "response": {
137792	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
137793	//   },
137794	//   "scopes": [
137795	//     "https://www.googleapis.com/auth/cloud-platform",
137796	//     "https://www.googleapis.com/auth/compute",
137797	//     "https://www.googleapis.com/auth/compute.readonly"
137798	//   ]
137799	// }
137800
137801}
137802
137803// Pages invokes f for each page of results.
137804// A non-nil error returned from f will halt the iteration.
137805// The provided context supersedes any context provided to the Context method.
137806func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
137807	c.ctx_ = ctx
137808	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137809	for {
137810		x, err := c.Do()
137811		if err != nil {
137812			return err
137813		}
137814		if err := f(x); err != nil {
137815			return err
137816		}
137817		if x.NextPageToken == "" {
137818			return nil
137819		}
137820		c.PageToken(x.NextPageToken)
137821	}
137822}
137823
137824// method id "compute.regionInstanceGroupManagers.patch":
137825
137826type RegionInstanceGroupManagersPatchCall struct {
137827	s                    *Service
137828	project              string
137829	region               string
137830	instanceGroupManager string
137831	instancegroupmanager *InstanceGroupManager
137832	urlParams_           gensupport.URLParams
137833	ctx_                 context.Context
137834	header_              http.Header
137835}
137836
137837// Patch: Updates a managed instance group using the information that
137838// you specify in the request. This operation is marked as DONE when the
137839// group is patched even if the instances in the group are still in the
137840// process of being patched. You must separately verify the status of
137841// the individual instances with the listmanagedinstances method. This
137842// method supports PATCH semantics and uses the JSON merge patch format
137843// and processing rules.
137844//
137845// - instanceGroupManager: The name of the instance group manager.
137846// - project: Project ID for this request.
137847// - region: Name of the region scoping this request.
137848func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
137849	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137850	c.project = project
137851	c.region = region
137852	c.instanceGroupManager = instanceGroupManager
137853	c.instancegroupmanager = instancegroupmanager
137854	return c
137855}
137856
137857// RequestId sets the optional parameter "requestId": An optional
137858// request ID to identify requests. Specify a unique request ID so that
137859// if you must retry your request, the server will know to ignore the
137860// request if it has already been completed.
137861//
137862// For example, consider a situation where you make an initial request
137863// and the request times out. If you make the request again with the
137864// same request ID, the server can check if original operation with the
137865// same request ID was received, and if so, will ignore the second
137866// request. This prevents clients from accidentally creating duplicate
137867// commitments.
137868//
137869// The request ID must be a valid UUID with the exception that zero UUID
137870// is not supported (00000000-0000-0000-0000-000000000000).
137871func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
137872	c.urlParams_.Set("requestId", requestId)
137873	return c
137874}
137875
137876// Fields allows partial responses to be retrieved. See
137877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137878// for more information.
137879func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
137880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137881	return c
137882}
137883
137884// Context sets the context to be used in this call's Do method. Any
137885// pending HTTP request will be aborted if the provided context is
137886// canceled.
137887func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
137888	c.ctx_ = ctx
137889	return c
137890}
137891
137892// Header returns an http.Header that can be modified by the caller to
137893// add HTTP headers to the request.
137894func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
137895	if c.header_ == nil {
137896		c.header_ = make(http.Header)
137897	}
137898	return c.header_
137899}
137900
137901func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
137902	reqHeaders := make(http.Header)
137903	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137904	for k, v := range c.header_ {
137905		reqHeaders[k] = v
137906	}
137907	reqHeaders.Set("User-Agent", c.s.userAgent())
137908	var body io.Reader = nil
137909	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
137910	if err != nil {
137911		return nil, err
137912	}
137913	reqHeaders.Set("Content-Type", "application/json")
137914	c.urlParams_.Set("alt", alt)
137915	c.urlParams_.Set("prettyPrint", "false")
137916	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
137917	urls += "?" + c.urlParams_.Encode()
137918	req, err := http.NewRequest("PATCH", urls, body)
137919	if err != nil {
137920		return nil, err
137921	}
137922	req.Header = reqHeaders
137923	googleapi.Expand(req.URL, map[string]string{
137924		"project":              c.project,
137925		"region":               c.region,
137926		"instanceGroupManager": c.instanceGroupManager,
137927	})
137928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137929}
137930
137931// Do executes the "compute.regionInstanceGroupManagers.patch" call.
137932// Exactly one of *Operation or error will be non-nil. Any non-2xx
137933// status code is an error. Response headers are in either
137934// *Operation.ServerResponse.Header or (if a response was returned at
137935// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137936// to check whether the returned error was because
137937// http.StatusNotModified was returned.
137938func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137939	gensupport.SetOptions(c.urlParams_, opts...)
137940	res, err := c.doRequest("json")
137941	if res != nil && res.StatusCode == http.StatusNotModified {
137942		if res.Body != nil {
137943			res.Body.Close()
137944		}
137945		return nil, &googleapi.Error{
137946			Code:   res.StatusCode,
137947			Header: res.Header,
137948		}
137949	}
137950	if err != nil {
137951		return nil, err
137952	}
137953	defer googleapi.CloseBody(res)
137954	if err := googleapi.CheckResponse(res); err != nil {
137955		return nil, err
137956	}
137957	ret := &Operation{
137958		ServerResponse: googleapi.ServerResponse{
137959			Header:         res.Header,
137960			HTTPStatusCode: res.StatusCode,
137961		},
137962	}
137963	target := &ret
137964	if err := gensupport.DecodeResponse(target, res); err != nil {
137965		return nil, err
137966	}
137967	return ret, nil
137968	// {
137969	//   "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.",
137970	//   "httpMethod": "PATCH",
137971	//   "id": "compute.regionInstanceGroupManagers.patch",
137972	//   "parameterOrder": [
137973	//     "project",
137974	//     "region",
137975	//     "instanceGroupManager"
137976	//   ],
137977	//   "parameters": {
137978	//     "instanceGroupManager": {
137979	//       "description": "The name of the instance group manager.",
137980	//       "location": "path",
137981	//       "required": true,
137982	//       "type": "string"
137983	//     },
137984	//     "project": {
137985	//       "description": "Project ID for this request.",
137986	//       "location": "path",
137987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137988	//       "required": true,
137989	//       "type": "string"
137990	//     },
137991	//     "region": {
137992	//       "description": "Name of the region scoping this request.",
137993	//       "location": "path",
137994	//       "required": true,
137995	//       "type": "string"
137996	//     },
137997	//     "requestId": {
137998	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137999	//       "location": "query",
138000	//       "type": "string"
138001	//     }
138002	//   },
138003	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
138004	//   "request": {
138005	//     "$ref": "InstanceGroupManager"
138006	//   },
138007	//   "response": {
138008	//     "$ref": "Operation"
138009	//   },
138010	//   "scopes": [
138011	//     "https://www.googleapis.com/auth/cloud-platform",
138012	//     "https://www.googleapis.com/auth/compute"
138013	//   ]
138014	// }
138015
138016}
138017
138018// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
138019
138020type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
138021	s                                                *Service
138022	project                                          string
138023	region                                           string
138024	instanceGroupManager                             string
138025	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
138026	urlParams_                                       gensupport.URLParams
138027	ctx_                                             context.Context
138028	header_                                          http.Header
138029}
138030
138031// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
138032// the managed instance group. perInstanceConfig.name serves as a key
138033// used to distinguish whether to perform insert or patch.
138034//
138035// - instanceGroupManager: The name of the managed instance group. It
138036//   should conform to RFC1035.
138037// - project: Project ID for this request.
138038// - region: Name of the region scoping this request, should conform to
138039//   RFC1035.
138040func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
138041	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138042	c.project = project
138043	c.region = region
138044	c.instanceGroupManager = instanceGroupManager
138045	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
138046	return c
138047}
138048
138049// RequestId sets the optional parameter "requestId": An optional
138050// request ID to identify requests. Specify a unique request ID so that
138051// if you must retry your request, the server will know to ignore the
138052// request if it has already been completed.
138053//
138054// For example, consider a situation where you make an initial request
138055// and the request times out. If you make the request again with the
138056// same request ID, the server can check if original operation with the
138057// same request ID was received, and if so, will ignore the second
138058// request. This prevents clients from accidentally creating duplicate
138059// commitments.
138060//
138061// The request ID must be a valid UUID with the exception that zero UUID
138062// is not supported (00000000-0000-0000-0000-000000000000).
138063func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
138064	c.urlParams_.Set("requestId", requestId)
138065	return c
138066}
138067
138068// Fields allows partial responses to be retrieved. See
138069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138070// for more information.
138071func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
138072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138073	return c
138074}
138075
138076// Context sets the context to be used in this call's Do method. Any
138077// pending HTTP request will be aborted if the provided context is
138078// canceled.
138079func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
138080	c.ctx_ = ctx
138081	return c
138082}
138083
138084// Header returns an http.Header that can be modified by the caller to
138085// add HTTP headers to the request.
138086func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
138087	if c.header_ == nil {
138088		c.header_ = make(http.Header)
138089	}
138090	return c.header_
138091}
138092
138093func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
138094	reqHeaders := make(http.Header)
138095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138096	for k, v := range c.header_ {
138097		reqHeaders[k] = v
138098	}
138099	reqHeaders.Set("User-Agent", c.s.userAgent())
138100	var body io.Reader = nil
138101	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
138102	if err != nil {
138103		return nil, err
138104	}
138105	reqHeaders.Set("Content-Type", "application/json")
138106	c.urlParams_.Set("alt", alt)
138107	c.urlParams_.Set("prettyPrint", "false")
138108	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
138109	urls += "?" + c.urlParams_.Encode()
138110	req, err := http.NewRequest("POST", urls, body)
138111	if err != nil {
138112		return nil, err
138113	}
138114	req.Header = reqHeaders
138115	googleapi.Expand(req.URL, map[string]string{
138116		"project":              c.project,
138117		"region":               c.region,
138118		"instanceGroupManager": c.instanceGroupManager,
138119	})
138120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138121}
138122
138123// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
138124// Exactly one of *Operation or error will be non-nil. Any non-2xx
138125// status code is an error. Response headers are in either
138126// *Operation.ServerResponse.Header or (if a response was returned at
138127// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138128// to check whether the returned error was because
138129// http.StatusNotModified was returned.
138130func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138131	gensupport.SetOptions(c.urlParams_, opts...)
138132	res, err := c.doRequest("json")
138133	if res != nil && res.StatusCode == http.StatusNotModified {
138134		if res.Body != nil {
138135			res.Body.Close()
138136		}
138137		return nil, &googleapi.Error{
138138			Code:   res.StatusCode,
138139			Header: res.Header,
138140		}
138141	}
138142	if err != nil {
138143		return nil, err
138144	}
138145	defer googleapi.CloseBody(res)
138146	if err := googleapi.CheckResponse(res); err != nil {
138147		return nil, err
138148	}
138149	ret := &Operation{
138150		ServerResponse: googleapi.ServerResponse{
138151			Header:         res.Header,
138152			HTTPStatusCode: res.StatusCode,
138153		},
138154	}
138155	target := &ret
138156	if err := gensupport.DecodeResponse(target, res); err != nil {
138157		return nil, err
138158	}
138159	return ret, nil
138160	// {
138161	//   "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.",
138162	//   "httpMethod": "POST",
138163	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
138164	//   "parameterOrder": [
138165	//     "project",
138166	//     "region",
138167	//     "instanceGroupManager"
138168	//   ],
138169	//   "parameters": {
138170	//     "instanceGroupManager": {
138171	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
138172	//       "location": "path",
138173	//       "required": true,
138174	//       "type": "string"
138175	//     },
138176	//     "project": {
138177	//       "description": "Project ID for this request.",
138178	//       "location": "path",
138179	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138180	//       "required": true,
138181	//       "type": "string"
138182	//     },
138183	//     "region": {
138184	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
138185	//       "location": "path",
138186	//       "required": true,
138187	//       "type": "string"
138188	//     },
138189	//     "requestId": {
138190	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138191	//       "location": "query",
138192	//       "type": "string"
138193	//     }
138194	//   },
138195	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
138196	//   "request": {
138197	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
138198	//   },
138199	//   "response": {
138200	//     "$ref": "Operation"
138201	//   },
138202	//   "scopes": [
138203	//     "https://www.googleapis.com/auth/cloud-platform",
138204	//     "https://www.googleapis.com/auth/compute"
138205	//   ]
138206	// }
138207
138208}
138209
138210// method id "compute.regionInstanceGroupManagers.recreateInstances":
138211
138212type RegionInstanceGroupManagersRecreateInstancesCall struct {
138213	s                                          *Service
138214	project                                    string
138215	region                                     string
138216	instanceGroupManager                       string
138217	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
138218	urlParams_                                 gensupport.URLParams
138219	ctx_                                       context.Context
138220	header_                                    http.Header
138221}
138222
138223// RecreateInstances: Flags the specified VM instances in the managed
138224// instance group to be immediately recreated. Each instance is
138225// recreated using the group's current configuration. This operation is
138226// marked as DONE when the flag is set even if the instances have not
138227// yet been recreated. You must separately verify the status of each
138228// instance by checking its currentAction field; for more information,
138229// see Checking the status of managed instances.
138230//
138231// If the group is part of a backend service that has enabled connection
138232// draining, it can take up to 60 seconds after the connection draining
138233// duration has elapsed before the VM instance is removed or
138234// deleted.
138235//
138236// You can specify a maximum of 1000 instances with this method per
138237// request.
138238//
138239// - instanceGroupManager: Name of the managed instance group.
138240// - project: Project ID for this request.
138241// - region: Name of the region scoping this request.
138242func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
138243	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138244	c.project = project
138245	c.region = region
138246	c.instanceGroupManager = instanceGroupManager
138247	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
138248	return c
138249}
138250
138251// RequestId sets the optional parameter "requestId": An optional
138252// request ID to identify requests. Specify a unique request ID so that
138253// if you must retry your request, the server will know to ignore the
138254// request if it has already been completed.
138255//
138256// For example, consider a situation where you make an initial request
138257// and the request times out. If you make the request again with the
138258// same request ID, the server can check if original operation with the
138259// same request ID was received, and if so, will ignore the second
138260// request. This prevents clients from accidentally creating duplicate
138261// commitments.
138262//
138263// The request ID must be a valid UUID with the exception that zero UUID
138264// is not supported (00000000-0000-0000-0000-000000000000).
138265func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
138266	c.urlParams_.Set("requestId", requestId)
138267	return c
138268}
138269
138270// Fields allows partial responses to be retrieved. See
138271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138272// for more information.
138273func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
138274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138275	return c
138276}
138277
138278// Context sets the context to be used in this call's Do method. Any
138279// pending HTTP request will be aborted if the provided context is
138280// canceled.
138281func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
138282	c.ctx_ = ctx
138283	return c
138284}
138285
138286// Header returns an http.Header that can be modified by the caller to
138287// add HTTP headers to the request.
138288func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
138289	if c.header_ == nil {
138290		c.header_ = make(http.Header)
138291	}
138292	return c.header_
138293}
138294
138295func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
138296	reqHeaders := make(http.Header)
138297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138298	for k, v := range c.header_ {
138299		reqHeaders[k] = v
138300	}
138301	reqHeaders.Set("User-Agent", c.s.userAgent())
138302	var body io.Reader = nil
138303	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
138304	if err != nil {
138305		return nil, err
138306	}
138307	reqHeaders.Set("Content-Type", "application/json")
138308	c.urlParams_.Set("alt", alt)
138309	c.urlParams_.Set("prettyPrint", "false")
138310	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
138311	urls += "?" + c.urlParams_.Encode()
138312	req, err := http.NewRequest("POST", urls, body)
138313	if err != nil {
138314		return nil, err
138315	}
138316	req.Header = reqHeaders
138317	googleapi.Expand(req.URL, map[string]string{
138318		"project":              c.project,
138319		"region":               c.region,
138320		"instanceGroupManager": c.instanceGroupManager,
138321	})
138322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138323}
138324
138325// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
138326// Exactly one of *Operation or error will be non-nil. Any non-2xx
138327// status code is an error. Response headers are in either
138328// *Operation.ServerResponse.Header or (if a response was returned at
138329// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138330// to check whether the returned error was because
138331// http.StatusNotModified was returned.
138332func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138333	gensupport.SetOptions(c.urlParams_, opts...)
138334	res, err := c.doRequest("json")
138335	if res != nil && res.StatusCode == http.StatusNotModified {
138336		if res.Body != nil {
138337			res.Body.Close()
138338		}
138339		return nil, &googleapi.Error{
138340			Code:   res.StatusCode,
138341			Header: res.Header,
138342		}
138343	}
138344	if err != nil {
138345		return nil, err
138346	}
138347	defer googleapi.CloseBody(res)
138348	if err := googleapi.CheckResponse(res); err != nil {
138349		return nil, err
138350	}
138351	ret := &Operation{
138352		ServerResponse: googleapi.ServerResponse{
138353			Header:         res.Header,
138354			HTTPStatusCode: res.StatusCode,
138355		},
138356	}
138357	target := &ret
138358	if err := gensupport.DecodeResponse(target, res); err != nil {
138359		return nil, err
138360	}
138361	return ret, nil
138362	// {
138363	//   "description": "Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. 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 each instance by checking its currentAction field; for more information, see Checking the status of managed 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 has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
138364	//   "httpMethod": "POST",
138365	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
138366	//   "parameterOrder": [
138367	//     "project",
138368	//     "region",
138369	//     "instanceGroupManager"
138370	//   ],
138371	//   "parameters": {
138372	//     "instanceGroupManager": {
138373	//       "description": "Name of the managed instance group.",
138374	//       "location": "path",
138375	//       "required": true,
138376	//       "type": "string"
138377	//     },
138378	//     "project": {
138379	//       "description": "Project ID for this request.",
138380	//       "location": "path",
138381	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138382	//       "required": true,
138383	//       "type": "string"
138384	//     },
138385	//     "region": {
138386	//       "description": "Name of the region scoping this request.",
138387	//       "location": "path",
138388	//       "required": true,
138389	//       "type": "string"
138390	//     },
138391	//     "requestId": {
138392	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138393	//       "location": "query",
138394	//       "type": "string"
138395	//     }
138396	//   },
138397	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
138398	//   "request": {
138399	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
138400	//   },
138401	//   "response": {
138402	//     "$ref": "Operation"
138403	//   },
138404	//   "scopes": [
138405	//     "https://www.googleapis.com/auth/cloud-platform",
138406	//     "https://www.googleapis.com/auth/compute"
138407	//   ]
138408	// }
138409
138410}
138411
138412// method id "compute.regionInstanceGroupManagers.resize":
138413
138414type RegionInstanceGroupManagersResizeCall struct {
138415	s                    *Service
138416	project              string
138417	region               string
138418	instanceGroupManager string
138419	urlParams_           gensupport.URLParams
138420	ctx_                 context.Context
138421	header_              http.Header
138422}
138423
138424// Resize: Changes the intended size of the managed instance group. If
138425// you increase the size, the group creates new instances using the
138426// current instance template. If you decrease the size, the group
138427// deletes one or more instances.
138428//
138429// The resize operation is marked DONE if the resize request is
138430// successful. The underlying actions take additional time. You must
138431// separately verify the status of the creating or deleting actions with
138432// the listmanagedinstances method.
138433//
138434// If the group is part of a backend service that has enabled connection
138435// draining, it can take up to 60 seconds after the connection draining
138436// duration has elapsed before the VM instance is removed or deleted.
138437//
138438// - instanceGroupManager: Name of the managed instance group.
138439// - project: Project ID for this request.
138440// - region: Name of the region scoping this request.
138441// - size: Number of instances that should exist in this instance group
138442//   manager.
138443func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
138444	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138445	c.project = project
138446	c.region = region
138447	c.instanceGroupManager = instanceGroupManager
138448	c.urlParams_.Set("size", fmt.Sprint(size))
138449	return c
138450}
138451
138452// RequestId sets the optional parameter "requestId": An optional
138453// request ID to identify requests. Specify a unique request ID so that
138454// if you must retry your request, the server will know to ignore the
138455// request if it has already been completed.
138456//
138457// For example, consider a situation where you make an initial request
138458// and the request times out. If you make the request again with the
138459// same request ID, the server can check if original operation with the
138460// same request ID was received, and if so, will ignore the second
138461// request. This prevents clients from accidentally creating duplicate
138462// commitments.
138463//
138464// The request ID must be a valid UUID with the exception that zero UUID
138465// is not supported (00000000-0000-0000-0000-000000000000).
138466func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
138467	c.urlParams_.Set("requestId", requestId)
138468	return c
138469}
138470
138471// Fields allows partial responses to be retrieved. See
138472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138473// for more information.
138474func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
138475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138476	return c
138477}
138478
138479// Context sets the context to be used in this call's Do method. Any
138480// pending HTTP request will be aborted if the provided context is
138481// canceled.
138482func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
138483	c.ctx_ = ctx
138484	return c
138485}
138486
138487// Header returns an http.Header that can be modified by the caller to
138488// add HTTP headers to the request.
138489func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
138490	if c.header_ == nil {
138491		c.header_ = make(http.Header)
138492	}
138493	return c.header_
138494}
138495
138496func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
138497	reqHeaders := make(http.Header)
138498	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138499	for k, v := range c.header_ {
138500		reqHeaders[k] = v
138501	}
138502	reqHeaders.Set("User-Agent", c.s.userAgent())
138503	var body io.Reader = nil
138504	c.urlParams_.Set("alt", alt)
138505	c.urlParams_.Set("prettyPrint", "false")
138506	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
138507	urls += "?" + c.urlParams_.Encode()
138508	req, err := http.NewRequest("POST", urls, body)
138509	if err != nil {
138510		return nil, err
138511	}
138512	req.Header = reqHeaders
138513	googleapi.Expand(req.URL, map[string]string{
138514		"project":              c.project,
138515		"region":               c.region,
138516		"instanceGroupManager": c.instanceGroupManager,
138517	})
138518	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138519}
138520
138521// Do executes the "compute.regionInstanceGroupManagers.resize" call.
138522// Exactly one of *Operation or error will be non-nil. Any non-2xx
138523// status code is an error. Response headers are in either
138524// *Operation.ServerResponse.Header or (if a response was returned at
138525// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138526// to check whether the returned error was because
138527// http.StatusNotModified was returned.
138528func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138529	gensupport.SetOptions(c.urlParams_, opts...)
138530	res, err := c.doRequest("json")
138531	if res != nil && res.StatusCode == http.StatusNotModified {
138532		if res.Body != nil {
138533			res.Body.Close()
138534		}
138535		return nil, &googleapi.Error{
138536			Code:   res.StatusCode,
138537			Header: res.Header,
138538		}
138539	}
138540	if err != nil {
138541		return nil, err
138542	}
138543	defer googleapi.CloseBody(res)
138544	if err := googleapi.CheckResponse(res); err != nil {
138545		return nil, err
138546	}
138547	ret := &Operation{
138548		ServerResponse: googleapi.ServerResponse{
138549			Header:         res.Header,
138550			HTTPStatusCode: res.StatusCode,
138551		},
138552	}
138553	target := &ret
138554	if err := gensupport.DecodeResponse(target, res); err != nil {
138555		return nil, err
138556	}
138557	return ret, nil
138558	// {
138559	//   "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.",
138560	//   "httpMethod": "POST",
138561	//   "id": "compute.regionInstanceGroupManagers.resize",
138562	//   "parameterOrder": [
138563	//     "project",
138564	//     "region",
138565	//     "instanceGroupManager",
138566	//     "size"
138567	//   ],
138568	//   "parameters": {
138569	//     "instanceGroupManager": {
138570	//       "description": "Name of the managed instance group.",
138571	//       "location": "path",
138572	//       "required": true,
138573	//       "type": "string"
138574	//     },
138575	//     "project": {
138576	//       "description": "Project ID for this request.",
138577	//       "location": "path",
138578	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138579	//       "required": true,
138580	//       "type": "string"
138581	//     },
138582	//     "region": {
138583	//       "description": "Name of the region scoping this request.",
138584	//       "location": "path",
138585	//       "required": true,
138586	//       "type": "string"
138587	//     },
138588	//     "requestId": {
138589	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138590	//       "location": "query",
138591	//       "type": "string"
138592	//     },
138593	//     "size": {
138594	//       "description": "Number of instances that should exist in this instance group manager.",
138595	//       "format": "int32",
138596	//       "location": "query",
138597	//       "minimum": "0",
138598	//       "required": true,
138599	//       "type": "integer"
138600	//     }
138601	//   },
138602	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
138603	//   "response": {
138604	//     "$ref": "Operation"
138605	//   },
138606	//   "scopes": [
138607	//     "https://www.googleapis.com/auth/cloud-platform",
138608	//     "https://www.googleapis.com/auth/compute"
138609	//   ]
138610	// }
138611
138612}
138613
138614// method id "compute.regionInstanceGroupManagers.setAutoHealingPolicies":
138615
138616type RegionInstanceGroupManagersSetAutoHealingPoliciesCall struct {
138617	s                                                *Service
138618	project                                          string
138619	region                                           string
138620	instanceGroupManager                             string
138621	regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest
138622	urlParams_                                       gensupport.URLParams
138623	ctx_                                             context.Context
138624	header_                                          http.Header
138625}
138626
138627// SetAutoHealingPolicies: Modifies the autohealing policy for the
138628// instances in this managed instance group. [Deprecated] This method is
138629// deprecated. Use regionInstanceGroupManagers.patch instead.
138630//
138631// - instanceGroupManager: Name of the managed instance group.
138632// - project: Project ID for this request.
138633// - region: Name of the region scoping this request.
138634func (r *RegionInstanceGroupManagersService) SetAutoHealingPolicies(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
138635	c := &RegionInstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138636	c.project = project
138637	c.region = region
138638	c.instanceGroupManager = instanceGroupManager
138639	c.regioninstancegroupmanagerssetautohealingrequest = regioninstancegroupmanagerssetautohealingrequest
138640	return c
138641}
138642
138643// RequestId sets the optional parameter "requestId": An optional
138644// request ID to identify requests. Specify a unique request ID so that
138645// if you must retry your request, the server will know to ignore the
138646// request if it has already been completed.
138647//
138648// For example, consider a situation where you make an initial request
138649// and the request times out. If you make the request again with the
138650// same request ID, the server can check if original operation with the
138651// same request ID was received, and if so, will ignore the second
138652// request. This prevents clients from accidentally creating duplicate
138653// commitments.
138654//
138655// The request ID must be a valid UUID with the exception that zero UUID
138656// is not supported (00000000-0000-0000-0000-000000000000).
138657func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
138658	c.urlParams_.Set("requestId", requestId)
138659	return c
138660}
138661
138662// Fields allows partial responses to be retrieved. See
138663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138664// for more information.
138665func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
138666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138667	return c
138668}
138669
138670// Context sets the context to be used in this call's Do method. Any
138671// pending HTTP request will be aborted if the provided context is
138672// canceled.
138673func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
138674	c.ctx_ = ctx
138675	return c
138676}
138677
138678// Header returns an http.Header that can be modified by the caller to
138679// add HTTP headers to the request.
138680func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
138681	if c.header_ == nil {
138682		c.header_ = make(http.Header)
138683	}
138684	return c.header_
138685}
138686
138687func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
138688	reqHeaders := make(http.Header)
138689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138690	for k, v := range c.header_ {
138691		reqHeaders[k] = v
138692	}
138693	reqHeaders.Set("User-Agent", c.s.userAgent())
138694	var body io.Reader = nil
138695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssetautohealingrequest)
138696	if err != nil {
138697		return nil, err
138698	}
138699	reqHeaders.Set("Content-Type", "application/json")
138700	c.urlParams_.Set("alt", alt)
138701	c.urlParams_.Set("prettyPrint", "false")
138702	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
138703	urls += "?" + c.urlParams_.Encode()
138704	req, err := http.NewRequest("POST", urls, body)
138705	if err != nil {
138706		return nil, err
138707	}
138708	req.Header = reqHeaders
138709	googleapi.Expand(req.URL, map[string]string{
138710		"project":              c.project,
138711		"region":               c.region,
138712		"instanceGroupManager": c.instanceGroupManager,
138713	})
138714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138715}
138716
138717// Do executes the "compute.regionInstanceGroupManagers.setAutoHealingPolicies" call.
138718// Exactly one of *Operation or error will be non-nil. Any non-2xx
138719// status code is an error. Response headers are in either
138720// *Operation.ServerResponse.Header or (if a response was returned at
138721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138722// to check whether the returned error was because
138723// http.StatusNotModified was returned.
138724func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138725	gensupport.SetOptions(c.urlParams_, opts...)
138726	res, err := c.doRequest("json")
138727	if res != nil && res.StatusCode == http.StatusNotModified {
138728		if res.Body != nil {
138729			res.Body.Close()
138730		}
138731		return nil, &googleapi.Error{
138732			Code:   res.StatusCode,
138733			Header: res.Header,
138734		}
138735	}
138736	if err != nil {
138737		return nil, err
138738	}
138739	defer googleapi.CloseBody(res)
138740	if err := googleapi.CheckResponse(res); err != nil {
138741		return nil, err
138742	}
138743	ret := &Operation{
138744		ServerResponse: googleapi.ServerResponse{
138745			Header:         res.Header,
138746			HTTPStatusCode: res.StatusCode,
138747		},
138748	}
138749	target := &ret
138750	if err := gensupport.DecodeResponse(target, res); err != nil {
138751		return nil, err
138752	}
138753	return ret, nil
138754	// {
138755	//   "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use regionInstanceGroupManagers.patch instead.",
138756	//   "httpMethod": "POST",
138757	//   "id": "compute.regionInstanceGroupManagers.setAutoHealingPolicies",
138758	//   "parameterOrder": [
138759	//     "project",
138760	//     "region",
138761	//     "instanceGroupManager"
138762	//   ],
138763	//   "parameters": {
138764	//     "instanceGroupManager": {
138765	//       "description": "Name of the managed instance group.",
138766	//       "location": "path",
138767	//       "required": true,
138768	//       "type": "string"
138769	//     },
138770	//     "project": {
138771	//       "description": "Project ID for this request.",
138772	//       "location": "path",
138773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138774	//       "required": true,
138775	//       "type": "string"
138776	//     },
138777	//     "region": {
138778	//       "description": "Name of the region scoping this request.",
138779	//       "location": "path",
138780	//       "required": true,
138781	//       "type": "string"
138782	//     },
138783	//     "requestId": {
138784	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138785	//       "location": "query",
138786	//       "type": "string"
138787	//     }
138788	//   },
138789	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
138790	//   "request": {
138791	//     "$ref": "RegionInstanceGroupManagersSetAutoHealingRequest"
138792	//   },
138793	//   "response": {
138794	//     "$ref": "Operation"
138795	//   },
138796	//   "scopes": [
138797	//     "https://www.googleapis.com/auth/cloud-platform",
138798	//     "https://www.googleapis.com/auth/compute"
138799	//   ]
138800	// }
138801
138802}
138803
138804// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
138805
138806type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
138807	s                                             *Service
138808	project                                       string
138809	region                                        string
138810	instanceGroupManager                          string
138811	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
138812	urlParams_                                    gensupport.URLParams
138813	ctx_                                          context.Context
138814	header_                                       http.Header
138815}
138816
138817// SetInstanceTemplate: Sets the instance template to use when creating
138818// new instances or recreating instances in this group. Existing
138819// instances are not affected.
138820//
138821// - instanceGroupManager: The name of the managed instance group.
138822// - project: Project ID for this request.
138823// - region: Name of the region scoping this request.
138824func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
138825	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138826	c.project = project
138827	c.region = region
138828	c.instanceGroupManager = instanceGroupManager
138829	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
138830	return c
138831}
138832
138833// RequestId sets the optional parameter "requestId": An optional
138834// request ID to identify requests. Specify a unique request ID so that
138835// if you must retry your request, the server will know to ignore the
138836// request if it has already been completed.
138837//
138838// For example, consider a situation where you make an initial request
138839// and the request times out. If you make the request again with the
138840// same request ID, the server can check if original operation with the
138841// same request ID was received, and if so, will ignore the second
138842// request. This prevents clients from accidentally creating duplicate
138843// commitments.
138844//
138845// The request ID must be a valid UUID with the exception that zero UUID
138846// is not supported (00000000-0000-0000-0000-000000000000).
138847func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
138848	c.urlParams_.Set("requestId", requestId)
138849	return c
138850}
138851
138852// Fields allows partial responses to be retrieved. See
138853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138854// for more information.
138855func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
138856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138857	return c
138858}
138859
138860// Context sets the context to be used in this call's Do method. Any
138861// pending HTTP request will be aborted if the provided context is
138862// canceled.
138863func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
138864	c.ctx_ = ctx
138865	return c
138866}
138867
138868// Header returns an http.Header that can be modified by the caller to
138869// add HTTP headers to the request.
138870func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
138871	if c.header_ == nil {
138872		c.header_ = make(http.Header)
138873	}
138874	return c.header_
138875}
138876
138877func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
138878	reqHeaders := make(http.Header)
138879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138880	for k, v := range c.header_ {
138881		reqHeaders[k] = v
138882	}
138883	reqHeaders.Set("User-Agent", c.s.userAgent())
138884	var body io.Reader = nil
138885	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
138886	if err != nil {
138887		return nil, err
138888	}
138889	reqHeaders.Set("Content-Type", "application/json")
138890	c.urlParams_.Set("alt", alt)
138891	c.urlParams_.Set("prettyPrint", "false")
138892	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
138893	urls += "?" + c.urlParams_.Encode()
138894	req, err := http.NewRequest("POST", urls, body)
138895	if err != nil {
138896		return nil, err
138897	}
138898	req.Header = reqHeaders
138899	googleapi.Expand(req.URL, map[string]string{
138900		"project":              c.project,
138901		"region":               c.region,
138902		"instanceGroupManager": c.instanceGroupManager,
138903	})
138904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138905}
138906
138907// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
138908// Exactly one of *Operation or error will be non-nil. Any non-2xx
138909// status code is an error. Response headers are in either
138910// *Operation.ServerResponse.Header or (if a response was returned at
138911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138912// to check whether the returned error was because
138913// http.StatusNotModified was returned.
138914func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138915	gensupport.SetOptions(c.urlParams_, opts...)
138916	res, err := c.doRequest("json")
138917	if res != nil && res.StatusCode == http.StatusNotModified {
138918		if res.Body != nil {
138919			res.Body.Close()
138920		}
138921		return nil, &googleapi.Error{
138922			Code:   res.StatusCode,
138923			Header: res.Header,
138924		}
138925	}
138926	if err != nil {
138927		return nil, err
138928	}
138929	defer googleapi.CloseBody(res)
138930	if err := googleapi.CheckResponse(res); err != nil {
138931		return nil, err
138932	}
138933	ret := &Operation{
138934		ServerResponse: googleapi.ServerResponse{
138935			Header:         res.Header,
138936			HTTPStatusCode: res.StatusCode,
138937		},
138938	}
138939	target := &ret
138940	if err := gensupport.DecodeResponse(target, res); err != nil {
138941		return nil, err
138942	}
138943	return ret, nil
138944	// {
138945	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
138946	//   "httpMethod": "POST",
138947	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
138948	//   "parameterOrder": [
138949	//     "project",
138950	//     "region",
138951	//     "instanceGroupManager"
138952	//   ],
138953	//   "parameters": {
138954	//     "instanceGroupManager": {
138955	//       "description": "The name of the managed instance group.",
138956	//       "location": "path",
138957	//       "required": true,
138958	//       "type": "string"
138959	//     },
138960	//     "project": {
138961	//       "description": "Project ID for this request.",
138962	//       "location": "path",
138963	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138964	//       "required": true,
138965	//       "type": "string"
138966	//     },
138967	//     "region": {
138968	//       "description": "Name of the region scoping this request.",
138969	//       "location": "path",
138970	//       "required": true,
138971	//       "type": "string"
138972	//     },
138973	//     "requestId": {
138974	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138975	//       "location": "query",
138976	//       "type": "string"
138977	//     }
138978	//   },
138979	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
138980	//   "request": {
138981	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
138982	//   },
138983	//   "response": {
138984	//     "$ref": "Operation"
138985	//   },
138986	//   "scopes": [
138987	//     "https://www.googleapis.com/auth/cloud-platform",
138988	//     "https://www.googleapis.com/auth/compute"
138989	//   ]
138990	// }
138991
138992}
138993
138994// method id "compute.regionInstanceGroupManagers.setTargetPools":
138995
138996type RegionInstanceGroupManagersSetTargetPoolsCall struct {
138997	s                                                *Service
138998	project                                          string
138999	region                                           string
139000	instanceGroupManager                             string
139001	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
139002	urlParams_                                       gensupport.URLParams
139003	ctx_                                             context.Context
139004	header_                                          http.Header
139005}
139006
139007// SetTargetPools: Modifies the target pools to which all new instances
139008// in this group are assigned. Existing instances in the group are not
139009// affected.
139010//
139011// - instanceGroupManager: Name of the managed instance group.
139012// - project: Project ID for this request.
139013// - region: Name of the region scoping this request.
139014func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
139015	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139016	c.project = project
139017	c.region = region
139018	c.instanceGroupManager = instanceGroupManager
139019	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
139020	return c
139021}
139022
139023// RequestId sets the optional parameter "requestId": An optional
139024// request ID to identify requests. Specify a unique request ID so that
139025// if you must retry your request, the server will know to ignore the
139026// request if it has already been completed.
139027//
139028// For example, consider a situation where you make an initial request
139029// and the request times out. If you make the request again with the
139030// same request ID, the server can check if original operation with the
139031// same request ID was received, and if so, will ignore the second
139032// request. This prevents clients from accidentally creating duplicate
139033// commitments.
139034//
139035// The request ID must be a valid UUID with the exception that zero UUID
139036// is not supported (00000000-0000-0000-0000-000000000000).
139037func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
139038	c.urlParams_.Set("requestId", requestId)
139039	return c
139040}
139041
139042// Fields allows partial responses to be retrieved. See
139043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139044// for more information.
139045func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
139046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139047	return c
139048}
139049
139050// Context sets the context to be used in this call's Do method. Any
139051// pending HTTP request will be aborted if the provided context is
139052// canceled.
139053func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
139054	c.ctx_ = ctx
139055	return c
139056}
139057
139058// Header returns an http.Header that can be modified by the caller to
139059// add HTTP headers to the request.
139060func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
139061	if c.header_ == nil {
139062		c.header_ = make(http.Header)
139063	}
139064	return c.header_
139065}
139066
139067func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
139068	reqHeaders := make(http.Header)
139069	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139070	for k, v := range c.header_ {
139071		reqHeaders[k] = v
139072	}
139073	reqHeaders.Set("User-Agent", c.s.userAgent())
139074	var body io.Reader = nil
139075	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
139076	if err != nil {
139077		return nil, err
139078	}
139079	reqHeaders.Set("Content-Type", "application/json")
139080	c.urlParams_.Set("alt", alt)
139081	c.urlParams_.Set("prettyPrint", "false")
139082	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
139083	urls += "?" + c.urlParams_.Encode()
139084	req, err := http.NewRequest("POST", urls, body)
139085	if err != nil {
139086		return nil, err
139087	}
139088	req.Header = reqHeaders
139089	googleapi.Expand(req.URL, map[string]string{
139090		"project":              c.project,
139091		"region":               c.region,
139092		"instanceGroupManager": c.instanceGroupManager,
139093	})
139094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139095}
139096
139097// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
139098// Exactly one of *Operation or error will be non-nil. Any non-2xx
139099// status code is an error. Response headers are in either
139100// *Operation.ServerResponse.Header or (if a response was returned at
139101// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139102// to check whether the returned error was because
139103// http.StatusNotModified was returned.
139104func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139105	gensupport.SetOptions(c.urlParams_, opts...)
139106	res, err := c.doRequest("json")
139107	if res != nil && res.StatusCode == http.StatusNotModified {
139108		if res.Body != nil {
139109			res.Body.Close()
139110		}
139111		return nil, &googleapi.Error{
139112			Code:   res.StatusCode,
139113			Header: res.Header,
139114		}
139115	}
139116	if err != nil {
139117		return nil, err
139118	}
139119	defer googleapi.CloseBody(res)
139120	if err := googleapi.CheckResponse(res); err != nil {
139121		return nil, err
139122	}
139123	ret := &Operation{
139124		ServerResponse: googleapi.ServerResponse{
139125			Header:         res.Header,
139126			HTTPStatusCode: res.StatusCode,
139127		},
139128	}
139129	target := &ret
139130	if err := gensupport.DecodeResponse(target, res); err != nil {
139131		return nil, err
139132	}
139133	return ret, nil
139134	// {
139135	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
139136	//   "httpMethod": "POST",
139137	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
139138	//   "parameterOrder": [
139139	//     "project",
139140	//     "region",
139141	//     "instanceGroupManager"
139142	//   ],
139143	//   "parameters": {
139144	//     "instanceGroupManager": {
139145	//       "description": "Name of the managed instance group.",
139146	//       "location": "path",
139147	//       "required": true,
139148	//       "type": "string"
139149	//     },
139150	//     "project": {
139151	//       "description": "Project ID for this request.",
139152	//       "location": "path",
139153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139154	//       "required": true,
139155	//       "type": "string"
139156	//     },
139157	//     "region": {
139158	//       "description": "Name of the region scoping this request.",
139159	//       "location": "path",
139160	//       "required": true,
139161	//       "type": "string"
139162	//     },
139163	//     "requestId": {
139164	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139165	//       "location": "query",
139166	//       "type": "string"
139167	//     }
139168	//   },
139169	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
139170	//   "request": {
139171	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
139172	//   },
139173	//   "response": {
139174	//     "$ref": "Operation"
139175	//   },
139176	//   "scopes": [
139177	//     "https://www.googleapis.com/auth/cloud-platform",
139178	//     "https://www.googleapis.com/auth/compute"
139179	//   ]
139180	// }
139181
139182}
139183
139184// method id "compute.regionInstanceGroupManagers.testIamPermissions":
139185
139186type RegionInstanceGroupManagersTestIamPermissionsCall struct {
139187	s                      *Service
139188	project                string
139189	region                 string
139190	resource               string
139191	testpermissionsrequest *TestPermissionsRequest
139192	urlParams_             gensupport.URLParams
139193	ctx_                   context.Context
139194	header_                http.Header
139195}
139196
139197// TestIamPermissions: Returns permissions that a caller has on the
139198// specified resource.
139199//
139200// - project: Project ID for this request.
139201// - region: The name of the region for this request.
139202// - resource: Name or id of the resource for this request.
139203func (r *RegionInstanceGroupManagersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupManagersTestIamPermissionsCall {
139204	c := &RegionInstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139205	c.project = project
139206	c.region = region
139207	c.resource = resource
139208	c.testpermissionsrequest = testpermissionsrequest
139209	return c
139210}
139211
139212// Fields allows partial responses to be retrieved. See
139213// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139214// for more information.
139215func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersTestIamPermissionsCall {
139216	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139217	return c
139218}
139219
139220// Context sets the context to be used in this call's Do method. Any
139221// pending HTTP request will be aborted if the provided context is
139222// canceled.
139223func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupManagersTestIamPermissionsCall {
139224	c.ctx_ = ctx
139225	return c
139226}
139227
139228// Header returns an http.Header that can be modified by the caller to
139229// add HTTP headers to the request.
139230func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
139231	if c.header_ == nil {
139232		c.header_ = make(http.Header)
139233	}
139234	return c.header_
139235}
139236
139237func (c *RegionInstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
139238	reqHeaders := make(http.Header)
139239	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139240	for k, v := range c.header_ {
139241		reqHeaders[k] = v
139242	}
139243	reqHeaders.Set("User-Agent", c.s.userAgent())
139244	var body io.Reader = nil
139245	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
139246	if err != nil {
139247		return nil, err
139248	}
139249	reqHeaders.Set("Content-Type", "application/json")
139250	c.urlParams_.Set("alt", alt)
139251	c.urlParams_.Set("prettyPrint", "false")
139252	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions")
139253	urls += "?" + c.urlParams_.Encode()
139254	req, err := http.NewRequest("POST", urls, body)
139255	if err != nil {
139256		return nil, err
139257	}
139258	req.Header = reqHeaders
139259	googleapi.Expand(req.URL, map[string]string{
139260		"project":  c.project,
139261		"region":   c.region,
139262		"resource": c.resource,
139263	})
139264	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139265}
139266
139267// Do executes the "compute.regionInstanceGroupManagers.testIamPermissions" call.
139268// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
139269// non-2xx status code is an error. Response headers are in either
139270// *TestPermissionsResponse.ServerResponse.Header or (if a response was
139271// returned at all) in error.(*googleapi.Error).Header. Use
139272// googleapi.IsNotModified to check whether the returned error was
139273// because http.StatusNotModified was returned.
139274func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
139275	gensupport.SetOptions(c.urlParams_, opts...)
139276	res, err := c.doRequest("json")
139277	if res != nil && res.StatusCode == http.StatusNotModified {
139278		if res.Body != nil {
139279			res.Body.Close()
139280		}
139281		return nil, &googleapi.Error{
139282			Code:   res.StatusCode,
139283			Header: res.Header,
139284		}
139285	}
139286	if err != nil {
139287		return nil, err
139288	}
139289	defer googleapi.CloseBody(res)
139290	if err := googleapi.CheckResponse(res); err != nil {
139291		return nil, err
139292	}
139293	ret := &TestPermissionsResponse{
139294		ServerResponse: googleapi.ServerResponse{
139295			Header:         res.Header,
139296			HTTPStatusCode: res.StatusCode,
139297		},
139298	}
139299	target := &ret
139300	if err := gensupport.DecodeResponse(target, res); err != nil {
139301		return nil, err
139302	}
139303	return ret, nil
139304	// {
139305	//   "description": "Returns permissions that a caller has on the specified resource.",
139306	//   "httpMethod": "POST",
139307	//   "id": "compute.regionInstanceGroupManagers.testIamPermissions",
139308	//   "parameterOrder": [
139309	//     "project",
139310	//     "region",
139311	//     "resource"
139312	//   ],
139313	//   "parameters": {
139314	//     "project": {
139315	//       "description": "Project ID for this request.",
139316	//       "location": "path",
139317	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139318	//       "required": true,
139319	//       "type": "string"
139320	//     },
139321	//     "region": {
139322	//       "description": "The name of the region for this request.",
139323	//       "location": "path",
139324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139325	//       "required": true,
139326	//       "type": "string"
139327	//     },
139328	//     "resource": {
139329	//       "description": "Name or id of the resource for this request.",
139330	//       "location": "path",
139331	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139332	//       "required": true,
139333	//       "type": "string"
139334	//     }
139335	//   },
139336	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions",
139337	//   "request": {
139338	//     "$ref": "TestPermissionsRequest"
139339	//   },
139340	//   "response": {
139341	//     "$ref": "TestPermissionsResponse"
139342	//   },
139343	//   "scopes": [
139344	//     "https://www.googleapis.com/auth/cloud-platform",
139345	//     "https://www.googleapis.com/auth/compute",
139346	//     "https://www.googleapis.com/auth/compute.readonly"
139347	//   ]
139348	// }
139349
139350}
139351
139352// method id "compute.regionInstanceGroupManagers.update":
139353
139354type RegionInstanceGroupManagersUpdateCall struct {
139355	s                    *Service
139356	project              string
139357	region               string
139358	instanceGroupManager string
139359	instancegroupmanager *InstanceGroupManager
139360	urlParams_           gensupport.URLParams
139361	ctx_                 context.Context
139362	header_              http.Header
139363}
139364
139365// Update: Updates a managed instance group using the information that
139366// you specify in the request. This operation is marked as DONE when the
139367// group is updated even if the instances in the group have not yet been
139368// updated. You must separately verify the status of the individual
139369// instances with the listmanagedinstances method.
139370//
139371// - instanceGroupManager: The name of the instance group manager.
139372// - project: Project ID for this request.
139373// - region: Name of the region scoping this request.
139374func (r *RegionInstanceGroupManagersService) Update(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersUpdateCall {
139375	c := &RegionInstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139376	c.project = project
139377	c.region = region
139378	c.instanceGroupManager = instanceGroupManager
139379	c.instancegroupmanager = instancegroupmanager
139380	return c
139381}
139382
139383// RequestId sets the optional parameter "requestId": An optional
139384// request ID to identify requests. Specify a unique request ID so that
139385// if you must retry your request, the server will know to ignore the
139386// request if it has already been completed.
139387//
139388// For example, consider a situation where you make an initial request
139389// and the request times out. If you make the request again with the
139390// same request ID, the server can check if original operation with the
139391// same request ID was received, and if so, will ignore the second
139392// request. This prevents clients from accidentally creating duplicate
139393// commitments.
139394//
139395// The request ID must be a valid UUID with the exception that zero UUID
139396// is not supported (00000000-0000-0000-0000-000000000000).
139397func (c *RegionInstanceGroupManagersUpdateCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdateCall {
139398	c.urlParams_.Set("requestId", requestId)
139399	return c
139400}
139401
139402// Fields allows partial responses to be retrieved. See
139403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139404// for more information.
139405func (c *RegionInstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdateCall {
139406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139407	return c
139408}
139409
139410// Context sets the context to be used in this call's Do method. Any
139411// pending HTTP request will be aborted if the provided context is
139412// canceled.
139413func (c *RegionInstanceGroupManagersUpdateCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdateCall {
139414	c.ctx_ = ctx
139415	return c
139416}
139417
139418// Header returns an http.Header that can be modified by the caller to
139419// add HTTP headers to the request.
139420func (c *RegionInstanceGroupManagersUpdateCall) Header() http.Header {
139421	if c.header_ == nil {
139422		c.header_ = make(http.Header)
139423	}
139424	return c.header_
139425}
139426
139427func (c *RegionInstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
139428	reqHeaders := make(http.Header)
139429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139430	for k, v := range c.header_ {
139431		reqHeaders[k] = v
139432	}
139433	reqHeaders.Set("User-Agent", c.s.userAgent())
139434	var body io.Reader = nil
139435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
139436	if err != nil {
139437		return nil, err
139438	}
139439	reqHeaders.Set("Content-Type", "application/json")
139440	c.urlParams_.Set("alt", alt)
139441	c.urlParams_.Set("prettyPrint", "false")
139442	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
139443	urls += "?" + c.urlParams_.Encode()
139444	req, err := http.NewRequest("PUT", urls, body)
139445	if err != nil {
139446		return nil, err
139447	}
139448	req.Header = reqHeaders
139449	googleapi.Expand(req.URL, map[string]string{
139450		"project":              c.project,
139451		"region":               c.region,
139452		"instanceGroupManager": c.instanceGroupManager,
139453	})
139454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139455}
139456
139457// Do executes the "compute.regionInstanceGroupManagers.update" call.
139458// Exactly one of *Operation or error will be non-nil. Any non-2xx
139459// status code is an error. Response headers are in either
139460// *Operation.ServerResponse.Header or (if a response was returned at
139461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139462// to check whether the returned error was because
139463// http.StatusNotModified was returned.
139464func (c *RegionInstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139465	gensupport.SetOptions(c.urlParams_, opts...)
139466	res, err := c.doRequest("json")
139467	if res != nil && res.StatusCode == http.StatusNotModified {
139468		if res.Body != nil {
139469			res.Body.Close()
139470		}
139471		return nil, &googleapi.Error{
139472			Code:   res.StatusCode,
139473			Header: res.Header,
139474		}
139475	}
139476	if err != nil {
139477		return nil, err
139478	}
139479	defer googleapi.CloseBody(res)
139480	if err := googleapi.CheckResponse(res); err != nil {
139481		return nil, err
139482	}
139483	ret := &Operation{
139484		ServerResponse: googleapi.ServerResponse{
139485			Header:         res.Header,
139486			HTTPStatusCode: res.StatusCode,
139487		},
139488	}
139489	target := &ret
139490	if err := gensupport.DecodeResponse(target, res); err != nil {
139491		return nil, err
139492	}
139493	return ret, nil
139494	// {
139495	//   "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.",
139496	//   "httpMethod": "PUT",
139497	//   "id": "compute.regionInstanceGroupManagers.update",
139498	//   "parameterOrder": [
139499	//     "project",
139500	//     "region",
139501	//     "instanceGroupManager"
139502	//   ],
139503	//   "parameters": {
139504	//     "instanceGroupManager": {
139505	//       "description": "The name of the instance group manager.",
139506	//       "location": "path",
139507	//       "required": true,
139508	//       "type": "string"
139509	//     },
139510	//     "project": {
139511	//       "description": "Project ID for this request.",
139512	//       "location": "path",
139513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139514	//       "required": true,
139515	//       "type": "string"
139516	//     },
139517	//     "region": {
139518	//       "description": "Name of the region scoping this request.",
139519	//       "location": "path",
139520	//       "required": true,
139521	//       "type": "string"
139522	//     },
139523	//     "requestId": {
139524	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139525	//       "location": "query",
139526	//       "type": "string"
139527	//     }
139528	//   },
139529	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
139530	//   "request": {
139531	//     "$ref": "InstanceGroupManager"
139532	//   },
139533	//   "response": {
139534	//     "$ref": "Operation"
139535	//   },
139536	//   "scopes": [
139537	//     "https://www.googleapis.com/auth/cloud-platform",
139538	//     "https://www.googleapis.com/auth/compute"
139539	//   ]
139540	// }
139541
139542}
139543
139544// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
139545
139546type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
139547	s                                                 *Service
139548	project                                           string
139549	region                                            string
139550	instanceGroupManager                              string
139551	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
139552	urlParams_                                        gensupport.URLParams
139553	ctx_                                              context.Context
139554	header_                                           http.Header
139555}
139556
139557// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
139558// the managed instance group. perInstanceConfig.name serves as a key
139559// used to distinguish whether to perform insert or patch.
139560//
139561// - instanceGroupManager: The name of the managed instance group. It
139562//   should conform to RFC1035.
139563// - project: Project ID for this request.
139564// - region: Name of the region scoping this request, should conform to
139565//   RFC1035.
139566func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
139567	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139568	c.project = project
139569	c.region = region
139570	c.instanceGroupManager = instanceGroupManager
139571	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
139572	return c
139573}
139574
139575// RequestId sets the optional parameter "requestId": An optional
139576// request ID to identify requests. Specify a unique request ID so that
139577// if you must retry your request, the server will know to ignore the
139578// request if it has already been completed.
139579//
139580// For example, consider a situation where you make an initial request
139581// and the request times out. If you make the request again with the
139582// same request ID, the server can check if original operation with the
139583// same request ID was received, and if so, will ignore the second
139584// request. This prevents clients from accidentally creating duplicate
139585// commitments.
139586//
139587// The request ID must be a valid UUID with the exception that zero UUID
139588// is not supported (00000000-0000-0000-0000-000000000000).
139589func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
139590	c.urlParams_.Set("requestId", requestId)
139591	return c
139592}
139593
139594// Fields allows partial responses to be retrieved. See
139595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139596// for more information.
139597func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
139598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139599	return c
139600}
139601
139602// Context sets the context to be used in this call's Do method. Any
139603// pending HTTP request will be aborted if the provided context is
139604// canceled.
139605func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
139606	c.ctx_ = ctx
139607	return c
139608}
139609
139610// Header returns an http.Header that can be modified by the caller to
139611// add HTTP headers to the request.
139612func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
139613	if c.header_ == nil {
139614		c.header_ = make(http.Header)
139615	}
139616	return c.header_
139617}
139618
139619func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
139620	reqHeaders := make(http.Header)
139621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139622	for k, v := range c.header_ {
139623		reqHeaders[k] = v
139624	}
139625	reqHeaders.Set("User-Agent", c.s.userAgent())
139626	var body io.Reader = nil
139627	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
139628	if err != nil {
139629		return nil, err
139630	}
139631	reqHeaders.Set("Content-Type", "application/json")
139632	c.urlParams_.Set("alt", alt)
139633	c.urlParams_.Set("prettyPrint", "false")
139634	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
139635	urls += "?" + c.urlParams_.Encode()
139636	req, err := http.NewRequest("POST", urls, body)
139637	if err != nil {
139638		return nil, err
139639	}
139640	req.Header = reqHeaders
139641	googleapi.Expand(req.URL, map[string]string{
139642		"project":              c.project,
139643		"region":               c.region,
139644		"instanceGroupManager": c.instanceGroupManager,
139645	})
139646	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139647}
139648
139649// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
139650// Exactly one of *Operation or error will be non-nil. Any non-2xx
139651// status code is an error. Response headers are in either
139652// *Operation.ServerResponse.Header or (if a response was returned at
139653// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139654// to check whether the returned error was because
139655// http.StatusNotModified was returned.
139656func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139657	gensupport.SetOptions(c.urlParams_, opts...)
139658	res, err := c.doRequest("json")
139659	if res != nil && res.StatusCode == http.StatusNotModified {
139660		if res.Body != nil {
139661			res.Body.Close()
139662		}
139663		return nil, &googleapi.Error{
139664			Code:   res.StatusCode,
139665			Header: res.Header,
139666		}
139667	}
139668	if err != nil {
139669		return nil, err
139670	}
139671	defer googleapi.CloseBody(res)
139672	if err := googleapi.CheckResponse(res); err != nil {
139673		return nil, err
139674	}
139675	ret := &Operation{
139676		ServerResponse: googleapi.ServerResponse{
139677			Header:         res.Header,
139678			HTTPStatusCode: res.StatusCode,
139679		},
139680	}
139681	target := &ret
139682	if err := gensupport.DecodeResponse(target, res); err != nil {
139683		return nil, err
139684	}
139685	return ret, nil
139686	// {
139687	//   "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.",
139688	//   "httpMethod": "POST",
139689	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
139690	//   "parameterOrder": [
139691	//     "project",
139692	//     "region",
139693	//     "instanceGroupManager"
139694	//   ],
139695	//   "parameters": {
139696	//     "instanceGroupManager": {
139697	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
139698	//       "location": "path",
139699	//       "required": true,
139700	//       "type": "string"
139701	//     },
139702	//     "project": {
139703	//       "description": "Project ID for this request.",
139704	//       "location": "path",
139705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139706	//       "required": true,
139707	//       "type": "string"
139708	//     },
139709	//     "region": {
139710	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
139711	//       "location": "path",
139712	//       "required": true,
139713	//       "type": "string"
139714	//     },
139715	//     "requestId": {
139716	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139717	//       "location": "query",
139718	//       "type": "string"
139719	//     }
139720	//   },
139721	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
139722	//   "request": {
139723	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
139724	//   },
139725	//   "response": {
139726	//     "$ref": "Operation"
139727	//   },
139728	//   "scopes": [
139729	//     "https://www.googleapis.com/auth/cloud-platform",
139730	//     "https://www.googleapis.com/auth/compute"
139731	//   ]
139732	// }
139733
139734}
139735
139736// method id "compute.regionInstanceGroups.get":
139737
139738type RegionInstanceGroupsGetCall struct {
139739	s             *Service
139740	project       string
139741	region        string
139742	instanceGroup string
139743	urlParams_    gensupport.URLParams
139744	ifNoneMatch_  string
139745	ctx_          context.Context
139746	header_       http.Header
139747}
139748
139749// Get: Returns the specified instance group resource.
139750//
139751// - instanceGroup: Name of the instance group resource to return.
139752// - project: Project ID for this request.
139753// - region: Name of the region scoping this request.
139754func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
139755	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139756	c.project = project
139757	c.region = region
139758	c.instanceGroup = instanceGroup
139759	return c
139760}
139761
139762// Fields allows partial responses to be retrieved. See
139763// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139764// for more information.
139765func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
139766	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139767	return c
139768}
139769
139770// IfNoneMatch sets the optional parameter which makes the operation
139771// fail if the object's ETag matches the given value. This is useful for
139772// getting updates only after the object has changed since the last
139773// request. Use googleapi.IsNotModified to check whether the response
139774// error from Do is the result of In-None-Match.
139775func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
139776	c.ifNoneMatch_ = entityTag
139777	return c
139778}
139779
139780// Context sets the context to be used in this call's Do method. Any
139781// pending HTTP request will be aborted if the provided context is
139782// canceled.
139783func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
139784	c.ctx_ = ctx
139785	return c
139786}
139787
139788// Header returns an http.Header that can be modified by the caller to
139789// add HTTP headers to the request.
139790func (c *RegionInstanceGroupsGetCall) Header() http.Header {
139791	if c.header_ == nil {
139792		c.header_ = make(http.Header)
139793	}
139794	return c.header_
139795}
139796
139797func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
139798	reqHeaders := make(http.Header)
139799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139800	for k, v := range c.header_ {
139801		reqHeaders[k] = v
139802	}
139803	reqHeaders.Set("User-Agent", c.s.userAgent())
139804	if c.ifNoneMatch_ != "" {
139805		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139806	}
139807	var body io.Reader = nil
139808	c.urlParams_.Set("alt", alt)
139809	c.urlParams_.Set("prettyPrint", "false")
139810	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}")
139811	urls += "?" + c.urlParams_.Encode()
139812	req, err := http.NewRequest("GET", urls, body)
139813	if err != nil {
139814		return nil, err
139815	}
139816	req.Header = reqHeaders
139817	googleapi.Expand(req.URL, map[string]string{
139818		"project":       c.project,
139819		"region":        c.region,
139820		"instanceGroup": c.instanceGroup,
139821	})
139822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139823}
139824
139825// Do executes the "compute.regionInstanceGroups.get" call.
139826// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
139827// status code is an error. Response headers are in either
139828// *InstanceGroup.ServerResponse.Header or (if a response was returned
139829// at all) in error.(*googleapi.Error).Header. Use
139830// googleapi.IsNotModified to check whether the returned error was
139831// because http.StatusNotModified was returned.
139832func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
139833	gensupport.SetOptions(c.urlParams_, opts...)
139834	res, err := c.doRequest("json")
139835	if res != nil && res.StatusCode == http.StatusNotModified {
139836		if res.Body != nil {
139837			res.Body.Close()
139838		}
139839		return nil, &googleapi.Error{
139840			Code:   res.StatusCode,
139841			Header: res.Header,
139842		}
139843	}
139844	if err != nil {
139845		return nil, err
139846	}
139847	defer googleapi.CloseBody(res)
139848	if err := googleapi.CheckResponse(res); err != nil {
139849		return nil, err
139850	}
139851	ret := &InstanceGroup{
139852		ServerResponse: googleapi.ServerResponse{
139853			Header:         res.Header,
139854			HTTPStatusCode: res.StatusCode,
139855		},
139856	}
139857	target := &ret
139858	if err := gensupport.DecodeResponse(target, res); err != nil {
139859		return nil, err
139860	}
139861	return ret, nil
139862	// {
139863	//   "description": "Returns the specified instance group resource.",
139864	//   "httpMethod": "GET",
139865	//   "id": "compute.regionInstanceGroups.get",
139866	//   "parameterOrder": [
139867	//     "project",
139868	//     "region",
139869	//     "instanceGroup"
139870	//   ],
139871	//   "parameters": {
139872	//     "instanceGroup": {
139873	//       "description": "Name of the instance group resource to return.",
139874	//       "location": "path",
139875	//       "required": true,
139876	//       "type": "string"
139877	//     },
139878	//     "project": {
139879	//       "description": "Project ID for this request.",
139880	//       "location": "path",
139881	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139882	//       "required": true,
139883	//       "type": "string"
139884	//     },
139885	//     "region": {
139886	//       "description": "Name of the region scoping this request.",
139887	//       "location": "path",
139888	//       "required": true,
139889	//       "type": "string"
139890	//     }
139891	//   },
139892	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
139893	//   "response": {
139894	//     "$ref": "InstanceGroup"
139895	//   },
139896	//   "scopes": [
139897	//     "https://www.googleapis.com/auth/cloud-platform",
139898	//     "https://www.googleapis.com/auth/compute",
139899	//     "https://www.googleapis.com/auth/compute.readonly"
139900	//   ]
139901	// }
139902
139903}
139904
139905// method id "compute.regionInstanceGroups.list":
139906
139907type RegionInstanceGroupsListCall struct {
139908	s            *Service
139909	project      string
139910	region       string
139911	urlParams_   gensupport.URLParams
139912	ifNoneMatch_ string
139913	ctx_         context.Context
139914	header_      http.Header
139915}
139916
139917// List: Retrieves the list of instance group resources contained within
139918// the specified region.
139919//
139920// - project: Project ID for this request.
139921// - region: Name of the region scoping this request.
139922func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
139923	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139924	c.project = project
139925	c.region = region
139926	return c
139927}
139928
139929// Filter sets the optional parameter "filter": A filter expression that
139930// filters resources listed in the response. The expression must specify
139931// the field name, a comparison operator, and the value that you want to
139932// use for filtering. The value must be a string, a number, or a
139933// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139934// `<`.
139935//
139936// For example, if you are filtering Compute Engine instances, you can
139937// exclude instances named `example-instance` by specifying `name !=
139938// example-instance`.
139939//
139940// You can also filter nested fields. For example, you could specify
139941// `scheduling.automaticRestart = false` to include instances only if
139942// they are not scheduled for automatic restarts. You can use filtering
139943// on nested fields to filter based on resource labels.
139944//
139945// To filter on multiple expressions, provide each separate expression
139946// within parentheses. For example: ``` (scheduling.automaticRestart =
139947// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
139948// is an `AND` expression. However, you can include `AND` and `OR`
139949// expressions explicitly. For example: ``` (cpuPlatform = "Intel
139950// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
139951// (scheduling.automaticRestart = true) ```
139952func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
139953	c.urlParams_.Set("filter", filter)
139954	return c
139955}
139956
139957// MaxResults sets the optional parameter "maxResults": The maximum
139958// number of results per page that should be returned. If the number of
139959// available results is larger than `maxResults`, Compute Engine returns
139960// a `nextPageToken` that can be used to get the next page of results in
139961// subsequent list requests. Acceptable values are `0` to `500`,
139962// inclusive. (Default: `500`)
139963func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
139964	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139965	return c
139966}
139967
139968// OrderBy sets the optional parameter "orderBy": Sorts list results by
139969// a certain order. By default, results are returned in alphanumerical
139970// order based on the resource name.
139971//
139972// You can also sort results in descending order based on the creation
139973// timestamp using `orderBy="creationTimestamp desc". This sorts
139974// results based on the `creationTimestamp` field in reverse
139975// chronological order (newest result first). Use this to sort resources
139976// like operations so that the newest operation is returned
139977// first.
139978//
139979// Currently, only sorting by `name` or `creationTimestamp desc` is
139980// supported.
139981func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
139982	c.urlParams_.Set("orderBy", orderBy)
139983	return c
139984}
139985
139986// PageToken sets the optional parameter "pageToken": Specifies a page
139987// token to use. Set `pageToken` to the `nextPageToken` returned by a
139988// previous list request to get the next page of results.
139989func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
139990	c.urlParams_.Set("pageToken", pageToken)
139991	return c
139992}
139993
139994// ReturnPartialSuccess sets the optional parameter
139995// "returnPartialSuccess": Opt-in for partial success behavior which
139996// provides partial results in case of failure. The default value is
139997// false.
139998func (c *RegionInstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListCall {
139999	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
140000	return c
140001}
140002
140003// Fields allows partial responses to be retrieved. See
140004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140005// for more information.
140006func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
140007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140008	return c
140009}
140010
140011// IfNoneMatch sets the optional parameter which makes the operation
140012// fail if the object's ETag matches the given value. This is useful for
140013// getting updates only after the object has changed since the last
140014// request. Use googleapi.IsNotModified to check whether the response
140015// error from Do is the result of In-None-Match.
140016func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
140017	c.ifNoneMatch_ = entityTag
140018	return c
140019}
140020
140021// Context sets the context to be used in this call's Do method. Any
140022// pending HTTP request will be aborted if the provided context is
140023// canceled.
140024func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
140025	c.ctx_ = ctx
140026	return c
140027}
140028
140029// Header returns an http.Header that can be modified by the caller to
140030// add HTTP headers to the request.
140031func (c *RegionInstanceGroupsListCall) Header() http.Header {
140032	if c.header_ == nil {
140033		c.header_ = make(http.Header)
140034	}
140035	return c.header_
140036}
140037
140038func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
140039	reqHeaders := make(http.Header)
140040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140041	for k, v := range c.header_ {
140042		reqHeaders[k] = v
140043	}
140044	reqHeaders.Set("User-Agent", c.s.userAgent())
140045	if c.ifNoneMatch_ != "" {
140046		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140047	}
140048	var body io.Reader = nil
140049	c.urlParams_.Set("alt", alt)
140050	c.urlParams_.Set("prettyPrint", "false")
140051	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups")
140052	urls += "?" + c.urlParams_.Encode()
140053	req, err := http.NewRequest("GET", urls, body)
140054	if err != nil {
140055		return nil, err
140056	}
140057	req.Header = reqHeaders
140058	googleapi.Expand(req.URL, map[string]string{
140059		"project": c.project,
140060		"region":  c.region,
140061	})
140062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140063}
140064
140065// Do executes the "compute.regionInstanceGroups.list" call.
140066// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
140067// non-2xx status code is an error. Response headers are in either
140068// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
140069// returned at all) in error.(*googleapi.Error).Header. Use
140070// googleapi.IsNotModified to check whether the returned error was
140071// because http.StatusNotModified was returned.
140072func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
140073	gensupport.SetOptions(c.urlParams_, opts...)
140074	res, err := c.doRequest("json")
140075	if res != nil && res.StatusCode == http.StatusNotModified {
140076		if res.Body != nil {
140077			res.Body.Close()
140078		}
140079		return nil, &googleapi.Error{
140080			Code:   res.StatusCode,
140081			Header: res.Header,
140082		}
140083	}
140084	if err != nil {
140085		return nil, err
140086	}
140087	defer googleapi.CloseBody(res)
140088	if err := googleapi.CheckResponse(res); err != nil {
140089		return nil, err
140090	}
140091	ret := &RegionInstanceGroupList{
140092		ServerResponse: googleapi.ServerResponse{
140093			Header:         res.Header,
140094			HTTPStatusCode: res.StatusCode,
140095		},
140096	}
140097	target := &ret
140098	if err := gensupport.DecodeResponse(target, res); err != nil {
140099		return nil, err
140100	}
140101	return ret, nil
140102	// {
140103	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
140104	//   "httpMethod": "GET",
140105	//   "id": "compute.regionInstanceGroups.list",
140106	//   "parameterOrder": [
140107	//     "project",
140108	//     "region"
140109	//   ],
140110	//   "parameters": {
140111	//     "filter": {
140112	//       "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) ```",
140113	//       "location": "query",
140114	//       "type": "string"
140115	//     },
140116	//     "maxResults": {
140117	//       "default": "500",
140118	//       "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`)",
140119	//       "format": "uint32",
140120	//       "location": "query",
140121	//       "minimum": "0",
140122	//       "type": "integer"
140123	//     },
140124	//     "orderBy": {
140125	//       "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.",
140126	//       "location": "query",
140127	//       "type": "string"
140128	//     },
140129	//     "pageToken": {
140130	//       "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.",
140131	//       "location": "query",
140132	//       "type": "string"
140133	//     },
140134	//     "project": {
140135	//       "description": "Project ID for this request.",
140136	//       "location": "path",
140137	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140138	//       "required": true,
140139	//       "type": "string"
140140	//     },
140141	//     "region": {
140142	//       "description": "Name of the region scoping this request.",
140143	//       "location": "path",
140144	//       "required": true,
140145	//       "type": "string"
140146	//     },
140147	//     "returnPartialSuccess": {
140148	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140149	//       "location": "query",
140150	//       "type": "boolean"
140151	//     }
140152	//   },
140153	//   "path": "projects/{project}/regions/{region}/instanceGroups",
140154	//   "response": {
140155	//     "$ref": "RegionInstanceGroupList"
140156	//   },
140157	//   "scopes": [
140158	//     "https://www.googleapis.com/auth/cloud-platform",
140159	//     "https://www.googleapis.com/auth/compute",
140160	//     "https://www.googleapis.com/auth/compute.readonly"
140161	//   ]
140162	// }
140163
140164}
140165
140166// Pages invokes f for each page of results.
140167// A non-nil error returned from f will halt the iteration.
140168// The provided context supersedes any context provided to the Context method.
140169func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
140170	c.ctx_ = ctx
140171	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140172	for {
140173		x, err := c.Do()
140174		if err != nil {
140175			return err
140176		}
140177		if err := f(x); err != nil {
140178			return err
140179		}
140180		if x.NextPageToken == "" {
140181			return nil
140182		}
140183		c.PageToken(x.NextPageToken)
140184	}
140185}
140186
140187// method id "compute.regionInstanceGroups.listInstances":
140188
140189type RegionInstanceGroupsListInstancesCall struct {
140190	s                                        *Service
140191	project                                  string
140192	region                                   string
140193	instanceGroup                            string
140194	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
140195	urlParams_                               gensupport.URLParams
140196	ctx_                                     context.Context
140197	header_                                  http.Header
140198}
140199
140200// ListInstances: Lists the instances in the specified instance group
140201// and displays information about the named ports. Depending on the
140202// specified options, this method can list all instances or only the
140203// instances that are running. The orderBy query parameter is not
140204// supported.
140205//
140206// - instanceGroup: Name of the regional instance group for which we
140207//   want to list the instances.
140208// - project: Project ID for this request.
140209// - region: Name of the region scoping this request.
140210func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
140211	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140212	c.project = project
140213	c.region = region
140214	c.instanceGroup = instanceGroup
140215	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
140216	return c
140217}
140218
140219// Filter sets the optional parameter "filter": A filter expression that
140220// filters resources listed in the response. The expression must specify
140221// the field name, a comparison operator, and the value that you want to
140222// use for filtering. The value must be a string, a number, or a
140223// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140224// `<`.
140225//
140226// For example, if you are filtering Compute Engine instances, you can
140227// exclude instances named `example-instance` by specifying `name !=
140228// example-instance`.
140229//
140230// You can also filter nested fields. For example, you could specify
140231// `scheduling.automaticRestart = false` to include instances only if
140232// they are not scheduled for automatic restarts. You can use filtering
140233// on nested fields to filter based on resource labels.
140234//
140235// To filter on multiple expressions, provide each separate expression
140236// within parentheses. For example: ``` (scheduling.automaticRestart =
140237// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
140238// is an `AND` expression. However, you can include `AND` and `OR`
140239// expressions explicitly. For example: ``` (cpuPlatform = "Intel
140240// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
140241// (scheduling.automaticRestart = true) ```
140242func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
140243	c.urlParams_.Set("filter", filter)
140244	return c
140245}
140246
140247// MaxResults sets the optional parameter "maxResults": The maximum
140248// number of results per page that should be returned. If the number of
140249// available results is larger than `maxResults`, Compute Engine returns
140250// a `nextPageToken` that can be used to get the next page of results in
140251// subsequent list requests. Acceptable values are `0` to `500`,
140252// inclusive. (Default: `500`)
140253func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
140254	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140255	return c
140256}
140257
140258// OrderBy sets the optional parameter "orderBy": Sorts list results by
140259// a certain order. By default, results are returned in alphanumerical
140260// order based on the resource name.
140261//
140262// You can also sort results in descending order based on the creation
140263// timestamp using `orderBy="creationTimestamp desc". This sorts
140264// results based on the `creationTimestamp` field in reverse
140265// chronological order (newest result first). Use this to sort resources
140266// like operations so that the newest operation is returned
140267// first.
140268//
140269// Currently, only sorting by `name` or `creationTimestamp desc` is
140270// supported.
140271func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
140272	c.urlParams_.Set("orderBy", orderBy)
140273	return c
140274}
140275
140276// PageToken sets the optional parameter "pageToken": Specifies a page
140277// token to use. Set `pageToken` to the `nextPageToken` returned by a
140278// previous list request to get the next page of results.
140279func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
140280	c.urlParams_.Set("pageToken", pageToken)
140281	return c
140282}
140283
140284// ReturnPartialSuccess sets the optional parameter
140285// "returnPartialSuccess": Opt-in for partial success behavior which
140286// provides partial results in case of failure. The default value is
140287// false.
140288func (c *RegionInstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListInstancesCall {
140289	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
140290	return c
140291}
140292
140293// Fields allows partial responses to be retrieved. See
140294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140295// for more information.
140296func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
140297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140298	return c
140299}
140300
140301// Context sets the context to be used in this call's Do method. Any
140302// pending HTTP request will be aborted if the provided context is
140303// canceled.
140304func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
140305	c.ctx_ = ctx
140306	return c
140307}
140308
140309// Header returns an http.Header that can be modified by the caller to
140310// add HTTP headers to the request.
140311func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
140312	if c.header_ == nil {
140313		c.header_ = make(http.Header)
140314	}
140315	return c.header_
140316}
140317
140318func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
140319	reqHeaders := make(http.Header)
140320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140321	for k, v := range c.header_ {
140322		reqHeaders[k] = v
140323	}
140324	reqHeaders.Set("User-Agent", c.s.userAgent())
140325	var body io.Reader = nil
140326	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
140327	if err != nil {
140328		return nil, err
140329	}
140330	reqHeaders.Set("Content-Type", "application/json")
140331	c.urlParams_.Set("alt", alt)
140332	c.urlParams_.Set("prettyPrint", "false")
140333	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
140334	urls += "?" + c.urlParams_.Encode()
140335	req, err := http.NewRequest("POST", urls, body)
140336	if err != nil {
140337		return nil, err
140338	}
140339	req.Header = reqHeaders
140340	googleapi.Expand(req.URL, map[string]string{
140341		"project":       c.project,
140342		"region":        c.region,
140343		"instanceGroup": c.instanceGroup,
140344	})
140345	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140346}
140347
140348// Do executes the "compute.regionInstanceGroups.listInstances" call.
140349// Exactly one of *RegionInstanceGroupsListInstances or error will be
140350// non-nil. Any non-2xx status code is an error. Response headers are in
140351// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
140352// (if a response was returned at all) in
140353// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
140354// whether the returned error was because http.StatusNotModified was
140355// returned.
140356func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
140357	gensupport.SetOptions(c.urlParams_, opts...)
140358	res, err := c.doRequest("json")
140359	if res != nil && res.StatusCode == http.StatusNotModified {
140360		if res.Body != nil {
140361			res.Body.Close()
140362		}
140363		return nil, &googleapi.Error{
140364			Code:   res.StatusCode,
140365			Header: res.Header,
140366		}
140367	}
140368	if err != nil {
140369		return nil, err
140370	}
140371	defer googleapi.CloseBody(res)
140372	if err := googleapi.CheckResponse(res); err != nil {
140373		return nil, err
140374	}
140375	ret := &RegionInstanceGroupsListInstances{
140376		ServerResponse: googleapi.ServerResponse{
140377			Header:         res.Header,
140378			HTTPStatusCode: res.StatusCode,
140379		},
140380	}
140381	target := &ret
140382	if err := gensupport.DecodeResponse(target, res); err != nil {
140383		return nil, err
140384	}
140385	return ret, nil
140386	// {
140387	//   "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.",
140388	//   "httpMethod": "POST",
140389	//   "id": "compute.regionInstanceGroups.listInstances",
140390	//   "parameterOrder": [
140391	//     "project",
140392	//     "region",
140393	//     "instanceGroup"
140394	//   ],
140395	//   "parameters": {
140396	//     "filter": {
140397	//       "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) ```",
140398	//       "location": "query",
140399	//       "type": "string"
140400	//     },
140401	//     "instanceGroup": {
140402	//       "description": "Name of the regional instance group for which we want to list the instances.",
140403	//       "location": "path",
140404	//       "required": true,
140405	//       "type": "string"
140406	//     },
140407	//     "maxResults": {
140408	//       "default": "500",
140409	//       "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`)",
140410	//       "format": "uint32",
140411	//       "location": "query",
140412	//       "minimum": "0",
140413	//       "type": "integer"
140414	//     },
140415	//     "orderBy": {
140416	//       "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.",
140417	//       "location": "query",
140418	//       "type": "string"
140419	//     },
140420	//     "pageToken": {
140421	//       "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.",
140422	//       "location": "query",
140423	//       "type": "string"
140424	//     },
140425	//     "project": {
140426	//       "description": "Project ID for this request.",
140427	//       "location": "path",
140428	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140429	//       "required": true,
140430	//       "type": "string"
140431	//     },
140432	//     "region": {
140433	//       "description": "Name of the region scoping this request.",
140434	//       "location": "path",
140435	//       "required": true,
140436	//       "type": "string"
140437	//     },
140438	//     "returnPartialSuccess": {
140439	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140440	//       "location": "query",
140441	//       "type": "boolean"
140442	//     }
140443	//   },
140444	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
140445	//   "request": {
140446	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
140447	//   },
140448	//   "response": {
140449	//     "$ref": "RegionInstanceGroupsListInstances"
140450	//   },
140451	//   "scopes": [
140452	//     "https://www.googleapis.com/auth/cloud-platform",
140453	//     "https://www.googleapis.com/auth/compute",
140454	//     "https://www.googleapis.com/auth/compute.readonly"
140455	//   ]
140456	// }
140457
140458}
140459
140460// Pages invokes f for each page of results.
140461// A non-nil error returned from f will halt the iteration.
140462// The provided context supersedes any context provided to the Context method.
140463func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
140464	c.ctx_ = ctx
140465	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140466	for {
140467		x, err := c.Do()
140468		if err != nil {
140469			return err
140470		}
140471		if err := f(x); err != nil {
140472			return err
140473		}
140474		if x.NextPageToken == "" {
140475			return nil
140476		}
140477		c.PageToken(x.NextPageToken)
140478	}
140479}
140480
140481// method id "compute.regionInstanceGroups.setNamedPorts":
140482
140483type RegionInstanceGroupsSetNamedPortsCall struct {
140484	s                                        *Service
140485	project                                  string
140486	region                                   string
140487	instanceGroup                            string
140488	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
140489	urlParams_                               gensupport.URLParams
140490	ctx_                                     context.Context
140491	header_                                  http.Header
140492}
140493
140494// SetNamedPorts: Sets the named ports for the specified regional
140495// instance group.
140496//
140497// - instanceGroup: The name of the regional instance group where the
140498//   named ports are updated.
140499// - project: Project ID for this request.
140500// - region: Name of the region scoping this request.
140501func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
140502	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140503	c.project = project
140504	c.region = region
140505	c.instanceGroup = instanceGroup
140506	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
140507	return c
140508}
140509
140510// RequestId sets the optional parameter "requestId": An optional
140511// request ID to identify requests. Specify a unique request ID so that
140512// if you must retry your request, the server will know to ignore the
140513// request if it has already been completed.
140514//
140515// For example, consider a situation where you make an initial request
140516// and the request times out. If you make the request again with the
140517// same request ID, the server can check if original operation with the
140518// same request ID was received, and if so, will ignore the second
140519// request. This prevents clients from accidentally creating duplicate
140520// commitments.
140521//
140522// The request ID must be a valid UUID with the exception that zero UUID
140523// is not supported (00000000-0000-0000-0000-000000000000).
140524func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
140525	c.urlParams_.Set("requestId", requestId)
140526	return c
140527}
140528
140529// Fields allows partial responses to be retrieved. See
140530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140531// for more information.
140532func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
140533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140534	return c
140535}
140536
140537// Context sets the context to be used in this call's Do method. Any
140538// pending HTTP request will be aborted if the provided context is
140539// canceled.
140540func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
140541	c.ctx_ = ctx
140542	return c
140543}
140544
140545// Header returns an http.Header that can be modified by the caller to
140546// add HTTP headers to the request.
140547func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
140548	if c.header_ == nil {
140549		c.header_ = make(http.Header)
140550	}
140551	return c.header_
140552}
140553
140554func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
140555	reqHeaders := make(http.Header)
140556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140557	for k, v := range c.header_ {
140558		reqHeaders[k] = v
140559	}
140560	reqHeaders.Set("User-Agent", c.s.userAgent())
140561	var body io.Reader = nil
140562	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
140563	if err != nil {
140564		return nil, err
140565	}
140566	reqHeaders.Set("Content-Type", "application/json")
140567	c.urlParams_.Set("alt", alt)
140568	c.urlParams_.Set("prettyPrint", "false")
140569	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
140570	urls += "?" + c.urlParams_.Encode()
140571	req, err := http.NewRequest("POST", urls, body)
140572	if err != nil {
140573		return nil, err
140574	}
140575	req.Header = reqHeaders
140576	googleapi.Expand(req.URL, map[string]string{
140577		"project":       c.project,
140578		"region":        c.region,
140579		"instanceGroup": c.instanceGroup,
140580	})
140581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140582}
140583
140584// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
140585// Exactly one of *Operation or error will be non-nil. Any non-2xx
140586// status code is an error. Response headers are in either
140587// *Operation.ServerResponse.Header or (if a response was returned at
140588// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140589// to check whether the returned error was because
140590// http.StatusNotModified was returned.
140591func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140592	gensupport.SetOptions(c.urlParams_, opts...)
140593	res, err := c.doRequest("json")
140594	if res != nil && res.StatusCode == http.StatusNotModified {
140595		if res.Body != nil {
140596			res.Body.Close()
140597		}
140598		return nil, &googleapi.Error{
140599			Code:   res.StatusCode,
140600			Header: res.Header,
140601		}
140602	}
140603	if err != nil {
140604		return nil, err
140605	}
140606	defer googleapi.CloseBody(res)
140607	if err := googleapi.CheckResponse(res); err != nil {
140608		return nil, err
140609	}
140610	ret := &Operation{
140611		ServerResponse: googleapi.ServerResponse{
140612			Header:         res.Header,
140613			HTTPStatusCode: res.StatusCode,
140614		},
140615	}
140616	target := &ret
140617	if err := gensupport.DecodeResponse(target, res); err != nil {
140618		return nil, err
140619	}
140620	return ret, nil
140621	// {
140622	//   "description": "Sets the named ports for the specified regional instance group.",
140623	//   "httpMethod": "POST",
140624	//   "id": "compute.regionInstanceGroups.setNamedPorts",
140625	//   "parameterOrder": [
140626	//     "project",
140627	//     "region",
140628	//     "instanceGroup"
140629	//   ],
140630	//   "parameters": {
140631	//     "instanceGroup": {
140632	//       "description": "The name of the regional instance group where the named ports are updated.",
140633	//       "location": "path",
140634	//       "required": true,
140635	//       "type": "string"
140636	//     },
140637	//     "project": {
140638	//       "description": "Project ID for this request.",
140639	//       "location": "path",
140640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140641	//       "required": true,
140642	//       "type": "string"
140643	//     },
140644	//     "region": {
140645	//       "description": "Name of the region scoping this request.",
140646	//       "location": "path",
140647	//       "required": true,
140648	//       "type": "string"
140649	//     },
140650	//     "requestId": {
140651	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140652	//       "location": "query",
140653	//       "type": "string"
140654	//     }
140655	//   },
140656	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
140657	//   "request": {
140658	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
140659	//   },
140660	//   "response": {
140661	//     "$ref": "Operation"
140662	//   },
140663	//   "scopes": [
140664	//     "https://www.googleapis.com/auth/cloud-platform",
140665	//     "https://www.googleapis.com/auth/compute"
140666	//   ]
140667	// }
140668
140669}
140670
140671// method id "compute.regionInstanceGroups.testIamPermissions":
140672
140673type RegionInstanceGroupsTestIamPermissionsCall struct {
140674	s                      *Service
140675	project                string
140676	region                 string
140677	resource               string
140678	testpermissionsrequest *TestPermissionsRequest
140679	urlParams_             gensupport.URLParams
140680	ctx_                   context.Context
140681	header_                http.Header
140682}
140683
140684// TestIamPermissions: Returns permissions that a caller has on the
140685// specified resource.
140686//
140687// - project: Project ID for this request.
140688// - region: The name of the region for this request.
140689// - resource: Name or id of the resource for this request.
140690func (r *RegionInstanceGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupsTestIamPermissionsCall {
140691	c := &RegionInstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140692	c.project = project
140693	c.region = region
140694	c.resource = resource
140695	c.testpermissionsrequest = testpermissionsrequest
140696	return c
140697}
140698
140699// Fields allows partial responses to be retrieved. See
140700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140701// for more information.
140702func (c *RegionInstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsTestIamPermissionsCall {
140703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140704	return c
140705}
140706
140707// Context sets the context to be used in this call's Do method. Any
140708// pending HTTP request will be aborted if the provided context is
140709// canceled.
140710func (c *RegionInstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupsTestIamPermissionsCall {
140711	c.ctx_ = ctx
140712	return c
140713}
140714
140715// Header returns an http.Header that can be modified by the caller to
140716// add HTTP headers to the request.
140717func (c *RegionInstanceGroupsTestIamPermissionsCall) Header() http.Header {
140718	if c.header_ == nil {
140719		c.header_ = make(http.Header)
140720	}
140721	return c.header_
140722}
140723
140724func (c *RegionInstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
140725	reqHeaders := make(http.Header)
140726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140727	for k, v := range c.header_ {
140728		reqHeaders[k] = v
140729	}
140730	reqHeaders.Set("User-Agent", c.s.userAgent())
140731	var body io.Reader = nil
140732	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
140733	if err != nil {
140734		return nil, err
140735	}
140736	reqHeaders.Set("Content-Type", "application/json")
140737	c.urlParams_.Set("alt", alt)
140738	c.urlParams_.Set("prettyPrint", "false")
140739	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions")
140740	urls += "?" + c.urlParams_.Encode()
140741	req, err := http.NewRequest("POST", urls, body)
140742	if err != nil {
140743		return nil, err
140744	}
140745	req.Header = reqHeaders
140746	googleapi.Expand(req.URL, map[string]string{
140747		"project":  c.project,
140748		"region":   c.region,
140749		"resource": c.resource,
140750	})
140751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140752}
140753
140754// Do executes the "compute.regionInstanceGroups.testIamPermissions" call.
140755// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
140756// non-2xx status code is an error. Response headers are in either
140757// *TestPermissionsResponse.ServerResponse.Header or (if a response was
140758// returned at all) in error.(*googleapi.Error).Header. Use
140759// googleapi.IsNotModified to check whether the returned error was
140760// because http.StatusNotModified was returned.
140761func (c *RegionInstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
140762	gensupport.SetOptions(c.urlParams_, opts...)
140763	res, err := c.doRequest("json")
140764	if res != nil && res.StatusCode == http.StatusNotModified {
140765		if res.Body != nil {
140766			res.Body.Close()
140767		}
140768		return nil, &googleapi.Error{
140769			Code:   res.StatusCode,
140770			Header: res.Header,
140771		}
140772	}
140773	if err != nil {
140774		return nil, err
140775	}
140776	defer googleapi.CloseBody(res)
140777	if err := googleapi.CheckResponse(res); err != nil {
140778		return nil, err
140779	}
140780	ret := &TestPermissionsResponse{
140781		ServerResponse: googleapi.ServerResponse{
140782			Header:         res.Header,
140783			HTTPStatusCode: res.StatusCode,
140784		},
140785	}
140786	target := &ret
140787	if err := gensupport.DecodeResponse(target, res); err != nil {
140788		return nil, err
140789	}
140790	return ret, nil
140791	// {
140792	//   "description": "Returns permissions that a caller has on the specified resource.",
140793	//   "httpMethod": "POST",
140794	//   "id": "compute.regionInstanceGroups.testIamPermissions",
140795	//   "parameterOrder": [
140796	//     "project",
140797	//     "region",
140798	//     "resource"
140799	//   ],
140800	//   "parameters": {
140801	//     "project": {
140802	//       "description": "Project ID for this request.",
140803	//       "location": "path",
140804	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140805	//       "required": true,
140806	//       "type": "string"
140807	//     },
140808	//     "region": {
140809	//       "description": "The name of the region for this request.",
140810	//       "location": "path",
140811	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140812	//       "required": true,
140813	//       "type": "string"
140814	//     },
140815	//     "resource": {
140816	//       "description": "Name or id of the resource for this request.",
140817	//       "location": "path",
140818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140819	//       "required": true,
140820	//       "type": "string"
140821	//     }
140822	//   },
140823	//   "path": "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
140824	//   "request": {
140825	//     "$ref": "TestPermissionsRequest"
140826	//   },
140827	//   "response": {
140828	//     "$ref": "TestPermissionsResponse"
140829	//   },
140830	//   "scopes": [
140831	//     "https://www.googleapis.com/auth/cloud-platform",
140832	//     "https://www.googleapis.com/auth/compute",
140833	//     "https://www.googleapis.com/auth/compute.readonly"
140834	//   ]
140835	// }
140836
140837}
140838
140839// method id "compute.regionInstances.bulkInsert":
140840
140841type RegionInstancesBulkInsertCall struct {
140842	s                          *Service
140843	project                    string
140844	region                     string
140845	bulkinsertinstanceresource *BulkInsertInstanceResource
140846	urlParams_                 gensupport.URLParams
140847	ctx_                       context.Context
140848	header_                    http.Header
140849}
140850
140851// BulkInsert: Creates multiple instances in a given region. Count
140852// specifies the number of instances to create.
140853//
140854// - project: Project ID for this request.
140855// - region: The name of the region for this request.
140856func (r *RegionInstancesService) BulkInsert(project string, region string, bulkinsertinstanceresource *BulkInsertInstanceResource) *RegionInstancesBulkInsertCall {
140857	c := &RegionInstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140858	c.project = project
140859	c.region = region
140860	c.bulkinsertinstanceresource = bulkinsertinstanceresource
140861	return c
140862}
140863
140864// RequestId sets the optional parameter "requestId": An optional
140865// request ID to identify requests. Specify a unique request ID so that
140866// if you must retry your request, the server will know to ignore the
140867// request if it has already been completed.
140868//
140869// For example, consider a situation where you make an initial request
140870// and the request times out. If you make the request again with the
140871// same request ID, the server can check if original operation with the
140872// same request ID was received, and if so, will ignore the second
140873// request. This prevents clients from accidentally creating duplicate
140874// commitments.
140875//
140876// The request ID must be a valid UUID with the exception that zero UUID
140877// is not supported (00000000-0000-0000-0000-000000000000).
140878func (c *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInstancesBulkInsertCall {
140879	c.urlParams_.Set("requestId", requestId)
140880	return c
140881}
140882
140883// Fields allows partial responses to be retrieved. See
140884// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140885// for more information.
140886func (c *RegionInstancesBulkInsertCall) Fields(s ...googleapi.Field) *RegionInstancesBulkInsertCall {
140887	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140888	return c
140889}
140890
140891// Context sets the context to be used in this call's Do method. Any
140892// pending HTTP request will be aborted if the provided context is
140893// canceled.
140894func (c *RegionInstancesBulkInsertCall) Context(ctx context.Context) *RegionInstancesBulkInsertCall {
140895	c.ctx_ = ctx
140896	return c
140897}
140898
140899// Header returns an http.Header that can be modified by the caller to
140900// add HTTP headers to the request.
140901func (c *RegionInstancesBulkInsertCall) Header() http.Header {
140902	if c.header_ == nil {
140903		c.header_ = make(http.Header)
140904	}
140905	return c.header_
140906}
140907
140908func (c *RegionInstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
140909	reqHeaders := make(http.Header)
140910	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140911	for k, v := range c.header_ {
140912		reqHeaders[k] = v
140913	}
140914	reqHeaders.Set("User-Agent", c.s.userAgent())
140915	var body io.Reader = nil
140916	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
140917	if err != nil {
140918		return nil, err
140919	}
140920	reqHeaders.Set("Content-Type", "application/json")
140921	c.urlParams_.Set("alt", alt)
140922	c.urlParams_.Set("prettyPrint", "false")
140923	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instances/bulkInsert")
140924	urls += "?" + c.urlParams_.Encode()
140925	req, err := http.NewRequest("POST", urls, body)
140926	if err != nil {
140927		return nil, err
140928	}
140929	req.Header = reqHeaders
140930	googleapi.Expand(req.URL, map[string]string{
140931		"project": c.project,
140932		"region":  c.region,
140933	})
140934	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140935}
140936
140937// Do executes the "compute.regionInstances.bulkInsert" call.
140938// Exactly one of *Operation or error will be non-nil. Any non-2xx
140939// status code is an error. Response headers are in either
140940// *Operation.ServerResponse.Header or (if a response was returned at
140941// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140942// to check whether the returned error was because
140943// http.StatusNotModified was returned.
140944func (c *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140945	gensupport.SetOptions(c.urlParams_, opts...)
140946	res, err := c.doRequest("json")
140947	if res != nil && res.StatusCode == http.StatusNotModified {
140948		if res.Body != nil {
140949			res.Body.Close()
140950		}
140951		return nil, &googleapi.Error{
140952			Code:   res.StatusCode,
140953			Header: res.Header,
140954		}
140955	}
140956	if err != nil {
140957		return nil, err
140958	}
140959	defer googleapi.CloseBody(res)
140960	if err := googleapi.CheckResponse(res); err != nil {
140961		return nil, err
140962	}
140963	ret := &Operation{
140964		ServerResponse: googleapi.ServerResponse{
140965			Header:         res.Header,
140966			HTTPStatusCode: res.StatusCode,
140967		},
140968	}
140969	target := &ret
140970	if err := gensupport.DecodeResponse(target, res); err != nil {
140971		return nil, err
140972	}
140973	return ret, nil
140974	// {
140975	//   "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.",
140976	//   "httpMethod": "POST",
140977	//   "id": "compute.regionInstances.bulkInsert",
140978	//   "parameterOrder": [
140979	//     "project",
140980	//     "region"
140981	//   ],
140982	//   "parameters": {
140983	//     "project": {
140984	//       "description": "Project ID for this request.",
140985	//       "location": "path",
140986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140987	//       "required": true,
140988	//       "type": "string"
140989	//     },
140990	//     "region": {
140991	//       "description": "The name of the region for this request.",
140992	//       "location": "path",
140993	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140994	//       "required": true,
140995	//       "type": "string"
140996	//     },
140997	//     "requestId": {
140998	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140999	//       "location": "query",
141000	//       "type": "string"
141001	//     }
141002	//   },
141003	//   "path": "projects/{project}/regions/{region}/instances/bulkInsert",
141004	//   "request": {
141005	//     "$ref": "BulkInsertInstanceResource"
141006	//   },
141007	//   "response": {
141008	//     "$ref": "Operation"
141009	//   },
141010	//   "scopes": [
141011	//     "https://www.googleapis.com/auth/cloud-platform",
141012	//     "https://www.googleapis.com/auth/compute"
141013	//   ]
141014	// }
141015
141016}
141017
141018// method id "compute.regionNetworkEndpointGroups.delete":
141019
141020type RegionNetworkEndpointGroupsDeleteCall struct {
141021	s                    *Service
141022	project              string
141023	region               string
141024	networkEndpointGroup string
141025	urlParams_           gensupport.URLParams
141026	ctx_                 context.Context
141027	header_              http.Header
141028}
141029
141030// Delete: Deletes the specified network endpoint group. Note that the
141031// NEG cannot be deleted if it is configured as a backend of a backend
141032// service.
141033//
141034// - networkEndpointGroup: The name of the network endpoint group to
141035//   delete. It should comply with RFC1035.
141036// - project: Project ID for this request.
141037// - region: The name of the region where the network endpoint group is
141038//   located. It should comply with RFC1035.
141039func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall {
141040	c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141041	c.project = project
141042	c.region = region
141043	c.networkEndpointGroup = networkEndpointGroup
141044	return c
141045}
141046
141047// RequestId sets the optional parameter "requestId": An optional
141048// request ID to identify requests. Specify a unique request ID so that
141049// if you must retry your request, the server will know to ignore the
141050// request if it has already been completed.
141051//
141052// For example, consider a situation where you make an initial request
141053// and the request times out. If you make the request again with the
141054// same request ID, the server can check if original operation with the
141055// same request ID was received, and if so, will ignore the second
141056// request. This prevents clients from accidentally creating duplicate
141057// commitments.
141058//
141059// The request ID must be a valid UUID with the exception that zero UUID
141060// is not supported (00000000-0000-0000-0000-000000000000).
141061func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall {
141062	c.urlParams_.Set("requestId", requestId)
141063	return c
141064}
141065
141066// Fields allows partial responses to be retrieved. See
141067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141068// for more information.
141069func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall {
141070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141071	return c
141072}
141073
141074// Context sets the context to be used in this call's Do method. Any
141075// pending HTTP request will be aborted if the provided context is
141076// canceled.
141077func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall {
141078	c.ctx_ = ctx
141079	return c
141080}
141081
141082// Header returns an http.Header that can be modified by the caller to
141083// add HTTP headers to the request.
141084func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header {
141085	if c.header_ == nil {
141086		c.header_ = make(http.Header)
141087	}
141088	return c.header_
141089}
141090
141091func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
141092	reqHeaders := make(http.Header)
141093	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141094	for k, v := range c.header_ {
141095		reqHeaders[k] = v
141096	}
141097	reqHeaders.Set("User-Agent", c.s.userAgent())
141098	var body io.Reader = nil
141099	c.urlParams_.Set("alt", alt)
141100	c.urlParams_.Set("prettyPrint", "false")
141101	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
141102	urls += "?" + c.urlParams_.Encode()
141103	req, err := http.NewRequest("DELETE", urls, body)
141104	if err != nil {
141105		return nil, err
141106	}
141107	req.Header = reqHeaders
141108	googleapi.Expand(req.URL, map[string]string{
141109		"project":              c.project,
141110		"region":               c.region,
141111		"networkEndpointGroup": c.networkEndpointGroup,
141112	})
141113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141114}
141115
141116// Do executes the "compute.regionNetworkEndpointGroups.delete" call.
141117// Exactly one of *Operation or error will be non-nil. Any non-2xx
141118// status code is an error. Response headers are in either
141119// *Operation.ServerResponse.Header or (if a response was returned at
141120// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141121// to check whether the returned error was because
141122// http.StatusNotModified was returned.
141123func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141124	gensupport.SetOptions(c.urlParams_, opts...)
141125	res, err := c.doRequest("json")
141126	if res != nil && res.StatusCode == http.StatusNotModified {
141127		if res.Body != nil {
141128			res.Body.Close()
141129		}
141130		return nil, &googleapi.Error{
141131			Code:   res.StatusCode,
141132			Header: res.Header,
141133		}
141134	}
141135	if err != nil {
141136		return nil, err
141137	}
141138	defer googleapi.CloseBody(res)
141139	if err := googleapi.CheckResponse(res); err != nil {
141140		return nil, err
141141	}
141142	ret := &Operation{
141143		ServerResponse: googleapi.ServerResponse{
141144			Header:         res.Header,
141145			HTTPStatusCode: res.StatusCode,
141146		},
141147	}
141148	target := &ret
141149	if err := gensupport.DecodeResponse(target, res); err != nil {
141150		return nil, err
141151	}
141152	return ret, nil
141153	// {
141154	//   "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.",
141155	//   "httpMethod": "DELETE",
141156	//   "id": "compute.regionNetworkEndpointGroups.delete",
141157	//   "parameterOrder": [
141158	//     "project",
141159	//     "region",
141160	//     "networkEndpointGroup"
141161	//   ],
141162	//   "parameters": {
141163	//     "networkEndpointGroup": {
141164	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
141165	//       "location": "path",
141166	//       "required": true,
141167	//       "type": "string"
141168	//     },
141169	//     "project": {
141170	//       "description": "Project ID for this request.",
141171	//       "location": "path",
141172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141173	//       "required": true,
141174	//       "type": "string"
141175	//     },
141176	//     "region": {
141177	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
141178	//       "location": "path",
141179	//       "required": true,
141180	//       "type": "string"
141181	//     },
141182	//     "requestId": {
141183	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141184	//       "location": "query",
141185	//       "type": "string"
141186	//     }
141187	//   },
141188	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
141189	//   "response": {
141190	//     "$ref": "Operation"
141191	//   },
141192	//   "scopes": [
141193	//     "https://www.googleapis.com/auth/cloud-platform",
141194	//     "https://www.googleapis.com/auth/compute"
141195	//   ]
141196	// }
141197
141198}
141199
141200// method id "compute.regionNetworkEndpointGroups.get":
141201
141202type RegionNetworkEndpointGroupsGetCall struct {
141203	s                    *Service
141204	project              string
141205	region               string
141206	networkEndpointGroup string
141207	urlParams_           gensupport.URLParams
141208	ifNoneMatch_         string
141209	ctx_                 context.Context
141210	header_              http.Header
141211}
141212
141213// Get: Returns the specified network endpoint group. Gets a list of
141214// available network endpoint groups by making a list() request.
141215//
141216// - networkEndpointGroup: The name of the network endpoint group. It
141217//   should comply with RFC1035.
141218// - project: Project ID for this request.
141219// - region: The name of the region where the network endpoint group is
141220//   located. It should comply with RFC1035.
141221func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall {
141222	c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141223	c.project = project
141224	c.region = region
141225	c.networkEndpointGroup = networkEndpointGroup
141226	return c
141227}
141228
141229// Fields allows partial responses to be retrieved. See
141230// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141231// for more information.
141232func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall {
141233	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141234	return c
141235}
141236
141237// IfNoneMatch sets the optional parameter which makes the operation
141238// fail if the object's ETag matches the given value. This is useful for
141239// getting updates only after the object has changed since the last
141240// request. Use googleapi.IsNotModified to check whether the response
141241// error from Do is the result of In-None-Match.
141242func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall {
141243	c.ifNoneMatch_ = entityTag
141244	return c
141245}
141246
141247// Context sets the context to be used in this call's Do method. Any
141248// pending HTTP request will be aborted if the provided context is
141249// canceled.
141250func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall {
141251	c.ctx_ = ctx
141252	return c
141253}
141254
141255// Header returns an http.Header that can be modified by the caller to
141256// add HTTP headers to the request.
141257func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header {
141258	if c.header_ == nil {
141259		c.header_ = make(http.Header)
141260	}
141261	return c.header_
141262}
141263
141264func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
141265	reqHeaders := make(http.Header)
141266	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141267	for k, v := range c.header_ {
141268		reqHeaders[k] = v
141269	}
141270	reqHeaders.Set("User-Agent", c.s.userAgent())
141271	if c.ifNoneMatch_ != "" {
141272		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141273	}
141274	var body io.Reader = nil
141275	c.urlParams_.Set("alt", alt)
141276	c.urlParams_.Set("prettyPrint", "false")
141277	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
141278	urls += "?" + c.urlParams_.Encode()
141279	req, err := http.NewRequest("GET", urls, body)
141280	if err != nil {
141281		return nil, err
141282	}
141283	req.Header = reqHeaders
141284	googleapi.Expand(req.URL, map[string]string{
141285		"project":              c.project,
141286		"region":               c.region,
141287		"networkEndpointGroup": c.networkEndpointGroup,
141288	})
141289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141290}
141291
141292// Do executes the "compute.regionNetworkEndpointGroups.get" call.
141293// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
141294// non-2xx status code is an error. Response headers are in either
141295// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
141296// returned at all) in error.(*googleapi.Error).Header. Use
141297// googleapi.IsNotModified to check whether the returned error was
141298// because http.StatusNotModified was returned.
141299func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
141300	gensupport.SetOptions(c.urlParams_, opts...)
141301	res, err := c.doRequest("json")
141302	if res != nil && res.StatusCode == http.StatusNotModified {
141303		if res.Body != nil {
141304			res.Body.Close()
141305		}
141306		return nil, &googleapi.Error{
141307			Code:   res.StatusCode,
141308			Header: res.Header,
141309		}
141310	}
141311	if err != nil {
141312		return nil, err
141313	}
141314	defer googleapi.CloseBody(res)
141315	if err := googleapi.CheckResponse(res); err != nil {
141316		return nil, err
141317	}
141318	ret := &NetworkEndpointGroup{
141319		ServerResponse: googleapi.ServerResponse{
141320			Header:         res.Header,
141321			HTTPStatusCode: res.StatusCode,
141322		},
141323	}
141324	target := &ret
141325	if err := gensupport.DecodeResponse(target, res); err != nil {
141326		return nil, err
141327	}
141328	return ret, nil
141329	// {
141330	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
141331	//   "httpMethod": "GET",
141332	//   "id": "compute.regionNetworkEndpointGroups.get",
141333	//   "parameterOrder": [
141334	//     "project",
141335	//     "region",
141336	//     "networkEndpointGroup"
141337	//   ],
141338	//   "parameters": {
141339	//     "networkEndpointGroup": {
141340	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
141341	//       "location": "path",
141342	//       "required": true,
141343	//       "type": "string"
141344	//     },
141345	//     "project": {
141346	//       "description": "Project ID for this request.",
141347	//       "location": "path",
141348	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141349	//       "required": true,
141350	//       "type": "string"
141351	//     },
141352	//     "region": {
141353	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
141354	//       "location": "path",
141355	//       "required": true,
141356	//       "type": "string"
141357	//     }
141358	//   },
141359	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
141360	//   "response": {
141361	//     "$ref": "NetworkEndpointGroup"
141362	//   },
141363	//   "scopes": [
141364	//     "https://www.googleapis.com/auth/cloud-platform",
141365	//     "https://www.googleapis.com/auth/compute",
141366	//     "https://www.googleapis.com/auth/compute.readonly"
141367	//   ]
141368	// }
141369
141370}
141371
141372// method id "compute.regionNetworkEndpointGroups.insert":
141373
141374type RegionNetworkEndpointGroupsInsertCall struct {
141375	s                    *Service
141376	project              string
141377	region               string
141378	networkendpointgroup *NetworkEndpointGroup
141379	urlParams_           gensupport.URLParams
141380	ctx_                 context.Context
141381	header_              http.Header
141382}
141383
141384// Insert: Creates a network endpoint group in the specified project
141385// using the parameters that are included in the request.
141386//
141387// - project: Project ID for this request.
141388// - region: The name of the region where you want to create the network
141389//   endpoint group. It should comply with RFC1035.
141390func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall {
141391	c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141392	c.project = project
141393	c.region = region
141394	c.networkendpointgroup = networkendpointgroup
141395	return c
141396}
141397
141398// RequestId sets the optional parameter "requestId": An optional
141399// request ID to identify requests. Specify a unique request ID so that
141400// if you must retry your request, the server will know to ignore the
141401// request if it has already been completed.
141402//
141403// For example, consider a situation where you make an initial request
141404// and the request times out. If you make the request again with the
141405// same request ID, the server can check if original operation with the
141406// same request ID was received, and if so, will ignore the second
141407// request. This prevents clients from accidentally creating duplicate
141408// commitments.
141409//
141410// The request ID must be a valid UUID with the exception that zero UUID
141411// is not supported (00000000-0000-0000-0000-000000000000).
141412func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall {
141413	c.urlParams_.Set("requestId", requestId)
141414	return c
141415}
141416
141417// Fields allows partial responses to be retrieved. See
141418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141419// for more information.
141420func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall {
141421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141422	return c
141423}
141424
141425// Context sets the context to be used in this call's Do method. Any
141426// pending HTTP request will be aborted if the provided context is
141427// canceled.
141428func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall {
141429	c.ctx_ = ctx
141430	return c
141431}
141432
141433// Header returns an http.Header that can be modified by the caller to
141434// add HTTP headers to the request.
141435func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header {
141436	if c.header_ == nil {
141437		c.header_ = make(http.Header)
141438	}
141439	return c.header_
141440}
141441
141442func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
141443	reqHeaders := make(http.Header)
141444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141445	for k, v := range c.header_ {
141446		reqHeaders[k] = v
141447	}
141448	reqHeaders.Set("User-Agent", c.s.userAgent())
141449	var body io.Reader = nil
141450	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
141451	if err != nil {
141452		return nil, err
141453	}
141454	reqHeaders.Set("Content-Type", "application/json")
141455	c.urlParams_.Set("alt", alt)
141456	c.urlParams_.Set("prettyPrint", "false")
141457	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
141458	urls += "?" + c.urlParams_.Encode()
141459	req, err := http.NewRequest("POST", urls, body)
141460	if err != nil {
141461		return nil, err
141462	}
141463	req.Header = reqHeaders
141464	googleapi.Expand(req.URL, map[string]string{
141465		"project": c.project,
141466		"region":  c.region,
141467	})
141468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141469}
141470
141471// Do executes the "compute.regionNetworkEndpointGroups.insert" call.
141472// Exactly one of *Operation or error will be non-nil. Any non-2xx
141473// status code is an error. Response headers are in either
141474// *Operation.ServerResponse.Header or (if a response was returned at
141475// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141476// to check whether the returned error was because
141477// http.StatusNotModified was returned.
141478func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141479	gensupport.SetOptions(c.urlParams_, opts...)
141480	res, err := c.doRequest("json")
141481	if res != nil && res.StatusCode == http.StatusNotModified {
141482		if res.Body != nil {
141483			res.Body.Close()
141484		}
141485		return nil, &googleapi.Error{
141486			Code:   res.StatusCode,
141487			Header: res.Header,
141488		}
141489	}
141490	if err != nil {
141491		return nil, err
141492	}
141493	defer googleapi.CloseBody(res)
141494	if err := googleapi.CheckResponse(res); err != nil {
141495		return nil, err
141496	}
141497	ret := &Operation{
141498		ServerResponse: googleapi.ServerResponse{
141499			Header:         res.Header,
141500			HTTPStatusCode: res.StatusCode,
141501		},
141502	}
141503	target := &ret
141504	if err := gensupport.DecodeResponse(target, res); err != nil {
141505		return nil, err
141506	}
141507	return ret, nil
141508	// {
141509	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
141510	//   "httpMethod": "POST",
141511	//   "id": "compute.regionNetworkEndpointGroups.insert",
141512	//   "parameterOrder": [
141513	//     "project",
141514	//     "region"
141515	//   ],
141516	//   "parameters": {
141517	//     "project": {
141518	//       "description": "Project ID for this request.",
141519	//       "location": "path",
141520	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141521	//       "required": true,
141522	//       "type": "string"
141523	//     },
141524	//     "region": {
141525	//       "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.",
141526	//       "location": "path",
141527	//       "required": true,
141528	//       "type": "string"
141529	//     },
141530	//     "requestId": {
141531	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141532	//       "location": "query",
141533	//       "type": "string"
141534	//     }
141535	//   },
141536	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
141537	//   "request": {
141538	//     "$ref": "NetworkEndpointGroup"
141539	//   },
141540	//   "response": {
141541	//     "$ref": "Operation"
141542	//   },
141543	//   "scopes": [
141544	//     "https://www.googleapis.com/auth/cloud-platform",
141545	//     "https://www.googleapis.com/auth/compute"
141546	//   ]
141547	// }
141548
141549}
141550
141551// method id "compute.regionNetworkEndpointGroups.list":
141552
141553type RegionNetworkEndpointGroupsListCall struct {
141554	s            *Service
141555	project      string
141556	region       string
141557	urlParams_   gensupport.URLParams
141558	ifNoneMatch_ string
141559	ctx_         context.Context
141560	header_      http.Header
141561}
141562
141563// List: Retrieves the list of regional network endpoint groups
141564// available to the specified project in the given region.
141565//
141566// - project: Project ID for this request.
141567// - region: The name of the region where the network endpoint group is
141568//   located. It should comply with RFC1035.
141569func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall {
141570	c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141571	c.project = project
141572	c.region = region
141573	return c
141574}
141575
141576// Filter sets the optional parameter "filter": A filter expression that
141577// filters resources listed in the response. The expression must specify
141578// the field name, a comparison operator, and the value that you want to
141579// use for filtering. The value must be a string, a number, or a
141580// boolean. The comparison operator must be either `=`, `!=`, `>`, or
141581// `<`.
141582//
141583// For example, if you are filtering Compute Engine instances, you can
141584// exclude instances named `example-instance` by specifying `name !=
141585// example-instance`.
141586//
141587// You can also filter nested fields. For example, you could specify
141588// `scheduling.automaticRestart = false` to include instances only if
141589// they are not scheduled for automatic restarts. You can use filtering
141590// on nested fields to filter based on resource labels.
141591//
141592// To filter on multiple expressions, provide each separate expression
141593// within parentheses. For example: ``` (scheduling.automaticRestart =
141594// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
141595// is an `AND` expression. However, you can include `AND` and `OR`
141596// expressions explicitly. For example: ``` (cpuPlatform = "Intel
141597// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
141598// (scheduling.automaticRestart = true) ```
141599func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall {
141600	c.urlParams_.Set("filter", filter)
141601	return c
141602}
141603
141604// MaxResults sets the optional parameter "maxResults": The maximum
141605// number of results per page that should be returned. If the number of
141606// available results is larger than `maxResults`, Compute Engine returns
141607// a `nextPageToken` that can be used to get the next page of results in
141608// subsequent list requests. Acceptable values are `0` to `500`,
141609// inclusive. (Default: `500`)
141610func (c *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall {
141611	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141612	return c
141613}
141614
141615// OrderBy sets the optional parameter "orderBy": Sorts list results by
141616// a certain order. By default, results are returned in alphanumerical
141617// order based on the resource name.
141618//
141619// You can also sort results in descending order based on the creation
141620// timestamp using `orderBy="creationTimestamp desc". This sorts
141621// results based on the `creationTimestamp` field in reverse
141622// chronological order (newest result first). Use this to sort resources
141623// like operations so that the newest operation is returned
141624// first.
141625//
141626// Currently, only sorting by `name` or `creationTimestamp desc` is
141627// supported.
141628func (c *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall {
141629	c.urlParams_.Set("orderBy", orderBy)
141630	return c
141631}
141632
141633// PageToken sets the optional parameter "pageToken": Specifies a page
141634// token to use. Set `pageToken` to the `nextPageToken` returned by a
141635// previous list request to get the next page of results.
141636func (c *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall {
141637	c.urlParams_.Set("pageToken", pageToken)
141638	return c
141639}
141640
141641// ReturnPartialSuccess sets the optional parameter
141642// "returnPartialSuccess": Opt-in for partial success behavior which
141643// provides partial results in case of failure. The default value is
141644// false.
141645func (c *RegionNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListCall {
141646	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
141647	return c
141648}
141649
141650// Fields allows partial responses to be retrieved. See
141651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141652// for more information.
141653func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall {
141654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141655	return c
141656}
141657
141658// IfNoneMatch sets the optional parameter which makes the operation
141659// fail if the object's ETag matches the given value. This is useful for
141660// getting updates only after the object has changed since the last
141661// request. Use googleapi.IsNotModified to check whether the response
141662// error from Do is the result of In-None-Match.
141663func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall {
141664	c.ifNoneMatch_ = entityTag
141665	return c
141666}
141667
141668// Context sets the context to be used in this call's Do method. Any
141669// pending HTTP request will be aborted if the provided context is
141670// canceled.
141671func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall {
141672	c.ctx_ = ctx
141673	return c
141674}
141675
141676// Header returns an http.Header that can be modified by the caller to
141677// add HTTP headers to the request.
141678func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header {
141679	if c.header_ == nil {
141680		c.header_ = make(http.Header)
141681	}
141682	return c.header_
141683}
141684
141685func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
141686	reqHeaders := make(http.Header)
141687	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141688	for k, v := range c.header_ {
141689		reqHeaders[k] = v
141690	}
141691	reqHeaders.Set("User-Agent", c.s.userAgent())
141692	if c.ifNoneMatch_ != "" {
141693		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141694	}
141695	var body io.Reader = nil
141696	c.urlParams_.Set("alt", alt)
141697	c.urlParams_.Set("prettyPrint", "false")
141698	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
141699	urls += "?" + c.urlParams_.Encode()
141700	req, err := http.NewRequest("GET", urls, body)
141701	if err != nil {
141702		return nil, err
141703	}
141704	req.Header = reqHeaders
141705	googleapi.Expand(req.URL, map[string]string{
141706		"project": c.project,
141707		"region":  c.region,
141708	})
141709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141710}
141711
141712// Do executes the "compute.regionNetworkEndpointGroups.list" call.
141713// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
141714// Any non-2xx status code is an error. Response headers are in either
141715// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
141716// returned at all) in error.(*googleapi.Error).Header. Use
141717// googleapi.IsNotModified to check whether the returned error was
141718// because http.StatusNotModified was returned.
141719func (c *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
141720	gensupport.SetOptions(c.urlParams_, opts...)
141721	res, err := c.doRequest("json")
141722	if res != nil && res.StatusCode == http.StatusNotModified {
141723		if res.Body != nil {
141724			res.Body.Close()
141725		}
141726		return nil, &googleapi.Error{
141727			Code:   res.StatusCode,
141728			Header: res.Header,
141729		}
141730	}
141731	if err != nil {
141732		return nil, err
141733	}
141734	defer googleapi.CloseBody(res)
141735	if err := googleapi.CheckResponse(res); err != nil {
141736		return nil, err
141737	}
141738	ret := &NetworkEndpointGroupList{
141739		ServerResponse: googleapi.ServerResponse{
141740			Header:         res.Header,
141741			HTTPStatusCode: res.StatusCode,
141742		},
141743	}
141744	target := &ret
141745	if err := gensupport.DecodeResponse(target, res); err != nil {
141746		return nil, err
141747	}
141748	return ret, nil
141749	// {
141750	//   "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.",
141751	//   "httpMethod": "GET",
141752	//   "id": "compute.regionNetworkEndpointGroups.list",
141753	//   "parameterOrder": [
141754	//     "project",
141755	//     "region"
141756	//   ],
141757	//   "parameters": {
141758	//     "filter": {
141759	//       "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) ```",
141760	//       "location": "query",
141761	//       "type": "string"
141762	//     },
141763	//     "maxResults": {
141764	//       "default": "500",
141765	//       "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`)",
141766	//       "format": "uint32",
141767	//       "location": "query",
141768	//       "minimum": "0",
141769	//       "type": "integer"
141770	//     },
141771	//     "orderBy": {
141772	//       "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.",
141773	//       "location": "query",
141774	//       "type": "string"
141775	//     },
141776	//     "pageToken": {
141777	//       "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.",
141778	//       "location": "query",
141779	//       "type": "string"
141780	//     },
141781	//     "project": {
141782	//       "description": "Project ID for this request.",
141783	//       "location": "path",
141784	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141785	//       "required": true,
141786	//       "type": "string"
141787	//     },
141788	//     "region": {
141789	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
141790	//       "location": "path",
141791	//       "required": true,
141792	//       "type": "string"
141793	//     },
141794	//     "returnPartialSuccess": {
141795	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
141796	//       "location": "query",
141797	//       "type": "boolean"
141798	//     }
141799	//   },
141800	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
141801	//   "response": {
141802	//     "$ref": "NetworkEndpointGroupList"
141803	//   },
141804	//   "scopes": [
141805	//     "https://www.googleapis.com/auth/cloud-platform",
141806	//     "https://www.googleapis.com/auth/compute",
141807	//     "https://www.googleapis.com/auth/compute.readonly"
141808	//   ]
141809	// }
141810
141811}
141812
141813// Pages invokes f for each page of results.
141814// A non-nil error returned from f will halt the iteration.
141815// The provided context supersedes any context provided to the Context method.
141816func (c *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
141817	c.ctx_ = ctx
141818	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141819	for {
141820		x, err := c.Do()
141821		if err != nil {
141822			return err
141823		}
141824		if err := f(x); err != nil {
141825			return err
141826		}
141827		if x.NextPageToken == "" {
141828			return nil
141829		}
141830		c.PageToken(x.NextPageToken)
141831	}
141832}
141833
141834// method id "compute.regionNotificationEndpoints.delete":
141835
141836type RegionNotificationEndpointsDeleteCall struct {
141837	s                    *Service
141838	project              string
141839	region               string
141840	notificationEndpoint string
141841	urlParams_           gensupport.URLParams
141842	ctx_                 context.Context
141843	header_              http.Header
141844}
141845
141846// Delete: Deletes the specified NotificationEndpoint in the given
141847// region
141848//
141849// - notificationEndpoint: Name of the NotificationEndpoint resource to
141850//   delete.
141851// - project: Project ID for this request.
141852// - region: Name of the region scoping this request.
141853func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
141854	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141855	c.project = project
141856	c.region = region
141857	c.notificationEndpoint = notificationEndpoint
141858	return c
141859}
141860
141861// RequestId sets the optional parameter "requestId": An optional
141862// request ID to identify requests. Specify a unique request ID so that
141863// if you must retry your request, the server will know to ignore the
141864// request if it has already been completed.
141865//
141866// For example, consider a situation where you make an initial request
141867// and the request times out. If you make the request again with the
141868// same request ID, the server can check if original operation with the
141869// same request ID was received, and if so, will ignore the second
141870// request. This prevents clients from accidentally creating duplicate
141871// commitments.
141872//
141873// The request ID must be a valid UUID with the exception that zero UUID
141874// is not supported (00000000-0000-0000-0000-000000000000).
141875func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
141876	c.urlParams_.Set("requestId", requestId)
141877	return c
141878}
141879
141880// Fields allows partial responses to be retrieved. See
141881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141882// for more information.
141883func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
141884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141885	return c
141886}
141887
141888// Context sets the context to be used in this call's Do method. Any
141889// pending HTTP request will be aborted if the provided context is
141890// canceled.
141891func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
141892	c.ctx_ = ctx
141893	return c
141894}
141895
141896// Header returns an http.Header that can be modified by the caller to
141897// add HTTP headers to the request.
141898func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
141899	if c.header_ == nil {
141900		c.header_ = make(http.Header)
141901	}
141902	return c.header_
141903}
141904
141905func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
141906	reqHeaders := make(http.Header)
141907	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141908	for k, v := range c.header_ {
141909		reqHeaders[k] = v
141910	}
141911	reqHeaders.Set("User-Agent", c.s.userAgent())
141912	var body io.Reader = nil
141913	c.urlParams_.Set("alt", alt)
141914	c.urlParams_.Set("prettyPrint", "false")
141915	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
141916	urls += "?" + c.urlParams_.Encode()
141917	req, err := http.NewRequest("DELETE", urls, body)
141918	if err != nil {
141919		return nil, err
141920	}
141921	req.Header = reqHeaders
141922	googleapi.Expand(req.URL, map[string]string{
141923		"project":              c.project,
141924		"region":               c.region,
141925		"notificationEndpoint": c.notificationEndpoint,
141926	})
141927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141928}
141929
141930// Do executes the "compute.regionNotificationEndpoints.delete" call.
141931// Exactly one of *Operation or error will be non-nil. Any non-2xx
141932// status code is an error. Response headers are in either
141933// *Operation.ServerResponse.Header or (if a response was returned at
141934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141935// to check whether the returned error was because
141936// http.StatusNotModified was returned.
141937func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141938	gensupport.SetOptions(c.urlParams_, opts...)
141939	res, err := c.doRequest("json")
141940	if res != nil && res.StatusCode == http.StatusNotModified {
141941		if res.Body != nil {
141942			res.Body.Close()
141943		}
141944		return nil, &googleapi.Error{
141945			Code:   res.StatusCode,
141946			Header: res.Header,
141947		}
141948	}
141949	if err != nil {
141950		return nil, err
141951	}
141952	defer googleapi.CloseBody(res)
141953	if err := googleapi.CheckResponse(res); err != nil {
141954		return nil, err
141955	}
141956	ret := &Operation{
141957		ServerResponse: googleapi.ServerResponse{
141958			Header:         res.Header,
141959			HTTPStatusCode: res.StatusCode,
141960		},
141961	}
141962	target := &ret
141963	if err := gensupport.DecodeResponse(target, res); err != nil {
141964		return nil, err
141965	}
141966	return ret, nil
141967	// {
141968	//   "description": "Deletes the specified NotificationEndpoint in the given region",
141969	//   "httpMethod": "DELETE",
141970	//   "id": "compute.regionNotificationEndpoints.delete",
141971	//   "parameterOrder": [
141972	//     "project",
141973	//     "region",
141974	//     "notificationEndpoint"
141975	//   ],
141976	//   "parameters": {
141977	//     "notificationEndpoint": {
141978	//       "description": "Name of the NotificationEndpoint resource to delete.",
141979	//       "location": "path",
141980	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141981	//       "required": true,
141982	//       "type": "string"
141983	//     },
141984	//     "project": {
141985	//       "description": "Project ID for this request.",
141986	//       "location": "path",
141987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141988	//       "required": true,
141989	//       "type": "string"
141990	//     },
141991	//     "region": {
141992	//       "description": "Name of the region scoping this request.",
141993	//       "location": "path",
141994	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141995	//       "required": true,
141996	//       "type": "string"
141997	//     },
141998	//     "requestId": {
141999	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142000	//       "location": "query",
142001	//       "type": "string"
142002	//     }
142003	//   },
142004	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
142005	//   "response": {
142006	//     "$ref": "Operation"
142007	//   },
142008	//   "scopes": [
142009	//     "https://www.googleapis.com/auth/cloud-platform",
142010	//     "https://www.googleapis.com/auth/compute"
142011	//   ]
142012	// }
142013
142014}
142015
142016// method id "compute.regionNotificationEndpoints.get":
142017
142018type RegionNotificationEndpointsGetCall struct {
142019	s                    *Service
142020	project              string
142021	region               string
142022	notificationEndpoint string
142023	urlParams_           gensupport.URLParams
142024	ifNoneMatch_         string
142025	ctx_                 context.Context
142026	header_              http.Header
142027}
142028
142029// Get: Returns the specified NotificationEndpoint resource in the given
142030// region.
142031//
142032// - notificationEndpoint: Name of the NotificationEndpoint resource to
142033//   return.
142034// - project: Project ID for this request.
142035// - region: Name of the region scoping this request.
142036func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
142037	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142038	c.project = project
142039	c.region = region
142040	c.notificationEndpoint = notificationEndpoint
142041	return c
142042}
142043
142044// Fields allows partial responses to be retrieved. See
142045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142046// for more information.
142047func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
142048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142049	return c
142050}
142051
142052// IfNoneMatch sets the optional parameter which makes the operation
142053// fail if the object's ETag matches the given value. This is useful for
142054// getting updates only after the object has changed since the last
142055// request. Use googleapi.IsNotModified to check whether the response
142056// error from Do is the result of In-None-Match.
142057func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
142058	c.ifNoneMatch_ = entityTag
142059	return c
142060}
142061
142062// Context sets the context to be used in this call's Do method. Any
142063// pending HTTP request will be aborted if the provided context is
142064// canceled.
142065func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
142066	c.ctx_ = ctx
142067	return c
142068}
142069
142070// Header returns an http.Header that can be modified by the caller to
142071// add HTTP headers to the request.
142072func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
142073	if c.header_ == nil {
142074		c.header_ = make(http.Header)
142075	}
142076	return c.header_
142077}
142078
142079func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
142080	reqHeaders := make(http.Header)
142081	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142082	for k, v := range c.header_ {
142083		reqHeaders[k] = v
142084	}
142085	reqHeaders.Set("User-Agent", c.s.userAgent())
142086	if c.ifNoneMatch_ != "" {
142087		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142088	}
142089	var body io.Reader = nil
142090	c.urlParams_.Set("alt", alt)
142091	c.urlParams_.Set("prettyPrint", "false")
142092	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
142093	urls += "?" + c.urlParams_.Encode()
142094	req, err := http.NewRequest("GET", urls, body)
142095	if err != nil {
142096		return nil, err
142097	}
142098	req.Header = reqHeaders
142099	googleapi.Expand(req.URL, map[string]string{
142100		"project":              c.project,
142101		"region":               c.region,
142102		"notificationEndpoint": c.notificationEndpoint,
142103	})
142104	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142105}
142106
142107// Do executes the "compute.regionNotificationEndpoints.get" call.
142108// Exactly one of *NotificationEndpoint or error will be non-nil. Any
142109// non-2xx status code is an error. Response headers are in either
142110// *NotificationEndpoint.ServerResponse.Header or (if a response was
142111// returned at all) in error.(*googleapi.Error).Header. Use
142112// googleapi.IsNotModified to check whether the returned error was
142113// because http.StatusNotModified was returned.
142114func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
142115	gensupport.SetOptions(c.urlParams_, opts...)
142116	res, err := c.doRequest("json")
142117	if res != nil && res.StatusCode == http.StatusNotModified {
142118		if res.Body != nil {
142119			res.Body.Close()
142120		}
142121		return nil, &googleapi.Error{
142122			Code:   res.StatusCode,
142123			Header: res.Header,
142124		}
142125	}
142126	if err != nil {
142127		return nil, err
142128	}
142129	defer googleapi.CloseBody(res)
142130	if err := googleapi.CheckResponse(res); err != nil {
142131		return nil, err
142132	}
142133	ret := &NotificationEndpoint{
142134		ServerResponse: googleapi.ServerResponse{
142135			Header:         res.Header,
142136			HTTPStatusCode: res.StatusCode,
142137		},
142138	}
142139	target := &ret
142140	if err := gensupport.DecodeResponse(target, res); err != nil {
142141		return nil, err
142142	}
142143	return ret, nil
142144	// {
142145	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
142146	//   "httpMethod": "GET",
142147	//   "id": "compute.regionNotificationEndpoints.get",
142148	//   "parameterOrder": [
142149	//     "project",
142150	//     "region",
142151	//     "notificationEndpoint"
142152	//   ],
142153	//   "parameters": {
142154	//     "notificationEndpoint": {
142155	//       "description": "Name of the NotificationEndpoint resource to return.",
142156	//       "location": "path",
142157	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142158	//       "required": true,
142159	//       "type": "string"
142160	//     },
142161	//     "project": {
142162	//       "description": "Project ID for this request.",
142163	//       "location": "path",
142164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142165	//       "required": true,
142166	//       "type": "string"
142167	//     },
142168	//     "region": {
142169	//       "description": "Name of the region scoping this request.",
142170	//       "location": "path",
142171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142172	//       "required": true,
142173	//       "type": "string"
142174	//     }
142175	//   },
142176	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
142177	//   "response": {
142178	//     "$ref": "NotificationEndpoint"
142179	//   },
142180	//   "scopes": [
142181	//     "https://www.googleapis.com/auth/cloud-platform",
142182	//     "https://www.googleapis.com/auth/compute",
142183	//     "https://www.googleapis.com/auth/compute.readonly"
142184	//   ]
142185	// }
142186
142187}
142188
142189// method id "compute.regionNotificationEndpoints.insert":
142190
142191type RegionNotificationEndpointsInsertCall struct {
142192	s                    *Service
142193	project              string
142194	region               string
142195	notificationendpoint *NotificationEndpoint
142196	urlParams_           gensupport.URLParams
142197	ctx_                 context.Context
142198	header_              http.Header
142199}
142200
142201// Insert: Create a NotificationEndpoint in the specified project in the
142202// given region using the parameters that are included in the request.
142203//
142204// - project: Project ID for this request.
142205// - region: Name of the region scoping this request.
142206func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
142207	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142208	c.project = project
142209	c.region = region
142210	c.notificationendpoint = notificationendpoint
142211	return c
142212}
142213
142214// RequestId sets the optional parameter "requestId": An optional
142215// request ID to identify requests. Specify a unique request ID so that
142216// if you must retry your request, the server will know to ignore the
142217// request if it has already been completed.
142218//
142219// For example, consider a situation where you make an initial request
142220// and the request times out. If you make the request again with the
142221// same request ID, the server can check if original operation with the
142222// same request ID was received, and if so, will ignore the second
142223// request. This prevents clients from accidentally creating duplicate
142224// commitments.
142225//
142226// The request ID must be a valid UUID with the exception that zero UUID
142227// is not supported (00000000-0000-0000-0000-000000000000).
142228func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
142229	c.urlParams_.Set("requestId", requestId)
142230	return c
142231}
142232
142233// Fields allows partial responses to be retrieved. See
142234// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142235// for more information.
142236func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
142237	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142238	return c
142239}
142240
142241// Context sets the context to be used in this call's Do method. Any
142242// pending HTTP request will be aborted if the provided context is
142243// canceled.
142244func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
142245	c.ctx_ = ctx
142246	return c
142247}
142248
142249// Header returns an http.Header that can be modified by the caller to
142250// add HTTP headers to the request.
142251func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
142252	if c.header_ == nil {
142253		c.header_ = make(http.Header)
142254	}
142255	return c.header_
142256}
142257
142258func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
142259	reqHeaders := make(http.Header)
142260	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142261	for k, v := range c.header_ {
142262		reqHeaders[k] = v
142263	}
142264	reqHeaders.Set("User-Agent", c.s.userAgent())
142265	var body io.Reader = nil
142266	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
142267	if err != nil {
142268		return nil, err
142269	}
142270	reqHeaders.Set("Content-Type", "application/json")
142271	c.urlParams_.Set("alt", alt)
142272	c.urlParams_.Set("prettyPrint", "false")
142273	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
142274	urls += "?" + c.urlParams_.Encode()
142275	req, err := http.NewRequest("POST", urls, body)
142276	if err != nil {
142277		return nil, err
142278	}
142279	req.Header = reqHeaders
142280	googleapi.Expand(req.URL, map[string]string{
142281		"project": c.project,
142282		"region":  c.region,
142283	})
142284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142285}
142286
142287// Do executes the "compute.regionNotificationEndpoints.insert" call.
142288// Exactly one of *Operation or error will be non-nil. Any non-2xx
142289// status code is an error. Response headers are in either
142290// *Operation.ServerResponse.Header or (if a response was returned at
142291// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142292// to check whether the returned error was because
142293// http.StatusNotModified was returned.
142294func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142295	gensupport.SetOptions(c.urlParams_, opts...)
142296	res, err := c.doRequest("json")
142297	if res != nil && res.StatusCode == http.StatusNotModified {
142298		if res.Body != nil {
142299			res.Body.Close()
142300		}
142301		return nil, &googleapi.Error{
142302			Code:   res.StatusCode,
142303			Header: res.Header,
142304		}
142305	}
142306	if err != nil {
142307		return nil, err
142308	}
142309	defer googleapi.CloseBody(res)
142310	if err := googleapi.CheckResponse(res); err != nil {
142311		return nil, err
142312	}
142313	ret := &Operation{
142314		ServerResponse: googleapi.ServerResponse{
142315			Header:         res.Header,
142316			HTTPStatusCode: res.StatusCode,
142317		},
142318	}
142319	target := &ret
142320	if err := gensupport.DecodeResponse(target, res); err != nil {
142321		return nil, err
142322	}
142323	return ret, nil
142324	// {
142325	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
142326	//   "httpMethod": "POST",
142327	//   "id": "compute.regionNotificationEndpoints.insert",
142328	//   "parameterOrder": [
142329	//     "project",
142330	//     "region"
142331	//   ],
142332	//   "parameters": {
142333	//     "project": {
142334	//       "description": "Project ID for this request.",
142335	//       "location": "path",
142336	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142337	//       "required": true,
142338	//       "type": "string"
142339	//     },
142340	//     "region": {
142341	//       "description": "Name of the region scoping this request.",
142342	//       "location": "path",
142343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142344	//       "required": true,
142345	//       "type": "string"
142346	//     },
142347	//     "requestId": {
142348	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142349	//       "location": "query",
142350	//       "type": "string"
142351	//     }
142352	//   },
142353	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
142354	//   "request": {
142355	//     "$ref": "NotificationEndpoint"
142356	//   },
142357	//   "response": {
142358	//     "$ref": "Operation"
142359	//   },
142360	//   "scopes": [
142361	//     "https://www.googleapis.com/auth/cloud-platform",
142362	//     "https://www.googleapis.com/auth/compute"
142363	//   ]
142364	// }
142365
142366}
142367
142368// method id "compute.regionNotificationEndpoints.list":
142369
142370type RegionNotificationEndpointsListCall struct {
142371	s            *Service
142372	project      string
142373	region       string
142374	urlParams_   gensupport.URLParams
142375	ifNoneMatch_ string
142376	ctx_         context.Context
142377	header_      http.Header
142378}
142379
142380// List: Lists the NotificationEndpoints for a project in the given
142381// region.
142382//
142383// - project: Project ID for this request.
142384// - region: Name of the region scoping this request.
142385func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
142386	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142387	c.project = project
142388	c.region = region
142389	return c
142390}
142391
142392// Filter sets the optional parameter "filter": A filter expression that
142393// filters resources listed in the response. The expression must specify
142394// the field name, a comparison operator, and the value that you want to
142395// use for filtering. The value must be a string, a number, or a
142396// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142397// `<`.
142398//
142399// For example, if you are filtering Compute Engine instances, you can
142400// exclude instances named `example-instance` by specifying `name !=
142401// example-instance`.
142402//
142403// You can also filter nested fields. For example, you could specify
142404// `scheduling.automaticRestart = false` to include instances only if
142405// they are not scheduled for automatic restarts. You can use filtering
142406// on nested fields to filter based on resource labels.
142407//
142408// To filter on multiple expressions, provide each separate expression
142409// within parentheses. For example: ``` (scheduling.automaticRestart =
142410// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142411// is an `AND` expression. However, you can include `AND` and `OR`
142412// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142413// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142414// (scheduling.automaticRestart = true) ```
142415func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
142416	c.urlParams_.Set("filter", filter)
142417	return c
142418}
142419
142420// MaxResults sets the optional parameter "maxResults": The maximum
142421// number of results per page that should be returned. If the number of
142422// available results is larger than `maxResults`, Compute Engine returns
142423// a `nextPageToken` that can be used to get the next page of results in
142424// subsequent list requests. Acceptable values are `0` to `500`,
142425// inclusive. (Default: `500`)
142426func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
142427	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142428	return c
142429}
142430
142431// OrderBy sets the optional parameter "orderBy": Sorts list results by
142432// a certain order. By default, results are returned in alphanumerical
142433// order based on the resource name.
142434//
142435// You can also sort results in descending order based on the creation
142436// timestamp using `orderBy="creationTimestamp desc". This sorts
142437// results based on the `creationTimestamp` field in reverse
142438// chronological order (newest result first). Use this to sort resources
142439// like operations so that the newest operation is returned
142440// first.
142441//
142442// Currently, only sorting by `name` or `creationTimestamp desc` is
142443// supported.
142444func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
142445	c.urlParams_.Set("orderBy", orderBy)
142446	return c
142447}
142448
142449// PageToken sets the optional parameter "pageToken": Specifies a page
142450// token to use. Set `pageToken` to the `nextPageToken` returned by a
142451// previous list request to get the next page of results.
142452func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
142453	c.urlParams_.Set("pageToken", pageToken)
142454	return c
142455}
142456
142457// ReturnPartialSuccess sets the optional parameter
142458// "returnPartialSuccess": Opt-in for partial success behavior which
142459// provides partial results in case of failure. The default value is
142460// false.
142461func (c *RegionNotificationEndpointsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsListCall {
142462	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
142463	return c
142464}
142465
142466// Fields allows partial responses to be retrieved. See
142467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142468// for more information.
142469func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
142470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142471	return c
142472}
142473
142474// IfNoneMatch sets the optional parameter which makes the operation
142475// fail if the object's ETag matches the given value. This is useful for
142476// getting updates only after the object has changed since the last
142477// request. Use googleapi.IsNotModified to check whether the response
142478// error from Do is the result of In-None-Match.
142479func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
142480	c.ifNoneMatch_ = entityTag
142481	return c
142482}
142483
142484// Context sets the context to be used in this call's Do method. Any
142485// pending HTTP request will be aborted if the provided context is
142486// canceled.
142487func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
142488	c.ctx_ = ctx
142489	return c
142490}
142491
142492// Header returns an http.Header that can be modified by the caller to
142493// add HTTP headers to the request.
142494func (c *RegionNotificationEndpointsListCall) Header() http.Header {
142495	if c.header_ == nil {
142496		c.header_ = make(http.Header)
142497	}
142498	return c.header_
142499}
142500
142501func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
142502	reqHeaders := make(http.Header)
142503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142504	for k, v := range c.header_ {
142505		reqHeaders[k] = v
142506	}
142507	reqHeaders.Set("User-Agent", c.s.userAgent())
142508	if c.ifNoneMatch_ != "" {
142509		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142510	}
142511	var body io.Reader = nil
142512	c.urlParams_.Set("alt", alt)
142513	c.urlParams_.Set("prettyPrint", "false")
142514	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
142515	urls += "?" + c.urlParams_.Encode()
142516	req, err := http.NewRequest("GET", urls, body)
142517	if err != nil {
142518		return nil, err
142519	}
142520	req.Header = reqHeaders
142521	googleapi.Expand(req.URL, map[string]string{
142522		"project": c.project,
142523		"region":  c.region,
142524	})
142525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142526}
142527
142528// Do executes the "compute.regionNotificationEndpoints.list" call.
142529// Exactly one of *NotificationEndpointList or error will be non-nil.
142530// Any non-2xx status code is an error. Response headers are in either
142531// *NotificationEndpointList.ServerResponse.Header or (if a response was
142532// returned at all) in error.(*googleapi.Error).Header. Use
142533// googleapi.IsNotModified to check whether the returned error was
142534// because http.StatusNotModified was returned.
142535func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
142536	gensupport.SetOptions(c.urlParams_, opts...)
142537	res, err := c.doRequest("json")
142538	if res != nil && res.StatusCode == http.StatusNotModified {
142539		if res.Body != nil {
142540			res.Body.Close()
142541		}
142542		return nil, &googleapi.Error{
142543			Code:   res.StatusCode,
142544			Header: res.Header,
142545		}
142546	}
142547	if err != nil {
142548		return nil, err
142549	}
142550	defer googleapi.CloseBody(res)
142551	if err := googleapi.CheckResponse(res); err != nil {
142552		return nil, err
142553	}
142554	ret := &NotificationEndpointList{
142555		ServerResponse: googleapi.ServerResponse{
142556			Header:         res.Header,
142557			HTTPStatusCode: res.StatusCode,
142558		},
142559	}
142560	target := &ret
142561	if err := gensupport.DecodeResponse(target, res); err != nil {
142562		return nil, err
142563	}
142564	return ret, nil
142565	// {
142566	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
142567	//   "httpMethod": "GET",
142568	//   "id": "compute.regionNotificationEndpoints.list",
142569	//   "parameterOrder": [
142570	//     "project",
142571	//     "region"
142572	//   ],
142573	//   "parameters": {
142574	//     "filter": {
142575	//       "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) ```",
142576	//       "location": "query",
142577	//       "type": "string"
142578	//     },
142579	//     "maxResults": {
142580	//       "default": "500",
142581	//       "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`)",
142582	//       "format": "uint32",
142583	//       "location": "query",
142584	//       "minimum": "0",
142585	//       "type": "integer"
142586	//     },
142587	//     "orderBy": {
142588	//       "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.",
142589	//       "location": "query",
142590	//       "type": "string"
142591	//     },
142592	//     "pageToken": {
142593	//       "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.",
142594	//       "location": "query",
142595	//       "type": "string"
142596	//     },
142597	//     "project": {
142598	//       "description": "Project ID for this request.",
142599	//       "location": "path",
142600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142601	//       "required": true,
142602	//       "type": "string"
142603	//     },
142604	//     "region": {
142605	//       "description": "Name of the region scoping this request.",
142606	//       "location": "path",
142607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142608	//       "required": true,
142609	//       "type": "string"
142610	//     },
142611	//     "returnPartialSuccess": {
142612	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
142613	//       "location": "query",
142614	//       "type": "boolean"
142615	//     }
142616	//   },
142617	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
142618	//   "response": {
142619	//     "$ref": "NotificationEndpointList"
142620	//   },
142621	//   "scopes": [
142622	//     "https://www.googleapis.com/auth/cloud-platform",
142623	//     "https://www.googleapis.com/auth/compute",
142624	//     "https://www.googleapis.com/auth/compute.readonly"
142625	//   ]
142626	// }
142627
142628}
142629
142630// Pages invokes f for each page of results.
142631// A non-nil error returned from f will halt the iteration.
142632// The provided context supersedes any context provided to the Context method.
142633func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
142634	c.ctx_ = ctx
142635	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142636	for {
142637		x, err := c.Do()
142638		if err != nil {
142639			return err
142640		}
142641		if err := f(x); err != nil {
142642			return err
142643		}
142644		if x.NextPageToken == "" {
142645			return nil
142646		}
142647		c.PageToken(x.NextPageToken)
142648	}
142649}
142650
142651// method id "compute.regionNotificationEndpoints.testIamPermissions":
142652
142653type RegionNotificationEndpointsTestIamPermissionsCall struct {
142654	s                      *Service
142655	project                string
142656	region                 string
142657	resource               string
142658	testpermissionsrequest *TestPermissionsRequest
142659	urlParams_             gensupport.URLParams
142660	ctx_                   context.Context
142661	header_                http.Header
142662}
142663
142664// TestIamPermissions: Returns permissions that a caller has on the
142665// specified resource.
142666//
142667// - project: Project ID for this request.
142668// - region: The name of the region for this request.
142669// - resource: Name or id of the resource for this request.
142670func (r *RegionNotificationEndpointsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionNotificationEndpointsTestIamPermissionsCall {
142671	c := &RegionNotificationEndpointsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142672	c.project = project
142673	c.region = region
142674	c.resource = resource
142675	c.testpermissionsrequest = testpermissionsrequest
142676	return c
142677}
142678
142679// Fields allows partial responses to be retrieved. See
142680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142681// for more information.
142682func (c *RegionNotificationEndpointsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsTestIamPermissionsCall {
142683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142684	return c
142685}
142686
142687// Context sets the context to be used in this call's Do method. Any
142688// pending HTTP request will be aborted if the provided context is
142689// canceled.
142690func (c *RegionNotificationEndpointsTestIamPermissionsCall) Context(ctx context.Context) *RegionNotificationEndpointsTestIamPermissionsCall {
142691	c.ctx_ = ctx
142692	return c
142693}
142694
142695// Header returns an http.Header that can be modified by the caller to
142696// add HTTP headers to the request.
142697func (c *RegionNotificationEndpointsTestIamPermissionsCall) Header() http.Header {
142698	if c.header_ == nil {
142699		c.header_ = make(http.Header)
142700	}
142701	return c.header_
142702}
142703
142704func (c *RegionNotificationEndpointsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
142705	reqHeaders := make(http.Header)
142706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142707	for k, v := range c.header_ {
142708		reqHeaders[k] = v
142709	}
142710	reqHeaders.Set("User-Agent", c.s.userAgent())
142711	var body io.Reader = nil
142712	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
142713	if err != nil {
142714		return nil, err
142715	}
142716	reqHeaders.Set("Content-Type", "application/json")
142717	c.urlParams_.Set("alt", alt)
142718	c.urlParams_.Set("prettyPrint", "false")
142719	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions")
142720	urls += "?" + c.urlParams_.Encode()
142721	req, err := http.NewRequest("POST", urls, body)
142722	if err != nil {
142723		return nil, err
142724	}
142725	req.Header = reqHeaders
142726	googleapi.Expand(req.URL, map[string]string{
142727		"project":  c.project,
142728		"region":   c.region,
142729		"resource": c.resource,
142730	})
142731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142732}
142733
142734// Do executes the "compute.regionNotificationEndpoints.testIamPermissions" call.
142735// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
142736// non-2xx status code is an error. Response headers are in either
142737// *TestPermissionsResponse.ServerResponse.Header or (if a response was
142738// returned at all) in error.(*googleapi.Error).Header. Use
142739// googleapi.IsNotModified to check whether the returned error was
142740// because http.StatusNotModified was returned.
142741func (c *RegionNotificationEndpointsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
142742	gensupport.SetOptions(c.urlParams_, opts...)
142743	res, err := c.doRequest("json")
142744	if res != nil && res.StatusCode == http.StatusNotModified {
142745		if res.Body != nil {
142746			res.Body.Close()
142747		}
142748		return nil, &googleapi.Error{
142749			Code:   res.StatusCode,
142750			Header: res.Header,
142751		}
142752	}
142753	if err != nil {
142754		return nil, err
142755	}
142756	defer googleapi.CloseBody(res)
142757	if err := googleapi.CheckResponse(res); err != nil {
142758		return nil, err
142759	}
142760	ret := &TestPermissionsResponse{
142761		ServerResponse: googleapi.ServerResponse{
142762			Header:         res.Header,
142763			HTTPStatusCode: res.StatusCode,
142764		},
142765	}
142766	target := &ret
142767	if err := gensupport.DecodeResponse(target, res); err != nil {
142768		return nil, err
142769	}
142770	return ret, nil
142771	// {
142772	//   "description": "Returns permissions that a caller has on the specified resource.",
142773	//   "httpMethod": "POST",
142774	//   "id": "compute.regionNotificationEndpoints.testIamPermissions",
142775	//   "parameterOrder": [
142776	//     "project",
142777	//     "region",
142778	//     "resource"
142779	//   ],
142780	//   "parameters": {
142781	//     "project": {
142782	//       "description": "Project ID for this request.",
142783	//       "location": "path",
142784	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142785	//       "required": true,
142786	//       "type": "string"
142787	//     },
142788	//     "region": {
142789	//       "description": "The name of the region for this request.",
142790	//       "location": "path",
142791	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142792	//       "required": true,
142793	//       "type": "string"
142794	//     },
142795	//     "resource": {
142796	//       "description": "Name or id of the resource for this request.",
142797	//       "location": "path",
142798	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142799	//       "required": true,
142800	//       "type": "string"
142801	//     }
142802	//   },
142803	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions",
142804	//   "request": {
142805	//     "$ref": "TestPermissionsRequest"
142806	//   },
142807	//   "response": {
142808	//     "$ref": "TestPermissionsResponse"
142809	//   },
142810	//   "scopes": [
142811	//     "https://www.googleapis.com/auth/cloud-platform",
142812	//     "https://www.googleapis.com/auth/compute",
142813	//     "https://www.googleapis.com/auth/compute.readonly"
142814	//   ]
142815	// }
142816
142817}
142818
142819// method id "compute.regionOperations.delete":
142820
142821type RegionOperationsDeleteCall struct {
142822	s          *Service
142823	project    string
142824	region     string
142825	operation  string
142826	urlParams_ gensupport.URLParams
142827	ctx_       context.Context
142828	header_    http.Header
142829}
142830
142831// Delete: Deletes the specified region-specific Operations resource.
142832//
142833// - operation: Name of the Operations resource to delete.
142834// - project: Project ID for this request.
142835// - region: Name of the region for this request.
142836// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
142837func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
142838	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142839	c.project = project
142840	c.region = region
142841	c.operation = operation
142842	return c
142843}
142844
142845// Fields allows partial responses to be retrieved. See
142846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142847// for more information.
142848func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
142849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142850	return c
142851}
142852
142853// Context sets the context to be used in this call's Do method. Any
142854// pending HTTP request will be aborted if the provided context is
142855// canceled.
142856func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
142857	c.ctx_ = ctx
142858	return c
142859}
142860
142861// Header returns an http.Header that can be modified by the caller to
142862// add HTTP headers to the request.
142863func (c *RegionOperationsDeleteCall) Header() http.Header {
142864	if c.header_ == nil {
142865		c.header_ = make(http.Header)
142866	}
142867	return c.header_
142868}
142869
142870func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
142871	reqHeaders := make(http.Header)
142872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142873	for k, v := range c.header_ {
142874		reqHeaders[k] = v
142875	}
142876	reqHeaders.Set("User-Agent", c.s.userAgent())
142877	var body io.Reader = nil
142878	c.urlParams_.Set("alt", alt)
142879	c.urlParams_.Set("prettyPrint", "false")
142880	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
142881	urls += "?" + c.urlParams_.Encode()
142882	req, err := http.NewRequest("DELETE", urls, body)
142883	if err != nil {
142884		return nil, err
142885	}
142886	req.Header = reqHeaders
142887	googleapi.Expand(req.URL, map[string]string{
142888		"project":   c.project,
142889		"region":    c.region,
142890		"operation": c.operation,
142891	})
142892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142893}
142894
142895// Do executes the "compute.regionOperations.delete" call.
142896func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
142897	gensupport.SetOptions(c.urlParams_, opts...)
142898	res, err := c.doRequest("json")
142899	if err != nil {
142900		return err
142901	}
142902	defer googleapi.CloseBody(res)
142903	if err := googleapi.CheckResponse(res); err != nil {
142904		return err
142905	}
142906	return nil
142907	// {
142908	//   "description": "Deletes the specified region-specific Operations resource.",
142909	//   "httpMethod": "DELETE",
142910	//   "id": "compute.regionOperations.delete",
142911	//   "parameterOrder": [
142912	//     "project",
142913	//     "region",
142914	//     "operation"
142915	//   ],
142916	//   "parameters": {
142917	//     "operation": {
142918	//       "description": "Name of the Operations resource to delete.",
142919	//       "location": "path",
142920	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142921	//       "required": true,
142922	//       "type": "string"
142923	//     },
142924	//     "project": {
142925	//       "description": "Project ID for this request.",
142926	//       "location": "path",
142927	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142928	//       "required": true,
142929	//       "type": "string"
142930	//     },
142931	//     "region": {
142932	//       "description": "Name of the region for this request.",
142933	//       "location": "path",
142934	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142935	//       "required": true,
142936	//       "type": "string"
142937	//     }
142938	//   },
142939	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
142940	//   "scopes": [
142941	//     "https://www.googleapis.com/auth/cloud-platform",
142942	//     "https://www.googleapis.com/auth/compute"
142943	//   ]
142944	// }
142945
142946}
142947
142948// method id "compute.regionOperations.get":
142949
142950type RegionOperationsGetCall struct {
142951	s            *Service
142952	project      string
142953	region       string
142954	operation    string
142955	urlParams_   gensupport.URLParams
142956	ifNoneMatch_ string
142957	ctx_         context.Context
142958	header_      http.Header
142959}
142960
142961// Get: Retrieves the specified region-specific Operations resource.
142962//
142963// - operation: Name of the Operations resource to return.
142964// - project: Project ID for this request.
142965// - region: Name of the region for this request.
142966// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
142967func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
142968	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142969	c.project = project
142970	c.region = region
142971	c.operation = operation
142972	return c
142973}
142974
142975// Fields allows partial responses to be retrieved. See
142976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142977// for more information.
142978func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
142979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142980	return c
142981}
142982
142983// IfNoneMatch sets the optional parameter which makes the operation
142984// fail if the object's ETag matches the given value. This is useful for
142985// getting updates only after the object has changed since the last
142986// request. Use googleapi.IsNotModified to check whether the response
142987// error from Do is the result of In-None-Match.
142988func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
142989	c.ifNoneMatch_ = entityTag
142990	return c
142991}
142992
142993// Context sets the context to be used in this call's Do method. Any
142994// pending HTTP request will be aborted if the provided context is
142995// canceled.
142996func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
142997	c.ctx_ = ctx
142998	return c
142999}
143000
143001// Header returns an http.Header that can be modified by the caller to
143002// add HTTP headers to the request.
143003func (c *RegionOperationsGetCall) Header() http.Header {
143004	if c.header_ == nil {
143005		c.header_ = make(http.Header)
143006	}
143007	return c.header_
143008}
143009
143010func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
143011	reqHeaders := make(http.Header)
143012	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143013	for k, v := range c.header_ {
143014		reqHeaders[k] = v
143015	}
143016	reqHeaders.Set("User-Agent", c.s.userAgent())
143017	if c.ifNoneMatch_ != "" {
143018		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143019	}
143020	var body io.Reader = nil
143021	c.urlParams_.Set("alt", alt)
143022	c.urlParams_.Set("prettyPrint", "false")
143023	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
143024	urls += "?" + c.urlParams_.Encode()
143025	req, err := http.NewRequest("GET", urls, body)
143026	if err != nil {
143027		return nil, err
143028	}
143029	req.Header = reqHeaders
143030	googleapi.Expand(req.URL, map[string]string{
143031		"project":   c.project,
143032		"region":    c.region,
143033		"operation": c.operation,
143034	})
143035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143036}
143037
143038// Do executes the "compute.regionOperations.get" call.
143039// Exactly one of *Operation or error will be non-nil. Any non-2xx
143040// status code is an error. Response headers are in either
143041// *Operation.ServerResponse.Header or (if a response was returned at
143042// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143043// to check whether the returned error was because
143044// http.StatusNotModified was returned.
143045func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143046	gensupport.SetOptions(c.urlParams_, opts...)
143047	res, err := c.doRequest("json")
143048	if res != nil && res.StatusCode == http.StatusNotModified {
143049		if res.Body != nil {
143050			res.Body.Close()
143051		}
143052		return nil, &googleapi.Error{
143053			Code:   res.StatusCode,
143054			Header: res.Header,
143055		}
143056	}
143057	if err != nil {
143058		return nil, err
143059	}
143060	defer googleapi.CloseBody(res)
143061	if err := googleapi.CheckResponse(res); err != nil {
143062		return nil, err
143063	}
143064	ret := &Operation{
143065		ServerResponse: googleapi.ServerResponse{
143066			Header:         res.Header,
143067			HTTPStatusCode: res.StatusCode,
143068		},
143069	}
143070	target := &ret
143071	if err := gensupport.DecodeResponse(target, res); err != nil {
143072		return nil, err
143073	}
143074	return ret, nil
143075	// {
143076	//   "description": "Retrieves the specified region-specific Operations resource.",
143077	//   "httpMethod": "GET",
143078	//   "id": "compute.regionOperations.get",
143079	//   "parameterOrder": [
143080	//     "project",
143081	//     "region",
143082	//     "operation"
143083	//   ],
143084	//   "parameters": {
143085	//     "operation": {
143086	//       "description": "Name of the Operations resource to return.",
143087	//       "location": "path",
143088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143089	//       "required": true,
143090	//       "type": "string"
143091	//     },
143092	//     "project": {
143093	//       "description": "Project ID for this request.",
143094	//       "location": "path",
143095	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143096	//       "required": true,
143097	//       "type": "string"
143098	//     },
143099	//     "region": {
143100	//       "description": "Name of the region for this request.",
143101	//       "location": "path",
143102	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143103	//       "required": true,
143104	//       "type": "string"
143105	//     }
143106	//   },
143107	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
143108	//   "response": {
143109	//     "$ref": "Operation"
143110	//   },
143111	//   "scopes": [
143112	//     "https://www.googleapis.com/auth/cloud-platform",
143113	//     "https://www.googleapis.com/auth/compute",
143114	//     "https://www.googleapis.com/auth/compute.readonly"
143115	//   ]
143116	// }
143117
143118}
143119
143120// method id "compute.regionOperations.list":
143121
143122type RegionOperationsListCall struct {
143123	s            *Service
143124	project      string
143125	region       string
143126	urlParams_   gensupport.URLParams
143127	ifNoneMatch_ string
143128	ctx_         context.Context
143129	header_      http.Header
143130}
143131
143132// List: Retrieves a list of Operation resources contained within the
143133// specified region.
143134//
143135// - project: Project ID for this request.
143136// - region: Name of the region for this request.
143137// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
143138func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
143139	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143140	c.project = project
143141	c.region = region
143142	return c
143143}
143144
143145// Filter sets the optional parameter "filter": A filter expression that
143146// filters resources listed in the response. The expression must specify
143147// the field name, a comparison operator, and the value that you want to
143148// use for filtering. The value must be a string, a number, or a
143149// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143150// `<`.
143151//
143152// For example, if you are filtering Compute Engine instances, you can
143153// exclude instances named `example-instance` by specifying `name !=
143154// example-instance`.
143155//
143156// You can also filter nested fields. For example, you could specify
143157// `scheduling.automaticRestart = false` to include instances only if
143158// they are not scheduled for automatic restarts. You can use filtering
143159// on nested fields to filter based on resource labels.
143160//
143161// To filter on multiple expressions, provide each separate expression
143162// within parentheses. For example: ``` (scheduling.automaticRestart =
143163// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
143164// is an `AND` expression. However, you can include `AND` and `OR`
143165// expressions explicitly. For example: ``` (cpuPlatform = "Intel
143166// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
143167// (scheduling.automaticRestart = true) ```
143168func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
143169	c.urlParams_.Set("filter", filter)
143170	return c
143171}
143172
143173// MaxResults sets the optional parameter "maxResults": The maximum
143174// number of results per page that should be returned. If the number of
143175// available results is larger than `maxResults`, Compute Engine returns
143176// a `nextPageToken` that can be used to get the next page of results in
143177// subsequent list requests. Acceptable values are `0` to `500`,
143178// inclusive. (Default: `500`)
143179func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
143180	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143181	return c
143182}
143183
143184// OrderBy sets the optional parameter "orderBy": Sorts list results by
143185// a certain order. By default, results are returned in alphanumerical
143186// order based on the resource name.
143187//
143188// You can also sort results in descending order based on the creation
143189// timestamp using `orderBy="creationTimestamp desc". This sorts
143190// results based on the `creationTimestamp` field in reverse
143191// chronological order (newest result first). Use this to sort resources
143192// like operations so that the newest operation is returned
143193// first.
143194//
143195// Currently, only sorting by `name` or `creationTimestamp desc` is
143196// supported.
143197func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
143198	c.urlParams_.Set("orderBy", orderBy)
143199	return c
143200}
143201
143202// PageToken sets the optional parameter "pageToken": Specifies a page
143203// token to use. Set `pageToken` to the `nextPageToken` returned by a
143204// previous list request to get the next page of results.
143205func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
143206	c.urlParams_.Set("pageToken", pageToken)
143207	return c
143208}
143209
143210// ReturnPartialSuccess sets the optional parameter
143211// "returnPartialSuccess": Opt-in for partial success behavior which
143212// provides partial results in case of failure. The default value is
143213// false.
143214func (c *RegionOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionOperationsListCall {
143215	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
143216	return c
143217}
143218
143219// Fields allows partial responses to be retrieved. See
143220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143221// for more information.
143222func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
143223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143224	return c
143225}
143226
143227// IfNoneMatch sets the optional parameter which makes the operation
143228// fail if the object's ETag matches the given value. This is useful for
143229// getting updates only after the object has changed since the last
143230// request. Use googleapi.IsNotModified to check whether the response
143231// error from Do is the result of In-None-Match.
143232func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
143233	c.ifNoneMatch_ = entityTag
143234	return c
143235}
143236
143237// Context sets the context to be used in this call's Do method. Any
143238// pending HTTP request will be aborted if the provided context is
143239// canceled.
143240func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
143241	c.ctx_ = ctx
143242	return c
143243}
143244
143245// Header returns an http.Header that can be modified by the caller to
143246// add HTTP headers to the request.
143247func (c *RegionOperationsListCall) Header() http.Header {
143248	if c.header_ == nil {
143249		c.header_ = make(http.Header)
143250	}
143251	return c.header_
143252}
143253
143254func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
143255	reqHeaders := make(http.Header)
143256	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143257	for k, v := range c.header_ {
143258		reqHeaders[k] = v
143259	}
143260	reqHeaders.Set("User-Agent", c.s.userAgent())
143261	if c.ifNoneMatch_ != "" {
143262		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143263	}
143264	var body io.Reader = nil
143265	c.urlParams_.Set("alt", alt)
143266	c.urlParams_.Set("prettyPrint", "false")
143267	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations")
143268	urls += "?" + c.urlParams_.Encode()
143269	req, err := http.NewRequest("GET", urls, body)
143270	if err != nil {
143271		return nil, err
143272	}
143273	req.Header = reqHeaders
143274	googleapi.Expand(req.URL, map[string]string{
143275		"project": c.project,
143276		"region":  c.region,
143277	})
143278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143279}
143280
143281// Do executes the "compute.regionOperations.list" call.
143282// Exactly one of *OperationList or error will be non-nil. Any non-2xx
143283// status code is an error. Response headers are in either
143284// *OperationList.ServerResponse.Header or (if a response was returned
143285// at all) in error.(*googleapi.Error).Header. Use
143286// googleapi.IsNotModified to check whether the returned error was
143287// because http.StatusNotModified was returned.
143288func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
143289	gensupport.SetOptions(c.urlParams_, opts...)
143290	res, err := c.doRequest("json")
143291	if res != nil && res.StatusCode == http.StatusNotModified {
143292		if res.Body != nil {
143293			res.Body.Close()
143294		}
143295		return nil, &googleapi.Error{
143296			Code:   res.StatusCode,
143297			Header: res.Header,
143298		}
143299	}
143300	if err != nil {
143301		return nil, err
143302	}
143303	defer googleapi.CloseBody(res)
143304	if err := googleapi.CheckResponse(res); err != nil {
143305		return nil, err
143306	}
143307	ret := &OperationList{
143308		ServerResponse: googleapi.ServerResponse{
143309			Header:         res.Header,
143310			HTTPStatusCode: res.StatusCode,
143311		},
143312	}
143313	target := &ret
143314	if err := gensupport.DecodeResponse(target, res); err != nil {
143315		return nil, err
143316	}
143317	return ret, nil
143318	// {
143319	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
143320	//   "httpMethod": "GET",
143321	//   "id": "compute.regionOperations.list",
143322	//   "parameterOrder": [
143323	//     "project",
143324	//     "region"
143325	//   ],
143326	//   "parameters": {
143327	//     "filter": {
143328	//       "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) ```",
143329	//       "location": "query",
143330	//       "type": "string"
143331	//     },
143332	//     "maxResults": {
143333	//       "default": "500",
143334	//       "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`)",
143335	//       "format": "uint32",
143336	//       "location": "query",
143337	//       "minimum": "0",
143338	//       "type": "integer"
143339	//     },
143340	//     "orderBy": {
143341	//       "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.",
143342	//       "location": "query",
143343	//       "type": "string"
143344	//     },
143345	//     "pageToken": {
143346	//       "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.",
143347	//       "location": "query",
143348	//       "type": "string"
143349	//     },
143350	//     "project": {
143351	//       "description": "Project ID for this request.",
143352	//       "location": "path",
143353	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143354	//       "required": true,
143355	//       "type": "string"
143356	//     },
143357	//     "region": {
143358	//       "description": "Name of the region for this request.",
143359	//       "location": "path",
143360	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143361	//       "required": true,
143362	//       "type": "string"
143363	//     },
143364	//     "returnPartialSuccess": {
143365	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
143366	//       "location": "query",
143367	//       "type": "boolean"
143368	//     }
143369	//   },
143370	//   "path": "projects/{project}/regions/{region}/operations",
143371	//   "response": {
143372	//     "$ref": "OperationList"
143373	//   },
143374	//   "scopes": [
143375	//     "https://www.googleapis.com/auth/cloud-platform",
143376	//     "https://www.googleapis.com/auth/compute",
143377	//     "https://www.googleapis.com/auth/compute.readonly"
143378	//   ]
143379	// }
143380
143381}
143382
143383// Pages invokes f for each page of results.
143384// A non-nil error returned from f will halt the iteration.
143385// The provided context supersedes any context provided to the Context method.
143386func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
143387	c.ctx_ = ctx
143388	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143389	for {
143390		x, err := c.Do()
143391		if err != nil {
143392			return err
143393		}
143394		if err := f(x); err != nil {
143395			return err
143396		}
143397		if x.NextPageToken == "" {
143398			return nil
143399		}
143400		c.PageToken(x.NextPageToken)
143401	}
143402}
143403
143404// method id "compute.regionOperations.wait":
143405
143406type RegionOperationsWaitCall struct {
143407	s          *Service
143408	project    string
143409	region     string
143410	operation  string
143411	urlParams_ gensupport.URLParams
143412	ctx_       context.Context
143413	header_    http.Header
143414}
143415
143416// Wait: Waits for the specified Operation resource to return as `DONE`
143417// or for the request to approach the 2 minute deadline, and retrieves
143418// the specified Operation resource. This method differs from the `GET`
143419// method in that it waits for no more than the default deadline (2
143420// minutes) and then returns the current state of the operation, which
143421// might be `DONE` or still in progress.
143422//
143423// This method is called on a best-effort basis. Specifically:
143424// - In uncommon cases, when the server is overloaded, the request might
143425// return before the default deadline is reached, or might return after
143426// zero seconds.
143427// - If the default deadline is reached, there is no guarantee that the
143428// operation is actually done when the method returns. Be prepared to
143429// retry if the operation is not `DONE`.
143430//
143431// - operation: Name of the Operations resource to return.
143432// - project: Project ID for this request.
143433// - region: Name of the region for this request.
143434func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
143435	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143436	c.project = project
143437	c.region = region
143438	c.operation = operation
143439	return c
143440}
143441
143442// Fields allows partial responses to be retrieved. See
143443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143444// for more information.
143445func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
143446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143447	return c
143448}
143449
143450// Context sets the context to be used in this call's Do method. Any
143451// pending HTTP request will be aborted if the provided context is
143452// canceled.
143453func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
143454	c.ctx_ = ctx
143455	return c
143456}
143457
143458// Header returns an http.Header that can be modified by the caller to
143459// add HTTP headers to the request.
143460func (c *RegionOperationsWaitCall) Header() http.Header {
143461	if c.header_ == nil {
143462		c.header_ = make(http.Header)
143463	}
143464	return c.header_
143465}
143466
143467func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
143468	reqHeaders := make(http.Header)
143469	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143470	for k, v := range c.header_ {
143471		reqHeaders[k] = v
143472	}
143473	reqHeaders.Set("User-Agent", c.s.userAgent())
143474	var body io.Reader = nil
143475	c.urlParams_.Set("alt", alt)
143476	c.urlParams_.Set("prettyPrint", "false")
143477	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}/wait")
143478	urls += "?" + c.urlParams_.Encode()
143479	req, err := http.NewRequest("POST", urls, body)
143480	if err != nil {
143481		return nil, err
143482	}
143483	req.Header = reqHeaders
143484	googleapi.Expand(req.URL, map[string]string{
143485		"project":   c.project,
143486		"region":    c.region,
143487		"operation": c.operation,
143488	})
143489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143490}
143491
143492// Do executes the "compute.regionOperations.wait" call.
143493// Exactly one of *Operation or error will be non-nil. Any non-2xx
143494// status code is an error. Response headers are in either
143495// *Operation.ServerResponse.Header or (if a response was returned at
143496// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143497// to check whether the returned error was because
143498// http.StatusNotModified was returned.
143499func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143500	gensupport.SetOptions(c.urlParams_, opts...)
143501	res, err := c.doRequest("json")
143502	if res != nil && res.StatusCode == http.StatusNotModified {
143503		if res.Body != nil {
143504			res.Body.Close()
143505		}
143506		return nil, &googleapi.Error{
143507			Code:   res.StatusCode,
143508			Header: res.Header,
143509		}
143510	}
143511	if err != nil {
143512		return nil, err
143513	}
143514	defer googleapi.CloseBody(res)
143515	if err := googleapi.CheckResponse(res); err != nil {
143516		return nil, err
143517	}
143518	ret := &Operation{
143519		ServerResponse: googleapi.ServerResponse{
143520			Header:         res.Header,
143521			HTTPStatusCode: res.StatusCode,
143522		},
143523	}
143524	target := &ret
143525	if err := gensupport.DecodeResponse(target, res); err != nil {
143526		return nil, err
143527	}
143528	return ret, nil
143529	// {
143530	//   "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`.",
143531	//   "httpMethod": "POST",
143532	//   "id": "compute.regionOperations.wait",
143533	//   "parameterOrder": [
143534	//     "project",
143535	//     "region",
143536	//     "operation"
143537	//   ],
143538	//   "parameters": {
143539	//     "operation": {
143540	//       "description": "Name of the Operations resource to return.",
143541	//       "location": "path",
143542	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143543	//       "required": true,
143544	//       "type": "string"
143545	//     },
143546	//     "project": {
143547	//       "description": "Project ID for this request.",
143548	//       "location": "path",
143549	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143550	//       "required": true,
143551	//       "type": "string"
143552	//     },
143553	//     "region": {
143554	//       "description": "Name of the region for this request.",
143555	//       "location": "path",
143556	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143557	//       "required": true,
143558	//       "type": "string"
143559	//     }
143560	//   },
143561	//   "path": "projects/{project}/regions/{region}/operations/{operation}/wait",
143562	//   "response": {
143563	//     "$ref": "Operation"
143564	//   },
143565	//   "scopes": [
143566	//     "https://www.googleapis.com/auth/cloud-platform",
143567	//     "https://www.googleapis.com/auth/compute",
143568	//     "https://www.googleapis.com/auth/compute.readonly"
143569	//   ]
143570	// }
143571
143572}
143573
143574// method id "compute.regionSslCertificates.delete":
143575
143576type RegionSslCertificatesDeleteCall struct {
143577	s              *Service
143578	project        string
143579	region         string
143580	sslCertificate string
143581	urlParams_     gensupport.URLParams
143582	ctx_           context.Context
143583	header_        http.Header
143584}
143585
143586// Delete: Deletes the specified SslCertificate resource in the region.
143587//
143588// - project: Project ID for this request.
143589// - region: Name of the region scoping this request.
143590// - sslCertificate: Name of the SslCertificate resource to delete.
143591func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
143592	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143593	c.project = project
143594	c.region = region
143595	c.sslCertificate = sslCertificate
143596	return c
143597}
143598
143599// RequestId sets the optional parameter "requestId": An optional
143600// request ID to identify requests. Specify a unique request ID so that
143601// if you must retry your request, the server will know to ignore the
143602// request if it has already been completed.
143603//
143604// For example, consider a situation where you make an initial request
143605// and the request times out. If you make the request again with the
143606// same request ID, the server can check if original operation with the
143607// same request ID was received, and if so, will ignore the second
143608// request. This prevents clients from accidentally creating duplicate
143609// commitments.
143610//
143611// The request ID must be a valid UUID with the exception that zero UUID
143612// is not supported (00000000-0000-0000-0000-000000000000).
143613func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
143614	c.urlParams_.Set("requestId", requestId)
143615	return c
143616}
143617
143618// Fields allows partial responses to be retrieved. See
143619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143620// for more information.
143621func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
143622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143623	return c
143624}
143625
143626// Context sets the context to be used in this call's Do method. Any
143627// pending HTTP request will be aborted if the provided context is
143628// canceled.
143629func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
143630	c.ctx_ = ctx
143631	return c
143632}
143633
143634// Header returns an http.Header that can be modified by the caller to
143635// add HTTP headers to the request.
143636func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
143637	if c.header_ == nil {
143638		c.header_ = make(http.Header)
143639	}
143640	return c.header_
143641}
143642
143643func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
143644	reqHeaders := make(http.Header)
143645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143646	for k, v := range c.header_ {
143647		reqHeaders[k] = v
143648	}
143649	reqHeaders.Set("User-Agent", c.s.userAgent())
143650	var body io.Reader = nil
143651	c.urlParams_.Set("alt", alt)
143652	c.urlParams_.Set("prettyPrint", "false")
143653	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
143654	urls += "?" + c.urlParams_.Encode()
143655	req, err := http.NewRequest("DELETE", urls, body)
143656	if err != nil {
143657		return nil, err
143658	}
143659	req.Header = reqHeaders
143660	googleapi.Expand(req.URL, map[string]string{
143661		"project":        c.project,
143662		"region":         c.region,
143663		"sslCertificate": c.sslCertificate,
143664	})
143665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143666}
143667
143668// Do executes the "compute.regionSslCertificates.delete" call.
143669// Exactly one of *Operation or error will be non-nil. Any non-2xx
143670// status code is an error. Response headers are in either
143671// *Operation.ServerResponse.Header or (if a response was returned at
143672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143673// to check whether the returned error was because
143674// http.StatusNotModified was returned.
143675func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143676	gensupport.SetOptions(c.urlParams_, opts...)
143677	res, err := c.doRequest("json")
143678	if res != nil && res.StatusCode == http.StatusNotModified {
143679		if res.Body != nil {
143680			res.Body.Close()
143681		}
143682		return nil, &googleapi.Error{
143683			Code:   res.StatusCode,
143684			Header: res.Header,
143685		}
143686	}
143687	if err != nil {
143688		return nil, err
143689	}
143690	defer googleapi.CloseBody(res)
143691	if err := googleapi.CheckResponse(res); err != nil {
143692		return nil, err
143693	}
143694	ret := &Operation{
143695		ServerResponse: googleapi.ServerResponse{
143696			Header:         res.Header,
143697			HTTPStatusCode: res.StatusCode,
143698		},
143699	}
143700	target := &ret
143701	if err := gensupport.DecodeResponse(target, res); err != nil {
143702		return nil, err
143703	}
143704	return ret, nil
143705	// {
143706	//   "description": "Deletes the specified SslCertificate resource in the region.",
143707	//   "httpMethod": "DELETE",
143708	//   "id": "compute.regionSslCertificates.delete",
143709	//   "parameterOrder": [
143710	//     "project",
143711	//     "region",
143712	//     "sslCertificate"
143713	//   ],
143714	//   "parameters": {
143715	//     "project": {
143716	//       "description": "Project ID for this request.",
143717	//       "location": "path",
143718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143719	//       "required": true,
143720	//       "type": "string"
143721	//     },
143722	//     "region": {
143723	//       "description": "Name of the region scoping this request.",
143724	//       "location": "path",
143725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143726	//       "required": true,
143727	//       "type": "string"
143728	//     },
143729	//     "requestId": {
143730	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143731	//       "location": "query",
143732	//       "type": "string"
143733	//     },
143734	//     "sslCertificate": {
143735	//       "description": "Name of the SslCertificate resource to delete.",
143736	//       "location": "path",
143737	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143738	//       "required": true,
143739	//       "type": "string"
143740	//     }
143741	//   },
143742	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
143743	//   "response": {
143744	//     "$ref": "Operation"
143745	//   },
143746	//   "scopes": [
143747	//     "https://www.googleapis.com/auth/cloud-platform",
143748	//     "https://www.googleapis.com/auth/compute"
143749	//   ]
143750	// }
143751
143752}
143753
143754// method id "compute.regionSslCertificates.get":
143755
143756type RegionSslCertificatesGetCall struct {
143757	s              *Service
143758	project        string
143759	region         string
143760	sslCertificate string
143761	urlParams_     gensupport.URLParams
143762	ifNoneMatch_   string
143763	ctx_           context.Context
143764	header_        http.Header
143765}
143766
143767// Get: Returns the specified SslCertificate resource in the specified
143768// region. Get a list of available SSL certificates by making a list()
143769// request.
143770//
143771// - project: Project ID for this request.
143772// - region: Name of the region scoping this request.
143773// - sslCertificate: Name of the SslCertificate resource to return.
143774func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
143775	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143776	c.project = project
143777	c.region = region
143778	c.sslCertificate = sslCertificate
143779	return c
143780}
143781
143782// Fields allows partial responses to be retrieved. See
143783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143784// for more information.
143785func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
143786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143787	return c
143788}
143789
143790// IfNoneMatch sets the optional parameter which makes the operation
143791// fail if the object's ETag matches the given value. This is useful for
143792// getting updates only after the object has changed since the last
143793// request. Use googleapi.IsNotModified to check whether the response
143794// error from Do is the result of In-None-Match.
143795func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
143796	c.ifNoneMatch_ = entityTag
143797	return c
143798}
143799
143800// Context sets the context to be used in this call's Do method. Any
143801// pending HTTP request will be aborted if the provided context is
143802// canceled.
143803func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
143804	c.ctx_ = ctx
143805	return c
143806}
143807
143808// Header returns an http.Header that can be modified by the caller to
143809// add HTTP headers to the request.
143810func (c *RegionSslCertificatesGetCall) Header() http.Header {
143811	if c.header_ == nil {
143812		c.header_ = make(http.Header)
143813	}
143814	return c.header_
143815}
143816
143817func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
143818	reqHeaders := make(http.Header)
143819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143820	for k, v := range c.header_ {
143821		reqHeaders[k] = v
143822	}
143823	reqHeaders.Set("User-Agent", c.s.userAgent())
143824	if c.ifNoneMatch_ != "" {
143825		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143826	}
143827	var body io.Reader = nil
143828	c.urlParams_.Set("alt", alt)
143829	c.urlParams_.Set("prettyPrint", "false")
143830	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
143831	urls += "?" + c.urlParams_.Encode()
143832	req, err := http.NewRequest("GET", urls, body)
143833	if err != nil {
143834		return nil, err
143835	}
143836	req.Header = reqHeaders
143837	googleapi.Expand(req.URL, map[string]string{
143838		"project":        c.project,
143839		"region":         c.region,
143840		"sslCertificate": c.sslCertificate,
143841	})
143842	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143843}
143844
143845// Do executes the "compute.regionSslCertificates.get" call.
143846// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
143847// status code is an error. Response headers are in either
143848// *SslCertificate.ServerResponse.Header or (if a response was returned
143849// at all) in error.(*googleapi.Error).Header. Use
143850// googleapi.IsNotModified to check whether the returned error was
143851// because http.StatusNotModified was returned.
143852func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
143853	gensupport.SetOptions(c.urlParams_, opts...)
143854	res, err := c.doRequest("json")
143855	if res != nil && res.StatusCode == http.StatusNotModified {
143856		if res.Body != nil {
143857			res.Body.Close()
143858		}
143859		return nil, &googleapi.Error{
143860			Code:   res.StatusCode,
143861			Header: res.Header,
143862		}
143863	}
143864	if err != nil {
143865		return nil, err
143866	}
143867	defer googleapi.CloseBody(res)
143868	if err := googleapi.CheckResponse(res); err != nil {
143869		return nil, err
143870	}
143871	ret := &SslCertificate{
143872		ServerResponse: googleapi.ServerResponse{
143873			Header:         res.Header,
143874			HTTPStatusCode: res.StatusCode,
143875		},
143876	}
143877	target := &ret
143878	if err := gensupport.DecodeResponse(target, res); err != nil {
143879		return nil, err
143880	}
143881	return ret, nil
143882	// {
143883	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
143884	//   "httpMethod": "GET",
143885	//   "id": "compute.regionSslCertificates.get",
143886	//   "parameterOrder": [
143887	//     "project",
143888	//     "region",
143889	//     "sslCertificate"
143890	//   ],
143891	//   "parameters": {
143892	//     "project": {
143893	//       "description": "Project ID for this request.",
143894	//       "location": "path",
143895	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143896	//       "required": true,
143897	//       "type": "string"
143898	//     },
143899	//     "region": {
143900	//       "description": "Name of the region scoping this request.",
143901	//       "location": "path",
143902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143903	//       "required": true,
143904	//       "type": "string"
143905	//     },
143906	//     "sslCertificate": {
143907	//       "description": "Name of the SslCertificate resource to return.",
143908	//       "location": "path",
143909	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143910	//       "required": true,
143911	//       "type": "string"
143912	//     }
143913	//   },
143914	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
143915	//   "response": {
143916	//     "$ref": "SslCertificate"
143917	//   },
143918	//   "scopes": [
143919	//     "https://www.googleapis.com/auth/cloud-platform",
143920	//     "https://www.googleapis.com/auth/compute",
143921	//     "https://www.googleapis.com/auth/compute.readonly"
143922	//   ]
143923	// }
143924
143925}
143926
143927// method id "compute.regionSslCertificates.insert":
143928
143929type RegionSslCertificatesInsertCall struct {
143930	s              *Service
143931	project        string
143932	region         string
143933	sslcertificate *SslCertificate
143934	urlParams_     gensupport.URLParams
143935	ctx_           context.Context
143936	header_        http.Header
143937}
143938
143939// Insert: Creates a SslCertificate resource in the specified project
143940// and region using the data included in the request
143941//
143942// - project: Project ID for this request.
143943// - region: Name of the region scoping this request.
143944func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
143945	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143946	c.project = project
143947	c.region = region
143948	c.sslcertificate = sslcertificate
143949	return c
143950}
143951
143952// RequestId sets the optional parameter "requestId": An optional
143953// request ID to identify requests. Specify a unique request ID so that
143954// if you must retry your request, the server will know to ignore the
143955// request if it has already been completed.
143956//
143957// For example, consider a situation where you make an initial request
143958// and the request times out. If you make the request again with the
143959// same request ID, the server can check if original operation with the
143960// same request ID was received, and if so, will ignore the second
143961// request. This prevents clients from accidentally creating duplicate
143962// commitments.
143963//
143964// The request ID must be a valid UUID with the exception that zero UUID
143965// is not supported (00000000-0000-0000-0000-000000000000).
143966func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
143967	c.urlParams_.Set("requestId", requestId)
143968	return c
143969}
143970
143971// Fields allows partial responses to be retrieved. See
143972// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143973// for more information.
143974func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
143975	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143976	return c
143977}
143978
143979// Context sets the context to be used in this call's Do method. Any
143980// pending HTTP request will be aborted if the provided context is
143981// canceled.
143982func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
143983	c.ctx_ = ctx
143984	return c
143985}
143986
143987// Header returns an http.Header that can be modified by the caller to
143988// add HTTP headers to the request.
143989func (c *RegionSslCertificatesInsertCall) Header() http.Header {
143990	if c.header_ == nil {
143991		c.header_ = make(http.Header)
143992	}
143993	return c.header_
143994}
143995
143996func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
143997	reqHeaders := make(http.Header)
143998	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143999	for k, v := range c.header_ {
144000		reqHeaders[k] = v
144001	}
144002	reqHeaders.Set("User-Agent", c.s.userAgent())
144003	var body io.Reader = nil
144004	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
144005	if err != nil {
144006		return nil, err
144007	}
144008	reqHeaders.Set("Content-Type", "application/json")
144009	c.urlParams_.Set("alt", alt)
144010	c.urlParams_.Set("prettyPrint", "false")
144011	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
144012	urls += "?" + c.urlParams_.Encode()
144013	req, err := http.NewRequest("POST", urls, body)
144014	if err != nil {
144015		return nil, err
144016	}
144017	req.Header = reqHeaders
144018	googleapi.Expand(req.URL, map[string]string{
144019		"project": c.project,
144020		"region":  c.region,
144021	})
144022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144023}
144024
144025// Do executes the "compute.regionSslCertificates.insert" call.
144026// Exactly one of *Operation or error will be non-nil. Any non-2xx
144027// status code is an error. Response headers are in either
144028// *Operation.ServerResponse.Header or (if a response was returned at
144029// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144030// to check whether the returned error was because
144031// http.StatusNotModified was returned.
144032func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144033	gensupport.SetOptions(c.urlParams_, opts...)
144034	res, err := c.doRequest("json")
144035	if res != nil && res.StatusCode == http.StatusNotModified {
144036		if res.Body != nil {
144037			res.Body.Close()
144038		}
144039		return nil, &googleapi.Error{
144040			Code:   res.StatusCode,
144041			Header: res.Header,
144042		}
144043	}
144044	if err != nil {
144045		return nil, err
144046	}
144047	defer googleapi.CloseBody(res)
144048	if err := googleapi.CheckResponse(res); err != nil {
144049		return nil, err
144050	}
144051	ret := &Operation{
144052		ServerResponse: googleapi.ServerResponse{
144053			Header:         res.Header,
144054			HTTPStatusCode: res.StatusCode,
144055		},
144056	}
144057	target := &ret
144058	if err := gensupport.DecodeResponse(target, res); err != nil {
144059		return nil, err
144060	}
144061	return ret, nil
144062	// {
144063	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
144064	//   "httpMethod": "POST",
144065	//   "id": "compute.regionSslCertificates.insert",
144066	//   "parameterOrder": [
144067	//     "project",
144068	//     "region"
144069	//   ],
144070	//   "parameters": {
144071	//     "project": {
144072	//       "description": "Project ID for this request.",
144073	//       "location": "path",
144074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144075	//       "required": true,
144076	//       "type": "string"
144077	//     },
144078	//     "region": {
144079	//       "description": "Name of the region scoping this request.",
144080	//       "location": "path",
144081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144082	//       "required": true,
144083	//       "type": "string"
144084	//     },
144085	//     "requestId": {
144086	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144087	//       "location": "query",
144088	//       "type": "string"
144089	//     }
144090	//   },
144091	//   "path": "projects/{project}/regions/{region}/sslCertificates",
144092	//   "request": {
144093	//     "$ref": "SslCertificate"
144094	//   },
144095	//   "response": {
144096	//     "$ref": "Operation"
144097	//   },
144098	//   "scopes": [
144099	//     "https://www.googleapis.com/auth/cloud-platform",
144100	//     "https://www.googleapis.com/auth/compute"
144101	//   ]
144102	// }
144103
144104}
144105
144106// method id "compute.regionSslCertificates.list":
144107
144108type RegionSslCertificatesListCall struct {
144109	s            *Service
144110	project      string
144111	region       string
144112	urlParams_   gensupport.URLParams
144113	ifNoneMatch_ string
144114	ctx_         context.Context
144115	header_      http.Header
144116}
144117
144118// List: Retrieves the list of SslCertificate resources available to the
144119// specified project in the specified region.
144120//
144121// - project: Project ID for this request.
144122// - region: Name of the region scoping this request.
144123func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
144124	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144125	c.project = project
144126	c.region = region
144127	return c
144128}
144129
144130// Filter sets the optional parameter "filter": A filter expression that
144131// filters resources listed in the response. The expression must specify
144132// the field name, a comparison operator, and the value that you want to
144133// use for filtering. The value must be a string, a number, or a
144134// boolean. The comparison operator must be either `=`, `!=`, `>`, or
144135// `<`.
144136//
144137// For example, if you are filtering Compute Engine instances, you can
144138// exclude instances named `example-instance` by specifying `name !=
144139// example-instance`.
144140//
144141// You can also filter nested fields. For example, you could specify
144142// `scheduling.automaticRestart = false` to include instances only if
144143// they are not scheduled for automatic restarts. You can use filtering
144144// on nested fields to filter based on resource labels.
144145//
144146// To filter on multiple expressions, provide each separate expression
144147// within parentheses. For example: ``` (scheduling.automaticRestart =
144148// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
144149// is an `AND` expression. However, you can include `AND` and `OR`
144150// expressions explicitly. For example: ``` (cpuPlatform = "Intel
144151// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
144152// (scheduling.automaticRestart = true) ```
144153func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
144154	c.urlParams_.Set("filter", filter)
144155	return c
144156}
144157
144158// MaxResults sets the optional parameter "maxResults": The maximum
144159// number of results per page that should be returned. If the number of
144160// available results is larger than `maxResults`, Compute Engine returns
144161// a `nextPageToken` that can be used to get the next page of results in
144162// subsequent list requests. Acceptable values are `0` to `500`,
144163// inclusive. (Default: `500`)
144164func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
144165	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144166	return c
144167}
144168
144169// OrderBy sets the optional parameter "orderBy": Sorts list results by
144170// a certain order. By default, results are returned in alphanumerical
144171// order based on the resource name.
144172//
144173// You can also sort results in descending order based on the creation
144174// timestamp using `orderBy="creationTimestamp desc". This sorts
144175// results based on the `creationTimestamp` field in reverse
144176// chronological order (newest result first). Use this to sort resources
144177// like operations so that the newest operation is returned
144178// first.
144179//
144180// Currently, only sorting by `name` or `creationTimestamp desc` is
144181// supported.
144182func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
144183	c.urlParams_.Set("orderBy", orderBy)
144184	return c
144185}
144186
144187// PageToken sets the optional parameter "pageToken": Specifies a page
144188// token to use. Set `pageToken` to the `nextPageToken` returned by a
144189// previous list request to get the next page of results.
144190func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
144191	c.urlParams_.Set("pageToken", pageToken)
144192	return c
144193}
144194
144195// ReturnPartialSuccess sets the optional parameter
144196// "returnPartialSuccess": Opt-in for partial success behavior which
144197// provides partial results in case of failure. The default value is
144198// false.
144199func (c *RegionSslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslCertificatesListCall {
144200	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
144201	return c
144202}
144203
144204// Fields allows partial responses to be retrieved. See
144205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144206// for more information.
144207func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
144208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144209	return c
144210}
144211
144212// IfNoneMatch sets the optional parameter which makes the operation
144213// fail if the object's ETag matches the given value. This is useful for
144214// getting updates only after the object has changed since the last
144215// request. Use googleapi.IsNotModified to check whether the response
144216// error from Do is the result of In-None-Match.
144217func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
144218	c.ifNoneMatch_ = entityTag
144219	return c
144220}
144221
144222// Context sets the context to be used in this call's Do method. Any
144223// pending HTTP request will be aborted if the provided context is
144224// canceled.
144225func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
144226	c.ctx_ = ctx
144227	return c
144228}
144229
144230// Header returns an http.Header that can be modified by the caller to
144231// add HTTP headers to the request.
144232func (c *RegionSslCertificatesListCall) Header() http.Header {
144233	if c.header_ == nil {
144234		c.header_ = make(http.Header)
144235	}
144236	return c.header_
144237}
144238
144239func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
144240	reqHeaders := make(http.Header)
144241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144242	for k, v := range c.header_ {
144243		reqHeaders[k] = v
144244	}
144245	reqHeaders.Set("User-Agent", c.s.userAgent())
144246	if c.ifNoneMatch_ != "" {
144247		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144248	}
144249	var body io.Reader = nil
144250	c.urlParams_.Set("alt", alt)
144251	c.urlParams_.Set("prettyPrint", "false")
144252	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
144253	urls += "?" + c.urlParams_.Encode()
144254	req, err := http.NewRequest("GET", urls, body)
144255	if err != nil {
144256		return nil, err
144257	}
144258	req.Header = reqHeaders
144259	googleapi.Expand(req.URL, map[string]string{
144260		"project": c.project,
144261		"region":  c.region,
144262	})
144263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144264}
144265
144266// Do executes the "compute.regionSslCertificates.list" call.
144267// Exactly one of *SslCertificateList or error will be non-nil. Any
144268// non-2xx status code is an error. Response headers are in either
144269// *SslCertificateList.ServerResponse.Header or (if a response was
144270// returned at all) in error.(*googleapi.Error).Header. Use
144271// googleapi.IsNotModified to check whether the returned error was
144272// because http.StatusNotModified was returned.
144273func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
144274	gensupport.SetOptions(c.urlParams_, opts...)
144275	res, err := c.doRequest("json")
144276	if res != nil && res.StatusCode == http.StatusNotModified {
144277		if res.Body != nil {
144278			res.Body.Close()
144279		}
144280		return nil, &googleapi.Error{
144281			Code:   res.StatusCode,
144282			Header: res.Header,
144283		}
144284	}
144285	if err != nil {
144286		return nil, err
144287	}
144288	defer googleapi.CloseBody(res)
144289	if err := googleapi.CheckResponse(res); err != nil {
144290		return nil, err
144291	}
144292	ret := &SslCertificateList{
144293		ServerResponse: googleapi.ServerResponse{
144294			Header:         res.Header,
144295			HTTPStatusCode: res.StatusCode,
144296		},
144297	}
144298	target := &ret
144299	if err := gensupport.DecodeResponse(target, res); err != nil {
144300		return nil, err
144301	}
144302	return ret, nil
144303	// {
144304	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
144305	//   "httpMethod": "GET",
144306	//   "id": "compute.regionSslCertificates.list",
144307	//   "parameterOrder": [
144308	//     "project",
144309	//     "region"
144310	//   ],
144311	//   "parameters": {
144312	//     "filter": {
144313	//       "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) ```",
144314	//       "location": "query",
144315	//       "type": "string"
144316	//     },
144317	//     "maxResults": {
144318	//       "default": "500",
144319	//       "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`)",
144320	//       "format": "uint32",
144321	//       "location": "query",
144322	//       "minimum": "0",
144323	//       "type": "integer"
144324	//     },
144325	//     "orderBy": {
144326	//       "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.",
144327	//       "location": "query",
144328	//       "type": "string"
144329	//     },
144330	//     "pageToken": {
144331	//       "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.",
144332	//       "location": "query",
144333	//       "type": "string"
144334	//     },
144335	//     "project": {
144336	//       "description": "Project ID for this request.",
144337	//       "location": "path",
144338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144339	//       "required": true,
144340	//       "type": "string"
144341	//     },
144342	//     "region": {
144343	//       "description": "Name of the region scoping this request.",
144344	//       "location": "path",
144345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144346	//       "required": true,
144347	//       "type": "string"
144348	//     },
144349	//     "returnPartialSuccess": {
144350	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
144351	//       "location": "query",
144352	//       "type": "boolean"
144353	//     }
144354	//   },
144355	//   "path": "projects/{project}/regions/{region}/sslCertificates",
144356	//   "response": {
144357	//     "$ref": "SslCertificateList"
144358	//   },
144359	//   "scopes": [
144360	//     "https://www.googleapis.com/auth/cloud-platform",
144361	//     "https://www.googleapis.com/auth/compute",
144362	//     "https://www.googleapis.com/auth/compute.readonly"
144363	//   ]
144364	// }
144365
144366}
144367
144368// Pages invokes f for each page of results.
144369// A non-nil error returned from f will halt the iteration.
144370// The provided context supersedes any context provided to the Context method.
144371func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
144372	c.ctx_ = ctx
144373	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144374	for {
144375		x, err := c.Do()
144376		if err != nil {
144377			return err
144378		}
144379		if err := f(x); err != nil {
144380			return err
144381		}
144382		if x.NextPageToken == "" {
144383			return nil
144384		}
144385		c.PageToken(x.NextPageToken)
144386	}
144387}
144388
144389// method id "compute.regionSslCertificates.testIamPermissions":
144390
144391type RegionSslCertificatesTestIamPermissionsCall struct {
144392	s                      *Service
144393	project                string
144394	region                 string
144395	resource               string
144396	testpermissionsrequest *TestPermissionsRequest
144397	urlParams_             gensupport.URLParams
144398	ctx_                   context.Context
144399	header_                http.Header
144400}
144401
144402// TestIamPermissions: Returns permissions that a caller has on the
144403// specified resource and region.
144404//
144405// - project: Project ID for this request.
144406// - region: The name of the region for this request.
144407// - resource: Name or id of the resource for this request.
144408func (r *RegionSslCertificatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionSslCertificatesTestIamPermissionsCall {
144409	c := &RegionSslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144410	c.project = project
144411	c.region = region
144412	c.resource = resource
144413	c.testpermissionsrequest = testpermissionsrequest
144414	return c
144415}
144416
144417// Fields allows partial responses to be retrieved. See
144418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144419// for more information.
144420func (c *RegionSslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionSslCertificatesTestIamPermissionsCall {
144421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144422	return c
144423}
144424
144425// Context sets the context to be used in this call's Do method. Any
144426// pending HTTP request will be aborted if the provided context is
144427// canceled.
144428func (c *RegionSslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *RegionSslCertificatesTestIamPermissionsCall {
144429	c.ctx_ = ctx
144430	return c
144431}
144432
144433// Header returns an http.Header that can be modified by the caller to
144434// add HTTP headers to the request.
144435func (c *RegionSslCertificatesTestIamPermissionsCall) Header() http.Header {
144436	if c.header_ == nil {
144437		c.header_ = make(http.Header)
144438	}
144439	return c.header_
144440}
144441
144442func (c *RegionSslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
144443	reqHeaders := make(http.Header)
144444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144445	for k, v := range c.header_ {
144446		reqHeaders[k] = v
144447	}
144448	reqHeaders.Set("User-Agent", c.s.userAgent())
144449	var body io.Reader = nil
144450	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
144451	if err != nil {
144452		return nil, err
144453	}
144454	reqHeaders.Set("Content-Type", "application/json")
144455	c.urlParams_.Set("alt", alt)
144456	c.urlParams_.Set("prettyPrint", "false")
144457	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions")
144458	urls += "?" + c.urlParams_.Encode()
144459	req, err := http.NewRequest("POST", urls, body)
144460	if err != nil {
144461		return nil, err
144462	}
144463	req.Header = reqHeaders
144464	googleapi.Expand(req.URL, map[string]string{
144465		"project":  c.project,
144466		"region":   c.region,
144467		"resource": c.resource,
144468	})
144469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144470}
144471
144472// Do executes the "compute.regionSslCertificates.testIamPermissions" call.
144473// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
144474// non-2xx status code is an error. Response headers are in either
144475// *TestPermissionsResponse.ServerResponse.Header or (if a response was
144476// returned at all) in error.(*googleapi.Error).Header. Use
144477// googleapi.IsNotModified to check whether the returned error was
144478// because http.StatusNotModified was returned.
144479func (c *RegionSslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
144480	gensupport.SetOptions(c.urlParams_, opts...)
144481	res, err := c.doRequest("json")
144482	if res != nil && res.StatusCode == http.StatusNotModified {
144483		if res.Body != nil {
144484			res.Body.Close()
144485		}
144486		return nil, &googleapi.Error{
144487			Code:   res.StatusCode,
144488			Header: res.Header,
144489		}
144490	}
144491	if err != nil {
144492		return nil, err
144493	}
144494	defer googleapi.CloseBody(res)
144495	if err := googleapi.CheckResponse(res); err != nil {
144496		return nil, err
144497	}
144498	ret := &TestPermissionsResponse{
144499		ServerResponse: googleapi.ServerResponse{
144500			Header:         res.Header,
144501			HTTPStatusCode: res.StatusCode,
144502		},
144503	}
144504	target := &ret
144505	if err := gensupport.DecodeResponse(target, res); err != nil {
144506		return nil, err
144507	}
144508	return ret, nil
144509	// {
144510	//   "description": "Returns permissions that a caller has on the specified resource and region.",
144511	//   "httpMethod": "POST",
144512	//   "id": "compute.regionSslCertificates.testIamPermissions",
144513	//   "parameterOrder": [
144514	//     "project",
144515	//     "region",
144516	//     "resource"
144517	//   ],
144518	//   "parameters": {
144519	//     "project": {
144520	//       "description": "Project ID for this request.",
144521	//       "location": "path",
144522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144523	//       "required": true,
144524	//       "type": "string"
144525	//     },
144526	//     "region": {
144527	//       "description": "The name of the region for this request.",
144528	//       "location": "path",
144529	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144530	//       "required": true,
144531	//       "type": "string"
144532	//     },
144533	//     "resource": {
144534	//       "description": "Name or id of the resource for this request.",
144535	//       "location": "path",
144536	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144537	//       "required": true,
144538	//       "type": "string"
144539	//     }
144540	//   },
144541	//   "path": "projects/{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions",
144542	//   "request": {
144543	//     "$ref": "TestPermissionsRequest"
144544	//   },
144545	//   "response": {
144546	//     "$ref": "TestPermissionsResponse"
144547	//   },
144548	//   "scopes": [
144549	//     "https://www.googleapis.com/auth/cloud-platform",
144550	//     "https://www.googleapis.com/auth/compute",
144551	//     "https://www.googleapis.com/auth/compute.readonly"
144552	//   ]
144553	// }
144554
144555}
144556
144557// method id "compute.regionTargetHttpProxies.delete":
144558
144559type RegionTargetHttpProxiesDeleteCall struct {
144560	s               *Service
144561	project         string
144562	region          string
144563	targetHttpProxy string
144564	urlParams_      gensupport.URLParams
144565	ctx_            context.Context
144566	header_         http.Header
144567}
144568
144569// Delete: Deletes the specified TargetHttpProxy resource.
144570//
144571// - project: Project ID for this request.
144572// - region: Name of the region scoping this request.
144573// - targetHttpProxy: Name of the TargetHttpProxy resource to delete.
144574func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
144575	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144576	c.project = project
144577	c.region = region
144578	c.targetHttpProxy = targetHttpProxy
144579	return c
144580}
144581
144582// RequestId sets the optional parameter "requestId": An optional
144583// request ID to identify requests. Specify a unique request ID so that
144584// if you must retry your request, the server will know to ignore the
144585// request if it has already been completed.
144586//
144587// For example, consider a situation where you make an initial request
144588// and the request times out. If you make the request again with the
144589// same request ID, the server can check if original operation with the
144590// same request ID was received, and if so, will ignore the second
144591// request. This prevents clients from accidentally creating duplicate
144592// commitments.
144593//
144594// The request ID must be a valid UUID with the exception that zero UUID
144595// is not supported (00000000-0000-0000-0000-000000000000).
144596func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
144597	c.urlParams_.Set("requestId", requestId)
144598	return c
144599}
144600
144601// Fields allows partial responses to be retrieved. See
144602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144603// for more information.
144604func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
144605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144606	return c
144607}
144608
144609// Context sets the context to be used in this call's Do method. Any
144610// pending HTTP request will be aborted if the provided context is
144611// canceled.
144612func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
144613	c.ctx_ = ctx
144614	return c
144615}
144616
144617// Header returns an http.Header that can be modified by the caller to
144618// add HTTP headers to the request.
144619func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
144620	if c.header_ == nil {
144621		c.header_ = make(http.Header)
144622	}
144623	return c.header_
144624}
144625
144626func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
144627	reqHeaders := make(http.Header)
144628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144629	for k, v := range c.header_ {
144630		reqHeaders[k] = v
144631	}
144632	reqHeaders.Set("User-Agent", c.s.userAgent())
144633	var body io.Reader = nil
144634	c.urlParams_.Set("alt", alt)
144635	c.urlParams_.Set("prettyPrint", "false")
144636	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
144637	urls += "?" + c.urlParams_.Encode()
144638	req, err := http.NewRequest("DELETE", urls, body)
144639	if err != nil {
144640		return nil, err
144641	}
144642	req.Header = reqHeaders
144643	googleapi.Expand(req.URL, map[string]string{
144644		"project":         c.project,
144645		"region":          c.region,
144646		"targetHttpProxy": c.targetHttpProxy,
144647	})
144648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144649}
144650
144651// Do executes the "compute.regionTargetHttpProxies.delete" call.
144652// Exactly one of *Operation or error will be non-nil. Any non-2xx
144653// status code is an error. Response headers are in either
144654// *Operation.ServerResponse.Header or (if a response was returned at
144655// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144656// to check whether the returned error was because
144657// http.StatusNotModified was returned.
144658func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144659	gensupport.SetOptions(c.urlParams_, opts...)
144660	res, err := c.doRequest("json")
144661	if res != nil && res.StatusCode == http.StatusNotModified {
144662		if res.Body != nil {
144663			res.Body.Close()
144664		}
144665		return nil, &googleapi.Error{
144666			Code:   res.StatusCode,
144667			Header: res.Header,
144668		}
144669	}
144670	if err != nil {
144671		return nil, err
144672	}
144673	defer googleapi.CloseBody(res)
144674	if err := googleapi.CheckResponse(res); err != nil {
144675		return nil, err
144676	}
144677	ret := &Operation{
144678		ServerResponse: googleapi.ServerResponse{
144679			Header:         res.Header,
144680			HTTPStatusCode: res.StatusCode,
144681		},
144682	}
144683	target := &ret
144684	if err := gensupport.DecodeResponse(target, res); err != nil {
144685		return nil, err
144686	}
144687	return ret, nil
144688	// {
144689	//   "description": "Deletes the specified TargetHttpProxy resource.",
144690	//   "httpMethod": "DELETE",
144691	//   "id": "compute.regionTargetHttpProxies.delete",
144692	//   "parameterOrder": [
144693	//     "project",
144694	//     "region",
144695	//     "targetHttpProxy"
144696	//   ],
144697	//   "parameters": {
144698	//     "project": {
144699	//       "description": "Project ID for this request.",
144700	//       "location": "path",
144701	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144702	//       "required": true,
144703	//       "type": "string"
144704	//     },
144705	//     "region": {
144706	//       "description": "Name of the region scoping this request.",
144707	//       "location": "path",
144708	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144709	//       "required": true,
144710	//       "type": "string"
144711	//     },
144712	//     "requestId": {
144713	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144714	//       "location": "query",
144715	//       "type": "string"
144716	//     },
144717	//     "targetHttpProxy": {
144718	//       "description": "Name of the TargetHttpProxy resource to delete.",
144719	//       "location": "path",
144720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144721	//       "required": true,
144722	//       "type": "string"
144723	//     }
144724	//   },
144725	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
144726	//   "response": {
144727	//     "$ref": "Operation"
144728	//   },
144729	//   "scopes": [
144730	//     "https://www.googleapis.com/auth/cloud-platform",
144731	//     "https://www.googleapis.com/auth/compute"
144732	//   ]
144733	// }
144734
144735}
144736
144737// method id "compute.regionTargetHttpProxies.get":
144738
144739type RegionTargetHttpProxiesGetCall struct {
144740	s               *Service
144741	project         string
144742	region          string
144743	targetHttpProxy string
144744	urlParams_      gensupport.URLParams
144745	ifNoneMatch_    string
144746	ctx_            context.Context
144747	header_         http.Header
144748}
144749
144750// Get: Returns the specified TargetHttpProxy resource in the specified
144751// region. Gets a list of available target HTTP proxies by making a
144752// list() request.
144753//
144754// - project: Project ID for this request.
144755// - region: Name of the region scoping this request.
144756// - targetHttpProxy: Name of the TargetHttpProxy resource to return.
144757func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
144758	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144759	c.project = project
144760	c.region = region
144761	c.targetHttpProxy = targetHttpProxy
144762	return c
144763}
144764
144765// Fields allows partial responses to be retrieved. See
144766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144767// for more information.
144768func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
144769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144770	return c
144771}
144772
144773// IfNoneMatch sets the optional parameter which makes the operation
144774// fail if the object's ETag matches the given value. This is useful for
144775// getting updates only after the object has changed since the last
144776// request. Use googleapi.IsNotModified to check whether the response
144777// error from Do is the result of In-None-Match.
144778func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
144779	c.ifNoneMatch_ = entityTag
144780	return c
144781}
144782
144783// Context sets the context to be used in this call's Do method. Any
144784// pending HTTP request will be aborted if the provided context is
144785// canceled.
144786func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
144787	c.ctx_ = ctx
144788	return c
144789}
144790
144791// Header returns an http.Header that can be modified by the caller to
144792// add HTTP headers to the request.
144793func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
144794	if c.header_ == nil {
144795		c.header_ = make(http.Header)
144796	}
144797	return c.header_
144798}
144799
144800func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
144801	reqHeaders := make(http.Header)
144802	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144803	for k, v := range c.header_ {
144804		reqHeaders[k] = v
144805	}
144806	reqHeaders.Set("User-Agent", c.s.userAgent())
144807	if c.ifNoneMatch_ != "" {
144808		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144809	}
144810	var body io.Reader = nil
144811	c.urlParams_.Set("alt", alt)
144812	c.urlParams_.Set("prettyPrint", "false")
144813	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
144814	urls += "?" + c.urlParams_.Encode()
144815	req, err := http.NewRequest("GET", urls, body)
144816	if err != nil {
144817		return nil, err
144818	}
144819	req.Header = reqHeaders
144820	googleapi.Expand(req.URL, map[string]string{
144821		"project":         c.project,
144822		"region":          c.region,
144823		"targetHttpProxy": c.targetHttpProxy,
144824	})
144825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144826}
144827
144828// Do executes the "compute.regionTargetHttpProxies.get" call.
144829// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
144830// status code is an error. Response headers are in either
144831// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
144832// at all) in error.(*googleapi.Error).Header. Use
144833// googleapi.IsNotModified to check whether the returned error was
144834// because http.StatusNotModified was returned.
144835func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
144836	gensupport.SetOptions(c.urlParams_, opts...)
144837	res, err := c.doRequest("json")
144838	if res != nil && res.StatusCode == http.StatusNotModified {
144839		if res.Body != nil {
144840			res.Body.Close()
144841		}
144842		return nil, &googleapi.Error{
144843			Code:   res.StatusCode,
144844			Header: res.Header,
144845		}
144846	}
144847	if err != nil {
144848		return nil, err
144849	}
144850	defer googleapi.CloseBody(res)
144851	if err := googleapi.CheckResponse(res); err != nil {
144852		return nil, err
144853	}
144854	ret := &TargetHttpProxy{
144855		ServerResponse: googleapi.ServerResponse{
144856			Header:         res.Header,
144857			HTTPStatusCode: res.StatusCode,
144858		},
144859	}
144860	target := &ret
144861	if err := gensupport.DecodeResponse(target, res); err != nil {
144862		return nil, err
144863	}
144864	return ret, nil
144865	// {
144866	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
144867	//   "httpMethod": "GET",
144868	//   "id": "compute.regionTargetHttpProxies.get",
144869	//   "parameterOrder": [
144870	//     "project",
144871	//     "region",
144872	//     "targetHttpProxy"
144873	//   ],
144874	//   "parameters": {
144875	//     "project": {
144876	//       "description": "Project ID for this request.",
144877	//       "location": "path",
144878	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144879	//       "required": true,
144880	//       "type": "string"
144881	//     },
144882	//     "region": {
144883	//       "description": "Name of the region scoping this request.",
144884	//       "location": "path",
144885	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144886	//       "required": true,
144887	//       "type": "string"
144888	//     },
144889	//     "targetHttpProxy": {
144890	//       "description": "Name of the TargetHttpProxy resource to return.",
144891	//       "location": "path",
144892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144893	//       "required": true,
144894	//       "type": "string"
144895	//     }
144896	//   },
144897	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
144898	//   "response": {
144899	//     "$ref": "TargetHttpProxy"
144900	//   },
144901	//   "scopes": [
144902	//     "https://www.googleapis.com/auth/cloud-platform",
144903	//     "https://www.googleapis.com/auth/compute",
144904	//     "https://www.googleapis.com/auth/compute.readonly"
144905	//   ]
144906	// }
144907
144908}
144909
144910// method id "compute.regionTargetHttpProxies.insert":
144911
144912type RegionTargetHttpProxiesInsertCall struct {
144913	s               *Service
144914	project         string
144915	region          string
144916	targethttpproxy *TargetHttpProxy
144917	urlParams_      gensupport.URLParams
144918	ctx_            context.Context
144919	header_         http.Header
144920}
144921
144922// Insert: Creates a TargetHttpProxy resource in the specified project
144923// and region using the data included in the request.
144924//
144925// - project: Project ID for this request.
144926// - region: Name of the region scoping this request.
144927func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
144928	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144929	c.project = project
144930	c.region = region
144931	c.targethttpproxy = targethttpproxy
144932	return c
144933}
144934
144935// RequestId sets the optional parameter "requestId": An optional
144936// request ID to identify requests. Specify a unique request ID so that
144937// if you must retry your request, the server will know to ignore the
144938// request if it has already been completed.
144939//
144940// For example, consider a situation where you make an initial request
144941// and the request times out. If you make the request again with the
144942// same request ID, the server can check if original operation with the
144943// same request ID was received, and if so, will ignore the second
144944// request. This prevents clients from accidentally creating duplicate
144945// commitments.
144946//
144947// The request ID must be a valid UUID with the exception that zero UUID
144948// is not supported (00000000-0000-0000-0000-000000000000).
144949func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
144950	c.urlParams_.Set("requestId", requestId)
144951	return c
144952}
144953
144954// Fields allows partial responses to be retrieved. See
144955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144956// for more information.
144957func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
144958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144959	return c
144960}
144961
144962// Context sets the context to be used in this call's Do method. Any
144963// pending HTTP request will be aborted if the provided context is
144964// canceled.
144965func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
144966	c.ctx_ = ctx
144967	return c
144968}
144969
144970// Header returns an http.Header that can be modified by the caller to
144971// add HTTP headers to the request.
144972func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
144973	if c.header_ == nil {
144974		c.header_ = make(http.Header)
144975	}
144976	return c.header_
144977}
144978
144979func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
144980	reqHeaders := make(http.Header)
144981	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144982	for k, v := range c.header_ {
144983		reqHeaders[k] = v
144984	}
144985	reqHeaders.Set("User-Agent", c.s.userAgent())
144986	var body io.Reader = nil
144987	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
144988	if err != nil {
144989		return nil, err
144990	}
144991	reqHeaders.Set("Content-Type", "application/json")
144992	c.urlParams_.Set("alt", alt)
144993	c.urlParams_.Set("prettyPrint", "false")
144994	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
144995	urls += "?" + c.urlParams_.Encode()
144996	req, err := http.NewRequest("POST", urls, body)
144997	if err != nil {
144998		return nil, err
144999	}
145000	req.Header = reqHeaders
145001	googleapi.Expand(req.URL, map[string]string{
145002		"project": c.project,
145003		"region":  c.region,
145004	})
145005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145006}
145007
145008// Do executes the "compute.regionTargetHttpProxies.insert" call.
145009// Exactly one of *Operation or error will be non-nil. Any non-2xx
145010// status code is an error. Response headers are in either
145011// *Operation.ServerResponse.Header or (if a response was returned at
145012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145013// to check whether the returned error was because
145014// http.StatusNotModified was returned.
145015func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145016	gensupport.SetOptions(c.urlParams_, opts...)
145017	res, err := c.doRequest("json")
145018	if res != nil && res.StatusCode == http.StatusNotModified {
145019		if res.Body != nil {
145020			res.Body.Close()
145021		}
145022		return nil, &googleapi.Error{
145023			Code:   res.StatusCode,
145024			Header: res.Header,
145025		}
145026	}
145027	if err != nil {
145028		return nil, err
145029	}
145030	defer googleapi.CloseBody(res)
145031	if err := googleapi.CheckResponse(res); err != nil {
145032		return nil, err
145033	}
145034	ret := &Operation{
145035		ServerResponse: googleapi.ServerResponse{
145036			Header:         res.Header,
145037			HTTPStatusCode: res.StatusCode,
145038		},
145039	}
145040	target := &ret
145041	if err := gensupport.DecodeResponse(target, res); err != nil {
145042		return nil, err
145043	}
145044	return ret, nil
145045	// {
145046	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
145047	//   "httpMethod": "POST",
145048	//   "id": "compute.regionTargetHttpProxies.insert",
145049	//   "parameterOrder": [
145050	//     "project",
145051	//     "region"
145052	//   ],
145053	//   "parameters": {
145054	//     "project": {
145055	//       "description": "Project ID for this request.",
145056	//       "location": "path",
145057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145058	//       "required": true,
145059	//       "type": "string"
145060	//     },
145061	//     "region": {
145062	//       "description": "Name of the region scoping this request.",
145063	//       "location": "path",
145064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145065	//       "required": true,
145066	//       "type": "string"
145067	//     },
145068	//     "requestId": {
145069	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145070	//       "location": "query",
145071	//       "type": "string"
145072	//     }
145073	//   },
145074	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
145075	//   "request": {
145076	//     "$ref": "TargetHttpProxy"
145077	//   },
145078	//   "response": {
145079	//     "$ref": "Operation"
145080	//   },
145081	//   "scopes": [
145082	//     "https://www.googleapis.com/auth/cloud-platform",
145083	//     "https://www.googleapis.com/auth/compute"
145084	//   ]
145085	// }
145086
145087}
145088
145089// method id "compute.regionTargetHttpProxies.list":
145090
145091type RegionTargetHttpProxiesListCall struct {
145092	s            *Service
145093	project      string
145094	region       string
145095	urlParams_   gensupport.URLParams
145096	ifNoneMatch_ string
145097	ctx_         context.Context
145098	header_      http.Header
145099}
145100
145101// List: Retrieves the list of TargetHttpProxy resources available to
145102// the specified project in the specified region.
145103//
145104// - project: Project ID for this request.
145105// - region: Name of the region scoping this request.
145106func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
145107	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145108	c.project = project
145109	c.region = region
145110	return c
145111}
145112
145113// Filter sets the optional parameter "filter": A filter expression that
145114// filters resources listed in the response. The expression must specify
145115// the field name, a comparison operator, and the value that you want to
145116// use for filtering. The value must be a string, a number, or a
145117// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145118// `<`.
145119//
145120// For example, if you are filtering Compute Engine instances, you can
145121// exclude instances named `example-instance` by specifying `name !=
145122// example-instance`.
145123//
145124// You can also filter nested fields. For example, you could specify
145125// `scheduling.automaticRestart = false` to include instances only if
145126// they are not scheduled for automatic restarts. You can use filtering
145127// on nested fields to filter based on resource labels.
145128//
145129// To filter on multiple expressions, provide each separate expression
145130// within parentheses. For example: ``` (scheduling.automaticRestart =
145131// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
145132// is an `AND` expression. However, you can include `AND` and `OR`
145133// expressions explicitly. For example: ``` (cpuPlatform = "Intel
145134// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
145135// (scheduling.automaticRestart = true) ```
145136func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
145137	c.urlParams_.Set("filter", filter)
145138	return c
145139}
145140
145141// MaxResults sets the optional parameter "maxResults": The maximum
145142// number of results per page that should be returned. If the number of
145143// available results is larger than `maxResults`, Compute Engine returns
145144// a `nextPageToken` that can be used to get the next page of results in
145145// subsequent list requests. Acceptable values are `0` to `500`,
145146// inclusive. (Default: `500`)
145147func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
145148	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145149	return c
145150}
145151
145152// OrderBy sets the optional parameter "orderBy": Sorts list results by
145153// a certain order. By default, results are returned in alphanumerical
145154// order based on the resource name.
145155//
145156// You can also sort results in descending order based on the creation
145157// timestamp using `orderBy="creationTimestamp desc". This sorts
145158// results based on the `creationTimestamp` field in reverse
145159// chronological order (newest result first). Use this to sort resources
145160// like operations so that the newest operation is returned
145161// first.
145162//
145163// Currently, only sorting by `name` or `creationTimestamp desc` is
145164// supported.
145165func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
145166	c.urlParams_.Set("orderBy", orderBy)
145167	return c
145168}
145169
145170// PageToken sets the optional parameter "pageToken": Specifies a page
145171// token to use. Set `pageToken` to the `nextPageToken` returned by a
145172// previous list request to get the next page of results.
145173func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
145174	c.urlParams_.Set("pageToken", pageToken)
145175	return c
145176}
145177
145178// ReturnPartialSuccess sets the optional parameter
145179// "returnPartialSuccess": Opt-in for partial success behavior which
145180// provides partial results in case of failure. The default value is
145181// false.
145182func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpProxiesListCall {
145183	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
145184	return c
145185}
145186
145187// Fields allows partial responses to be retrieved. See
145188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145189// for more information.
145190func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
145191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145192	return c
145193}
145194
145195// IfNoneMatch sets the optional parameter which makes the operation
145196// fail if the object's ETag matches the given value. This is useful for
145197// getting updates only after the object has changed since the last
145198// request. Use googleapi.IsNotModified to check whether the response
145199// error from Do is the result of In-None-Match.
145200func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
145201	c.ifNoneMatch_ = entityTag
145202	return c
145203}
145204
145205// Context sets the context to be used in this call's Do method. Any
145206// pending HTTP request will be aborted if the provided context is
145207// canceled.
145208func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
145209	c.ctx_ = ctx
145210	return c
145211}
145212
145213// Header returns an http.Header that can be modified by the caller to
145214// add HTTP headers to the request.
145215func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
145216	if c.header_ == nil {
145217		c.header_ = make(http.Header)
145218	}
145219	return c.header_
145220}
145221
145222func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
145223	reqHeaders := make(http.Header)
145224	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145225	for k, v := range c.header_ {
145226		reqHeaders[k] = v
145227	}
145228	reqHeaders.Set("User-Agent", c.s.userAgent())
145229	if c.ifNoneMatch_ != "" {
145230		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145231	}
145232	var body io.Reader = nil
145233	c.urlParams_.Set("alt", alt)
145234	c.urlParams_.Set("prettyPrint", "false")
145235	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
145236	urls += "?" + c.urlParams_.Encode()
145237	req, err := http.NewRequest("GET", urls, body)
145238	if err != nil {
145239		return nil, err
145240	}
145241	req.Header = reqHeaders
145242	googleapi.Expand(req.URL, map[string]string{
145243		"project": c.project,
145244		"region":  c.region,
145245	})
145246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145247}
145248
145249// Do executes the "compute.regionTargetHttpProxies.list" call.
145250// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
145251// non-2xx status code is an error. Response headers are in either
145252// *TargetHttpProxyList.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 *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, 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 := &TargetHttpProxyList{
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": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
145288	//   "httpMethod": "GET",
145289	//   "id": "compute.regionTargetHttpProxies.list",
145290	//   "parameterOrder": [
145291	//     "project",
145292	//     "region"
145293	//   ],
145294	//   "parameters": {
145295	//     "filter": {
145296	//       "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) ```",
145297	//       "location": "query",
145298	//       "type": "string"
145299	//     },
145300	//     "maxResults": {
145301	//       "default": "500",
145302	//       "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`)",
145303	//       "format": "uint32",
145304	//       "location": "query",
145305	//       "minimum": "0",
145306	//       "type": "integer"
145307	//     },
145308	//     "orderBy": {
145309	//       "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.",
145310	//       "location": "query",
145311	//       "type": "string"
145312	//     },
145313	//     "pageToken": {
145314	//       "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.",
145315	//       "location": "query",
145316	//       "type": "string"
145317	//     },
145318	//     "project": {
145319	//       "description": "Project ID for this request.",
145320	//       "location": "path",
145321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145322	//       "required": true,
145323	//       "type": "string"
145324	//     },
145325	//     "region": {
145326	//       "description": "Name of the region scoping this request.",
145327	//       "location": "path",
145328	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145329	//       "required": true,
145330	//       "type": "string"
145331	//     },
145332	//     "returnPartialSuccess": {
145333	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
145334	//       "location": "query",
145335	//       "type": "boolean"
145336	//     }
145337	//   },
145338	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
145339	//   "response": {
145340	//     "$ref": "TargetHttpProxyList"
145341	//   },
145342	//   "scopes": [
145343	//     "https://www.googleapis.com/auth/cloud-platform",
145344	//     "https://www.googleapis.com/auth/compute",
145345	//     "https://www.googleapis.com/auth/compute.readonly"
145346	//   ]
145347	// }
145348
145349}
145350
145351// Pages invokes f for each page of results.
145352// A non-nil error returned from f will halt the iteration.
145353// The provided context supersedes any context provided to the Context method.
145354func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
145355	c.ctx_ = ctx
145356	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145357	for {
145358		x, err := c.Do()
145359		if err != nil {
145360			return err
145361		}
145362		if err := f(x); err != nil {
145363			return err
145364		}
145365		if x.NextPageToken == "" {
145366			return nil
145367		}
145368		c.PageToken(x.NextPageToken)
145369	}
145370}
145371
145372// method id "compute.regionTargetHttpProxies.setUrlMap":
145373
145374type RegionTargetHttpProxiesSetUrlMapCall struct {
145375	s               *Service
145376	project         string
145377	region          string
145378	targetHttpProxy string
145379	urlmapreference *UrlMapReference
145380	urlParams_      gensupport.URLParams
145381	ctx_            context.Context
145382	header_         http.Header
145383}
145384
145385// SetUrlMap: Changes the URL map for TargetHttpProxy.
145386//
145387// - project: Project ID for this request.
145388// - region: Name of the region scoping this request.
145389// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
145390func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
145391	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145392	c.project = project
145393	c.region = region
145394	c.targetHttpProxy = targetHttpProxy
145395	c.urlmapreference = urlmapreference
145396	return c
145397}
145398
145399// RequestId sets the optional parameter "requestId": An optional
145400// request ID to identify requests. Specify a unique request ID so that
145401// if you must retry your request, the server will know to ignore the
145402// request if it has already been completed.
145403//
145404// For example, consider a situation where you make an initial request
145405// and the request times out. If you make the request again with the
145406// same request ID, the server can check if original operation with the
145407// same request ID was received, and if so, will ignore the second
145408// request. This prevents clients from accidentally creating duplicate
145409// commitments.
145410//
145411// The request ID must be a valid UUID with the exception that zero UUID
145412// is not supported (00000000-0000-0000-0000-000000000000).
145413func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
145414	c.urlParams_.Set("requestId", requestId)
145415	return c
145416}
145417
145418// Fields allows partial responses to be retrieved. See
145419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145420// for more information.
145421func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
145422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145423	return c
145424}
145425
145426// Context sets the context to be used in this call's Do method. Any
145427// pending HTTP request will be aborted if the provided context is
145428// canceled.
145429func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
145430	c.ctx_ = ctx
145431	return c
145432}
145433
145434// Header returns an http.Header that can be modified by the caller to
145435// add HTTP headers to the request.
145436func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
145437	if c.header_ == nil {
145438		c.header_ = make(http.Header)
145439	}
145440	return c.header_
145441}
145442
145443func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
145444	reqHeaders := make(http.Header)
145445	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145446	for k, v := range c.header_ {
145447		reqHeaders[k] = v
145448	}
145449	reqHeaders.Set("User-Agent", c.s.userAgent())
145450	var body io.Reader = nil
145451	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
145452	if err != nil {
145453		return nil, err
145454	}
145455	reqHeaders.Set("Content-Type", "application/json")
145456	c.urlParams_.Set("alt", alt)
145457	c.urlParams_.Set("prettyPrint", "false")
145458	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
145459	urls += "?" + c.urlParams_.Encode()
145460	req, err := http.NewRequest("POST", urls, body)
145461	if err != nil {
145462		return nil, err
145463	}
145464	req.Header = reqHeaders
145465	googleapi.Expand(req.URL, map[string]string{
145466		"project":         c.project,
145467		"region":          c.region,
145468		"targetHttpProxy": c.targetHttpProxy,
145469	})
145470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145471}
145472
145473// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
145474// Exactly one of *Operation or error will be non-nil. Any non-2xx
145475// status code is an error. Response headers are in either
145476// *Operation.ServerResponse.Header or (if a response was returned at
145477// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145478// to check whether the returned error was because
145479// http.StatusNotModified was returned.
145480func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145481	gensupport.SetOptions(c.urlParams_, opts...)
145482	res, err := c.doRequest("json")
145483	if res != nil && res.StatusCode == http.StatusNotModified {
145484		if res.Body != nil {
145485			res.Body.Close()
145486		}
145487		return nil, &googleapi.Error{
145488			Code:   res.StatusCode,
145489			Header: res.Header,
145490		}
145491	}
145492	if err != nil {
145493		return nil, err
145494	}
145495	defer googleapi.CloseBody(res)
145496	if err := googleapi.CheckResponse(res); err != nil {
145497		return nil, err
145498	}
145499	ret := &Operation{
145500		ServerResponse: googleapi.ServerResponse{
145501			Header:         res.Header,
145502			HTTPStatusCode: res.StatusCode,
145503		},
145504	}
145505	target := &ret
145506	if err := gensupport.DecodeResponse(target, res); err != nil {
145507		return nil, err
145508	}
145509	return ret, nil
145510	// {
145511	//   "description": "Changes the URL map for TargetHttpProxy.",
145512	//   "httpMethod": "POST",
145513	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
145514	//   "parameterOrder": [
145515	//     "project",
145516	//     "region",
145517	//     "targetHttpProxy"
145518	//   ],
145519	//   "parameters": {
145520	//     "project": {
145521	//       "description": "Project ID for this request.",
145522	//       "location": "path",
145523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145524	//       "required": true,
145525	//       "type": "string"
145526	//     },
145527	//     "region": {
145528	//       "description": "Name of the region scoping this request.",
145529	//       "location": "path",
145530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145531	//       "required": true,
145532	//       "type": "string"
145533	//     },
145534	//     "requestId": {
145535	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145536	//       "location": "query",
145537	//       "type": "string"
145538	//     },
145539	//     "targetHttpProxy": {
145540	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
145541	//       "location": "path",
145542	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145543	//       "required": true,
145544	//       "type": "string"
145545	//     }
145546	//   },
145547	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
145548	//   "request": {
145549	//     "$ref": "UrlMapReference"
145550	//   },
145551	//   "response": {
145552	//     "$ref": "Operation"
145553	//   },
145554	//   "scopes": [
145555	//     "https://www.googleapis.com/auth/cloud-platform",
145556	//     "https://www.googleapis.com/auth/compute"
145557	//   ]
145558	// }
145559
145560}
145561
145562// method id "compute.regionTargetHttpProxies.testIamPermissions":
145563
145564type RegionTargetHttpProxiesTestIamPermissionsCall struct {
145565	s                      *Service
145566	project                string
145567	region                 string
145568	resource               string
145569	testpermissionsrequest *TestPermissionsRequest
145570	urlParams_             gensupport.URLParams
145571	ctx_                   context.Context
145572	header_                http.Header
145573}
145574
145575// TestIamPermissions: Returns permissions that a caller has on the
145576// specified resource.
145577//
145578// - project: Project ID for this request.
145579// - region: The name of the region for this request.
145580// - resource: Name or id of the resource for this request.
145581func (r *RegionTargetHttpProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpProxiesTestIamPermissionsCall {
145582	c := &RegionTargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145583	c.project = project
145584	c.region = region
145585	c.resource = resource
145586	c.testpermissionsrequest = testpermissionsrequest
145587	return c
145588}
145589
145590// Fields allows partial responses to be retrieved. See
145591// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145592// for more information.
145593func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesTestIamPermissionsCall {
145594	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145595	return c
145596}
145597
145598// Context sets the context to be used in this call's Do method. Any
145599// pending HTTP request will be aborted if the provided context is
145600// canceled.
145601func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpProxiesTestIamPermissionsCall {
145602	c.ctx_ = ctx
145603	return c
145604}
145605
145606// Header returns an http.Header that can be modified by the caller to
145607// add HTTP headers to the request.
145608func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
145609	if c.header_ == nil {
145610		c.header_ = make(http.Header)
145611	}
145612	return c.header_
145613}
145614
145615func (c *RegionTargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
145616	reqHeaders := make(http.Header)
145617	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145618	for k, v := range c.header_ {
145619		reqHeaders[k] = v
145620	}
145621	reqHeaders.Set("User-Agent", c.s.userAgent())
145622	var body io.Reader = nil
145623	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
145624	if err != nil {
145625		return nil, err
145626	}
145627	reqHeaders.Set("Content-Type", "application/json")
145628	c.urlParams_.Set("alt", alt)
145629	c.urlParams_.Set("prettyPrint", "false")
145630	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions")
145631	urls += "?" + c.urlParams_.Encode()
145632	req, err := http.NewRequest("POST", urls, body)
145633	if err != nil {
145634		return nil, err
145635	}
145636	req.Header = reqHeaders
145637	googleapi.Expand(req.URL, map[string]string{
145638		"project":  c.project,
145639		"region":   c.region,
145640		"resource": c.resource,
145641	})
145642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145643}
145644
145645// Do executes the "compute.regionTargetHttpProxies.testIamPermissions" call.
145646// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
145647// non-2xx status code is an error. Response headers are in either
145648// *TestPermissionsResponse.ServerResponse.Header or (if a response was
145649// returned at all) in error.(*googleapi.Error).Header. Use
145650// googleapi.IsNotModified to check whether the returned error was
145651// because http.StatusNotModified was returned.
145652func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
145653	gensupport.SetOptions(c.urlParams_, opts...)
145654	res, err := c.doRequest("json")
145655	if res != nil && res.StatusCode == http.StatusNotModified {
145656		if res.Body != nil {
145657			res.Body.Close()
145658		}
145659		return nil, &googleapi.Error{
145660			Code:   res.StatusCode,
145661			Header: res.Header,
145662		}
145663	}
145664	if err != nil {
145665		return nil, err
145666	}
145667	defer googleapi.CloseBody(res)
145668	if err := googleapi.CheckResponse(res); err != nil {
145669		return nil, err
145670	}
145671	ret := &TestPermissionsResponse{
145672		ServerResponse: googleapi.ServerResponse{
145673			Header:         res.Header,
145674			HTTPStatusCode: res.StatusCode,
145675		},
145676	}
145677	target := &ret
145678	if err := gensupport.DecodeResponse(target, res); err != nil {
145679		return nil, err
145680	}
145681	return ret, nil
145682	// {
145683	//   "description": "Returns permissions that a caller has on the specified resource.",
145684	//   "httpMethod": "POST",
145685	//   "id": "compute.regionTargetHttpProxies.testIamPermissions",
145686	//   "parameterOrder": [
145687	//     "project",
145688	//     "region",
145689	//     "resource"
145690	//   ],
145691	//   "parameters": {
145692	//     "project": {
145693	//       "description": "Project ID for this request.",
145694	//       "location": "path",
145695	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145696	//       "required": true,
145697	//       "type": "string"
145698	//     },
145699	//     "region": {
145700	//       "description": "The name of the region for this request.",
145701	//       "location": "path",
145702	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145703	//       "required": true,
145704	//       "type": "string"
145705	//     },
145706	//     "resource": {
145707	//       "description": "Name or id of the resource for this request.",
145708	//       "location": "path",
145709	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145710	//       "required": true,
145711	//       "type": "string"
145712	//     }
145713	//   },
145714	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions",
145715	//   "request": {
145716	//     "$ref": "TestPermissionsRequest"
145717	//   },
145718	//   "response": {
145719	//     "$ref": "TestPermissionsResponse"
145720	//   },
145721	//   "scopes": [
145722	//     "https://www.googleapis.com/auth/cloud-platform",
145723	//     "https://www.googleapis.com/auth/compute",
145724	//     "https://www.googleapis.com/auth/compute.readonly"
145725	//   ]
145726	// }
145727
145728}
145729
145730// method id "compute.regionTargetHttpsProxies.delete":
145731
145732type RegionTargetHttpsProxiesDeleteCall struct {
145733	s                *Service
145734	project          string
145735	region           string
145736	targetHttpsProxy string
145737	urlParams_       gensupport.URLParams
145738	ctx_             context.Context
145739	header_          http.Header
145740}
145741
145742// Delete: Deletes the specified TargetHttpsProxy resource.
145743//
145744// - project: Project ID for this request.
145745// - region: Name of the region scoping this request.
145746// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
145747func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
145748	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145749	c.project = project
145750	c.region = region
145751	c.targetHttpsProxy = targetHttpsProxy
145752	return c
145753}
145754
145755// RequestId sets the optional parameter "requestId": An optional
145756// request ID to identify requests. Specify a unique request ID so that
145757// if you must retry your request, the server will know to ignore the
145758// request if it has already been completed.
145759//
145760// For example, consider a situation where you make an initial request
145761// and the request times out. If you make the request again with the
145762// same request ID, the server can check if original operation with the
145763// same request ID was received, and if so, will ignore the second
145764// request. This prevents clients from accidentally creating duplicate
145765// commitments.
145766//
145767// The request ID must be a valid UUID with the exception that zero UUID
145768// is not supported (00000000-0000-0000-0000-000000000000).
145769func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
145770	c.urlParams_.Set("requestId", requestId)
145771	return c
145772}
145773
145774// Fields allows partial responses to be retrieved. See
145775// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145776// for more information.
145777func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
145778	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145779	return c
145780}
145781
145782// Context sets the context to be used in this call's Do method. Any
145783// pending HTTP request will be aborted if the provided context is
145784// canceled.
145785func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
145786	c.ctx_ = ctx
145787	return c
145788}
145789
145790// Header returns an http.Header that can be modified by the caller to
145791// add HTTP headers to the request.
145792func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
145793	if c.header_ == nil {
145794		c.header_ = make(http.Header)
145795	}
145796	return c.header_
145797}
145798
145799func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
145800	reqHeaders := make(http.Header)
145801	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145802	for k, v := range c.header_ {
145803		reqHeaders[k] = v
145804	}
145805	reqHeaders.Set("User-Agent", c.s.userAgent())
145806	var body io.Reader = nil
145807	c.urlParams_.Set("alt", alt)
145808	c.urlParams_.Set("prettyPrint", "false")
145809	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
145810	urls += "?" + c.urlParams_.Encode()
145811	req, err := http.NewRequest("DELETE", urls, body)
145812	if err != nil {
145813		return nil, err
145814	}
145815	req.Header = reqHeaders
145816	googleapi.Expand(req.URL, map[string]string{
145817		"project":          c.project,
145818		"region":           c.region,
145819		"targetHttpsProxy": c.targetHttpsProxy,
145820	})
145821	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145822}
145823
145824// Do executes the "compute.regionTargetHttpsProxies.delete" call.
145825// Exactly one of *Operation or error will be non-nil. Any non-2xx
145826// status code is an error. Response headers are in either
145827// *Operation.ServerResponse.Header or (if a response was returned at
145828// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145829// to check whether the returned error was because
145830// http.StatusNotModified was returned.
145831func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145832	gensupport.SetOptions(c.urlParams_, opts...)
145833	res, err := c.doRequest("json")
145834	if res != nil && res.StatusCode == http.StatusNotModified {
145835		if res.Body != nil {
145836			res.Body.Close()
145837		}
145838		return nil, &googleapi.Error{
145839			Code:   res.StatusCode,
145840			Header: res.Header,
145841		}
145842	}
145843	if err != nil {
145844		return nil, err
145845	}
145846	defer googleapi.CloseBody(res)
145847	if err := googleapi.CheckResponse(res); err != nil {
145848		return nil, err
145849	}
145850	ret := &Operation{
145851		ServerResponse: googleapi.ServerResponse{
145852			Header:         res.Header,
145853			HTTPStatusCode: res.StatusCode,
145854		},
145855	}
145856	target := &ret
145857	if err := gensupport.DecodeResponse(target, res); err != nil {
145858		return nil, err
145859	}
145860	return ret, nil
145861	// {
145862	//   "description": "Deletes the specified TargetHttpsProxy resource.",
145863	//   "httpMethod": "DELETE",
145864	//   "id": "compute.regionTargetHttpsProxies.delete",
145865	//   "parameterOrder": [
145866	//     "project",
145867	//     "region",
145868	//     "targetHttpsProxy"
145869	//   ],
145870	//   "parameters": {
145871	//     "project": {
145872	//       "description": "Project ID for this request.",
145873	//       "location": "path",
145874	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145875	//       "required": true,
145876	//       "type": "string"
145877	//     },
145878	//     "region": {
145879	//       "description": "Name of the region scoping this request.",
145880	//       "location": "path",
145881	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145882	//       "required": true,
145883	//       "type": "string"
145884	//     },
145885	//     "requestId": {
145886	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145887	//       "location": "query",
145888	//       "type": "string"
145889	//     },
145890	//     "targetHttpsProxy": {
145891	//       "description": "Name of the TargetHttpsProxy resource to delete.",
145892	//       "location": "path",
145893	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145894	//       "required": true,
145895	//       "type": "string"
145896	//     }
145897	//   },
145898	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
145899	//   "response": {
145900	//     "$ref": "Operation"
145901	//   },
145902	//   "scopes": [
145903	//     "https://www.googleapis.com/auth/cloud-platform",
145904	//     "https://www.googleapis.com/auth/compute"
145905	//   ]
145906	// }
145907
145908}
145909
145910// method id "compute.regionTargetHttpsProxies.get":
145911
145912type RegionTargetHttpsProxiesGetCall struct {
145913	s                *Service
145914	project          string
145915	region           string
145916	targetHttpsProxy string
145917	urlParams_       gensupport.URLParams
145918	ifNoneMatch_     string
145919	ctx_             context.Context
145920	header_          http.Header
145921}
145922
145923// Get: Returns the specified TargetHttpsProxy resource in the specified
145924// region. Gets a list of available target HTTP proxies by making a
145925// list() request.
145926//
145927// - project: Project ID for this request.
145928// - region: Name of the region scoping this request.
145929// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
145930func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
145931	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145932	c.project = project
145933	c.region = region
145934	c.targetHttpsProxy = targetHttpsProxy
145935	return c
145936}
145937
145938// Fields allows partial responses to be retrieved. See
145939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145940// for more information.
145941func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
145942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145943	return c
145944}
145945
145946// IfNoneMatch sets the optional parameter which makes the operation
145947// fail if the object's ETag matches the given value. This is useful for
145948// getting updates only after the object has changed since the last
145949// request. Use googleapi.IsNotModified to check whether the response
145950// error from Do is the result of In-None-Match.
145951func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
145952	c.ifNoneMatch_ = entityTag
145953	return c
145954}
145955
145956// Context sets the context to be used in this call's Do method. Any
145957// pending HTTP request will be aborted if the provided context is
145958// canceled.
145959func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
145960	c.ctx_ = ctx
145961	return c
145962}
145963
145964// Header returns an http.Header that can be modified by the caller to
145965// add HTTP headers to the request.
145966func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
145967	if c.header_ == nil {
145968		c.header_ = make(http.Header)
145969	}
145970	return c.header_
145971}
145972
145973func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
145974	reqHeaders := make(http.Header)
145975	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145976	for k, v := range c.header_ {
145977		reqHeaders[k] = v
145978	}
145979	reqHeaders.Set("User-Agent", c.s.userAgent())
145980	if c.ifNoneMatch_ != "" {
145981		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145982	}
145983	var body io.Reader = nil
145984	c.urlParams_.Set("alt", alt)
145985	c.urlParams_.Set("prettyPrint", "false")
145986	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
145987	urls += "?" + c.urlParams_.Encode()
145988	req, err := http.NewRequest("GET", urls, body)
145989	if err != nil {
145990		return nil, err
145991	}
145992	req.Header = reqHeaders
145993	googleapi.Expand(req.URL, map[string]string{
145994		"project":          c.project,
145995		"region":           c.region,
145996		"targetHttpsProxy": c.targetHttpsProxy,
145997	})
145998	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145999}
146000
146001// Do executes the "compute.regionTargetHttpsProxies.get" call.
146002// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
146003// non-2xx status code is an error. Response headers are in either
146004// *TargetHttpsProxy.ServerResponse.Header or (if a response was
146005// returned at all) in error.(*googleapi.Error).Header. Use
146006// googleapi.IsNotModified to check whether the returned error was
146007// because http.StatusNotModified was returned.
146008func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
146009	gensupport.SetOptions(c.urlParams_, opts...)
146010	res, err := c.doRequest("json")
146011	if res != nil && res.StatusCode == http.StatusNotModified {
146012		if res.Body != nil {
146013			res.Body.Close()
146014		}
146015		return nil, &googleapi.Error{
146016			Code:   res.StatusCode,
146017			Header: res.Header,
146018		}
146019	}
146020	if err != nil {
146021		return nil, err
146022	}
146023	defer googleapi.CloseBody(res)
146024	if err := googleapi.CheckResponse(res); err != nil {
146025		return nil, err
146026	}
146027	ret := &TargetHttpsProxy{
146028		ServerResponse: googleapi.ServerResponse{
146029			Header:         res.Header,
146030			HTTPStatusCode: res.StatusCode,
146031		},
146032	}
146033	target := &ret
146034	if err := gensupport.DecodeResponse(target, res); err != nil {
146035		return nil, err
146036	}
146037	return ret, nil
146038	// {
146039	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
146040	//   "httpMethod": "GET",
146041	//   "id": "compute.regionTargetHttpsProxies.get",
146042	//   "parameterOrder": [
146043	//     "project",
146044	//     "region",
146045	//     "targetHttpsProxy"
146046	//   ],
146047	//   "parameters": {
146048	//     "project": {
146049	//       "description": "Project ID for this request.",
146050	//       "location": "path",
146051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146052	//       "required": true,
146053	//       "type": "string"
146054	//     },
146055	//     "region": {
146056	//       "description": "Name of the region scoping this request.",
146057	//       "location": "path",
146058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146059	//       "required": true,
146060	//       "type": "string"
146061	//     },
146062	//     "targetHttpsProxy": {
146063	//       "description": "Name of the TargetHttpsProxy resource to return.",
146064	//       "location": "path",
146065	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146066	//       "required": true,
146067	//       "type": "string"
146068	//     }
146069	//   },
146070	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
146071	//   "response": {
146072	//     "$ref": "TargetHttpsProxy"
146073	//   },
146074	//   "scopes": [
146075	//     "https://www.googleapis.com/auth/cloud-platform",
146076	//     "https://www.googleapis.com/auth/compute",
146077	//     "https://www.googleapis.com/auth/compute.readonly"
146078	//   ]
146079	// }
146080
146081}
146082
146083// method id "compute.regionTargetHttpsProxies.insert":
146084
146085type RegionTargetHttpsProxiesInsertCall struct {
146086	s                *Service
146087	project          string
146088	region           string
146089	targethttpsproxy *TargetHttpsProxy
146090	urlParams_       gensupport.URLParams
146091	ctx_             context.Context
146092	header_          http.Header
146093}
146094
146095// Insert: Creates a TargetHttpsProxy resource in the specified project
146096// and region using the data included in the request.
146097//
146098// - project: Project ID for this request.
146099// - region: Name of the region scoping this request.
146100func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
146101	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146102	c.project = project
146103	c.region = region
146104	c.targethttpsproxy = targethttpsproxy
146105	return c
146106}
146107
146108// RequestId sets the optional parameter "requestId": An optional
146109// request ID to identify requests. Specify a unique request ID so that
146110// if you must retry your request, the server will know to ignore the
146111// request if it has already been completed.
146112//
146113// For example, consider a situation where you make an initial request
146114// and the request times out. If you make the request again with the
146115// same request ID, the server can check if original operation with the
146116// same request ID was received, and if so, will ignore the second
146117// request. This prevents clients from accidentally creating duplicate
146118// commitments.
146119//
146120// The request ID must be a valid UUID with the exception that zero UUID
146121// is not supported (00000000-0000-0000-0000-000000000000).
146122func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
146123	c.urlParams_.Set("requestId", requestId)
146124	return c
146125}
146126
146127// Fields allows partial responses to be retrieved. See
146128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146129// for more information.
146130func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
146131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146132	return c
146133}
146134
146135// Context sets the context to be used in this call's Do method. Any
146136// pending HTTP request will be aborted if the provided context is
146137// canceled.
146138func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
146139	c.ctx_ = ctx
146140	return c
146141}
146142
146143// Header returns an http.Header that can be modified by the caller to
146144// add HTTP headers to the request.
146145func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
146146	if c.header_ == nil {
146147		c.header_ = make(http.Header)
146148	}
146149	return c.header_
146150}
146151
146152func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
146153	reqHeaders := make(http.Header)
146154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146155	for k, v := range c.header_ {
146156		reqHeaders[k] = v
146157	}
146158	reqHeaders.Set("User-Agent", c.s.userAgent())
146159	var body io.Reader = nil
146160	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
146161	if err != nil {
146162		return nil, err
146163	}
146164	reqHeaders.Set("Content-Type", "application/json")
146165	c.urlParams_.Set("alt", alt)
146166	c.urlParams_.Set("prettyPrint", "false")
146167	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
146168	urls += "?" + c.urlParams_.Encode()
146169	req, err := http.NewRequest("POST", urls, body)
146170	if err != nil {
146171		return nil, err
146172	}
146173	req.Header = reqHeaders
146174	googleapi.Expand(req.URL, map[string]string{
146175		"project": c.project,
146176		"region":  c.region,
146177	})
146178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146179}
146180
146181// Do executes the "compute.regionTargetHttpsProxies.insert" call.
146182// Exactly one of *Operation or error will be non-nil. Any non-2xx
146183// status code is an error. Response headers are in either
146184// *Operation.ServerResponse.Header or (if a response was returned at
146185// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146186// to check whether the returned error was because
146187// http.StatusNotModified was returned.
146188func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146189	gensupport.SetOptions(c.urlParams_, opts...)
146190	res, err := c.doRequest("json")
146191	if res != nil && res.StatusCode == http.StatusNotModified {
146192		if res.Body != nil {
146193			res.Body.Close()
146194		}
146195		return nil, &googleapi.Error{
146196			Code:   res.StatusCode,
146197			Header: res.Header,
146198		}
146199	}
146200	if err != nil {
146201		return nil, err
146202	}
146203	defer googleapi.CloseBody(res)
146204	if err := googleapi.CheckResponse(res); err != nil {
146205		return nil, err
146206	}
146207	ret := &Operation{
146208		ServerResponse: googleapi.ServerResponse{
146209			Header:         res.Header,
146210			HTTPStatusCode: res.StatusCode,
146211		},
146212	}
146213	target := &ret
146214	if err := gensupport.DecodeResponse(target, res); err != nil {
146215		return nil, err
146216	}
146217	return ret, nil
146218	// {
146219	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
146220	//   "httpMethod": "POST",
146221	//   "id": "compute.regionTargetHttpsProxies.insert",
146222	//   "parameterOrder": [
146223	//     "project",
146224	//     "region"
146225	//   ],
146226	//   "parameters": {
146227	//     "project": {
146228	//       "description": "Project ID for this request.",
146229	//       "location": "path",
146230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146231	//       "required": true,
146232	//       "type": "string"
146233	//     },
146234	//     "region": {
146235	//       "description": "Name of the region scoping this request.",
146236	//       "location": "path",
146237	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146238	//       "required": true,
146239	//       "type": "string"
146240	//     },
146241	//     "requestId": {
146242	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146243	//       "location": "query",
146244	//       "type": "string"
146245	//     }
146246	//   },
146247	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
146248	//   "request": {
146249	//     "$ref": "TargetHttpsProxy"
146250	//   },
146251	//   "response": {
146252	//     "$ref": "Operation"
146253	//   },
146254	//   "scopes": [
146255	//     "https://www.googleapis.com/auth/cloud-platform",
146256	//     "https://www.googleapis.com/auth/compute"
146257	//   ]
146258	// }
146259
146260}
146261
146262// method id "compute.regionTargetHttpsProxies.list":
146263
146264type RegionTargetHttpsProxiesListCall struct {
146265	s            *Service
146266	project      string
146267	region       string
146268	urlParams_   gensupport.URLParams
146269	ifNoneMatch_ string
146270	ctx_         context.Context
146271	header_      http.Header
146272}
146273
146274// List: Retrieves the list of TargetHttpsProxy resources available to
146275// the specified project in the specified region.
146276//
146277// - project: Project ID for this request.
146278// - region: Name of the region scoping this request.
146279func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
146280	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146281	c.project = project
146282	c.region = region
146283	return c
146284}
146285
146286// Filter sets the optional parameter "filter": A filter expression that
146287// filters resources listed in the response. The expression must specify
146288// the field name, a comparison operator, and the value that you want to
146289// use for filtering. The value must be a string, a number, or a
146290// boolean. The comparison operator must be either `=`, `!=`, `>`, or
146291// `<`.
146292//
146293// For example, if you are filtering Compute Engine instances, you can
146294// exclude instances named `example-instance` by specifying `name !=
146295// example-instance`.
146296//
146297// You can also filter nested fields. For example, you could specify
146298// `scheduling.automaticRestart = false` to include instances only if
146299// they are not scheduled for automatic restarts. You can use filtering
146300// on nested fields to filter based on resource labels.
146301//
146302// To filter on multiple expressions, provide each separate expression
146303// within parentheses. For example: ``` (scheduling.automaticRestart =
146304// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
146305// is an `AND` expression. However, you can include `AND` and `OR`
146306// expressions explicitly. For example: ``` (cpuPlatform = "Intel
146307// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
146308// (scheduling.automaticRestart = true) ```
146309func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
146310	c.urlParams_.Set("filter", filter)
146311	return c
146312}
146313
146314// MaxResults sets the optional parameter "maxResults": The maximum
146315// number of results per page that should be returned. If the number of
146316// available results is larger than `maxResults`, Compute Engine returns
146317// a `nextPageToken` that can be used to get the next page of results in
146318// subsequent list requests. Acceptable values are `0` to `500`,
146319// inclusive. (Default: `500`)
146320func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
146321	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146322	return c
146323}
146324
146325// OrderBy sets the optional parameter "orderBy": Sorts list results by
146326// a certain order. By default, results are returned in alphanumerical
146327// order based on the resource name.
146328//
146329// You can also sort results in descending order based on the creation
146330// timestamp using `orderBy="creationTimestamp desc". This sorts
146331// results based on the `creationTimestamp` field in reverse
146332// chronological order (newest result first). Use this to sort resources
146333// like operations so that the newest operation is returned
146334// first.
146335//
146336// Currently, only sorting by `name` or `creationTimestamp desc` is
146337// supported.
146338func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
146339	c.urlParams_.Set("orderBy", orderBy)
146340	return c
146341}
146342
146343// PageToken sets the optional parameter "pageToken": Specifies a page
146344// token to use. Set `pageToken` to the `nextPageToken` returned by a
146345// previous list request to get the next page of results.
146346func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
146347	c.urlParams_.Set("pageToken", pageToken)
146348	return c
146349}
146350
146351// ReturnPartialSuccess sets the optional parameter
146352// "returnPartialSuccess": Opt-in for partial success behavior which
146353// provides partial results in case of failure. The default value is
146354// false.
146355func (c *RegionTargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpsProxiesListCall {
146356	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
146357	return c
146358}
146359
146360// Fields allows partial responses to be retrieved. See
146361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146362// for more information.
146363func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
146364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146365	return c
146366}
146367
146368// IfNoneMatch sets the optional parameter which makes the operation
146369// fail if the object's ETag matches the given value. This is useful for
146370// getting updates only after the object has changed since the last
146371// request. Use googleapi.IsNotModified to check whether the response
146372// error from Do is the result of In-None-Match.
146373func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
146374	c.ifNoneMatch_ = entityTag
146375	return c
146376}
146377
146378// Context sets the context to be used in this call's Do method. Any
146379// pending HTTP request will be aborted if the provided context is
146380// canceled.
146381func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
146382	c.ctx_ = ctx
146383	return c
146384}
146385
146386// Header returns an http.Header that can be modified by the caller to
146387// add HTTP headers to the request.
146388func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
146389	if c.header_ == nil {
146390		c.header_ = make(http.Header)
146391	}
146392	return c.header_
146393}
146394
146395func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
146396	reqHeaders := make(http.Header)
146397	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146398	for k, v := range c.header_ {
146399		reqHeaders[k] = v
146400	}
146401	reqHeaders.Set("User-Agent", c.s.userAgent())
146402	if c.ifNoneMatch_ != "" {
146403		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146404	}
146405	var body io.Reader = nil
146406	c.urlParams_.Set("alt", alt)
146407	c.urlParams_.Set("prettyPrint", "false")
146408	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
146409	urls += "?" + c.urlParams_.Encode()
146410	req, err := http.NewRequest("GET", urls, body)
146411	if err != nil {
146412		return nil, err
146413	}
146414	req.Header = reqHeaders
146415	googleapi.Expand(req.URL, map[string]string{
146416		"project": c.project,
146417		"region":  c.region,
146418	})
146419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146420}
146421
146422// Do executes the "compute.regionTargetHttpsProxies.list" call.
146423// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
146424// non-2xx status code is an error. Response headers are in either
146425// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
146426// returned at all) in error.(*googleapi.Error).Header. Use
146427// googleapi.IsNotModified to check whether the returned error was
146428// because http.StatusNotModified was returned.
146429func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
146430	gensupport.SetOptions(c.urlParams_, opts...)
146431	res, err := c.doRequest("json")
146432	if res != nil && res.StatusCode == http.StatusNotModified {
146433		if res.Body != nil {
146434			res.Body.Close()
146435		}
146436		return nil, &googleapi.Error{
146437			Code:   res.StatusCode,
146438			Header: res.Header,
146439		}
146440	}
146441	if err != nil {
146442		return nil, err
146443	}
146444	defer googleapi.CloseBody(res)
146445	if err := googleapi.CheckResponse(res); err != nil {
146446		return nil, err
146447	}
146448	ret := &TargetHttpsProxyList{
146449		ServerResponse: googleapi.ServerResponse{
146450			Header:         res.Header,
146451			HTTPStatusCode: res.StatusCode,
146452		},
146453	}
146454	target := &ret
146455	if err := gensupport.DecodeResponse(target, res); err != nil {
146456		return nil, err
146457	}
146458	return ret, nil
146459	// {
146460	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
146461	//   "httpMethod": "GET",
146462	//   "id": "compute.regionTargetHttpsProxies.list",
146463	//   "parameterOrder": [
146464	//     "project",
146465	//     "region"
146466	//   ],
146467	//   "parameters": {
146468	//     "filter": {
146469	//       "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) ```",
146470	//       "location": "query",
146471	//       "type": "string"
146472	//     },
146473	//     "maxResults": {
146474	//       "default": "500",
146475	//       "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`)",
146476	//       "format": "uint32",
146477	//       "location": "query",
146478	//       "minimum": "0",
146479	//       "type": "integer"
146480	//     },
146481	//     "orderBy": {
146482	//       "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.",
146483	//       "location": "query",
146484	//       "type": "string"
146485	//     },
146486	//     "pageToken": {
146487	//       "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.",
146488	//       "location": "query",
146489	//       "type": "string"
146490	//     },
146491	//     "project": {
146492	//       "description": "Project ID for this request.",
146493	//       "location": "path",
146494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146495	//       "required": true,
146496	//       "type": "string"
146497	//     },
146498	//     "region": {
146499	//       "description": "Name of the region scoping this request.",
146500	//       "location": "path",
146501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146502	//       "required": true,
146503	//       "type": "string"
146504	//     },
146505	//     "returnPartialSuccess": {
146506	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
146507	//       "location": "query",
146508	//       "type": "boolean"
146509	//     }
146510	//   },
146511	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
146512	//   "response": {
146513	//     "$ref": "TargetHttpsProxyList"
146514	//   },
146515	//   "scopes": [
146516	//     "https://www.googleapis.com/auth/cloud-platform",
146517	//     "https://www.googleapis.com/auth/compute",
146518	//     "https://www.googleapis.com/auth/compute.readonly"
146519	//   ]
146520	// }
146521
146522}
146523
146524// Pages invokes f for each page of results.
146525// A non-nil error returned from f will halt the iteration.
146526// The provided context supersedes any context provided to the Context method.
146527func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
146528	c.ctx_ = ctx
146529	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146530	for {
146531		x, err := c.Do()
146532		if err != nil {
146533			return err
146534		}
146535		if err := f(x); err != nil {
146536			return err
146537		}
146538		if x.NextPageToken == "" {
146539			return nil
146540		}
146541		c.PageToken(x.NextPageToken)
146542	}
146543}
146544
146545// method id "compute.regionTargetHttpsProxies.setSslCertificates":
146546
146547type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
146548	s                                                 *Service
146549	project                                           string
146550	region                                            string
146551	targetHttpsProxy                                  string
146552	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
146553	urlParams_                                        gensupport.URLParams
146554	ctx_                                              context.Context
146555	header_                                           http.Header
146556}
146557
146558// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
146559//
146560// - project: Project ID for this request.
146561// - region: Name of the region scoping this request.
146562// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
146563//   SslCertificates resource for.
146564func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
146565	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146566	c.project = project
146567	c.region = region
146568	c.targetHttpsProxy = targetHttpsProxy
146569	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
146570	return c
146571}
146572
146573// RequestId sets the optional parameter "requestId": An optional
146574// request ID to identify requests. Specify a unique request ID so that
146575// if you must retry your request, the server will know to ignore the
146576// request if it has already been completed.
146577//
146578// For example, consider a situation where you make an initial request
146579// and the request times out. If you make the request again with the
146580// same request ID, the server can check if original operation with the
146581// same request ID was received, and if so, will ignore the second
146582// request. This prevents clients from accidentally creating duplicate
146583// commitments.
146584//
146585// The request ID must be a valid UUID with the exception that zero UUID
146586// is not supported (00000000-0000-0000-0000-000000000000).
146587func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
146588	c.urlParams_.Set("requestId", requestId)
146589	return c
146590}
146591
146592// Fields allows partial responses to be retrieved. See
146593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146594// for more information.
146595func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
146596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146597	return c
146598}
146599
146600// Context sets the context to be used in this call's Do method. Any
146601// pending HTTP request will be aborted if the provided context is
146602// canceled.
146603func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
146604	c.ctx_ = ctx
146605	return c
146606}
146607
146608// Header returns an http.Header that can be modified by the caller to
146609// add HTTP headers to the request.
146610func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
146611	if c.header_ == nil {
146612		c.header_ = make(http.Header)
146613	}
146614	return c.header_
146615}
146616
146617func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
146618	reqHeaders := make(http.Header)
146619	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146620	for k, v := range c.header_ {
146621		reqHeaders[k] = v
146622	}
146623	reqHeaders.Set("User-Agent", c.s.userAgent())
146624	var body io.Reader = nil
146625	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
146626	if err != nil {
146627		return nil, err
146628	}
146629	reqHeaders.Set("Content-Type", "application/json")
146630	c.urlParams_.Set("alt", alt)
146631	c.urlParams_.Set("prettyPrint", "false")
146632	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
146633	urls += "?" + c.urlParams_.Encode()
146634	req, err := http.NewRequest("POST", urls, body)
146635	if err != nil {
146636		return nil, err
146637	}
146638	req.Header = reqHeaders
146639	googleapi.Expand(req.URL, map[string]string{
146640		"project":          c.project,
146641		"region":           c.region,
146642		"targetHttpsProxy": c.targetHttpsProxy,
146643	})
146644	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146645}
146646
146647// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
146648// Exactly one of *Operation or error will be non-nil. Any non-2xx
146649// status code is an error. Response headers are in either
146650// *Operation.ServerResponse.Header or (if a response was returned at
146651// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146652// to check whether the returned error was because
146653// http.StatusNotModified was returned.
146654func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146655	gensupport.SetOptions(c.urlParams_, opts...)
146656	res, err := c.doRequest("json")
146657	if res != nil && res.StatusCode == http.StatusNotModified {
146658		if res.Body != nil {
146659			res.Body.Close()
146660		}
146661		return nil, &googleapi.Error{
146662			Code:   res.StatusCode,
146663			Header: res.Header,
146664		}
146665	}
146666	if err != nil {
146667		return nil, err
146668	}
146669	defer googleapi.CloseBody(res)
146670	if err := googleapi.CheckResponse(res); err != nil {
146671		return nil, err
146672	}
146673	ret := &Operation{
146674		ServerResponse: googleapi.ServerResponse{
146675			Header:         res.Header,
146676			HTTPStatusCode: res.StatusCode,
146677		},
146678	}
146679	target := &ret
146680	if err := gensupport.DecodeResponse(target, res); err != nil {
146681		return nil, err
146682	}
146683	return ret, nil
146684	// {
146685	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
146686	//   "httpMethod": "POST",
146687	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
146688	//   "parameterOrder": [
146689	//     "project",
146690	//     "region",
146691	//     "targetHttpsProxy"
146692	//   ],
146693	//   "parameters": {
146694	//     "project": {
146695	//       "description": "Project ID for this request.",
146696	//       "location": "path",
146697	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146698	//       "required": true,
146699	//       "type": "string"
146700	//     },
146701	//     "region": {
146702	//       "description": "Name of the region scoping this request.",
146703	//       "location": "path",
146704	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146705	//       "required": true,
146706	//       "type": "string"
146707	//     },
146708	//     "requestId": {
146709	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146710	//       "location": "query",
146711	//       "type": "string"
146712	//     },
146713	//     "targetHttpsProxy": {
146714	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
146715	//       "location": "path",
146716	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146717	//       "required": true,
146718	//       "type": "string"
146719	//     }
146720	//   },
146721	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
146722	//   "request": {
146723	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
146724	//   },
146725	//   "response": {
146726	//     "$ref": "Operation"
146727	//   },
146728	//   "scopes": [
146729	//     "https://www.googleapis.com/auth/cloud-platform",
146730	//     "https://www.googleapis.com/auth/compute"
146731	//   ]
146732	// }
146733
146734}
146735
146736// method id "compute.regionTargetHttpsProxies.setUrlMap":
146737
146738type RegionTargetHttpsProxiesSetUrlMapCall struct {
146739	s                *Service
146740	project          string
146741	region           string
146742	targetHttpsProxy string
146743	urlmapreference  *UrlMapReference
146744	urlParams_       gensupport.URLParams
146745	ctx_             context.Context
146746	header_          http.Header
146747}
146748
146749// SetUrlMap: Changes the URL map for TargetHttpsProxy.
146750//
146751// - project: Project ID for this request.
146752// - region: Name of the region scoping this request.
146753// - targetHttpsProxy: Name of the TargetHttpsProxy to set a URL map
146754//   for.
146755func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
146756	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146757	c.project = project
146758	c.region = region
146759	c.targetHttpsProxy = targetHttpsProxy
146760	c.urlmapreference = urlmapreference
146761	return c
146762}
146763
146764// RequestId sets the optional parameter "requestId": An optional
146765// request ID to identify requests. Specify a unique request ID so that
146766// if you must retry your request, the server will know to ignore the
146767// request if it has already been completed.
146768//
146769// For example, consider a situation where you make an initial request
146770// and the request times out. If you make the request again with the
146771// same request ID, the server can check if original operation with the
146772// same request ID was received, and if so, will ignore the second
146773// request. This prevents clients from accidentally creating duplicate
146774// commitments.
146775//
146776// The request ID must be a valid UUID with the exception that zero UUID
146777// is not supported (00000000-0000-0000-0000-000000000000).
146778func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
146779	c.urlParams_.Set("requestId", requestId)
146780	return c
146781}
146782
146783// Fields allows partial responses to be retrieved. See
146784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146785// for more information.
146786func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
146787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146788	return c
146789}
146790
146791// Context sets the context to be used in this call's Do method. Any
146792// pending HTTP request will be aborted if the provided context is
146793// canceled.
146794func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
146795	c.ctx_ = ctx
146796	return c
146797}
146798
146799// Header returns an http.Header that can be modified by the caller to
146800// add HTTP headers to the request.
146801func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
146802	if c.header_ == nil {
146803		c.header_ = make(http.Header)
146804	}
146805	return c.header_
146806}
146807
146808func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
146809	reqHeaders := make(http.Header)
146810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146811	for k, v := range c.header_ {
146812		reqHeaders[k] = v
146813	}
146814	reqHeaders.Set("User-Agent", c.s.userAgent())
146815	var body io.Reader = nil
146816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
146817	if err != nil {
146818		return nil, err
146819	}
146820	reqHeaders.Set("Content-Type", "application/json")
146821	c.urlParams_.Set("alt", alt)
146822	c.urlParams_.Set("prettyPrint", "false")
146823	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
146824	urls += "?" + c.urlParams_.Encode()
146825	req, err := http.NewRequest("POST", urls, body)
146826	if err != nil {
146827		return nil, err
146828	}
146829	req.Header = reqHeaders
146830	googleapi.Expand(req.URL, map[string]string{
146831		"project":          c.project,
146832		"region":           c.region,
146833		"targetHttpsProxy": c.targetHttpsProxy,
146834	})
146835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146836}
146837
146838// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
146839// Exactly one of *Operation or error will be non-nil. Any non-2xx
146840// status code is an error. Response headers are in either
146841// *Operation.ServerResponse.Header or (if a response was returned at
146842// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146843// to check whether the returned error was because
146844// http.StatusNotModified was returned.
146845func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146846	gensupport.SetOptions(c.urlParams_, opts...)
146847	res, err := c.doRequest("json")
146848	if res != nil && res.StatusCode == http.StatusNotModified {
146849		if res.Body != nil {
146850			res.Body.Close()
146851		}
146852		return nil, &googleapi.Error{
146853			Code:   res.StatusCode,
146854			Header: res.Header,
146855		}
146856	}
146857	if err != nil {
146858		return nil, err
146859	}
146860	defer googleapi.CloseBody(res)
146861	if err := googleapi.CheckResponse(res); err != nil {
146862		return nil, err
146863	}
146864	ret := &Operation{
146865		ServerResponse: googleapi.ServerResponse{
146866			Header:         res.Header,
146867			HTTPStatusCode: res.StatusCode,
146868		},
146869	}
146870	target := &ret
146871	if err := gensupport.DecodeResponse(target, res); err != nil {
146872		return nil, err
146873	}
146874	return ret, nil
146875	// {
146876	//   "description": "Changes the URL map for TargetHttpsProxy.",
146877	//   "httpMethod": "POST",
146878	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
146879	//   "parameterOrder": [
146880	//     "project",
146881	//     "region",
146882	//     "targetHttpsProxy"
146883	//   ],
146884	//   "parameters": {
146885	//     "project": {
146886	//       "description": "Project ID for this request.",
146887	//       "location": "path",
146888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146889	//       "required": true,
146890	//       "type": "string"
146891	//     },
146892	//     "region": {
146893	//       "description": "Name of the region scoping this request.",
146894	//       "location": "path",
146895	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146896	//       "required": true,
146897	//       "type": "string"
146898	//     },
146899	//     "requestId": {
146900	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146901	//       "location": "query",
146902	//       "type": "string"
146903	//     },
146904	//     "targetHttpsProxy": {
146905	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
146906	//       "location": "path",
146907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146908	//       "required": true,
146909	//       "type": "string"
146910	//     }
146911	//   },
146912	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
146913	//   "request": {
146914	//     "$ref": "UrlMapReference"
146915	//   },
146916	//   "response": {
146917	//     "$ref": "Operation"
146918	//   },
146919	//   "scopes": [
146920	//     "https://www.googleapis.com/auth/cloud-platform",
146921	//     "https://www.googleapis.com/auth/compute"
146922	//   ]
146923	// }
146924
146925}
146926
146927// method id "compute.regionTargetHttpsProxies.testIamPermissions":
146928
146929type RegionTargetHttpsProxiesTestIamPermissionsCall struct {
146930	s                      *Service
146931	project                string
146932	region                 string
146933	resource               string
146934	testpermissionsrequest *TestPermissionsRequest
146935	urlParams_             gensupport.URLParams
146936	ctx_                   context.Context
146937	header_                http.Header
146938}
146939
146940// TestIamPermissions: Returns permissions that a caller has on the
146941// specified resource.
146942//
146943// - project: Project ID for this request.
146944// - region: The name of the region for this request.
146945// - resource: Name or id of the resource for this request.
146946func (r *RegionTargetHttpsProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpsProxiesTestIamPermissionsCall {
146947	c := &RegionTargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146948	c.project = project
146949	c.region = region
146950	c.resource = resource
146951	c.testpermissionsrequest = testpermissionsrequest
146952	return c
146953}
146954
146955// Fields allows partial responses to be retrieved. See
146956// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146957// for more information.
146958func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesTestIamPermissionsCall {
146959	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146960	return c
146961}
146962
146963// Context sets the context to be used in this call's Do method. Any
146964// pending HTTP request will be aborted if the provided context is
146965// canceled.
146966func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpsProxiesTestIamPermissionsCall {
146967	c.ctx_ = ctx
146968	return c
146969}
146970
146971// Header returns an http.Header that can be modified by the caller to
146972// add HTTP headers to the request.
146973func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
146974	if c.header_ == nil {
146975		c.header_ = make(http.Header)
146976	}
146977	return c.header_
146978}
146979
146980func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
146981	reqHeaders := make(http.Header)
146982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146983	for k, v := range c.header_ {
146984		reqHeaders[k] = v
146985	}
146986	reqHeaders.Set("User-Agent", c.s.userAgent())
146987	var body io.Reader = nil
146988	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
146989	if err != nil {
146990		return nil, err
146991	}
146992	reqHeaders.Set("Content-Type", "application/json")
146993	c.urlParams_.Set("alt", alt)
146994	c.urlParams_.Set("prettyPrint", "false")
146995	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions")
146996	urls += "?" + c.urlParams_.Encode()
146997	req, err := http.NewRequest("POST", urls, body)
146998	if err != nil {
146999		return nil, err
147000	}
147001	req.Header = reqHeaders
147002	googleapi.Expand(req.URL, map[string]string{
147003		"project":  c.project,
147004		"region":   c.region,
147005		"resource": c.resource,
147006	})
147007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147008}
147009
147010// Do executes the "compute.regionTargetHttpsProxies.testIamPermissions" call.
147011// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
147012// non-2xx status code is an error. Response headers are in either
147013// *TestPermissionsResponse.ServerResponse.Header or (if a response was
147014// returned at all) in error.(*googleapi.Error).Header. Use
147015// googleapi.IsNotModified to check whether the returned error was
147016// because http.StatusNotModified was returned.
147017func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
147018	gensupport.SetOptions(c.urlParams_, opts...)
147019	res, err := c.doRequest("json")
147020	if res != nil && res.StatusCode == http.StatusNotModified {
147021		if res.Body != nil {
147022			res.Body.Close()
147023		}
147024		return nil, &googleapi.Error{
147025			Code:   res.StatusCode,
147026			Header: res.Header,
147027		}
147028	}
147029	if err != nil {
147030		return nil, err
147031	}
147032	defer googleapi.CloseBody(res)
147033	if err := googleapi.CheckResponse(res); err != nil {
147034		return nil, err
147035	}
147036	ret := &TestPermissionsResponse{
147037		ServerResponse: googleapi.ServerResponse{
147038			Header:         res.Header,
147039			HTTPStatusCode: res.StatusCode,
147040		},
147041	}
147042	target := &ret
147043	if err := gensupport.DecodeResponse(target, res); err != nil {
147044		return nil, err
147045	}
147046	return ret, nil
147047	// {
147048	//   "description": "Returns permissions that a caller has on the specified resource.",
147049	//   "httpMethod": "POST",
147050	//   "id": "compute.regionTargetHttpsProxies.testIamPermissions",
147051	//   "parameterOrder": [
147052	//     "project",
147053	//     "region",
147054	//     "resource"
147055	//   ],
147056	//   "parameters": {
147057	//     "project": {
147058	//       "description": "Project ID for this request.",
147059	//       "location": "path",
147060	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147061	//       "required": true,
147062	//       "type": "string"
147063	//     },
147064	//     "region": {
147065	//       "description": "The name of the region for this request.",
147066	//       "location": "path",
147067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147068	//       "required": true,
147069	//       "type": "string"
147070	//     },
147071	//     "resource": {
147072	//       "description": "Name or id of the resource for this request.",
147073	//       "location": "path",
147074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147075	//       "required": true,
147076	//       "type": "string"
147077	//     }
147078	//   },
147079	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions",
147080	//   "request": {
147081	//     "$ref": "TestPermissionsRequest"
147082	//   },
147083	//   "response": {
147084	//     "$ref": "TestPermissionsResponse"
147085	//   },
147086	//   "scopes": [
147087	//     "https://www.googleapis.com/auth/cloud-platform",
147088	//     "https://www.googleapis.com/auth/compute",
147089	//     "https://www.googleapis.com/auth/compute.readonly"
147090	//   ]
147091	// }
147092
147093}
147094
147095// method id "compute.regionUrlMaps.delete":
147096
147097type RegionUrlMapsDeleteCall struct {
147098	s          *Service
147099	project    string
147100	region     string
147101	urlMap     string
147102	urlParams_ gensupport.URLParams
147103	ctx_       context.Context
147104	header_    http.Header
147105}
147106
147107// Delete: Deletes the specified UrlMap resource.
147108//
147109// - project: Project ID for this request.
147110// - region: Name of the region scoping this request.
147111// - urlMap: Name of the UrlMap resource to delete.
147112func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
147113	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147114	c.project = project
147115	c.region = region
147116	c.urlMap = urlMap
147117	return c
147118}
147119
147120// RequestId sets the optional parameter "requestId": begin_interface:
147121// MixerMutationRequestBuilder Request ID to support idempotency.
147122func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
147123	c.urlParams_.Set("requestId", requestId)
147124	return c
147125}
147126
147127// Fields allows partial responses to be retrieved. See
147128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147129// for more information.
147130func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
147131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147132	return c
147133}
147134
147135// Context sets the context to be used in this call's Do method. Any
147136// pending HTTP request will be aborted if the provided context is
147137// canceled.
147138func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
147139	c.ctx_ = ctx
147140	return c
147141}
147142
147143// Header returns an http.Header that can be modified by the caller to
147144// add HTTP headers to the request.
147145func (c *RegionUrlMapsDeleteCall) Header() http.Header {
147146	if c.header_ == nil {
147147		c.header_ = make(http.Header)
147148	}
147149	return c.header_
147150}
147151
147152func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
147153	reqHeaders := make(http.Header)
147154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147155	for k, v := range c.header_ {
147156		reqHeaders[k] = v
147157	}
147158	reqHeaders.Set("User-Agent", c.s.userAgent())
147159	var body io.Reader = nil
147160	c.urlParams_.Set("alt", alt)
147161	c.urlParams_.Set("prettyPrint", "false")
147162	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
147163	urls += "?" + c.urlParams_.Encode()
147164	req, err := http.NewRequest("DELETE", urls, body)
147165	if err != nil {
147166		return nil, err
147167	}
147168	req.Header = reqHeaders
147169	googleapi.Expand(req.URL, map[string]string{
147170		"project": c.project,
147171		"region":  c.region,
147172		"urlMap":  c.urlMap,
147173	})
147174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147175}
147176
147177// Do executes the "compute.regionUrlMaps.delete" call.
147178// Exactly one of *Operation or error will be non-nil. Any non-2xx
147179// status code is an error. Response headers are in either
147180// *Operation.ServerResponse.Header or (if a response was returned at
147181// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147182// to check whether the returned error was because
147183// http.StatusNotModified was returned.
147184func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147185	gensupport.SetOptions(c.urlParams_, opts...)
147186	res, err := c.doRequest("json")
147187	if res != nil && res.StatusCode == http.StatusNotModified {
147188		if res.Body != nil {
147189			res.Body.Close()
147190		}
147191		return nil, &googleapi.Error{
147192			Code:   res.StatusCode,
147193			Header: res.Header,
147194		}
147195	}
147196	if err != nil {
147197		return nil, err
147198	}
147199	defer googleapi.CloseBody(res)
147200	if err := googleapi.CheckResponse(res); err != nil {
147201		return nil, err
147202	}
147203	ret := &Operation{
147204		ServerResponse: googleapi.ServerResponse{
147205			Header:         res.Header,
147206			HTTPStatusCode: res.StatusCode,
147207		},
147208	}
147209	target := &ret
147210	if err := gensupport.DecodeResponse(target, res); err != nil {
147211		return nil, err
147212	}
147213	return ret, nil
147214	// {
147215	//   "description": "Deletes the specified UrlMap resource.",
147216	//   "httpMethod": "DELETE",
147217	//   "id": "compute.regionUrlMaps.delete",
147218	//   "parameterOrder": [
147219	//     "project",
147220	//     "region",
147221	//     "urlMap"
147222	//   ],
147223	//   "parameters": {
147224	//     "project": {
147225	//       "description": "Project ID for this request.",
147226	//       "location": "path",
147227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147228	//       "required": true,
147229	//       "type": "string"
147230	//     },
147231	//     "region": {
147232	//       "description": "Name of the region scoping this request.",
147233	//       "location": "path",
147234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147235	//       "required": true,
147236	//       "type": "string"
147237	//     },
147238	//     "requestId": {
147239	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
147240	//       "location": "query",
147241	//       "type": "string"
147242	//     },
147243	//     "urlMap": {
147244	//       "description": "Name of the UrlMap resource to delete.",
147245	//       "location": "path",
147246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147247	//       "required": true,
147248	//       "type": "string"
147249	//     }
147250	//   },
147251	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
147252	//   "response": {
147253	//     "$ref": "Operation"
147254	//   },
147255	//   "scopes": [
147256	//     "https://www.googleapis.com/auth/cloud-platform",
147257	//     "https://www.googleapis.com/auth/compute"
147258	//   ]
147259	// }
147260
147261}
147262
147263// method id "compute.regionUrlMaps.get":
147264
147265type RegionUrlMapsGetCall struct {
147266	s            *Service
147267	project      string
147268	region       string
147269	urlMap       string
147270	urlParams_   gensupport.URLParams
147271	ifNoneMatch_ string
147272	ctx_         context.Context
147273	header_      http.Header
147274}
147275
147276// Get: Returns the specified UrlMap resource. Gets a list of available
147277// URL maps by making a list() request.
147278//
147279// - project: Project ID for this request.
147280// - region: Name of the region scoping this request.
147281// - urlMap: Name of the UrlMap resource to return.
147282func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
147283	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147284	c.project = project
147285	c.region = region
147286	c.urlMap = urlMap
147287	return c
147288}
147289
147290// Fields allows partial responses to be retrieved. See
147291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147292// for more information.
147293func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
147294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147295	return c
147296}
147297
147298// IfNoneMatch sets the optional parameter which makes the operation
147299// fail if the object's ETag matches the given value. This is useful for
147300// getting updates only after the object has changed since the last
147301// request. Use googleapi.IsNotModified to check whether the response
147302// error from Do is the result of In-None-Match.
147303func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
147304	c.ifNoneMatch_ = entityTag
147305	return c
147306}
147307
147308// Context sets the context to be used in this call's Do method. Any
147309// pending HTTP request will be aborted if the provided context is
147310// canceled.
147311func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
147312	c.ctx_ = ctx
147313	return c
147314}
147315
147316// Header returns an http.Header that can be modified by the caller to
147317// add HTTP headers to the request.
147318func (c *RegionUrlMapsGetCall) Header() http.Header {
147319	if c.header_ == nil {
147320		c.header_ = make(http.Header)
147321	}
147322	return c.header_
147323}
147324
147325func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
147326	reqHeaders := make(http.Header)
147327	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147328	for k, v := range c.header_ {
147329		reqHeaders[k] = v
147330	}
147331	reqHeaders.Set("User-Agent", c.s.userAgent())
147332	if c.ifNoneMatch_ != "" {
147333		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147334	}
147335	var body io.Reader = nil
147336	c.urlParams_.Set("alt", alt)
147337	c.urlParams_.Set("prettyPrint", "false")
147338	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
147339	urls += "?" + c.urlParams_.Encode()
147340	req, err := http.NewRequest("GET", urls, body)
147341	if err != nil {
147342		return nil, err
147343	}
147344	req.Header = reqHeaders
147345	googleapi.Expand(req.URL, map[string]string{
147346		"project": c.project,
147347		"region":  c.region,
147348		"urlMap":  c.urlMap,
147349	})
147350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147351}
147352
147353// Do executes the "compute.regionUrlMaps.get" call.
147354// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
147355// code is an error. Response headers are in either
147356// *UrlMap.ServerResponse.Header or (if a response was returned at all)
147357// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
147358// check whether the returned error was because http.StatusNotModified
147359// was returned.
147360func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
147361	gensupport.SetOptions(c.urlParams_, opts...)
147362	res, err := c.doRequest("json")
147363	if res != nil && res.StatusCode == http.StatusNotModified {
147364		if res.Body != nil {
147365			res.Body.Close()
147366		}
147367		return nil, &googleapi.Error{
147368			Code:   res.StatusCode,
147369			Header: res.Header,
147370		}
147371	}
147372	if err != nil {
147373		return nil, err
147374	}
147375	defer googleapi.CloseBody(res)
147376	if err := googleapi.CheckResponse(res); err != nil {
147377		return nil, err
147378	}
147379	ret := &UrlMap{
147380		ServerResponse: googleapi.ServerResponse{
147381			Header:         res.Header,
147382			HTTPStatusCode: res.StatusCode,
147383		},
147384	}
147385	target := &ret
147386	if err := gensupport.DecodeResponse(target, res); err != nil {
147387		return nil, err
147388	}
147389	return ret, nil
147390	// {
147391	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
147392	//   "httpMethod": "GET",
147393	//   "id": "compute.regionUrlMaps.get",
147394	//   "parameterOrder": [
147395	//     "project",
147396	//     "region",
147397	//     "urlMap"
147398	//   ],
147399	//   "parameters": {
147400	//     "project": {
147401	//       "description": "Project ID for this request.",
147402	//       "location": "path",
147403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147404	//       "required": true,
147405	//       "type": "string"
147406	//     },
147407	//     "region": {
147408	//       "description": "Name of the region scoping this request.",
147409	//       "location": "path",
147410	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147411	//       "required": true,
147412	//       "type": "string"
147413	//     },
147414	//     "urlMap": {
147415	//       "description": "Name of the UrlMap resource to return.",
147416	//       "location": "path",
147417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147418	//       "required": true,
147419	//       "type": "string"
147420	//     }
147421	//   },
147422	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
147423	//   "response": {
147424	//     "$ref": "UrlMap"
147425	//   },
147426	//   "scopes": [
147427	//     "https://www.googleapis.com/auth/cloud-platform",
147428	//     "https://www.googleapis.com/auth/compute",
147429	//     "https://www.googleapis.com/auth/compute.readonly"
147430	//   ]
147431	// }
147432
147433}
147434
147435// method id "compute.regionUrlMaps.insert":
147436
147437type RegionUrlMapsInsertCall struct {
147438	s          *Service
147439	project    string
147440	region     string
147441	urlmap     *UrlMap
147442	urlParams_ gensupport.URLParams
147443	ctx_       context.Context
147444	header_    http.Header
147445}
147446
147447// Insert: Creates a UrlMap resource in the specified project using the
147448// data included in the request.
147449//
147450// - project: Project ID for this request.
147451// - region: Name of the region scoping this request.
147452func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
147453	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147454	c.project = project
147455	c.region = region
147456	c.urlmap = urlmap
147457	return c
147458}
147459
147460// RequestId sets the optional parameter "requestId": begin_interface:
147461// MixerMutationRequestBuilder Request ID to support idempotency.
147462func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
147463	c.urlParams_.Set("requestId", requestId)
147464	return c
147465}
147466
147467// Fields allows partial responses to be retrieved. See
147468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147469// for more information.
147470func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
147471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147472	return c
147473}
147474
147475// Context sets the context to be used in this call's Do method. Any
147476// pending HTTP request will be aborted if the provided context is
147477// canceled.
147478func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
147479	c.ctx_ = ctx
147480	return c
147481}
147482
147483// Header returns an http.Header that can be modified by the caller to
147484// add HTTP headers to the request.
147485func (c *RegionUrlMapsInsertCall) Header() http.Header {
147486	if c.header_ == nil {
147487		c.header_ = make(http.Header)
147488	}
147489	return c.header_
147490}
147491
147492func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
147493	reqHeaders := make(http.Header)
147494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147495	for k, v := range c.header_ {
147496		reqHeaders[k] = v
147497	}
147498	reqHeaders.Set("User-Agent", c.s.userAgent())
147499	var body io.Reader = nil
147500	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
147501	if err != nil {
147502		return nil, err
147503	}
147504	reqHeaders.Set("Content-Type", "application/json")
147505	c.urlParams_.Set("alt", alt)
147506	c.urlParams_.Set("prettyPrint", "false")
147507	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
147508	urls += "?" + c.urlParams_.Encode()
147509	req, err := http.NewRequest("POST", urls, body)
147510	if err != nil {
147511		return nil, err
147512	}
147513	req.Header = reqHeaders
147514	googleapi.Expand(req.URL, map[string]string{
147515		"project": c.project,
147516		"region":  c.region,
147517	})
147518	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147519}
147520
147521// Do executes the "compute.regionUrlMaps.insert" call.
147522// Exactly one of *Operation or error will be non-nil. Any non-2xx
147523// status code is an error. Response headers are in either
147524// *Operation.ServerResponse.Header or (if a response was returned at
147525// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147526// to check whether the returned error was because
147527// http.StatusNotModified was returned.
147528func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147529	gensupport.SetOptions(c.urlParams_, opts...)
147530	res, err := c.doRequest("json")
147531	if res != nil && res.StatusCode == http.StatusNotModified {
147532		if res.Body != nil {
147533			res.Body.Close()
147534		}
147535		return nil, &googleapi.Error{
147536			Code:   res.StatusCode,
147537			Header: res.Header,
147538		}
147539	}
147540	if err != nil {
147541		return nil, err
147542	}
147543	defer googleapi.CloseBody(res)
147544	if err := googleapi.CheckResponse(res); err != nil {
147545		return nil, err
147546	}
147547	ret := &Operation{
147548		ServerResponse: googleapi.ServerResponse{
147549			Header:         res.Header,
147550			HTTPStatusCode: res.StatusCode,
147551		},
147552	}
147553	target := &ret
147554	if err := gensupport.DecodeResponse(target, res); err != nil {
147555		return nil, err
147556	}
147557	return ret, nil
147558	// {
147559	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
147560	//   "httpMethod": "POST",
147561	//   "id": "compute.regionUrlMaps.insert",
147562	//   "parameterOrder": [
147563	//     "project",
147564	//     "region"
147565	//   ],
147566	//   "parameters": {
147567	//     "project": {
147568	//       "description": "Project ID for this request.",
147569	//       "location": "path",
147570	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147571	//       "required": true,
147572	//       "type": "string"
147573	//     },
147574	//     "region": {
147575	//       "description": "Name of the region scoping this request.",
147576	//       "location": "path",
147577	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147578	//       "required": true,
147579	//       "type": "string"
147580	//     },
147581	//     "requestId": {
147582	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
147583	//       "location": "query",
147584	//       "type": "string"
147585	//     }
147586	//   },
147587	//   "path": "projects/{project}/regions/{region}/urlMaps",
147588	//   "request": {
147589	//     "$ref": "UrlMap"
147590	//   },
147591	//   "response": {
147592	//     "$ref": "Operation"
147593	//   },
147594	//   "scopes": [
147595	//     "https://www.googleapis.com/auth/cloud-platform",
147596	//     "https://www.googleapis.com/auth/compute"
147597	//   ]
147598	// }
147599
147600}
147601
147602// method id "compute.regionUrlMaps.invalidateCache":
147603
147604type RegionUrlMapsInvalidateCacheCall struct {
147605	s                     *Service
147606	project               string
147607	region                string
147608	urlMap                string
147609	cacheinvalidationrule *CacheInvalidationRule
147610	urlParams_            gensupport.URLParams
147611	ctx_                  context.Context
147612	header_               http.Header
147613}
147614
147615// InvalidateCache: Initiates a cache invalidation operation,
147616// invalidating the specified path, scoped to the specified UrlMap.
147617//
147618// For more information, see Invalidating cached content
147619// (/cdn/docs/invalidating-cached-content).
147620//
147621// - project: Project ID for this request.
147622// - region: Name of the region scoping this request.
147623// - urlMap: Name of the UrlMap scoping this request.
147624func (r *RegionUrlMapsService) InvalidateCache(project string, region string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *RegionUrlMapsInvalidateCacheCall {
147625	c := &RegionUrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147626	c.project = project
147627	c.region = region
147628	c.urlMap = urlMap
147629	c.cacheinvalidationrule = cacheinvalidationrule
147630	return c
147631}
147632
147633// RequestId sets the optional parameter "requestId": begin_interface:
147634// MixerMutationRequestBuilder Request ID to support idempotency.
147635func (c *RegionUrlMapsInvalidateCacheCall) RequestId(requestId string) *RegionUrlMapsInvalidateCacheCall {
147636	c.urlParams_.Set("requestId", requestId)
147637	return c
147638}
147639
147640// Fields allows partial responses to be retrieved. See
147641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147642// for more information.
147643func (c *RegionUrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *RegionUrlMapsInvalidateCacheCall {
147644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147645	return c
147646}
147647
147648// Context sets the context to be used in this call's Do method. Any
147649// pending HTTP request will be aborted if the provided context is
147650// canceled.
147651func (c *RegionUrlMapsInvalidateCacheCall) Context(ctx context.Context) *RegionUrlMapsInvalidateCacheCall {
147652	c.ctx_ = ctx
147653	return c
147654}
147655
147656// Header returns an http.Header that can be modified by the caller to
147657// add HTTP headers to the request.
147658func (c *RegionUrlMapsInvalidateCacheCall) Header() http.Header {
147659	if c.header_ == nil {
147660		c.header_ = make(http.Header)
147661	}
147662	return c.header_
147663}
147664
147665func (c *RegionUrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
147666	reqHeaders := make(http.Header)
147667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147668	for k, v := range c.header_ {
147669		reqHeaders[k] = v
147670	}
147671	reqHeaders.Set("User-Agent", c.s.userAgent())
147672	var body io.Reader = nil
147673	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
147674	if err != nil {
147675		return nil, err
147676	}
147677	reqHeaders.Set("Content-Type", "application/json")
147678	c.urlParams_.Set("alt", alt)
147679	c.urlParams_.Set("prettyPrint", "false")
147680	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache")
147681	urls += "?" + c.urlParams_.Encode()
147682	req, err := http.NewRequest("POST", urls, body)
147683	if err != nil {
147684		return nil, err
147685	}
147686	req.Header = reqHeaders
147687	googleapi.Expand(req.URL, map[string]string{
147688		"project": c.project,
147689		"region":  c.region,
147690		"urlMap":  c.urlMap,
147691	})
147692	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147693}
147694
147695// Do executes the "compute.regionUrlMaps.invalidateCache" call.
147696// Exactly one of *Operation or error will be non-nil. Any non-2xx
147697// status code is an error. Response headers are in either
147698// *Operation.ServerResponse.Header or (if a response was returned at
147699// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147700// to check whether the returned error was because
147701// http.StatusNotModified was returned.
147702func (c *RegionUrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147703	gensupport.SetOptions(c.urlParams_, opts...)
147704	res, err := c.doRequest("json")
147705	if res != nil && res.StatusCode == http.StatusNotModified {
147706		if res.Body != nil {
147707			res.Body.Close()
147708		}
147709		return nil, &googleapi.Error{
147710			Code:   res.StatusCode,
147711			Header: res.Header,
147712		}
147713	}
147714	if err != nil {
147715		return nil, err
147716	}
147717	defer googleapi.CloseBody(res)
147718	if err := googleapi.CheckResponse(res); err != nil {
147719		return nil, err
147720	}
147721	ret := &Operation{
147722		ServerResponse: googleapi.ServerResponse{
147723			Header:         res.Header,
147724			HTTPStatusCode: res.StatusCode,
147725		},
147726	}
147727	target := &ret
147728	if err := gensupport.DecodeResponse(target, res); err != nil {
147729		return nil, err
147730	}
147731	return ret, nil
147732	// {
147733	//   "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).",
147734	//   "httpMethod": "POST",
147735	//   "id": "compute.regionUrlMaps.invalidateCache",
147736	//   "parameterOrder": [
147737	//     "project",
147738	//     "region",
147739	//     "urlMap"
147740	//   ],
147741	//   "parameters": {
147742	//     "project": {
147743	//       "description": "Project ID for this request.",
147744	//       "location": "path",
147745	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147746	//       "required": true,
147747	//       "type": "string"
147748	//     },
147749	//     "region": {
147750	//       "description": "Name of the region scoping this request.",
147751	//       "location": "path",
147752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147753	//       "required": true,
147754	//       "type": "string"
147755	//     },
147756	//     "requestId": {
147757	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
147758	//       "location": "query",
147759	//       "type": "string"
147760	//     },
147761	//     "urlMap": {
147762	//       "description": "Name of the UrlMap scoping this request.",
147763	//       "location": "path",
147764	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147765	//       "required": true,
147766	//       "type": "string"
147767	//     }
147768	//   },
147769	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache",
147770	//   "request": {
147771	//     "$ref": "CacheInvalidationRule"
147772	//   },
147773	//   "response": {
147774	//     "$ref": "Operation"
147775	//   },
147776	//   "scopes": [
147777	//     "https://www.googleapis.com/auth/cloud-platform",
147778	//     "https://www.googleapis.com/auth/compute"
147779	//   ]
147780	// }
147781
147782}
147783
147784// method id "compute.regionUrlMaps.list":
147785
147786type RegionUrlMapsListCall struct {
147787	s            *Service
147788	project      string
147789	region       string
147790	urlParams_   gensupport.URLParams
147791	ifNoneMatch_ string
147792	ctx_         context.Context
147793	header_      http.Header
147794}
147795
147796// List: Retrieves the list of UrlMap resources available to the
147797// specified project in the specified region.
147798//
147799// - project: Project ID for this request.
147800// - region: Name of the region scoping this request.
147801func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
147802	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147803	c.project = project
147804	c.region = region
147805	return c
147806}
147807
147808// Filter sets the optional parameter "filter": A filter expression that
147809// filters resources listed in the response. The expression must specify
147810// the field name, a comparison operator, and the value that you want to
147811// use for filtering. The value must be a string, a number, or a
147812// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147813// `<`.
147814//
147815// For example, if you are filtering Compute Engine instances, you can
147816// exclude instances named `example-instance` by specifying `name !=
147817// example-instance`.
147818//
147819// You can also filter nested fields. For example, you could specify
147820// `scheduling.automaticRestart = false` to include instances only if
147821// they are not scheduled for automatic restarts. You can use filtering
147822// on nested fields to filter based on resource labels.
147823//
147824// To filter on multiple expressions, provide each separate expression
147825// within parentheses. For example: ``` (scheduling.automaticRestart =
147826// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
147827// is an `AND` expression. However, you can include `AND` and `OR`
147828// expressions explicitly. For example: ``` (cpuPlatform = "Intel
147829// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
147830// (scheduling.automaticRestart = true) ```
147831func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
147832	c.urlParams_.Set("filter", filter)
147833	return c
147834}
147835
147836// MaxResults sets the optional parameter "maxResults": The maximum
147837// number of results per page that should be returned. If the number of
147838// available results is larger than `maxResults`, Compute Engine returns
147839// a `nextPageToken` that can be used to get the next page of results in
147840// subsequent list requests. Acceptable values are `0` to `500`,
147841// inclusive. (Default: `500`)
147842func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
147843	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147844	return c
147845}
147846
147847// OrderBy sets the optional parameter "orderBy": Sorts list results by
147848// a certain order. By default, results are returned in alphanumerical
147849// order based on the resource name.
147850//
147851// You can also sort results in descending order based on the creation
147852// timestamp using `orderBy="creationTimestamp desc". This sorts
147853// results based on the `creationTimestamp` field in reverse
147854// chronological order (newest result first). Use this to sort resources
147855// like operations so that the newest operation is returned
147856// first.
147857//
147858// Currently, only sorting by `name` or `creationTimestamp desc` is
147859// supported.
147860func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
147861	c.urlParams_.Set("orderBy", orderBy)
147862	return c
147863}
147864
147865// PageToken sets the optional parameter "pageToken": Specifies a page
147866// token to use. Set `pageToken` to the `nextPageToken` returned by a
147867// previous list request to get the next page of results.
147868func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
147869	c.urlParams_.Set("pageToken", pageToken)
147870	return c
147871}
147872
147873// ReturnPartialSuccess sets the optional parameter
147874// "returnPartialSuccess": Opt-in for partial success behavior which
147875// provides partial results in case of failure. The default value is
147876// false.
147877func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionUrlMapsListCall {
147878	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
147879	return c
147880}
147881
147882// Fields allows partial responses to be retrieved. See
147883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147884// for more information.
147885func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
147886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147887	return c
147888}
147889
147890// IfNoneMatch sets the optional parameter which makes the operation
147891// fail if the object's ETag matches the given value. This is useful for
147892// getting updates only after the object has changed since the last
147893// request. Use googleapi.IsNotModified to check whether the response
147894// error from Do is the result of In-None-Match.
147895func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
147896	c.ifNoneMatch_ = entityTag
147897	return c
147898}
147899
147900// Context sets the context to be used in this call's Do method. Any
147901// pending HTTP request will be aborted if the provided context is
147902// canceled.
147903func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
147904	c.ctx_ = ctx
147905	return c
147906}
147907
147908// Header returns an http.Header that can be modified by the caller to
147909// add HTTP headers to the request.
147910func (c *RegionUrlMapsListCall) Header() http.Header {
147911	if c.header_ == nil {
147912		c.header_ = make(http.Header)
147913	}
147914	return c.header_
147915}
147916
147917func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
147918	reqHeaders := make(http.Header)
147919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147920	for k, v := range c.header_ {
147921		reqHeaders[k] = v
147922	}
147923	reqHeaders.Set("User-Agent", c.s.userAgent())
147924	if c.ifNoneMatch_ != "" {
147925		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147926	}
147927	var body io.Reader = nil
147928	c.urlParams_.Set("alt", alt)
147929	c.urlParams_.Set("prettyPrint", "false")
147930	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
147931	urls += "?" + c.urlParams_.Encode()
147932	req, err := http.NewRequest("GET", urls, body)
147933	if err != nil {
147934		return nil, err
147935	}
147936	req.Header = reqHeaders
147937	googleapi.Expand(req.URL, map[string]string{
147938		"project": c.project,
147939		"region":  c.region,
147940	})
147941	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147942}
147943
147944// Do executes the "compute.regionUrlMaps.list" call.
147945// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
147946// status code is an error. Response headers are in either
147947// *UrlMapList.ServerResponse.Header or (if a response was returned at
147948// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147949// to check whether the returned error was because
147950// http.StatusNotModified was returned.
147951func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
147952	gensupport.SetOptions(c.urlParams_, opts...)
147953	res, err := c.doRequest("json")
147954	if res != nil && res.StatusCode == http.StatusNotModified {
147955		if res.Body != nil {
147956			res.Body.Close()
147957		}
147958		return nil, &googleapi.Error{
147959			Code:   res.StatusCode,
147960			Header: res.Header,
147961		}
147962	}
147963	if err != nil {
147964		return nil, err
147965	}
147966	defer googleapi.CloseBody(res)
147967	if err := googleapi.CheckResponse(res); err != nil {
147968		return nil, err
147969	}
147970	ret := &UrlMapList{
147971		ServerResponse: googleapi.ServerResponse{
147972			Header:         res.Header,
147973			HTTPStatusCode: res.StatusCode,
147974		},
147975	}
147976	target := &ret
147977	if err := gensupport.DecodeResponse(target, res); err != nil {
147978		return nil, err
147979	}
147980	return ret, nil
147981	// {
147982	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
147983	//   "httpMethod": "GET",
147984	//   "id": "compute.regionUrlMaps.list",
147985	//   "parameterOrder": [
147986	//     "project",
147987	//     "region"
147988	//   ],
147989	//   "parameters": {
147990	//     "filter": {
147991	//       "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) ```",
147992	//       "location": "query",
147993	//       "type": "string"
147994	//     },
147995	//     "maxResults": {
147996	//       "default": "500",
147997	//       "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`)",
147998	//       "format": "uint32",
147999	//       "location": "query",
148000	//       "minimum": "0",
148001	//       "type": "integer"
148002	//     },
148003	//     "orderBy": {
148004	//       "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.",
148005	//       "location": "query",
148006	//       "type": "string"
148007	//     },
148008	//     "pageToken": {
148009	//       "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.",
148010	//       "location": "query",
148011	//       "type": "string"
148012	//     },
148013	//     "project": {
148014	//       "description": "Project ID for this request.",
148015	//       "location": "path",
148016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148017	//       "required": true,
148018	//       "type": "string"
148019	//     },
148020	//     "region": {
148021	//       "description": "Name of the region scoping this request.",
148022	//       "location": "path",
148023	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148024	//       "required": true,
148025	//       "type": "string"
148026	//     },
148027	//     "returnPartialSuccess": {
148028	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
148029	//       "location": "query",
148030	//       "type": "boolean"
148031	//     }
148032	//   },
148033	//   "path": "projects/{project}/regions/{region}/urlMaps",
148034	//   "response": {
148035	//     "$ref": "UrlMapList"
148036	//   },
148037	//   "scopes": [
148038	//     "https://www.googleapis.com/auth/cloud-platform",
148039	//     "https://www.googleapis.com/auth/compute",
148040	//     "https://www.googleapis.com/auth/compute.readonly"
148041	//   ]
148042	// }
148043
148044}
148045
148046// Pages invokes f for each page of results.
148047// A non-nil error returned from f will halt the iteration.
148048// The provided context supersedes any context provided to the Context method.
148049func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
148050	c.ctx_ = ctx
148051	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148052	for {
148053		x, err := c.Do()
148054		if err != nil {
148055			return err
148056		}
148057		if err := f(x); err != nil {
148058			return err
148059		}
148060		if x.NextPageToken == "" {
148061			return nil
148062		}
148063		c.PageToken(x.NextPageToken)
148064	}
148065}
148066
148067// method id "compute.regionUrlMaps.patch":
148068
148069type RegionUrlMapsPatchCall struct {
148070	s          *Service
148071	project    string
148072	region     string
148073	urlMap     string
148074	urlmap     *UrlMap
148075	urlParams_ gensupport.URLParams
148076	ctx_       context.Context
148077	header_    http.Header
148078}
148079
148080// Patch: Patches the specified UrlMap resource with the data included
148081// in the request. This method supports PATCH semantics and uses JSON
148082// merge patch format and processing rules.
148083//
148084// - project: Project ID for this request.
148085// - region: Name of the region scoping this request.
148086// - urlMap: Name of the UrlMap resource to patch.
148087func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
148088	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148089	c.project = project
148090	c.region = region
148091	c.urlMap = urlMap
148092	c.urlmap = urlmap
148093	return c
148094}
148095
148096// RequestId sets the optional parameter "requestId": begin_interface:
148097// MixerMutationRequestBuilder Request ID to support idempotency.
148098func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
148099	c.urlParams_.Set("requestId", requestId)
148100	return c
148101}
148102
148103// Fields allows partial responses to be retrieved. See
148104// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148105// for more information.
148106func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
148107	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148108	return c
148109}
148110
148111// Context sets the context to be used in this call's Do method. Any
148112// pending HTTP request will be aborted if the provided context is
148113// canceled.
148114func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
148115	c.ctx_ = ctx
148116	return c
148117}
148118
148119// Header returns an http.Header that can be modified by the caller to
148120// add HTTP headers to the request.
148121func (c *RegionUrlMapsPatchCall) Header() http.Header {
148122	if c.header_ == nil {
148123		c.header_ = make(http.Header)
148124	}
148125	return c.header_
148126}
148127
148128func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
148129	reqHeaders := make(http.Header)
148130	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148131	for k, v := range c.header_ {
148132		reqHeaders[k] = v
148133	}
148134	reqHeaders.Set("User-Agent", c.s.userAgent())
148135	var body io.Reader = nil
148136	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
148137	if err != nil {
148138		return nil, err
148139	}
148140	reqHeaders.Set("Content-Type", "application/json")
148141	c.urlParams_.Set("alt", alt)
148142	c.urlParams_.Set("prettyPrint", "false")
148143	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
148144	urls += "?" + c.urlParams_.Encode()
148145	req, err := http.NewRequest("PATCH", urls, body)
148146	if err != nil {
148147		return nil, err
148148	}
148149	req.Header = reqHeaders
148150	googleapi.Expand(req.URL, map[string]string{
148151		"project": c.project,
148152		"region":  c.region,
148153		"urlMap":  c.urlMap,
148154	})
148155	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148156}
148157
148158// Do executes the "compute.regionUrlMaps.patch" call.
148159// Exactly one of *Operation or error will be non-nil. Any non-2xx
148160// status code is an error. Response headers are in either
148161// *Operation.ServerResponse.Header or (if a response was returned at
148162// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148163// to check whether the returned error was because
148164// http.StatusNotModified was returned.
148165func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148166	gensupport.SetOptions(c.urlParams_, opts...)
148167	res, err := c.doRequest("json")
148168	if res != nil && res.StatusCode == http.StatusNotModified {
148169		if res.Body != nil {
148170			res.Body.Close()
148171		}
148172		return nil, &googleapi.Error{
148173			Code:   res.StatusCode,
148174			Header: res.Header,
148175		}
148176	}
148177	if err != nil {
148178		return nil, err
148179	}
148180	defer googleapi.CloseBody(res)
148181	if err := googleapi.CheckResponse(res); err != nil {
148182		return nil, err
148183	}
148184	ret := &Operation{
148185		ServerResponse: googleapi.ServerResponse{
148186			Header:         res.Header,
148187			HTTPStatusCode: res.StatusCode,
148188		},
148189	}
148190	target := &ret
148191	if err := gensupport.DecodeResponse(target, res); err != nil {
148192		return nil, err
148193	}
148194	return ret, nil
148195	// {
148196	//   "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.",
148197	//   "httpMethod": "PATCH",
148198	//   "id": "compute.regionUrlMaps.patch",
148199	//   "parameterOrder": [
148200	//     "project",
148201	//     "region",
148202	//     "urlMap"
148203	//   ],
148204	//   "parameters": {
148205	//     "project": {
148206	//       "description": "Project ID for this request.",
148207	//       "location": "path",
148208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148209	//       "required": true,
148210	//       "type": "string"
148211	//     },
148212	//     "region": {
148213	//       "description": "Name of the region scoping this request.",
148214	//       "location": "path",
148215	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148216	//       "required": true,
148217	//       "type": "string"
148218	//     },
148219	//     "requestId": {
148220	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
148221	//       "location": "query",
148222	//       "type": "string"
148223	//     },
148224	//     "urlMap": {
148225	//       "description": "Name of the UrlMap resource to patch.",
148226	//       "location": "path",
148227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148228	//       "required": true,
148229	//       "type": "string"
148230	//     }
148231	//   },
148232	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
148233	//   "request": {
148234	//     "$ref": "UrlMap"
148235	//   },
148236	//   "response": {
148237	//     "$ref": "Operation"
148238	//   },
148239	//   "scopes": [
148240	//     "https://www.googleapis.com/auth/cloud-platform",
148241	//     "https://www.googleapis.com/auth/compute"
148242	//   ]
148243	// }
148244
148245}
148246
148247// method id "compute.regionUrlMaps.testIamPermissions":
148248
148249type RegionUrlMapsTestIamPermissionsCall struct {
148250	s                      *Service
148251	project                string
148252	region                 string
148253	resource               string
148254	testpermissionsrequest *TestPermissionsRequest
148255	urlParams_             gensupport.URLParams
148256	ctx_                   context.Context
148257	header_                http.Header
148258}
148259
148260// TestIamPermissions: Returns permissions that a caller has on the
148261// specified resource.
148262//
148263// - project: Project ID for this request.
148264// - region: The name of the region for this request.
148265// - resource: Name or id of the resource for this request.
148266func (r *RegionUrlMapsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionUrlMapsTestIamPermissionsCall {
148267	c := &RegionUrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148268	c.project = project
148269	c.region = region
148270	c.resource = resource
148271	c.testpermissionsrequest = testpermissionsrequest
148272	return c
148273}
148274
148275// Fields allows partial responses to be retrieved. See
148276// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148277// for more information.
148278func (c *RegionUrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionUrlMapsTestIamPermissionsCall {
148279	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148280	return c
148281}
148282
148283// Context sets the context to be used in this call's Do method. Any
148284// pending HTTP request will be aborted if the provided context is
148285// canceled.
148286func (c *RegionUrlMapsTestIamPermissionsCall) Context(ctx context.Context) *RegionUrlMapsTestIamPermissionsCall {
148287	c.ctx_ = ctx
148288	return c
148289}
148290
148291// Header returns an http.Header that can be modified by the caller to
148292// add HTTP headers to the request.
148293func (c *RegionUrlMapsTestIamPermissionsCall) Header() http.Header {
148294	if c.header_ == nil {
148295		c.header_ = make(http.Header)
148296	}
148297	return c.header_
148298}
148299
148300func (c *RegionUrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
148301	reqHeaders := make(http.Header)
148302	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148303	for k, v := range c.header_ {
148304		reqHeaders[k] = v
148305	}
148306	reqHeaders.Set("User-Agent", c.s.userAgent())
148307	var body io.Reader = nil
148308	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
148309	if err != nil {
148310		return nil, err
148311	}
148312	reqHeaders.Set("Content-Type", "application/json")
148313	c.urlParams_.Set("alt", alt)
148314	c.urlParams_.Set("prettyPrint", "false")
148315	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{resource}/testIamPermissions")
148316	urls += "?" + c.urlParams_.Encode()
148317	req, err := http.NewRequest("POST", urls, body)
148318	if err != nil {
148319		return nil, err
148320	}
148321	req.Header = reqHeaders
148322	googleapi.Expand(req.URL, map[string]string{
148323		"project":  c.project,
148324		"region":   c.region,
148325		"resource": c.resource,
148326	})
148327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148328}
148329
148330// Do executes the "compute.regionUrlMaps.testIamPermissions" call.
148331// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
148332// non-2xx status code is an error. Response headers are in either
148333// *TestPermissionsResponse.ServerResponse.Header or (if a response was
148334// returned at all) in error.(*googleapi.Error).Header. Use
148335// googleapi.IsNotModified to check whether the returned error was
148336// because http.StatusNotModified was returned.
148337func (c *RegionUrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
148338	gensupport.SetOptions(c.urlParams_, opts...)
148339	res, err := c.doRequest("json")
148340	if res != nil && res.StatusCode == http.StatusNotModified {
148341		if res.Body != nil {
148342			res.Body.Close()
148343		}
148344		return nil, &googleapi.Error{
148345			Code:   res.StatusCode,
148346			Header: res.Header,
148347		}
148348	}
148349	if err != nil {
148350		return nil, err
148351	}
148352	defer googleapi.CloseBody(res)
148353	if err := googleapi.CheckResponse(res); err != nil {
148354		return nil, err
148355	}
148356	ret := &TestPermissionsResponse{
148357		ServerResponse: googleapi.ServerResponse{
148358			Header:         res.Header,
148359			HTTPStatusCode: res.StatusCode,
148360		},
148361	}
148362	target := &ret
148363	if err := gensupport.DecodeResponse(target, res); err != nil {
148364		return nil, err
148365	}
148366	return ret, nil
148367	// {
148368	//   "description": "Returns permissions that a caller has on the specified resource.",
148369	//   "httpMethod": "POST",
148370	//   "id": "compute.regionUrlMaps.testIamPermissions",
148371	//   "parameterOrder": [
148372	//     "project",
148373	//     "region",
148374	//     "resource"
148375	//   ],
148376	//   "parameters": {
148377	//     "project": {
148378	//       "description": "Project ID for this request.",
148379	//       "location": "path",
148380	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148381	//       "required": true,
148382	//       "type": "string"
148383	//     },
148384	//     "region": {
148385	//       "description": "The name of the region for this request.",
148386	//       "location": "path",
148387	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148388	//       "required": true,
148389	//       "type": "string"
148390	//     },
148391	//     "resource": {
148392	//       "description": "Name or id of the resource for this request.",
148393	//       "location": "path",
148394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148395	//       "required": true,
148396	//       "type": "string"
148397	//     }
148398	//   },
148399	//   "path": "projects/{project}/regions/{region}/urlMaps/{resource}/testIamPermissions",
148400	//   "request": {
148401	//     "$ref": "TestPermissionsRequest"
148402	//   },
148403	//   "response": {
148404	//     "$ref": "TestPermissionsResponse"
148405	//   },
148406	//   "scopes": [
148407	//     "https://www.googleapis.com/auth/cloud-platform",
148408	//     "https://www.googleapis.com/auth/compute",
148409	//     "https://www.googleapis.com/auth/compute.readonly"
148410	//   ]
148411	// }
148412
148413}
148414
148415// method id "compute.regionUrlMaps.update":
148416
148417type RegionUrlMapsUpdateCall struct {
148418	s          *Service
148419	project    string
148420	region     string
148421	urlMap     string
148422	urlmap     *UrlMap
148423	urlParams_ gensupport.URLParams
148424	ctx_       context.Context
148425	header_    http.Header
148426}
148427
148428// Update: Updates the specified UrlMap resource with the data included
148429// in the request.
148430//
148431// - project: Project ID for this request.
148432// - region: Name of the region scoping this request.
148433// - urlMap: Name of the UrlMap resource to update.
148434func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
148435	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148436	c.project = project
148437	c.region = region
148438	c.urlMap = urlMap
148439	c.urlmap = urlmap
148440	return c
148441}
148442
148443// RequestId sets the optional parameter "requestId": begin_interface:
148444// MixerMutationRequestBuilder Request ID to support idempotency.
148445func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
148446	c.urlParams_.Set("requestId", requestId)
148447	return c
148448}
148449
148450// Fields allows partial responses to be retrieved. See
148451// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148452// for more information.
148453func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
148454	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148455	return c
148456}
148457
148458// Context sets the context to be used in this call's Do method. Any
148459// pending HTTP request will be aborted if the provided context is
148460// canceled.
148461func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
148462	c.ctx_ = ctx
148463	return c
148464}
148465
148466// Header returns an http.Header that can be modified by the caller to
148467// add HTTP headers to the request.
148468func (c *RegionUrlMapsUpdateCall) Header() http.Header {
148469	if c.header_ == nil {
148470		c.header_ = make(http.Header)
148471	}
148472	return c.header_
148473}
148474
148475func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
148476	reqHeaders := make(http.Header)
148477	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148478	for k, v := range c.header_ {
148479		reqHeaders[k] = v
148480	}
148481	reqHeaders.Set("User-Agent", c.s.userAgent())
148482	var body io.Reader = nil
148483	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
148484	if err != nil {
148485		return nil, err
148486	}
148487	reqHeaders.Set("Content-Type", "application/json")
148488	c.urlParams_.Set("alt", alt)
148489	c.urlParams_.Set("prettyPrint", "false")
148490	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
148491	urls += "?" + c.urlParams_.Encode()
148492	req, err := http.NewRequest("PUT", urls, body)
148493	if err != nil {
148494		return nil, err
148495	}
148496	req.Header = reqHeaders
148497	googleapi.Expand(req.URL, map[string]string{
148498		"project": c.project,
148499		"region":  c.region,
148500		"urlMap":  c.urlMap,
148501	})
148502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148503}
148504
148505// Do executes the "compute.regionUrlMaps.update" call.
148506// Exactly one of *Operation or error will be non-nil. Any non-2xx
148507// status code is an error. Response headers are in either
148508// *Operation.ServerResponse.Header or (if a response was returned at
148509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148510// to check whether the returned error was because
148511// http.StatusNotModified was returned.
148512func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148513	gensupport.SetOptions(c.urlParams_, opts...)
148514	res, err := c.doRequest("json")
148515	if res != nil && res.StatusCode == http.StatusNotModified {
148516		if res.Body != nil {
148517			res.Body.Close()
148518		}
148519		return nil, &googleapi.Error{
148520			Code:   res.StatusCode,
148521			Header: res.Header,
148522		}
148523	}
148524	if err != nil {
148525		return nil, err
148526	}
148527	defer googleapi.CloseBody(res)
148528	if err := googleapi.CheckResponse(res); err != nil {
148529		return nil, err
148530	}
148531	ret := &Operation{
148532		ServerResponse: googleapi.ServerResponse{
148533			Header:         res.Header,
148534			HTTPStatusCode: res.StatusCode,
148535		},
148536	}
148537	target := &ret
148538	if err := gensupport.DecodeResponse(target, res); err != nil {
148539		return nil, err
148540	}
148541	return ret, nil
148542	// {
148543	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
148544	//   "httpMethod": "PUT",
148545	//   "id": "compute.regionUrlMaps.update",
148546	//   "parameterOrder": [
148547	//     "project",
148548	//     "region",
148549	//     "urlMap"
148550	//   ],
148551	//   "parameters": {
148552	//     "project": {
148553	//       "description": "Project ID for this request.",
148554	//       "location": "path",
148555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148556	//       "required": true,
148557	//       "type": "string"
148558	//     },
148559	//     "region": {
148560	//       "description": "Name of the region scoping this request.",
148561	//       "location": "path",
148562	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148563	//       "required": true,
148564	//       "type": "string"
148565	//     },
148566	//     "requestId": {
148567	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
148568	//       "location": "query",
148569	//       "type": "string"
148570	//     },
148571	//     "urlMap": {
148572	//       "description": "Name of the UrlMap resource to update.",
148573	//       "location": "path",
148574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148575	//       "required": true,
148576	//       "type": "string"
148577	//     }
148578	//   },
148579	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
148580	//   "request": {
148581	//     "$ref": "UrlMap"
148582	//   },
148583	//   "response": {
148584	//     "$ref": "Operation"
148585	//   },
148586	//   "scopes": [
148587	//     "https://www.googleapis.com/auth/cloud-platform",
148588	//     "https://www.googleapis.com/auth/compute"
148589	//   ]
148590	// }
148591
148592}
148593
148594// method id "compute.regionUrlMaps.validate":
148595
148596type RegionUrlMapsValidateCall struct {
148597	s                            *Service
148598	project                      string
148599	region                       string
148600	urlMap                       string
148601	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
148602	urlParams_                   gensupport.URLParams
148603	ctx_                         context.Context
148604	header_                      http.Header
148605}
148606
148607// Validate: Runs static validation for the UrlMap. In particular, the
148608// tests of the provided UrlMap will be run. Calling this method does
148609// NOT create the UrlMap.
148610//
148611// - project: Project ID for this request.
148612// - region: Name of the region scoping this request.
148613// - urlMap: Name of the UrlMap resource to be validated as.
148614func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
148615	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148616	c.project = project
148617	c.region = region
148618	c.urlMap = urlMap
148619	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
148620	return c
148621}
148622
148623// Fields allows partial responses to be retrieved. See
148624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148625// for more information.
148626func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
148627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148628	return c
148629}
148630
148631// Context sets the context to be used in this call's Do method. Any
148632// pending HTTP request will be aborted if the provided context is
148633// canceled.
148634func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
148635	c.ctx_ = ctx
148636	return c
148637}
148638
148639// Header returns an http.Header that can be modified by the caller to
148640// add HTTP headers to the request.
148641func (c *RegionUrlMapsValidateCall) Header() http.Header {
148642	if c.header_ == nil {
148643		c.header_ = make(http.Header)
148644	}
148645	return c.header_
148646}
148647
148648func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
148649	reqHeaders := make(http.Header)
148650	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148651	for k, v := range c.header_ {
148652		reqHeaders[k] = v
148653	}
148654	reqHeaders.Set("User-Agent", c.s.userAgent())
148655	var body io.Reader = nil
148656	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
148657	if err != nil {
148658		return nil, err
148659	}
148660	reqHeaders.Set("Content-Type", "application/json")
148661	c.urlParams_.Set("alt", alt)
148662	c.urlParams_.Set("prettyPrint", "false")
148663	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate")
148664	urls += "?" + c.urlParams_.Encode()
148665	req, err := http.NewRequest("POST", urls, body)
148666	if err != nil {
148667		return nil, err
148668	}
148669	req.Header = reqHeaders
148670	googleapi.Expand(req.URL, map[string]string{
148671		"project": c.project,
148672		"region":  c.region,
148673		"urlMap":  c.urlMap,
148674	})
148675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148676}
148677
148678// Do executes the "compute.regionUrlMaps.validate" call.
148679// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
148680// non-2xx status code is an error. Response headers are in either
148681// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
148682// returned at all) in error.(*googleapi.Error).Header. Use
148683// googleapi.IsNotModified to check whether the returned error was
148684// because http.StatusNotModified was returned.
148685func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
148686	gensupport.SetOptions(c.urlParams_, opts...)
148687	res, err := c.doRequest("json")
148688	if res != nil && res.StatusCode == http.StatusNotModified {
148689		if res.Body != nil {
148690			res.Body.Close()
148691		}
148692		return nil, &googleapi.Error{
148693			Code:   res.StatusCode,
148694			Header: res.Header,
148695		}
148696	}
148697	if err != nil {
148698		return nil, err
148699	}
148700	defer googleapi.CloseBody(res)
148701	if err := googleapi.CheckResponse(res); err != nil {
148702		return nil, err
148703	}
148704	ret := &UrlMapsValidateResponse{
148705		ServerResponse: googleapi.ServerResponse{
148706			Header:         res.Header,
148707			HTTPStatusCode: res.StatusCode,
148708		},
148709	}
148710	target := &ret
148711	if err := gensupport.DecodeResponse(target, res); err != nil {
148712		return nil, err
148713	}
148714	return ret, nil
148715	// {
148716	//   "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.",
148717	//   "httpMethod": "POST",
148718	//   "id": "compute.regionUrlMaps.validate",
148719	//   "parameterOrder": [
148720	//     "project",
148721	//     "region",
148722	//     "urlMap"
148723	//   ],
148724	//   "parameters": {
148725	//     "project": {
148726	//       "description": "Project ID for this request.",
148727	//       "location": "path",
148728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148729	//       "required": true,
148730	//       "type": "string"
148731	//     },
148732	//     "region": {
148733	//       "description": "Name of the region scoping this request.",
148734	//       "location": "path",
148735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148736	//       "required": true,
148737	//       "type": "string"
148738	//     },
148739	//     "urlMap": {
148740	//       "description": "Name of the UrlMap resource to be validated as.",
148741	//       "location": "path",
148742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148743	//       "required": true,
148744	//       "type": "string"
148745	//     }
148746	//   },
148747	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
148748	//   "request": {
148749	//     "$ref": "RegionUrlMapsValidateRequest"
148750	//   },
148751	//   "response": {
148752	//     "$ref": "UrlMapsValidateResponse"
148753	//   },
148754	//   "scopes": [
148755	//     "https://www.googleapis.com/auth/cloud-platform",
148756	//     "https://www.googleapis.com/auth/compute"
148757	//   ]
148758	// }
148759
148760}
148761
148762// method id "compute.regions.get":
148763
148764type RegionsGetCall struct {
148765	s            *Service
148766	project      string
148767	region       string
148768	urlParams_   gensupport.URLParams
148769	ifNoneMatch_ string
148770	ctx_         context.Context
148771	header_      http.Header
148772}
148773
148774// Get: Returns the specified Region resource. Gets a list of available
148775// regions by making a list() request.
148776//
148777// - project: Project ID for this request.
148778// - region: Name of the region resource to return.
148779// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
148780func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
148781	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148782	c.project = project
148783	c.region = region
148784	return c
148785}
148786
148787// Fields allows partial responses to be retrieved. See
148788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148789// for more information.
148790func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
148791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148792	return c
148793}
148794
148795// IfNoneMatch sets the optional parameter which makes the operation
148796// fail if the object's ETag matches the given value. This is useful for
148797// getting updates only after the object has changed since the last
148798// request. Use googleapi.IsNotModified to check whether the response
148799// error from Do is the result of In-None-Match.
148800func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
148801	c.ifNoneMatch_ = entityTag
148802	return c
148803}
148804
148805// Context sets the context to be used in this call's Do method. Any
148806// pending HTTP request will be aborted if the provided context is
148807// canceled.
148808func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
148809	c.ctx_ = ctx
148810	return c
148811}
148812
148813// Header returns an http.Header that can be modified by the caller to
148814// add HTTP headers to the request.
148815func (c *RegionsGetCall) Header() http.Header {
148816	if c.header_ == nil {
148817		c.header_ = make(http.Header)
148818	}
148819	return c.header_
148820}
148821
148822func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
148823	reqHeaders := make(http.Header)
148824	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148825	for k, v := range c.header_ {
148826		reqHeaders[k] = v
148827	}
148828	reqHeaders.Set("User-Agent", c.s.userAgent())
148829	if c.ifNoneMatch_ != "" {
148830		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148831	}
148832	var body io.Reader = nil
148833	c.urlParams_.Set("alt", alt)
148834	c.urlParams_.Set("prettyPrint", "false")
148835	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}")
148836	urls += "?" + c.urlParams_.Encode()
148837	req, err := http.NewRequest("GET", urls, body)
148838	if err != nil {
148839		return nil, err
148840	}
148841	req.Header = reqHeaders
148842	googleapi.Expand(req.URL, map[string]string{
148843		"project": c.project,
148844		"region":  c.region,
148845	})
148846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148847}
148848
148849// Do executes the "compute.regions.get" call.
148850// Exactly one of *Region or error will be non-nil. Any non-2xx status
148851// code is an error. Response headers are in either
148852// *Region.ServerResponse.Header or (if a response was returned at all)
148853// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
148854// check whether the returned error was because http.StatusNotModified
148855// was returned.
148856func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
148857	gensupport.SetOptions(c.urlParams_, opts...)
148858	res, err := c.doRequest("json")
148859	if res != nil && res.StatusCode == http.StatusNotModified {
148860		if res.Body != nil {
148861			res.Body.Close()
148862		}
148863		return nil, &googleapi.Error{
148864			Code:   res.StatusCode,
148865			Header: res.Header,
148866		}
148867	}
148868	if err != nil {
148869		return nil, err
148870	}
148871	defer googleapi.CloseBody(res)
148872	if err := googleapi.CheckResponse(res); err != nil {
148873		return nil, err
148874	}
148875	ret := &Region{
148876		ServerResponse: googleapi.ServerResponse{
148877			Header:         res.Header,
148878			HTTPStatusCode: res.StatusCode,
148879		},
148880	}
148881	target := &ret
148882	if err := gensupport.DecodeResponse(target, res); err != nil {
148883		return nil, err
148884	}
148885	return ret, nil
148886	// {
148887	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
148888	//   "httpMethod": "GET",
148889	//   "id": "compute.regions.get",
148890	//   "parameterOrder": [
148891	//     "project",
148892	//     "region"
148893	//   ],
148894	//   "parameters": {
148895	//     "project": {
148896	//       "description": "Project ID for this request.",
148897	//       "location": "path",
148898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148899	//       "required": true,
148900	//       "type": "string"
148901	//     },
148902	//     "region": {
148903	//       "description": "Name of the region resource to return.",
148904	//       "location": "path",
148905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148906	//       "required": true,
148907	//       "type": "string"
148908	//     }
148909	//   },
148910	//   "path": "projects/{project}/regions/{region}",
148911	//   "response": {
148912	//     "$ref": "Region"
148913	//   },
148914	//   "scopes": [
148915	//     "https://www.googleapis.com/auth/cloud-platform",
148916	//     "https://www.googleapis.com/auth/compute",
148917	//     "https://www.googleapis.com/auth/compute.readonly"
148918	//   ]
148919	// }
148920
148921}
148922
148923// method id "compute.regions.list":
148924
148925type RegionsListCall struct {
148926	s            *Service
148927	project      string
148928	urlParams_   gensupport.URLParams
148929	ifNoneMatch_ string
148930	ctx_         context.Context
148931	header_      http.Header
148932}
148933
148934// List: Retrieves the list of region resources available to the
148935// specified project.
148936//
148937// - project: Project ID for this request.
148938// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
148939func (r *RegionsService) List(project string) *RegionsListCall {
148940	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148941	c.project = project
148942	return c
148943}
148944
148945// Filter sets the optional parameter "filter": A filter expression that
148946// filters resources listed in the response. The expression must specify
148947// the field name, a comparison operator, and the value that you want to
148948// use for filtering. The value must be a string, a number, or a
148949// boolean. The comparison operator must be either `=`, `!=`, `>`, or
148950// `<`.
148951//
148952// For example, if you are filtering Compute Engine instances, you can
148953// exclude instances named `example-instance` by specifying `name !=
148954// example-instance`.
148955//
148956// You can also filter nested fields. For example, you could specify
148957// `scheduling.automaticRestart = false` to include instances only if
148958// they are not scheduled for automatic restarts. You can use filtering
148959// on nested fields to filter based on resource labels.
148960//
148961// To filter on multiple expressions, provide each separate expression
148962// within parentheses. For example: ``` (scheduling.automaticRestart =
148963// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
148964// is an `AND` expression. However, you can include `AND` and `OR`
148965// expressions explicitly. For example: ``` (cpuPlatform = "Intel
148966// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
148967// (scheduling.automaticRestart = true) ```
148968func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
148969	c.urlParams_.Set("filter", filter)
148970	return c
148971}
148972
148973// MaxResults sets the optional parameter "maxResults": The maximum
148974// number of results per page that should be returned. If the number of
148975// available results is larger than `maxResults`, Compute Engine returns
148976// a `nextPageToken` that can be used to get the next page of results in
148977// subsequent list requests. Acceptable values are `0` to `500`,
148978// inclusive. (Default: `500`)
148979func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
148980	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148981	return c
148982}
148983
148984// OrderBy sets the optional parameter "orderBy": Sorts list results by
148985// a certain order. By default, results are returned in alphanumerical
148986// order based on the resource name.
148987//
148988// You can also sort results in descending order based on the creation
148989// timestamp using `orderBy="creationTimestamp desc". This sorts
148990// results based on the `creationTimestamp` field in reverse
148991// chronological order (newest result first). Use this to sort resources
148992// like operations so that the newest operation is returned
148993// first.
148994//
148995// Currently, only sorting by `name` or `creationTimestamp desc` is
148996// supported.
148997func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
148998	c.urlParams_.Set("orderBy", orderBy)
148999	return c
149000}
149001
149002// PageToken sets the optional parameter "pageToken": Specifies a page
149003// token to use. Set `pageToken` to the `nextPageToken` returned by a
149004// previous list request to get the next page of results.
149005func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
149006	c.urlParams_.Set("pageToken", pageToken)
149007	return c
149008}
149009
149010// ReturnPartialSuccess sets the optional parameter
149011// "returnPartialSuccess": Opt-in for partial success behavior which
149012// provides partial results in case of failure. The default value is
149013// false.
149014func (c *RegionsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionsListCall {
149015	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149016	return c
149017}
149018
149019// Fields allows partial responses to be retrieved. See
149020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149021// for more information.
149022func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
149023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149024	return c
149025}
149026
149027// IfNoneMatch sets the optional parameter which makes the operation
149028// fail if the object's ETag matches the given value. This is useful for
149029// getting updates only after the object has changed since the last
149030// request. Use googleapi.IsNotModified to check whether the response
149031// error from Do is the result of In-None-Match.
149032func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
149033	c.ifNoneMatch_ = entityTag
149034	return c
149035}
149036
149037// Context sets the context to be used in this call's Do method. Any
149038// pending HTTP request will be aborted if the provided context is
149039// canceled.
149040func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
149041	c.ctx_ = ctx
149042	return c
149043}
149044
149045// Header returns an http.Header that can be modified by the caller to
149046// add HTTP headers to the request.
149047func (c *RegionsListCall) Header() http.Header {
149048	if c.header_ == nil {
149049		c.header_ = make(http.Header)
149050	}
149051	return c.header_
149052}
149053
149054func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
149055	reqHeaders := make(http.Header)
149056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149057	for k, v := range c.header_ {
149058		reqHeaders[k] = v
149059	}
149060	reqHeaders.Set("User-Agent", c.s.userAgent())
149061	if c.ifNoneMatch_ != "" {
149062		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149063	}
149064	var body io.Reader = nil
149065	c.urlParams_.Set("alt", alt)
149066	c.urlParams_.Set("prettyPrint", "false")
149067	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions")
149068	urls += "?" + c.urlParams_.Encode()
149069	req, err := http.NewRequest("GET", urls, body)
149070	if err != nil {
149071		return nil, err
149072	}
149073	req.Header = reqHeaders
149074	googleapi.Expand(req.URL, map[string]string{
149075		"project": c.project,
149076	})
149077	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149078}
149079
149080// Do executes the "compute.regions.list" call.
149081// Exactly one of *RegionList or error will be non-nil. Any non-2xx
149082// status code is an error. Response headers are in either
149083// *RegionList.ServerResponse.Header or (if a response was returned at
149084// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149085// to check whether the returned error was because
149086// http.StatusNotModified was returned.
149087func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
149088	gensupport.SetOptions(c.urlParams_, opts...)
149089	res, err := c.doRequest("json")
149090	if res != nil && res.StatusCode == http.StatusNotModified {
149091		if res.Body != nil {
149092			res.Body.Close()
149093		}
149094		return nil, &googleapi.Error{
149095			Code:   res.StatusCode,
149096			Header: res.Header,
149097		}
149098	}
149099	if err != nil {
149100		return nil, err
149101	}
149102	defer googleapi.CloseBody(res)
149103	if err := googleapi.CheckResponse(res); err != nil {
149104		return nil, err
149105	}
149106	ret := &RegionList{
149107		ServerResponse: googleapi.ServerResponse{
149108			Header:         res.Header,
149109			HTTPStatusCode: res.StatusCode,
149110		},
149111	}
149112	target := &ret
149113	if err := gensupport.DecodeResponse(target, res); err != nil {
149114		return nil, err
149115	}
149116	return ret, nil
149117	// {
149118	//   "description": "Retrieves the list of region resources available to the specified project.",
149119	//   "httpMethod": "GET",
149120	//   "id": "compute.regions.list",
149121	//   "parameterOrder": [
149122	//     "project"
149123	//   ],
149124	//   "parameters": {
149125	//     "filter": {
149126	//       "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) ```",
149127	//       "location": "query",
149128	//       "type": "string"
149129	//     },
149130	//     "maxResults": {
149131	//       "default": "500",
149132	//       "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`)",
149133	//       "format": "uint32",
149134	//       "location": "query",
149135	//       "minimum": "0",
149136	//       "type": "integer"
149137	//     },
149138	//     "orderBy": {
149139	//       "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.",
149140	//       "location": "query",
149141	//       "type": "string"
149142	//     },
149143	//     "pageToken": {
149144	//       "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.",
149145	//       "location": "query",
149146	//       "type": "string"
149147	//     },
149148	//     "project": {
149149	//       "description": "Project ID for this request.",
149150	//       "location": "path",
149151	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149152	//       "required": true,
149153	//       "type": "string"
149154	//     },
149155	//     "returnPartialSuccess": {
149156	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
149157	//       "location": "query",
149158	//       "type": "boolean"
149159	//     }
149160	//   },
149161	//   "path": "projects/{project}/regions",
149162	//   "response": {
149163	//     "$ref": "RegionList"
149164	//   },
149165	//   "scopes": [
149166	//     "https://www.googleapis.com/auth/cloud-platform",
149167	//     "https://www.googleapis.com/auth/compute",
149168	//     "https://www.googleapis.com/auth/compute.readonly"
149169	//   ]
149170	// }
149171
149172}
149173
149174// Pages invokes f for each page of results.
149175// A non-nil error returned from f will halt the iteration.
149176// The provided context supersedes any context provided to the Context method.
149177func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
149178	c.ctx_ = ctx
149179	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149180	for {
149181		x, err := c.Do()
149182		if err != nil {
149183			return err
149184		}
149185		if err := f(x); err != nil {
149186			return err
149187		}
149188		if x.NextPageToken == "" {
149189			return nil
149190		}
149191		c.PageToken(x.NextPageToken)
149192	}
149193}
149194
149195// method id "compute.reservations.aggregatedList":
149196
149197type ReservationsAggregatedListCall struct {
149198	s            *Service
149199	project      string
149200	urlParams_   gensupport.URLParams
149201	ifNoneMatch_ string
149202	ctx_         context.Context
149203	header_      http.Header
149204}
149205
149206// AggregatedList: Retrieves an aggregated list of reservations.
149207//
149208// - project: Project ID for this request.
149209func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
149210	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149211	c.project = project
149212	return c
149213}
149214
149215// Filter sets the optional parameter "filter": A filter expression that
149216// filters resources listed in the response. The expression must specify
149217// the field name, a comparison operator, and the value that you want to
149218// use for filtering. The value must be a string, a number, or a
149219// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149220// `<`.
149221//
149222// For example, if you are filtering Compute Engine instances, you can
149223// exclude instances named `example-instance` by specifying `name !=
149224// example-instance`.
149225//
149226// You can also filter nested fields. For example, you could specify
149227// `scheduling.automaticRestart = false` to include instances only if
149228// they are not scheduled for automatic restarts. You can use filtering
149229// on nested fields to filter based on resource labels.
149230//
149231// To filter on multiple expressions, provide each separate expression
149232// within parentheses. For example: ``` (scheduling.automaticRestart =
149233// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
149234// is an `AND` expression. However, you can include `AND` and `OR`
149235// expressions explicitly. For example: ``` (cpuPlatform = "Intel
149236// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
149237// (scheduling.automaticRestart = true) ```
149238func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
149239	c.urlParams_.Set("filter", filter)
149240	return c
149241}
149242
149243// IncludeAllScopes sets the optional parameter "includeAllScopes":
149244// Indicates whether every visible scope for each scope type (zone,
149245// region, global) should be included in the response. For new resource
149246// types added after this field, the flag has no effect as new resource
149247// types will always include every visible scope for each scope type in
149248// response. For resource types which predate this field, if this flag
149249// is omitted or false, only scopes of the scope types where the
149250// resource type is expected to be found will be included.
149251func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
149252	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
149253	return c
149254}
149255
149256// MaxResults sets the optional parameter "maxResults": The maximum
149257// number of results per page that should be returned. If the number of
149258// available results is larger than `maxResults`, Compute Engine returns
149259// a `nextPageToken` that can be used to get the next page of results in
149260// subsequent list requests. Acceptable values are `0` to `500`,
149261// inclusive. (Default: `500`)
149262func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
149263	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149264	return c
149265}
149266
149267// OrderBy sets the optional parameter "orderBy": Sorts list results by
149268// a certain order. By default, results are returned in alphanumerical
149269// order based on the resource name.
149270//
149271// You can also sort results in descending order based on the creation
149272// timestamp using `orderBy="creationTimestamp desc". This sorts
149273// results based on the `creationTimestamp` field in reverse
149274// chronological order (newest result first). Use this to sort resources
149275// like operations so that the newest operation is returned
149276// first.
149277//
149278// Currently, only sorting by `name` or `creationTimestamp desc` is
149279// supported.
149280func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
149281	c.urlParams_.Set("orderBy", orderBy)
149282	return c
149283}
149284
149285// PageToken sets the optional parameter "pageToken": Specifies a page
149286// token to use. Set `pageToken` to the `nextPageToken` returned by a
149287// previous list request to get the next page of results.
149288func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
149289	c.urlParams_.Set("pageToken", pageToken)
149290	return c
149291}
149292
149293// ReturnPartialSuccess sets the optional parameter
149294// "returnPartialSuccess": Opt-in for partial success behavior which
149295// provides partial results in case of failure. The default value is
149296// false.
149297func (c *ReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsAggregatedListCall {
149298	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149299	return c
149300}
149301
149302// Fields allows partial responses to be retrieved. See
149303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149304// for more information.
149305func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
149306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149307	return c
149308}
149309
149310// IfNoneMatch sets the optional parameter which makes the operation
149311// fail if the object's ETag matches the given value. This is useful for
149312// getting updates only after the object has changed since the last
149313// request. Use googleapi.IsNotModified to check whether the response
149314// error from Do is the result of In-None-Match.
149315func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
149316	c.ifNoneMatch_ = entityTag
149317	return c
149318}
149319
149320// Context sets the context to be used in this call's Do method. Any
149321// pending HTTP request will be aborted if the provided context is
149322// canceled.
149323func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
149324	c.ctx_ = ctx
149325	return c
149326}
149327
149328// Header returns an http.Header that can be modified by the caller to
149329// add HTTP headers to the request.
149330func (c *ReservationsAggregatedListCall) Header() http.Header {
149331	if c.header_ == nil {
149332		c.header_ = make(http.Header)
149333	}
149334	return c.header_
149335}
149336
149337func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
149338	reqHeaders := make(http.Header)
149339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149340	for k, v := range c.header_ {
149341		reqHeaders[k] = v
149342	}
149343	reqHeaders.Set("User-Agent", c.s.userAgent())
149344	if c.ifNoneMatch_ != "" {
149345		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149346	}
149347	var body io.Reader = nil
149348	c.urlParams_.Set("alt", alt)
149349	c.urlParams_.Set("prettyPrint", "false")
149350	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/reservations")
149351	urls += "?" + c.urlParams_.Encode()
149352	req, err := http.NewRequest("GET", urls, body)
149353	if err != nil {
149354		return nil, err
149355	}
149356	req.Header = reqHeaders
149357	googleapi.Expand(req.URL, map[string]string{
149358		"project": c.project,
149359	})
149360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149361}
149362
149363// Do executes the "compute.reservations.aggregatedList" call.
149364// Exactly one of *ReservationAggregatedList or error will be non-nil.
149365// Any non-2xx status code is an error. Response headers are in either
149366// *ReservationAggregatedList.ServerResponse.Header or (if a response
149367// was returned at all) in error.(*googleapi.Error).Header. Use
149368// googleapi.IsNotModified to check whether the returned error was
149369// because http.StatusNotModified was returned.
149370func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
149371	gensupport.SetOptions(c.urlParams_, opts...)
149372	res, err := c.doRequest("json")
149373	if res != nil && res.StatusCode == http.StatusNotModified {
149374		if res.Body != nil {
149375			res.Body.Close()
149376		}
149377		return nil, &googleapi.Error{
149378			Code:   res.StatusCode,
149379			Header: res.Header,
149380		}
149381	}
149382	if err != nil {
149383		return nil, err
149384	}
149385	defer googleapi.CloseBody(res)
149386	if err := googleapi.CheckResponse(res); err != nil {
149387		return nil, err
149388	}
149389	ret := &ReservationAggregatedList{
149390		ServerResponse: googleapi.ServerResponse{
149391			Header:         res.Header,
149392			HTTPStatusCode: res.StatusCode,
149393		},
149394	}
149395	target := &ret
149396	if err := gensupport.DecodeResponse(target, res); err != nil {
149397		return nil, err
149398	}
149399	return ret, nil
149400	// {
149401	//   "description": "Retrieves an aggregated list of reservations.",
149402	//   "httpMethod": "GET",
149403	//   "id": "compute.reservations.aggregatedList",
149404	//   "parameterOrder": [
149405	//     "project"
149406	//   ],
149407	//   "parameters": {
149408	//     "filter": {
149409	//       "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) ```",
149410	//       "location": "query",
149411	//       "type": "string"
149412	//     },
149413	//     "includeAllScopes": {
149414	//       "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.",
149415	//       "location": "query",
149416	//       "type": "boolean"
149417	//     },
149418	//     "maxResults": {
149419	//       "default": "500",
149420	//       "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`)",
149421	//       "format": "uint32",
149422	//       "location": "query",
149423	//       "minimum": "0",
149424	//       "type": "integer"
149425	//     },
149426	//     "orderBy": {
149427	//       "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.",
149428	//       "location": "query",
149429	//       "type": "string"
149430	//     },
149431	//     "pageToken": {
149432	//       "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.",
149433	//       "location": "query",
149434	//       "type": "string"
149435	//     },
149436	//     "project": {
149437	//       "description": "Project ID for this request.",
149438	//       "location": "path",
149439	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149440	//       "required": true,
149441	//       "type": "string"
149442	//     },
149443	//     "returnPartialSuccess": {
149444	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
149445	//       "location": "query",
149446	//       "type": "boolean"
149447	//     }
149448	//   },
149449	//   "path": "projects/{project}/aggregated/reservations",
149450	//   "response": {
149451	//     "$ref": "ReservationAggregatedList"
149452	//   },
149453	//   "scopes": [
149454	//     "https://www.googleapis.com/auth/cloud-platform",
149455	//     "https://www.googleapis.com/auth/compute",
149456	//     "https://www.googleapis.com/auth/compute.readonly"
149457	//   ]
149458	// }
149459
149460}
149461
149462// Pages invokes f for each page of results.
149463// A non-nil error returned from f will halt the iteration.
149464// The provided context supersedes any context provided to the Context method.
149465func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
149466	c.ctx_ = ctx
149467	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149468	for {
149469		x, err := c.Do()
149470		if err != nil {
149471			return err
149472		}
149473		if err := f(x); err != nil {
149474			return err
149475		}
149476		if x.NextPageToken == "" {
149477			return nil
149478		}
149479		c.PageToken(x.NextPageToken)
149480	}
149481}
149482
149483// method id "compute.reservations.delete":
149484
149485type ReservationsDeleteCall struct {
149486	s           *Service
149487	project     string
149488	zone        string
149489	reservation string
149490	urlParams_  gensupport.URLParams
149491	ctx_        context.Context
149492	header_     http.Header
149493}
149494
149495// Delete: Deletes the specified reservation.
149496//
149497// - project: Project ID for this request.
149498// - reservation: Name of the reservation to delete.
149499// - zone: Name of the zone for this request.
149500func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
149501	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149502	c.project = project
149503	c.zone = zone
149504	c.reservation = reservation
149505	return c
149506}
149507
149508// RequestId sets the optional parameter "requestId": An optional
149509// request ID to identify requests. Specify a unique request ID so that
149510// if you must retry your request, the server will know to ignore the
149511// request if it has already been completed.
149512//
149513// For example, consider a situation where you make an initial request
149514// and the request times out. If you make the request again with the
149515// same request ID, the server can check if original operation with the
149516// same request ID was received, and if so, will ignore the second
149517// request. This prevents clients from accidentally creating duplicate
149518// commitments.
149519//
149520// The request ID must be a valid UUID with the exception that zero UUID
149521// is not supported (00000000-0000-0000-0000-000000000000).
149522func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
149523	c.urlParams_.Set("requestId", requestId)
149524	return c
149525}
149526
149527// Fields allows partial responses to be retrieved. See
149528// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149529// for more information.
149530func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
149531	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149532	return c
149533}
149534
149535// Context sets the context to be used in this call's Do method. Any
149536// pending HTTP request will be aborted if the provided context is
149537// canceled.
149538func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
149539	c.ctx_ = ctx
149540	return c
149541}
149542
149543// Header returns an http.Header that can be modified by the caller to
149544// add HTTP headers to the request.
149545func (c *ReservationsDeleteCall) Header() http.Header {
149546	if c.header_ == nil {
149547		c.header_ = make(http.Header)
149548	}
149549	return c.header_
149550}
149551
149552func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
149553	reqHeaders := make(http.Header)
149554	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149555	for k, v := range c.header_ {
149556		reqHeaders[k] = v
149557	}
149558	reqHeaders.Set("User-Agent", c.s.userAgent())
149559	var body io.Reader = nil
149560	c.urlParams_.Set("alt", alt)
149561	c.urlParams_.Set("prettyPrint", "false")
149562	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
149563	urls += "?" + c.urlParams_.Encode()
149564	req, err := http.NewRequest("DELETE", urls, body)
149565	if err != nil {
149566		return nil, err
149567	}
149568	req.Header = reqHeaders
149569	googleapi.Expand(req.URL, map[string]string{
149570		"project":     c.project,
149571		"zone":        c.zone,
149572		"reservation": c.reservation,
149573	})
149574	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149575}
149576
149577// Do executes the "compute.reservations.delete" call.
149578// Exactly one of *Operation or error will be non-nil. Any non-2xx
149579// status code is an error. Response headers are in either
149580// *Operation.ServerResponse.Header or (if a response was returned at
149581// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149582// to check whether the returned error was because
149583// http.StatusNotModified was returned.
149584func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149585	gensupport.SetOptions(c.urlParams_, opts...)
149586	res, err := c.doRequest("json")
149587	if res != nil && res.StatusCode == http.StatusNotModified {
149588		if res.Body != nil {
149589			res.Body.Close()
149590		}
149591		return nil, &googleapi.Error{
149592			Code:   res.StatusCode,
149593			Header: res.Header,
149594		}
149595	}
149596	if err != nil {
149597		return nil, err
149598	}
149599	defer googleapi.CloseBody(res)
149600	if err := googleapi.CheckResponse(res); err != nil {
149601		return nil, err
149602	}
149603	ret := &Operation{
149604		ServerResponse: googleapi.ServerResponse{
149605			Header:         res.Header,
149606			HTTPStatusCode: res.StatusCode,
149607		},
149608	}
149609	target := &ret
149610	if err := gensupport.DecodeResponse(target, res); err != nil {
149611		return nil, err
149612	}
149613	return ret, nil
149614	// {
149615	//   "description": "Deletes the specified reservation.",
149616	//   "httpMethod": "DELETE",
149617	//   "id": "compute.reservations.delete",
149618	//   "parameterOrder": [
149619	//     "project",
149620	//     "zone",
149621	//     "reservation"
149622	//   ],
149623	//   "parameters": {
149624	//     "project": {
149625	//       "description": "Project ID for this request.",
149626	//       "location": "path",
149627	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149628	//       "required": true,
149629	//       "type": "string"
149630	//     },
149631	//     "requestId": {
149632	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149633	//       "location": "query",
149634	//       "type": "string"
149635	//     },
149636	//     "reservation": {
149637	//       "description": "Name of the reservation to delete.",
149638	//       "location": "path",
149639	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149640	//       "required": true,
149641	//       "type": "string"
149642	//     },
149643	//     "zone": {
149644	//       "description": "Name of the zone for this request.",
149645	//       "location": "path",
149646	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149647	//       "required": true,
149648	//       "type": "string"
149649	//     }
149650	//   },
149651	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
149652	//   "response": {
149653	//     "$ref": "Operation"
149654	//   },
149655	//   "scopes": [
149656	//     "https://www.googleapis.com/auth/cloud-platform",
149657	//     "https://www.googleapis.com/auth/compute"
149658	//   ]
149659	// }
149660
149661}
149662
149663// method id "compute.reservations.get":
149664
149665type ReservationsGetCall struct {
149666	s            *Service
149667	project      string
149668	zone         string
149669	reservation  string
149670	urlParams_   gensupport.URLParams
149671	ifNoneMatch_ string
149672	ctx_         context.Context
149673	header_      http.Header
149674}
149675
149676// Get: Retrieves information about the specified reservation.
149677//
149678// - project: Project ID for this request.
149679// - reservation: Name of the reservation to retrieve.
149680// - zone: Name of the zone for this request.
149681func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
149682	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149683	c.project = project
149684	c.zone = zone
149685	c.reservation = reservation
149686	return c
149687}
149688
149689// Fields allows partial responses to be retrieved. See
149690// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149691// for more information.
149692func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
149693	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149694	return c
149695}
149696
149697// IfNoneMatch sets the optional parameter which makes the operation
149698// fail if the object's ETag matches the given value. This is useful for
149699// getting updates only after the object has changed since the last
149700// request. Use googleapi.IsNotModified to check whether the response
149701// error from Do is the result of In-None-Match.
149702func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
149703	c.ifNoneMatch_ = entityTag
149704	return c
149705}
149706
149707// Context sets the context to be used in this call's Do method. Any
149708// pending HTTP request will be aborted if the provided context is
149709// canceled.
149710func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
149711	c.ctx_ = ctx
149712	return c
149713}
149714
149715// Header returns an http.Header that can be modified by the caller to
149716// add HTTP headers to the request.
149717func (c *ReservationsGetCall) Header() http.Header {
149718	if c.header_ == nil {
149719		c.header_ = make(http.Header)
149720	}
149721	return c.header_
149722}
149723
149724func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
149725	reqHeaders := make(http.Header)
149726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149727	for k, v := range c.header_ {
149728		reqHeaders[k] = v
149729	}
149730	reqHeaders.Set("User-Agent", c.s.userAgent())
149731	if c.ifNoneMatch_ != "" {
149732		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149733	}
149734	var body io.Reader = nil
149735	c.urlParams_.Set("alt", alt)
149736	c.urlParams_.Set("prettyPrint", "false")
149737	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
149738	urls += "?" + c.urlParams_.Encode()
149739	req, err := http.NewRequest("GET", urls, body)
149740	if err != nil {
149741		return nil, err
149742	}
149743	req.Header = reqHeaders
149744	googleapi.Expand(req.URL, map[string]string{
149745		"project":     c.project,
149746		"zone":        c.zone,
149747		"reservation": c.reservation,
149748	})
149749	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149750}
149751
149752// Do executes the "compute.reservations.get" call.
149753// Exactly one of *Reservation or error will be non-nil. Any non-2xx
149754// status code is an error. Response headers are in either
149755// *Reservation.ServerResponse.Header or (if a response was returned at
149756// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149757// to check whether the returned error was because
149758// http.StatusNotModified was returned.
149759func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
149760	gensupport.SetOptions(c.urlParams_, opts...)
149761	res, err := c.doRequest("json")
149762	if res != nil && res.StatusCode == http.StatusNotModified {
149763		if res.Body != nil {
149764			res.Body.Close()
149765		}
149766		return nil, &googleapi.Error{
149767			Code:   res.StatusCode,
149768			Header: res.Header,
149769		}
149770	}
149771	if err != nil {
149772		return nil, err
149773	}
149774	defer googleapi.CloseBody(res)
149775	if err := googleapi.CheckResponse(res); err != nil {
149776		return nil, err
149777	}
149778	ret := &Reservation{
149779		ServerResponse: googleapi.ServerResponse{
149780			Header:         res.Header,
149781			HTTPStatusCode: res.StatusCode,
149782		},
149783	}
149784	target := &ret
149785	if err := gensupport.DecodeResponse(target, res); err != nil {
149786		return nil, err
149787	}
149788	return ret, nil
149789	// {
149790	//   "description": "Retrieves information about the specified reservation.",
149791	//   "httpMethod": "GET",
149792	//   "id": "compute.reservations.get",
149793	//   "parameterOrder": [
149794	//     "project",
149795	//     "zone",
149796	//     "reservation"
149797	//   ],
149798	//   "parameters": {
149799	//     "project": {
149800	//       "description": "Project ID for this request.",
149801	//       "location": "path",
149802	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149803	//       "required": true,
149804	//       "type": "string"
149805	//     },
149806	//     "reservation": {
149807	//       "description": "Name of the reservation to retrieve.",
149808	//       "location": "path",
149809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149810	//       "required": true,
149811	//       "type": "string"
149812	//     },
149813	//     "zone": {
149814	//       "description": "Name of the zone for this request.",
149815	//       "location": "path",
149816	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149817	//       "required": true,
149818	//       "type": "string"
149819	//     }
149820	//   },
149821	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
149822	//   "response": {
149823	//     "$ref": "Reservation"
149824	//   },
149825	//   "scopes": [
149826	//     "https://www.googleapis.com/auth/cloud-platform",
149827	//     "https://www.googleapis.com/auth/compute",
149828	//     "https://www.googleapis.com/auth/compute.readonly"
149829	//   ]
149830	// }
149831
149832}
149833
149834// method id "compute.reservations.getIamPolicy":
149835
149836type ReservationsGetIamPolicyCall struct {
149837	s            *Service
149838	project      string
149839	zone         string
149840	resource     string
149841	urlParams_   gensupport.URLParams
149842	ifNoneMatch_ string
149843	ctx_         context.Context
149844	header_      http.Header
149845}
149846
149847// GetIamPolicy: Gets the access control policy for a resource. May be
149848// empty if no such policy or resource exists.
149849//
149850// - project: Project ID for this request.
149851// - resource: Name or id of the resource for this request.
149852// - zone: The name of the zone for this request.
149853func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
149854	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149855	c.project = project
149856	c.zone = zone
149857	c.resource = resource
149858	return c
149859}
149860
149861// OptionsRequestedPolicyVersion sets the optional parameter
149862// "optionsRequestedPolicyVersion": Requested IAM Policy version.
149863func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
149864	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
149865	return c
149866}
149867
149868// Fields allows partial responses to be retrieved. See
149869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149870// for more information.
149871func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
149872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149873	return c
149874}
149875
149876// IfNoneMatch sets the optional parameter which makes the operation
149877// fail if the object's ETag matches the given value. This is useful for
149878// getting updates only after the object has changed since the last
149879// request. Use googleapi.IsNotModified to check whether the response
149880// error from Do is the result of In-None-Match.
149881func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
149882	c.ifNoneMatch_ = entityTag
149883	return c
149884}
149885
149886// Context sets the context to be used in this call's Do method. Any
149887// pending HTTP request will be aborted if the provided context is
149888// canceled.
149889func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
149890	c.ctx_ = ctx
149891	return c
149892}
149893
149894// Header returns an http.Header that can be modified by the caller to
149895// add HTTP headers to the request.
149896func (c *ReservationsGetIamPolicyCall) Header() http.Header {
149897	if c.header_ == nil {
149898		c.header_ = make(http.Header)
149899	}
149900	return c.header_
149901}
149902
149903func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
149904	reqHeaders := make(http.Header)
149905	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149906	for k, v := range c.header_ {
149907		reqHeaders[k] = v
149908	}
149909	reqHeaders.Set("User-Agent", c.s.userAgent())
149910	if c.ifNoneMatch_ != "" {
149911		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149912	}
149913	var body io.Reader = nil
149914	c.urlParams_.Set("alt", alt)
149915	c.urlParams_.Set("prettyPrint", "false")
149916	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
149917	urls += "?" + c.urlParams_.Encode()
149918	req, err := http.NewRequest("GET", urls, body)
149919	if err != nil {
149920		return nil, err
149921	}
149922	req.Header = reqHeaders
149923	googleapi.Expand(req.URL, map[string]string{
149924		"project":  c.project,
149925		"zone":     c.zone,
149926		"resource": c.resource,
149927	})
149928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149929}
149930
149931// Do executes the "compute.reservations.getIamPolicy" call.
149932// Exactly one of *Policy or error will be non-nil. Any non-2xx status
149933// code is an error. Response headers are in either
149934// *Policy.ServerResponse.Header or (if a response was returned at all)
149935// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
149936// check whether the returned error was because http.StatusNotModified
149937// was returned.
149938func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
149939	gensupport.SetOptions(c.urlParams_, opts...)
149940	res, err := c.doRequest("json")
149941	if res != nil && res.StatusCode == http.StatusNotModified {
149942		if res.Body != nil {
149943			res.Body.Close()
149944		}
149945		return nil, &googleapi.Error{
149946			Code:   res.StatusCode,
149947			Header: res.Header,
149948		}
149949	}
149950	if err != nil {
149951		return nil, err
149952	}
149953	defer googleapi.CloseBody(res)
149954	if err := googleapi.CheckResponse(res); err != nil {
149955		return nil, err
149956	}
149957	ret := &Policy{
149958		ServerResponse: googleapi.ServerResponse{
149959			Header:         res.Header,
149960			HTTPStatusCode: res.StatusCode,
149961		},
149962	}
149963	target := &ret
149964	if err := gensupport.DecodeResponse(target, res); err != nil {
149965		return nil, err
149966	}
149967	return ret, nil
149968	// {
149969	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
149970	//   "httpMethod": "GET",
149971	//   "id": "compute.reservations.getIamPolicy",
149972	//   "parameterOrder": [
149973	//     "project",
149974	//     "zone",
149975	//     "resource"
149976	//   ],
149977	//   "parameters": {
149978	//     "optionsRequestedPolicyVersion": {
149979	//       "description": "Requested IAM Policy version.",
149980	//       "format": "int32",
149981	//       "location": "query",
149982	//       "type": "integer"
149983	//     },
149984	//     "project": {
149985	//       "description": "Project ID for this request.",
149986	//       "location": "path",
149987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149988	//       "required": true,
149989	//       "type": "string"
149990	//     },
149991	//     "resource": {
149992	//       "description": "Name or id of the resource for this request.",
149993	//       "location": "path",
149994	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149995	//       "required": true,
149996	//       "type": "string"
149997	//     },
149998	//     "zone": {
149999	//       "description": "The name of the zone for this request.",
150000	//       "location": "path",
150001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150002	//       "required": true,
150003	//       "type": "string"
150004	//     }
150005	//   },
150006	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
150007	//   "response": {
150008	//     "$ref": "Policy"
150009	//   },
150010	//   "scopes": [
150011	//     "https://www.googleapis.com/auth/cloud-platform",
150012	//     "https://www.googleapis.com/auth/compute",
150013	//     "https://www.googleapis.com/auth/compute.readonly"
150014	//   ]
150015	// }
150016
150017}
150018
150019// method id "compute.reservations.insert":
150020
150021type ReservationsInsertCall struct {
150022	s           *Service
150023	project     string
150024	zone        string
150025	reservation *Reservation
150026	urlParams_  gensupport.URLParams
150027	ctx_        context.Context
150028	header_     http.Header
150029}
150030
150031// Insert: Creates a new reservation. For more information, read
150032// Reserving zonal resources.
150033//
150034// - project: Project ID for this request.
150035// - zone: Name of the zone for this request.
150036func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
150037	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150038	c.project = project
150039	c.zone = zone
150040	c.reservation = reservation
150041	return c
150042}
150043
150044// RequestId sets the optional parameter "requestId": An optional
150045// request ID to identify requests. Specify a unique request ID so that
150046// if you must retry your request, the server will know to ignore the
150047// request if it has already been completed.
150048//
150049// For example, consider a situation where you make an initial request
150050// and the request times out. If you make the request again with the
150051// same request ID, the server can check if original operation with the
150052// same request ID was received, and if so, will ignore the second
150053// request. This prevents clients from accidentally creating duplicate
150054// commitments.
150055//
150056// The request ID must be a valid UUID with the exception that zero UUID
150057// is not supported (00000000-0000-0000-0000-000000000000).
150058func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
150059	c.urlParams_.Set("requestId", requestId)
150060	return c
150061}
150062
150063// Fields allows partial responses to be retrieved. See
150064// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150065// for more information.
150066func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
150067	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150068	return c
150069}
150070
150071// Context sets the context to be used in this call's Do method. Any
150072// pending HTTP request will be aborted if the provided context is
150073// canceled.
150074func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
150075	c.ctx_ = ctx
150076	return c
150077}
150078
150079// Header returns an http.Header that can be modified by the caller to
150080// add HTTP headers to the request.
150081func (c *ReservationsInsertCall) Header() http.Header {
150082	if c.header_ == nil {
150083		c.header_ = make(http.Header)
150084	}
150085	return c.header_
150086}
150087
150088func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
150089	reqHeaders := make(http.Header)
150090	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150091	for k, v := range c.header_ {
150092		reqHeaders[k] = v
150093	}
150094	reqHeaders.Set("User-Agent", c.s.userAgent())
150095	var body io.Reader = nil
150096	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
150097	if err != nil {
150098		return nil, err
150099	}
150100	reqHeaders.Set("Content-Type", "application/json")
150101	c.urlParams_.Set("alt", alt)
150102	c.urlParams_.Set("prettyPrint", "false")
150103	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
150104	urls += "?" + c.urlParams_.Encode()
150105	req, err := http.NewRequest("POST", urls, body)
150106	if err != nil {
150107		return nil, err
150108	}
150109	req.Header = reqHeaders
150110	googleapi.Expand(req.URL, map[string]string{
150111		"project": c.project,
150112		"zone":    c.zone,
150113	})
150114	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150115}
150116
150117// Do executes the "compute.reservations.insert" call.
150118// Exactly one of *Operation or error will be non-nil. Any non-2xx
150119// status code is an error. Response headers are in either
150120// *Operation.ServerResponse.Header or (if a response was returned at
150121// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150122// to check whether the returned error was because
150123// http.StatusNotModified was returned.
150124func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150125	gensupport.SetOptions(c.urlParams_, opts...)
150126	res, err := c.doRequest("json")
150127	if res != nil && res.StatusCode == http.StatusNotModified {
150128		if res.Body != nil {
150129			res.Body.Close()
150130		}
150131		return nil, &googleapi.Error{
150132			Code:   res.StatusCode,
150133			Header: res.Header,
150134		}
150135	}
150136	if err != nil {
150137		return nil, err
150138	}
150139	defer googleapi.CloseBody(res)
150140	if err := googleapi.CheckResponse(res); err != nil {
150141		return nil, err
150142	}
150143	ret := &Operation{
150144		ServerResponse: googleapi.ServerResponse{
150145			Header:         res.Header,
150146			HTTPStatusCode: res.StatusCode,
150147		},
150148	}
150149	target := &ret
150150	if err := gensupport.DecodeResponse(target, res); err != nil {
150151		return nil, err
150152	}
150153	return ret, nil
150154	// {
150155	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
150156	//   "httpMethod": "POST",
150157	//   "id": "compute.reservations.insert",
150158	//   "parameterOrder": [
150159	//     "project",
150160	//     "zone"
150161	//   ],
150162	//   "parameters": {
150163	//     "project": {
150164	//       "description": "Project ID for this request.",
150165	//       "location": "path",
150166	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150167	//       "required": true,
150168	//       "type": "string"
150169	//     },
150170	//     "requestId": {
150171	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150172	//       "location": "query",
150173	//       "type": "string"
150174	//     },
150175	//     "zone": {
150176	//       "description": "Name of the zone for this request.",
150177	//       "location": "path",
150178	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150179	//       "required": true,
150180	//       "type": "string"
150181	//     }
150182	//   },
150183	//   "path": "projects/{project}/zones/{zone}/reservations",
150184	//   "request": {
150185	//     "$ref": "Reservation"
150186	//   },
150187	//   "response": {
150188	//     "$ref": "Operation"
150189	//   },
150190	//   "scopes": [
150191	//     "https://www.googleapis.com/auth/cloud-platform",
150192	//     "https://www.googleapis.com/auth/compute"
150193	//   ]
150194	// }
150195
150196}
150197
150198// method id "compute.reservations.list":
150199
150200type ReservationsListCall struct {
150201	s            *Service
150202	project      string
150203	zone         string
150204	urlParams_   gensupport.URLParams
150205	ifNoneMatch_ string
150206	ctx_         context.Context
150207	header_      http.Header
150208}
150209
150210// List: A list of all the reservations that have been configured for
150211// the specified project in specified zone.
150212//
150213// - project: Project ID for this request.
150214// - zone: Name of the zone for this request.
150215func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
150216	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150217	c.project = project
150218	c.zone = zone
150219	return c
150220}
150221
150222// Filter sets the optional parameter "filter": A filter expression that
150223// filters resources listed in the response. The expression must specify
150224// the field name, a comparison operator, and the value that you want to
150225// use for filtering. The value must be a string, a number, or a
150226// boolean. The comparison operator must be either `=`, `!=`, `>`, or
150227// `<`.
150228//
150229// For example, if you are filtering Compute Engine instances, you can
150230// exclude instances named `example-instance` by specifying `name !=
150231// example-instance`.
150232//
150233// You can also filter nested fields. For example, you could specify
150234// `scheduling.automaticRestart = false` to include instances only if
150235// they are not scheduled for automatic restarts. You can use filtering
150236// on nested fields to filter based on resource labels.
150237//
150238// To filter on multiple expressions, provide each separate expression
150239// within parentheses. For example: ``` (scheduling.automaticRestart =
150240// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
150241// is an `AND` expression. However, you can include `AND` and `OR`
150242// expressions explicitly. For example: ``` (cpuPlatform = "Intel
150243// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
150244// (scheduling.automaticRestart = true) ```
150245func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
150246	c.urlParams_.Set("filter", filter)
150247	return c
150248}
150249
150250// MaxResults sets the optional parameter "maxResults": The maximum
150251// number of results per page that should be returned. If the number of
150252// available results is larger than `maxResults`, Compute Engine returns
150253// a `nextPageToken` that can be used to get the next page of results in
150254// subsequent list requests. Acceptable values are `0` to `500`,
150255// inclusive. (Default: `500`)
150256func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
150257	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150258	return c
150259}
150260
150261// OrderBy sets the optional parameter "orderBy": Sorts list results by
150262// a certain order. By default, results are returned in alphanumerical
150263// order based on the resource name.
150264//
150265// You can also sort results in descending order based on the creation
150266// timestamp using `orderBy="creationTimestamp desc". This sorts
150267// results based on the `creationTimestamp` field in reverse
150268// chronological order (newest result first). Use this to sort resources
150269// like operations so that the newest operation is returned
150270// first.
150271//
150272// Currently, only sorting by `name` or `creationTimestamp desc` is
150273// supported.
150274func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
150275	c.urlParams_.Set("orderBy", orderBy)
150276	return c
150277}
150278
150279// PageToken sets the optional parameter "pageToken": Specifies a page
150280// token to use. Set `pageToken` to the `nextPageToken` returned by a
150281// previous list request to get the next page of results.
150282func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
150283	c.urlParams_.Set("pageToken", pageToken)
150284	return c
150285}
150286
150287// ReturnPartialSuccess sets the optional parameter
150288// "returnPartialSuccess": Opt-in for partial success behavior which
150289// provides partial results in case of failure. The default value is
150290// false.
150291func (c *ReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsListCall {
150292	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
150293	return c
150294}
150295
150296// Fields allows partial responses to be retrieved. See
150297// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150298// for more information.
150299func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
150300	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150301	return c
150302}
150303
150304// IfNoneMatch sets the optional parameter which makes the operation
150305// fail if the object's ETag matches the given value. This is useful for
150306// getting updates only after the object has changed since the last
150307// request. Use googleapi.IsNotModified to check whether the response
150308// error from Do is the result of In-None-Match.
150309func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
150310	c.ifNoneMatch_ = entityTag
150311	return c
150312}
150313
150314// Context sets the context to be used in this call's Do method. Any
150315// pending HTTP request will be aborted if the provided context is
150316// canceled.
150317func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
150318	c.ctx_ = ctx
150319	return c
150320}
150321
150322// Header returns an http.Header that can be modified by the caller to
150323// add HTTP headers to the request.
150324func (c *ReservationsListCall) Header() http.Header {
150325	if c.header_ == nil {
150326		c.header_ = make(http.Header)
150327	}
150328	return c.header_
150329}
150330
150331func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
150332	reqHeaders := make(http.Header)
150333	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150334	for k, v := range c.header_ {
150335		reqHeaders[k] = v
150336	}
150337	reqHeaders.Set("User-Agent", c.s.userAgent())
150338	if c.ifNoneMatch_ != "" {
150339		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150340	}
150341	var body io.Reader = nil
150342	c.urlParams_.Set("alt", alt)
150343	c.urlParams_.Set("prettyPrint", "false")
150344	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
150345	urls += "?" + c.urlParams_.Encode()
150346	req, err := http.NewRequest("GET", urls, body)
150347	if err != nil {
150348		return nil, err
150349	}
150350	req.Header = reqHeaders
150351	googleapi.Expand(req.URL, map[string]string{
150352		"project": c.project,
150353		"zone":    c.zone,
150354	})
150355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150356}
150357
150358// Do executes the "compute.reservations.list" call.
150359// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
150360// status code is an error. Response headers are in either
150361// *ReservationList.ServerResponse.Header or (if a response was returned
150362// at all) in error.(*googleapi.Error).Header. Use
150363// googleapi.IsNotModified to check whether the returned error was
150364// because http.StatusNotModified was returned.
150365func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
150366	gensupport.SetOptions(c.urlParams_, opts...)
150367	res, err := c.doRequest("json")
150368	if res != nil && res.StatusCode == http.StatusNotModified {
150369		if res.Body != nil {
150370			res.Body.Close()
150371		}
150372		return nil, &googleapi.Error{
150373			Code:   res.StatusCode,
150374			Header: res.Header,
150375		}
150376	}
150377	if err != nil {
150378		return nil, err
150379	}
150380	defer googleapi.CloseBody(res)
150381	if err := googleapi.CheckResponse(res); err != nil {
150382		return nil, err
150383	}
150384	ret := &ReservationList{
150385		ServerResponse: googleapi.ServerResponse{
150386			Header:         res.Header,
150387			HTTPStatusCode: res.StatusCode,
150388		},
150389	}
150390	target := &ret
150391	if err := gensupport.DecodeResponse(target, res); err != nil {
150392		return nil, err
150393	}
150394	return ret, nil
150395	// {
150396	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
150397	//   "httpMethod": "GET",
150398	//   "id": "compute.reservations.list",
150399	//   "parameterOrder": [
150400	//     "project",
150401	//     "zone"
150402	//   ],
150403	//   "parameters": {
150404	//     "filter": {
150405	//       "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) ```",
150406	//       "location": "query",
150407	//       "type": "string"
150408	//     },
150409	//     "maxResults": {
150410	//       "default": "500",
150411	//       "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`)",
150412	//       "format": "uint32",
150413	//       "location": "query",
150414	//       "minimum": "0",
150415	//       "type": "integer"
150416	//     },
150417	//     "orderBy": {
150418	//       "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.",
150419	//       "location": "query",
150420	//       "type": "string"
150421	//     },
150422	//     "pageToken": {
150423	//       "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.",
150424	//       "location": "query",
150425	//       "type": "string"
150426	//     },
150427	//     "project": {
150428	//       "description": "Project ID for this request.",
150429	//       "location": "path",
150430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150431	//       "required": true,
150432	//       "type": "string"
150433	//     },
150434	//     "returnPartialSuccess": {
150435	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
150436	//       "location": "query",
150437	//       "type": "boolean"
150438	//     },
150439	//     "zone": {
150440	//       "description": "Name of the zone for this request.",
150441	//       "location": "path",
150442	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150443	//       "required": true,
150444	//       "type": "string"
150445	//     }
150446	//   },
150447	//   "path": "projects/{project}/zones/{zone}/reservations",
150448	//   "response": {
150449	//     "$ref": "ReservationList"
150450	//   },
150451	//   "scopes": [
150452	//     "https://www.googleapis.com/auth/cloud-platform",
150453	//     "https://www.googleapis.com/auth/compute",
150454	//     "https://www.googleapis.com/auth/compute.readonly"
150455	//   ]
150456	// }
150457
150458}
150459
150460// Pages invokes f for each page of results.
150461// A non-nil error returned from f will halt the iteration.
150462// The provided context supersedes any context provided to the Context method.
150463func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
150464	c.ctx_ = ctx
150465	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150466	for {
150467		x, err := c.Do()
150468		if err != nil {
150469			return err
150470		}
150471		if err := f(x); err != nil {
150472			return err
150473		}
150474		if x.NextPageToken == "" {
150475			return nil
150476		}
150477		c.PageToken(x.NextPageToken)
150478	}
150479}
150480
150481// method id "compute.reservations.resize":
150482
150483type ReservationsResizeCall struct {
150484	s                         *Service
150485	project                   string
150486	zone                      string
150487	reservation               string
150488	reservationsresizerequest *ReservationsResizeRequest
150489	urlParams_                gensupport.URLParams
150490	ctx_                      context.Context
150491	header_                   http.Header
150492}
150493
150494// Resize: Resizes the reservation (applicable to standalone
150495// reservations only). For more information, read Modifying
150496// reservations.
150497//
150498// - project: Project ID for this request.
150499// - reservation: Name of the reservation to update.
150500// - zone: Name of the zone for this request.
150501func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
150502	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150503	c.project = project
150504	c.zone = zone
150505	c.reservation = reservation
150506	c.reservationsresizerequest = reservationsresizerequest
150507	return c
150508}
150509
150510// RequestId sets the optional parameter "requestId": An optional
150511// request ID to identify requests. Specify a unique request ID so that
150512// if you must retry your request, the server will know to ignore the
150513// request if it has already been completed.
150514//
150515// For example, consider a situation where you make an initial request
150516// and the request times out. If you make the request again with the
150517// same request ID, the server can check if original operation with the
150518// same request ID was received, and if so, will ignore the second
150519// request. This prevents clients from accidentally creating duplicate
150520// commitments.
150521//
150522// The request ID must be a valid UUID with the exception that zero UUID
150523// is not supported (00000000-0000-0000-0000-000000000000).
150524func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
150525	c.urlParams_.Set("requestId", requestId)
150526	return c
150527}
150528
150529// Fields allows partial responses to be retrieved. See
150530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150531// for more information.
150532func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
150533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150534	return c
150535}
150536
150537// Context sets the context to be used in this call's Do method. Any
150538// pending HTTP request will be aborted if the provided context is
150539// canceled.
150540func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
150541	c.ctx_ = ctx
150542	return c
150543}
150544
150545// Header returns an http.Header that can be modified by the caller to
150546// add HTTP headers to the request.
150547func (c *ReservationsResizeCall) Header() http.Header {
150548	if c.header_ == nil {
150549		c.header_ = make(http.Header)
150550	}
150551	return c.header_
150552}
150553
150554func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
150555	reqHeaders := make(http.Header)
150556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150557	for k, v := range c.header_ {
150558		reqHeaders[k] = v
150559	}
150560	reqHeaders.Set("User-Agent", c.s.userAgent())
150561	var body io.Reader = nil
150562	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
150563	if err != nil {
150564		return nil, err
150565	}
150566	reqHeaders.Set("Content-Type", "application/json")
150567	c.urlParams_.Set("alt", alt)
150568	c.urlParams_.Set("prettyPrint", "false")
150569	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/resize")
150570	urls += "?" + c.urlParams_.Encode()
150571	req, err := http.NewRequest("POST", urls, body)
150572	if err != nil {
150573		return nil, err
150574	}
150575	req.Header = reqHeaders
150576	googleapi.Expand(req.URL, map[string]string{
150577		"project":     c.project,
150578		"zone":        c.zone,
150579		"reservation": c.reservation,
150580	})
150581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150582}
150583
150584// Do executes the "compute.reservations.resize" call.
150585// Exactly one of *Operation or error will be non-nil. Any non-2xx
150586// status code is an error. Response headers are in either
150587// *Operation.ServerResponse.Header or (if a response was returned at
150588// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150589// to check whether the returned error was because
150590// http.StatusNotModified was returned.
150591func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150592	gensupport.SetOptions(c.urlParams_, opts...)
150593	res, err := c.doRequest("json")
150594	if res != nil && res.StatusCode == http.StatusNotModified {
150595		if res.Body != nil {
150596			res.Body.Close()
150597		}
150598		return nil, &googleapi.Error{
150599			Code:   res.StatusCode,
150600			Header: res.Header,
150601		}
150602	}
150603	if err != nil {
150604		return nil, err
150605	}
150606	defer googleapi.CloseBody(res)
150607	if err := googleapi.CheckResponse(res); err != nil {
150608		return nil, err
150609	}
150610	ret := &Operation{
150611		ServerResponse: googleapi.ServerResponse{
150612			Header:         res.Header,
150613			HTTPStatusCode: res.StatusCode,
150614		},
150615	}
150616	target := &ret
150617	if err := gensupport.DecodeResponse(target, res); err != nil {
150618		return nil, err
150619	}
150620	return ret, nil
150621	// {
150622	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
150623	//   "httpMethod": "POST",
150624	//   "id": "compute.reservations.resize",
150625	//   "parameterOrder": [
150626	//     "project",
150627	//     "zone",
150628	//     "reservation"
150629	//   ],
150630	//   "parameters": {
150631	//     "project": {
150632	//       "description": "Project ID for this request.",
150633	//       "location": "path",
150634	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150635	//       "required": true,
150636	//       "type": "string"
150637	//     },
150638	//     "requestId": {
150639	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150640	//       "location": "query",
150641	//       "type": "string"
150642	//     },
150643	//     "reservation": {
150644	//       "description": "Name of the reservation to update.",
150645	//       "location": "path",
150646	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150647	//       "required": true,
150648	//       "type": "string"
150649	//     },
150650	//     "zone": {
150651	//       "description": "Name of the zone for this request.",
150652	//       "location": "path",
150653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150654	//       "required": true,
150655	//       "type": "string"
150656	//     }
150657	//   },
150658	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize",
150659	//   "request": {
150660	//     "$ref": "ReservationsResizeRequest"
150661	//   },
150662	//   "response": {
150663	//     "$ref": "Operation"
150664	//   },
150665	//   "scopes": [
150666	//     "https://www.googleapis.com/auth/cloud-platform",
150667	//     "https://www.googleapis.com/auth/compute"
150668	//   ]
150669	// }
150670
150671}
150672
150673// method id "compute.reservations.setIamPolicy":
150674
150675type ReservationsSetIamPolicyCall struct {
150676	s                    *Service
150677	project              string
150678	zone                 string
150679	resource             string
150680	zonesetpolicyrequest *ZoneSetPolicyRequest
150681	urlParams_           gensupport.URLParams
150682	ctx_                 context.Context
150683	header_              http.Header
150684}
150685
150686// SetIamPolicy: Sets the access control policy on the specified
150687// resource. Replaces any existing policy.
150688//
150689// - project: Project ID for this request.
150690// - resource: Name or id of the resource for this request.
150691// - zone: The name of the zone for this request.
150692func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
150693	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150694	c.project = project
150695	c.zone = zone
150696	c.resource = resource
150697	c.zonesetpolicyrequest = zonesetpolicyrequest
150698	return c
150699}
150700
150701// Fields allows partial responses to be retrieved. See
150702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150703// for more information.
150704func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
150705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150706	return c
150707}
150708
150709// Context sets the context to be used in this call's Do method. Any
150710// pending HTTP request will be aborted if the provided context is
150711// canceled.
150712func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
150713	c.ctx_ = ctx
150714	return c
150715}
150716
150717// Header returns an http.Header that can be modified by the caller to
150718// add HTTP headers to the request.
150719func (c *ReservationsSetIamPolicyCall) Header() http.Header {
150720	if c.header_ == nil {
150721		c.header_ = make(http.Header)
150722	}
150723	return c.header_
150724}
150725
150726func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
150727	reqHeaders := make(http.Header)
150728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150729	for k, v := range c.header_ {
150730		reqHeaders[k] = v
150731	}
150732	reqHeaders.Set("User-Agent", c.s.userAgent())
150733	var body io.Reader = nil
150734	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
150735	if err != nil {
150736		return nil, err
150737	}
150738	reqHeaders.Set("Content-Type", "application/json")
150739	c.urlParams_.Set("alt", alt)
150740	c.urlParams_.Set("prettyPrint", "false")
150741	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
150742	urls += "?" + c.urlParams_.Encode()
150743	req, err := http.NewRequest("POST", urls, body)
150744	if err != nil {
150745		return nil, err
150746	}
150747	req.Header = reqHeaders
150748	googleapi.Expand(req.URL, map[string]string{
150749		"project":  c.project,
150750		"zone":     c.zone,
150751		"resource": c.resource,
150752	})
150753	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150754}
150755
150756// Do executes the "compute.reservations.setIamPolicy" call.
150757// Exactly one of *Policy or error will be non-nil. Any non-2xx status
150758// code is an error. Response headers are in either
150759// *Policy.ServerResponse.Header or (if a response was returned at all)
150760// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
150761// check whether the returned error was because http.StatusNotModified
150762// was returned.
150763func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
150764	gensupport.SetOptions(c.urlParams_, opts...)
150765	res, err := c.doRequest("json")
150766	if res != nil && res.StatusCode == http.StatusNotModified {
150767		if res.Body != nil {
150768			res.Body.Close()
150769		}
150770		return nil, &googleapi.Error{
150771			Code:   res.StatusCode,
150772			Header: res.Header,
150773		}
150774	}
150775	if err != nil {
150776		return nil, err
150777	}
150778	defer googleapi.CloseBody(res)
150779	if err := googleapi.CheckResponse(res); err != nil {
150780		return nil, err
150781	}
150782	ret := &Policy{
150783		ServerResponse: googleapi.ServerResponse{
150784			Header:         res.Header,
150785			HTTPStatusCode: res.StatusCode,
150786		},
150787	}
150788	target := &ret
150789	if err := gensupport.DecodeResponse(target, res); err != nil {
150790		return nil, err
150791	}
150792	return ret, nil
150793	// {
150794	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
150795	//   "httpMethod": "POST",
150796	//   "id": "compute.reservations.setIamPolicy",
150797	//   "parameterOrder": [
150798	//     "project",
150799	//     "zone",
150800	//     "resource"
150801	//   ],
150802	//   "parameters": {
150803	//     "project": {
150804	//       "description": "Project ID for this request.",
150805	//       "location": "path",
150806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150807	//       "required": true,
150808	//       "type": "string"
150809	//     },
150810	//     "resource": {
150811	//       "description": "Name or id of the resource for this request.",
150812	//       "location": "path",
150813	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150814	//       "required": true,
150815	//       "type": "string"
150816	//     },
150817	//     "zone": {
150818	//       "description": "The name of the zone for this request.",
150819	//       "location": "path",
150820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150821	//       "required": true,
150822	//       "type": "string"
150823	//     }
150824	//   },
150825	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
150826	//   "request": {
150827	//     "$ref": "ZoneSetPolicyRequest"
150828	//   },
150829	//   "response": {
150830	//     "$ref": "Policy"
150831	//   },
150832	//   "scopes": [
150833	//     "https://www.googleapis.com/auth/cloud-platform",
150834	//     "https://www.googleapis.com/auth/compute"
150835	//   ]
150836	// }
150837
150838}
150839
150840// method id "compute.reservations.testIamPermissions":
150841
150842type ReservationsTestIamPermissionsCall struct {
150843	s                      *Service
150844	project                string
150845	zone                   string
150846	resource               string
150847	testpermissionsrequest *TestPermissionsRequest
150848	urlParams_             gensupport.URLParams
150849	ctx_                   context.Context
150850	header_                http.Header
150851}
150852
150853// TestIamPermissions: Returns permissions that a caller has on the
150854// specified resource.
150855//
150856// - project: Project ID for this request.
150857// - resource: Name or id of the resource for this request.
150858// - zone: The name of the zone for this request.
150859func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
150860	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150861	c.project = project
150862	c.zone = zone
150863	c.resource = resource
150864	c.testpermissionsrequest = testpermissionsrequest
150865	return c
150866}
150867
150868// Fields allows partial responses to be retrieved. See
150869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150870// for more information.
150871func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
150872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150873	return c
150874}
150875
150876// Context sets the context to be used in this call's Do method. Any
150877// pending HTTP request will be aborted if the provided context is
150878// canceled.
150879func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
150880	c.ctx_ = ctx
150881	return c
150882}
150883
150884// Header returns an http.Header that can be modified by the caller to
150885// add HTTP headers to the request.
150886func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
150887	if c.header_ == nil {
150888		c.header_ = make(http.Header)
150889	}
150890	return c.header_
150891}
150892
150893func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
150894	reqHeaders := make(http.Header)
150895	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150896	for k, v := range c.header_ {
150897		reqHeaders[k] = v
150898	}
150899	reqHeaders.Set("User-Agent", c.s.userAgent())
150900	var body io.Reader = nil
150901	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
150902	if err != nil {
150903		return nil, err
150904	}
150905	reqHeaders.Set("Content-Type", "application/json")
150906	c.urlParams_.Set("alt", alt)
150907	c.urlParams_.Set("prettyPrint", "false")
150908	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
150909	urls += "?" + c.urlParams_.Encode()
150910	req, err := http.NewRequest("POST", urls, body)
150911	if err != nil {
150912		return nil, err
150913	}
150914	req.Header = reqHeaders
150915	googleapi.Expand(req.URL, map[string]string{
150916		"project":  c.project,
150917		"zone":     c.zone,
150918		"resource": c.resource,
150919	})
150920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150921}
150922
150923// Do executes the "compute.reservations.testIamPermissions" call.
150924// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
150925// non-2xx status code is an error. Response headers are in either
150926// *TestPermissionsResponse.ServerResponse.Header or (if a response was
150927// returned at all) in error.(*googleapi.Error).Header. Use
150928// googleapi.IsNotModified to check whether the returned error was
150929// because http.StatusNotModified was returned.
150930func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
150931	gensupport.SetOptions(c.urlParams_, opts...)
150932	res, err := c.doRequest("json")
150933	if res != nil && res.StatusCode == http.StatusNotModified {
150934		if res.Body != nil {
150935			res.Body.Close()
150936		}
150937		return nil, &googleapi.Error{
150938			Code:   res.StatusCode,
150939			Header: res.Header,
150940		}
150941	}
150942	if err != nil {
150943		return nil, err
150944	}
150945	defer googleapi.CloseBody(res)
150946	if err := googleapi.CheckResponse(res); err != nil {
150947		return nil, err
150948	}
150949	ret := &TestPermissionsResponse{
150950		ServerResponse: googleapi.ServerResponse{
150951			Header:         res.Header,
150952			HTTPStatusCode: res.StatusCode,
150953		},
150954	}
150955	target := &ret
150956	if err := gensupport.DecodeResponse(target, res); err != nil {
150957		return nil, err
150958	}
150959	return ret, nil
150960	// {
150961	//   "description": "Returns permissions that a caller has on the specified resource.",
150962	//   "httpMethod": "POST",
150963	//   "id": "compute.reservations.testIamPermissions",
150964	//   "parameterOrder": [
150965	//     "project",
150966	//     "zone",
150967	//     "resource"
150968	//   ],
150969	//   "parameters": {
150970	//     "project": {
150971	//       "description": "Project ID for this request.",
150972	//       "location": "path",
150973	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150974	//       "required": true,
150975	//       "type": "string"
150976	//     },
150977	//     "resource": {
150978	//       "description": "Name or id of the resource for this request.",
150979	//       "location": "path",
150980	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150981	//       "required": true,
150982	//       "type": "string"
150983	//     },
150984	//     "zone": {
150985	//       "description": "The name of the zone for this request.",
150986	//       "location": "path",
150987	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150988	//       "required": true,
150989	//       "type": "string"
150990	//     }
150991	//   },
150992	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
150993	//   "request": {
150994	//     "$ref": "TestPermissionsRequest"
150995	//   },
150996	//   "response": {
150997	//     "$ref": "TestPermissionsResponse"
150998	//   },
150999	//   "scopes": [
151000	//     "https://www.googleapis.com/auth/cloud-platform",
151001	//     "https://www.googleapis.com/auth/compute",
151002	//     "https://www.googleapis.com/auth/compute.readonly"
151003	//   ]
151004	// }
151005
151006}
151007
151008// method id "compute.resourcePolicies.aggregatedList":
151009
151010type ResourcePoliciesAggregatedListCall struct {
151011	s            *Service
151012	project      string
151013	urlParams_   gensupport.URLParams
151014	ifNoneMatch_ string
151015	ctx_         context.Context
151016	header_      http.Header
151017}
151018
151019// AggregatedList: Retrieves an aggregated list of resource policies.
151020//
151021// - project: Project ID for this request.
151022func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
151023	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151024	c.project = project
151025	return c
151026}
151027
151028// Filter sets the optional parameter "filter": A filter expression that
151029// filters resources listed in the response. The expression must specify
151030// the field name, a comparison operator, and the value that you want to
151031// use for filtering. The value must be a string, a number, or a
151032// boolean. The comparison operator must be either `=`, `!=`, `>`, or
151033// `<`.
151034//
151035// For example, if you are filtering Compute Engine instances, you can
151036// exclude instances named `example-instance` by specifying `name !=
151037// example-instance`.
151038//
151039// You can also filter nested fields. For example, you could specify
151040// `scheduling.automaticRestart = false` to include instances only if
151041// they are not scheduled for automatic restarts. You can use filtering
151042// on nested fields to filter based on resource labels.
151043//
151044// To filter on multiple expressions, provide each separate expression
151045// within parentheses. For example: ``` (scheduling.automaticRestart =
151046// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
151047// is an `AND` expression. However, you can include `AND` and `OR`
151048// expressions explicitly. For example: ``` (cpuPlatform = "Intel
151049// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
151050// (scheduling.automaticRestart = true) ```
151051func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
151052	c.urlParams_.Set("filter", filter)
151053	return c
151054}
151055
151056// IncludeAllScopes sets the optional parameter "includeAllScopes":
151057// Indicates whether every visible scope for each scope type (zone,
151058// region, global) should be included in the response. For new resource
151059// types added after this field, the flag has no effect as new resource
151060// types will always include every visible scope for each scope type in
151061// response. For resource types which predate this field, if this flag
151062// is omitted or false, only scopes of the scope types where the
151063// resource type is expected to be found will be included.
151064func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
151065	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
151066	return c
151067}
151068
151069// MaxResults sets the optional parameter "maxResults": The maximum
151070// number of results per page that should be returned. If the number of
151071// available results is larger than `maxResults`, Compute Engine returns
151072// a `nextPageToken` that can be used to get the next page of results in
151073// subsequent list requests. Acceptable values are `0` to `500`,
151074// inclusive. (Default: `500`)
151075func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
151076	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151077	return c
151078}
151079
151080// OrderBy sets the optional parameter "orderBy": Sorts list results by
151081// a certain order. By default, results are returned in alphanumerical
151082// order based on the resource name.
151083//
151084// You can also sort results in descending order based on the creation
151085// timestamp using `orderBy="creationTimestamp desc". This sorts
151086// results based on the `creationTimestamp` field in reverse
151087// chronological order (newest result first). Use this to sort resources
151088// like operations so that the newest operation is returned
151089// first.
151090//
151091// Currently, only sorting by `name` or `creationTimestamp desc` is
151092// supported.
151093func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
151094	c.urlParams_.Set("orderBy", orderBy)
151095	return c
151096}
151097
151098// PageToken sets the optional parameter "pageToken": Specifies a page
151099// token to use. Set `pageToken` to the `nextPageToken` returned by a
151100// previous list request to get the next page of results.
151101func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
151102	c.urlParams_.Set("pageToken", pageToken)
151103	return c
151104}
151105
151106// ReturnPartialSuccess sets the optional parameter
151107// "returnPartialSuccess": Opt-in for partial success behavior which
151108// provides partial results in case of failure. The default value is
151109// false.
151110func (c *ResourcePoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesAggregatedListCall {
151111	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
151112	return c
151113}
151114
151115// Fields allows partial responses to be retrieved. See
151116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151117// for more information.
151118func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
151119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151120	return c
151121}
151122
151123// IfNoneMatch sets the optional parameter which makes the operation
151124// fail if the object's ETag matches the given value. This is useful for
151125// getting updates only after the object has changed since the last
151126// request. Use googleapi.IsNotModified to check whether the response
151127// error from Do is the result of In-None-Match.
151128func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
151129	c.ifNoneMatch_ = entityTag
151130	return c
151131}
151132
151133// Context sets the context to be used in this call's Do method. Any
151134// pending HTTP request will be aborted if the provided context is
151135// canceled.
151136func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
151137	c.ctx_ = ctx
151138	return c
151139}
151140
151141// Header returns an http.Header that can be modified by the caller to
151142// add HTTP headers to the request.
151143func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
151144	if c.header_ == nil {
151145		c.header_ = make(http.Header)
151146	}
151147	return c.header_
151148}
151149
151150func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
151151	reqHeaders := make(http.Header)
151152	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151153	for k, v := range c.header_ {
151154		reqHeaders[k] = v
151155	}
151156	reqHeaders.Set("User-Agent", c.s.userAgent())
151157	if c.ifNoneMatch_ != "" {
151158		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151159	}
151160	var body io.Reader = nil
151161	c.urlParams_.Set("alt", alt)
151162	c.urlParams_.Set("prettyPrint", "false")
151163	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/resourcePolicies")
151164	urls += "?" + c.urlParams_.Encode()
151165	req, err := http.NewRequest("GET", urls, body)
151166	if err != nil {
151167		return nil, err
151168	}
151169	req.Header = reqHeaders
151170	googleapi.Expand(req.URL, map[string]string{
151171		"project": c.project,
151172	})
151173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151174}
151175
151176// Do executes the "compute.resourcePolicies.aggregatedList" call.
151177// Exactly one of *ResourcePolicyAggregatedList or error will be
151178// non-nil. Any non-2xx status code is an error. Response headers are in
151179// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
151180// response was returned at all) in error.(*googleapi.Error).Header. Use
151181// googleapi.IsNotModified to check whether the returned error was
151182// because http.StatusNotModified was returned.
151183func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
151184	gensupport.SetOptions(c.urlParams_, opts...)
151185	res, err := c.doRequest("json")
151186	if res != nil && res.StatusCode == http.StatusNotModified {
151187		if res.Body != nil {
151188			res.Body.Close()
151189		}
151190		return nil, &googleapi.Error{
151191			Code:   res.StatusCode,
151192			Header: res.Header,
151193		}
151194	}
151195	if err != nil {
151196		return nil, err
151197	}
151198	defer googleapi.CloseBody(res)
151199	if err := googleapi.CheckResponse(res); err != nil {
151200		return nil, err
151201	}
151202	ret := &ResourcePolicyAggregatedList{
151203		ServerResponse: googleapi.ServerResponse{
151204			Header:         res.Header,
151205			HTTPStatusCode: res.StatusCode,
151206		},
151207	}
151208	target := &ret
151209	if err := gensupport.DecodeResponse(target, res); err != nil {
151210		return nil, err
151211	}
151212	return ret, nil
151213	// {
151214	//   "description": "Retrieves an aggregated list of resource policies.",
151215	//   "httpMethod": "GET",
151216	//   "id": "compute.resourcePolicies.aggregatedList",
151217	//   "parameterOrder": [
151218	//     "project"
151219	//   ],
151220	//   "parameters": {
151221	//     "filter": {
151222	//       "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) ```",
151223	//       "location": "query",
151224	//       "type": "string"
151225	//     },
151226	//     "includeAllScopes": {
151227	//       "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.",
151228	//       "location": "query",
151229	//       "type": "boolean"
151230	//     },
151231	//     "maxResults": {
151232	//       "default": "500",
151233	//       "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`)",
151234	//       "format": "uint32",
151235	//       "location": "query",
151236	//       "minimum": "0",
151237	//       "type": "integer"
151238	//     },
151239	//     "orderBy": {
151240	//       "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.",
151241	//       "location": "query",
151242	//       "type": "string"
151243	//     },
151244	//     "pageToken": {
151245	//       "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.",
151246	//       "location": "query",
151247	//       "type": "string"
151248	//     },
151249	//     "project": {
151250	//       "description": "Project ID for this request.",
151251	//       "location": "path",
151252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151253	//       "required": true,
151254	//       "type": "string"
151255	//     },
151256	//     "returnPartialSuccess": {
151257	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
151258	//       "location": "query",
151259	//       "type": "boolean"
151260	//     }
151261	//   },
151262	//   "path": "projects/{project}/aggregated/resourcePolicies",
151263	//   "response": {
151264	//     "$ref": "ResourcePolicyAggregatedList"
151265	//   },
151266	//   "scopes": [
151267	//     "https://www.googleapis.com/auth/cloud-platform",
151268	//     "https://www.googleapis.com/auth/compute",
151269	//     "https://www.googleapis.com/auth/compute.readonly"
151270	//   ]
151271	// }
151272
151273}
151274
151275// Pages invokes f for each page of results.
151276// A non-nil error returned from f will halt the iteration.
151277// The provided context supersedes any context provided to the Context method.
151278func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
151279	c.ctx_ = ctx
151280	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151281	for {
151282		x, err := c.Do()
151283		if err != nil {
151284			return err
151285		}
151286		if err := f(x); err != nil {
151287			return err
151288		}
151289		if x.NextPageToken == "" {
151290			return nil
151291		}
151292		c.PageToken(x.NextPageToken)
151293	}
151294}
151295
151296// method id "compute.resourcePolicies.delete":
151297
151298type ResourcePoliciesDeleteCall struct {
151299	s              *Service
151300	project        string
151301	region         string
151302	resourcePolicy string
151303	urlParams_     gensupport.URLParams
151304	ctx_           context.Context
151305	header_        http.Header
151306}
151307
151308// Delete: Deletes the specified resource policy.
151309//
151310// - project: Project ID for this request.
151311// - region: Name of the region for this request.
151312// - resourcePolicy: Name of the resource policy to delete.
151313func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
151314	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151315	c.project = project
151316	c.region = region
151317	c.resourcePolicy = resourcePolicy
151318	return c
151319}
151320
151321// RequestId sets the optional parameter "requestId": An optional
151322// request ID to identify requests. Specify a unique request ID so that
151323// if you must retry your request, the server will know to ignore the
151324// request if it has already been completed.
151325//
151326// For example, consider a situation where you make an initial request
151327// and the request times out. If you make the request again with the
151328// same request ID, the server can check if original operation with the
151329// same request ID was received, and if so, will ignore the second
151330// request. This prevents clients from accidentally creating duplicate
151331// commitments.
151332//
151333// The request ID must be a valid UUID with the exception that zero UUID
151334// is not supported (00000000-0000-0000-0000-000000000000).
151335func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
151336	c.urlParams_.Set("requestId", requestId)
151337	return c
151338}
151339
151340// Fields allows partial responses to be retrieved. See
151341// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151342// for more information.
151343func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
151344	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151345	return c
151346}
151347
151348// Context sets the context to be used in this call's Do method. Any
151349// pending HTTP request will be aborted if the provided context is
151350// canceled.
151351func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
151352	c.ctx_ = ctx
151353	return c
151354}
151355
151356// Header returns an http.Header that can be modified by the caller to
151357// add HTTP headers to the request.
151358func (c *ResourcePoliciesDeleteCall) Header() http.Header {
151359	if c.header_ == nil {
151360		c.header_ = make(http.Header)
151361	}
151362	return c.header_
151363}
151364
151365func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
151366	reqHeaders := make(http.Header)
151367	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151368	for k, v := range c.header_ {
151369		reqHeaders[k] = v
151370	}
151371	reqHeaders.Set("User-Agent", c.s.userAgent())
151372	var body io.Reader = nil
151373	c.urlParams_.Set("alt", alt)
151374	c.urlParams_.Set("prettyPrint", "false")
151375	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
151376	urls += "?" + c.urlParams_.Encode()
151377	req, err := http.NewRequest("DELETE", urls, body)
151378	if err != nil {
151379		return nil, err
151380	}
151381	req.Header = reqHeaders
151382	googleapi.Expand(req.URL, map[string]string{
151383		"project":        c.project,
151384		"region":         c.region,
151385		"resourcePolicy": c.resourcePolicy,
151386	})
151387	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151388}
151389
151390// Do executes the "compute.resourcePolicies.delete" call.
151391// Exactly one of *Operation or error will be non-nil. Any non-2xx
151392// status code is an error. Response headers are in either
151393// *Operation.ServerResponse.Header or (if a response was returned at
151394// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151395// to check whether the returned error was because
151396// http.StatusNotModified was returned.
151397func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151398	gensupport.SetOptions(c.urlParams_, opts...)
151399	res, err := c.doRequest("json")
151400	if res != nil && res.StatusCode == http.StatusNotModified {
151401		if res.Body != nil {
151402			res.Body.Close()
151403		}
151404		return nil, &googleapi.Error{
151405			Code:   res.StatusCode,
151406			Header: res.Header,
151407		}
151408	}
151409	if err != nil {
151410		return nil, err
151411	}
151412	defer googleapi.CloseBody(res)
151413	if err := googleapi.CheckResponse(res); err != nil {
151414		return nil, err
151415	}
151416	ret := &Operation{
151417		ServerResponse: googleapi.ServerResponse{
151418			Header:         res.Header,
151419			HTTPStatusCode: res.StatusCode,
151420		},
151421	}
151422	target := &ret
151423	if err := gensupport.DecodeResponse(target, res); err != nil {
151424		return nil, err
151425	}
151426	return ret, nil
151427	// {
151428	//   "description": "Deletes the specified resource policy.",
151429	//   "httpMethod": "DELETE",
151430	//   "id": "compute.resourcePolicies.delete",
151431	//   "parameterOrder": [
151432	//     "project",
151433	//     "region",
151434	//     "resourcePolicy"
151435	//   ],
151436	//   "parameters": {
151437	//     "project": {
151438	//       "description": "Project ID for this request.",
151439	//       "location": "path",
151440	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151441	//       "required": true,
151442	//       "type": "string"
151443	//     },
151444	//     "region": {
151445	//       "description": "Name of the region for this request.",
151446	//       "location": "path",
151447	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151448	//       "required": true,
151449	//       "type": "string"
151450	//     },
151451	//     "requestId": {
151452	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151453	//       "location": "query",
151454	//       "type": "string"
151455	//     },
151456	//     "resourcePolicy": {
151457	//       "description": "Name of the resource policy to delete.",
151458	//       "location": "path",
151459	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151460	//       "required": true,
151461	//       "type": "string"
151462	//     }
151463	//   },
151464	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
151465	//   "response": {
151466	//     "$ref": "Operation"
151467	//   },
151468	//   "scopes": [
151469	//     "https://www.googleapis.com/auth/cloud-platform",
151470	//     "https://www.googleapis.com/auth/compute"
151471	//   ]
151472	// }
151473
151474}
151475
151476// method id "compute.resourcePolicies.get":
151477
151478type ResourcePoliciesGetCall struct {
151479	s              *Service
151480	project        string
151481	region         string
151482	resourcePolicy string
151483	urlParams_     gensupport.URLParams
151484	ifNoneMatch_   string
151485	ctx_           context.Context
151486	header_        http.Header
151487}
151488
151489// Get: Retrieves all information of the specified resource policy.
151490//
151491// - project: Project ID for this request.
151492// - region: Name of the region for this request.
151493// - resourcePolicy: Name of the resource policy to retrieve.
151494func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
151495	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151496	c.project = project
151497	c.region = region
151498	c.resourcePolicy = resourcePolicy
151499	return c
151500}
151501
151502// Fields allows partial responses to be retrieved. See
151503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151504// for more information.
151505func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
151506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151507	return c
151508}
151509
151510// IfNoneMatch sets the optional parameter which makes the operation
151511// fail if the object's ETag matches the given value. This is useful for
151512// getting updates only after the object has changed since the last
151513// request. Use googleapi.IsNotModified to check whether the response
151514// error from Do is the result of In-None-Match.
151515func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
151516	c.ifNoneMatch_ = entityTag
151517	return c
151518}
151519
151520// Context sets the context to be used in this call's Do method. Any
151521// pending HTTP request will be aborted if the provided context is
151522// canceled.
151523func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
151524	c.ctx_ = ctx
151525	return c
151526}
151527
151528// Header returns an http.Header that can be modified by the caller to
151529// add HTTP headers to the request.
151530func (c *ResourcePoliciesGetCall) Header() http.Header {
151531	if c.header_ == nil {
151532		c.header_ = make(http.Header)
151533	}
151534	return c.header_
151535}
151536
151537func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
151538	reqHeaders := make(http.Header)
151539	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151540	for k, v := range c.header_ {
151541		reqHeaders[k] = v
151542	}
151543	reqHeaders.Set("User-Agent", c.s.userAgent())
151544	if c.ifNoneMatch_ != "" {
151545		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151546	}
151547	var body io.Reader = nil
151548	c.urlParams_.Set("alt", alt)
151549	c.urlParams_.Set("prettyPrint", "false")
151550	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
151551	urls += "?" + c.urlParams_.Encode()
151552	req, err := http.NewRequest("GET", urls, body)
151553	if err != nil {
151554		return nil, err
151555	}
151556	req.Header = reqHeaders
151557	googleapi.Expand(req.URL, map[string]string{
151558		"project":        c.project,
151559		"region":         c.region,
151560		"resourcePolicy": c.resourcePolicy,
151561	})
151562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151563}
151564
151565// Do executes the "compute.resourcePolicies.get" call.
151566// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
151567// status code is an error. Response headers are in either
151568// *ResourcePolicy.ServerResponse.Header or (if a response was returned
151569// at all) in error.(*googleapi.Error).Header. Use
151570// googleapi.IsNotModified to check whether the returned error was
151571// because http.StatusNotModified was returned.
151572func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
151573	gensupport.SetOptions(c.urlParams_, opts...)
151574	res, err := c.doRequest("json")
151575	if res != nil && res.StatusCode == http.StatusNotModified {
151576		if res.Body != nil {
151577			res.Body.Close()
151578		}
151579		return nil, &googleapi.Error{
151580			Code:   res.StatusCode,
151581			Header: res.Header,
151582		}
151583	}
151584	if err != nil {
151585		return nil, err
151586	}
151587	defer googleapi.CloseBody(res)
151588	if err := googleapi.CheckResponse(res); err != nil {
151589		return nil, err
151590	}
151591	ret := &ResourcePolicy{
151592		ServerResponse: googleapi.ServerResponse{
151593			Header:         res.Header,
151594			HTTPStatusCode: res.StatusCode,
151595		},
151596	}
151597	target := &ret
151598	if err := gensupport.DecodeResponse(target, res); err != nil {
151599		return nil, err
151600	}
151601	return ret, nil
151602	// {
151603	//   "description": "Retrieves all information of the specified resource policy.",
151604	//   "httpMethod": "GET",
151605	//   "id": "compute.resourcePolicies.get",
151606	//   "parameterOrder": [
151607	//     "project",
151608	//     "region",
151609	//     "resourcePolicy"
151610	//   ],
151611	//   "parameters": {
151612	//     "project": {
151613	//       "description": "Project ID for this request.",
151614	//       "location": "path",
151615	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151616	//       "required": true,
151617	//       "type": "string"
151618	//     },
151619	//     "region": {
151620	//       "description": "Name of the region for this request.",
151621	//       "location": "path",
151622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151623	//       "required": true,
151624	//       "type": "string"
151625	//     },
151626	//     "resourcePolicy": {
151627	//       "description": "Name of the resource policy to retrieve.",
151628	//       "location": "path",
151629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151630	//       "required": true,
151631	//       "type": "string"
151632	//     }
151633	//   },
151634	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
151635	//   "response": {
151636	//     "$ref": "ResourcePolicy"
151637	//   },
151638	//   "scopes": [
151639	//     "https://www.googleapis.com/auth/cloud-platform",
151640	//     "https://www.googleapis.com/auth/compute",
151641	//     "https://www.googleapis.com/auth/compute.readonly"
151642	//   ]
151643	// }
151644
151645}
151646
151647// method id "compute.resourcePolicies.getIamPolicy":
151648
151649type ResourcePoliciesGetIamPolicyCall struct {
151650	s            *Service
151651	project      string
151652	region       string
151653	resource     string
151654	urlParams_   gensupport.URLParams
151655	ifNoneMatch_ string
151656	ctx_         context.Context
151657	header_      http.Header
151658}
151659
151660// GetIamPolicy: Gets the access control policy for a resource. May be
151661// empty if no such policy or resource exists.
151662//
151663// - project: Project ID for this request.
151664// - region: The name of the region for this request.
151665// - resource: Name or id of the resource for this request.
151666func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
151667	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151668	c.project = project
151669	c.region = region
151670	c.resource = resource
151671	return c
151672}
151673
151674// OptionsRequestedPolicyVersion sets the optional parameter
151675// "optionsRequestedPolicyVersion": Requested IAM Policy version.
151676func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
151677	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
151678	return c
151679}
151680
151681// Fields allows partial responses to be retrieved. See
151682// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151683// for more information.
151684func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
151685	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151686	return c
151687}
151688
151689// IfNoneMatch sets the optional parameter which makes the operation
151690// fail if the object's ETag matches the given value. This is useful for
151691// getting updates only after the object has changed since the last
151692// request. Use googleapi.IsNotModified to check whether the response
151693// error from Do is the result of In-None-Match.
151694func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
151695	c.ifNoneMatch_ = entityTag
151696	return c
151697}
151698
151699// Context sets the context to be used in this call's Do method. Any
151700// pending HTTP request will be aborted if the provided context is
151701// canceled.
151702func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
151703	c.ctx_ = ctx
151704	return c
151705}
151706
151707// Header returns an http.Header that can be modified by the caller to
151708// add HTTP headers to the request.
151709func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
151710	if c.header_ == nil {
151711		c.header_ = make(http.Header)
151712	}
151713	return c.header_
151714}
151715
151716func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
151717	reqHeaders := make(http.Header)
151718	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151719	for k, v := range c.header_ {
151720		reqHeaders[k] = v
151721	}
151722	reqHeaders.Set("User-Agent", c.s.userAgent())
151723	if c.ifNoneMatch_ != "" {
151724		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151725	}
151726	var body io.Reader = nil
151727	c.urlParams_.Set("alt", alt)
151728	c.urlParams_.Set("prettyPrint", "false")
151729	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
151730	urls += "?" + c.urlParams_.Encode()
151731	req, err := http.NewRequest("GET", urls, body)
151732	if err != nil {
151733		return nil, err
151734	}
151735	req.Header = reqHeaders
151736	googleapi.Expand(req.URL, map[string]string{
151737		"project":  c.project,
151738		"region":   c.region,
151739		"resource": c.resource,
151740	})
151741	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151742}
151743
151744// Do executes the "compute.resourcePolicies.getIamPolicy" call.
151745// Exactly one of *Policy or error will be non-nil. Any non-2xx status
151746// code is an error. Response headers are in either
151747// *Policy.ServerResponse.Header or (if a response was returned at all)
151748// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
151749// check whether the returned error was because http.StatusNotModified
151750// was returned.
151751func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
151752	gensupport.SetOptions(c.urlParams_, opts...)
151753	res, err := c.doRequest("json")
151754	if res != nil && res.StatusCode == http.StatusNotModified {
151755		if res.Body != nil {
151756			res.Body.Close()
151757		}
151758		return nil, &googleapi.Error{
151759			Code:   res.StatusCode,
151760			Header: res.Header,
151761		}
151762	}
151763	if err != nil {
151764		return nil, err
151765	}
151766	defer googleapi.CloseBody(res)
151767	if err := googleapi.CheckResponse(res); err != nil {
151768		return nil, err
151769	}
151770	ret := &Policy{
151771		ServerResponse: googleapi.ServerResponse{
151772			Header:         res.Header,
151773			HTTPStatusCode: res.StatusCode,
151774		},
151775	}
151776	target := &ret
151777	if err := gensupport.DecodeResponse(target, res); err != nil {
151778		return nil, err
151779	}
151780	return ret, nil
151781	// {
151782	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
151783	//   "httpMethod": "GET",
151784	//   "id": "compute.resourcePolicies.getIamPolicy",
151785	//   "parameterOrder": [
151786	//     "project",
151787	//     "region",
151788	//     "resource"
151789	//   ],
151790	//   "parameters": {
151791	//     "optionsRequestedPolicyVersion": {
151792	//       "description": "Requested IAM Policy version.",
151793	//       "format": "int32",
151794	//       "location": "query",
151795	//       "type": "integer"
151796	//     },
151797	//     "project": {
151798	//       "description": "Project ID for this request.",
151799	//       "location": "path",
151800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151801	//       "required": true,
151802	//       "type": "string"
151803	//     },
151804	//     "region": {
151805	//       "description": "The name of the region for this request.",
151806	//       "location": "path",
151807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151808	//       "required": true,
151809	//       "type": "string"
151810	//     },
151811	//     "resource": {
151812	//       "description": "Name or id of the resource for this request.",
151813	//       "location": "path",
151814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151815	//       "required": true,
151816	//       "type": "string"
151817	//     }
151818	//   },
151819	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
151820	//   "response": {
151821	//     "$ref": "Policy"
151822	//   },
151823	//   "scopes": [
151824	//     "https://www.googleapis.com/auth/cloud-platform",
151825	//     "https://www.googleapis.com/auth/compute",
151826	//     "https://www.googleapis.com/auth/compute.readonly"
151827	//   ]
151828	// }
151829
151830}
151831
151832// method id "compute.resourcePolicies.insert":
151833
151834type ResourcePoliciesInsertCall struct {
151835	s              *Service
151836	project        string
151837	region         string
151838	resourcepolicy *ResourcePolicy
151839	urlParams_     gensupport.URLParams
151840	ctx_           context.Context
151841	header_        http.Header
151842}
151843
151844// Insert: Creates a new resource policy.
151845//
151846// - project: Project ID for this request.
151847// - region: Name of the region for this request.
151848func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
151849	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151850	c.project = project
151851	c.region = region
151852	c.resourcepolicy = resourcepolicy
151853	return c
151854}
151855
151856// RequestId sets the optional parameter "requestId": An optional
151857// request ID to identify requests. Specify a unique request ID so that
151858// if you must retry your request, the server will know to ignore the
151859// request if it has already been completed.
151860//
151861// For example, consider a situation where you make an initial request
151862// and the request times out. If you make the request again with the
151863// same request ID, the server can check if original operation with the
151864// same request ID was received, and if so, will ignore the second
151865// request. This prevents clients from accidentally creating duplicate
151866// commitments.
151867//
151868// The request ID must be a valid UUID with the exception that zero UUID
151869// is not supported (00000000-0000-0000-0000-000000000000).
151870func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
151871	c.urlParams_.Set("requestId", requestId)
151872	return c
151873}
151874
151875// Fields allows partial responses to be retrieved. See
151876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151877// for more information.
151878func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
151879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151880	return c
151881}
151882
151883// Context sets the context to be used in this call's Do method. Any
151884// pending HTTP request will be aborted if the provided context is
151885// canceled.
151886func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
151887	c.ctx_ = ctx
151888	return c
151889}
151890
151891// Header returns an http.Header that can be modified by the caller to
151892// add HTTP headers to the request.
151893func (c *ResourcePoliciesInsertCall) Header() http.Header {
151894	if c.header_ == nil {
151895		c.header_ = make(http.Header)
151896	}
151897	return c.header_
151898}
151899
151900func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
151901	reqHeaders := make(http.Header)
151902	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151903	for k, v := range c.header_ {
151904		reqHeaders[k] = v
151905	}
151906	reqHeaders.Set("User-Agent", c.s.userAgent())
151907	var body io.Reader = nil
151908	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
151909	if err != nil {
151910		return nil, err
151911	}
151912	reqHeaders.Set("Content-Type", "application/json")
151913	c.urlParams_.Set("alt", alt)
151914	c.urlParams_.Set("prettyPrint", "false")
151915	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
151916	urls += "?" + c.urlParams_.Encode()
151917	req, err := http.NewRequest("POST", urls, body)
151918	if err != nil {
151919		return nil, err
151920	}
151921	req.Header = reqHeaders
151922	googleapi.Expand(req.URL, map[string]string{
151923		"project": c.project,
151924		"region":  c.region,
151925	})
151926	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151927}
151928
151929// Do executes the "compute.resourcePolicies.insert" call.
151930// Exactly one of *Operation or error will be non-nil. Any non-2xx
151931// status code is an error. Response headers are in either
151932// *Operation.ServerResponse.Header or (if a response was returned at
151933// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151934// to check whether the returned error was because
151935// http.StatusNotModified was returned.
151936func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151937	gensupport.SetOptions(c.urlParams_, opts...)
151938	res, err := c.doRequest("json")
151939	if res != nil && res.StatusCode == http.StatusNotModified {
151940		if res.Body != nil {
151941			res.Body.Close()
151942		}
151943		return nil, &googleapi.Error{
151944			Code:   res.StatusCode,
151945			Header: res.Header,
151946		}
151947	}
151948	if err != nil {
151949		return nil, err
151950	}
151951	defer googleapi.CloseBody(res)
151952	if err := googleapi.CheckResponse(res); err != nil {
151953		return nil, err
151954	}
151955	ret := &Operation{
151956		ServerResponse: googleapi.ServerResponse{
151957			Header:         res.Header,
151958			HTTPStatusCode: res.StatusCode,
151959		},
151960	}
151961	target := &ret
151962	if err := gensupport.DecodeResponse(target, res); err != nil {
151963		return nil, err
151964	}
151965	return ret, nil
151966	// {
151967	//   "description": "Creates a new resource policy.",
151968	//   "httpMethod": "POST",
151969	//   "id": "compute.resourcePolicies.insert",
151970	//   "parameterOrder": [
151971	//     "project",
151972	//     "region"
151973	//   ],
151974	//   "parameters": {
151975	//     "project": {
151976	//       "description": "Project ID for this request.",
151977	//       "location": "path",
151978	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151979	//       "required": true,
151980	//       "type": "string"
151981	//     },
151982	//     "region": {
151983	//       "description": "Name of the region for this request.",
151984	//       "location": "path",
151985	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151986	//       "required": true,
151987	//       "type": "string"
151988	//     },
151989	//     "requestId": {
151990	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151991	//       "location": "query",
151992	//       "type": "string"
151993	//     }
151994	//   },
151995	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
151996	//   "request": {
151997	//     "$ref": "ResourcePolicy"
151998	//   },
151999	//   "response": {
152000	//     "$ref": "Operation"
152001	//   },
152002	//   "scopes": [
152003	//     "https://www.googleapis.com/auth/cloud-platform",
152004	//     "https://www.googleapis.com/auth/compute"
152005	//   ]
152006	// }
152007
152008}
152009
152010// method id "compute.resourcePolicies.list":
152011
152012type ResourcePoliciesListCall struct {
152013	s            *Service
152014	project      string
152015	region       string
152016	urlParams_   gensupport.URLParams
152017	ifNoneMatch_ string
152018	ctx_         context.Context
152019	header_      http.Header
152020}
152021
152022// List: A list all the resource policies that have been configured for
152023// the specified project in specified region.
152024//
152025// - project: Project ID for this request.
152026// - region: Name of the region for this request.
152027func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
152028	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152029	c.project = project
152030	c.region = region
152031	return c
152032}
152033
152034// Filter sets the optional parameter "filter": A filter expression that
152035// filters resources listed in the response. The expression must specify
152036// the field name, a comparison operator, and the value that you want to
152037// use for filtering. The value must be a string, a number, or a
152038// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152039// `<`.
152040//
152041// For example, if you are filtering Compute Engine instances, you can
152042// exclude instances named `example-instance` by specifying `name !=
152043// example-instance`.
152044//
152045// You can also filter nested fields. For example, you could specify
152046// `scheduling.automaticRestart = false` to include instances only if
152047// they are not scheduled for automatic restarts. You can use filtering
152048// on nested fields to filter based on resource labels.
152049//
152050// To filter on multiple expressions, provide each separate expression
152051// within parentheses. For example: ``` (scheduling.automaticRestart =
152052// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
152053// is an `AND` expression. However, you can include `AND` and `OR`
152054// expressions explicitly. For example: ``` (cpuPlatform = "Intel
152055// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
152056// (scheduling.automaticRestart = true) ```
152057func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
152058	c.urlParams_.Set("filter", filter)
152059	return c
152060}
152061
152062// MaxResults sets the optional parameter "maxResults": The maximum
152063// number of results per page that should be returned. If the number of
152064// available results is larger than `maxResults`, Compute Engine returns
152065// a `nextPageToken` that can be used to get the next page of results in
152066// subsequent list requests. Acceptable values are `0` to `500`,
152067// inclusive. (Default: `500`)
152068func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
152069	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152070	return c
152071}
152072
152073// OrderBy sets the optional parameter "orderBy": Sorts list results by
152074// a certain order. By default, results are returned in alphanumerical
152075// order based on the resource name.
152076//
152077// You can also sort results in descending order based on the creation
152078// timestamp using `orderBy="creationTimestamp desc". This sorts
152079// results based on the `creationTimestamp` field in reverse
152080// chronological order (newest result first). Use this to sort resources
152081// like operations so that the newest operation is returned
152082// first.
152083//
152084// Currently, only sorting by `name` or `creationTimestamp desc` is
152085// supported.
152086func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
152087	c.urlParams_.Set("orderBy", orderBy)
152088	return c
152089}
152090
152091// PageToken sets the optional parameter "pageToken": Specifies a page
152092// token to use. Set `pageToken` to the `nextPageToken` returned by a
152093// previous list request to get the next page of results.
152094func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
152095	c.urlParams_.Set("pageToken", pageToken)
152096	return c
152097}
152098
152099// ReturnPartialSuccess sets the optional parameter
152100// "returnPartialSuccess": Opt-in for partial success behavior which
152101// provides partial results in case of failure. The default value is
152102// false.
152103func (c *ResourcePoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesListCall {
152104	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
152105	return c
152106}
152107
152108// Fields allows partial responses to be retrieved. See
152109// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152110// for more information.
152111func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
152112	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152113	return c
152114}
152115
152116// IfNoneMatch sets the optional parameter which makes the operation
152117// fail if the object's ETag matches the given value. This is useful for
152118// getting updates only after the object has changed since the last
152119// request. Use googleapi.IsNotModified to check whether the response
152120// error from Do is the result of In-None-Match.
152121func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
152122	c.ifNoneMatch_ = entityTag
152123	return c
152124}
152125
152126// Context sets the context to be used in this call's Do method. Any
152127// pending HTTP request will be aborted if the provided context is
152128// canceled.
152129func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
152130	c.ctx_ = ctx
152131	return c
152132}
152133
152134// Header returns an http.Header that can be modified by the caller to
152135// add HTTP headers to the request.
152136func (c *ResourcePoliciesListCall) Header() http.Header {
152137	if c.header_ == nil {
152138		c.header_ = make(http.Header)
152139	}
152140	return c.header_
152141}
152142
152143func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
152144	reqHeaders := make(http.Header)
152145	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152146	for k, v := range c.header_ {
152147		reqHeaders[k] = v
152148	}
152149	reqHeaders.Set("User-Agent", c.s.userAgent())
152150	if c.ifNoneMatch_ != "" {
152151		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152152	}
152153	var body io.Reader = nil
152154	c.urlParams_.Set("alt", alt)
152155	c.urlParams_.Set("prettyPrint", "false")
152156	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
152157	urls += "?" + c.urlParams_.Encode()
152158	req, err := http.NewRequest("GET", urls, body)
152159	if err != nil {
152160		return nil, err
152161	}
152162	req.Header = reqHeaders
152163	googleapi.Expand(req.URL, map[string]string{
152164		"project": c.project,
152165		"region":  c.region,
152166	})
152167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152168}
152169
152170// Do executes the "compute.resourcePolicies.list" call.
152171// Exactly one of *ResourcePolicyList or error will be non-nil. Any
152172// non-2xx status code is an error. Response headers are in either
152173// *ResourcePolicyList.ServerResponse.Header or (if a response was
152174// returned at all) in error.(*googleapi.Error).Header. Use
152175// googleapi.IsNotModified to check whether the returned error was
152176// because http.StatusNotModified was returned.
152177func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
152178	gensupport.SetOptions(c.urlParams_, opts...)
152179	res, err := c.doRequest("json")
152180	if res != nil && res.StatusCode == http.StatusNotModified {
152181		if res.Body != nil {
152182			res.Body.Close()
152183		}
152184		return nil, &googleapi.Error{
152185			Code:   res.StatusCode,
152186			Header: res.Header,
152187		}
152188	}
152189	if err != nil {
152190		return nil, err
152191	}
152192	defer googleapi.CloseBody(res)
152193	if err := googleapi.CheckResponse(res); err != nil {
152194		return nil, err
152195	}
152196	ret := &ResourcePolicyList{
152197		ServerResponse: googleapi.ServerResponse{
152198			Header:         res.Header,
152199			HTTPStatusCode: res.StatusCode,
152200		},
152201	}
152202	target := &ret
152203	if err := gensupport.DecodeResponse(target, res); err != nil {
152204		return nil, err
152205	}
152206	return ret, nil
152207	// {
152208	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
152209	//   "httpMethod": "GET",
152210	//   "id": "compute.resourcePolicies.list",
152211	//   "parameterOrder": [
152212	//     "project",
152213	//     "region"
152214	//   ],
152215	//   "parameters": {
152216	//     "filter": {
152217	//       "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) ```",
152218	//       "location": "query",
152219	//       "type": "string"
152220	//     },
152221	//     "maxResults": {
152222	//       "default": "500",
152223	//       "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`)",
152224	//       "format": "uint32",
152225	//       "location": "query",
152226	//       "minimum": "0",
152227	//       "type": "integer"
152228	//     },
152229	//     "orderBy": {
152230	//       "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.",
152231	//       "location": "query",
152232	//       "type": "string"
152233	//     },
152234	//     "pageToken": {
152235	//       "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.",
152236	//       "location": "query",
152237	//       "type": "string"
152238	//     },
152239	//     "project": {
152240	//       "description": "Project ID for this request.",
152241	//       "location": "path",
152242	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152243	//       "required": true,
152244	//       "type": "string"
152245	//     },
152246	//     "region": {
152247	//       "description": "Name of the region for this request.",
152248	//       "location": "path",
152249	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152250	//       "required": true,
152251	//       "type": "string"
152252	//     },
152253	//     "returnPartialSuccess": {
152254	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
152255	//       "location": "query",
152256	//       "type": "boolean"
152257	//     }
152258	//   },
152259	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
152260	//   "response": {
152261	//     "$ref": "ResourcePolicyList"
152262	//   },
152263	//   "scopes": [
152264	//     "https://www.googleapis.com/auth/cloud-platform",
152265	//     "https://www.googleapis.com/auth/compute",
152266	//     "https://www.googleapis.com/auth/compute.readonly"
152267	//   ]
152268	// }
152269
152270}
152271
152272// Pages invokes f for each page of results.
152273// A non-nil error returned from f will halt the iteration.
152274// The provided context supersedes any context provided to the Context method.
152275func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
152276	c.ctx_ = ctx
152277	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152278	for {
152279		x, err := c.Do()
152280		if err != nil {
152281			return err
152282		}
152283		if err := f(x); err != nil {
152284			return err
152285		}
152286		if x.NextPageToken == "" {
152287			return nil
152288		}
152289		c.PageToken(x.NextPageToken)
152290	}
152291}
152292
152293// method id "compute.resourcePolicies.setIamPolicy":
152294
152295type ResourcePoliciesSetIamPolicyCall struct {
152296	s                      *Service
152297	project                string
152298	region                 string
152299	resource               string
152300	regionsetpolicyrequest *RegionSetPolicyRequest
152301	urlParams_             gensupport.URLParams
152302	ctx_                   context.Context
152303	header_                http.Header
152304}
152305
152306// SetIamPolicy: Sets the access control policy on the specified
152307// resource. Replaces any existing policy.
152308//
152309// - project: Project ID for this request.
152310// - region: The name of the region for this request.
152311// - resource: Name or id of the resource for this request.
152312func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
152313	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152314	c.project = project
152315	c.region = region
152316	c.resource = resource
152317	c.regionsetpolicyrequest = regionsetpolicyrequest
152318	return c
152319}
152320
152321// Fields allows partial responses to be retrieved. See
152322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152323// for more information.
152324func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
152325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152326	return c
152327}
152328
152329// Context sets the context to be used in this call's Do method. Any
152330// pending HTTP request will be aborted if the provided context is
152331// canceled.
152332func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
152333	c.ctx_ = ctx
152334	return c
152335}
152336
152337// Header returns an http.Header that can be modified by the caller to
152338// add HTTP headers to the request.
152339func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
152340	if c.header_ == nil {
152341		c.header_ = make(http.Header)
152342	}
152343	return c.header_
152344}
152345
152346func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
152347	reqHeaders := make(http.Header)
152348	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152349	for k, v := range c.header_ {
152350		reqHeaders[k] = v
152351	}
152352	reqHeaders.Set("User-Agent", c.s.userAgent())
152353	var body io.Reader = nil
152354	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
152355	if err != nil {
152356		return nil, err
152357	}
152358	reqHeaders.Set("Content-Type", "application/json")
152359	c.urlParams_.Set("alt", alt)
152360	c.urlParams_.Set("prettyPrint", "false")
152361	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
152362	urls += "?" + c.urlParams_.Encode()
152363	req, err := http.NewRequest("POST", urls, body)
152364	if err != nil {
152365		return nil, err
152366	}
152367	req.Header = reqHeaders
152368	googleapi.Expand(req.URL, map[string]string{
152369		"project":  c.project,
152370		"region":   c.region,
152371		"resource": c.resource,
152372	})
152373	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152374}
152375
152376// Do executes the "compute.resourcePolicies.setIamPolicy" call.
152377// Exactly one of *Policy or error will be non-nil. Any non-2xx status
152378// code is an error. Response headers are in either
152379// *Policy.ServerResponse.Header or (if a response was returned at all)
152380// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
152381// check whether the returned error was because http.StatusNotModified
152382// was returned.
152383func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
152384	gensupport.SetOptions(c.urlParams_, opts...)
152385	res, err := c.doRequest("json")
152386	if res != nil && res.StatusCode == http.StatusNotModified {
152387		if res.Body != nil {
152388			res.Body.Close()
152389		}
152390		return nil, &googleapi.Error{
152391			Code:   res.StatusCode,
152392			Header: res.Header,
152393		}
152394	}
152395	if err != nil {
152396		return nil, err
152397	}
152398	defer googleapi.CloseBody(res)
152399	if err := googleapi.CheckResponse(res); err != nil {
152400		return nil, err
152401	}
152402	ret := &Policy{
152403		ServerResponse: googleapi.ServerResponse{
152404			Header:         res.Header,
152405			HTTPStatusCode: res.StatusCode,
152406		},
152407	}
152408	target := &ret
152409	if err := gensupport.DecodeResponse(target, res); err != nil {
152410		return nil, err
152411	}
152412	return ret, nil
152413	// {
152414	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
152415	//   "httpMethod": "POST",
152416	//   "id": "compute.resourcePolicies.setIamPolicy",
152417	//   "parameterOrder": [
152418	//     "project",
152419	//     "region",
152420	//     "resource"
152421	//   ],
152422	//   "parameters": {
152423	//     "project": {
152424	//       "description": "Project ID for this request.",
152425	//       "location": "path",
152426	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152427	//       "required": true,
152428	//       "type": "string"
152429	//     },
152430	//     "region": {
152431	//       "description": "The name of the region for this request.",
152432	//       "location": "path",
152433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152434	//       "required": true,
152435	//       "type": "string"
152436	//     },
152437	//     "resource": {
152438	//       "description": "Name or id of the resource for this request.",
152439	//       "location": "path",
152440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152441	//       "required": true,
152442	//       "type": "string"
152443	//     }
152444	//   },
152445	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
152446	//   "request": {
152447	//     "$ref": "RegionSetPolicyRequest"
152448	//   },
152449	//   "response": {
152450	//     "$ref": "Policy"
152451	//   },
152452	//   "scopes": [
152453	//     "https://www.googleapis.com/auth/cloud-platform",
152454	//     "https://www.googleapis.com/auth/compute"
152455	//   ]
152456	// }
152457
152458}
152459
152460// method id "compute.resourcePolicies.testIamPermissions":
152461
152462type ResourcePoliciesTestIamPermissionsCall struct {
152463	s                      *Service
152464	project                string
152465	region                 string
152466	resource               string
152467	testpermissionsrequest *TestPermissionsRequest
152468	urlParams_             gensupport.URLParams
152469	ctx_                   context.Context
152470	header_                http.Header
152471}
152472
152473// TestIamPermissions: Returns permissions that a caller has on the
152474// specified resource.
152475//
152476// - project: Project ID for this request.
152477// - region: The name of the region for this request.
152478// - resource: Name or id of the resource for this request.
152479func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
152480	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152481	c.project = project
152482	c.region = region
152483	c.resource = resource
152484	c.testpermissionsrequest = testpermissionsrequest
152485	return c
152486}
152487
152488// Fields allows partial responses to be retrieved. See
152489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152490// for more information.
152491func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
152492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152493	return c
152494}
152495
152496// Context sets the context to be used in this call's Do method. Any
152497// pending HTTP request will be aborted if the provided context is
152498// canceled.
152499func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
152500	c.ctx_ = ctx
152501	return c
152502}
152503
152504// Header returns an http.Header that can be modified by the caller to
152505// add HTTP headers to the request.
152506func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
152507	if c.header_ == nil {
152508		c.header_ = make(http.Header)
152509	}
152510	return c.header_
152511}
152512
152513func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
152514	reqHeaders := make(http.Header)
152515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152516	for k, v := range c.header_ {
152517		reqHeaders[k] = v
152518	}
152519	reqHeaders.Set("User-Agent", c.s.userAgent())
152520	var body io.Reader = nil
152521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
152522	if err != nil {
152523		return nil, err
152524	}
152525	reqHeaders.Set("Content-Type", "application/json")
152526	c.urlParams_.Set("alt", alt)
152527	c.urlParams_.Set("prettyPrint", "false")
152528	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
152529	urls += "?" + c.urlParams_.Encode()
152530	req, err := http.NewRequest("POST", urls, body)
152531	if err != nil {
152532		return nil, err
152533	}
152534	req.Header = reqHeaders
152535	googleapi.Expand(req.URL, map[string]string{
152536		"project":  c.project,
152537		"region":   c.region,
152538		"resource": c.resource,
152539	})
152540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152541}
152542
152543// Do executes the "compute.resourcePolicies.testIamPermissions" call.
152544// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
152545// non-2xx status code is an error. Response headers are in either
152546// *TestPermissionsResponse.ServerResponse.Header or (if a response was
152547// returned at all) in error.(*googleapi.Error).Header. Use
152548// googleapi.IsNotModified to check whether the returned error was
152549// because http.StatusNotModified was returned.
152550func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
152551	gensupport.SetOptions(c.urlParams_, opts...)
152552	res, err := c.doRequest("json")
152553	if res != nil && res.StatusCode == http.StatusNotModified {
152554		if res.Body != nil {
152555			res.Body.Close()
152556		}
152557		return nil, &googleapi.Error{
152558			Code:   res.StatusCode,
152559			Header: res.Header,
152560		}
152561	}
152562	if err != nil {
152563		return nil, err
152564	}
152565	defer googleapi.CloseBody(res)
152566	if err := googleapi.CheckResponse(res); err != nil {
152567		return nil, err
152568	}
152569	ret := &TestPermissionsResponse{
152570		ServerResponse: googleapi.ServerResponse{
152571			Header:         res.Header,
152572			HTTPStatusCode: res.StatusCode,
152573		},
152574	}
152575	target := &ret
152576	if err := gensupport.DecodeResponse(target, res); err != nil {
152577		return nil, err
152578	}
152579	return ret, nil
152580	// {
152581	//   "description": "Returns permissions that a caller has on the specified resource.",
152582	//   "httpMethod": "POST",
152583	//   "id": "compute.resourcePolicies.testIamPermissions",
152584	//   "parameterOrder": [
152585	//     "project",
152586	//     "region",
152587	//     "resource"
152588	//   ],
152589	//   "parameters": {
152590	//     "project": {
152591	//       "description": "Project ID for this request.",
152592	//       "location": "path",
152593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152594	//       "required": true,
152595	//       "type": "string"
152596	//     },
152597	//     "region": {
152598	//       "description": "The name of the region for this request.",
152599	//       "location": "path",
152600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152601	//       "required": true,
152602	//       "type": "string"
152603	//     },
152604	//     "resource": {
152605	//       "description": "Name or id of the resource for this request.",
152606	//       "location": "path",
152607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152608	//       "required": true,
152609	//       "type": "string"
152610	//     }
152611	//   },
152612	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
152613	//   "request": {
152614	//     "$ref": "TestPermissionsRequest"
152615	//   },
152616	//   "response": {
152617	//     "$ref": "TestPermissionsResponse"
152618	//   },
152619	//   "scopes": [
152620	//     "https://www.googleapis.com/auth/cloud-platform",
152621	//     "https://www.googleapis.com/auth/compute",
152622	//     "https://www.googleapis.com/auth/compute.readonly"
152623	//   ]
152624	// }
152625
152626}
152627
152628// method id "compute.routers.aggregatedList":
152629
152630type RoutersAggregatedListCall struct {
152631	s            *Service
152632	project      string
152633	urlParams_   gensupport.URLParams
152634	ifNoneMatch_ string
152635	ctx_         context.Context
152636	header_      http.Header
152637}
152638
152639// AggregatedList: Retrieves an aggregated list of routers.
152640//
152641// - project: Project ID for this request.
152642func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
152643	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152644	c.project = project
152645	return c
152646}
152647
152648// Filter sets the optional parameter "filter": A filter expression that
152649// filters resources listed in the response. The expression must specify
152650// the field name, a comparison operator, and the value that you want to
152651// use for filtering. The value must be a string, a number, or a
152652// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152653// `<`.
152654//
152655// For example, if you are filtering Compute Engine instances, you can
152656// exclude instances named `example-instance` by specifying `name !=
152657// example-instance`.
152658//
152659// You can also filter nested fields. For example, you could specify
152660// `scheduling.automaticRestart = false` to include instances only if
152661// they are not scheduled for automatic restarts. You can use filtering
152662// on nested fields to filter based on resource labels.
152663//
152664// To filter on multiple expressions, provide each separate expression
152665// within parentheses. For example: ``` (scheduling.automaticRestart =
152666// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
152667// is an `AND` expression. However, you can include `AND` and `OR`
152668// expressions explicitly. For example: ``` (cpuPlatform = "Intel
152669// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
152670// (scheduling.automaticRestart = true) ```
152671func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
152672	c.urlParams_.Set("filter", filter)
152673	return c
152674}
152675
152676// IncludeAllScopes sets the optional parameter "includeAllScopes":
152677// Indicates whether every visible scope for each scope type (zone,
152678// region, global) should be included in the response. For new resource
152679// types added after this field, the flag has no effect as new resource
152680// types will always include every visible scope for each scope type in
152681// response. For resource types which predate this field, if this flag
152682// is omitted or false, only scopes of the scope types where the
152683// resource type is expected to be found will be included.
152684func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
152685	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
152686	return c
152687}
152688
152689// MaxResults sets the optional parameter "maxResults": The maximum
152690// number of results per page that should be returned. If the number of
152691// available results is larger than `maxResults`, Compute Engine returns
152692// a `nextPageToken` that can be used to get the next page of results in
152693// subsequent list requests. Acceptable values are `0` to `500`,
152694// inclusive. (Default: `500`)
152695func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
152696	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152697	return c
152698}
152699
152700// OrderBy sets the optional parameter "orderBy": Sorts list results by
152701// a certain order. By default, results are returned in alphanumerical
152702// order based on the resource name.
152703//
152704// You can also sort results in descending order based on the creation
152705// timestamp using `orderBy="creationTimestamp desc". This sorts
152706// results based on the `creationTimestamp` field in reverse
152707// chronological order (newest result first). Use this to sort resources
152708// like operations so that the newest operation is returned
152709// first.
152710//
152711// Currently, only sorting by `name` or `creationTimestamp desc` is
152712// supported.
152713func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
152714	c.urlParams_.Set("orderBy", orderBy)
152715	return c
152716}
152717
152718// PageToken sets the optional parameter "pageToken": Specifies a page
152719// token to use. Set `pageToken` to the `nextPageToken` returned by a
152720// previous list request to get the next page of results.
152721func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
152722	c.urlParams_.Set("pageToken", pageToken)
152723	return c
152724}
152725
152726// ReturnPartialSuccess sets the optional parameter
152727// "returnPartialSuccess": Opt-in for partial success behavior which
152728// provides partial results in case of failure. The default value is
152729// false.
152730func (c *RoutersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersAggregatedListCall {
152731	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
152732	return c
152733}
152734
152735// Fields allows partial responses to be retrieved. See
152736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152737// for more information.
152738func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
152739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152740	return c
152741}
152742
152743// IfNoneMatch sets the optional parameter which makes the operation
152744// fail if the object's ETag matches the given value. This is useful for
152745// getting updates only after the object has changed since the last
152746// request. Use googleapi.IsNotModified to check whether the response
152747// error from Do is the result of In-None-Match.
152748func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
152749	c.ifNoneMatch_ = entityTag
152750	return c
152751}
152752
152753// Context sets the context to be used in this call's Do method. Any
152754// pending HTTP request will be aborted if the provided context is
152755// canceled.
152756func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
152757	c.ctx_ = ctx
152758	return c
152759}
152760
152761// Header returns an http.Header that can be modified by the caller to
152762// add HTTP headers to the request.
152763func (c *RoutersAggregatedListCall) Header() http.Header {
152764	if c.header_ == nil {
152765		c.header_ = make(http.Header)
152766	}
152767	return c.header_
152768}
152769
152770func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
152771	reqHeaders := make(http.Header)
152772	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152773	for k, v := range c.header_ {
152774		reqHeaders[k] = v
152775	}
152776	reqHeaders.Set("User-Agent", c.s.userAgent())
152777	if c.ifNoneMatch_ != "" {
152778		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152779	}
152780	var body io.Reader = nil
152781	c.urlParams_.Set("alt", alt)
152782	c.urlParams_.Set("prettyPrint", "false")
152783	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/routers")
152784	urls += "?" + c.urlParams_.Encode()
152785	req, err := http.NewRequest("GET", urls, body)
152786	if err != nil {
152787		return nil, err
152788	}
152789	req.Header = reqHeaders
152790	googleapi.Expand(req.URL, map[string]string{
152791		"project": c.project,
152792	})
152793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152794}
152795
152796// Do executes the "compute.routers.aggregatedList" call.
152797// Exactly one of *RouterAggregatedList or error will be non-nil. Any
152798// non-2xx status code is an error. Response headers are in either
152799// *RouterAggregatedList.ServerResponse.Header or (if a response was
152800// returned at all) in error.(*googleapi.Error).Header. Use
152801// googleapi.IsNotModified to check whether the returned error was
152802// because http.StatusNotModified was returned.
152803func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
152804	gensupport.SetOptions(c.urlParams_, opts...)
152805	res, err := c.doRequest("json")
152806	if res != nil && res.StatusCode == http.StatusNotModified {
152807		if res.Body != nil {
152808			res.Body.Close()
152809		}
152810		return nil, &googleapi.Error{
152811			Code:   res.StatusCode,
152812			Header: res.Header,
152813		}
152814	}
152815	if err != nil {
152816		return nil, err
152817	}
152818	defer googleapi.CloseBody(res)
152819	if err := googleapi.CheckResponse(res); err != nil {
152820		return nil, err
152821	}
152822	ret := &RouterAggregatedList{
152823		ServerResponse: googleapi.ServerResponse{
152824			Header:         res.Header,
152825			HTTPStatusCode: res.StatusCode,
152826		},
152827	}
152828	target := &ret
152829	if err := gensupport.DecodeResponse(target, res); err != nil {
152830		return nil, err
152831	}
152832	return ret, nil
152833	// {
152834	//   "description": "Retrieves an aggregated list of routers.",
152835	//   "httpMethod": "GET",
152836	//   "id": "compute.routers.aggregatedList",
152837	//   "parameterOrder": [
152838	//     "project"
152839	//   ],
152840	//   "parameters": {
152841	//     "filter": {
152842	//       "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) ```",
152843	//       "location": "query",
152844	//       "type": "string"
152845	//     },
152846	//     "includeAllScopes": {
152847	//       "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.",
152848	//       "location": "query",
152849	//       "type": "boolean"
152850	//     },
152851	//     "maxResults": {
152852	//       "default": "500",
152853	//       "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`)",
152854	//       "format": "uint32",
152855	//       "location": "query",
152856	//       "minimum": "0",
152857	//       "type": "integer"
152858	//     },
152859	//     "orderBy": {
152860	//       "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.",
152861	//       "location": "query",
152862	//       "type": "string"
152863	//     },
152864	//     "pageToken": {
152865	//       "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.",
152866	//       "location": "query",
152867	//       "type": "string"
152868	//     },
152869	//     "project": {
152870	//       "description": "Project ID for this request.",
152871	//       "location": "path",
152872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152873	//       "required": true,
152874	//       "type": "string"
152875	//     },
152876	//     "returnPartialSuccess": {
152877	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
152878	//       "location": "query",
152879	//       "type": "boolean"
152880	//     }
152881	//   },
152882	//   "path": "projects/{project}/aggregated/routers",
152883	//   "response": {
152884	//     "$ref": "RouterAggregatedList"
152885	//   },
152886	//   "scopes": [
152887	//     "https://www.googleapis.com/auth/cloud-platform",
152888	//     "https://www.googleapis.com/auth/compute",
152889	//     "https://www.googleapis.com/auth/compute.readonly"
152890	//   ]
152891	// }
152892
152893}
152894
152895// Pages invokes f for each page of results.
152896// A non-nil error returned from f will halt the iteration.
152897// The provided context supersedes any context provided to the Context method.
152898func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
152899	c.ctx_ = ctx
152900	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152901	for {
152902		x, err := c.Do()
152903		if err != nil {
152904			return err
152905		}
152906		if err := f(x); err != nil {
152907			return err
152908		}
152909		if x.NextPageToken == "" {
152910			return nil
152911		}
152912		c.PageToken(x.NextPageToken)
152913	}
152914}
152915
152916// method id "compute.routers.delete":
152917
152918type RoutersDeleteCall struct {
152919	s          *Service
152920	project    string
152921	region     string
152922	router     string
152923	urlParams_ gensupport.URLParams
152924	ctx_       context.Context
152925	header_    http.Header
152926}
152927
152928// Delete: Deletes the specified Router resource.
152929//
152930// - project: Project ID for this request.
152931// - region: Name of the region for this request.
152932// - router: Name of the Router resource to delete.
152933func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
152934	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152935	c.project = project
152936	c.region = region
152937	c.router = router
152938	return c
152939}
152940
152941// RequestId sets the optional parameter "requestId": An optional
152942// request ID to identify requests. Specify a unique request ID so that
152943// if you must retry your request, the server will know to ignore the
152944// request if it has already been completed.
152945//
152946// For example, consider a situation where you make an initial request
152947// and the request times out. If you make the request again with the
152948// same request ID, the server can check if original operation with the
152949// same request ID was received, and if so, will ignore the second
152950// request. This prevents clients from accidentally creating duplicate
152951// commitments.
152952//
152953// The request ID must be a valid UUID with the exception that zero UUID
152954// is not supported (00000000-0000-0000-0000-000000000000).
152955func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
152956	c.urlParams_.Set("requestId", requestId)
152957	return c
152958}
152959
152960// Fields allows partial responses to be retrieved. See
152961// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152962// for more information.
152963func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
152964	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152965	return c
152966}
152967
152968// Context sets the context to be used in this call's Do method. Any
152969// pending HTTP request will be aborted if the provided context is
152970// canceled.
152971func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
152972	c.ctx_ = ctx
152973	return c
152974}
152975
152976// Header returns an http.Header that can be modified by the caller to
152977// add HTTP headers to the request.
152978func (c *RoutersDeleteCall) Header() http.Header {
152979	if c.header_ == nil {
152980		c.header_ = make(http.Header)
152981	}
152982	return c.header_
152983}
152984
152985func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
152986	reqHeaders := make(http.Header)
152987	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152988	for k, v := range c.header_ {
152989		reqHeaders[k] = v
152990	}
152991	reqHeaders.Set("User-Agent", c.s.userAgent())
152992	var body io.Reader = nil
152993	c.urlParams_.Set("alt", alt)
152994	c.urlParams_.Set("prettyPrint", "false")
152995	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
152996	urls += "?" + c.urlParams_.Encode()
152997	req, err := http.NewRequest("DELETE", urls, body)
152998	if err != nil {
152999		return nil, err
153000	}
153001	req.Header = reqHeaders
153002	googleapi.Expand(req.URL, map[string]string{
153003		"project": c.project,
153004		"region":  c.region,
153005		"router":  c.router,
153006	})
153007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153008}
153009
153010// Do executes the "compute.routers.delete" call.
153011// Exactly one of *Operation or error will be non-nil. Any non-2xx
153012// status code is an error. Response headers are in either
153013// *Operation.ServerResponse.Header or (if a response was returned at
153014// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153015// to check whether the returned error was because
153016// http.StatusNotModified was returned.
153017func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153018	gensupport.SetOptions(c.urlParams_, opts...)
153019	res, err := c.doRequest("json")
153020	if res != nil && res.StatusCode == http.StatusNotModified {
153021		if res.Body != nil {
153022			res.Body.Close()
153023		}
153024		return nil, &googleapi.Error{
153025			Code:   res.StatusCode,
153026			Header: res.Header,
153027		}
153028	}
153029	if err != nil {
153030		return nil, err
153031	}
153032	defer googleapi.CloseBody(res)
153033	if err := googleapi.CheckResponse(res); err != nil {
153034		return nil, err
153035	}
153036	ret := &Operation{
153037		ServerResponse: googleapi.ServerResponse{
153038			Header:         res.Header,
153039			HTTPStatusCode: res.StatusCode,
153040		},
153041	}
153042	target := &ret
153043	if err := gensupport.DecodeResponse(target, res); err != nil {
153044		return nil, err
153045	}
153046	return ret, nil
153047	// {
153048	//   "description": "Deletes the specified Router resource.",
153049	//   "httpMethod": "DELETE",
153050	//   "id": "compute.routers.delete",
153051	//   "parameterOrder": [
153052	//     "project",
153053	//     "region",
153054	//     "router"
153055	//   ],
153056	//   "parameters": {
153057	//     "project": {
153058	//       "description": "Project ID for this request.",
153059	//       "location": "path",
153060	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153061	//       "required": true,
153062	//       "type": "string"
153063	//     },
153064	//     "region": {
153065	//       "description": "Name of the region for this request.",
153066	//       "location": "path",
153067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153068	//       "required": true,
153069	//       "type": "string"
153070	//     },
153071	//     "requestId": {
153072	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153073	//       "location": "query",
153074	//       "type": "string"
153075	//     },
153076	//     "router": {
153077	//       "description": "Name of the Router resource to delete.",
153078	//       "location": "path",
153079	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153080	//       "required": true,
153081	//       "type": "string"
153082	//     }
153083	//   },
153084	//   "path": "projects/{project}/regions/{region}/routers/{router}",
153085	//   "response": {
153086	//     "$ref": "Operation"
153087	//   },
153088	//   "scopes": [
153089	//     "https://www.googleapis.com/auth/cloud-platform",
153090	//     "https://www.googleapis.com/auth/compute"
153091	//   ]
153092	// }
153093
153094}
153095
153096// method id "compute.routers.get":
153097
153098type RoutersGetCall struct {
153099	s            *Service
153100	project      string
153101	region       string
153102	router       string
153103	urlParams_   gensupport.URLParams
153104	ifNoneMatch_ string
153105	ctx_         context.Context
153106	header_      http.Header
153107}
153108
153109// Get: Returns the specified Router resource. Gets a list of available
153110// routers by making a list() request.
153111//
153112// - project: Project ID for this request.
153113// - region: Name of the region for this request.
153114// - router: Name of the Router resource to return.
153115func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
153116	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153117	c.project = project
153118	c.region = region
153119	c.router = router
153120	return c
153121}
153122
153123// Fields allows partial responses to be retrieved. See
153124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153125// for more information.
153126func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
153127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153128	return c
153129}
153130
153131// IfNoneMatch sets the optional parameter which makes the operation
153132// fail if the object's ETag matches the given value. This is useful for
153133// getting updates only after the object has changed since the last
153134// request. Use googleapi.IsNotModified to check whether the response
153135// error from Do is the result of In-None-Match.
153136func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
153137	c.ifNoneMatch_ = entityTag
153138	return c
153139}
153140
153141// Context sets the context to be used in this call's Do method. Any
153142// pending HTTP request will be aborted if the provided context is
153143// canceled.
153144func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
153145	c.ctx_ = ctx
153146	return c
153147}
153148
153149// Header returns an http.Header that can be modified by the caller to
153150// add HTTP headers to the request.
153151func (c *RoutersGetCall) Header() http.Header {
153152	if c.header_ == nil {
153153		c.header_ = make(http.Header)
153154	}
153155	return c.header_
153156}
153157
153158func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
153159	reqHeaders := make(http.Header)
153160	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153161	for k, v := range c.header_ {
153162		reqHeaders[k] = v
153163	}
153164	reqHeaders.Set("User-Agent", c.s.userAgent())
153165	if c.ifNoneMatch_ != "" {
153166		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153167	}
153168	var body io.Reader = nil
153169	c.urlParams_.Set("alt", alt)
153170	c.urlParams_.Set("prettyPrint", "false")
153171	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
153172	urls += "?" + c.urlParams_.Encode()
153173	req, err := http.NewRequest("GET", urls, body)
153174	if err != nil {
153175		return nil, err
153176	}
153177	req.Header = reqHeaders
153178	googleapi.Expand(req.URL, map[string]string{
153179		"project": c.project,
153180		"region":  c.region,
153181		"router":  c.router,
153182	})
153183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153184}
153185
153186// Do executes the "compute.routers.get" call.
153187// Exactly one of *Router or error will be non-nil. Any non-2xx status
153188// code is an error. Response headers are in either
153189// *Router.ServerResponse.Header or (if a response was returned at all)
153190// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
153191// check whether the returned error was because http.StatusNotModified
153192// was returned.
153193func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
153194	gensupport.SetOptions(c.urlParams_, opts...)
153195	res, err := c.doRequest("json")
153196	if res != nil && res.StatusCode == http.StatusNotModified {
153197		if res.Body != nil {
153198			res.Body.Close()
153199		}
153200		return nil, &googleapi.Error{
153201			Code:   res.StatusCode,
153202			Header: res.Header,
153203		}
153204	}
153205	if err != nil {
153206		return nil, err
153207	}
153208	defer googleapi.CloseBody(res)
153209	if err := googleapi.CheckResponse(res); err != nil {
153210		return nil, err
153211	}
153212	ret := &Router{
153213		ServerResponse: googleapi.ServerResponse{
153214			Header:         res.Header,
153215			HTTPStatusCode: res.StatusCode,
153216		},
153217	}
153218	target := &ret
153219	if err := gensupport.DecodeResponse(target, res); err != nil {
153220		return nil, err
153221	}
153222	return ret, nil
153223	// {
153224	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
153225	//   "httpMethod": "GET",
153226	//   "id": "compute.routers.get",
153227	//   "parameterOrder": [
153228	//     "project",
153229	//     "region",
153230	//     "router"
153231	//   ],
153232	//   "parameters": {
153233	//     "project": {
153234	//       "description": "Project ID for this request.",
153235	//       "location": "path",
153236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153237	//       "required": true,
153238	//       "type": "string"
153239	//     },
153240	//     "region": {
153241	//       "description": "Name of the region for this request.",
153242	//       "location": "path",
153243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153244	//       "required": true,
153245	//       "type": "string"
153246	//     },
153247	//     "router": {
153248	//       "description": "Name of the Router resource to return.",
153249	//       "location": "path",
153250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153251	//       "required": true,
153252	//       "type": "string"
153253	//     }
153254	//   },
153255	//   "path": "projects/{project}/regions/{region}/routers/{router}",
153256	//   "response": {
153257	//     "$ref": "Router"
153258	//   },
153259	//   "scopes": [
153260	//     "https://www.googleapis.com/auth/cloud-platform",
153261	//     "https://www.googleapis.com/auth/compute",
153262	//     "https://www.googleapis.com/auth/compute.readonly"
153263	//   ]
153264	// }
153265
153266}
153267
153268// method id "compute.routers.getNatMappingInfo":
153269
153270type RoutersGetNatMappingInfoCall struct {
153271	s            *Service
153272	project      string
153273	region       string
153274	router       string
153275	urlParams_   gensupport.URLParams
153276	ifNoneMatch_ string
153277	ctx_         context.Context
153278	header_      http.Header
153279}
153280
153281// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
153282// endpoints.
153283//
153284// - project: Project ID for this request.
153285// - region: Name of the region for this request.
153286// - router: Name of the Router resource to query for Nat Mapping
153287//   information of VM endpoints.
153288func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
153289	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153290	c.project = project
153291	c.region = region
153292	c.router = router
153293	return c
153294}
153295
153296// Filter sets the optional parameter "filter": A filter expression that
153297// filters resources listed in the response. The expression must specify
153298// the field name, a comparison operator, and the value that you want to
153299// use for filtering. The value must be a string, a number, or a
153300// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153301// `<`.
153302//
153303// For example, if you are filtering Compute Engine instances, you can
153304// exclude instances named `example-instance` by specifying `name !=
153305// example-instance`.
153306//
153307// You can also filter nested fields. For example, you could specify
153308// `scheduling.automaticRestart = false` to include instances only if
153309// they are not scheduled for automatic restarts. You can use filtering
153310// on nested fields to filter based on resource labels.
153311//
153312// To filter on multiple expressions, provide each separate expression
153313// within parentheses. For example: ``` (scheduling.automaticRestart =
153314// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
153315// is an `AND` expression. However, you can include `AND` and `OR`
153316// expressions explicitly. For example: ``` (cpuPlatform = "Intel
153317// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
153318// (scheduling.automaticRestart = true) ```
153319func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
153320	c.urlParams_.Set("filter", filter)
153321	return c
153322}
153323
153324// MaxResults sets the optional parameter "maxResults": The maximum
153325// number of results per page that should be returned. If the number of
153326// available results is larger than `maxResults`, Compute Engine returns
153327// a `nextPageToken` that can be used to get the next page of results in
153328// subsequent list requests. Acceptable values are `0` to `500`,
153329// inclusive. (Default: `500`)
153330func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
153331	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153332	return c
153333}
153334
153335// NatName sets the optional parameter "natName": Name of the nat
153336// service to filter the Nat Mapping information. If it is omitted, all
153337// nats for this router will be returned. Name should conform to
153338// RFC1035.
153339func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall {
153340	c.urlParams_.Set("natName", natName)
153341	return c
153342}
153343
153344// OrderBy sets the optional parameter "orderBy": Sorts list results by
153345// a certain order. By default, results are returned in alphanumerical
153346// order based on the resource name.
153347//
153348// You can also sort results in descending order based on the creation
153349// timestamp using `orderBy="creationTimestamp desc". This sorts
153350// results based on the `creationTimestamp` field in reverse
153351// chronological order (newest result first). Use this to sort resources
153352// like operations so that the newest operation is returned
153353// first.
153354//
153355// Currently, only sorting by `name` or `creationTimestamp desc` is
153356// supported.
153357func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
153358	c.urlParams_.Set("orderBy", orderBy)
153359	return c
153360}
153361
153362// PageToken sets the optional parameter "pageToken": Specifies a page
153363// token to use. Set `pageToken` to the `nextPageToken` returned by a
153364// previous list request to get the next page of results.
153365func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
153366	c.urlParams_.Set("pageToken", pageToken)
153367	return c
153368}
153369
153370// ReturnPartialSuccess sets the optional parameter
153371// "returnPartialSuccess": Opt-in for partial success behavior which
153372// provides partial results in case of failure. The default value is
153373// false.
153374func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersGetNatMappingInfoCall {
153375	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
153376	return c
153377}
153378
153379// Fields allows partial responses to be retrieved. See
153380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153381// for more information.
153382func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
153383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153384	return c
153385}
153386
153387// IfNoneMatch sets the optional parameter which makes the operation
153388// fail if the object's ETag matches the given value. This is useful for
153389// getting updates only after the object has changed since the last
153390// request. Use googleapi.IsNotModified to check whether the response
153391// error from Do is the result of In-None-Match.
153392func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
153393	c.ifNoneMatch_ = entityTag
153394	return c
153395}
153396
153397// Context sets the context to be used in this call's Do method. Any
153398// pending HTTP request will be aborted if the provided context is
153399// canceled.
153400func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
153401	c.ctx_ = ctx
153402	return c
153403}
153404
153405// Header returns an http.Header that can be modified by the caller to
153406// add HTTP headers to the request.
153407func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
153408	if c.header_ == nil {
153409		c.header_ = make(http.Header)
153410	}
153411	return c.header_
153412}
153413
153414func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
153415	reqHeaders := make(http.Header)
153416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153417	for k, v := range c.header_ {
153418		reqHeaders[k] = v
153419	}
153420	reqHeaders.Set("User-Agent", c.s.userAgent())
153421	if c.ifNoneMatch_ != "" {
153422		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153423	}
153424	var body io.Reader = nil
153425	c.urlParams_.Set("alt", alt)
153426	c.urlParams_.Set("prettyPrint", "false")
153427	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo")
153428	urls += "?" + c.urlParams_.Encode()
153429	req, err := http.NewRequest("GET", urls, body)
153430	if err != nil {
153431		return nil, err
153432	}
153433	req.Header = reqHeaders
153434	googleapi.Expand(req.URL, map[string]string{
153435		"project": c.project,
153436		"region":  c.region,
153437		"router":  c.router,
153438	})
153439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153440}
153441
153442// Do executes the "compute.routers.getNatMappingInfo" call.
153443// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
153444// Any non-2xx status code is an error. Response headers are in either
153445// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
153446// was returned at all) in error.(*googleapi.Error).Header. Use
153447// googleapi.IsNotModified to check whether the returned error was
153448// because http.StatusNotModified was returned.
153449func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
153450	gensupport.SetOptions(c.urlParams_, opts...)
153451	res, err := c.doRequest("json")
153452	if res != nil && res.StatusCode == http.StatusNotModified {
153453		if res.Body != nil {
153454			res.Body.Close()
153455		}
153456		return nil, &googleapi.Error{
153457			Code:   res.StatusCode,
153458			Header: res.Header,
153459		}
153460	}
153461	if err != nil {
153462		return nil, err
153463	}
153464	defer googleapi.CloseBody(res)
153465	if err := googleapi.CheckResponse(res); err != nil {
153466		return nil, err
153467	}
153468	ret := &VmEndpointNatMappingsList{
153469		ServerResponse: googleapi.ServerResponse{
153470			Header:         res.Header,
153471			HTTPStatusCode: res.StatusCode,
153472		},
153473	}
153474	target := &ret
153475	if err := gensupport.DecodeResponse(target, res); err != nil {
153476		return nil, err
153477	}
153478	return ret, nil
153479	// {
153480	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
153481	//   "httpMethod": "GET",
153482	//   "id": "compute.routers.getNatMappingInfo",
153483	//   "parameterOrder": [
153484	//     "project",
153485	//     "region",
153486	//     "router"
153487	//   ],
153488	//   "parameters": {
153489	//     "filter": {
153490	//       "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) ```",
153491	//       "location": "query",
153492	//       "type": "string"
153493	//     },
153494	//     "maxResults": {
153495	//       "default": "500",
153496	//       "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`)",
153497	//       "format": "uint32",
153498	//       "location": "query",
153499	//       "minimum": "0",
153500	//       "type": "integer"
153501	//     },
153502	//     "natName": {
153503	//       "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.",
153504	//       "location": "query",
153505	//       "type": "string"
153506	//     },
153507	//     "orderBy": {
153508	//       "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.",
153509	//       "location": "query",
153510	//       "type": "string"
153511	//     },
153512	//     "pageToken": {
153513	//       "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.",
153514	//       "location": "query",
153515	//       "type": "string"
153516	//     },
153517	//     "project": {
153518	//       "description": "Project ID for this request.",
153519	//       "location": "path",
153520	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153521	//       "required": true,
153522	//       "type": "string"
153523	//     },
153524	//     "region": {
153525	//       "description": "Name of the region for this request.",
153526	//       "location": "path",
153527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153528	//       "required": true,
153529	//       "type": "string"
153530	//     },
153531	//     "returnPartialSuccess": {
153532	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
153533	//       "location": "query",
153534	//       "type": "boolean"
153535	//     },
153536	//     "router": {
153537	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
153538	//       "location": "path",
153539	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153540	//       "required": true,
153541	//       "type": "string"
153542	//     }
153543	//   },
153544	//   "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
153545	//   "response": {
153546	//     "$ref": "VmEndpointNatMappingsList"
153547	//   },
153548	//   "scopes": [
153549	//     "https://www.googleapis.com/auth/cloud-platform",
153550	//     "https://www.googleapis.com/auth/compute",
153551	//     "https://www.googleapis.com/auth/compute.readonly"
153552	//   ]
153553	// }
153554
153555}
153556
153557// Pages invokes f for each page of results.
153558// A non-nil error returned from f will halt the iteration.
153559// The provided context supersedes any context provided to the Context method.
153560func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
153561	c.ctx_ = ctx
153562	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153563	for {
153564		x, err := c.Do()
153565		if err != nil {
153566			return err
153567		}
153568		if err := f(x); err != nil {
153569			return err
153570		}
153571		if x.NextPageToken == "" {
153572			return nil
153573		}
153574		c.PageToken(x.NextPageToken)
153575	}
153576}
153577
153578// method id "compute.routers.getRouterStatus":
153579
153580type RoutersGetRouterStatusCall struct {
153581	s            *Service
153582	project      string
153583	region       string
153584	router       string
153585	urlParams_   gensupport.URLParams
153586	ifNoneMatch_ string
153587	ctx_         context.Context
153588	header_      http.Header
153589}
153590
153591// GetRouterStatus: Retrieves runtime information of the specified
153592// router.
153593//
153594// - project: Project ID for this request.
153595// - region: Name of the region for this request.
153596// - router: Name of the Router resource to query.
153597func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
153598	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153599	c.project = project
153600	c.region = region
153601	c.router = router
153602	return c
153603}
153604
153605// Fields allows partial responses to be retrieved. See
153606// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153607// for more information.
153608func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
153609	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153610	return c
153611}
153612
153613// IfNoneMatch sets the optional parameter which makes the operation
153614// fail if the object's ETag matches the given value. This is useful for
153615// getting updates only after the object has changed since the last
153616// request. Use googleapi.IsNotModified to check whether the response
153617// error from Do is the result of In-None-Match.
153618func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
153619	c.ifNoneMatch_ = entityTag
153620	return c
153621}
153622
153623// Context sets the context to be used in this call's Do method. Any
153624// pending HTTP request will be aborted if the provided context is
153625// canceled.
153626func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
153627	c.ctx_ = ctx
153628	return c
153629}
153630
153631// Header returns an http.Header that can be modified by the caller to
153632// add HTTP headers to the request.
153633func (c *RoutersGetRouterStatusCall) Header() http.Header {
153634	if c.header_ == nil {
153635		c.header_ = make(http.Header)
153636	}
153637	return c.header_
153638}
153639
153640func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
153641	reqHeaders := make(http.Header)
153642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153643	for k, v := range c.header_ {
153644		reqHeaders[k] = v
153645	}
153646	reqHeaders.Set("User-Agent", c.s.userAgent())
153647	if c.ifNoneMatch_ != "" {
153648		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153649	}
153650	var body io.Reader = nil
153651	c.urlParams_.Set("alt", alt)
153652	c.urlParams_.Set("prettyPrint", "false")
153653	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getRouterStatus")
153654	urls += "?" + c.urlParams_.Encode()
153655	req, err := http.NewRequest("GET", urls, body)
153656	if err != nil {
153657		return nil, err
153658	}
153659	req.Header = reqHeaders
153660	googleapi.Expand(req.URL, map[string]string{
153661		"project": c.project,
153662		"region":  c.region,
153663		"router":  c.router,
153664	})
153665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153666}
153667
153668// Do executes the "compute.routers.getRouterStatus" call.
153669// Exactly one of *RouterStatusResponse or error will be non-nil. Any
153670// non-2xx status code is an error. Response headers are in either
153671// *RouterStatusResponse.ServerResponse.Header or (if a response was
153672// returned at all) in error.(*googleapi.Error).Header. Use
153673// googleapi.IsNotModified to check whether the returned error was
153674// because http.StatusNotModified was returned.
153675func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
153676	gensupport.SetOptions(c.urlParams_, opts...)
153677	res, err := c.doRequest("json")
153678	if res != nil && res.StatusCode == http.StatusNotModified {
153679		if res.Body != nil {
153680			res.Body.Close()
153681		}
153682		return nil, &googleapi.Error{
153683			Code:   res.StatusCode,
153684			Header: res.Header,
153685		}
153686	}
153687	if err != nil {
153688		return nil, err
153689	}
153690	defer googleapi.CloseBody(res)
153691	if err := googleapi.CheckResponse(res); err != nil {
153692		return nil, err
153693	}
153694	ret := &RouterStatusResponse{
153695		ServerResponse: googleapi.ServerResponse{
153696			Header:         res.Header,
153697			HTTPStatusCode: res.StatusCode,
153698		},
153699	}
153700	target := &ret
153701	if err := gensupport.DecodeResponse(target, res); err != nil {
153702		return nil, err
153703	}
153704	return ret, nil
153705	// {
153706	//   "description": "Retrieves runtime information of the specified router.",
153707	//   "httpMethod": "GET",
153708	//   "id": "compute.routers.getRouterStatus",
153709	//   "parameterOrder": [
153710	//     "project",
153711	//     "region",
153712	//     "router"
153713	//   ],
153714	//   "parameters": {
153715	//     "project": {
153716	//       "description": "Project ID for this request.",
153717	//       "location": "path",
153718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153719	//       "required": true,
153720	//       "type": "string"
153721	//     },
153722	//     "region": {
153723	//       "description": "Name of the region for this request.",
153724	//       "location": "path",
153725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153726	//       "required": true,
153727	//       "type": "string"
153728	//     },
153729	//     "router": {
153730	//       "description": "Name of the Router resource to query.",
153731	//       "location": "path",
153732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153733	//       "required": true,
153734	//       "type": "string"
153735	//     }
153736	//   },
153737	//   "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
153738	//   "response": {
153739	//     "$ref": "RouterStatusResponse"
153740	//   },
153741	//   "scopes": [
153742	//     "https://www.googleapis.com/auth/cloud-platform",
153743	//     "https://www.googleapis.com/auth/compute",
153744	//     "https://www.googleapis.com/auth/compute.readonly"
153745	//   ]
153746	// }
153747
153748}
153749
153750// method id "compute.routers.insert":
153751
153752type RoutersInsertCall struct {
153753	s          *Service
153754	project    string
153755	region     string
153756	router     *Router
153757	urlParams_ gensupport.URLParams
153758	ctx_       context.Context
153759	header_    http.Header
153760}
153761
153762// Insert: Creates a Router resource in the specified project and region
153763// using the data included in the request.
153764//
153765// - project: Project ID for this request.
153766// - region: Name of the region for this request.
153767func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
153768	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153769	c.project = project
153770	c.region = region
153771	c.router = router
153772	return c
153773}
153774
153775// RequestId sets the optional parameter "requestId": An optional
153776// request ID to identify requests. Specify a unique request ID so that
153777// if you must retry your request, the server will know to ignore the
153778// request if it has already been completed.
153779//
153780// For example, consider a situation where you make an initial request
153781// and the request times out. If you make the request again with the
153782// same request ID, the server can check if original operation with the
153783// same request ID was received, and if so, will ignore the second
153784// request. This prevents clients from accidentally creating duplicate
153785// commitments.
153786//
153787// The request ID must be a valid UUID with the exception that zero UUID
153788// is not supported (00000000-0000-0000-0000-000000000000).
153789func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
153790	c.urlParams_.Set("requestId", requestId)
153791	return c
153792}
153793
153794// Fields allows partial responses to be retrieved. See
153795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153796// for more information.
153797func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
153798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153799	return c
153800}
153801
153802// Context sets the context to be used in this call's Do method. Any
153803// pending HTTP request will be aborted if the provided context is
153804// canceled.
153805func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
153806	c.ctx_ = ctx
153807	return c
153808}
153809
153810// Header returns an http.Header that can be modified by the caller to
153811// add HTTP headers to the request.
153812func (c *RoutersInsertCall) Header() http.Header {
153813	if c.header_ == nil {
153814		c.header_ = make(http.Header)
153815	}
153816	return c.header_
153817}
153818
153819func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
153820	reqHeaders := make(http.Header)
153821	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153822	for k, v := range c.header_ {
153823		reqHeaders[k] = v
153824	}
153825	reqHeaders.Set("User-Agent", c.s.userAgent())
153826	var body io.Reader = nil
153827	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
153828	if err != nil {
153829		return nil, err
153830	}
153831	reqHeaders.Set("Content-Type", "application/json")
153832	c.urlParams_.Set("alt", alt)
153833	c.urlParams_.Set("prettyPrint", "false")
153834	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
153835	urls += "?" + c.urlParams_.Encode()
153836	req, err := http.NewRequest("POST", urls, body)
153837	if err != nil {
153838		return nil, err
153839	}
153840	req.Header = reqHeaders
153841	googleapi.Expand(req.URL, map[string]string{
153842		"project": c.project,
153843		"region":  c.region,
153844	})
153845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153846}
153847
153848// Do executes the "compute.routers.insert" call.
153849// Exactly one of *Operation or error will be non-nil. Any non-2xx
153850// status code is an error. Response headers are in either
153851// *Operation.ServerResponse.Header or (if a response was returned at
153852// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153853// to check whether the returned error was because
153854// http.StatusNotModified was returned.
153855func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153856	gensupport.SetOptions(c.urlParams_, opts...)
153857	res, err := c.doRequest("json")
153858	if res != nil && res.StatusCode == http.StatusNotModified {
153859		if res.Body != nil {
153860			res.Body.Close()
153861		}
153862		return nil, &googleapi.Error{
153863			Code:   res.StatusCode,
153864			Header: res.Header,
153865		}
153866	}
153867	if err != nil {
153868		return nil, err
153869	}
153870	defer googleapi.CloseBody(res)
153871	if err := googleapi.CheckResponse(res); err != nil {
153872		return nil, err
153873	}
153874	ret := &Operation{
153875		ServerResponse: googleapi.ServerResponse{
153876			Header:         res.Header,
153877			HTTPStatusCode: res.StatusCode,
153878		},
153879	}
153880	target := &ret
153881	if err := gensupport.DecodeResponse(target, res); err != nil {
153882		return nil, err
153883	}
153884	return ret, nil
153885	// {
153886	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
153887	//   "httpMethod": "POST",
153888	//   "id": "compute.routers.insert",
153889	//   "parameterOrder": [
153890	//     "project",
153891	//     "region"
153892	//   ],
153893	//   "parameters": {
153894	//     "project": {
153895	//       "description": "Project ID for this request.",
153896	//       "location": "path",
153897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153898	//       "required": true,
153899	//       "type": "string"
153900	//     },
153901	//     "region": {
153902	//       "description": "Name of the region for this request.",
153903	//       "location": "path",
153904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153905	//       "required": true,
153906	//       "type": "string"
153907	//     },
153908	//     "requestId": {
153909	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153910	//       "location": "query",
153911	//       "type": "string"
153912	//     }
153913	//   },
153914	//   "path": "projects/{project}/regions/{region}/routers",
153915	//   "request": {
153916	//     "$ref": "Router"
153917	//   },
153918	//   "response": {
153919	//     "$ref": "Operation"
153920	//   },
153921	//   "scopes": [
153922	//     "https://www.googleapis.com/auth/cloud-platform",
153923	//     "https://www.googleapis.com/auth/compute"
153924	//   ]
153925	// }
153926
153927}
153928
153929// method id "compute.routers.list":
153930
153931type RoutersListCall struct {
153932	s            *Service
153933	project      string
153934	region       string
153935	urlParams_   gensupport.URLParams
153936	ifNoneMatch_ string
153937	ctx_         context.Context
153938	header_      http.Header
153939}
153940
153941// List: Retrieves a list of Router resources available to the specified
153942// project.
153943//
153944// - project: Project ID for this request.
153945// - region: Name of the region for this request.
153946func (r *RoutersService) List(project string, region string) *RoutersListCall {
153947	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153948	c.project = project
153949	c.region = region
153950	return c
153951}
153952
153953// Filter sets the optional parameter "filter": A filter expression that
153954// filters resources listed in the response. The expression must specify
153955// the field name, a comparison operator, and the value that you want to
153956// use for filtering. The value must be a string, a number, or a
153957// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153958// `<`.
153959//
153960// For example, if you are filtering Compute Engine instances, you can
153961// exclude instances named `example-instance` by specifying `name !=
153962// example-instance`.
153963//
153964// You can also filter nested fields. For example, you could specify
153965// `scheduling.automaticRestart = false` to include instances only if
153966// they are not scheduled for automatic restarts. You can use filtering
153967// on nested fields to filter based on resource labels.
153968//
153969// To filter on multiple expressions, provide each separate expression
153970// within parentheses. For example: ``` (scheduling.automaticRestart =
153971// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
153972// is an `AND` expression. However, you can include `AND` and `OR`
153973// expressions explicitly. For example: ``` (cpuPlatform = "Intel
153974// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
153975// (scheduling.automaticRestart = true) ```
153976func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
153977	c.urlParams_.Set("filter", filter)
153978	return c
153979}
153980
153981// MaxResults sets the optional parameter "maxResults": The maximum
153982// number of results per page that should be returned. If the number of
153983// available results is larger than `maxResults`, Compute Engine returns
153984// a `nextPageToken` that can be used to get the next page of results in
153985// subsequent list requests. Acceptable values are `0` to `500`,
153986// inclusive. (Default: `500`)
153987func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
153988	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153989	return c
153990}
153991
153992// OrderBy sets the optional parameter "orderBy": Sorts list results by
153993// a certain order. By default, results are returned in alphanumerical
153994// order based on the resource name.
153995//
153996// You can also sort results in descending order based on the creation
153997// timestamp using `orderBy="creationTimestamp desc". This sorts
153998// results based on the `creationTimestamp` field in reverse
153999// chronological order (newest result first). Use this to sort resources
154000// like operations so that the newest operation is returned
154001// first.
154002//
154003// Currently, only sorting by `name` or `creationTimestamp desc` is
154004// supported.
154005func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
154006	c.urlParams_.Set("orderBy", orderBy)
154007	return c
154008}
154009
154010// PageToken sets the optional parameter "pageToken": Specifies a page
154011// token to use. Set `pageToken` to the `nextPageToken` returned by a
154012// previous list request to get the next page of results.
154013func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
154014	c.urlParams_.Set("pageToken", pageToken)
154015	return c
154016}
154017
154018// ReturnPartialSuccess sets the optional parameter
154019// "returnPartialSuccess": Opt-in for partial success behavior which
154020// provides partial results in case of failure. The default value is
154021// false.
154022func (c *RoutersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListCall {
154023	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
154024	return c
154025}
154026
154027// Fields allows partial responses to be retrieved. See
154028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154029// for more information.
154030func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
154031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154032	return c
154033}
154034
154035// IfNoneMatch sets the optional parameter which makes the operation
154036// fail if the object's ETag matches the given value. This is useful for
154037// getting updates only after the object has changed since the last
154038// request. Use googleapi.IsNotModified to check whether the response
154039// error from Do is the result of In-None-Match.
154040func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
154041	c.ifNoneMatch_ = entityTag
154042	return c
154043}
154044
154045// Context sets the context to be used in this call's Do method. Any
154046// pending HTTP request will be aborted if the provided context is
154047// canceled.
154048func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
154049	c.ctx_ = ctx
154050	return c
154051}
154052
154053// Header returns an http.Header that can be modified by the caller to
154054// add HTTP headers to the request.
154055func (c *RoutersListCall) Header() http.Header {
154056	if c.header_ == nil {
154057		c.header_ = make(http.Header)
154058	}
154059	return c.header_
154060}
154061
154062func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
154063	reqHeaders := make(http.Header)
154064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154065	for k, v := range c.header_ {
154066		reqHeaders[k] = v
154067	}
154068	reqHeaders.Set("User-Agent", c.s.userAgent())
154069	if c.ifNoneMatch_ != "" {
154070		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154071	}
154072	var body io.Reader = nil
154073	c.urlParams_.Set("alt", alt)
154074	c.urlParams_.Set("prettyPrint", "false")
154075	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
154076	urls += "?" + c.urlParams_.Encode()
154077	req, err := http.NewRequest("GET", urls, body)
154078	if err != nil {
154079		return nil, err
154080	}
154081	req.Header = reqHeaders
154082	googleapi.Expand(req.URL, map[string]string{
154083		"project": c.project,
154084		"region":  c.region,
154085	})
154086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154087}
154088
154089// Do executes the "compute.routers.list" call.
154090// Exactly one of *RouterList or error will be non-nil. Any non-2xx
154091// status code is an error. Response headers are in either
154092// *RouterList.ServerResponse.Header or (if a response was returned at
154093// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154094// to check whether the returned error was because
154095// http.StatusNotModified was returned.
154096func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
154097	gensupport.SetOptions(c.urlParams_, opts...)
154098	res, err := c.doRequest("json")
154099	if res != nil && res.StatusCode == http.StatusNotModified {
154100		if res.Body != nil {
154101			res.Body.Close()
154102		}
154103		return nil, &googleapi.Error{
154104			Code:   res.StatusCode,
154105			Header: res.Header,
154106		}
154107	}
154108	if err != nil {
154109		return nil, err
154110	}
154111	defer googleapi.CloseBody(res)
154112	if err := googleapi.CheckResponse(res); err != nil {
154113		return nil, err
154114	}
154115	ret := &RouterList{
154116		ServerResponse: googleapi.ServerResponse{
154117			Header:         res.Header,
154118			HTTPStatusCode: res.StatusCode,
154119		},
154120	}
154121	target := &ret
154122	if err := gensupport.DecodeResponse(target, res); err != nil {
154123		return nil, err
154124	}
154125	return ret, nil
154126	// {
154127	//   "description": "Retrieves a list of Router resources available to the specified project.",
154128	//   "httpMethod": "GET",
154129	//   "id": "compute.routers.list",
154130	//   "parameterOrder": [
154131	//     "project",
154132	//     "region"
154133	//   ],
154134	//   "parameters": {
154135	//     "filter": {
154136	//       "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) ```",
154137	//       "location": "query",
154138	//       "type": "string"
154139	//     },
154140	//     "maxResults": {
154141	//       "default": "500",
154142	//       "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`)",
154143	//       "format": "uint32",
154144	//       "location": "query",
154145	//       "minimum": "0",
154146	//       "type": "integer"
154147	//     },
154148	//     "orderBy": {
154149	//       "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.",
154150	//       "location": "query",
154151	//       "type": "string"
154152	//     },
154153	//     "pageToken": {
154154	//       "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.",
154155	//       "location": "query",
154156	//       "type": "string"
154157	//     },
154158	//     "project": {
154159	//       "description": "Project ID for this request.",
154160	//       "location": "path",
154161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154162	//       "required": true,
154163	//       "type": "string"
154164	//     },
154165	//     "region": {
154166	//       "description": "Name of the region for this request.",
154167	//       "location": "path",
154168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154169	//       "required": true,
154170	//       "type": "string"
154171	//     },
154172	//     "returnPartialSuccess": {
154173	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
154174	//       "location": "query",
154175	//       "type": "boolean"
154176	//     }
154177	//   },
154178	//   "path": "projects/{project}/regions/{region}/routers",
154179	//   "response": {
154180	//     "$ref": "RouterList"
154181	//   },
154182	//   "scopes": [
154183	//     "https://www.googleapis.com/auth/cloud-platform",
154184	//     "https://www.googleapis.com/auth/compute",
154185	//     "https://www.googleapis.com/auth/compute.readonly"
154186	//   ]
154187	// }
154188
154189}
154190
154191// Pages invokes f for each page of results.
154192// A non-nil error returned from f will halt the iteration.
154193// The provided context supersedes any context provided to the Context method.
154194func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
154195	c.ctx_ = ctx
154196	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154197	for {
154198		x, err := c.Do()
154199		if err != nil {
154200			return err
154201		}
154202		if err := f(x); err != nil {
154203			return err
154204		}
154205		if x.NextPageToken == "" {
154206			return nil
154207		}
154208		c.PageToken(x.NextPageToken)
154209	}
154210}
154211
154212// method id "compute.routers.patch":
154213
154214type RoutersPatchCall struct {
154215	s          *Service
154216	project    string
154217	region     string
154218	router     string
154219	router2    *Router
154220	urlParams_ gensupport.URLParams
154221	ctx_       context.Context
154222	header_    http.Header
154223}
154224
154225// Patch: Patches the specified Router resource with the data included
154226// in the request. This method supports PATCH semantics and uses JSON
154227// merge patch format and processing rules.
154228//
154229// - project: Project ID for this request.
154230// - region: Name of the region for this request.
154231// - router: Name of the Router resource to patch.
154232func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
154233	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154234	c.project = project
154235	c.region = region
154236	c.router = router
154237	c.router2 = router2
154238	return c
154239}
154240
154241// RequestId sets the optional parameter "requestId": An optional
154242// request ID to identify requests. Specify a unique request ID so that
154243// if you must retry your request, the server will know to ignore the
154244// request if it has already been completed.
154245//
154246// For example, consider a situation where you make an initial request
154247// and the request times out. If you make the request again with the
154248// same request ID, the server can check if original operation with the
154249// same request ID was received, and if so, will ignore the second
154250// request. This prevents clients from accidentally creating duplicate
154251// commitments.
154252//
154253// The request ID must be a valid UUID with the exception that zero UUID
154254// is not supported (00000000-0000-0000-0000-000000000000).
154255func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
154256	c.urlParams_.Set("requestId", requestId)
154257	return c
154258}
154259
154260// Fields allows partial responses to be retrieved. See
154261// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154262// for more information.
154263func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
154264	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154265	return c
154266}
154267
154268// Context sets the context to be used in this call's Do method. Any
154269// pending HTTP request will be aborted if the provided context is
154270// canceled.
154271func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
154272	c.ctx_ = ctx
154273	return c
154274}
154275
154276// Header returns an http.Header that can be modified by the caller to
154277// add HTTP headers to the request.
154278func (c *RoutersPatchCall) Header() http.Header {
154279	if c.header_ == nil {
154280		c.header_ = make(http.Header)
154281	}
154282	return c.header_
154283}
154284
154285func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
154286	reqHeaders := make(http.Header)
154287	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154288	for k, v := range c.header_ {
154289		reqHeaders[k] = v
154290	}
154291	reqHeaders.Set("User-Agent", c.s.userAgent())
154292	var body io.Reader = nil
154293	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
154294	if err != nil {
154295		return nil, err
154296	}
154297	reqHeaders.Set("Content-Type", "application/json")
154298	c.urlParams_.Set("alt", alt)
154299	c.urlParams_.Set("prettyPrint", "false")
154300	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
154301	urls += "?" + c.urlParams_.Encode()
154302	req, err := http.NewRequest("PATCH", urls, body)
154303	if err != nil {
154304		return nil, err
154305	}
154306	req.Header = reqHeaders
154307	googleapi.Expand(req.URL, map[string]string{
154308		"project": c.project,
154309		"region":  c.region,
154310		"router":  c.router,
154311	})
154312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154313}
154314
154315// Do executes the "compute.routers.patch" call.
154316// Exactly one of *Operation or error will be non-nil. Any non-2xx
154317// status code is an error. Response headers are in either
154318// *Operation.ServerResponse.Header or (if a response was returned at
154319// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154320// to check whether the returned error was because
154321// http.StatusNotModified was returned.
154322func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154323	gensupport.SetOptions(c.urlParams_, opts...)
154324	res, err := c.doRequest("json")
154325	if res != nil && res.StatusCode == http.StatusNotModified {
154326		if res.Body != nil {
154327			res.Body.Close()
154328		}
154329		return nil, &googleapi.Error{
154330			Code:   res.StatusCode,
154331			Header: res.Header,
154332		}
154333	}
154334	if err != nil {
154335		return nil, err
154336	}
154337	defer googleapi.CloseBody(res)
154338	if err := googleapi.CheckResponse(res); err != nil {
154339		return nil, err
154340	}
154341	ret := &Operation{
154342		ServerResponse: googleapi.ServerResponse{
154343			Header:         res.Header,
154344			HTTPStatusCode: res.StatusCode,
154345		},
154346	}
154347	target := &ret
154348	if err := gensupport.DecodeResponse(target, res); err != nil {
154349		return nil, err
154350	}
154351	return ret, nil
154352	// {
154353	//   "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.",
154354	//   "httpMethod": "PATCH",
154355	//   "id": "compute.routers.patch",
154356	//   "parameterOrder": [
154357	//     "project",
154358	//     "region",
154359	//     "router"
154360	//   ],
154361	//   "parameters": {
154362	//     "project": {
154363	//       "description": "Project ID for this request.",
154364	//       "location": "path",
154365	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154366	//       "required": true,
154367	//       "type": "string"
154368	//     },
154369	//     "region": {
154370	//       "description": "Name of the region for this request.",
154371	//       "location": "path",
154372	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154373	//       "required": true,
154374	//       "type": "string"
154375	//     },
154376	//     "requestId": {
154377	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154378	//       "location": "query",
154379	//       "type": "string"
154380	//     },
154381	//     "router": {
154382	//       "description": "Name of the Router resource to patch.",
154383	//       "location": "path",
154384	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154385	//       "required": true,
154386	//       "type": "string"
154387	//     }
154388	//   },
154389	//   "path": "projects/{project}/regions/{region}/routers/{router}",
154390	//   "request": {
154391	//     "$ref": "Router"
154392	//   },
154393	//   "response": {
154394	//     "$ref": "Operation"
154395	//   },
154396	//   "scopes": [
154397	//     "https://www.googleapis.com/auth/cloud-platform",
154398	//     "https://www.googleapis.com/auth/compute"
154399	//   ]
154400	// }
154401
154402}
154403
154404// method id "compute.routers.preview":
154405
154406type RoutersPreviewCall struct {
154407	s          *Service
154408	project    string
154409	region     string
154410	router     string
154411	router2    *Router
154412	urlParams_ gensupport.URLParams
154413	ctx_       context.Context
154414	header_    http.Header
154415}
154416
154417// Preview: Preview fields auto-generated during router create and
154418// update operations. Calling this method does NOT create or update the
154419// router.
154420//
154421// - project: Project ID for this request.
154422// - region: Name of the region for this request.
154423// - router: Name of the Router resource to query.
154424func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
154425	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154426	c.project = project
154427	c.region = region
154428	c.router = router
154429	c.router2 = router2
154430	return c
154431}
154432
154433// Fields allows partial responses to be retrieved. See
154434// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154435// for more information.
154436func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
154437	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154438	return c
154439}
154440
154441// Context sets the context to be used in this call's Do method. Any
154442// pending HTTP request will be aborted if the provided context is
154443// canceled.
154444func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
154445	c.ctx_ = ctx
154446	return c
154447}
154448
154449// Header returns an http.Header that can be modified by the caller to
154450// add HTTP headers to the request.
154451func (c *RoutersPreviewCall) Header() http.Header {
154452	if c.header_ == nil {
154453		c.header_ = make(http.Header)
154454	}
154455	return c.header_
154456}
154457
154458func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
154459	reqHeaders := make(http.Header)
154460	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154461	for k, v := range c.header_ {
154462		reqHeaders[k] = v
154463	}
154464	reqHeaders.Set("User-Agent", c.s.userAgent())
154465	var body io.Reader = nil
154466	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
154467	if err != nil {
154468		return nil, err
154469	}
154470	reqHeaders.Set("Content-Type", "application/json")
154471	c.urlParams_.Set("alt", alt)
154472	c.urlParams_.Set("prettyPrint", "false")
154473	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/preview")
154474	urls += "?" + c.urlParams_.Encode()
154475	req, err := http.NewRequest("POST", urls, body)
154476	if err != nil {
154477		return nil, err
154478	}
154479	req.Header = reqHeaders
154480	googleapi.Expand(req.URL, map[string]string{
154481		"project": c.project,
154482		"region":  c.region,
154483		"router":  c.router,
154484	})
154485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154486}
154487
154488// Do executes the "compute.routers.preview" call.
154489// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
154490// non-2xx status code is an error. Response headers are in either
154491// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
154492// returned at all) in error.(*googleapi.Error).Header. Use
154493// googleapi.IsNotModified to check whether the returned error was
154494// because http.StatusNotModified was returned.
154495func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
154496	gensupport.SetOptions(c.urlParams_, opts...)
154497	res, err := c.doRequest("json")
154498	if res != nil && res.StatusCode == http.StatusNotModified {
154499		if res.Body != nil {
154500			res.Body.Close()
154501		}
154502		return nil, &googleapi.Error{
154503			Code:   res.StatusCode,
154504			Header: res.Header,
154505		}
154506	}
154507	if err != nil {
154508		return nil, err
154509	}
154510	defer googleapi.CloseBody(res)
154511	if err := googleapi.CheckResponse(res); err != nil {
154512		return nil, err
154513	}
154514	ret := &RoutersPreviewResponse{
154515		ServerResponse: googleapi.ServerResponse{
154516			Header:         res.Header,
154517			HTTPStatusCode: res.StatusCode,
154518		},
154519	}
154520	target := &ret
154521	if err := gensupport.DecodeResponse(target, res); err != nil {
154522		return nil, err
154523	}
154524	return ret, nil
154525	// {
154526	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
154527	//   "httpMethod": "POST",
154528	//   "id": "compute.routers.preview",
154529	//   "parameterOrder": [
154530	//     "project",
154531	//     "region",
154532	//     "router"
154533	//   ],
154534	//   "parameters": {
154535	//     "project": {
154536	//       "description": "Project ID for this request.",
154537	//       "location": "path",
154538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154539	//       "required": true,
154540	//       "type": "string"
154541	//     },
154542	//     "region": {
154543	//       "description": "Name of the region for this request.",
154544	//       "location": "path",
154545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154546	//       "required": true,
154547	//       "type": "string"
154548	//     },
154549	//     "router": {
154550	//       "description": "Name of the Router resource to query.",
154551	//       "location": "path",
154552	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154553	//       "required": true,
154554	//       "type": "string"
154555	//     }
154556	//   },
154557	//   "path": "projects/{project}/regions/{region}/routers/{router}/preview",
154558	//   "request": {
154559	//     "$ref": "Router"
154560	//   },
154561	//   "response": {
154562	//     "$ref": "RoutersPreviewResponse"
154563	//   },
154564	//   "scopes": [
154565	//     "https://www.googleapis.com/auth/cloud-platform",
154566	//     "https://www.googleapis.com/auth/compute",
154567	//     "https://www.googleapis.com/auth/compute.readonly"
154568	//   ]
154569	// }
154570
154571}
154572
154573// method id "compute.routers.testIamPermissions":
154574
154575type RoutersTestIamPermissionsCall struct {
154576	s                      *Service
154577	project                string
154578	region                 string
154579	resource               string
154580	testpermissionsrequest *TestPermissionsRequest
154581	urlParams_             gensupport.URLParams
154582	ctx_                   context.Context
154583	header_                http.Header
154584}
154585
154586// TestIamPermissions: Returns permissions that a caller has on the
154587// specified resource.
154588//
154589// - project: Project ID for this request.
154590// - region: The name of the region for this request.
154591// - resource: Name or id of the resource for this request.
154592func (r *RoutersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutersTestIamPermissionsCall {
154593	c := &RoutersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154594	c.project = project
154595	c.region = region
154596	c.resource = resource
154597	c.testpermissionsrequest = testpermissionsrequest
154598	return c
154599}
154600
154601// Fields allows partial responses to be retrieved. See
154602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154603// for more information.
154604func (c *RoutersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutersTestIamPermissionsCall {
154605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154606	return c
154607}
154608
154609// Context sets the context to be used in this call's Do method. Any
154610// pending HTTP request will be aborted if the provided context is
154611// canceled.
154612func (c *RoutersTestIamPermissionsCall) Context(ctx context.Context) *RoutersTestIamPermissionsCall {
154613	c.ctx_ = ctx
154614	return c
154615}
154616
154617// Header returns an http.Header that can be modified by the caller to
154618// add HTTP headers to the request.
154619func (c *RoutersTestIamPermissionsCall) Header() http.Header {
154620	if c.header_ == nil {
154621		c.header_ = make(http.Header)
154622	}
154623	return c.header_
154624}
154625
154626func (c *RoutersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
154627	reqHeaders := make(http.Header)
154628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154629	for k, v := range c.header_ {
154630		reqHeaders[k] = v
154631	}
154632	reqHeaders.Set("User-Agent", c.s.userAgent())
154633	var body io.Reader = nil
154634	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
154635	if err != nil {
154636		return nil, err
154637	}
154638	reqHeaders.Set("Content-Type", "application/json")
154639	c.urlParams_.Set("alt", alt)
154640	c.urlParams_.Set("prettyPrint", "false")
154641	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{resource}/testIamPermissions")
154642	urls += "?" + c.urlParams_.Encode()
154643	req, err := http.NewRequest("POST", urls, body)
154644	if err != nil {
154645		return nil, err
154646	}
154647	req.Header = reqHeaders
154648	googleapi.Expand(req.URL, map[string]string{
154649		"project":  c.project,
154650		"region":   c.region,
154651		"resource": c.resource,
154652	})
154653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154654}
154655
154656// Do executes the "compute.routers.testIamPermissions" call.
154657// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
154658// non-2xx status code is an error. Response headers are in either
154659// *TestPermissionsResponse.ServerResponse.Header or (if a response was
154660// returned at all) in error.(*googleapi.Error).Header. Use
154661// googleapi.IsNotModified to check whether the returned error was
154662// because http.StatusNotModified was returned.
154663func (c *RoutersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
154664	gensupport.SetOptions(c.urlParams_, opts...)
154665	res, err := c.doRequest("json")
154666	if res != nil && res.StatusCode == http.StatusNotModified {
154667		if res.Body != nil {
154668			res.Body.Close()
154669		}
154670		return nil, &googleapi.Error{
154671			Code:   res.StatusCode,
154672			Header: res.Header,
154673		}
154674	}
154675	if err != nil {
154676		return nil, err
154677	}
154678	defer googleapi.CloseBody(res)
154679	if err := googleapi.CheckResponse(res); err != nil {
154680		return nil, err
154681	}
154682	ret := &TestPermissionsResponse{
154683		ServerResponse: googleapi.ServerResponse{
154684			Header:         res.Header,
154685			HTTPStatusCode: res.StatusCode,
154686		},
154687	}
154688	target := &ret
154689	if err := gensupport.DecodeResponse(target, res); err != nil {
154690		return nil, err
154691	}
154692	return ret, nil
154693	// {
154694	//   "description": "Returns permissions that a caller has on the specified resource.",
154695	//   "httpMethod": "POST",
154696	//   "id": "compute.routers.testIamPermissions",
154697	//   "parameterOrder": [
154698	//     "project",
154699	//     "region",
154700	//     "resource"
154701	//   ],
154702	//   "parameters": {
154703	//     "project": {
154704	//       "description": "Project ID for this request.",
154705	//       "location": "path",
154706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154707	//       "required": true,
154708	//       "type": "string"
154709	//     },
154710	//     "region": {
154711	//       "description": "The name of the region for this request.",
154712	//       "location": "path",
154713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154714	//       "required": true,
154715	//       "type": "string"
154716	//     },
154717	//     "resource": {
154718	//       "description": "Name or id of the resource for this request.",
154719	//       "location": "path",
154720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154721	//       "required": true,
154722	//       "type": "string"
154723	//     }
154724	//   },
154725	//   "path": "projects/{project}/regions/{region}/routers/{resource}/testIamPermissions",
154726	//   "request": {
154727	//     "$ref": "TestPermissionsRequest"
154728	//   },
154729	//   "response": {
154730	//     "$ref": "TestPermissionsResponse"
154731	//   },
154732	//   "scopes": [
154733	//     "https://www.googleapis.com/auth/cloud-platform",
154734	//     "https://www.googleapis.com/auth/compute",
154735	//     "https://www.googleapis.com/auth/compute.readonly"
154736	//   ]
154737	// }
154738
154739}
154740
154741// method id "compute.routers.update":
154742
154743type RoutersUpdateCall struct {
154744	s          *Service
154745	project    string
154746	region     string
154747	router     string
154748	router2    *Router
154749	urlParams_ gensupport.URLParams
154750	ctx_       context.Context
154751	header_    http.Header
154752}
154753
154754// Update: Updates the specified Router resource with the data included
154755// in the request. This method conforms to PUT semantics, which requests
154756// that the state of the target resource be created or replaced with the
154757// state defined by the representation enclosed in the request message
154758// payload.
154759//
154760// - project: Project ID for this request.
154761// - region: Name of the region for this request.
154762// - router: Name of the Router resource to update.
154763func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
154764	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154765	c.project = project
154766	c.region = region
154767	c.router = router
154768	c.router2 = router2
154769	return c
154770}
154771
154772// RequestId sets the optional parameter "requestId": An optional
154773// request ID to identify requests. Specify a unique request ID so that
154774// if you must retry your request, the server will know to ignore the
154775// request if it has already been completed.
154776//
154777// For example, consider a situation where you make an initial request
154778// and the request times out. If you make the request again with the
154779// same request ID, the server can check if original operation with the
154780// same request ID was received, and if so, will ignore the second
154781// request. This prevents clients from accidentally creating duplicate
154782// commitments.
154783//
154784// The request ID must be a valid UUID with the exception that zero UUID
154785// is not supported (00000000-0000-0000-0000-000000000000).
154786func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
154787	c.urlParams_.Set("requestId", requestId)
154788	return c
154789}
154790
154791// Fields allows partial responses to be retrieved. See
154792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154793// for more information.
154794func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
154795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154796	return c
154797}
154798
154799// Context sets the context to be used in this call's Do method. Any
154800// pending HTTP request will be aborted if the provided context is
154801// canceled.
154802func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
154803	c.ctx_ = ctx
154804	return c
154805}
154806
154807// Header returns an http.Header that can be modified by the caller to
154808// add HTTP headers to the request.
154809func (c *RoutersUpdateCall) Header() http.Header {
154810	if c.header_ == nil {
154811		c.header_ = make(http.Header)
154812	}
154813	return c.header_
154814}
154815
154816func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
154817	reqHeaders := make(http.Header)
154818	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154819	for k, v := range c.header_ {
154820		reqHeaders[k] = v
154821	}
154822	reqHeaders.Set("User-Agent", c.s.userAgent())
154823	var body io.Reader = nil
154824	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
154825	if err != nil {
154826		return nil, err
154827	}
154828	reqHeaders.Set("Content-Type", "application/json")
154829	c.urlParams_.Set("alt", alt)
154830	c.urlParams_.Set("prettyPrint", "false")
154831	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
154832	urls += "?" + c.urlParams_.Encode()
154833	req, err := http.NewRequest("PUT", urls, body)
154834	if err != nil {
154835		return nil, err
154836	}
154837	req.Header = reqHeaders
154838	googleapi.Expand(req.URL, map[string]string{
154839		"project": c.project,
154840		"region":  c.region,
154841		"router":  c.router,
154842	})
154843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154844}
154845
154846// Do executes the "compute.routers.update" call.
154847// Exactly one of *Operation or error will be non-nil. Any non-2xx
154848// status code is an error. Response headers are in either
154849// *Operation.ServerResponse.Header or (if a response was returned at
154850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154851// to check whether the returned error was because
154852// http.StatusNotModified was returned.
154853func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154854	gensupport.SetOptions(c.urlParams_, opts...)
154855	res, err := c.doRequest("json")
154856	if res != nil && res.StatusCode == http.StatusNotModified {
154857		if res.Body != nil {
154858			res.Body.Close()
154859		}
154860		return nil, &googleapi.Error{
154861			Code:   res.StatusCode,
154862			Header: res.Header,
154863		}
154864	}
154865	if err != nil {
154866		return nil, err
154867	}
154868	defer googleapi.CloseBody(res)
154869	if err := googleapi.CheckResponse(res); err != nil {
154870		return nil, err
154871	}
154872	ret := &Operation{
154873		ServerResponse: googleapi.ServerResponse{
154874			Header:         res.Header,
154875			HTTPStatusCode: res.StatusCode,
154876		},
154877	}
154878	target := &ret
154879	if err := gensupport.DecodeResponse(target, res); err != nil {
154880		return nil, err
154881	}
154882	return ret, nil
154883	// {
154884	//   "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.",
154885	//   "httpMethod": "PUT",
154886	//   "id": "compute.routers.update",
154887	//   "parameterOrder": [
154888	//     "project",
154889	//     "region",
154890	//     "router"
154891	//   ],
154892	//   "parameters": {
154893	//     "project": {
154894	//       "description": "Project ID for this request.",
154895	//       "location": "path",
154896	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154897	//       "required": true,
154898	//       "type": "string"
154899	//     },
154900	//     "region": {
154901	//       "description": "Name of the region for this request.",
154902	//       "location": "path",
154903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154904	//       "required": true,
154905	//       "type": "string"
154906	//     },
154907	//     "requestId": {
154908	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154909	//       "location": "query",
154910	//       "type": "string"
154911	//     },
154912	//     "router": {
154913	//       "description": "Name of the Router resource to update.",
154914	//       "location": "path",
154915	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154916	//       "required": true,
154917	//       "type": "string"
154918	//     }
154919	//   },
154920	//   "path": "projects/{project}/regions/{region}/routers/{router}",
154921	//   "request": {
154922	//     "$ref": "Router"
154923	//   },
154924	//   "response": {
154925	//     "$ref": "Operation"
154926	//   },
154927	//   "scopes": [
154928	//     "https://www.googleapis.com/auth/cloud-platform",
154929	//     "https://www.googleapis.com/auth/compute"
154930	//   ]
154931	// }
154932
154933}
154934
154935// method id "compute.routes.delete":
154936
154937type RoutesDeleteCall struct {
154938	s          *Service
154939	project    string
154940	route      string
154941	urlParams_ gensupport.URLParams
154942	ctx_       context.Context
154943	header_    http.Header
154944}
154945
154946// Delete: Deletes the specified Route resource.
154947//
154948// - project: Project ID for this request.
154949// - route: Name of the Route resource to delete.
154950// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
154951func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
154952	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154953	c.project = project
154954	c.route = route
154955	return c
154956}
154957
154958// RequestId sets the optional parameter "requestId": An optional
154959// request ID to identify requests. Specify a unique request ID so that
154960// if you must retry your request, the server will know to ignore the
154961// request if it has already been completed.
154962//
154963// For example, consider a situation where you make an initial request
154964// and the request times out. If you make the request again with the
154965// same request ID, the server can check if original operation with the
154966// same request ID was received, and if so, will ignore the second
154967// request. This prevents clients from accidentally creating duplicate
154968// commitments.
154969//
154970// The request ID must be a valid UUID with the exception that zero UUID
154971// is not supported (00000000-0000-0000-0000-000000000000).
154972func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
154973	c.urlParams_.Set("requestId", requestId)
154974	return c
154975}
154976
154977// Fields allows partial responses to be retrieved. See
154978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154979// for more information.
154980func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
154981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154982	return c
154983}
154984
154985// Context sets the context to be used in this call's Do method. Any
154986// pending HTTP request will be aborted if the provided context is
154987// canceled.
154988func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
154989	c.ctx_ = ctx
154990	return c
154991}
154992
154993// Header returns an http.Header that can be modified by the caller to
154994// add HTTP headers to the request.
154995func (c *RoutesDeleteCall) Header() http.Header {
154996	if c.header_ == nil {
154997		c.header_ = make(http.Header)
154998	}
154999	return c.header_
155000}
155001
155002func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
155003	reqHeaders := make(http.Header)
155004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155005	for k, v := range c.header_ {
155006		reqHeaders[k] = v
155007	}
155008	reqHeaders.Set("User-Agent", c.s.userAgent())
155009	var body io.Reader = nil
155010	c.urlParams_.Set("alt", alt)
155011	c.urlParams_.Set("prettyPrint", "false")
155012	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
155013	urls += "?" + c.urlParams_.Encode()
155014	req, err := http.NewRequest("DELETE", urls, body)
155015	if err != nil {
155016		return nil, err
155017	}
155018	req.Header = reqHeaders
155019	googleapi.Expand(req.URL, map[string]string{
155020		"project": c.project,
155021		"route":   c.route,
155022	})
155023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155024}
155025
155026// Do executes the "compute.routes.delete" call.
155027// Exactly one of *Operation or error will be non-nil. Any non-2xx
155028// status code is an error. Response headers are in either
155029// *Operation.ServerResponse.Header or (if a response was returned at
155030// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155031// to check whether the returned error was because
155032// http.StatusNotModified was returned.
155033func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155034	gensupport.SetOptions(c.urlParams_, opts...)
155035	res, err := c.doRequest("json")
155036	if res != nil && res.StatusCode == http.StatusNotModified {
155037		if res.Body != nil {
155038			res.Body.Close()
155039		}
155040		return nil, &googleapi.Error{
155041			Code:   res.StatusCode,
155042			Header: res.Header,
155043		}
155044	}
155045	if err != nil {
155046		return nil, err
155047	}
155048	defer googleapi.CloseBody(res)
155049	if err := googleapi.CheckResponse(res); err != nil {
155050		return nil, err
155051	}
155052	ret := &Operation{
155053		ServerResponse: googleapi.ServerResponse{
155054			Header:         res.Header,
155055			HTTPStatusCode: res.StatusCode,
155056		},
155057	}
155058	target := &ret
155059	if err := gensupport.DecodeResponse(target, res); err != nil {
155060		return nil, err
155061	}
155062	return ret, nil
155063	// {
155064	//   "description": "Deletes the specified Route resource.",
155065	//   "httpMethod": "DELETE",
155066	//   "id": "compute.routes.delete",
155067	//   "parameterOrder": [
155068	//     "project",
155069	//     "route"
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	//     "requestId": {
155080	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155081	//       "location": "query",
155082	//       "type": "string"
155083	//     },
155084	//     "route": {
155085	//       "description": "Name of the Route resource to delete.",
155086	//       "location": "path",
155087	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155088	//       "required": true,
155089	//       "type": "string"
155090	//     }
155091	//   },
155092	//   "path": "projects/{project}/global/routes/{route}",
155093	//   "response": {
155094	//     "$ref": "Operation"
155095	//   },
155096	//   "scopes": [
155097	//     "https://www.googleapis.com/auth/cloud-platform",
155098	//     "https://www.googleapis.com/auth/compute"
155099	//   ]
155100	// }
155101
155102}
155103
155104// method id "compute.routes.get":
155105
155106type RoutesGetCall struct {
155107	s            *Service
155108	project      string
155109	route        string
155110	urlParams_   gensupport.URLParams
155111	ifNoneMatch_ string
155112	ctx_         context.Context
155113	header_      http.Header
155114}
155115
155116// Get: Returns the specified Route resource. Gets a list of available
155117// routes by making a list() request.
155118//
155119// - project: Project ID for this request.
155120// - route: Name of the Route resource to return.
155121// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
155122func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
155123	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155124	c.project = project
155125	c.route = route
155126	return c
155127}
155128
155129// Fields allows partial responses to be retrieved. See
155130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155131// for more information.
155132func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
155133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155134	return c
155135}
155136
155137// IfNoneMatch sets the optional parameter which makes the operation
155138// fail if the object's ETag matches the given value. This is useful for
155139// getting updates only after the object has changed since the last
155140// request. Use googleapi.IsNotModified to check whether the response
155141// error from Do is the result of In-None-Match.
155142func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
155143	c.ifNoneMatch_ = entityTag
155144	return c
155145}
155146
155147// Context sets the context to be used in this call's Do method. Any
155148// pending HTTP request will be aborted if the provided context is
155149// canceled.
155150func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
155151	c.ctx_ = ctx
155152	return c
155153}
155154
155155// Header returns an http.Header that can be modified by the caller to
155156// add HTTP headers to the request.
155157func (c *RoutesGetCall) Header() http.Header {
155158	if c.header_ == nil {
155159		c.header_ = make(http.Header)
155160	}
155161	return c.header_
155162}
155163
155164func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
155165	reqHeaders := make(http.Header)
155166	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155167	for k, v := range c.header_ {
155168		reqHeaders[k] = v
155169	}
155170	reqHeaders.Set("User-Agent", c.s.userAgent())
155171	if c.ifNoneMatch_ != "" {
155172		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155173	}
155174	var body io.Reader = nil
155175	c.urlParams_.Set("alt", alt)
155176	c.urlParams_.Set("prettyPrint", "false")
155177	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
155178	urls += "?" + c.urlParams_.Encode()
155179	req, err := http.NewRequest("GET", urls, body)
155180	if err != nil {
155181		return nil, err
155182	}
155183	req.Header = reqHeaders
155184	googleapi.Expand(req.URL, map[string]string{
155185		"project": c.project,
155186		"route":   c.route,
155187	})
155188	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155189}
155190
155191// Do executes the "compute.routes.get" call.
155192// Exactly one of *Route or error will be non-nil. Any non-2xx status
155193// code is an error. Response headers are in either
155194// *Route.ServerResponse.Header or (if a response was returned at all)
155195// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
155196// check whether the returned error was because http.StatusNotModified
155197// was returned.
155198func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
155199	gensupport.SetOptions(c.urlParams_, opts...)
155200	res, err := c.doRequest("json")
155201	if res != nil && res.StatusCode == http.StatusNotModified {
155202		if res.Body != nil {
155203			res.Body.Close()
155204		}
155205		return nil, &googleapi.Error{
155206			Code:   res.StatusCode,
155207			Header: res.Header,
155208		}
155209	}
155210	if err != nil {
155211		return nil, err
155212	}
155213	defer googleapi.CloseBody(res)
155214	if err := googleapi.CheckResponse(res); err != nil {
155215		return nil, err
155216	}
155217	ret := &Route{
155218		ServerResponse: googleapi.ServerResponse{
155219			Header:         res.Header,
155220			HTTPStatusCode: res.StatusCode,
155221		},
155222	}
155223	target := &ret
155224	if err := gensupport.DecodeResponse(target, res); err != nil {
155225		return nil, err
155226	}
155227	return ret, nil
155228	// {
155229	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
155230	//   "httpMethod": "GET",
155231	//   "id": "compute.routes.get",
155232	//   "parameterOrder": [
155233	//     "project",
155234	//     "route"
155235	//   ],
155236	//   "parameters": {
155237	//     "project": {
155238	//       "description": "Project ID for this request.",
155239	//       "location": "path",
155240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155241	//       "required": true,
155242	//       "type": "string"
155243	//     },
155244	//     "route": {
155245	//       "description": "Name of the Route resource to return.",
155246	//       "location": "path",
155247	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155248	//       "required": true,
155249	//       "type": "string"
155250	//     }
155251	//   },
155252	//   "path": "projects/{project}/global/routes/{route}",
155253	//   "response": {
155254	//     "$ref": "Route"
155255	//   },
155256	//   "scopes": [
155257	//     "https://www.googleapis.com/auth/cloud-platform",
155258	//     "https://www.googleapis.com/auth/compute",
155259	//     "https://www.googleapis.com/auth/compute.readonly"
155260	//   ]
155261	// }
155262
155263}
155264
155265// method id "compute.routes.insert":
155266
155267type RoutesInsertCall struct {
155268	s          *Service
155269	project    string
155270	route      *Route
155271	urlParams_ gensupport.URLParams
155272	ctx_       context.Context
155273	header_    http.Header
155274}
155275
155276// Insert: Creates a Route resource in the specified project using the
155277// data included in the request.
155278//
155279// - project: Project ID for this request.
155280// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
155281func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
155282	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155283	c.project = project
155284	c.route = route
155285	return c
155286}
155287
155288// RequestId sets the optional parameter "requestId": An optional
155289// request ID to identify requests. Specify a unique request ID so that
155290// if you must retry your request, the server will know to ignore the
155291// request if it has already been completed.
155292//
155293// For example, consider a situation where you make an initial request
155294// and the request times out. If you make the request again with the
155295// same request ID, the server can check if original operation with the
155296// same request ID was received, and if so, will ignore the second
155297// request. This prevents clients from accidentally creating duplicate
155298// commitments.
155299//
155300// The request ID must be a valid UUID with the exception that zero UUID
155301// is not supported (00000000-0000-0000-0000-000000000000).
155302func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
155303	c.urlParams_.Set("requestId", requestId)
155304	return c
155305}
155306
155307// Fields allows partial responses to be retrieved. See
155308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155309// for more information.
155310func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
155311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155312	return c
155313}
155314
155315// Context sets the context to be used in this call's Do method. Any
155316// pending HTTP request will be aborted if the provided context is
155317// canceled.
155318func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
155319	c.ctx_ = ctx
155320	return c
155321}
155322
155323// Header returns an http.Header that can be modified by the caller to
155324// add HTTP headers to the request.
155325func (c *RoutesInsertCall) Header() http.Header {
155326	if c.header_ == nil {
155327		c.header_ = make(http.Header)
155328	}
155329	return c.header_
155330}
155331
155332func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
155333	reqHeaders := make(http.Header)
155334	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155335	for k, v := range c.header_ {
155336		reqHeaders[k] = v
155337	}
155338	reqHeaders.Set("User-Agent", c.s.userAgent())
155339	var body io.Reader = nil
155340	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
155341	if err != nil {
155342		return nil, err
155343	}
155344	reqHeaders.Set("Content-Type", "application/json")
155345	c.urlParams_.Set("alt", alt)
155346	c.urlParams_.Set("prettyPrint", "false")
155347	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
155348	urls += "?" + c.urlParams_.Encode()
155349	req, err := http.NewRequest("POST", urls, body)
155350	if err != nil {
155351		return nil, err
155352	}
155353	req.Header = reqHeaders
155354	googleapi.Expand(req.URL, map[string]string{
155355		"project": c.project,
155356	})
155357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155358}
155359
155360// Do executes the "compute.routes.insert" call.
155361// Exactly one of *Operation or error will be non-nil. Any non-2xx
155362// status code is an error. Response headers are in either
155363// *Operation.ServerResponse.Header or (if a response was returned at
155364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155365// to check whether the returned error was because
155366// http.StatusNotModified was returned.
155367func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155368	gensupport.SetOptions(c.urlParams_, opts...)
155369	res, err := c.doRequest("json")
155370	if res != nil && res.StatusCode == http.StatusNotModified {
155371		if res.Body != nil {
155372			res.Body.Close()
155373		}
155374		return nil, &googleapi.Error{
155375			Code:   res.StatusCode,
155376			Header: res.Header,
155377		}
155378	}
155379	if err != nil {
155380		return nil, err
155381	}
155382	defer googleapi.CloseBody(res)
155383	if err := googleapi.CheckResponse(res); err != nil {
155384		return nil, err
155385	}
155386	ret := &Operation{
155387		ServerResponse: googleapi.ServerResponse{
155388			Header:         res.Header,
155389			HTTPStatusCode: res.StatusCode,
155390		},
155391	}
155392	target := &ret
155393	if err := gensupport.DecodeResponse(target, res); err != nil {
155394		return nil, err
155395	}
155396	return ret, nil
155397	// {
155398	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
155399	//   "httpMethod": "POST",
155400	//   "id": "compute.routes.insert",
155401	//   "parameterOrder": [
155402	//     "project"
155403	//   ],
155404	//   "parameters": {
155405	//     "project": {
155406	//       "description": "Project ID for this request.",
155407	//       "location": "path",
155408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155409	//       "required": true,
155410	//       "type": "string"
155411	//     },
155412	//     "requestId": {
155413	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155414	//       "location": "query",
155415	//       "type": "string"
155416	//     }
155417	//   },
155418	//   "path": "projects/{project}/global/routes",
155419	//   "request": {
155420	//     "$ref": "Route"
155421	//   },
155422	//   "response": {
155423	//     "$ref": "Operation"
155424	//   },
155425	//   "scopes": [
155426	//     "https://www.googleapis.com/auth/cloud-platform",
155427	//     "https://www.googleapis.com/auth/compute"
155428	//   ]
155429	// }
155430
155431}
155432
155433// method id "compute.routes.list":
155434
155435type RoutesListCall struct {
155436	s            *Service
155437	project      string
155438	urlParams_   gensupport.URLParams
155439	ifNoneMatch_ string
155440	ctx_         context.Context
155441	header_      http.Header
155442}
155443
155444// List: Retrieves the list of Route resources available to the
155445// specified project.
155446//
155447// - project: Project ID for this request.
155448// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
155449func (r *RoutesService) List(project string) *RoutesListCall {
155450	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155451	c.project = project
155452	return c
155453}
155454
155455// Filter sets the optional parameter "filter": A filter expression that
155456// filters resources listed in the response. The expression must specify
155457// the field name, a comparison operator, and the value that you want to
155458// use for filtering. The value must be a string, a number, or a
155459// boolean. The comparison operator must be either `=`, `!=`, `>`, or
155460// `<`.
155461//
155462// For example, if you are filtering Compute Engine instances, you can
155463// exclude instances named `example-instance` by specifying `name !=
155464// example-instance`.
155465//
155466// You can also filter nested fields. For example, you could specify
155467// `scheduling.automaticRestart = false` to include instances only if
155468// they are not scheduled for automatic restarts. You can use filtering
155469// on nested fields to filter based on resource labels.
155470//
155471// To filter on multiple expressions, provide each separate expression
155472// within parentheses. For example: ``` (scheduling.automaticRestart =
155473// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
155474// is an `AND` expression. However, you can include `AND` and `OR`
155475// expressions explicitly. For example: ``` (cpuPlatform = "Intel
155476// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
155477// (scheduling.automaticRestart = true) ```
155478func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
155479	c.urlParams_.Set("filter", filter)
155480	return c
155481}
155482
155483// MaxResults sets the optional parameter "maxResults": The maximum
155484// number of results per page that should be returned. If the number of
155485// available results is larger than `maxResults`, Compute Engine returns
155486// a `nextPageToken` that can be used to get the next page of results in
155487// subsequent list requests. Acceptable values are `0` to `500`,
155488// inclusive. (Default: `500`)
155489func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
155490	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155491	return c
155492}
155493
155494// OrderBy sets the optional parameter "orderBy": Sorts list results by
155495// a certain order. By default, results are returned in alphanumerical
155496// order based on the resource name.
155497//
155498// You can also sort results in descending order based on the creation
155499// timestamp using `orderBy="creationTimestamp desc". This sorts
155500// results based on the `creationTimestamp` field in reverse
155501// chronological order (newest result first). Use this to sort resources
155502// like operations so that the newest operation is returned
155503// first.
155504//
155505// Currently, only sorting by `name` or `creationTimestamp desc` is
155506// supported.
155507func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
155508	c.urlParams_.Set("orderBy", orderBy)
155509	return c
155510}
155511
155512// PageToken sets the optional parameter "pageToken": Specifies a page
155513// token to use. Set `pageToken` to the `nextPageToken` returned by a
155514// previous list request to get the next page of results.
155515func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
155516	c.urlParams_.Set("pageToken", pageToken)
155517	return c
155518}
155519
155520// ReturnPartialSuccess sets the optional parameter
155521// "returnPartialSuccess": Opt-in for partial success behavior which
155522// provides partial results in case of failure. The default value is
155523// false.
155524func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutesListCall {
155525	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
155526	return c
155527}
155528
155529// Fields allows partial responses to be retrieved. See
155530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155531// for more information.
155532func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
155533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155534	return c
155535}
155536
155537// IfNoneMatch sets the optional parameter which makes the operation
155538// fail if the object's ETag matches the given value. This is useful for
155539// getting updates only after the object has changed since the last
155540// request. Use googleapi.IsNotModified to check whether the response
155541// error from Do is the result of In-None-Match.
155542func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
155543	c.ifNoneMatch_ = entityTag
155544	return c
155545}
155546
155547// Context sets the context to be used in this call's Do method. Any
155548// pending HTTP request will be aborted if the provided context is
155549// canceled.
155550func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
155551	c.ctx_ = ctx
155552	return c
155553}
155554
155555// Header returns an http.Header that can be modified by the caller to
155556// add HTTP headers to the request.
155557func (c *RoutesListCall) Header() http.Header {
155558	if c.header_ == nil {
155559		c.header_ = make(http.Header)
155560	}
155561	return c.header_
155562}
155563
155564func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
155565	reqHeaders := make(http.Header)
155566	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155567	for k, v := range c.header_ {
155568		reqHeaders[k] = v
155569	}
155570	reqHeaders.Set("User-Agent", c.s.userAgent())
155571	if c.ifNoneMatch_ != "" {
155572		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155573	}
155574	var body io.Reader = nil
155575	c.urlParams_.Set("alt", alt)
155576	c.urlParams_.Set("prettyPrint", "false")
155577	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
155578	urls += "?" + c.urlParams_.Encode()
155579	req, err := http.NewRequest("GET", urls, body)
155580	if err != nil {
155581		return nil, err
155582	}
155583	req.Header = reqHeaders
155584	googleapi.Expand(req.URL, map[string]string{
155585		"project": c.project,
155586	})
155587	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155588}
155589
155590// Do executes the "compute.routes.list" call.
155591// Exactly one of *RouteList or error will be non-nil. Any non-2xx
155592// status code is an error. Response headers are in either
155593// *RouteList.ServerResponse.Header or (if a response was returned at
155594// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155595// to check whether the returned error was because
155596// http.StatusNotModified was returned.
155597func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
155598	gensupport.SetOptions(c.urlParams_, opts...)
155599	res, err := c.doRequest("json")
155600	if res != nil && res.StatusCode == http.StatusNotModified {
155601		if res.Body != nil {
155602			res.Body.Close()
155603		}
155604		return nil, &googleapi.Error{
155605			Code:   res.StatusCode,
155606			Header: res.Header,
155607		}
155608	}
155609	if err != nil {
155610		return nil, err
155611	}
155612	defer googleapi.CloseBody(res)
155613	if err := googleapi.CheckResponse(res); err != nil {
155614		return nil, err
155615	}
155616	ret := &RouteList{
155617		ServerResponse: googleapi.ServerResponse{
155618			Header:         res.Header,
155619			HTTPStatusCode: res.StatusCode,
155620		},
155621	}
155622	target := &ret
155623	if err := gensupport.DecodeResponse(target, res); err != nil {
155624		return nil, err
155625	}
155626	return ret, nil
155627	// {
155628	//   "description": "Retrieves the list of Route resources available to the specified project.",
155629	//   "httpMethod": "GET",
155630	//   "id": "compute.routes.list",
155631	//   "parameterOrder": [
155632	//     "project"
155633	//   ],
155634	//   "parameters": {
155635	//     "filter": {
155636	//       "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) ```",
155637	//       "location": "query",
155638	//       "type": "string"
155639	//     },
155640	//     "maxResults": {
155641	//       "default": "500",
155642	//       "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`)",
155643	//       "format": "uint32",
155644	//       "location": "query",
155645	//       "minimum": "0",
155646	//       "type": "integer"
155647	//     },
155648	//     "orderBy": {
155649	//       "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.",
155650	//       "location": "query",
155651	//       "type": "string"
155652	//     },
155653	//     "pageToken": {
155654	//       "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.",
155655	//       "location": "query",
155656	//       "type": "string"
155657	//     },
155658	//     "project": {
155659	//       "description": "Project ID for this request.",
155660	//       "location": "path",
155661	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155662	//       "required": true,
155663	//       "type": "string"
155664	//     },
155665	//     "returnPartialSuccess": {
155666	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
155667	//       "location": "query",
155668	//       "type": "boolean"
155669	//     }
155670	//   },
155671	//   "path": "projects/{project}/global/routes",
155672	//   "response": {
155673	//     "$ref": "RouteList"
155674	//   },
155675	//   "scopes": [
155676	//     "https://www.googleapis.com/auth/cloud-platform",
155677	//     "https://www.googleapis.com/auth/compute",
155678	//     "https://www.googleapis.com/auth/compute.readonly"
155679	//   ]
155680	// }
155681
155682}
155683
155684// Pages invokes f for each page of results.
155685// A non-nil error returned from f will halt the iteration.
155686// The provided context supersedes any context provided to the Context method.
155687func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
155688	c.ctx_ = ctx
155689	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155690	for {
155691		x, err := c.Do()
155692		if err != nil {
155693			return err
155694		}
155695		if err := f(x); err != nil {
155696			return err
155697		}
155698		if x.NextPageToken == "" {
155699			return nil
155700		}
155701		c.PageToken(x.NextPageToken)
155702	}
155703}
155704
155705// method id "compute.routes.testIamPermissions":
155706
155707type RoutesTestIamPermissionsCall struct {
155708	s                      *Service
155709	project                string
155710	resource               string
155711	testpermissionsrequest *TestPermissionsRequest
155712	urlParams_             gensupport.URLParams
155713	ctx_                   context.Context
155714	header_                http.Header
155715}
155716
155717// TestIamPermissions: Returns permissions that a caller has on the
155718// specified resource.
155719//
155720// - project: Project ID for this request.
155721// - resource: Name or id of the resource for this request.
155722func (r *RoutesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutesTestIamPermissionsCall {
155723	c := &RoutesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155724	c.project = project
155725	c.resource = resource
155726	c.testpermissionsrequest = testpermissionsrequest
155727	return c
155728}
155729
155730// Fields allows partial responses to be retrieved. See
155731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155732// for more information.
155733func (c *RoutesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutesTestIamPermissionsCall {
155734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155735	return c
155736}
155737
155738// Context sets the context to be used in this call's Do method. Any
155739// pending HTTP request will be aborted if the provided context is
155740// canceled.
155741func (c *RoutesTestIamPermissionsCall) Context(ctx context.Context) *RoutesTestIamPermissionsCall {
155742	c.ctx_ = ctx
155743	return c
155744}
155745
155746// Header returns an http.Header that can be modified by the caller to
155747// add HTTP headers to the request.
155748func (c *RoutesTestIamPermissionsCall) Header() http.Header {
155749	if c.header_ == nil {
155750		c.header_ = make(http.Header)
155751	}
155752	return c.header_
155753}
155754
155755func (c *RoutesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
155756	reqHeaders := make(http.Header)
155757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155758	for k, v := range c.header_ {
155759		reqHeaders[k] = v
155760	}
155761	reqHeaders.Set("User-Agent", c.s.userAgent())
155762	var body io.Reader = nil
155763	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
155764	if err != nil {
155765		return nil, err
155766	}
155767	reqHeaders.Set("Content-Type", "application/json")
155768	c.urlParams_.Set("alt", alt)
155769	c.urlParams_.Set("prettyPrint", "false")
155770	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{resource}/testIamPermissions")
155771	urls += "?" + c.urlParams_.Encode()
155772	req, err := http.NewRequest("POST", urls, body)
155773	if err != nil {
155774		return nil, err
155775	}
155776	req.Header = reqHeaders
155777	googleapi.Expand(req.URL, map[string]string{
155778		"project":  c.project,
155779		"resource": c.resource,
155780	})
155781	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155782}
155783
155784// Do executes the "compute.routes.testIamPermissions" call.
155785// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
155786// non-2xx status code is an error. Response headers are in either
155787// *TestPermissionsResponse.ServerResponse.Header or (if a response was
155788// returned at all) in error.(*googleapi.Error).Header. Use
155789// googleapi.IsNotModified to check whether the returned error was
155790// because http.StatusNotModified was returned.
155791func (c *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
155792	gensupport.SetOptions(c.urlParams_, opts...)
155793	res, err := c.doRequest("json")
155794	if res != nil && res.StatusCode == http.StatusNotModified {
155795		if res.Body != nil {
155796			res.Body.Close()
155797		}
155798		return nil, &googleapi.Error{
155799			Code:   res.StatusCode,
155800			Header: res.Header,
155801		}
155802	}
155803	if err != nil {
155804		return nil, err
155805	}
155806	defer googleapi.CloseBody(res)
155807	if err := googleapi.CheckResponse(res); err != nil {
155808		return nil, err
155809	}
155810	ret := &TestPermissionsResponse{
155811		ServerResponse: googleapi.ServerResponse{
155812			Header:         res.Header,
155813			HTTPStatusCode: res.StatusCode,
155814		},
155815	}
155816	target := &ret
155817	if err := gensupport.DecodeResponse(target, res); err != nil {
155818		return nil, err
155819	}
155820	return ret, nil
155821	// {
155822	//   "description": "Returns permissions that a caller has on the specified resource.",
155823	//   "httpMethod": "POST",
155824	//   "id": "compute.routes.testIamPermissions",
155825	//   "parameterOrder": [
155826	//     "project",
155827	//     "resource"
155828	//   ],
155829	//   "parameters": {
155830	//     "project": {
155831	//       "description": "Project ID for this request.",
155832	//       "location": "path",
155833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155834	//       "required": true,
155835	//       "type": "string"
155836	//     },
155837	//     "resource": {
155838	//       "description": "Name or id of the resource for this request.",
155839	//       "location": "path",
155840	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155841	//       "required": true,
155842	//       "type": "string"
155843	//     }
155844	//   },
155845	//   "path": "projects/{project}/global/routes/{resource}/testIamPermissions",
155846	//   "request": {
155847	//     "$ref": "TestPermissionsRequest"
155848	//   },
155849	//   "response": {
155850	//     "$ref": "TestPermissionsResponse"
155851	//   },
155852	//   "scopes": [
155853	//     "https://www.googleapis.com/auth/cloud-platform",
155854	//     "https://www.googleapis.com/auth/compute",
155855	//     "https://www.googleapis.com/auth/compute.readonly"
155856	//   ]
155857	// }
155858
155859}
155860
155861// method id "compute.securityPolicies.addRule":
155862
155863type SecurityPoliciesAddRuleCall struct {
155864	s                  *Service
155865	project            string
155866	securityPolicy     string
155867	securitypolicyrule *SecurityPolicyRule
155868	urlParams_         gensupport.URLParams
155869	ctx_               context.Context
155870	header_            http.Header
155871}
155872
155873// AddRule: Inserts a rule into a security policy.
155874//
155875// - project: Project ID for this request.
155876// - securityPolicy: Name of the security policy to update.
155877func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
155878	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155879	c.project = project
155880	c.securityPolicy = securityPolicy
155881	c.securitypolicyrule = securitypolicyrule
155882	return c
155883}
155884
155885// ValidateOnly sets the optional parameter "validateOnly": If true, the
155886// request will not be committed.
155887func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall {
155888	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
155889	return c
155890}
155891
155892// Fields allows partial responses to be retrieved. See
155893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155894// for more information.
155895func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
155896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155897	return c
155898}
155899
155900// Context sets the context to be used in this call's Do method. Any
155901// pending HTTP request will be aborted if the provided context is
155902// canceled.
155903func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
155904	c.ctx_ = ctx
155905	return c
155906}
155907
155908// Header returns an http.Header that can be modified by the caller to
155909// add HTTP headers to the request.
155910func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
155911	if c.header_ == nil {
155912		c.header_ = make(http.Header)
155913	}
155914	return c.header_
155915}
155916
155917func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
155918	reqHeaders := make(http.Header)
155919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155920	for k, v := range c.header_ {
155921		reqHeaders[k] = v
155922	}
155923	reqHeaders.Set("User-Agent", c.s.userAgent())
155924	var body io.Reader = nil
155925	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
155926	if err != nil {
155927		return nil, err
155928	}
155929	reqHeaders.Set("Content-Type", "application/json")
155930	c.urlParams_.Set("alt", alt)
155931	c.urlParams_.Set("prettyPrint", "false")
155932	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/addRule")
155933	urls += "?" + c.urlParams_.Encode()
155934	req, err := http.NewRequest("POST", urls, body)
155935	if err != nil {
155936		return nil, err
155937	}
155938	req.Header = reqHeaders
155939	googleapi.Expand(req.URL, map[string]string{
155940		"project":        c.project,
155941		"securityPolicy": c.securityPolicy,
155942	})
155943	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155944}
155945
155946// Do executes the "compute.securityPolicies.addRule" call.
155947// Exactly one of *Operation or error will be non-nil. Any non-2xx
155948// status code is an error. Response headers are in either
155949// *Operation.ServerResponse.Header or (if a response was returned at
155950// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155951// to check whether the returned error was because
155952// http.StatusNotModified was returned.
155953func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155954	gensupport.SetOptions(c.urlParams_, opts...)
155955	res, err := c.doRequest("json")
155956	if res != nil && res.StatusCode == http.StatusNotModified {
155957		if res.Body != nil {
155958			res.Body.Close()
155959		}
155960		return nil, &googleapi.Error{
155961			Code:   res.StatusCode,
155962			Header: res.Header,
155963		}
155964	}
155965	if err != nil {
155966		return nil, err
155967	}
155968	defer googleapi.CloseBody(res)
155969	if err := googleapi.CheckResponse(res); err != nil {
155970		return nil, err
155971	}
155972	ret := &Operation{
155973		ServerResponse: googleapi.ServerResponse{
155974			Header:         res.Header,
155975			HTTPStatusCode: res.StatusCode,
155976		},
155977	}
155978	target := &ret
155979	if err := gensupport.DecodeResponse(target, res); err != nil {
155980		return nil, err
155981	}
155982	return ret, nil
155983	// {
155984	//   "description": "Inserts a rule into a security policy.",
155985	//   "httpMethod": "POST",
155986	//   "id": "compute.securityPolicies.addRule",
155987	//   "parameterOrder": [
155988	//     "project",
155989	//     "securityPolicy"
155990	//   ],
155991	//   "parameters": {
155992	//     "project": {
155993	//       "description": "Project ID for this request.",
155994	//       "location": "path",
155995	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155996	//       "required": true,
155997	//       "type": "string"
155998	//     },
155999	//     "securityPolicy": {
156000	//       "description": "Name of the security policy to update.",
156001	//       "location": "path",
156002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156003	//       "required": true,
156004	//       "type": "string"
156005	//     },
156006	//     "validateOnly": {
156007	//       "description": "If true, the request will not be committed.",
156008	//       "location": "query",
156009	//       "type": "boolean"
156010	//     }
156011	//   },
156012	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule",
156013	//   "request": {
156014	//     "$ref": "SecurityPolicyRule"
156015	//   },
156016	//   "response": {
156017	//     "$ref": "Operation"
156018	//   },
156019	//   "scopes": [
156020	//     "https://www.googleapis.com/auth/cloud-platform",
156021	//     "https://www.googleapis.com/auth/compute"
156022	//   ]
156023	// }
156024
156025}
156026
156027// method id "compute.securityPolicies.delete":
156028
156029type SecurityPoliciesDeleteCall struct {
156030	s              *Service
156031	project        string
156032	securityPolicy string
156033	urlParams_     gensupport.URLParams
156034	ctx_           context.Context
156035	header_        http.Header
156036}
156037
156038// Delete: Deletes the specified policy.
156039//
156040// - project: Project ID for this request.
156041// - securityPolicy: Name of the security policy to delete.
156042func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
156043	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156044	c.project = project
156045	c.securityPolicy = securityPolicy
156046	return c
156047}
156048
156049// RequestId sets the optional parameter "requestId": An optional
156050// request ID to identify requests. Specify a unique request ID so that
156051// if you must retry your request, the server will know to ignore the
156052// request if it has already been completed.
156053//
156054// For example, consider a situation where you make an initial request
156055// and the request times out. If you make the request again with the
156056// same request ID, the server can check if original operation with the
156057// same request ID was received, and if so, will ignore the second
156058// request. This prevents clients from accidentally creating duplicate
156059// commitments.
156060//
156061// The request ID must be a valid UUID with the exception that zero UUID
156062// is not supported (00000000-0000-0000-0000-000000000000).
156063func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
156064	c.urlParams_.Set("requestId", requestId)
156065	return c
156066}
156067
156068// Fields allows partial responses to be retrieved. See
156069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156070// for more information.
156071func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
156072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156073	return c
156074}
156075
156076// Context sets the context to be used in this call's Do method. Any
156077// pending HTTP request will be aborted if the provided context is
156078// canceled.
156079func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
156080	c.ctx_ = ctx
156081	return c
156082}
156083
156084// Header returns an http.Header that can be modified by the caller to
156085// add HTTP headers to the request.
156086func (c *SecurityPoliciesDeleteCall) Header() http.Header {
156087	if c.header_ == nil {
156088		c.header_ = make(http.Header)
156089	}
156090	return c.header_
156091}
156092
156093func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
156094	reqHeaders := make(http.Header)
156095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156096	for k, v := range c.header_ {
156097		reqHeaders[k] = v
156098	}
156099	reqHeaders.Set("User-Agent", c.s.userAgent())
156100	var body io.Reader = nil
156101	c.urlParams_.Set("alt", alt)
156102	c.urlParams_.Set("prettyPrint", "false")
156103	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
156104	urls += "?" + c.urlParams_.Encode()
156105	req, err := http.NewRequest("DELETE", urls, body)
156106	if err != nil {
156107		return nil, err
156108	}
156109	req.Header = reqHeaders
156110	googleapi.Expand(req.URL, map[string]string{
156111		"project":        c.project,
156112		"securityPolicy": c.securityPolicy,
156113	})
156114	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156115}
156116
156117// Do executes the "compute.securityPolicies.delete" call.
156118// Exactly one of *Operation or error will be non-nil. Any non-2xx
156119// status code is an error. Response headers are in either
156120// *Operation.ServerResponse.Header or (if a response was returned at
156121// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156122// to check whether the returned error was because
156123// http.StatusNotModified was returned.
156124func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156125	gensupport.SetOptions(c.urlParams_, opts...)
156126	res, err := c.doRequest("json")
156127	if res != nil && res.StatusCode == http.StatusNotModified {
156128		if res.Body != nil {
156129			res.Body.Close()
156130		}
156131		return nil, &googleapi.Error{
156132			Code:   res.StatusCode,
156133			Header: res.Header,
156134		}
156135	}
156136	if err != nil {
156137		return nil, err
156138	}
156139	defer googleapi.CloseBody(res)
156140	if err := googleapi.CheckResponse(res); err != nil {
156141		return nil, err
156142	}
156143	ret := &Operation{
156144		ServerResponse: googleapi.ServerResponse{
156145			Header:         res.Header,
156146			HTTPStatusCode: res.StatusCode,
156147		},
156148	}
156149	target := &ret
156150	if err := gensupport.DecodeResponse(target, res); err != nil {
156151		return nil, err
156152	}
156153	return ret, nil
156154	// {
156155	//   "description": "Deletes the specified policy.",
156156	//   "httpMethod": "DELETE",
156157	//   "id": "compute.securityPolicies.delete",
156158	//   "parameterOrder": [
156159	//     "project",
156160	//     "securityPolicy"
156161	//   ],
156162	//   "parameters": {
156163	//     "project": {
156164	//       "description": "Project ID for this request.",
156165	//       "location": "path",
156166	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156167	//       "required": true,
156168	//       "type": "string"
156169	//     },
156170	//     "requestId": {
156171	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156172	//       "location": "query",
156173	//       "type": "string"
156174	//     },
156175	//     "securityPolicy": {
156176	//       "description": "Name of the security policy to delete.",
156177	//       "location": "path",
156178	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156179	//       "required": true,
156180	//       "type": "string"
156181	//     }
156182	//   },
156183	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
156184	//   "response": {
156185	//     "$ref": "Operation"
156186	//   },
156187	//   "scopes": [
156188	//     "https://www.googleapis.com/auth/cloud-platform",
156189	//     "https://www.googleapis.com/auth/compute"
156190	//   ]
156191	// }
156192
156193}
156194
156195// method id "compute.securityPolicies.get":
156196
156197type SecurityPoliciesGetCall struct {
156198	s              *Service
156199	project        string
156200	securityPolicy string
156201	urlParams_     gensupport.URLParams
156202	ifNoneMatch_   string
156203	ctx_           context.Context
156204	header_        http.Header
156205}
156206
156207// Get: List all of the ordered rules present in a single specified
156208// policy.
156209//
156210// - project: Project ID for this request.
156211// - securityPolicy: Name of the security policy to get.
156212func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
156213	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156214	c.project = project
156215	c.securityPolicy = securityPolicy
156216	return c
156217}
156218
156219// Fields allows partial responses to be retrieved. See
156220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156221// for more information.
156222func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
156223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156224	return c
156225}
156226
156227// IfNoneMatch sets the optional parameter which makes the operation
156228// fail if the object's ETag matches the given value. This is useful for
156229// getting updates only after the object has changed since the last
156230// request. Use googleapi.IsNotModified to check whether the response
156231// error from Do is the result of In-None-Match.
156232func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
156233	c.ifNoneMatch_ = entityTag
156234	return c
156235}
156236
156237// Context sets the context to be used in this call's Do method. Any
156238// pending HTTP request will be aborted if the provided context is
156239// canceled.
156240func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
156241	c.ctx_ = ctx
156242	return c
156243}
156244
156245// Header returns an http.Header that can be modified by the caller to
156246// add HTTP headers to the request.
156247func (c *SecurityPoliciesGetCall) Header() http.Header {
156248	if c.header_ == nil {
156249		c.header_ = make(http.Header)
156250	}
156251	return c.header_
156252}
156253
156254func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
156255	reqHeaders := make(http.Header)
156256	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156257	for k, v := range c.header_ {
156258		reqHeaders[k] = v
156259	}
156260	reqHeaders.Set("User-Agent", c.s.userAgent())
156261	if c.ifNoneMatch_ != "" {
156262		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156263	}
156264	var body io.Reader = nil
156265	c.urlParams_.Set("alt", alt)
156266	c.urlParams_.Set("prettyPrint", "false")
156267	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
156268	urls += "?" + c.urlParams_.Encode()
156269	req, err := http.NewRequest("GET", urls, body)
156270	if err != nil {
156271		return nil, err
156272	}
156273	req.Header = reqHeaders
156274	googleapi.Expand(req.URL, map[string]string{
156275		"project":        c.project,
156276		"securityPolicy": c.securityPolicy,
156277	})
156278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156279}
156280
156281// Do executes the "compute.securityPolicies.get" call.
156282// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
156283// status code is an error. Response headers are in either
156284// *SecurityPolicy.ServerResponse.Header or (if a response was returned
156285// at all) in error.(*googleapi.Error).Header. Use
156286// googleapi.IsNotModified to check whether the returned error was
156287// because http.StatusNotModified was returned.
156288func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
156289	gensupport.SetOptions(c.urlParams_, opts...)
156290	res, err := c.doRequest("json")
156291	if res != nil && res.StatusCode == http.StatusNotModified {
156292		if res.Body != nil {
156293			res.Body.Close()
156294		}
156295		return nil, &googleapi.Error{
156296			Code:   res.StatusCode,
156297			Header: res.Header,
156298		}
156299	}
156300	if err != nil {
156301		return nil, err
156302	}
156303	defer googleapi.CloseBody(res)
156304	if err := googleapi.CheckResponse(res); err != nil {
156305		return nil, err
156306	}
156307	ret := &SecurityPolicy{
156308		ServerResponse: googleapi.ServerResponse{
156309			Header:         res.Header,
156310			HTTPStatusCode: res.StatusCode,
156311		},
156312	}
156313	target := &ret
156314	if err := gensupport.DecodeResponse(target, res); err != nil {
156315		return nil, err
156316	}
156317	return ret, nil
156318	// {
156319	//   "description": "List all of the ordered rules present in a single specified policy.",
156320	//   "httpMethod": "GET",
156321	//   "id": "compute.securityPolicies.get",
156322	//   "parameterOrder": [
156323	//     "project",
156324	//     "securityPolicy"
156325	//   ],
156326	//   "parameters": {
156327	//     "project": {
156328	//       "description": "Project ID for this request.",
156329	//       "location": "path",
156330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156331	//       "required": true,
156332	//       "type": "string"
156333	//     },
156334	//     "securityPolicy": {
156335	//       "description": "Name of the security policy to get.",
156336	//       "location": "path",
156337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156338	//       "required": true,
156339	//       "type": "string"
156340	//     }
156341	//   },
156342	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
156343	//   "response": {
156344	//     "$ref": "SecurityPolicy"
156345	//   },
156346	//   "scopes": [
156347	//     "https://www.googleapis.com/auth/cloud-platform",
156348	//     "https://www.googleapis.com/auth/compute",
156349	//     "https://www.googleapis.com/auth/compute.readonly"
156350	//   ]
156351	// }
156352
156353}
156354
156355// method id "compute.securityPolicies.getRule":
156356
156357type SecurityPoliciesGetRuleCall struct {
156358	s              *Service
156359	project        string
156360	securityPolicy string
156361	urlParams_     gensupport.URLParams
156362	ifNoneMatch_   string
156363	ctx_           context.Context
156364	header_        http.Header
156365}
156366
156367// GetRule: Gets a rule at the specified priority.
156368//
156369// - project: Project ID for this request.
156370// - securityPolicy: Name of the security policy to which the queried
156371//   rule belongs.
156372func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
156373	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156374	c.project = project
156375	c.securityPolicy = securityPolicy
156376	return c
156377}
156378
156379// Priority sets the optional parameter "priority": The priority of the
156380// rule to get from the security policy.
156381func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
156382	c.urlParams_.Set("priority", fmt.Sprint(priority))
156383	return c
156384}
156385
156386// Fields allows partial responses to be retrieved. See
156387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156388// for more information.
156389func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
156390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156391	return c
156392}
156393
156394// IfNoneMatch sets the optional parameter which makes the operation
156395// fail if the object's ETag matches the given value. This is useful for
156396// getting updates only after the object has changed since the last
156397// request. Use googleapi.IsNotModified to check whether the response
156398// error from Do is the result of In-None-Match.
156399func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
156400	c.ifNoneMatch_ = entityTag
156401	return c
156402}
156403
156404// Context sets the context to be used in this call's Do method. Any
156405// pending HTTP request will be aborted if the provided context is
156406// canceled.
156407func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
156408	c.ctx_ = ctx
156409	return c
156410}
156411
156412// Header returns an http.Header that can be modified by the caller to
156413// add HTTP headers to the request.
156414func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
156415	if c.header_ == nil {
156416		c.header_ = make(http.Header)
156417	}
156418	return c.header_
156419}
156420
156421func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
156422	reqHeaders := make(http.Header)
156423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156424	for k, v := range c.header_ {
156425		reqHeaders[k] = v
156426	}
156427	reqHeaders.Set("User-Agent", c.s.userAgent())
156428	if c.ifNoneMatch_ != "" {
156429		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156430	}
156431	var body io.Reader = nil
156432	c.urlParams_.Set("alt", alt)
156433	c.urlParams_.Set("prettyPrint", "false")
156434	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/getRule")
156435	urls += "?" + c.urlParams_.Encode()
156436	req, err := http.NewRequest("GET", urls, body)
156437	if err != nil {
156438		return nil, err
156439	}
156440	req.Header = reqHeaders
156441	googleapi.Expand(req.URL, map[string]string{
156442		"project":        c.project,
156443		"securityPolicy": c.securityPolicy,
156444	})
156445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156446}
156447
156448// Do executes the "compute.securityPolicies.getRule" call.
156449// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
156450// non-2xx status code is an error. Response headers are in either
156451// *SecurityPolicyRule.ServerResponse.Header or (if a response was
156452// returned at all) in error.(*googleapi.Error).Header. Use
156453// googleapi.IsNotModified to check whether the returned error was
156454// because http.StatusNotModified was returned.
156455func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
156456	gensupport.SetOptions(c.urlParams_, opts...)
156457	res, err := c.doRequest("json")
156458	if res != nil && res.StatusCode == http.StatusNotModified {
156459		if res.Body != nil {
156460			res.Body.Close()
156461		}
156462		return nil, &googleapi.Error{
156463			Code:   res.StatusCode,
156464			Header: res.Header,
156465		}
156466	}
156467	if err != nil {
156468		return nil, err
156469	}
156470	defer googleapi.CloseBody(res)
156471	if err := googleapi.CheckResponse(res); err != nil {
156472		return nil, err
156473	}
156474	ret := &SecurityPolicyRule{
156475		ServerResponse: googleapi.ServerResponse{
156476			Header:         res.Header,
156477			HTTPStatusCode: res.StatusCode,
156478		},
156479	}
156480	target := &ret
156481	if err := gensupport.DecodeResponse(target, res); err != nil {
156482		return nil, err
156483	}
156484	return ret, nil
156485	// {
156486	//   "description": "Gets a rule at the specified priority.",
156487	//   "httpMethod": "GET",
156488	//   "id": "compute.securityPolicies.getRule",
156489	//   "parameterOrder": [
156490	//     "project",
156491	//     "securityPolicy"
156492	//   ],
156493	//   "parameters": {
156494	//     "priority": {
156495	//       "description": "The priority of the rule to get from the security policy.",
156496	//       "format": "int32",
156497	//       "location": "query",
156498	//       "type": "integer"
156499	//     },
156500	//     "project": {
156501	//       "description": "Project ID for this request.",
156502	//       "location": "path",
156503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156504	//       "required": true,
156505	//       "type": "string"
156506	//     },
156507	//     "securityPolicy": {
156508	//       "description": "Name of the security policy to which the queried rule belongs.",
156509	//       "location": "path",
156510	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156511	//       "required": true,
156512	//       "type": "string"
156513	//     }
156514	//   },
156515	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
156516	//   "response": {
156517	//     "$ref": "SecurityPolicyRule"
156518	//   },
156519	//   "scopes": [
156520	//     "https://www.googleapis.com/auth/cloud-platform",
156521	//     "https://www.googleapis.com/auth/compute",
156522	//     "https://www.googleapis.com/auth/compute.readonly"
156523	//   ]
156524	// }
156525
156526}
156527
156528// method id "compute.securityPolicies.insert":
156529
156530type SecurityPoliciesInsertCall struct {
156531	s              *Service
156532	project        string
156533	securitypolicy *SecurityPolicy
156534	urlParams_     gensupport.URLParams
156535	ctx_           context.Context
156536	header_        http.Header
156537}
156538
156539// Insert: Creates a new policy in the specified project using the data
156540// included in the request.
156541//
156542// - project: Project ID for this request.
156543func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
156544	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156545	c.project = project
156546	c.securitypolicy = securitypolicy
156547	return c
156548}
156549
156550// RequestId sets the optional parameter "requestId": An optional
156551// request ID to identify requests. Specify a unique request ID so that
156552// if you must retry your request, the server will know to ignore the
156553// request if it has already been completed.
156554//
156555// For example, consider a situation where you make an initial request
156556// and the request times out. If you make the request again with the
156557// same request ID, the server can check if original operation with the
156558// same request ID was received, and if so, will ignore the second
156559// request. This prevents clients from accidentally creating duplicate
156560// commitments.
156561//
156562// The request ID must be a valid UUID with the exception that zero UUID
156563// is not supported (00000000-0000-0000-0000-000000000000).
156564func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
156565	c.urlParams_.Set("requestId", requestId)
156566	return c
156567}
156568
156569// ValidateOnly sets the optional parameter "validateOnly": If true, the
156570// request will not be committed.
156571func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall {
156572	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
156573	return c
156574}
156575
156576// Fields allows partial responses to be retrieved. See
156577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156578// for more information.
156579func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
156580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156581	return c
156582}
156583
156584// Context sets the context to be used in this call's Do method. Any
156585// pending HTTP request will be aborted if the provided context is
156586// canceled.
156587func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
156588	c.ctx_ = ctx
156589	return c
156590}
156591
156592// Header returns an http.Header that can be modified by the caller to
156593// add HTTP headers to the request.
156594func (c *SecurityPoliciesInsertCall) Header() http.Header {
156595	if c.header_ == nil {
156596		c.header_ = make(http.Header)
156597	}
156598	return c.header_
156599}
156600
156601func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
156602	reqHeaders := make(http.Header)
156603	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156604	for k, v := range c.header_ {
156605		reqHeaders[k] = v
156606	}
156607	reqHeaders.Set("User-Agent", c.s.userAgent())
156608	var body io.Reader = nil
156609	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
156610	if err != nil {
156611		return nil, err
156612	}
156613	reqHeaders.Set("Content-Type", "application/json")
156614	c.urlParams_.Set("alt", alt)
156615	c.urlParams_.Set("prettyPrint", "false")
156616	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
156617	urls += "?" + c.urlParams_.Encode()
156618	req, err := http.NewRequest("POST", urls, body)
156619	if err != nil {
156620		return nil, err
156621	}
156622	req.Header = reqHeaders
156623	googleapi.Expand(req.URL, map[string]string{
156624		"project": c.project,
156625	})
156626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156627}
156628
156629// Do executes the "compute.securityPolicies.insert" call.
156630// Exactly one of *Operation or error will be non-nil. Any non-2xx
156631// status code is an error. Response headers are in either
156632// *Operation.ServerResponse.Header or (if a response was returned at
156633// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156634// to check whether the returned error was because
156635// http.StatusNotModified was returned.
156636func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156637	gensupport.SetOptions(c.urlParams_, opts...)
156638	res, err := c.doRequest("json")
156639	if res != nil && res.StatusCode == http.StatusNotModified {
156640		if res.Body != nil {
156641			res.Body.Close()
156642		}
156643		return nil, &googleapi.Error{
156644			Code:   res.StatusCode,
156645			Header: res.Header,
156646		}
156647	}
156648	if err != nil {
156649		return nil, err
156650	}
156651	defer googleapi.CloseBody(res)
156652	if err := googleapi.CheckResponse(res); err != nil {
156653		return nil, err
156654	}
156655	ret := &Operation{
156656		ServerResponse: googleapi.ServerResponse{
156657			Header:         res.Header,
156658			HTTPStatusCode: res.StatusCode,
156659		},
156660	}
156661	target := &ret
156662	if err := gensupport.DecodeResponse(target, res); err != nil {
156663		return nil, err
156664	}
156665	return ret, nil
156666	// {
156667	//   "description": "Creates a new policy in the specified project using the data included in the request.",
156668	//   "httpMethod": "POST",
156669	//   "id": "compute.securityPolicies.insert",
156670	//   "parameterOrder": [
156671	//     "project"
156672	//   ],
156673	//   "parameters": {
156674	//     "project": {
156675	//       "description": "Project ID for this request.",
156676	//       "location": "path",
156677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156678	//       "required": true,
156679	//       "type": "string"
156680	//     },
156681	//     "requestId": {
156682	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156683	//       "location": "query",
156684	//       "type": "string"
156685	//     },
156686	//     "validateOnly": {
156687	//       "description": "If true, the request will not be committed.",
156688	//       "location": "query",
156689	//       "type": "boolean"
156690	//     }
156691	//   },
156692	//   "path": "projects/{project}/global/securityPolicies",
156693	//   "request": {
156694	//     "$ref": "SecurityPolicy"
156695	//   },
156696	//   "response": {
156697	//     "$ref": "Operation"
156698	//   },
156699	//   "scopes": [
156700	//     "https://www.googleapis.com/auth/cloud-platform",
156701	//     "https://www.googleapis.com/auth/compute"
156702	//   ]
156703	// }
156704
156705}
156706
156707// method id "compute.securityPolicies.list":
156708
156709type SecurityPoliciesListCall struct {
156710	s            *Service
156711	project      string
156712	urlParams_   gensupport.URLParams
156713	ifNoneMatch_ string
156714	ctx_         context.Context
156715	header_      http.Header
156716}
156717
156718// List: List all the policies that have been configured for the
156719// specified project.
156720//
156721// - project: Project ID for this request.
156722func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
156723	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156724	c.project = project
156725	return c
156726}
156727
156728// Filter sets the optional parameter "filter": A filter expression that
156729// filters resources listed in the response. The expression must specify
156730// the field name, a comparison operator, and the value that you want to
156731// use for filtering. The value must be a string, a number, or a
156732// boolean. The comparison operator must be either `=`, `!=`, `>`, or
156733// `<`.
156734//
156735// For example, if you are filtering Compute Engine instances, you can
156736// exclude instances named `example-instance` by specifying `name !=
156737// example-instance`.
156738//
156739// You can also filter nested fields. For example, you could specify
156740// `scheduling.automaticRestart = false` to include instances only if
156741// they are not scheduled for automatic restarts. You can use filtering
156742// on nested fields to filter based on resource labels.
156743//
156744// To filter on multiple expressions, provide each separate expression
156745// within parentheses. For example: ``` (scheduling.automaticRestart =
156746// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
156747// is an `AND` expression. However, you can include `AND` and `OR`
156748// expressions explicitly. For example: ``` (cpuPlatform = "Intel
156749// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
156750// (scheduling.automaticRestart = true) ```
156751func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
156752	c.urlParams_.Set("filter", filter)
156753	return c
156754}
156755
156756// MaxResults sets the optional parameter "maxResults": The maximum
156757// number of results per page that should be returned. If the number of
156758// available results is larger than `maxResults`, Compute Engine returns
156759// a `nextPageToken` that can be used to get the next page of results in
156760// subsequent list requests. Acceptable values are `0` to `500`,
156761// inclusive. (Default: `500`)
156762func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
156763	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156764	return c
156765}
156766
156767// OrderBy sets the optional parameter "orderBy": Sorts list results by
156768// a certain order. By default, results are returned in alphanumerical
156769// order based on the resource name.
156770//
156771// You can also sort results in descending order based on the creation
156772// timestamp using `orderBy="creationTimestamp desc". This sorts
156773// results based on the `creationTimestamp` field in reverse
156774// chronological order (newest result first). Use this to sort resources
156775// like operations so that the newest operation is returned
156776// first.
156777//
156778// Currently, only sorting by `name` or `creationTimestamp desc` is
156779// supported.
156780func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
156781	c.urlParams_.Set("orderBy", orderBy)
156782	return c
156783}
156784
156785// PageToken sets the optional parameter "pageToken": Specifies a page
156786// token to use. Set `pageToken` to the `nextPageToken` returned by a
156787// previous list request to get the next page of results.
156788func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
156789	c.urlParams_.Set("pageToken", pageToken)
156790	return c
156791}
156792
156793// ReturnPartialSuccess sets the optional parameter
156794// "returnPartialSuccess": Opt-in for partial success behavior which
156795// provides partial results in case of failure. The default value is
156796// false.
156797func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListCall {
156798	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
156799	return c
156800}
156801
156802// Fields allows partial responses to be retrieved. See
156803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156804// for more information.
156805func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
156806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156807	return c
156808}
156809
156810// IfNoneMatch sets the optional parameter which makes the operation
156811// fail if the object's ETag matches the given value. This is useful for
156812// getting updates only after the object has changed since the last
156813// request. Use googleapi.IsNotModified to check whether the response
156814// error from Do is the result of In-None-Match.
156815func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
156816	c.ifNoneMatch_ = entityTag
156817	return c
156818}
156819
156820// Context sets the context to be used in this call's Do method. Any
156821// pending HTTP request will be aborted if the provided context is
156822// canceled.
156823func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
156824	c.ctx_ = ctx
156825	return c
156826}
156827
156828// Header returns an http.Header that can be modified by the caller to
156829// add HTTP headers to the request.
156830func (c *SecurityPoliciesListCall) Header() http.Header {
156831	if c.header_ == nil {
156832		c.header_ = make(http.Header)
156833	}
156834	return c.header_
156835}
156836
156837func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
156838	reqHeaders := make(http.Header)
156839	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156840	for k, v := range c.header_ {
156841		reqHeaders[k] = v
156842	}
156843	reqHeaders.Set("User-Agent", c.s.userAgent())
156844	if c.ifNoneMatch_ != "" {
156845		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156846	}
156847	var body io.Reader = nil
156848	c.urlParams_.Set("alt", alt)
156849	c.urlParams_.Set("prettyPrint", "false")
156850	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
156851	urls += "?" + c.urlParams_.Encode()
156852	req, err := http.NewRequest("GET", urls, body)
156853	if err != nil {
156854		return nil, err
156855	}
156856	req.Header = reqHeaders
156857	googleapi.Expand(req.URL, map[string]string{
156858		"project": c.project,
156859	})
156860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156861}
156862
156863// Do executes the "compute.securityPolicies.list" call.
156864// Exactly one of *SecurityPolicyList or error will be non-nil. Any
156865// non-2xx status code is an error. Response headers are in either
156866// *SecurityPolicyList.ServerResponse.Header or (if a response was
156867// returned at all) in error.(*googleapi.Error).Header. Use
156868// googleapi.IsNotModified to check whether the returned error was
156869// because http.StatusNotModified was returned.
156870func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
156871	gensupport.SetOptions(c.urlParams_, opts...)
156872	res, err := c.doRequest("json")
156873	if res != nil && res.StatusCode == http.StatusNotModified {
156874		if res.Body != nil {
156875			res.Body.Close()
156876		}
156877		return nil, &googleapi.Error{
156878			Code:   res.StatusCode,
156879			Header: res.Header,
156880		}
156881	}
156882	if err != nil {
156883		return nil, err
156884	}
156885	defer googleapi.CloseBody(res)
156886	if err := googleapi.CheckResponse(res); err != nil {
156887		return nil, err
156888	}
156889	ret := &SecurityPolicyList{
156890		ServerResponse: googleapi.ServerResponse{
156891			Header:         res.Header,
156892			HTTPStatusCode: res.StatusCode,
156893		},
156894	}
156895	target := &ret
156896	if err := gensupport.DecodeResponse(target, res); err != nil {
156897		return nil, err
156898	}
156899	return ret, nil
156900	// {
156901	//   "description": "List all the policies that have been configured for the specified project.",
156902	//   "httpMethod": "GET",
156903	//   "id": "compute.securityPolicies.list",
156904	//   "parameterOrder": [
156905	//     "project"
156906	//   ],
156907	//   "parameters": {
156908	//     "filter": {
156909	//       "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) ```",
156910	//       "location": "query",
156911	//       "type": "string"
156912	//     },
156913	//     "maxResults": {
156914	//       "default": "500",
156915	//       "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`)",
156916	//       "format": "uint32",
156917	//       "location": "query",
156918	//       "minimum": "0",
156919	//       "type": "integer"
156920	//     },
156921	//     "orderBy": {
156922	//       "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.",
156923	//       "location": "query",
156924	//       "type": "string"
156925	//     },
156926	//     "pageToken": {
156927	//       "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.",
156928	//       "location": "query",
156929	//       "type": "string"
156930	//     },
156931	//     "project": {
156932	//       "description": "Project ID for this request.",
156933	//       "location": "path",
156934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156935	//       "required": true,
156936	//       "type": "string"
156937	//     },
156938	//     "returnPartialSuccess": {
156939	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
156940	//       "location": "query",
156941	//       "type": "boolean"
156942	//     }
156943	//   },
156944	//   "path": "projects/{project}/global/securityPolicies",
156945	//   "response": {
156946	//     "$ref": "SecurityPolicyList"
156947	//   },
156948	//   "scopes": [
156949	//     "https://www.googleapis.com/auth/cloud-platform",
156950	//     "https://www.googleapis.com/auth/compute",
156951	//     "https://www.googleapis.com/auth/compute.readonly"
156952	//   ]
156953	// }
156954
156955}
156956
156957// Pages invokes f for each page of results.
156958// A non-nil error returned from f will halt the iteration.
156959// The provided context supersedes any context provided to the Context method.
156960func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
156961	c.ctx_ = ctx
156962	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156963	for {
156964		x, err := c.Do()
156965		if err != nil {
156966			return err
156967		}
156968		if err := f(x); err != nil {
156969			return err
156970		}
156971		if x.NextPageToken == "" {
156972			return nil
156973		}
156974		c.PageToken(x.NextPageToken)
156975	}
156976}
156977
156978// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
156979
156980type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
156981	s            *Service
156982	project      string
156983	urlParams_   gensupport.URLParams
156984	ifNoneMatch_ string
156985	ctx_         context.Context
156986	header_      http.Header
156987}
156988
156989// ListPreconfiguredExpressionSets: Gets the current list of
156990// preconfigured Web Application Firewall (WAF) expressions.
156991//
156992// - project: Project ID for this request.
156993func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
156994	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156995	c.project = project
156996	return c
156997}
156998
156999// Filter sets the optional parameter "filter": A filter expression that
157000// filters resources listed in the response. The expression must specify
157001// the field name, a comparison operator, and the value that you want to
157002// use for filtering. The value must be a string, a number, or a
157003// boolean. The comparison operator must be either `=`, `!=`, `>`, or
157004// `<`.
157005//
157006// For example, if you are filtering Compute Engine instances, you can
157007// exclude instances named `example-instance` by specifying `name !=
157008// example-instance`.
157009//
157010// You can also filter nested fields. For example, you could specify
157011// `scheduling.automaticRestart = false` to include instances only if
157012// they are not scheduled for automatic restarts. You can use filtering
157013// on nested fields to filter based on resource labels.
157014//
157015// To filter on multiple expressions, provide each separate expression
157016// within parentheses. For example: ``` (scheduling.automaticRestart =
157017// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
157018// is an `AND` expression. However, you can include `AND` and `OR`
157019// expressions explicitly. For example: ``` (cpuPlatform = "Intel
157020// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
157021// (scheduling.automaticRestart = true) ```
157022func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
157023	c.urlParams_.Set("filter", filter)
157024	return c
157025}
157026
157027// MaxResults sets the optional parameter "maxResults": The maximum
157028// number of results per page that should be returned. If the number of
157029// available results is larger than `maxResults`, Compute Engine returns
157030// a `nextPageToken` that can be used to get the next page of results in
157031// subsequent list requests. Acceptable values are `0` to `500`,
157032// inclusive. (Default: `500`)
157033func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
157034	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157035	return c
157036}
157037
157038// OrderBy sets the optional parameter "orderBy": Sorts list results by
157039// a certain order. By default, results are returned in alphanumerical
157040// order based on the resource name.
157041//
157042// You can also sort results in descending order based on the creation
157043// timestamp using `orderBy="creationTimestamp desc". This sorts
157044// results based on the `creationTimestamp` field in reverse
157045// chronological order (newest result first). Use this to sort resources
157046// like operations so that the newest operation is returned
157047// first.
157048//
157049// Currently, only sorting by `name` or `creationTimestamp desc` is
157050// supported.
157051func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
157052	c.urlParams_.Set("orderBy", orderBy)
157053	return c
157054}
157055
157056// PageToken sets the optional parameter "pageToken": Specifies a page
157057// token to use. Set `pageToken` to the `nextPageToken` returned by a
157058// previous list request to get the next page of results.
157059func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
157060	c.urlParams_.Set("pageToken", pageToken)
157061	return c
157062}
157063
157064// ReturnPartialSuccess sets the optional parameter
157065// "returnPartialSuccess": Opt-in for partial success behavior which
157066// provides partial results in case of failure. The default value is
157067// false.
157068func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
157069	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
157070	return c
157071}
157072
157073// Fields allows partial responses to be retrieved. See
157074// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157075// for more information.
157076func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
157077	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157078	return c
157079}
157080
157081// IfNoneMatch sets the optional parameter which makes the operation
157082// fail if the object's ETag matches the given value. This is useful for
157083// getting updates only after the object has changed since the last
157084// request. Use googleapi.IsNotModified to check whether the response
157085// error from Do is the result of In-None-Match.
157086func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
157087	c.ifNoneMatch_ = entityTag
157088	return c
157089}
157090
157091// Context sets the context to be used in this call's Do method. Any
157092// pending HTTP request will be aborted if the provided context is
157093// canceled.
157094func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
157095	c.ctx_ = ctx
157096	return c
157097}
157098
157099// Header returns an http.Header that can be modified by the caller to
157100// add HTTP headers to the request.
157101func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
157102	if c.header_ == nil {
157103		c.header_ = make(http.Header)
157104	}
157105	return c.header_
157106}
157107
157108func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
157109	reqHeaders := make(http.Header)
157110	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157111	for k, v := range c.header_ {
157112		reqHeaders[k] = v
157113	}
157114	reqHeaders.Set("User-Agent", c.s.userAgent())
157115	if c.ifNoneMatch_ != "" {
157116		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157117	}
157118	var body io.Reader = nil
157119	c.urlParams_.Set("alt", alt)
157120	c.urlParams_.Set("prettyPrint", "false")
157121	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets")
157122	urls += "?" + c.urlParams_.Encode()
157123	req, err := http.NewRequest("GET", urls, body)
157124	if err != nil {
157125		return nil, err
157126	}
157127	req.Header = reqHeaders
157128	googleapi.Expand(req.URL, map[string]string{
157129		"project": c.project,
157130	})
157131	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157132}
157133
157134// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
157135// Exactly one of
157136// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
157137// will be non-nil. Any non-2xx status code is an error. Response
157138// headers are in either
157139// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
157140// e.Header or (if a response was returned at all) in
157141// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
157142// whether the returned error was because http.StatusNotModified was
157143// returned.
157144func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
157145	gensupport.SetOptions(c.urlParams_, opts...)
157146	res, err := c.doRequest("json")
157147	if res != nil && res.StatusCode == http.StatusNotModified {
157148		if res.Body != nil {
157149			res.Body.Close()
157150		}
157151		return nil, &googleapi.Error{
157152			Code:   res.StatusCode,
157153			Header: res.Header,
157154		}
157155	}
157156	if err != nil {
157157		return nil, err
157158	}
157159	defer googleapi.CloseBody(res)
157160	if err := googleapi.CheckResponse(res); err != nil {
157161		return nil, err
157162	}
157163	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
157164		ServerResponse: googleapi.ServerResponse{
157165			Header:         res.Header,
157166			HTTPStatusCode: res.StatusCode,
157167		},
157168	}
157169	target := &ret
157170	if err := gensupport.DecodeResponse(target, res); err != nil {
157171		return nil, err
157172	}
157173	return ret, nil
157174	// {
157175	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
157176	//   "httpMethod": "GET",
157177	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
157178	//   "parameterOrder": [
157179	//     "project"
157180	//   ],
157181	//   "parameters": {
157182	//     "filter": {
157183	//       "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) ```",
157184	//       "location": "query",
157185	//       "type": "string"
157186	//     },
157187	//     "maxResults": {
157188	//       "default": "500",
157189	//       "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`)",
157190	//       "format": "uint32",
157191	//       "location": "query",
157192	//       "minimum": "0",
157193	//       "type": "integer"
157194	//     },
157195	//     "orderBy": {
157196	//       "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.",
157197	//       "location": "query",
157198	//       "type": "string"
157199	//     },
157200	//     "pageToken": {
157201	//       "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.",
157202	//       "location": "query",
157203	//       "type": "string"
157204	//     },
157205	//     "project": {
157206	//       "description": "Project ID for this request.",
157207	//       "location": "path",
157208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157209	//       "required": true,
157210	//       "type": "string"
157211	//     },
157212	//     "returnPartialSuccess": {
157213	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
157214	//       "location": "query",
157215	//       "type": "boolean"
157216	//     }
157217	//   },
157218	//   "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
157219	//   "response": {
157220	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
157221	//   },
157222	//   "scopes": [
157223	//     "https://www.googleapis.com/auth/cloud-platform",
157224	//     "https://www.googleapis.com/auth/compute"
157225	//   ]
157226	// }
157227
157228}
157229
157230// method id "compute.securityPolicies.patch":
157231
157232type SecurityPoliciesPatchCall struct {
157233	s              *Service
157234	project        string
157235	securityPolicy string
157236	securitypolicy *SecurityPolicy
157237	urlParams_     gensupport.URLParams
157238	ctx_           context.Context
157239	header_        http.Header
157240}
157241
157242// Patch: Patches the specified policy with the data included in the
157243// request. This cannot be used to be update the rules in the policy.
157244// Please use the per rule methods like addRule, patchRule, and
157245// removeRule instead.
157246//
157247// - project: Project ID for this request.
157248// - securityPolicy: Name of the security policy to update.
157249func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
157250	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157251	c.project = project
157252	c.securityPolicy = securityPolicy
157253	c.securitypolicy = securitypolicy
157254	return c
157255}
157256
157257// RequestId sets the optional parameter "requestId": An optional
157258// request ID to identify requests. Specify a unique request ID so that
157259// if you must retry your request, the server will know to ignore the
157260// request if it has already been completed.
157261//
157262// For example, consider a situation where you make an initial request
157263// and the request times out. If you make the request again with the
157264// same request ID, the server can check if original operation with the
157265// same request ID was received, and if so, will ignore the second
157266// request. This prevents clients from accidentally creating duplicate
157267// commitments.
157268//
157269// The request ID must be a valid UUID with the exception that zero UUID
157270// is not supported (00000000-0000-0000-0000-000000000000).
157271func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
157272	c.urlParams_.Set("requestId", requestId)
157273	return c
157274}
157275
157276// Fields allows partial responses to be retrieved. See
157277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157278// for more information.
157279func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
157280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157281	return c
157282}
157283
157284// Context sets the context to be used in this call's Do method. Any
157285// pending HTTP request will be aborted if the provided context is
157286// canceled.
157287func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
157288	c.ctx_ = ctx
157289	return c
157290}
157291
157292// Header returns an http.Header that can be modified by the caller to
157293// add HTTP headers to the request.
157294func (c *SecurityPoliciesPatchCall) Header() http.Header {
157295	if c.header_ == nil {
157296		c.header_ = make(http.Header)
157297	}
157298	return c.header_
157299}
157300
157301func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
157302	reqHeaders := make(http.Header)
157303	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157304	for k, v := range c.header_ {
157305		reqHeaders[k] = v
157306	}
157307	reqHeaders.Set("User-Agent", c.s.userAgent())
157308	var body io.Reader = nil
157309	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
157310	if err != nil {
157311		return nil, err
157312	}
157313	reqHeaders.Set("Content-Type", "application/json")
157314	c.urlParams_.Set("alt", alt)
157315	c.urlParams_.Set("prettyPrint", "false")
157316	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
157317	urls += "?" + c.urlParams_.Encode()
157318	req, err := http.NewRequest("PATCH", urls, body)
157319	if err != nil {
157320		return nil, err
157321	}
157322	req.Header = reqHeaders
157323	googleapi.Expand(req.URL, map[string]string{
157324		"project":        c.project,
157325		"securityPolicy": c.securityPolicy,
157326	})
157327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157328}
157329
157330// Do executes the "compute.securityPolicies.patch" call.
157331// Exactly one of *Operation or error will be non-nil. Any non-2xx
157332// status code is an error. Response headers are in either
157333// *Operation.ServerResponse.Header or (if a response was returned at
157334// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157335// to check whether the returned error was because
157336// http.StatusNotModified was returned.
157337func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157338	gensupport.SetOptions(c.urlParams_, opts...)
157339	res, err := c.doRequest("json")
157340	if res != nil && res.StatusCode == http.StatusNotModified {
157341		if res.Body != nil {
157342			res.Body.Close()
157343		}
157344		return nil, &googleapi.Error{
157345			Code:   res.StatusCode,
157346			Header: res.Header,
157347		}
157348	}
157349	if err != nil {
157350		return nil, err
157351	}
157352	defer googleapi.CloseBody(res)
157353	if err := googleapi.CheckResponse(res); err != nil {
157354		return nil, err
157355	}
157356	ret := &Operation{
157357		ServerResponse: googleapi.ServerResponse{
157358			Header:         res.Header,
157359			HTTPStatusCode: res.StatusCode,
157360		},
157361	}
157362	target := &ret
157363	if err := gensupport.DecodeResponse(target, res); err != nil {
157364		return nil, err
157365	}
157366	return ret, nil
157367	// {
157368	//   "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.",
157369	//   "httpMethod": "PATCH",
157370	//   "id": "compute.securityPolicies.patch",
157371	//   "parameterOrder": [
157372	//     "project",
157373	//     "securityPolicy"
157374	//   ],
157375	//   "parameters": {
157376	//     "project": {
157377	//       "description": "Project ID for this request.",
157378	//       "location": "path",
157379	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157380	//       "required": true,
157381	//       "type": "string"
157382	//     },
157383	//     "requestId": {
157384	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157385	//       "location": "query",
157386	//       "type": "string"
157387	//     },
157388	//     "securityPolicy": {
157389	//       "description": "Name of the security policy to update.",
157390	//       "location": "path",
157391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157392	//       "required": true,
157393	//       "type": "string"
157394	//     }
157395	//   },
157396	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
157397	//   "request": {
157398	//     "$ref": "SecurityPolicy"
157399	//   },
157400	//   "response": {
157401	//     "$ref": "Operation"
157402	//   },
157403	//   "scopes": [
157404	//     "https://www.googleapis.com/auth/cloud-platform",
157405	//     "https://www.googleapis.com/auth/compute"
157406	//   ]
157407	// }
157408
157409}
157410
157411// method id "compute.securityPolicies.patchRule":
157412
157413type SecurityPoliciesPatchRuleCall struct {
157414	s                  *Service
157415	project            string
157416	securityPolicy     string
157417	securitypolicyrule *SecurityPolicyRule
157418	urlParams_         gensupport.URLParams
157419	ctx_               context.Context
157420	header_            http.Header
157421}
157422
157423// PatchRule: Patches a rule at the specified priority.
157424//
157425// - project: Project ID for this request.
157426// - securityPolicy: Name of the security policy to update.
157427func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
157428	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157429	c.project = project
157430	c.securityPolicy = securityPolicy
157431	c.securitypolicyrule = securitypolicyrule
157432	return c
157433}
157434
157435// Priority sets the optional parameter "priority": The priority of the
157436// rule to patch.
157437func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
157438	c.urlParams_.Set("priority", fmt.Sprint(priority))
157439	return c
157440}
157441
157442// ValidateOnly sets the optional parameter "validateOnly": If true, the
157443// request will not be committed.
157444func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall {
157445	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
157446	return c
157447}
157448
157449// Fields allows partial responses to be retrieved. See
157450// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157451// for more information.
157452func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
157453	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157454	return c
157455}
157456
157457// Context sets the context to be used in this call's Do method. Any
157458// pending HTTP request will be aborted if the provided context is
157459// canceled.
157460func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
157461	c.ctx_ = ctx
157462	return c
157463}
157464
157465// Header returns an http.Header that can be modified by the caller to
157466// add HTTP headers to the request.
157467func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
157468	if c.header_ == nil {
157469		c.header_ = make(http.Header)
157470	}
157471	return c.header_
157472}
157473
157474func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
157475	reqHeaders := make(http.Header)
157476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157477	for k, v := range c.header_ {
157478		reqHeaders[k] = v
157479	}
157480	reqHeaders.Set("User-Agent", c.s.userAgent())
157481	var body io.Reader = nil
157482	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
157483	if err != nil {
157484		return nil, err
157485	}
157486	reqHeaders.Set("Content-Type", "application/json")
157487	c.urlParams_.Set("alt", alt)
157488	c.urlParams_.Set("prettyPrint", "false")
157489	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule")
157490	urls += "?" + c.urlParams_.Encode()
157491	req, err := http.NewRequest("POST", urls, body)
157492	if err != nil {
157493		return nil, err
157494	}
157495	req.Header = reqHeaders
157496	googleapi.Expand(req.URL, map[string]string{
157497		"project":        c.project,
157498		"securityPolicy": c.securityPolicy,
157499	})
157500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157501}
157502
157503// Do executes the "compute.securityPolicies.patchRule" call.
157504// Exactly one of *Operation or error will be non-nil. Any non-2xx
157505// status code is an error. Response headers are in either
157506// *Operation.ServerResponse.Header or (if a response was returned at
157507// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157508// to check whether the returned error was because
157509// http.StatusNotModified was returned.
157510func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157511	gensupport.SetOptions(c.urlParams_, opts...)
157512	res, err := c.doRequest("json")
157513	if res != nil && res.StatusCode == http.StatusNotModified {
157514		if res.Body != nil {
157515			res.Body.Close()
157516		}
157517		return nil, &googleapi.Error{
157518			Code:   res.StatusCode,
157519			Header: res.Header,
157520		}
157521	}
157522	if err != nil {
157523		return nil, err
157524	}
157525	defer googleapi.CloseBody(res)
157526	if err := googleapi.CheckResponse(res); err != nil {
157527		return nil, err
157528	}
157529	ret := &Operation{
157530		ServerResponse: googleapi.ServerResponse{
157531			Header:         res.Header,
157532			HTTPStatusCode: res.StatusCode,
157533		},
157534	}
157535	target := &ret
157536	if err := gensupport.DecodeResponse(target, res); err != nil {
157537		return nil, err
157538	}
157539	return ret, nil
157540	// {
157541	//   "description": "Patches a rule at the specified priority.",
157542	//   "httpMethod": "POST",
157543	//   "id": "compute.securityPolicies.patchRule",
157544	//   "parameterOrder": [
157545	//     "project",
157546	//     "securityPolicy"
157547	//   ],
157548	//   "parameters": {
157549	//     "priority": {
157550	//       "description": "The priority of the rule to patch.",
157551	//       "format": "int32",
157552	//       "location": "query",
157553	//       "type": "integer"
157554	//     },
157555	//     "project": {
157556	//       "description": "Project ID for this request.",
157557	//       "location": "path",
157558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157559	//       "required": true,
157560	//       "type": "string"
157561	//     },
157562	//     "securityPolicy": {
157563	//       "description": "Name of the security policy to update.",
157564	//       "location": "path",
157565	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157566	//       "required": true,
157567	//       "type": "string"
157568	//     },
157569	//     "validateOnly": {
157570	//       "description": "If true, the request will not be committed.",
157571	//       "location": "query",
157572	//       "type": "boolean"
157573	//     }
157574	//   },
157575	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule",
157576	//   "request": {
157577	//     "$ref": "SecurityPolicyRule"
157578	//   },
157579	//   "response": {
157580	//     "$ref": "Operation"
157581	//   },
157582	//   "scopes": [
157583	//     "https://www.googleapis.com/auth/cloud-platform",
157584	//     "https://www.googleapis.com/auth/compute"
157585	//   ]
157586	// }
157587
157588}
157589
157590// method id "compute.securityPolicies.removeRule":
157591
157592type SecurityPoliciesRemoveRuleCall struct {
157593	s              *Service
157594	project        string
157595	securityPolicy string
157596	urlParams_     gensupport.URLParams
157597	ctx_           context.Context
157598	header_        http.Header
157599}
157600
157601// RemoveRule: Deletes a rule at the specified priority.
157602//
157603// - project: Project ID for this request.
157604// - securityPolicy: Name of the security policy to update.
157605func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
157606	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157607	c.project = project
157608	c.securityPolicy = securityPolicy
157609	return c
157610}
157611
157612// Priority sets the optional parameter "priority": The priority of the
157613// rule to remove from the security policy.
157614func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
157615	c.urlParams_.Set("priority", fmt.Sprint(priority))
157616	return c
157617}
157618
157619// Fields allows partial responses to be retrieved. See
157620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157621// for more information.
157622func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
157623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157624	return c
157625}
157626
157627// Context sets the context to be used in this call's Do method. Any
157628// pending HTTP request will be aborted if the provided context is
157629// canceled.
157630func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
157631	c.ctx_ = ctx
157632	return c
157633}
157634
157635// Header returns an http.Header that can be modified by the caller to
157636// add HTTP headers to the request.
157637func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
157638	if c.header_ == nil {
157639		c.header_ = make(http.Header)
157640	}
157641	return c.header_
157642}
157643
157644func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
157645	reqHeaders := make(http.Header)
157646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157647	for k, v := range c.header_ {
157648		reqHeaders[k] = v
157649	}
157650	reqHeaders.Set("User-Agent", c.s.userAgent())
157651	var body io.Reader = nil
157652	c.urlParams_.Set("alt", alt)
157653	c.urlParams_.Set("prettyPrint", "false")
157654	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule")
157655	urls += "?" + c.urlParams_.Encode()
157656	req, err := http.NewRequest("POST", urls, body)
157657	if err != nil {
157658		return nil, err
157659	}
157660	req.Header = reqHeaders
157661	googleapi.Expand(req.URL, map[string]string{
157662		"project":        c.project,
157663		"securityPolicy": c.securityPolicy,
157664	})
157665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157666}
157667
157668// Do executes the "compute.securityPolicies.removeRule" call.
157669// Exactly one of *Operation or error will be non-nil. Any non-2xx
157670// status code is an error. Response headers are in either
157671// *Operation.ServerResponse.Header or (if a response was returned at
157672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157673// to check whether the returned error was because
157674// http.StatusNotModified was returned.
157675func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157676	gensupport.SetOptions(c.urlParams_, opts...)
157677	res, err := c.doRequest("json")
157678	if res != nil && res.StatusCode == http.StatusNotModified {
157679		if res.Body != nil {
157680			res.Body.Close()
157681		}
157682		return nil, &googleapi.Error{
157683			Code:   res.StatusCode,
157684			Header: res.Header,
157685		}
157686	}
157687	if err != nil {
157688		return nil, err
157689	}
157690	defer googleapi.CloseBody(res)
157691	if err := googleapi.CheckResponse(res); err != nil {
157692		return nil, err
157693	}
157694	ret := &Operation{
157695		ServerResponse: googleapi.ServerResponse{
157696			Header:         res.Header,
157697			HTTPStatusCode: res.StatusCode,
157698		},
157699	}
157700	target := &ret
157701	if err := gensupport.DecodeResponse(target, res); err != nil {
157702		return nil, err
157703	}
157704	return ret, nil
157705	// {
157706	//   "description": "Deletes a rule at the specified priority.",
157707	//   "httpMethod": "POST",
157708	//   "id": "compute.securityPolicies.removeRule",
157709	//   "parameterOrder": [
157710	//     "project",
157711	//     "securityPolicy"
157712	//   ],
157713	//   "parameters": {
157714	//     "priority": {
157715	//       "description": "The priority of the rule to remove from the security policy.",
157716	//       "format": "int32",
157717	//       "location": "query",
157718	//       "type": "integer"
157719	//     },
157720	//     "project": {
157721	//       "description": "Project ID for this request.",
157722	//       "location": "path",
157723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157724	//       "required": true,
157725	//       "type": "string"
157726	//     },
157727	//     "securityPolicy": {
157728	//       "description": "Name of the security policy to update.",
157729	//       "location": "path",
157730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157731	//       "required": true,
157732	//       "type": "string"
157733	//     }
157734	//   },
157735	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
157736	//   "response": {
157737	//     "$ref": "Operation"
157738	//   },
157739	//   "scopes": [
157740	//     "https://www.googleapis.com/auth/cloud-platform",
157741	//     "https://www.googleapis.com/auth/compute"
157742	//   ]
157743	// }
157744
157745}
157746
157747// method id "compute.securityPolicies.setLabels":
157748
157749type SecurityPoliciesSetLabelsCall struct {
157750	s                      *Service
157751	project                string
157752	resource               string
157753	globalsetlabelsrequest *GlobalSetLabelsRequest
157754	urlParams_             gensupport.URLParams
157755	ctx_                   context.Context
157756	header_                http.Header
157757}
157758
157759// SetLabels: Sets the labels on a security policy. To learn more about
157760// labels, read the Labeling Resources documentation.
157761//
157762// - project: Project ID for this request.
157763// - resource: Name or id of the resource for this request.
157764func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall {
157765	c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157766	c.project = project
157767	c.resource = resource
157768	c.globalsetlabelsrequest = globalsetlabelsrequest
157769	return c
157770}
157771
157772// Fields allows partial responses to be retrieved. See
157773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157774// for more information.
157775func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall {
157776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157777	return c
157778}
157779
157780// Context sets the context to be used in this call's Do method. Any
157781// pending HTTP request will be aborted if the provided context is
157782// canceled.
157783func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall {
157784	c.ctx_ = ctx
157785	return c
157786}
157787
157788// Header returns an http.Header that can be modified by the caller to
157789// add HTTP headers to the request.
157790func (c *SecurityPoliciesSetLabelsCall) Header() http.Header {
157791	if c.header_ == nil {
157792		c.header_ = make(http.Header)
157793	}
157794	return c.header_
157795}
157796
157797func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
157798	reqHeaders := make(http.Header)
157799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157800	for k, v := range c.header_ {
157801		reqHeaders[k] = v
157802	}
157803	reqHeaders.Set("User-Agent", c.s.userAgent())
157804	var body io.Reader = nil
157805	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
157806	if err != nil {
157807		return nil, err
157808	}
157809	reqHeaders.Set("Content-Type", "application/json")
157810	c.urlParams_.Set("alt", alt)
157811	c.urlParams_.Set("prettyPrint", "false")
157812	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{resource}/setLabels")
157813	urls += "?" + c.urlParams_.Encode()
157814	req, err := http.NewRequest("POST", urls, body)
157815	if err != nil {
157816		return nil, err
157817	}
157818	req.Header = reqHeaders
157819	googleapi.Expand(req.URL, map[string]string{
157820		"project":  c.project,
157821		"resource": c.resource,
157822	})
157823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157824}
157825
157826// Do executes the "compute.securityPolicies.setLabels" call.
157827// Exactly one of *Operation or error will be non-nil. Any non-2xx
157828// status code is an error. Response headers are in either
157829// *Operation.ServerResponse.Header or (if a response was returned at
157830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157831// to check whether the returned error was because
157832// http.StatusNotModified was returned.
157833func (c *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157834	gensupport.SetOptions(c.urlParams_, opts...)
157835	res, err := c.doRequest("json")
157836	if res != nil && res.StatusCode == http.StatusNotModified {
157837		if res.Body != nil {
157838			res.Body.Close()
157839		}
157840		return nil, &googleapi.Error{
157841			Code:   res.StatusCode,
157842			Header: res.Header,
157843		}
157844	}
157845	if err != nil {
157846		return nil, err
157847	}
157848	defer googleapi.CloseBody(res)
157849	if err := googleapi.CheckResponse(res); err != nil {
157850		return nil, err
157851	}
157852	ret := &Operation{
157853		ServerResponse: googleapi.ServerResponse{
157854			Header:         res.Header,
157855			HTTPStatusCode: res.StatusCode,
157856		},
157857	}
157858	target := &ret
157859	if err := gensupport.DecodeResponse(target, res); err != nil {
157860		return nil, err
157861	}
157862	return ret, nil
157863	// {
157864	//   "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.",
157865	//   "httpMethod": "POST",
157866	//   "id": "compute.securityPolicies.setLabels",
157867	//   "parameterOrder": [
157868	//     "project",
157869	//     "resource"
157870	//   ],
157871	//   "parameters": {
157872	//     "project": {
157873	//       "description": "Project ID for this request.",
157874	//       "location": "path",
157875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157876	//       "required": true,
157877	//       "type": "string"
157878	//     },
157879	//     "resource": {
157880	//       "description": "Name or id of the resource for this request.",
157881	//       "location": "path",
157882	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157883	//       "required": true,
157884	//       "type": "string"
157885	//     }
157886	//   },
157887	//   "path": "projects/{project}/global/securityPolicies/{resource}/setLabels",
157888	//   "request": {
157889	//     "$ref": "GlobalSetLabelsRequest"
157890	//   },
157891	//   "response": {
157892	//     "$ref": "Operation"
157893	//   },
157894	//   "scopes": [
157895	//     "https://www.googleapis.com/auth/cloud-platform",
157896	//     "https://www.googleapis.com/auth/compute"
157897	//   ]
157898	// }
157899
157900}
157901
157902// method id "compute.securityPolicies.testIamPermissions":
157903
157904type SecurityPoliciesTestIamPermissionsCall struct {
157905	s                      *Service
157906	project                string
157907	resource               string
157908	testpermissionsrequest *TestPermissionsRequest
157909	urlParams_             gensupport.URLParams
157910	ctx_                   context.Context
157911	header_                http.Header
157912}
157913
157914// TestIamPermissions: Returns permissions that a caller has on the
157915// specified resource.
157916//
157917// - project: Project ID for this request.
157918// - resource: Name or id of the resource for this request.
157919func (r *SecurityPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SecurityPoliciesTestIamPermissionsCall {
157920	c := &SecurityPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157921	c.project = project
157922	c.resource = resource
157923	c.testpermissionsrequest = testpermissionsrequest
157924	return c
157925}
157926
157927// Fields allows partial responses to be retrieved. See
157928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157929// for more information.
157930func (c *SecurityPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SecurityPoliciesTestIamPermissionsCall {
157931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157932	return c
157933}
157934
157935// Context sets the context to be used in this call's Do method. Any
157936// pending HTTP request will be aborted if the provided context is
157937// canceled.
157938func (c *SecurityPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SecurityPoliciesTestIamPermissionsCall {
157939	c.ctx_ = ctx
157940	return c
157941}
157942
157943// Header returns an http.Header that can be modified by the caller to
157944// add HTTP headers to the request.
157945func (c *SecurityPoliciesTestIamPermissionsCall) Header() http.Header {
157946	if c.header_ == nil {
157947		c.header_ = make(http.Header)
157948	}
157949	return c.header_
157950}
157951
157952func (c *SecurityPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
157953	reqHeaders := make(http.Header)
157954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157955	for k, v := range c.header_ {
157956		reqHeaders[k] = v
157957	}
157958	reqHeaders.Set("User-Agent", c.s.userAgent())
157959	var body io.Reader = nil
157960	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
157961	if err != nil {
157962		return nil, err
157963	}
157964	reqHeaders.Set("Content-Type", "application/json")
157965	c.urlParams_.Set("alt", alt)
157966	c.urlParams_.Set("prettyPrint", "false")
157967	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{resource}/testIamPermissions")
157968	urls += "?" + c.urlParams_.Encode()
157969	req, err := http.NewRequest("POST", urls, body)
157970	if err != nil {
157971		return nil, err
157972	}
157973	req.Header = reqHeaders
157974	googleapi.Expand(req.URL, map[string]string{
157975		"project":  c.project,
157976		"resource": c.resource,
157977	})
157978	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157979}
157980
157981// Do executes the "compute.securityPolicies.testIamPermissions" call.
157982// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
157983// non-2xx status code is an error. Response headers are in either
157984// *TestPermissionsResponse.ServerResponse.Header or (if a response was
157985// returned at all) in error.(*googleapi.Error).Header. Use
157986// googleapi.IsNotModified to check whether the returned error was
157987// because http.StatusNotModified was returned.
157988func (c *SecurityPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
157989	gensupport.SetOptions(c.urlParams_, opts...)
157990	res, err := c.doRequest("json")
157991	if res != nil && res.StatusCode == http.StatusNotModified {
157992		if res.Body != nil {
157993			res.Body.Close()
157994		}
157995		return nil, &googleapi.Error{
157996			Code:   res.StatusCode,
157997			Header: res.Header,
157998		}
157999	}
158000	if err != nil {
158001		return nil, err
158002	}
158003	defer googleapi.CloseBody(res)
158004	if err := googleapi.CheckResponse(res); err != nil {
158005		return nil, err
158006	}
158007	ret := &TestPermissionsResponse{
158008		ServerResponse: googleapi.ServerResponse{
158009			Header:         res.Header,
158010			HTTPStatusCode: res.StatusCode,
158011		},
158012	}
158013	target := &ret
158014	if err := gensupport.DecodeResponse(target, res); err != nil {
158015		return nil, err
158016	}
158017	return ret, nil
158018	// {
158019	//   "description": "Returns permissions that a caller has on the specified resource.",
158020	//   "httpMethod": "POST",
158021	//   "id": "compute.securityPolicies.testIamPermissions",
158022	//   "parameterOrder": [
158023	//     "project",
158024	//     "resource"
158025	//   ],
158026	//   "parameters": {
158027	//     "project": {
158028	//       "description": "Project ID for this request.",
158029	//       "location": "path",
158030	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158031	//       "required": true,
158032	//       "type": "string"
158033	//     },
158034	//     "resource": {
158035	//       "description": "Name or id of the resource for this request.",
158036	//       "location": "path",
158037	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158038	//       "required": true,
158039	//       "type": "string"
158040	//     }
158041	//   },
158042	//   "path": "projects/{project}/global/securityPolicies/{resource}/testIamPermissions",
158043	//   "request": {
158044	//     "$ref": "TestPermissionsRequest"
158045	//   },
158046	//   "response": {
158047	//     "$ref": "TestPermissionsResponse"
158048	//   },
158049	//   "scopes": [
158050	//     "https://www.googleapis.com/auth/cloud-platform",
158051	//     "https://www.googleapis.com/auth/compute",
158052	//     "https://www.googleapis.com/auth/compute.readonly"
158053	//   ]
158054	// }
158055
158056}
158057
158058// method id "compute.serviceAttachments.aggregatedList":
158059
158060type ServiceAttachmentsAggregatedListCall struct {
158061	s            *Service
158062	project      string
158063	urlParams_   gensupport.URLParams
158064	ifNoneMatch_ string
158065	ctx_         context.Context
158066	header_      http.Header
158067}
158068
158069// AggregatedList: Retrieves the list of all ServiceAttachment
158070// resources, regional and global, available to the specified project.
158071//
158072// - project: Name of the project scoping this request.
158073func (r *ServiceAttachmentsService) AggregatedList(project string) *ServiceAttachmentsAggregatedListCall {
158074	c := &ServiceAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158075	c.project = project
158076	return c
158077}
158078
158079// Filter sets the optional parameter "filter": A filter expression that
158080// filters resources listed in the response. The expression must specify
158081// the field name, a comparison operator, and the value that you want to
158082// use for filtering. The value must be a string, a number, or a
158083// boolean. The comparison operator must be either `=`, `!=`, `>`, or
158084// `<`.
158085//
158086// For example, if you are filtering Compute Engine instances, you can
158087// exclude instances named `example-instance` by specifying `name !=
158088// example-instance`.
158089//
158090// You can also filter nested fields. For example, you could specify
158091// `scheduling.automaticRestart = false` to include instances only if
158092// they are not scheduled for automatic restarts. You can use filtering
158093// on nested fields to filter based on resource labels.
158094//
158095// To filter on multiple expressions, provide each separate expression
158096// within parentheses. For example: ``` (scheduling.automaticRestart =
158097// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
158098// is an `AND` expression. However, you can include `AND` and `OR`
158099// expressions explicitly. For example: ``` (cpuPlatform = "Intel
158100// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
158101// (scheduling.automaticRestart = true) ```
158102func (c *ServiceAttachmentsAggregatedListCall) Filter(filter string) *ServiceAttachmentsAggregatedListCall {
158103	c.urlParams_.Set("filter", filter)
158104	return c
158105}
158106
158107// IncludeAllScopes sets the optional parameter "includeAllScopes":
158108// Indicates whether every visible scope for each scope type (zone,
158109// region, global) should be included in the response. For new resource
158110// types added after this field, the flag has no effect as new resource
158111// types will always include every visible scope for each scope type in
158112// response. For resource types which predate this field, if this flag
158113// is omitted or false, only scopes of the scope types where the
158114// resource type is expected to be found will be included.
158115func (c *ServiceAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ServiceAttachmentsAggregatedListCall {
158116	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
158117	return c
158118}
158119
158120// MaxResults sets the optional parameter "maxResults": The maximum
158121// number of results per page that should be returned. If the number of
158122// available results is larger than `maxResults`, Compute Engine returns
158123// a `nextPageToken` that can be used to get the next page of results in
158124// subsequent list requests. Acceptable values are `0` to `500`,
158125// inclusive. (Default: `500`)
158126func (c *ServiceAttachmentsAggregatedListCall) MaxResults(maxResults int64) *ServiceAttachmentsAggregatedListCall {
158127	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158128	return c
158129}
158130
158131// OrderBy sets the optional parameter "orderBy": Sorts list results by
158132// a certain order. By default, results are returned in alphanumerical
158133// order based on the resource name.
158134//
158135// You can also sort results in descending order based on the creation
158136// timestamp using `orderBy="creationTimestamp desc". This sorts
158137// results based on the `creationTimestamp` field in reverse
158138// chronological order (newest result first). Use this to sort resources
158139// like operations so that the newest operation is returned
158140// first.
158141//
158142// Currently, only sorting by `name` or `creationTimestamp desc` is
158143// supported.
158144func (c *ServiceAttachmentsAggregatedListCall) OrderBy(orderBy string) *ServiceAttachmentsAggregatedListCall {
158145	c.urlParams_.Set("orderBy", orderBy)
158146	return c
158147}
158148
158149// PageToken sets the optional parameter "pageToken": Specifies a page
158150// token to use. Set `pageToken` to the `nextPageToken` returned by a
158151// previous list request to get the next page of results.
158152func (c *ServiceAttachmentsAggregatedListCall) PageToken(pageToken string) *ServiceAttachmentsAggregatedListCall {
158153	c.urlParams_.Set("pageToken", pageToken)
158154	return c
158155}
158156
158157// ReturnPartialSuccess sets the optional parameter
158158// "returnPartialSuccess": Opt-in for partial success behavior which
158159// provides partial results in case of failure. The default value is
158160// false.
158161func (c *ServiceAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsAggregatedListCall {
158162	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
158163	return c
158164}
158165
158166// Fields allows partial responses to be retrieved. See
158167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158168// for more information.
158169func (c *ServiceAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsAggregatedListCall {
158170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158171	return c
158172}
158173
158174// IfNoneMatch sets the optional parameter which makes the operation
158175// fail if the object's ETag matches the given value. This is useful for
158176// getting updates only after the object has changed since the last
158177// request. Use googleapi.IsNotModified to check whether the response
158178// error from Do is the result of In-None-Match.
158179func (c *ServiceAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsAggregatedListCall {
158180	c.ifNoneMatch_ = entityTag
158181	return c
158182}
158183
158184// Context sets the context to be used in this call's Do method. Any
158185// pending HTTP request will be aborted if the provided context is
158186// canceled.
158187func (c *ServiceAttachmentsAggregatedListCall) Context(ctx context.Context) *ServiceAttachmentsAggregatedListCall {
158188	c.ctx_ = ctx
158189	return c
158190}
158191
158192// Header returns an http.Header that can be modified by the caller to
158193// add HTTP headers to the request.
158194func (c *ServiceAttachmentsAggregatedListCall) Header() http.Header {
158195	if c.header_ == nil {
158196		c.header_ = make(http.Header)
158197	}
158198	return c.header_
158199}
158200
158201func (c *ServiceAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
158202	reqHeaders := make(http.Header)
158203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158204	for k, v := range c.header_ {
158205		reqHeaders[k] = v
158206	}
158207	reqHeaders.Set("User-Agent", c.s.userAgent())
158208	if c.ifNoneMatch_ != "" {
158209		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158210	}
158211	var body io.Reader = nil
158212	c.urlParams_.Set("alt", alt)
158213	c.urlParams_.Set("prettyPrint", "false")
158214	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/serviceAttachments")
158215	urls += "?" + c.urlParams_.Encode()
158216	req, err := http.NewRequest("GET", urls, body)
158217	if err != nil {
158218		return nil, err
158219	}
158220	req.Header = reqHeaders
158221	googleapi.Expand(req.URL, map[string]string{
158222		"project": c.project,
158223	})
158224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158225}
158226
158227// Do executes the "compute.serviceAttachments.aggregatedList" call.
158228// Exactly one of *ServiceAttachmentAggregatedList or error will be
158229// non-nil. Any non-2xx status code is an error. Response headers are in
158230// either *ServiceAttachmentAggregatedList.ServerResponse.Header or (if
158231// a response was returned at all) in error.(*googleapi.Error).Header.
158232// Use googleapi.IsNotModified to check whether the returned error was
158233// because http.StatusNotModified was returned.
158234func (c *ServiceAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentAggregatedList, error) {
158235	gensupport.SetOptions(c.urlParams_, opts...)
158236	res, err := c.doRequest("json")
158237	if res != nil && res.StatusCode == http.StatusNotModified {
158238		if res.Body != nil {
158239			res.Body.Close()
158240		}
158241		return nil, &googleapi.Error{
158242			Code:   res.StatusCode,
158243			Header: res.Header,
158244		}
158245	}
158246	if err != nil {
158247		return nil, err
158248	}
158249	defer googleapi.CloseBody(res)
158250	if err := googleapi.CheckResponse(res); err != nil {
158251		return nil, err
158252	}
158253	ret := &ServiceAttachmentAggregatedList{
158254		ServerResponse: googleapi.ServerResponse{
158255			Header:         res.Header,
158256			HTTPStatusCode: res.StatusCode,
158257		},
158258	}
158259	target := &ret
158260	if err := gensupport.DecodeResponse(target, res); err != nil {
158261		return nil, err
158262	}
158263	return ret, nil
158264	// {
158265	//   "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project.",
158266	//   "httpMethod": "GET",
158267	//   "id": "compute.serviceAttachments.aggregatedList",
158268	//   "parameterOrder": [
158269	//     "project"
158270	//   ],
158271	//   "parameters": {
158272	//     "filter": {
158273	//       "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) ```",
158274	//       "location": "query",
158275	//       "type": "string"
158276	//     },
158277	//     "includeAllScopes": {
158278	//       "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.",
158279	//       "location": "query",
158280	//       "type": "boolean"
158281	//     },
158282	//     "maxResults": {
158283	//       "default": "500",
158284	//       "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`)",
158285	//       "format": "uint32",
158286	//       "location": "query",
158287	//       "minimum": "0",
158288	//       "type": "integer"
158289	//     },
158290	//     "orderBy": {
158291	//       "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.",
158292	//       "location": "query",
158293	//       "type": "string"
158294	//     },
158295	//     "pageToken": {
158296	//       "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.",
158297	//       "location": "query",
158298	//       "type": "string"
158299	//     },
158300	//     "project": {
158301	//       "description": "Name of the project scoping this request.",
158302	//       "location": "path",
158303	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158304	//       "required": true,
158305	//       "type": "string"
158306	//     },
158307	//     "returnPartialSuccess": {
158308	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
158309	//       "location": "query",
158310	//       "type": "boolean"
158311	//     }
158312	//   },
158313	//   "path": "projects/{project}/aggregated/serviceAttachments",
158314	//   "response": {
158315	//     "$ref": "ServiceAttachmentAggregatedList"
158316	//   },
158317	//   "scopes": [
158318	//     "https://www.googleapis.com/auth/cloud-platform",
158319	//     "https://www.googleapis.com/auth/compute",
158320	//     "https://www.googleapis.com/auth/compute.readonly"
158321	//   ]
158322	// }
158323
158324}
158325
158326// Pages invokes f for each page of results.
158327// A non-nil error returned from f will halt the iteration.
158328// The provided context supersedes any context provided to the Context method.
158329func (c *ServiceAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*ServiceAttachmentAggregatedList) error) error {
158330	c.ctx_ = ctx
158331	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158332	for {
158333		x, err := c.Do()
158334		if err != nil {
158335			return err
158336		}
158337		if err := f(x); err != nil {
158338			return err
158339		}
158340		if x.NextPageToken == "" {
158341			return nil
158342		}
158343		c.PageToken(x.NextPageToken)
158344	}
158345}
158346
158347// method id "compute.serviceAttachments.delete":
158348
158349type ServiceAttachmentsDeleteCall struct {
158350	s                 *Service
158351	project           string
158352	region            string
158353	serviceAttachment string
158354	urlParams_        gensupport.URLParams
158355	ctx_              context.Context
158356	header_           http.Header
158357}
158358
158359// Delete: Deletes the specified ServiceAttachment in the given scope
158360//
158361// - project: Project ID for this request.
158362// - region: Name of the region of this request.
158363// - serviceAttachment: Name of the ServiceAttachment resource to
158364//   delete.
158365func (r *ServiceAttachmentsService) Delete(project string, region string, serviceAttachment string) *ServiceAttachmentsDeleteCall {
158366	c := &ServiceAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158367	c.project = project
158368	c.region = region
158369	c.serviceAttachment = serviceAttachment
158370	return c
158371}
158372
158373// RequestId sets the optional parameter "requestId": An optional
158374// request ID to identify requests. Specify a unique request ID so that
158375// if you must retry your request, the server will know to ignore the
158376// request if it has already been completed.
158377//
158378// For example, consider a situation where you make an initial request
158379// and the request times out. If you make the request again with the
158380// same request ID, the server can check if original operation with the
158381// same request ID was received, and if so, will ignore the second
158382// request. This prevents clients from accidentally creating duplicate
158383// commitments.
158384//
158385// The request ID must be a valid UUID with the exception that zero UUID
158386// is not supported (00000000-0000-0000-0000-000000000000).
158387func (c *ServiceAttachmentsDeleteCall) RequestId(requestId string) *ServiceAttachmentsDeleteCall {
158388	c.urlParams_.Set("requestId", requestId)
158389	return c
158390}
158391
158392// Fields allows partial responses to be retrieved. See
158393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158394// for more information.
158395func (c *ServiceAttachmentsDeleteCall) Fields(s ...googleapi.Field) *ServiceAttachmentsDeleteCall {
158396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158397	return c
158398}
158399
158400// Context sets the context to be used in this call's Do method. Any
158401// pending HTTP request will be aborted if the provided context is
158402// canceled.
158403func (c *ServiceAttachmentsDeleteCall) Context(ctx context.Context) *ServiceAttachmentsDeleteCall {
158404	c.ctx_ = ctx
158405	return c
158406}
158407
158408// Header returns an http.Header that can be modified by the caller to
158409// add HTTP headers to the request.
158410func (c *ServiceAttachmentsDeleteCall) Header() http.Header {
158411	if c.header_ == nil {
158412		c.header_ = make(http.Header)
158413	}
158414	return c.header_
158415}
158416
158417func (c *ServiceAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
158418	reqHeaders := make(http.Header)
158419	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158420	for k, v := range c.header_ {
158421		reqHeaders[k] = v
158422	}
158423	reqHeaders.Set("User-Agent", c.s.userAgent())
158424	var body io.Reader = nil
158425	c.urlParams_.Set("alt", alt)
158426	c.urlParams_.Set("prettyPrint", "false")
158427	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
158428	urls += "?" + c.urlParams_.Encode()
158429	req, err := http.NewRequest("DELETE", urls, body)
158430	if err != nil {
158431		return nil, err
158432	}
158433	req.Header = reqHeaders
158434	googleapi.Expand(req.URL, map[string]string{
158435		"project":           c.project,
158436		"region":            c.region,
158437		"serviceAttachment": c.serviceAttachment,
158438	})
158439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158440}
158441
158442// Do executes the "compute.serviceAttachments.delete" call.
158443// Exactly one of *Operation or error will be non-nil. Any non-2xx
158444// status code is an error. Response headers are in either
158445// *Operation.ServerResponse.Header or (if a response was returned at
158446// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158447// to check whether the returned error was because
158448// http.StatusNotModified was returned.
158449func (c *ServiceAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158450	gensupport.SetOptions(c.urlParams_, opts...)
158451	res, err := c.doRequest("json")
158452	if res != nil && res.StatusCode == http.StatusNotModified {
158453		if res.Body != nil {
158454			res.Body.Close()
158455		}
158456		return nil, &googleapi.Error{
158457			Code:   res.StatusCode,
158458			Header: res.Header,
158459		}
158460	}
158461	if err != nil {
158462		return nil, err
158463	}
158464	defer googleapi.CloseBody(res)
158465	if err := googleapi.CheckResponse(res); err != nil {
158466		return nil, err
158467	}
158468	ret := &Operation{
158469		ServerResponse: googleapi.ServerResponse{
158470			Header:         res.Header,
158471			HTTPStatusCode: res.StatusCode,
158472		},
158473	}
158474	target := &ret
158475	if err := gensupport.DecodeResponse(target, res); err != nil {
158476		return nil, err
158477	}
158478	return ret, nil
158479	// {
158480	//   "description": "Deletes the specified ServiceAttachment in the given scope",
158481	//   "httpMethod": "DELETE",
158482	//   "id": "compute.serviceAttachments.delete",
158483	//   "parameterOrder": [
158484	//     "project",
158485	//     "region",
158486	//     "serviceAttachment"
158487	//   ],
158488	//   "parameters": {
158489	//     "project": {
158490	//       "description": "Project ID for this request.",
158491	//       "location": "path",
158492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158493	//       "required": true,
158494	//       "type": "string"
158495	//     },
158496	//     "region": {
158497	//       "description": "Name of the region of this request.",
158498	//       "location": "path",
158499	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158500	//       "required": true,
158501	//       "type": "string"
158502	//     },
158503	//     "requestId": {
158504	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158505	//       "location": "query",
158506	//       "type": "string"
158507	//     },
158508	//     "serviceAttachment": {
158509	//       "description": "Name of the ServiceAttachment resource to delete.",
158510	//       "location": "path",
158511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158512	//       "required": true,
158513	//       "type": "string"
158514	//     }
158515	//   },
158516	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
158517	//   "response": {
158518	//     "$ref": "Operation"
158519	//   },
158520	//   "scopes": [
158521	//     "https://www.googleapis.com/auth/cloud-platform",
158522	//     "https://www.googleapis.com/auth/compute"
158523	//   ]
158524	// }
158525
158526}
158527
158528// method id "compute.serviceAttachments.get":
158529
158530type ServiceAttachmentsGetCall struct {
158531	s                 *Service
158532	project           string
158533	region            string
158534	serviceAttachment string
158535	urlParams_        gensupport.URLParams
158536	ifNoneMatch_      string
158537	ctx_              context.Context
158538	header_           http.Header
158539}
158540
158541// Get: Returns the specified ServiceAttachment resource in the given
158542// scope.
158543//
158544// - project: Project ID for this request.
158545// - region: Name of the region of this request.
158546// - serviceAttachment: Name of the ServiceAttachment resource to
158547//   return.
158548func (r *ServiceAttachmentsService) Get(project string, region string, serviceAttachment string) *ServiceAttachmentsGetCall {
158549	c := &ServiceAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158550	c.project = project
158551	c.region = region
158552	c.serviceAttachment = serviceAttachment
158553	return c
158554}
158555
158556// Fields allows partial responses to be retrieved. See
158557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158558// for more information.
158559func (c *ServiceAttachmentsGetCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetCall {
158560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158561	return c
158562}
158563
158564// IfNoneMatch sets the optional parameter which makes the operation
158565// fail if the object's ETag matches the given value. This is useful for
158566// getting updates only after the object has changed since the last
158567// request. Use googleapi.IsNotModified to check whether the response
158568// error from Do is the result of In-None-Match.
158569func (c *ServiceAttachmentsGetCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetCall {
158570	c.ifNoneMatch_ = entityTag
158571	return c
158572}
158573
158574// Context sets the context to be used in this call's Do method. Any
158575// pending HTTP request will be aborted if the provided context is
158576// canceled.
158577func (c *ServiceAttachmentsGetCall) Context(ctx context.Context) *ServiceAttachmentsGetCall {
158578	c.ctx_ = ctx
158579	return c
158580}
158581
158582// Header returns an http.Header that can be modified by the caller to
158583// add HTTP headers to the request.
158584func (c *ServiceAttachmentsGetCall) Header() http.Header {
158585	if c.header_ == nil {
158586		c.header_ = make(http.Header)
158587	}
158588	return c.header_
158589}
158590
158591func (c *ServiceAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
158592	reqHeaders := make(http.Header)
158593	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158594	for k, v := range c.header_ {
158595		reqHeaders[k] = v
158596	}
158597	reqHeaders.Set("User-Agent", c.s.userAgent())
158598	if c.ifNoneMatch_ != "" {
158599		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158600	}
158601	var body io.Reader = nil
158602	c.urlParams_.Set("alt", alt)
158603	c.urlParams_.Set("prettyPrint", "false")
158604	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
158605	urls += "?" + c.urlParams_.Encode()
158606	req, err := http.NewRequest("GET", urls, body)
158607	if err != nil {
158608		return nil, err
158609	}
158610	req.Header = reqHeaders
158611	googleapi.Expand(req.URL, map[string]string{
158612		"project":           c.project,
158613		"region":            c.region,
158614		"serviceAttachment": c.serviceAttachment,
158615	})
158616	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158617}
158618
158619// Do executes the "compute.serviceAttachments.get" call.
158620// Exactly one of *ServiceAttachment or error will be non-nil. Any
158621// non-2xx status code is an error. Response headers are in either
158622// *ServiceAttachment.ServerResponse.Header or (if a response was
158623// returned at all) in error.(*googleapi.Error).Header. Use
158624// googleapi.IsNotModified to check whether the returned error was
158625// because http.StatusNotModified was returned.
158626func (c *ServiceAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*ServiceAttachment, error) {
158627	gensupport.SetOptions(c.urlParams_, opts...)
158628	res, err := c.doRequest("json")
158629	if res != nil && res.StatusCode == http.StatusNotModified {
158630		if res.Body != nil {
158631			res.Body.Close()
158632		}
158633		return nil, &googleapi.Error{
158634			Code:   res.StatusCode,
158635			Header: res.Header,
158636		}
158637	}
158638	if err != nil {
158639		return nil, err
158640	}
158641	defer googleapi.CloseBody(res)
158642	if err := googleapi.CheckResponse(res); err != nil {
158643		return nil, err
158644	}
158645	ret := &ServiceAttachment{
158646		ServerResponse: googleapi.ServerResponse{
158647			Header:         res.Header,
158648			HTTPStatusCode: res.StatusCode,
158649		},
158650	}
158651	target := &ret
158652	if err := gensupport.DecodeResponse(target, res); err != nil {
158653		return nil, err
158654	}
158655	return ret, nil
158656	// {
158657	//   "description": "Returns the specified ServiceAttachment resource in the given scope.",
158658	//   "httpMethod": "GET",
158659	//   "id": "compute.serviceAttachments.get",
158660	//   "parameterOrder": [
158661	//     "project",
158662	//     "region",
158663	//     "serviceAttachment"
158664	//   ],
158665	//   "parameters": {
158666	//     "project": {
158667	//       "description": "Project ID for this request.",
158668	//       "location": "path",
158669	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158670	//       "required": true,
158671	//       "type": "string"
158672	//     },
158673	//     "region": {
158674	//       "description": "Name of the region of this request.",
158675	//       "location": "path",
158676	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158677	//       "required": true,
158678	//       "type": "string"
158679	//     },
158680	//     "serviceAttachment": {
158681	//       "description": "Name of the ServiceAttachment resource to return.",
158682	//       "location": "path",
158683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158684	//       "required": true,
158685	//       "type": "string"
158686	//     }
158687	//   },
158688	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
158689	//   "response": {
158690	//     "$ref": "ServiceAttachment"
158691	//   },
158692	//   "scopes": [
158693	//     "https://www.googleapis.com/auth/cloud-platform",
158694	//     "https://www.googleapis.com/auth/compute",
158695	//     "https://www.googleapis.com/auth/compute.readonly"
158696	//   ]
158697	// }
158698
158699}
158700
158701// method id "compute.serviceAttachments.getIamPolicy":
158702
158703type ServiceAttachmentsGetIamPolicyCall struct {
158704	s            *Service
158705	project      string
158706	region       string
158707	resource     string
158708	urlParams_   gensupport.URLParams
158709	ifNoneMatch_ string
158710	ctx_         context.Context
158711	header_      http.Header
158712}
158713
158714// GetIamPolicy: Gets the access control policy for a resource. May be
158715// empty if no such policy or resource exists.
158716//
158717// - project: Project ID for this request.
158718// - region: The name of the region for this request.
158719// - resource: Name or id of the resource for this request.
158720func (r *ServiceAttachmentsService) GetIamPolicy(project string, region string, resource string) *ServiceAttachmentsGetIamPolicyCall {
158721	c := &ServiceAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158722	c.project = project
158723	c.region = region
158724	c.resource = resource
158725	return c
158726}
158727
158728// OptionsRequestedPolicyVersion sets the optional parameter
158729// "optionsRequestedPolicyVersion": Requested IAM Policy version.
158730func (c *ServiceAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ServiceAttachmentsGetIamPolicyCall {
158731	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
158732	return c
158733}
158734
158735// Fields allows partial responses to be retrieved. See
158736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158737// for more information.
158738func (c *ServiceAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetIamPolicyCall {
158739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158740	return c
158741}
158742
158743// IfNoneMatch sets the optional parameter which makes the operation
158744// fail if the object's ETag matches the given value. This is useful for
158745// getting updates only after the object has changed since the last
158746// request. Use googleapi.IsNotModified to check whether the response
158747// error from Do is the result of In-None-Match.
158748func (c *ServiceAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetIamPolicyCall {
158749	c.ifNoneMatch_ = entityTag
158750	return c
158751}
158752
158753// Context sets the context to be used in this call's Do method. Any
158754// pending HTTP request will be aborted if the provided context is
158755// canceled.
158756func (c *ServiceAttachmentsGetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsGetIamPolicyCall {
158757	c.ctx_ = ctx
158758	return c
158759}
158760
158761// Header returns an http.Header that can be modified by the caller to
158762// add HTTP headers to the request.
158763func (c *ServiceAttachmentsGetIamPolicyCall) Header() http.Header {
158764	if c.header_ == nil {
158765		c.header_ = make(http.Header)
158766	}
158767	return c.header_
158768}
158769
158770func (c *ServiceAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
158771	reqHeaders := make(http.Header)
158772	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158773	for k, v := range c.header_ {
158774		reqHeaders[k] = v
158775	}
158776	reqHeaders.Set("User-Agent", c.s.userAgent())
158777	if c.ifNoneMatch_ != "" {
158778		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158779	}
158780	var body io.Reader = nil
158781	c.urlParams_.Set("alt", alt)
158782	c.urlParams_.Set("prettyPrint", "false")
158783	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy")
158784	urls += "?" + c.urlParams_.Encode()
158785	req, err := http.NewRequest("GET", urls, body)
158786	if err != nil {
158787		return nil, err
158788	}
158789	req.Header = reqHeaders
158790	googleapi.Expand(req.URL, map[string]string{
158791		"project":  c.project,
158792		"region":   c.region,
158793		"resource": c.resource,
158794	})
158795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158796}
158797
158798// Do executes the "compute.serviceAttachments.getIamPolicy" call.
158799// Exactly one of *Policy or error will be non-nil. Any non-2xx status
158800// code is an error. Response headers are in either
158801// *Policy.ServerResponse.Header or (if a response was returned at all)
158802// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
158803// check whether the returned error was because http.StatusNotModified
158804// was returned.
158805func (c *ServiceAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
158806	gensupport.SetOptions(c.urlParams_, opts...)
158807	res, err := c.doRequest("json")
158808	if res != nil && res.StatusCode == http.StatusNotModified {
158809		if res.Body != nil {
158810			res.Body.Close()
158811		}
158812		return nil, &googleapi.Error{
158813			Code:   res.StatusCode,
158814			Header: res.Header,
158815		}
158816	}
158817	if err != nil {
158818		return nil, err
158819	}
158820	defer googleapi.CloseBody(res)
158821	if err := googleapi.CheckResponse(res); err != nil {
158822		return nil, err
158823	}
158824	ret := &Policy{
158825		ServerResponse: googleapi.ServerResponse{
158826			Header:         res.Header,
158827			HTTPStatusCode: res.StatusCode,
158828		},
158829	}
158830	target := &ret
158831	if err := gensupport.DecodeResponse(target, res); err != nil {
158832		return nil, err
158833	}
158834	return ret, nil
158835	// {
158836	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
158837	//   "httpMethod": "GET",
158838	//   "id": "compute.serviceAttachments.getIamPolicy",
158839	//   "parameterOrder": [
158840	//     "project",
158841	//     "region",
158842	//     "resource"
158843	//   ],
158844	//   "parameters": {
158845	//     "optionsRequestedPolicyVersion": {
158846	//       "description": "Requested IAM Policy version.",
158847	//       "format": "int32",
158848	//       "location": "query",
158849	//       "type": "integer"
158850	//     },
158851	//     "project": {
158852	//       "description": "Project ID for this request.",
158853	//       "location": "path",
158854	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158855	//       "required": true,
158856	//       "type": "string"
158857	//     },
158858	//     "region": {
158859	//       "description": "The name of the region for this request.",
158860	//       "location": "path",
158861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158862	//       "required": true,
158863	//       "type": "string"
158864	//     },
158865	//     "resource": {
158866	//       "description": "Name or id of the resource for this request.",
158867	//       "location": "path",
158868	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158869	//       "required": true,
158870	//       "type": "string"
158871	//     }
158872	//   },
158873	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
158874	//   "response": {
158875	//     "$ref": "Policy"
158876	//   },
158877	//   "scopes": [
158878	//     "https://www.googleapis.com/auth/cloud-platform",
158879	//     "https://www.googleapis.com/auth/compute",
158880	//     "https://www.googleapis.com/auth/compute.readonly"
158881	//   ]
158882	// }
158883
158884}
158885
158886// method id "compute.serviceAttachments.insert":
158887
158888type ServiceAttachmentsInsertCall struct {
158889	s                 *Service
158890	project           string
158891	region            string
158892	serviceattachment *ServiceAttachment
158893	urlParams_        gensupport.URLParams
158894	ctx_              context.Context
158895	header_           http.Header
158896}
158897
158898// Insert: Creates a ServiceAttachment in the specified project in the
158899// given scope using the parameters that are included in the request.
158900//
158901// - project: Project ID for this request.
158902// - region: Name of the region of this request.
158903func (r *ServiceAttachmentsService) Insert(project string, region string, serviceattachment *ServiceAttachment) *ServiceAttachmentsInsertCall {
158904	c := &ServiceAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158905	c.project = project
158906	c.region = region
158907	c.serviceattachment = serviceattachment
158908	return c
158909}
158910
158911// RequestId sets the optional parameter "requestId": An optional
158912// request ID to identify requests. Specify a unique request ID so that
158913// if you must retry your request, the server will know to ignore the
158914// request if it has already been completed.
158915//
158916// For example, consider a situation where you make an initial request
158917// and the request times out. If you make the request again with the
158918// same request ID, the server can check if original operation with the
158919// same request ID was received, and if so, will ignore the second
158920// request. This prevents clients from accidentally creating duplicate
158921// commitments.
158922//
158923// The request ID must be a valid UUID with the exception that zero UUID
158924// is not supported (00000000-0000-0000-0000-000000000000).
158925func (c *ServiceAttachmentsInsertCall) RequestId(requestId string) *ServiceAttachmentsInsertCall {
158926	c.urlParams_.Set("requestId", requestId)
158927	return c
158928}
158929
158930// Fields allows partial responses to be retrieved. See
158931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158932// for more information.
158933func (c *ServiceAttachmentsInsertCall) Fields(s ...googleapi.Field) *ServiceAttachmentsInsertCall {
158934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158935	return c
158936}
158937
158938// Context sets the context to be used in this call's Do method. Any
158939// pending HTTP request will be aborted if the provided context is
158940// canceled.
158941func (c *ServiceAttachmentsInsertCall) Context(ctx context.Context) *ServiceAttachmentsInsertCall {
158942	c.ctx_ = ctx
158943	return c
158944}
158945
158946// Header returns an http.Header that can be modified by the caller to
158947// add HTTP headers to the request.
158948func (c *ServiceAttachmentsInsertCall) Header() http.Header {
158949	if c.header_ == nil {
158950		c.header_ = make(http.Header)
158951	}
158952	return c.header_
158953}
158954
158955func (c *ServiceAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
158956	reqHeaders := make(http.Header)
158957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158958	for k, v := range c.header_ {
158959		reqHeaders[k] = v
158960	}
158961	reqHeaders.Set("User-Agent", c.s.userAgent())
158962	var body io.Reader = nil
158963	body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment)
158964	if err != nil {
158965		return nil, err
158966	}
158967	reqHeaders.Set("Content-Type", "application/json")
158968	c.urlParams_.Set("alt", alt)
158969	c.urlParams_.Set("prettyPrint", "false")
158970	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments")
158971	urls += "?" + c.urlParams_.Encode()
158972	req, err := http.NewRequest("POST", urls, body)
158973	if err != nil {
158974		return nil, err
158975	}
158976	req.Header = reqHeaders
158977	googleapi.Expand(req.URL, map[string]string{
158978		"project": c.project,
158979		"region":  c.region,
158980	})
158981	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158982}
158983
158984// Do executes the "compute.serviceAttachments.insert" call.
158985// Exactly one of *Operation or error will be non-nil. Any non-2xx
158986// status code is an error. Response headers are in either
158987// *Operation.ServerResponse.Header or (if a response was returned at
158988// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158989// to check whether the returned error was because
158990// http.StatusNotModified was returned.
158991func (c *ServiceAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158992	gensupport.SetOptions(c.urlParams_, opts...)
158993	res, err := c.doRequest("json")
158994	if res != nil && res.StatusCode == http.StatusNotModified {
158995		if res.Body != nil {
158996			res.Body.Close()
158997		}
158998		return nil, &googleapi.Error{
158999			Code:   res.StatusCode,
159000			Header: res.Header,
159001		}
159002	}
159003	if err != nil {
159004		return nil, err
159005	}
159006	defer googleapi.CloseBody(res)
159007	if err := googleapi.CheckResponse(res); err != nil {
159008		return nil, err
159009	}
159010	ret := &Operation{
159011		ServerResponse: googleapi.ServerResponse{
159012			Header:         res.Header,
159013			HTTPStatusCode: res.StatusCode,
159014		},
159015	}
159016	target := &ret
159017	if err := gensupport.DecodeResponse(target, res); err != nil {
159018		return nil, err
159019	}
159020	return ret, nil
159021	// {
159022	//   "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.",
159023	//   "httpMethod": "POST",
159024	//   "id": "compute.serviceAttachments.insert",
159025	//   "parameterOrder": [
159026	//     "project",
159027	//     "region"
159028	//   ],
159029	//   "parameters": {
159030	//     "project": {
159031	//       "description": "Project ID for this request.",
159032	//       "location": "path",
159033	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159034	//       "required": true,
159035	//       "type": "string"
159036	//     },
159037	//     "region": {
159038	//       "description": "Name of the region of this request.",
159039	//       "location": "path",
159040	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159041	//       "required": true,
159042	//       "type": "string"
159043	//     },
159044	//     "requestId": {
159045	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159046	//       "location": "query",
159047	//       "type": "string"
159048	//     }
159049	//   },
159050	//   "path": "projects/{project}/regions/{region}/serviceAttachments",
159051	//   "request": {
159052	//     "$ref": "ServiceAttachment"
159053	//   },
159054	//   "response": {
159055	//     "$ref": "Operation"
159056	//   },
159057	//   "scopes": [
159058	//     "https://www.googleapis.com/auth/cloud-platform",
159059	//     "https://www.googleapis.com/auth/compute"
159060	//   ]
159061	// }
159062
159063}
159064
159065// method id "compute.serviceAttachments.list":
159066
159067type ServiceAttachmentsListCall struct {
159068	s            *Service
159069	project      string
159070	region       string
159071	urlParams_   gensupport.URLParams
159072	ifNoneMatch_ string
159073	ctx_         context.Context
159074	header_      http.Header
159075}
159076
159077// List: Lists the ServiceAttachments for a project in the given scope.
159078//
159079// - project: Project ID for this request.
159080// - region: Name of the region of this request.
159081func (r *ServiceAttachmentsService) List(project string, region string) *ServiceAttachmentsListCall {
159082	c := &ServiceAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159083	c.project = project
159084	c.region = region
159085	return c
159086}
159087
159088// Filter sets the optional parameter "filter": A filter expression that
159089// filters resources listed in the response. The expression must specify
159090// the field name, a comparison operator, and the value that you want to
159091// use for filtering. The value must be a string, a number, or a
159092// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159093// `<`.
159094//
159095// For example, if you are filtering Compute Engine instances, you can
159096// exclude instances named `example-instance` by specifying `name !=
159097// example-instance`.
159098//
159099// You can also filter nested fields. For example, you could specify
159100// `scheduling.automaticRestart = false` to include instances only if
159101// they are not scheduled for automatic restarts. You can use filtering
159102// on nested fields to filter based on resource labels.
159103//
159104// To filter on multiple expressions, provide each separate expression
159105// within parentheses. For example: ``` (scheduling.automaticRestart =
159106// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159107// is an `AND` expression. However, you can include `AND` and `OR`
159108// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159109// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159110// (scheduling.automaticRestart = true) ```
159111func (c *ServiceAttachmentsListCall) Filter(filter string) *ServiceAttachmentsListCall {
159112	c.urlParams_.Set("filter", filter)
159113	return c
159114}
159115
159116// MaxResults sets the optional parameter "maxResults": The maximum
159117// number of results per page that should be returned. If the number of
159118// available results is larger than `maxResults`, Compute Engine returns
159119// a `nextPageToken` that can be used to get the next page of results in
159120// subsequent list requests. Acceptable values are `0` to `500`,
159121// inclusive. (Default: `500`)
159122func (c *ServiceAttachmentsListCall) MaxResults(maxResults int64) *ServiceAttachmentsListCall {
159123	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159124	return c
159125}
159126
159127// OrderBy sets the optional parameter "orderBy": Sorts list results by
159128// a certain order. By default, results are returned in alphanumerical
159129// order based on the resource name.
159130//
159131// You can also sort results in descending order based on the creation
159132// timestamp using `orderBy="creationTimestamp desc". This sorts
159133// results based on the `creationTimestamp` field in reverse
159134// chronological order (newest result first). Use this to sort resources
159135// like operations so that the newest operation is returned
159136// first.
159137//
159138// Currently, only sorting by `name` or `creationTimestamp desc` is
159139// supported.
159140func (c *ServiceAttachmentsListCall) OrderBy(orderBy string) *ServiceAttachmentsListCall {
159141	c.urlParams_.Set("orderBy", orderBy)
159142	return c
159143}
159144
159145// PageToken sets the optional parameter "pageToken": Specifies a page
159146// token to use. Set `pageToken` to the `nextPageToken` returned by a
159147// previous list request to get the next page of results.
159148func (c *ServiceAttachmentsListCall) PageToken(pageToken string) *ServiceAttachmentsListCall {
159149	c.urlParams_.Set("pageToken", pageToken)
159150	return c
159151}
159152
159153// ReturnPartialSuccess sets the optional parameter
159154// "returnPartialSuccess": Opt-in for partial success behavior which
159155// provides partial results in case of failure. The default value is
159156// false.
159157func (c *ServiceAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsListCall {
159158	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159159	return c
159160}
159161
159162// Fields allows partial responses to be retrieved. See
159163// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159164// for more information.
159165func (c *ServiceAttachmentsListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsListCall {
159166	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159167	return c
159168}
159169
159170// IfNoneMatch sets the optional parameter which makes the operation
159171// fail if the object's ETag matches the given value. This is useful for
159172// getting updates only after the object has changed since the last
159173// request. Use googleapi.IsNotModified to check whether the response
159174// error from Do is the result of In-None-Match.
159175func (c *ServiceAttachmentsListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsListCall {
159176	c.ifNoneMatch_ = entityTag
159177	return c
159178}
159179
159180// Context sets the context to be used in this call's Do method. Any
159181// pending HTTP request will be aborted if the provided context is
159182// canceled.
159183func (c *ServiceAttachmentsListCall) Context(ctx context.Context) *ServiceAttachmentsListCall {
159184	c.ctx_ = ctx
159185	return c
159186}
159187
159188// Header returns an http.Header that can be modified by the caller to
159189// add HTTP headers to the request.
159190func (c *ServiceAttachmentsListCall) Header() http.Header {
159191	if c.header_ == nil {
159192		c.header_ = make(http.Header)
159193	}
159194	return c.header_
159195}
159196
159197func (c *ServiceAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
159198	reqHeaders := make(http.Header)
159199	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159200	for k, v := range c.header_ {
159201		reqHeaders[k] = v
159202	}
159203	reqHeaders.Set("User-Agent", c.s.userAgent())
159204	if c.ifNoneMatch_ != "" {
159205		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159206	}
159207	var body io.Reader = nil
159208	c.urlParams_.Set("alt", alt)
159209	c.urlParams_.Set("prettyPrint", "false")
159210	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments")
159211	urls += "?" + c.urlParams_.Encode()
159212	req, err := http.NewRequest("GET", urls, body)
159213	if err != nil {
159214		return nil, err
159215	}
159216	req.Header = reqHeaders
159217	googleapi.Expand(req.URL, map[string]string{
159218		"project": c.project,
159219		"region":  c.region,
159220	})
159221	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159222}
159223
159224// Do executes the "compute.serviceAttachments.list" call.
159225// Exactly one of *ServiceAttachmentList or error will be non-nil. Any
159226// non-2xx status code is an error. Response headers are in either
159227// *ServiceAttachmentList.ServerResponse.Header or (if a response was
159228// returned at all) in error.(*googleapi.Error).Header. Use
159229// googleapi.IsNotModified to check whether the returned error was
159230// because http.StatusNotModified was returned.
159231func (c *ServiceAttachmentsListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentList, error) {
159232	gensupport.SetOptions(c.urlParams_, opts...)
159233	res, err := c.doRequest("json")
159234	if res != nil && res.StatusCode == http.StatusNotModified {
159235		if res.Body != nil {
159236			res.Body.Close()
159237		}
159238		return nil, &googleapi.Error{
159239			Code:   res.StatusCode,
159240			Header: res.Header,
159241		}
159242	}
159243	if err != nil {
159244		return nil, err
159245	}
159246	defer googleapi.CloseBody(res)
159247	if err := googleapi.CheckResponse(res); err != nil {
159248		return nil, err
159249	}
159250	ret := &ServiceAttachmentList{
159251		ServerResponse: googleapi.ServerResponse{
159252			Header:         res.Header,
159253			HTTPStatusCode: res.StatusCode,
159254		},
159255	}
159256	target := &ret
159257	if err := gensupport.DecodeResponse(target, res); err != nil {
159258		return nil, err
159259	}
159260	return ret, nil
159261	// {
159262	//   "description": "Lists the ServiceAttachments for a project in the given scope.",
159263	//   "httpMethod": "GET",
159264	//   "id": "compute.serviceAttachments.list",
159265	//   "parameterOrder": [
159266	//     "project",
159267	//     "region"
159268	//   ],
159269	//   "parameters": {
159270	//     "filter": {
159271	//       "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) ```",
159272	//       "location": "query",
159273	//       "type": "string"
159274	//     },
159275	//     "maxResults": {
159276	//       "default": "500",
159277	//       "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`)",
159278	//       "format": "uint32",
159279	//       "location": "query",
159280	//       "minimum": "0",
159281	//       "type": "integer"
159282	//     },
159283	//     "orderBy": {
159284	//       "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.",
159285	//       "location": "query",
159286	//       "type": "string"
159287	//     },
159288	//     "pageToken": {
159289	//       "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.",
159290	//       "location": "query",
159291	//       "type": "string"
159292	//     },
159293	//     "project": {
159294	//       "description": "Project ID for this request.",
159295	//       "location": "path",
159296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159297	//       "required": true,
159298	//       "type": "string"
159299	//     },
159300	//     "region": {
159301	//       "description": "Name of the region of this request.",
159302	//       "location": "path",
159303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159304	//       "required": true,
159305	//       "type": "string"
159306	//     },
159307	//     "returnPartialSuccess": {
159308	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
159309	//       "location": "query",
159310	//       "type": "boolean"
159311	//     }
159312	//   },
159313	//   "path": "projects/{project}/regions/{region}/serviceAttachments",
159314	//   "response": {
159315	//     "$ref": "ServiceAttachmentList"
159316	//   },
159317	//   "scopes": [
159318	//     "https://www.googleapis.com/auth/cloud-platform",
159319	//     "https://www.googleapis.com/auth/compute",
159320	//     "https://www.googleapis.com/auth/compute.readonly"
159321	//   ]
159322	// }
159323
159324}
159325
159326// Pages invokes f for each page of results.
159327// A non-nil error returned from f will halt the iteration.
159328// The provided context supersedes any context provided to the Context method.
159329func (c *ServiceAttachmentsListCall) Pages(ctx context.Context, f func(*ServiceAttachmentList) error) error {
159330	c.ctx_ = ctx
159331	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159332	for {
159333		x, err := c.Do()
159334		if err != nil {
159335			return err
159336		}
159337		if err := f(x); err != nil {
159338			return err
159339		}
159340		if x.NextPageToken == "" {
159341			return nil
159342		}
159343		c.PageToken(x.NextPageToken)
159344	}
159345}
159346
159347// method id "compute.serviceAttachments.patch":
159348
159349type ServiceAttachmentsPatchCall struct {
159350	s                 *Service
159351	project           string
159352	region            string
159353	serviceAttachment string
159354	serviceattachment *ServiceAttachment
159355	urlParams_        gensupport.URLParams
159356	ctx_              context.Context
159357	header_           http.Header
159358}
159359
159360// Patch: Patches the specified ServiceAttachment resource with the data
159361// included in the request. This method supports PATCH semantics and
159362// uses JSON merge patch format and processing rules.
159363//
159364// - project: Project ID for this request.
159365// - region: The region scoping this request and should conform to
159366//   RFC1035.
159367// - serviceAttachment: The resource id of the ServiceAttachment to
159368//   patch. It should conform to RFC1035 resource name or be a string
159369//   form on an unsigned long number.
159370func (r *ServiceAttachmentsService) Patch(project string, region string, serviceAttachment string, serviceattachment *ServiceAttachment) *ServiceAttachmentsPatchCall {
159371	c := &ServiceAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159372	c.project = project
159373	c.region = region
159374	c.serviceAttachment = serviceAttachment
159375	c.serviceattachment = serviceattachment
159376	return c
159377}
159378
159379// RequestId sets the optional parameter "requestId": An optional
159380// request ID to identify requests. Specify a unique request ID so that
159381// if you must retry your request, the server will know to ignore the
159382// request if it has already been completed.
159383//
159384// For example, consider a situation where you make an initial request
159385// and the request times out. If you make the request again with the
159386// same request ID, the server can check if original operation with the
159387// same request ID was received, and if so, will ignore the second
159388// request. This prevents clients from accidentally creating duplicate
159389// commitments.
159390//
159391// The request ID must be a valid UUID with the exception that zero UUID
159392// is not supported (00000000-0000-0000-0000-000000000000).
159393func (c *ServiceAttachmentsPatchCall) RequestId(requestId string) *ServiceAttachmentsPatchCall {
159394	c.urlParams_.Set("requestId", requestId)
159395	return c
159396}
159397
159398// Fields allows partial responses to be retrieved. See
159399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159400// for more information.
159401func (c *ServiceAttachmentsPatchCall) Fields(s ...googleapi.Field) *ServiceAttachmentsPatchCall {
159402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159403	return c
159404}
159405
159406// Context sets the context to be used in this call's Do method. Any
159407// pending HTTP request will be aborted if the provided context is
159408// canceled.
159409func (c *ServiceAttachmentsPatchCall) Context(ctx context.Context) *ServiceAttachmentsPatchCall {
159410	c.ctx_ = ctx
159411	return c
159412}
159413
159414// Header returns an http.Header that can be modified by the caller to
159415// add HTTP headers to the request.
159416func (c *ServiceAttachmentsPatchCall) Header() http.Header {
159417	if c.header_ == nil {
159418		c.header_ = make(http.Header)
159419	}
159420	return c.header_
159421}
159422
159423func (c *ServiceAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
159424	reqHeaders := make(http.Header)
159425	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159426	for k, v := range c.header_ {
159427		reqHeaders[k] = v
159428	}
159429	reqHeaders.Set("User-Agent", c.s.userAgent())
159430	var body io.Reader = nil
159431	body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment)
159432	if err != nil {
159433		return nil, err
159434	}
159435	reqHeaders.Set("Content-Type", "application/json")
159436	c.urlParams_.Set("alt", alt)
159437	c.urlParams_.Set("prettyPrint", "false")
159438	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
159439	urls += "?" + c.urlParams_.Encode()
159440	req, err := http.NewRequest("PATCH", urls, body)
159441	if err != nil {
159442		return nil, err
159443	}
159444	req.Header = reqHeaders
159445	googleapi.Expand(req.URL, map[string]string{
159446		"project":           c.project,
159447		"region":            c.region,
159448		"serviceAttachment": c.serviceAttachment,
159449	})
159450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159451}
159452
159453// Do executes the "compute.serviceAttachments.patch" call.
159454// Exactly one of *Operation or error will be non-nil. Any non-2xx
159455// status code is an error. Response headers are in either
159456// *Operation.ServerResponse.Header or (if a response was returned at
159457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159458// to check whether the returned error was because
159459// http.StatusNotModified was returned.
159460func (c *ServiceAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159461	gensupport.SetOptions(c.urlParams_, opts...)
159462	res, err := c.doRequest("json")
159463	if res != nil && res.StatusCode == http.StatusNotModified {
159464		if res.Body != nil {
159465			res.Body.Close()
159466		}
159467		return nil, &googleapi.Error{
159468			Code:   res.StatusCode,
159469			Header: res.Header,
159470		}
159471	}
159472	if err != nil {
159473		return nil, err
159474	}
159475	defer googleapi.CloseBody(res)
159476	if err := googleapi.CheckResponse(res); err != nil {
159477		return nil, err
159478	}
159479	ret := &Operation{
159480		ServerResponse: googleapi.ServerResponse{
159481			Header:         res.Header,
159482			HTTPStatusCode: res.StatusCode,
159483		},
159484	}
159485	target := &ret
159486	if err := gensupport.DecodeResponse(target, res); err != nil {
159487		return nil, err
159488	}
159489	return ret, nil
159490	// {
159491	//   "description": "Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
159492	//   "httpMethod": "PATCH",
159493	//   "id": "compute.serviceAttachments.patch",
159494	//   "parameterOrder": [
159495	//     "project",
159496	//     "region",
159497	//     "serviceAttachment"
159498	//   ],
159499	//   "parameters": {
159500	//     "project": {
159501	//       "description": "Project ID for this request.",
159502	//       "location": "path",
159503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159504	//       "required": true,
159505	//       "type": "string"
159506	//     },
159507	//     "region": {
159508	//       "description": "The region scoping this request and should conform to RFC1035.",
159509	//       "location": "path",
159510	//       "required": true,
159511	//       "type": "string"
159512	//     },
159513	//     "requestId": {
159514	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159515	//       "location": "query",
159516	//       "type": "string"
159517	//     },
159518	//     "serviceAttachment": {
159519	//       "description": "The resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number.",
159520	//       "location": "path",
159521	//       "required": true,
159522	//       "type": "string"
159523	//     }
159524	//   },
159525	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
159526	//   "request": {
159527	//     "$ref": "ServiceAttachment"
159528	//   },
159529	//   "response": {
159530	//     "$ref": "Operation"
159531	//   },
159532	//   "scopes": [
159533	//     "https://www.googleapis.com/auth/cloud-platform",
159534	//     "https://www.googleapis.com/auth/compute"
159535	//   ]
159536	// }
159537
159538}
159539
159540// method id "compute.serviceAttachments.setIamPolicy":
159541
159542type ServiceAttachmentsSetIamPolicyCall struct {
159543	s                      *Service
159544	project                string
159545	region                 string
159546	resource               string
159547	regionsetpolicyrequest *RegionSetPolicyRequest
159548	urlParams_             gensupport.URLParams
159549	ctx_                   context.Context
159550	header_                http.Header
159551}
159552
159553// SetIamPolicy: Sets the access control policy on the specified
159554// resource. Replaces any existing policy.
159555//
159556// - project: Project ID for this request.
159557// - region: The name of the region for this request.
159558// - resource: Name or id of the resource for this request.
159559func (r *ServiceAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ServiceAttachmentsSetIamPolicyCall {
159560	c := &ServiceAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159561	c.project = project
159562	c.region = region
159563	c.resource = resource
159564	c.regionsetpolicyrequest = regionsetpolicyrequest
159565	return c
159566}
159567
159568// Fields allows partial responses to be retrieved. See
159569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159570// for more information.
159571func (c *ServiceAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsSetIamPolicyCall {
159572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159573	return c
159574}
159575
159576// Context sets the context to be used in this call's Do method. Any
159577// pending HTTP request will be aborted if the provided context is
159578// canceled.
159579func (c *ServiceAttachmentsSetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsSetIamPolicyCall {
159580	c.ctx_ = ctx
159581	return c
159582}
159583
159584// Header returns an http.Header that can be modified by the caller to
159585// add HTTP headers to the request.
159586func (c *ServiceAttachmentsSetIamPolicyCall) Header() http.Header {
159587	if c.header_ == nil {
159588		c.header_ = make(http.Header)
159589	}
159590	return c.header_
159591}
159592
159593func (c *ServiceAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
159594	reqHeaders := make(http.Header)
159595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159596	for k, v := range c.header_ {
159597		reqHeaders[k] = v
159598	}
159599	reqHeaders.Set("User-Agent", c.s.userAgent())
159600	var body io.Reader = nil
159601	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
159602	if err != nil {
159603		return nil, err
159604	}
159605	reqHeaders.Set("Content-Type", "application/json")
159606	c.urlParams_.Set("alt", alt)
159607	c.urlParams_.Set("prettyPrint", "false")
159608	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy")
159609	urls += "?" + c.urlParams_.Encode()
159610	req, err := http.NewRequest("POST", urls, body)
159611	if err != nil {
159612		return nil, err
159613	}
159614	req.Header = reqHeaders
159615	googleapi.Expand(req.URL, map[string]string{
159616		"project":  c.project,
159617		"region":   c.region,
159618		"resource": c.resource,
159619	})
159620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159621}
159622
159623// Do executes the "compute.serviceAttachments.setIamPolicy" call.
159624// Exactly one of *Policy or error will be non-nil. Any non-2xx status
159625// code is an error. Response headers are in either
159626// *Policy.ServerResponse.Header or (if a response was returned at all)
159627// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
159628// check whether the returned error was because http.StatusNotModified
159629// was returned.
159630func (c *ServiceAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
159631	gensupport.SetOptions(c.urlParams_, opts...)
159632	res, err := c.doRequest("json")
159633	if res != nil && res.StatusCode == http.StatusNotModified {
159634		if res.Body != nil {
159635			res.Body.Close()
159636		}
159637		return nil, &googleapi.Error{
159638			Code:   res.StatusCode,
159639			Header: res.Header,
159640		}
159641	}
159642	if err != nil {
159643		return nil, err
159644	}
159645	defer googleapi.CloseBody(res)
159646	if err := googleapi.CheckResponse(res); err != nil {
159647		return nil, err
159648	}
159649	ret := &Policy{
159650		ServerResponse: googleapi.ServerResponse{
159651			Header:         res.Header,
159652			HTTPStatusCode: res.StatusCode,
159653		},
159654	}
159655	target := &ret
159656	if err := gensupport.DecodeResponse(target, res); err != nil {
159657		return nil, err
159658	}
159659	return ret, nil
159660	// {
159661	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
159662	//   "httpMethod": "POST",
159663	//   "id": "compute.serviceAttachments.setIamPolicy",
159664	//   "parameterOrder": [
159665	//     "project",
159666	//     "region",
159667	//     "resource"
159668	//   ],
159669	//   "parameters": {
159670	//     "project": {
159671	//       "description": "Project ID for this request.",
159672	//       "location": "path",
159673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159674	//       "required": true,
159675	//       "type": "string"
159676	//     },
159677	//     "region": {
159678	//       "description": "The name of the region for this request.",
159679	//       "location": "path",
159680	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159681	//       "required": true,
159682	//       "type": "string"
159683	//     },
159684	//     "resource": {
159685	//       "description": "Name or id of the resource for this request.",
159686	//       "location": "path",
159687	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159688	//       "required": true,
159689	//       "type": "string"
159690	//     }
159691	//   },
159692	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
159693	//   "request": {
159694	//     "$ref": "RegionSetPolicyRequest"
159695	//   },
159696	//   "response": {
159697	//     "$ref": "Policy"
159698	//   },
159699	//   "scopes": [
159700	//     "https://www.googleapis.com/auth/cloud-platform",
159701	//     "https://www.googleapis.com/auth/compute"
159702	//   ]
159703	// }
159704
159705}
159706
159707// method id "compute.serviceAttachments.testIamPermissions":
159708
159709type ServiceAttachmentsTestIamPermissionsCall struct {
159710	s                      *Service
159711	project                string
159712	region                 string
159713	resource               string
159714	testpermissionsrequest *TestPermissionsRequest
159715	urlParams_             gensupport.URLParams
159716	ctx_                   context.Context
159717	header_                http.Header
159718}
159719
159720// TestIamPermissions: Returns permissions that a caller has on the
159721// specified resource.
159722//
159723// - project: Project ID for this request.
159724// - region: The name of the region for this request.
159725// - resource: Name or id of the resource for this request.
159726func (r *ServiceAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ServiceAttachmentsTestIamPermissionsCall {
159727	c := &ServiceAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159728	c.project = project
159729	c.region = region
159730	c.resource = resource
159731	c.testpermissionsrequest = testpermissionsrequest
159732	return c
159733}
159734
159735// Fields allows partial responses to be retrieved. See
159736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159737// for more information.
159738func (c *ServiceAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServiceAttachmentsTestIamPermissionsCall {
159739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159740	return c
159741}
159742
159743// Context sets the context to be used in this call's Do method. Any
159744// pending HTTP request will be aborted if the provided context is
159745// canceled.
159746func (c *ServiceAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *ServiceAttachmentsTestIamPermissionsCall {
159747	c.ctx_ = ctx
159748	return c
159749}
159750
159751// Header returns an http.Header that can be modified by the caller to
159752// add HTTP headers to the request.
159753func (c *ServiceAttachmentsTestIamPermissionsCall) Header() http.Header {
159754	if c.header_ == nil {
159755		c.header_ = make(http.Header)
159756	}
159757	return c.header_
159758}
159759
159760func (c *ServiceAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
159761	reqHeaders := make(http.Header)
159762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159763	for k, v := range c.header_ {
159764		reqHeaders[k] = v
159765	}
159766	reqHeaders.Set("User-Agent", c.s.userAgent())
159767	var body io.Reader = nil
159768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
159769	if err != nil {
159770		return nil, err
159771	}
159772	reqHeaders.Set("Content-Type", "application/json")
159773	c.urlParams_.Set("alt", alt)
159774	c.urlParams_.Set("prettyPrint", "false")
159775	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions")
159776	urls += "?" + c.urlParams_.Encode()
159777	req, err := http.NewRequest("POST", urls, body)
159778	if err != nil {
159779		return nil, err
159780	}
159781	req.Header = reqHeaders
159782	googleapi.Expand(req.URL, map[string]string{
159783		"project":  c.project,
159784		"region":   c.region,
159785		"resource": c.resource,
159786	})
159787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159788}
159789
159790// Do executes the "compute.serviceAttachments.testIamPermissions" call.
159791// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
159792// non-2xx status code is an error. Response headers are in either
159793// *TestPermissionsResponse.ServerResponse.Header or (if a response was
159794// returned at all) in error.(*googleapi.Error).Header. Use
159795// googleapi.IsNotModified to check whether the returned error was
159796// because http.StatusNotModified was returned.
159797func (c *ServiceAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
159798	gensupport.SetOptions(c.urlParams_, opts...)
159799	res, err := c.doRequest("json")
159800	if res != nil && res.StatusCode == http.StatusNotModified {
159801		if res.Body != nil {
159802			res.Body.Close()
159803		}
159804		return nil, &googleapi.Error{
159805			Code:   res.StatusCode,
159806			Header: res.Header,
159807		}
159808	}
159809	if err != nil {
159810		return nil, err
159811	}
159812	defer googleapi.CloseBody(res)
159813	if err := googleapi.CheckResponse(res); err != nil {
159814		return nil, err
159815	}
159816	ret := &TestPermissionsResponse{
159817		ServerResponse: googleapi.ServerResponse{
159818			Header:         res.Header,
159819			HTTPStatusCode: res.StatusCode,
159820		},
159821	}
159822	target := &ret
159823	if err := gensupport.DecodeResponse(target, res); err != nil {
159824		return nil, err
159825	}
159826	return ret, nil
159827	// {
159828	//   "description": "Returns permissions that a caller has on the specified resource.",
159829	//   "httpMethod": "POST",
159830	//   "id": "compute.serviceAttachments.testIamPermissions",
159831	//   "parameterOrder": [
159832	//     "project",
159833	//     "region",
159834	//     "resource"
159835	//   ],
159836	//   "parameters": {
159837	//     "project": {
159838	//       "description": "Project ID for this request.",
159839	//       "location": "path",
159840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159841	//       "required": true,
159842	//       "type": "string"
159843	//     },
159844	//     "region": {
159845	//       "description": "The name of the region for this request.",
159846	//       "location": "path",
159847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159848	//       "required": true,
159849	//       "type": "string"
159850	//     },
159851	//     "resource": {
159852	//       "description": "Name or id of the resource for this request.",
159853	//       "location": "path",
159854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159855	//       "required": true,
159856	//       "type": "string"
159857	//     }
159858	//   },
159859	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
159860	//   "request": {
159861	//     "$ref": "TestPermissionsRequest"
159862	//   },
159863	//   "response": {
159864	//     "$ref": "TestPermissionsResponse"
159865	//   },
159866	//   "scopes": [
159867	//     "https://www.googleapis.com/auth/cloud-platform",
159868	//     "https://www.googleapis.com/auth/compute",
159869	//     "https://www.googleapis.com/auth/compute.readonly"
159870	//   ]
159871	// }
159872
159873}
159874
159875// method id "compute.snapshots.delete":
159876
159877type SnapshotsDeleteCall struct {
159878	s          *Service
159879	project    string
159880	snapshot   string
159881	urlParams_ gensupport.URLParams
159882	ctx_       context.Context
159883	header_    http.Header
159884}
159885
159886// Delete: Deletes the specified Snapshot resource. Keep in mind that
159887// deleting a single snapshot might not necessarily delete all the data
159888// on that snapshot. If any data on the snapshot that is marked for
159889// deletion is needed for subsequent snapshots, the data will be moved
159890// to the next corresponding snapshot.
159891//
159892// For more information, see Deleting snapshots.
159893//
159894// - project: Project ID for this request.
159895// - snapshot: Name of the Snapshot resource to delete.
159896// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
159897func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
159898	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159899	c.project = project
159900	c.snapshot = snapshot
159901	return c
159902}
159903
159904// RequestId sets the optional parameter "requestId": An optional
159905// request ID to identify requests. Specify a unique request ID so that
159906// if you must retry your request, the server will know to ignore the
159907// request if it has already been completed.
159908//
159909// For example, consider a situation where you make an initial request
159910// and the request times out. If you make the request again with the
159911// same request ID, the server can check if original operation with the
159912// same request ID was received, and if so, will ignore the second
159913// request. This prevents clients from accidentally creating duplicate
159914// commitments.
159915//
159916// The request ID must be a valid UUID with the exception that zero UUID
159917// is not supported (00000000-0000-0000-0000-000000000000).
159918func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
159919	c.urlParams_.Set("requestId", requestId)
159920	return c
159921}
159922
159923// Fields allows partial responses to be retrieved. See
159924// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159925// for more information.
159926func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
159927	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159928	return c
159929}
159930
159931// Context sets the context to be used in this call's Do method. Any
159932// pending HTTP request will be aborted if the provided context is
159933// canceled.
159934func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
159935	c.ctx_ = ctx
159936	return c
159937}
159938
159939// Header returns an http.Header that can be modified by the caller to
159940// add HTTP headers to the request.
159941func (c *SnapshotsDeleteCall) Header() http.Header {
159942	if c.header_ == nil {
159943		c.header_ = make(http.Header)
159944	}
159945	return c.header_
159946}
159947
159948func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
159949	reqHeaders := make(http.Header)
159950	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159951	for k, v := range c.header_ {
159952		reqHeaders[k] = v
159953	}
159954	reqHeaders.Set("User-Agent", c.s.userAgent())
159955	var body io.Reader = nil
159956	c.urlParams_.Set("alt", alt)
159957	c.urlParams_.Set("prettyPrint", "false")
159958	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
159959	urls += "?" + c.urlParams_.Encode()
159960	req, err := http.NewRequest("DELETE", urls, body)
159961	if err != nil {
159962		return nil, err
159963	}
159964	req.Header = reqHeaders
159965	googleapi.Expand(req.URL, map[string]string{
159966		"project":  c.project,
159967		"snapshot": c.snapshot,
159968	})
159969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159970}
159971
159972// Do executes the "compute.snapshots.delete" call.
159973// Exactly one of *Operation or error will be non-nil. Any non-2xx
159974// status code is an error. Response headers are in either
159975// *Operation.ServerResponse.Header or (if a response was returned at
159976// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159977// to check whether the returned error was because
159978// http.StatusNotModified was returned.
159979func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159980	gensupport.SetOptions(c.urlParams_, opts...)
159981	res, err := c.doRequest("json")
159982	if res != nil && res.StatusCode == http.StatusNotModified {
159983		if res.Body != nil {
159984			res.Body.Close()
159985		}
159986		return nil, &googleapi.Error{
159987			Code:   res.StatusCode,
159988			Header: res.Header,
159989		}
159990	}
159991	if err != nil {
159992		return nil, err
159993	}
159994	defer googleapi.CloseBody(res)
159995	if err := googleapi.CheckResponse(res); err != nil {
159996		return nil, err
159997	}
159998	ret := &Operation{
159999		ServerResponse: googleapi.ServerResponse{
160000			Header:         res.Header,
160001			HTTPStatusCode: res.StatusCode,
160002		},
160003	}
160004	target := &ret
160005	if err := gensupport.DecodeResponse(target, res); err != nil {
160006		return nil, err
160007	}
160008	return ret, nil
160009	// {
160010	//   "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.",
160011	//   "httpMethod": "DELETE",
160012	//   "id": "compute.snapshots.delete",
160013	//   "parameterOrder": [
160014	//     "project",
160015	//     "snapshot"
160016	//   ],
160017	//   "parameters": {
160018	//     "project": {
160019	//       "description": "Project ID for this request.",
160020	//       "location": "path",
160021	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160022	//       "required": true,
160023	//       "type": "string"
160024	//     },
160025	//     "requestId": {
160026	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160027	//       "location": "query",
160028	//       "type": "string"
160029	//     },
160030	//     "snapshot": {
160031	//       "description": "Name of the Snapshot resource to delete.",
160032	//       "location": "path",
160033	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160034	//       "required": true,
160035	//       "type": "string"
160036	//     }
160037	//   },
160038	//   "path": "projects/{project}/global/snapshots/{snapshot}",
160039	//   "response": {
160040	//     "$ref": "Operation"
160041	//   },
160042	//   "scopes": [
160043	//     "https://www.googleapis.com/auth/cloud-platform",
160044	//     "https://www.googleapis.com/auth/compute"
160045	//   ]
160046	// }
160047
160048}
160049
160050// method id "compute.snapshots.get":
160051
160052type SnapshotsGetCall struct {
160053	s            *Service
160054	project      string
160055	snapshot     string
160056	urlParams_   gensupport.URLParams
160057	ifNoneMatch_ string
160058	ctx_         context.Context
160059	header_      http.Header
160060}
160061
160062// Get: Returns the specified Snapshot resource. Gets a list of
160063// available snapshots by making a list() request.
160064//
160065// - project: Project ID for this request.
160066// - snapshot: Name of the Snapshot resource to return.
160067// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
160068func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
160069	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160070	c.project = project
160071	c.snapshot = snapshot
160072	return c
160073}
160074
160075// Fields allows partial responses to be retrieved. See
160076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160077// for more information.
160078func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
160079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160080	return c
160081}
160082
160083// IfNoneMatch sets the optional parameter which makes the operation
160084// fail if the object's ETag matches the given value. This is useful for
160085// getting updates only after the object has changed since the last
160086// request. Use googleapi.IsNotModified to check whether the response
160087// error from Do is the result of In-None-Match.
160088func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
160089	c.ifNoneMatch_ = entityTag
160090	return c
160091}
160092
160093// Context sets the context to be used in this call's Do method. Any
160094// pending HTTP request will be aborted if the provided context is
160095// canceled.
160096func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
160097	c.ctx_ = ctx
160098	return c
160099}
160100
160101// Header returns an http.Header that can be modified by the caller to
160102// add HTTP headers to the request.
160103func (c *SnapshotsGetCall) Header() http.Header {
160104	if c.header_ == nil {
160105		c.header_ = make(http.Header)
160106	}
160107	return c.header_
160108}
160109
160110func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
160111	reqHeaders := make(http.Header)
160112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160113	for k, v := range c.header_ {
160114		reqHeaders[k] = v
160115	}
160116	reqHeaders.Set("User-Agent", c.s.userAgent())
160117	if c.ifNoneMatch_ != "" {
160118		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160119	}
160120	var body io.Reader = nil
160121	c.urlParams_.Set("alt", alt)
160122	c.urlParams_.Set("prettyPrint", "false")
160123	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
160124	urls += "?" + c.urlParams_.Encode()
160125	req, err := http.NewRequest("GET", urls, body)
160126	if err != nil {
160127		return nil, err
160128	}
160129	req.Header = reqHeaders
160130	googleapi.Expand(req.URL, map[string]string{
160131		"project":  c.project,
160132		"snapshot": c.snapshot,
160133	})
160134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160135}
160136
160137// Do executes the "compute.snapshots.get" call.
160138// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
160139// code is an error. Response headers are in either
160140// *Snapshot.ServerResponse.Header or (if a response was returned at
160141// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160142// to check whether the returned error was because
160143// http.StatusNotModified was returned.
160144func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
160145	gensupport.SetOptions(c.urlParams_, opts...)
160146	res, err := c.doRequest("json")
160147	if res != nil && res.StatusCode == http.StatusNotModified {
160148		if res.Body != nil {
160149			res.Body.Close()
160150		}
160151		return nil, &googleapi.Error{
160152			Code:   res.StatusCode,
160153			Header: res.Header,
160154		}
160155	}
160156	if err != nil {
160157		return nil, err
160158	}
160159	defer googleapi.CloseBody(res)
160160	if err := googleapi.CheckResponse(res); err != nil {
160161		return nil, err
160162	}
160163	ret := &Snapshot{
160164		ServerResponse: googleapi.ServerResponse{
160165			Header:         res.Header,
160166			HTTPStatusCode: res.StatusCode,
160167		},
160168	}
160169	target := &ret
160170	if err := gensupport.DecodeResponse(target, res); err != nil {
160171		return nil, err
160172	}
160173	return ret, nil
160174	// {
160175	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
160176	//   "httpMethod": "GET",
160177	//   "id": "compute.snapshots.get",
160178	//   "parameterOrder": [
160179	//     "project",
160180	//     "snapshot"
160181	//   ],
160182	//   "parameters": {
160183	//     "project": {
160184	//       "description": "Project ID for this request.",
160185	//       "location": "path",
160186	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160187	//       "required": true,
160188	//       "type": "string"
160189	//     },
160190	//     "snapshot": {
160191	//       "description": "Name of the Snapshot resource to return.",
160192	//       "location": "path",
160193	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160194	//       "required": true,
160195	//       "type": "string"
160196	//     }
160197	//   },
160198	//   "path": "projects/{project}/global/snapshots/{snapshot}",
160199	//   "response": {
160200	//     "$ref": "Snapshot"
160201	//   },
160202	//   "scopes": [
160203	//     "https://www.googleapis.com/auth/cloud-platform",
160204	//     "https://www.googleapis.com/auth/compute",
160205	//     "https://www.googleapis.com/auth/compute.readonly"
160206	//   ]
160207	// }
160208
160209}
160210
160211// method id "compute.snapshots.getIamPolicy":
160212
160213type SnapshotsGetIamPolicyCall struct {
160214	s            *Service
160215	project      string
160216	resource     string
160217	urlParams_   gensupport.URLParams
160218	ifNoneMatch_ string
160219	ctx_         context.Context
160220	header_      http.Header
160221}
160222
160223// GetIamPolicy: Gets the access control policy for a resource. May be
160224// empty if no such policy or resource exists.
160225//
160226// - project: Project ID for this request.
160227// - resource: Name or id of the resource for this request.
160228func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
160229	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160230	c.project = project
160231	c.resource = resource
160232	return c
160233}
160234
160235// OptionsRequestedPolicyVersion sets the optional parameter
160236// "optionsRequestedPolicyVersion": Requested IAM Policy version.
160237func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
160238	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
160239	return c
160240}
160241
160242// Fields allows partial responses to be retrieved. See
160243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160244// for more information.
160245func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
160246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160247	return c
160248}
160249
160250// IfNoneMatch sets the optional parameter which makes the operation
160251// fail if the object's ETag matches the given value. This is useful for
160252// getting updates only after the object has changed since the last
160253// request. Use googleapi.IsNotModified to check whether the response
160254// error from Do is the result of In-None-Match.
160255func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
160256	c.ifNoneMatch_ = entityTag
160257	return c
160258}
160259
160260// Context sets the context to be used in this call's Do method. Any
160261// pending HTTP request will be aborted if the provided context is
160262// canceled.
160263func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
160264	c.ctx_ = ctx
160265	return c
160266}
160267
160268// Header returns an http.Header that can be modified by the caller to
160269// add HTTP headers to the request.
160270func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
160271	if c.header_ == nil {
160272		c.header_ = make(http.Header)
160273	}
160274	return c.header_
160275}
160276
160277func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
160278	reqHeaders := make(http.Header)
160279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160280	for k, v := range c.header_ {
160281		reqHeaders[k] = v
160282	}
160283	reqHeaders.Set("User-Agent", c.s.userAgent())
160284	if c.ifNoneMatch_ != "" {
160285		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160286	}
160287	var body io.Reader = nil
160288	c.urlParams_.Set("alt", alt)
160289	c.urlParams_.Set("prettyPrint", "false")
160290	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/getIamPolicy")
160291	urls += "?" + c.urlParams_.Encode()
160292	req, err := http.NewRequest("GET", urls, body)
160293	if err != nil {
160294		return nil, err
160295	}
160296	req.Header = reqHeaders
160297	googleapi.Expand(req.URL, map[string]string{
160298		"project":  c.project,
160299		"resource": c.resource,
160300	})
160301	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160302}
160303
160304// Do executes the "compute.snapshots.getIamPolicy" call.
160305// Exactly one of *Policy or error will be non-nil. Any non-2xx status
160306// code is an error. Response headers are in either
160307// *Policy.ServerResponse.Header or (if a response was returned at all)
160308// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
160309// check whether the returned error was because http.StatusNotModified
160310// was returned.
160311func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
160312	gensupport.SetOptions(c.urlParams_, opts...)
160313	res, err := c.doRequest("json")
160314	if res != nil && res.StatusCode == http.StatusNotModified {
160315		if res.Body != nil {
160316			res.Body.Close()
160317		}
160318		return nil, &googleapi.Error{
160319			Code:   res.StatusCode,
160320			Header: res.Header,
160321		}
160322	}
160323	if err != nil {
160324		return nil, err
160325	}
160326	defer googleapi.CloseBody(res)
160327	if err := googleapi.CheckResponse(res); err != nil {
160328		return nil, err
160329	}
160330	ret := &Policy{
160331		ServerResponse: googleapi.ServerResponse{
160332			Header:         res.Header,
160333			HTTPStatusCode: res.StatusCode,
160334		},
160335	}
160336	target := &ret
160337	if err := gensupport.DecodeResponse(target, res); err != nil {
160338		return nil, err
160339	}
160340	return ret, nil
160341	// {
160342	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
160343	//   "httpMethod": "GET",
160344	//   "id": "compute.snapshots.getIamPolicy",
160345	//   "parameterOrder": [
160346	//     "project",
160347	//     "resource"
160348	//   ],
160349	//   "parameters": {
160350	//     "optionsRequestedPolicyVersion": {
160351	//       "description": "Requested IAM Policy version.",
160352	//       "format": "int32",
160353	//       "location": "query",
160354	//       "type": "integer"
160355	//     },
160356	//     "project": {
160357	//       "description": "Project ID for this request.",
160358	//       "location": "path",
160359	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160360	//       "required": true,
160361	//       "type": "string"
160362	//     },
160363	//     "resource": {
160364	//       "description": "Name or id of the resource for this request.",
160365	//       "location": "path",
160366	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160367	//       "required": true,
160368	//       "type": "string"
160369	//     }
160370	//   },
160371	//   "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
160372	//   "response": {
160373	//     "$ref": "Policy"
160374	//   },
160375	//   "scopes": [
160376	//     "https://www.googleapis.com/auth/cloud-platform",
160377	//     "https://www.googleapis.com/auth/compute",
160378	//     "https://www.googleapis.com/auth/compute.readonly"
160379	//   ]
160380	// }
160381
160382}
160383
160384// method id "compute.snapshots.insert":
160385
160386type SnapshotsInsertCall struct {
160387	s          *Service
160388	project    string
160389	snapshot   *Snapshot
160390	urlParams_ gensupport.URLParams
160391	ctx_       context.Context
160392	header_    http.Header
160393}
160394
160395// Insert: Creates a snapshot in the specified project using the data
160396// included in the request.
160397//
160398// - project: Project ID for this request.
160399func (r *SnapshotsService) Insert(project string, snapshot *Snapshot) *SnapshotsInsertCall {
160400	c := &SnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160401	c.project = project
160402	c.snapshot = snapshot
160403	return c
160404}
160405
160406// RequestId sets the optional parameter "requestId": An optional
160407// request ID to identify requests. Specify a unique request ID so that
160408// if you must retry your request, the server will know to ignore the
160409// request if it has already been completed.
160410//
160411// For example, consider a situation where you make an initial request
160412// and the request times out. If you make the request again with the
160413// same request ID, the server can check if original operation with the
160414// same request ID was received, and if so, will ignore the second
160415// request. This prevents clients from accidentally creating duplicate
160416// commitments.
160417//
160418// The request ID must be a valid UUID with the exception that zero UUID
160419// is not supported (00000000-0000-0000-0000-000000000000).
160420func (c *SnapshotsInsertCall) RequestId(requestId string) *SnapshotsInsertCall {
160421	c.urlParams_.Set("requestId", requestId)
160422	return c
160423}
160424
160425// Fields allows partial responses to be retrieved. See
160426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160427// for more information.
160428func (c *SnapshotsInsertCall) Fields(s ...googleapi.Field) *SnapshotsInsertCall {
160429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160430	return c
160431}
160432
160433// Context sets the context to be used in this call's Do method. Any
160434// pending HTTP request will be aborted if the provided context is
160435// canceled.
160436func (c *SnapshotsInsertCall) Context(ctx context.Context) *SnapshotsInsertCall {
160437	c.ctx_ = ctx
160438	return c
160439}
160440
160441// Header returns an http.Header that can be modified by the caller to
160442// add HTTP headers to the request.
160443func (c *SnapshotsInsertCall) Header() http.Header {
160444	if c.header_ == nil {
160445		c.header_ = make(http.Header)
160446	}
160447	return c.header_
160448}
160449
160450func (c *SnapshotsInsertCall) doRequest(alt string) (*http.Response, error) {
160451	reqHeaders := make(http.Header)
160452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160453	for k, v := range c.header_ {
160454		reqHeaders[k] = v
160455	}
160456	reqHeaders.Set("User-Agent", c.s.userAgent())
160457	var body io.Reader = nil
160458	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
160459	if err != nil {
160460		return nil, err
160461	}
160462	reqHeaders.Set("Content-Type", "application/json")
160463	c.urlParams_.Set("alt", alt)
160464	c.urlParams_.Set("prettyPrint", "false")
160465	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots")
160466	urls += "?" + c.urlParams_.Encode()
160467	req, err := http.NewRequest("POST", urls, body)
160468	if err != nil {
160469		return nil, err
160470	}
160471	req.Header = reqHeaders
160472	googleapi.Expand(req.URL, map[string]string{
160473		"project": c.project,
160474	})
160475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160476}
160477
160478// Do executes the "compute.snapshots.insert" call.
160479// Exactly one of *Operation or error will be non-nil. Any non-2xx
160480// status code is an error. Response headers are in either
160481// *Operation.ServerResponse.Header or (if a response was returned at
160482// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160483// to check whether the returned error was because
160484// http.StatusNotModified was returned.
160485func (c *SnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160486	gensupport.SetOptions(c.urlParams_, opts...)
160487	res, err := c.doRequest("json")
160488	if res != nil && res.StatusCode == http.StatusNotModified {
160489		if res.Body != nil {
160490			res.Body.Close()
160491		}
160492		return nil, &googleapi.Error{
160493			Code:   res.StatusCode,
160494			Header: res.Header,
160495		}
160496	}
160497	if err != nil {
160498		return nil, err
160499	}
160500	defer googleapi.CloseBody(res)
160501	if err := googleapi.CheckResponse(res); err != nil {
160502		return nil, err
160503	}
160504	ret := &Operation{
160505		ServerResponse: googleapi.ServerResponse{
160506			Header:         res.Header,
160507			HTTPStatusCode: res.StatusCode,
160508		},
160509	}
160510	target := &ret
160511	if err := gensupport.DecodeResponse(target, res); err != nil {
160512		return nil, err
160513	}
160514	return ret, nil
160515	// {
160516	//   "description": "Creates a snapshot in the specified project using the data included in the request.",
160517	//   "httpMethod": "POST",
160518	//   "id": "compute.snapshots.insert",
160519	//   "parameterOrder": [
160520	//     "project"
160521	//   ],
160522	//   "parameters": {
160523	//     "project": {
160524	//       "description": "Project ID for this request.",
160525	//       "location": "path",
160526	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160527	//       "required": true,
160528	//       "type": "string"
160529	//     },
160530	//     "requestId": {
160531	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160532	//       "location": "query",
160533	//       "type": "string"
160534	//     }
160535	//   },
160536	//   "path": "projects/{project}/global/snapshots",
160537	//   "request": {
160538	//     "$ref": "Snapshot"
160539	//   },
160540	//   "response": {
160541	//     "$ref": "Operation"
160542	//   },
160543	//   "scopes": [
160544	//     "https://www.googleapis.com/auth/cloud-platform",
160545	//     "https://www.googleapis.com/auth/compute"
160546	//   ]
160547	// }
160548
160549}
160550
160551// method id "compute.snapshots.list":
160552
160553type SnapshotsListCall struct {
160554	s            *Service
160555	project      string
160556	urlParams_   gensupport.URLParams
160557	ifNoneMatch_ string
160558	ctx_         context.Context
160559	header_      http.Header
160560}
160561
160562// List: Retrieves the list of Snapshot resources contained within the
160563// specified project.
160564//
160565// - project: Project ID for this request.
160566// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
160567func (r *SnapshotsService) List(project string) *SnapshotsListCall {
160568	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160569	c.project = project
160570	return c
160571}
160572
160573// Filter sets the optional parameter "filter": A filter expression that
160574// filters resources listed in the response. The expression must specify
160575// the field name, a comparison operator, and the value that you want to
160576// use for filtering. The value must be a string, a number, or a
160577// boolean. The comparison operator must be either `=`, `!=`, `>`, or
160578// `<`.
160579//
160580// For example, if you are filtering Compute Engine instances, you can
160581// exclude instances named `example-instance` by specifying `name !=
160582// example-instance`.
160583//
160584// You can also filter nested fields. For example, you could specify
160585// `scheduling.automaticRestart = false` to include instances only if
160586// they are not scheduled for automatic restarts. You can use filtering
160587// on nested fields to filter based on resource labels.
160588//
160589// To filter on multiple expressions, provide each separate expression
160590// within parentheses. For example: ``` (scheduling.automaticRestart =
160591// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
160592// is an `AND` expression. However, you can include `AND` and `OR`
160593// expressions explicitly. For example: ``` (cpuPlatform = "Intel
160594// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
160595// (scheduling.automaticRestart = true) ```
160596func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
160597	c.urlParams_.Set("filter", filter)
160598	return c
160599}
160600
160601// MaxResults sets the optional parameter "maxResults": The maximum
160602// number of results per page that should be returned. If the number of
160603// available results is larger than `maxResults`, Compute Engine returns
160604// a `nextPageToken` that can be used to get the next page of results in
160605// subsequent list requests. Acceptable values are `0` to `500`,
160606// inclusive. (Default: `500`)
160607func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
160608	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
160609	return c
160610}
160611
160612// OrderBy sets the optional parameter "orderBy": Sorts list results by
160613// a certain order. By default, results are returned in alphanumerical
160614// order based on the resource name.
160615//
160616// You can also sort results in descending order based on the creation
160617// timestamp using `orderBy="creationTimestamp desc". This sorts
160618// results based on the `creationTimestamp` field in reverse
160619// chronological order (newest result first). Use this to sort resources
160620// like operations so that the newest operation is returned
160621// first.
160622//
160623// Currently, only sorting by `name` or `creationTimestamp desc` is
160624// supported.
160625func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
160626	c.urlParams_.Set("orderBy", orderBy)
160627	return c
160628}
160629
160630// PageToken sets the optional parameter "pageToken": Specifies a page
160631// token to use. Set `pageToken` to the `nextPageToken` returned by a
160632// previous list request to get the next page of results.
160633func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
160634	c.urlParams_.Set("pageToken", pageToken)
160635	return c
160636}
160637
160638// ReturnPartialSuccess sets the optional parameter
160639// "returnPartialSuccess": Opt-in for partial success behavior which
160640// provides partial results in case of failure. The default value is
160641// false.
160642func (c *SnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SnapshotsListCall {
160643	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
160644	return c
160645}
160646
160647// Fields allows partial responses to be retrieved. See
160648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160649// for more information.
160650func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
160651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160652	return c
160653}
160654
160655// IfNoneMatch sets the optional parameter which makes the operation
160656// fail if the object's ETag matches the given value. This is useful for
160657// getting updates only after the object has changed since the last
160658// request. Use googleapi.IsNotModified to check whether the response
160659// error from Do is the result of In-None-Match.
160660func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
160661	c.ifNoneMatch_ = entityTag
160662	return c
160663}
160664
160665// Context sets the context to be used in this call's Do method. Any
160666// pending HTTP request will be aborted if the provided context is
160667// canceled.
160668func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
160669	c.ctx_ = ctx
160670	return c
160671}
160672
160673// Header returns an http.Header that can be modified by the caller to
160674// add HTTP headers to the request.
160675func (c *SnapshotsListCall) Header() http.Header {
160676	if c.header_ == nil {
160677		c.header_ = make(http.Header)
160678	}
160679	return c.header_
160680}
160681
160682func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
160683	reqHeaders := make(http.Header)
160684	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160685	for k, v := range c.header_ {
160686		reqHeaders[k] = v
160687	}
160688	reqHeaders.Set("User-Agent", c.s.userAgent())
160689	if c.ifNoneMatch_ != "" {
160690		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160691	}
160692	var body io.Reader = nil
160693	c.urlParams_.Set("alt", alt)
160694	c.urlParams_.Set("prettyPrint", "false")
160695	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots")
160696	urls += "?" + c.urlParams_.Encode()
160697	req, err := http.NewRequest("GET", urls, body)
160698	if err != nil {
160699		return nil, err
160700	}
160701	req.Header = reqHeaders
160702	googleapi.Expand(req.URL, map[string]string{
160703		"project": c.project,
160704	})
160705	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160706}
160707
160708// Do executes the "compute.snapshots.list" call.
160709// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
160710// status code is an error. Response headers are in either
160711// *SnapshotList.ServerResponse.Header or (if a response was returned at
160712// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160713// to check whether the returned error was because
160714// http.StatusNotModified was returned.
160715func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
160716	gensupport.SetOptions(c.urlParams_, opts...)
160717	res, err := c.doRequest("json")
160718	if res != nil && res.StatusCode == http.StatusNotModified {
160719		if res.Body != nil {
160720			res.Body.Close()
160721		}
160722		return nil, &googleapi.Error{
160723			Code:   res.StatusCode,
160724			Header: res.Header,
160725		}
160726	}
160727	if err != nil {
160728		return nil, err
160729	}
160730	defer googleapi.CloseBody(res)
160731	if err := googleapi.CheckResponse(res); err != nil {
160732		return nil, err
160733	}
160734	ret := &SnapshotList{
160735		ServerResponse: googleapi.ServerResponse{
160736			Header:         res.Header,
160737			HTTPStatusCode: res.StatusCode,
160738		},
160739	}
160740	target := &ret
160741	if err := gensupport.DecodeResponse(target, res); err != nil {
160742		return nil, err
160743	}
160744	return ret, nil
160745	// {
160746	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
160747	//   "httpMethod": "GET",
160748	//   "id": "compute.snapshots.list",
160749	//   "parameterOrder": [
160750	//     "project"
160751	//   ],
160752	//   "parameters": {
160753	//     "filter": {
160754	//       "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) ```",
160755	//       "location": "query",
160756	//       "type": "string"
160757	//     },
160758	//     "maxResults": {
160759	//       "default": "500",
160760	//       "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`)",
160761	//       "format": "uint32",
160762	//       "location": "query",
160763	//       "minimum": "0",
160764	//       "type": "integer"
160765	//     },
160766	//     "orderBy": {
160767	//       "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.",
160768	//       "location": "query",
160769	//       "type": "string"
160770	//     },
160771	//     "pageToken": {
160772	//       "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.",
160773	//       "location": "query",
160774	//       "type": "string"
160775	//     },
160776	//     "project": {
160777	//       "description": "Project ID for this request.",
160778	//       "location": "path",
160779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160780	//       "required": true,
160781	//       "type": "string"
160782	//     },
160783	//     "returnPartialSuccess": {
160784	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
160785	//       "location": "query",
160786	//       "type": "boolean"
160787	//     }
160788	//   },
160789	//   "path": "projects/{project}/global/snapshots",
160790	//   "response": {
160791	//     "$ref": "SnapshotList"
160792	//   },
160793	//   "scopes": [
160794	//     "https://www.googleapis.com/auth/cloud-platform",
160795	//     "https://www.googleapis.com/auth/compute",
160796	//     "https://www.googleapis.com/auth/compute.readonly"
160797	//   ]
160798	// }
160799
160800}
160801
160802// Pages invokes f for each page of results.
160803// A non-nil error returned from f will halt the iteration.
160804// The provided context supersedes any context provided to the Context method.
160805func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
160806	c.ctx_ = ctx
160807	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160808	for {
160809		x, err := c.Do()
160810		if err != nil {
160811			return err
160812		}
160813		if err := f(x); err != nil {
160814			return err
160815		}
160816		if x.NextPageToken == "" {
160817			return nil
160818		}
160819		c.PageToken(x.NextPageToken)
160820	}
160821}
160822
160823// method id "compute.snapshots.setIamPolicy":
160824
160825type SnapshotsSetIamPolicyCall struct {
160826	s                      *Service
160827	project                string
160828	resource               string
160829	globalsetpolicyrequest *GlobalSetPolicyRequest
160830	urlParams_             gensupport.URLParams
160831	ctx_                   context.Context
160832	header_                http.Header
160833}
160834
160835// SetIamPolicy: Sets the access control policy on the specified
160836// resource. Replaces any existing policy.
160837//
160838// - project: Project ID for this request.
160839// - resource: Name or id of the resource for this request.
160840func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
160841	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160842	c.project = project
160843	c.resource = resource
160844	c.globalsetpolicyrequest = globalsetpolicyrequest
160845	return c
160846}
160847
160848// Fields allows partial responses to be retrieved. See
160849// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160850// for more information.
160851func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
160852	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160853	return c
160854}
160855
160856// Context sets the context to be used in this call's Do method. Any
160857// pending HTTP request will be aborted if the provided context is
160858// canceled.
160859func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
160860	c.ctx_ = ctx
160861	return c
160862}
160863
160864// Header returns an http.Header that can be modified by the caller to
160865// add HTTP headers to the request.
160866func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
160867	if c.header_ == nil {
160868		c.header_ = make(http.Header)
160869	}
160870	return c.header_
160871}
160872
160873func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
160874	reqHeaders := make(http.Header)
160875	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160876	for k, v := range c.header_ {
160877		reqHeaders[k] = v
160878	}
160879	reqHeaders.Set("User-Agent", c.s.userAgent())
160880	var body io.Reader = nil
160881	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
160882	if err != nil {
160883		return nil, err
160884	}
160885	reqHeaders.Set("Content-Type", "application/json")
160886	c.urlParams_.Set("alt", alt)
160887	c.urlParams_.Set("prettyPrint", "false")
160888	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setIamPolicy")
160889	urls += "?" + c.urlParams_.Encode()
160890	req, err := http.NewRequest("POST", urls, body)
160891	if err != nil {
160892		return nil, err
160893	}
160894	req.Header = reqHeaders
160895	googleapi.Expand(req.URL, map[string]string{
160896		"project":  c.project,
160897		"resource": c.resource,
160898	})
160899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160900}
160901
160902// Do executes the "compute.snapshots.setIamPolicy" 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 *SnapshotsSetIamPolicyCall) 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": "Sets the access control policy on the specified resource. Replaces any existing policy.",
160941	//   "httpMethod": "POST",
160942	//   "id": "compute.snapshots.setIamPolicy",
160943	//   "parameterOrder": [
160944	//     "project",
160945	//     "resource"
160946	//   ],
160947	//   "parameters": {
160948	//     "project": {
160949	//       "description": "Project ID for this request.",
160950	//       "location": "path",
160951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160952	//       "required": true,
160953	//       "type": "string"
160954	//     },
160955	//     "resource": {
160956	//       "description": "Name or id of the resource for this request.",
160957	//       "location": "path",
160958	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160959	//       "required": true,
160960	//       "type": "string"
160961	//     }
160962	//   },
160963	//   "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
160964	//   "request": {
160965	//     "$ref": "GlobalSetPolicyRequest"
160966	//   },
160967	//   "response": {
160968	//     "$ref": "Policy"
160969	//   },
160970	//   "scopes": [
160971	//     "https://www.googleapis.com/auth/cloud-platform",
160972	//     "https://www.googleapis.com/auth/compute"
160973	//   ]
160974	// }
160975
160976}
160977
160978// method id "compute.snapshots.setLabels":
160979
160980type SnapshotsSetLabelsCall struct {
160981	s                      *Service
160982	project                string
160983	resource               string
160984	globalsetlabelsrequest *GlobalSetLabelsRequest
160985	urlParams_             gensupport.URLParams
160986	ctx_                   context.Context
160987	header_                http.Header
160988}
160989
160990// SetLabels: Sets the labels on a snapshot. To learn more about labels,
160991// read the Labeling Resources documentation.
160992//
160993// - project: Project ID for this request.
160994// - resource: Name or id of the resource for this request.
160995func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
160996	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160997	c.project = project
160998	c.resource = resource
160999	c.globalsetlabelsrequest = globalsetlabelsrequest
161000	return c
161001}
161002
161003// Fields allows partial responses to be retrieved. See
161004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161005// for more information.
161006func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
161007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161008	return c
161009}
161010
161011// Context sets the context to be used in this call's Do method. Any
161012// pending HTTP request will be aborted if the provided context is
161013// canceled.
161014func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
161015	c.ctx_ = ctx
161016	return c
161017}
161018
161019// Header returns an http.Header that can be modified by the caller to
161020// add HTTP headers to the request.
161021func (c *SnapshotsSetLabelsCall) Header() http.Header {
161022	if c.header_ == nil {
161023		c.header_ = make(http.Header)
161024	}
161025	return c.header_
161026}
161027
161028func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
161029	reqHeaders := make(http.Header)
161030	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161031	for k, v := range c.header_ {
161032		reqHeaders[k] = v
161033	}
161034	reqHeaders.Set("User-Agent", c.s.userAgent())
161035	var body io.Reader = nil
161036	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
161037	if err != nil {
161038		return nil, err
161039	}
161040	reqHeaders.Set("Content-Type", "application/json")
161041	c.urlParams_.Set("alt", alt)
161042	c.urlParams_.Set("prettyPrint", "false")
161043	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setLabels")
161044	urls += "?" + c.urlParams_.Encode()
161045	req, err := http.NewRequest("POST", urls, body)
161046	if err != nil {
161047		return nil, err
161048	}
161049	req.Header = reqHeaders
161050	googleapi.Expand(req.URL, map[string]string{
161051		"project":  c.project,
161052		"resource": c.resource,
161053	})
161054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161055}
161056
161057// Do executes the "compute.snapshots.setLabels" call.
161058// Exactly one of *Operation or error will be non-nil. Any non-2xx
161059// status code is an error. Response headers are in either
161060// *Operation.ServerResponse.Header or (if a response was returned at
161061// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161062// to check whether the returned error was because
161063// http.StatusNotModified was returned.
161064func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161065	gensupport.SetOptions(c.urlParams_, opts...)
161066	res, err := c.doRequest("json")
161067	if res != nil && res.StatusCode == http.StatusNotModified {
161068		if res.Body != nil {
161069			res.Body.Close()
161070		}
161071		return nil, &googleapi.Error{
161072			Code:   res.StatusCode,
161073			Header: res.Header,
161074		}
161075	}
161076	if err != nil {
161077		return nil, err
161078	}
161079	defer googleapi.CloseBody(res)
161080	if err := googleapi.CheckResponse(res); err != nil {
161081		return nil, err
161082	}
161083	ret := &Operation{
161084		ServerResponse: googleapi.ServerResponse{
161085			Header:         res.Header,
161086			HTTPStatusCode: res.StatusCode,
161087		},
161088	}
161089	target := &ret
161090	if err := gensupport.DecodeResponse(target, res); err != nil {
161091		return nil, err
161092	}
161093	return ret, nil
161094	// {
161095	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
161096	//   "httpMethod": "POST",
161097	//   "id": "compute.snapshots.setLabels",
161098	//   "parameterOrder": [
161099	//     "project",
161100	//     "resource"
161101	//   ],
161102	//   "parameters": {
161103	//     "project": {
161104	//       "description": "Project ID for this request.",
161105	//       "location": "path",
161106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161107	//       "required": true,
161108	//       "type": "string"
161109	//     },
161110	//     "resource": {
161111	//       "description": "Name or id of the resource for this request.",
161112	//       "location": "path",
161113	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161114	//       "required": true,
161115	//       "type": "string"
161116	//     }
161117	//   },
161118	//   "path": "projects/{project}/global/snapshots/{resource}/setLabels",
161119	//   "request": {
161120	//     "$ref": "GlobalSetLabelsRequest"
161121	//   },
161122	//   "response": {
161123	//     "$ref": "Operation"
161124	//   },
161125	//   "scopes": [
161126	//     "https://www.googleapis.com/auth/cloud-platform",
161127	//     "https://www.googleapis.com/auth/compute"
161128	//   ]
161129	// }
161130
161131}
161132
161133// method id "compute.snapshots.testIamPermissions":
161134
161135type SnapshotsTestIamPermissionsCall struct {
161136	s                      *Service
161137	project                string
161138	resource               string
161139	testpermissionsrequest *TestPermissionsRequest
161140	urlParams_             gensupport.URLParams
161141	ctx_                   context.Context
161142	header_                http.Header
161143}
161144
161145// TestIamPermissions: Returns permissions that a caller has on the
161146// specified resource.
161147//
161148// - project: Project ID for this request.
161149// - resource: Name or id of the resource for this request.
161150func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
161151	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161152	c.project = project
161153	c.resource = resource
161154	c.testpermissionsrequest = testpermissionsrequest
161155	return c
161156}
161157
161158// Fields allows partial responses to be retrieved. See
161159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161160// for more information.
161161func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
161162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161163	return c
161164}
161165
161166// Context sets the context to be used in this call's Do method. Any
161167// pending HTTP request will be aborted if the provided context is
161168// canceled.
161169func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
161170	c.ctx_ = ctx
161171	return c
161172}
161173
161174// Header returns an http.Header that can be modified by the caller to
161175// add HTTP headers to the request.
161176func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
161177	if c.header_ == nil {
161178		c.header_ = make(http.Header)
161179	}
161180	return c.header_
161181}
161182
161183func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
161184	reqHeaders := make(http.Header)
161185	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161186	for k, v := range c.header_ {
161187		reqHeaders[k] = v
161188	}
161189	reqHeaders.Set("User-Agent", c.s.userAgent())
161190	var body io.Reader = nil
161191	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
161192	if err != nil {
161193		return nil, err
161194	}
161195	reqHeaders.Set("Content-Type", "application/json")
161196	c.urlParams_.Set("alt", alt)
161197	c.urlParams_.Set("prettyPrint", "false")
161198	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/testIamPermissions")
161199	urls += "?" + c.urlParams_.Encode()
161200	req, err := http.NewRequest("POST", urls, body)
161201	if err != nil {
161202		return nil, err
161203	}
161204	req.Header = reqHeaders
161205	googleapi.Expand(req.URL, map[string]string{
161206		"project":  c.project,
161207		"resource": c.resource,
161208	})
161209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161210}
161211
161212// Do executes the "compute.snapshots.testIamPermissions" call.
161213// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
161214// non-2xx status code is an error. Response headers are in either
161215// *TestPermissionsResponse.ServerResponse.Header or (if a response was
161216// returned at all) in error.(*googleapi.Error).Header. Use
161217// googleapi.IsNotModified to check whether the returned error was
161218// because http.StatusNotModified was returned.
161219func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
161220	gensupport.SetOptions(c.urlParams_, opts...)
161221	res, err := c.doRequest("json")
161222	if res != nil && res.StatusCode == http.StatusNotModified {
161223		if res.Body != nil {
161224			res.Body.Close()
161225		}
161226		return nil, &googleapi.Error{
161227			Code:   res.StatusCode,
161228			Header: res.Header,
161229		}
161230	}
161231	if err != nil {
161232		return nil, err
161233	}
161234	defer googleapi.CloseBody(res)
161235	if err := googleapi.CheckResponse(res); err != nil {
161236		return nil, err
161237	}
161238	ret := &TestPermissionsResponse{
161239		ServerResponse: googleapi.ServerResponse{
161240			Header:         res.Header,
161241			HTTPStatusCode: res.StatusCode,
161242		},
161243	}
161244	target := &ret
161245	if err := gensupport.DecodeResponse(target, res); err != nil {
161246		return nil, err
161247	}
161248	return ret, nil
161249	// {
161250	//   "description": "Returns permissions that a caller has on the specified resource.",
161251	//   "httpMethod": "POST",
161252	//   "id": "compute.snapshots.testIamPermissions",
161253	//   "parameterOrder": [
161254	//     "project",
161255	//     "resource"
161256	//   ],
161257	//   "parameters": {
161258	//     "project": {
161259	//       "description": "Project ID for this request.",
161260	//       "location": "path",
161261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161262	//       "required": true,
161263	//       "type": "string"
161264	//     },
161265	//     "resource": {
161266	//       "description": "Name or id of the resource for this request.",
161267	//       "location": "path",
161268	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161269	//       "required": true,
161270	//       "type": "string"
161271	//     }
161272	//   },
161273	//   "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
161274	//   "request": {
161275	//     "$ref": "TestPermissionsRequest"
161276	//   },
161277	//   "response": {
161278	//     "$ref": "TestPermissionsResponse"
161279	//   },
161280	//   "scopes": [
161281	//     "https://www.googleapis.com/auth/cloud-platform",
161282	//     "https://www.googleapis.com/auth/compute",
161283	//     "https://www.googleapis.com/auth/compute.readonly"
161284	//   ]
161285	// }
161286
161287}
161288
161289// method id "compute.sslCertificates.aggregatedList":
161290
161291type SslCertificatesAggregatedListCall struct {
161292	s            *Service
161293	project      string
161294	urlParams_   gensupport.URLParams
161295	ifNoneMatch_ string
161296	ctx_         context.Context
161297	header_      http.Header
161298}
161299
161300// AggregatedList: Retrieves the list of all SslCertificate resources,
161301// regional and global, available to the specified project.
161302//
161303// - project: Name of the project scoping this request.
161304func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
161305	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161306	c.project = project
161307	return c
161308}
161309
161310// Filter sets the optional parameter "filter": A filter expression that
161311// filters resources listed in the response. The expression must specify
161312// the field name, a comparison operator, and the value that you want to
161313// use for filtering. The value must be a string, a number, or a
161314// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161315// `<`.
161316//
161317// For example, if you are filtering Compute Engine instances, you can
161318// exclude instances named `example-instance` by specifying `name !=
161319// example-instance`.
161320//
161321// You can also filter nested fields. For example, you could specify
161322// `scheduling.automaticRestart = false` to include instances only if
161323// they are not scheduled for automatic restarts. You can use filtering
161324// on nested fields to filter based on resource labels.
161325//
161326// To filter on multiple expressions, provide each separate expression
161327// within parentheses. For example: ``` (scheduling.automaticRestart =
161328// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
161329// is an `AND` expression. However, you can include `AND` and `OR`
161330// expressions explicitly. For example: ``` (cpuPlatform = "Intel
161331// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
161332// (scheduling.automaticRestart = true) ```
161333func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
161334	c.urlParams_.Set("filter", filter)
161335	return c
161336}
161337
161338// IncludeAllScopes sets the optional parameter "includeAllScopes":
161339// Indicates whether every visible scope for each scope type (zone,
161340// region, global) should be included in the response. For new resource
161341// types added after this field, the flag has no effect as new resource
161342// types will always include every visible scope for each scope type in
161343// response. For resource types which predate this field, if this flag
161344// is omitted or false, only scopes of the scope types where the
161345// resource type is expected to be found will be included.
161346func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
161347	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
161348	return c
161349}
161350
161351// MaxResults sets the optional parameter "maxResults": The maximum
161352// number of results per page that should be returned. If the number of
161353// available results is larger than `maxResults`, Compute Engine returns
161354// a `nextPageToken` that can be used to get the next page of results in
161355// subsequent list requests. Acceptable values are `0` to `500`,
161356// inclusive. (Default: `500`)
161357func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
161358	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161359	return c
161360}
161361
161362// OrderBy sets the optional parameter "orderBy": Sorts list results by
161363// a certain order. By default, results are returned in alphanumerical
161364// order based on the resource name.
161365//
161366// You can also sort results in descending order based on the creation
161367// timestamp using `orderBy="creationTimestamp desc". This sorts
161368// results based on the `creationTimestamp` field in reverse
161369// chronological order (newest result first). Use this to sort resources
161370// like operations so that the newest operation is returned
161371// first.
161372//
161373// Currently, only sorting by `name` or `creationTimestamp desc` is
161374// supported.
161375func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
161376	c.urlParams_.Set("orderBy", orderBy)
161377	return c
161378}
161379
161380// PageToken sets the optional parameter "pageToken": Specifies a page
161381// token to use. Set `pageToken` to the `nextPageToken` returned by a
161382// previous list request to get the next page of results.
161383func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
161384	c.urlParams_.Set("pageToken", pageToken)
161385	return c
161386}
161387
161388// ReturnPartialSuccess sets the optional parameter
161389// "returnPartialSuccess": Opt-in for partial success behavior which
161390// provides partial results in case of failure. The default value is
161391// false.
161392func (c *SslCertificatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesAggregatedListCall {
161393	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
161394	return c
161395}
161396
161397// Fields allows partial responses to be retrieved. See
161398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161399// for more information.
161400func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
161401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161402	return c
161403}
161404
161405// IfNoneMatch sets the optional parameter which makes the operation
161406// fail if the object's ETag matches the given value. This is useful for
161407// getting updates only after the object has changed since the last
161408// request. Use googleapi.IsNotModified to check whether the response
161409// error from Do is the result of In-None-Match.
161410func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
161411	c.ifNoneMatch_ = entityTag
161412	return c
161413}
161414
161415// Context sets the context to be used in this call's Do method. Any
161416// pending HTTP request will be aborted if the provided context is
161417// canceled.
161418func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
161419	c.ctx_ = ctx
161420	return c
161421}
161422
161423// Header returns an http.Header that can be modified by the caller to
161424// add HTTP headers to the request.
161425func (c *SslCertificatesAggregatedListCall) Header() http.Header {
161426	if c.header_ == nil {
161427		c.header_ = make(http.Header)
161428	}
161429	return c.header_
161430}
161431
161432func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
161433	reqHeaders := make(http.Header)
161434	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161435	for k, v := range c.header_ {
161436		reqHeaders[k] = v
161437	}
161438	reqHeaders.Set("User-Agent", c.s.userAgent())
161439	if c.ifNoneMatch_ != "" {
161440		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161441	}
161442	var body io.Reader = nil
161443	c.urlParams_.Set("alt", alt)
161444	c.urlParams_.Set("prettyPrint", "false")
161445	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslCertificates")
161446	urls += "?" + c.urlParams_.Encode()
161447	req, err := http.NewRequest("GET", urls, body)
161448	if err != nil {
161449		return nil, err
161450	}
161451	req.Header = reqHeaders
161452	googleapi.Expand(req.URL, map[string]string{
161453		"project": c.project,
161454	})
161455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161456}
161457
161458// Do executes the "compute.sslCertificates.aggregatedList" call.
161459// Exactly one of *SslCertificateAggregatedList or error will be
161460// non-nil. Any non-2xx status code is an error. Response headers are in
161461// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
161462// response was returned at all) in error.(*googleapi.Error).Header. Use
161463// googleapi.IsNotModified to check whether the returned error was
161464// because http.StatusNotModified was returned.
161465func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
161466	gensupport.SetOptions(c.urlParams_, opts...)
161467	res, err := c.doRequest("json")
161468	if res != nil && res.StatusCode == http.StatusNotModified {
161469		if res.Body != nil {
161470			res.Body.Close()
161471		}
161472		return nil, &googleapi.Error{
161473			Code:   res.StatusCode,
161474			Header: res.Header,
161475		}
161476	}
161477	if err != nil {
161478		return nil, err
161479	}
161480	defer googleapi.CloseBody(res)
161481	if err := googleapi.CheckResponse(res); err != nil {
161482		return nil, err
161483	}
161484	ret := &SslCertificateAggregatedList{
161485		ServerResponse: googleapi.ServerResponse{
161486			Header:         res.Header,
161487			HTTPStatusCode: res.StatusCode,
161488		},
161489	}
161490	target := &ret
161491	if err := gensupport.DecodeResponse(target, res); err != nil {
161492		return nil, err
161493	}
161494	return ret, nil
161495	// {
161496	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
161497	//   "httpMethod": "GET",
161498	//   "id": "compute.sslCertificates.aggregatedList",
161499	//   "parameterOrder": [
161500	//     "project"
161501	//   ],
161502	//   "parameters": {
161503	//     "filter": {
161504	//       "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) ```",
161505	//       "location": "query",
161506	//       "type": "string"
161507	//     },
161508	//     "includeAllScopes": {
161509	//       "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.",
161510	//       "location": "query",
161511	//       "type": "boolean"
161512	//     },
161513	//     "maxResults": {
161514	//       "default": "500",
161515	//       "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`)",
161516	//       "format": "uint32",
161517	//       "location": "query",
161518	//       "minimum": "0",
161519	//       "type": "integer"
161520	//     },
161521	//     "orderBy": {
161522	//       "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.",
161523	//       "location": "query",
161524	//       "type": "string"
161525	//     },
161526	//     "pageToken": {
161527	//       "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.",
161528	//       "location": "query",
161529	//       "type": "string"
161530	//     },
161531	//     "project": {
161532	//       "description": "Name of the project scoping this request.",
161533	//       "location": "path",
161534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161535	//       "required": true,
161536	//       "type": "string"
161537	//     },
161538	//     "returnPartialSuccess": {
161539	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
161540	//       "location": "query",
161541	//       "type": "boolean"
161542	//     }
161543	//   },
161544	//   "path": "projects/{project}/aggregated/sslCertificates",
161545	//   "response": {
161546	//     "$ref": "SslCertificateAggregatedList"
161547	//   },
161548	//   "scopes": [
161549	//     "https://www.googleapis.com/auth/cloud-platform",
161550	//     "https://www.googleapis.com/auth/compute",
161551	//     "https://www.googleapis.com/auth/compute.readonly"
161552	//   ]
161553	// }
161554
161555}
161556
161557// Pages invokes f for each page of results.
161558// A non-nil error returned from f will halt the iteration.
161559// The provided context supersedes any context provided to the Context method.
161560func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
161561	c.ctx_ = ctx
161562	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161563	for {
161564		x, err := c.Do()
161565		if err != nil {
161566			return err
161567		}
161568		if err := f(x); err != nil {
161569			return err
161570		}
161571		if x.NextPageToken == "" {
161572			return nil
161573		}
161574		c.PageToken(x.NextPageToken)
161575	}
161576}
161577
161578// method id "compute.sslCertificates.delete":
161579
161580type SslCertificatesDeleteCall struct {
161581	s              *Service
161582	project        string
161583	sslCertificate string
161584	urlParams_     gensupport.URLParams
161585	ctx_           context.Context
161586	header_        http.Header
161587}
161588
161589// Delete: Deletes the specified SslCertificate resource.
161590//
161591// - project: Project ID for this request.
161592// - sslCertificate: Name of the SslCertificate resource to delete.
161593func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
161594	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161595	c.project = project
161596	c.sslCertificate = sslCertificate
161597	return c
161598}
161599
161600// RequestId sets the optional parameter "requestId": An optional
161601// request ID to identify requests. Specify a unique request ID so that
161602// if you must retry your request, the server will know to ignore the
161603// request if it has already been completed.
161604//
161605// For example, consider a situation where you make an initial request
161606// and the request times out. If you make the request again with the
161607// same request ID, the server can check if original operation with the
161608// same request ID was received, and if so, will ignore the second
161609// request. This prevents clients from accidentally creating duplicate
161610// commitments.
161611//
161612// The request ID must be a valid UUID with the exception that zero UUID
161613// is not supported (00000000-0000-0000-0000-000000000000).
161614func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
161615	c.urlParams_.Set("requestId", requestId)
161616	return c
161617}
161618
161619// Fields allows partial responses to be retrieved. See
161620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161621// for more information.
161622func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
161623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161624	return c
161625}
161626
161627// Context sets the context to be used in this call's Do method. Any
161628// pending HTTP request will be aborted if the provided context is
161629// canceled.
161630func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
161631	c.ctx_ = ctx
161632	return c
161633}
161634
161635// Header returns an http.Header that can be modified by the caller to
161636// add HTTP headers to the request.
161637func (c *SslCertificatesDeleteCall) Header() http.Header {
161638	if c.header_ == nil {
161639		c.header_ = make(http.Header)
161640	}
161641	return c.header_
161642}
161643
161644func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
161645	reqHeaders := make(http.Header)
161646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161647	for k, v := range c.header_ {
161648		reqHeaders[k] = v
161649	}
161650	reqHeaders.Set("User-Agent", c.s.userAgent())
161651	var body io.Reader = nil
161652	c.urlParams_.Set("alt", alt)
161653	c.urlParams_.Set("prettyPrint", "false")
161654	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
161655	urls += "?" + c.urlParams_.Encode()
161656	req, err := http.NewRequest("DELETE", urls, body)
161657	if err != nil {
161658		return nil, err
161659	}
161660	req.Header = reqHeaders
161661	googleapi.Expand(req.URL, map[string]string{
161662		"project":        c.project,
161663		"sslCertificate": c.sslCertificate,
161664	})
161665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161666}
161667
161668// Do executes the "compute.sslCertificates.delete" call.
161669// Exactly one of *Operation or error will be non-nil. Any non-2xx
161670// status code is an error. Response headers are in either
161671// *Operation.ServerResponse.Header or (if a response was returned at
161672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161673// to check whether the returned error was because
161674// http.StatusNotModified was returned.
161675func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161676	gensupport.SetOptions(c.urlParams_, opts...)
161677	res, err := c.doRequest("json")
161678	if res != nil && res.StatusCode == http.StatusNotModified {
161679		if res.Body != nil {
161680			res.Body.Close()
161681		}
161682		return nil, &googleapi.Error{
161683			Code:   res.StatusCode,
161684			Header: res.Header,
161685		}
161686	}
161687	if err != nil {
161688		return nil, err
161689	}
161690	defer googleapi.CloseBody(res)
161691	if err := googleapi.CheckResponse(res); err != nil {
161692		return nil, err
161693	}
161694	ret := &Operation{
161695		ServerResponse: googleapi.ServerResponse{
161696			Header:         res.Header,
161697			HTTPStatusCode: res.StatusCode,
161698		},
161699	}
161700	target := &ret
161701	if err := gensupport.DecodeResponse(target, res); err != nil {
161702		return nil, err
161703	}
161704	return ret, nil
161705	// {
161706	//   "description": "Deletes the specified SslCertificate resource.",
161707	//   "httpMethod": "DELETE",
161708	//   "id": "compute.sslCertificates.delete",
161709	//   "parameterOrder": [
161710	//     "project",
161711	//     "sslCertificate"
161712	//   ],
161713	//   "parameters": {
161714	//     "project": {
161715	//       "description": "Project ID for this request.",
161716	//       "location": "path",
161717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161718	//       "required": true,
161719	//       "type": "string"
161720	//     },
161721	//     "requestId": {
161722	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161723	//       "location": "query",
161724	//       "type": "string"
161725	//     },
161726	//     "sslCertificate": {
161727	//       "description": "Name of the SslCertificate resource to delete.",
161728	//       "location": "path",
161729	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161730	//       "required": true,
161731	//       "type": "string"
161732	//     }
161733	//   },
161734	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
161735	//   "response": {
161736	//     "$ref": "Operation"
161737	//   },
161738	//   "scopes": [
161739	//     "https://www.googleapis.com/auth/cloud-platform",
161740	//     "https://www.googleapis.com/auth/compute"
161741	//   ]
161742	// }
161743
161744}
161745
161746// method id "compute.sslCertificates.get":
161747
161748type SslCertificatesGetCall struct {
161749	s              *Service
161750	project        string
161751	sslCertificate string
161752	urlParams_     gensupport.URLParams
161753	ifNoneMatch_   string
161754	ctx_           context.Context
161755	header_        http.Header
161756}
161757
161758// Get: Returns the specified SslCertificate resource. Gets a list of
161759// available SSL certificates by making a list() request.
161760//
161761// - project: Project ID for this request.
161762// - sslCertificate: Name of the SslCertificate resource to return.
161763func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
161764	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161765	c.project = project
161766	c.sslCertificate = sslCertificate
161767	return c
161768}
161769
161770// Fields allows partial responses to be retrieved. See
161771// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161772// for more information.
161773func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
161774	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161775	return c
161776}
161777
161778// IfNoneMatch sets the optional parameter which makes the operation
161779// fail if the object's ETag matches the given value. This is useful for
161780// getting updates only after the object has changed since the last
161781// request. Use googleapi.IsNotModified to check whether the response
161782// error from Do is the result of In-None-Match.
161783func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
161784	c.ifNoneMatch_ = entityTag
161785	return c
161786}
161787
161788// Context sets the context to be used in this call's Do method. Any
161789// pending HTTP request will be aborted if the provided context is
161790// canceled.
161791func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
161792	c.ctx_ = ctx
161793	return c
161794}
161795
161796// Header returns an http.Header that can be modified by the caller to
161797// add HTTP headers to the request.
161798func (c *SslCertificatesGetCall) Header() http.Header {
161799	if c.header_ == nil {
161800		c.header_ = make(http.Header)
161801	}
161802	return c.header_
161803}
161804
161805func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
161806	reqHeaders := make(http.Header)
161807	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161808	for k, v := range c.header_ {
161809		reqHeaders[k] = v
161810	}
161811	reqHeaders.Set("User-Agent", c.s.userAgent())
161812	if c.ifNoneMatch_ != "" {
161813		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161814	}
161815	var body io.Reader = nil
161816	c.urlParams_.Set("alt", alt)
161817	c.urlParams_.Set("prettyPrint", "false")
161818	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
161819	urls += "?" + c.urlParams_.Encode()
161820	req, err := http.NewRequest("GET", urls, body)
161821	if err != nil {
161822		return nil, err
161823	}
161824	req.Header = reqHeaders
161825	googleapi.Expand(req.URL, map[string]string{
161826		"project":        c.project,
161827		"sslCertificate": c.sslCertificate,
161828	})
161829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161830}
161831
161832// Do executes the "compute.sslCertificates.get" call.
161833// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
161834// status code is an error. Response headers are in either
161835// *SslCertificate.ServerResponse.Header or (if a response was returned
161836// at all) in error.(*googleapi.Error).Header. Use
161837// googleapi.IsNotModified to check whether the returned error was
161838// because http.StatusNotModified was returned.
161839func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
161840	gensupport.SetOptions(c.urlParams_, opts...)
161841	res, err := c.doRequest("json")
161842	if res != nil && res.StatusCode == http.StatusNotModified {
161843		if res.Body != nil {
161844			res.Body.Close()
161845		}
161846		return nil, &googleapi.Error{
161847			Code:   res.StatusCode,
161848			Header: res.Header,
161849		}
161850	}
161851	if err != nil {
161852		return nil, err
161853	}
161854	defer googleapi.CloseBody(res)
161855	if err := googleapi.CheckResponse(res); err != nil {
161856		return nil, err
161857	}
161858	ret := &SslCertificate{
161859		ServerResponse: googleapi.ServerResponse{
161860			Header:         res.Header,
161861			HTTPStatusCode: res.StatusCode,
161862		},
161863	}
161864	target := &ret
161865	if err := gensupport.DecodeResponse(target, res); err != nil {
161866		return nil, err
161867	}
161868	return ret, nil
161869	// {
161870	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
161871	//   "httpMethod": "GET",
161872	//   "id": "compute.sslCertificates.get",
161873	//   "parameterOrder": [
161874	//     "project",
161875	//     "sslCertificate"
161876	//   ],
161877	//   "parameters": {
161878	//     "project": {
161879	//       "description": "Project ID for this request.",
161880	//       "location": "path",
161881	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161882	//       "required": true,
161883	//       "type": "string"
161884	//     },
161885	//     "sslCertificate": {
161886	//       "description": "Name of the SslCertificate resource to return.",
161887	//       "location": "path",
161888	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161889	//       "required": true,
161890	//       "type": "string"
161891	//     }
161892	//   },
161893	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
161894	//   "response": {
161895	//     "$ref": "SslCertificate"
161896	//   },
161897	//   "scopes": [
161898	//     "https://www.googleapis.com/auth/cloud-platform",
161899	//     "https://www.googleapis.com/auth/compute",
161900	//     "https://www.googleapis.com/auth/compute.readonly"
161901	//   ]
161902	// }
161903
161904}
161905
161906// method id "compute.sslCertificates.insert":
161907
161908type SslCertificatesInsertCall struct {
161909	s              *Service
161910	project        string
161911	sslcertificate *SslCertificate
161912	urlParams_     gensupport.URLParams
161913	ctx_           context.Context
161914	header_        http.Header
161915}
161916
161917// Insert: Creates a SslCertificate resource in the specified project
161918// using the data included in the request.
161919//
161920// - project: Project ID for this request.
161921func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
161922	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161923	c.project = project
161924	c.sslcertificate = sslcertificate
161925	return c
161926}
161927
161928// RequestId sets the optional parameter "requestId": An optional
161929// request ID to identify requests. Specify a unique request ID so that
161930// if you must retry your request, the server will know to ignore the
161931// request if it has already been completed.
161932//
161933// For example, consider a situation where you make an initial request
161934// and the request times out. If you make the request again with the
161935// same request ID, the server can check if original operation with the
161936// same request ID was received, and if so, will ignore the second
161937// request. This prevents clients from accidentally creating duplicate
161938// commitments.
161939//
161940// The request ID must be a valid UUID with the exception that zero UUID
161941// is not supported (00000000-0000-0000-0000-000000000000).
161942func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
161943	c.urlParams_.Set("requestId", requestId)
161944	return c
161945}
161946
161947// Fields allows partial responses to be retrieved. See
161948// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161949// for more information.
161950func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
161951	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161952	return c
161953}
161954
161955// Context sets the context to be used in this call's Do method. Any
161956// pending HTTP request will be aborted if the provided context is
161957// canceled.
161958func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
161959	c.ctx_ = ctx
161960	return c
161961}
161962
161963// Header returns an http.Header that can be modified by the caller to
161964// add HTTP headers to the request.
161965func (c *SslCertificatesInsertCall) Header() http.Header {
161966	if c.header_ == nil {
161967		c.header_ = make(http.Header)
161968	}
161969	return c.header_
161970}
161971
161972func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
161973	reqHeaders := make(http.Header)
161974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161975	for k, v := range c.header_ {
161976		reqHeaders[k] = v
161977	}
161978	reqHeaders.Set("User-Agent", c.s.userAgent())
161979	var body io.Reader = nil
161980	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
161981	if err != nil {
161982		return nil, err
161983	}
161984	reqHeaders.Set("Content-Type", "application/json")
161985	c.urlParams_.Set("alt", alt)
161986	c.urlParams_.Set("prettyPrint", "false")
161987	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
161988	urls += "?" + c.urlParams_.Encode()
161989	req, err := http.NewRequest("POST", urls, body)
161990	if err != nil {
161991		return nil, err
161992	}
161993	req.Header = reqHeaders
161994	googleapi.Expand(req.URL, map[string]string{
161995		"project": c.project,
161996	})
161997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161998}
161999
162000// Do executes the "compute.sslCertificates.insert" call.
162001// Exactly one of *Operation or error will be non-nil. Any non-2xx
162002// status code is an error. Response headers are in either
162003// *Operation.ServerResponse.Header or (if a response was returned at
162004// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162005// to check whether the returned error was because
162006// http.StatusNotModified was returned.
162007func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162008	gensupport.SetOptions(c.urlParams_, opts...)
162009	res, err := c.doRequest("json")
162010	if res != nil && res.StatusCode == http.StatusNotModified {
162011		if res.Body != nil {
162012			res.Body.Close()
162013		}
162014		return nil, &googleapi.Error{
162015			Code:   res.StatusCode,
162016			Header: res.Header,
162017		}
162018	}
162019	if err != nil {
162020		return nil, err
162021	}
162022	defer googleapi.CloseBody(res)
162023	if err := googleapi.CheckResponse(res); err != nil {
162024		return nil, err
162025	}
162026	ret := &Operation{
162027		ServerResponse: googleapi.ServerResponse{
162028			Header:         res.Header,
162029			HTTPStatusCode: res.StatusCode,
162030		},
162031	}
162032	target := &ret
162033	if err := gensupport.DecodeResponse(target, res); err != nil {
162034		return nil, err
162035	}
162036	return ret, nil
162037	// {
162038	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
162039	//   "httpMethod": "POST",
162040	//   "id": "compute.sslCertificates.insert",
162041	//   "parameterOrder": [
162042	//     "project"
162043	//   ],
162044	//   "parameters": {
162045	//     "project": {
162046	//       "description": "Project ID for this request.",
162047	//       "location": "path",
162048	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162049	//       "required": true,
162050	//       "type": "string"
162051	//     },
162052	//     "requestId": {
162053	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162054	//       "location": "query",
162055	//       "type": "string"
162056	//     }
162057	//   },
162058	//   "path": "projects/{project}/global/sslCertificates",
162059	//   "request": {
162060	//     "$ref": "SslCertificate"
162061	//   },
162062	//   "response": {
162063	//     "$ref": "Operation"
162064	//   },
162065	//   "scopes": [
162066	//     "https://www.googleapis.com/auth/cloud-platform",
162067	//     "https://www.googleapis.com/auth/compute"
162068	//   ]
162069	// }
162070
162071}
162072
162073// method id "compute.sslCertificates.list":
162074
162075type SslCertificatesListCall struct {
162076	s            *Service
162077	project      string
162078	urlParams_   gensupport.URLParams
162079	ifNoneMatch_ string
162080	ctx_         context.Context
162081	header_      http.Header
162082}
162083
162084// List: Retrieves the list of SslCertificate resources available to the
162085// specified project.
162086//
162087// - project: Project ID for this request.
162088func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
162089	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162090	c.project = project
162091	return c
162092}
162093
162094// Filter sets the optional parameter "filter": A filter expression that
162095// filters resources listed in the response. The expression must specify
162096// the field name, a comparison operator, and the value that you want to
162097// use for filtering. The value must be a string, a number, or a
162098// boolean. The comparison operator must be either `=`, `!=`, `>`, or
162099// `<`.
162100//
162101// For example, if you are filtering Compute Engine instances, you can
162102// exclude instances named `example-instance` by specifying `name !=
162103// example-instance`.
162104//
162105// You can also filter nested fields. For example, you could specify
162106// `scheduling.automaticRestart = false` to include instances only if
162107// they are not scheduled for automatic restarts. You can use filtering
162108// on nested fields to filter based on resource labels.
162109//
162110// To filter on multiple expressions, provide each separate expression
162111// within parentheses. For example: ``` (scheduling.automaticRestart =
162112// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
162113// is an `AND` expression. However, you can include `AND` and `OR`
162114// expressions explicitly. For example: ``` (cpuPlatform = "Intel
162115// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
162116// (scheduling.automaticRestart = true) ```
162117func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
162118	c.urlParams_.Set("filter", filter)
162119	return c
162120}
162121
162122// MaxResults sets the optional parameter "maxResults": The maximum
162123// number of results per page that should be returned. If the number of
162124// available results is larger than `maxResults`, Compute Engine returns
162125// a `nextPageToken` that can be used to get the next page of results in
162126// subsequent list requests. Acceptable values are `0` to `500`,
162127// inclusive. (Default: `500`)
162128func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
162129	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162130	return c
162131}
162132
162133// OrderBy sets the optional parameter "orderBy": Sorts list results by
162134// a certain order. By default, results are returned in alphanumerical
162135// order based on the resource name.
162136//
162137// You can also sort results in descending order based on the creation
162138// timestamp using `orderBy="creationTimestamp desc". This sorts
162139// results based on the `creationTimestamp` field in reverse
162140// chronological order (newest result first). Use this to sort resources
162141// like operations so that the newest operation is returned
162142// first.
162143//
162144// Currently, only sorting by `name` or `creationTimestamp desc` is
162145// supported.
162146func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
162147	c.urlParams_.Set("orderBy", orderBy)
162148	return c
162149}
162150
162151// PageToken sets the optional parameter "pageToken": Specifies a page
162152// token to use. Set `pageToken` to the `nextPageToken` returned by a
162153// previous list request to get the next page of results.
162154func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
162155	c.urlParams_.Set("pageToken", pageToken)
162156	return c
162157}
162158
162159// ReturnPartialSuccess sets the optional parameter
162160// "returnPartialSuccess": Opt-in for partial success behavior which
162161// provides partial results in case of failure. The default value is
162162// false.
162163func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesListCall {
162164	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
162165	return c
162166}
162167
162168// Fields allows partial responses to be retrieved. See
162169// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162170// for more information.
162171func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
162172	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162173	return c
162174}
162175
162176// IfNoneMatch sets the optional parameter which makes the operation
162177// fail if the object's ETag matches the given value. This is useful for
162178// getting updates only after the object has changed since the last
162179// request. Use googleapi.IsNotModified to check whether the response
162180// error from Do is the result of In-None-Match.
162181func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
162182	c.ifNoneMatch_ = entityTag
162183	return c
162184}
162185
162186// Context sets the context to be used in this call's Do method. Any
162187// pending HTTP request will be aborted if the provided context is
162188// canceled.
162189func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
162190	c.ctx_ = ctx
162191	return c
162192}
162193
162194// Header returns an http.Header that can be modified by the caller to
162195// add HTTP headers to the request.
162196func (c *SslCertificatesListCall) Header() http.Header {
162197	if c.header_ == nil {
162198		c.header_ = make(http.Header)
162199	}
162200	return c.header_
162201}
162202
162203func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
162204	reqHeaders := make(http.Header)
162205	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162206	for k, v := range c.header_ {
162207		reqHeaders[k] = v
162208	}
162209	reqHeaders.Set("User-Agent", c.s.userAgent())
162210	if c.ifNoneMatch_ != "" {
162211		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162212	}
162213	var body io.Reader = nil
162214	c.urlParams_.Set("alt", alt)
162215	c.urlParams_.Set("prettyPrint", "false")
162216	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
162217	urls += "?" + c.urlParams_.Encode()
162218	req, err := http.NewRequest("GET", urls, body)
162219	if err != nil {
162220		return nil, err
162221	}
162222	req.Header = reqHeaders
162223	googleapi.Expand(req.URL, map[string]string{
162224		"project": c.project,
162225	})
162226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162227}
162228
162229// Do executes the "compute.sslCertificates.list" call.
162230// Exactly one of *SslCertificateList or error will be non-nil. Any
162231// non-2xx status code is an error. Response headers are in either
162232// *SslCertificateList.ServerResponse.Header or (if a response was
162233// returned at all) in error.(*googleapi.Error).Header. Use
162234// googleapi.IsNotModified to check whether the returned error was
162235// because http.StatusNotModified was returned.
162236func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
162237	gensupport.SetOptions(c.urlParams_, opts...)
162238	res, err := c.doRequest("json")
162239	if res != nil && res.StatusCode == http.StatusNotModified {
162240		if res.Body != nil {
162241			res.Body.Close()
162242		}
162243		return nil, &googleapi.Error{
162244			Code:   res.StatusCode,
162245			Header: res.Header,
162246		}
162247	}
162248	if err != nil {
162249		return nil, err
162250	}
162251	defer googleapi.CloseBody(res)
162252	if err := googleapi.CheckResponse(res); err != nil {
162253		return nil, err
162254	}
162255	ret := &SslCertificateList{
162256		ServerResponse: googleapi.ServerResponse{
162257			Header:         res.Header,
162258			HTTPStatusCode: res.StatusCode,
162259		},
162260	}
162261	target := &ret
162262	if err := gensupport.DecodeResponse(target, res); err != nil {
162263		return nil, err
162264	}
162265	return ret, nil
162266	// {
162267	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
162268	//   "httpMethod": "GET",
162269	//   "id": "compute.sslCertificates.list",
162270	//   "parameterOrder": [
162271	//     "project"
162272	//   ],
162273	//   "parameters": {
162274	//     "filter": {
162275	//       "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) ```",
162276	//       "location": "query",
162277	//       "type": "string"
162278	//     },
162279	//     "maxResults": {
162280	//       "default": "500",
162281	//       "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`)",
162282	//       "format": "uint32",
162283	//       "location": "query",
162284	//       "minimum": "0",
162285	//       "type": "integer"
162286	//     },
162287	//     "orderBy": {
162288	//       "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.",
162289	//       "location": "query",
162290	//       "type": "string"
162291	//     },
162292	//     "pageToken": {
162293	//       "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.",
162294	//       "location": "query",
162295	//       "type": "string"
162296	//     },
162297	//     "project": {
162298	//       "description": "Project ID for this request.",
162299	//       "location": "path",
162300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162301	//       "required": true,
162302	//       "type": "string"
162303	//     },
162304	//     "returnPartialSuccess": {
162305	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
162306	//       "location": "query",
162307	//       "type": "boolean"
162308	//     }
162309	//   },
162310	//   "path": "projects/{project}/global/sslCertificates",
162311	//   "response": {
162312	//     "$ref": "SslCertificateList"
162313	//   },
162314	//   "scopes": [
162315	//     "https://www.googleapis.com/auth/cloud-platform",
162316	//     "https://www.googleapis.com/auth/compute",
162317	//     "https://www.googleapis.com/auth/compute.readonly"
162318	//   ]
162319	// }
162320
162321}
162322
162323// Pages invokes f for each page of results.
162324// A non-nil error returned from f will halt the iteration.
162325// The provided context supersedes any context provided to the Context method.
162326func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
162327	c.ctx_ = ctx
162328	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
162329	for {
162330		x, err := c.Do()
162331		if err != nil {
162332			return err
162333		}
162334		if err := f(x); err != nil {
162335			return err
162336		}
162337		if x.NextPageToken == "" {
162338			return nil
162339		}
162340		c.PageToken(x.NextPageToken)
162341	}
162342}
162343
162344// method id "compute.sslCertificates.testIamPermissions":
162345
162346type SslCertificatesTestIamPermissionsCall struct {
162347	s                      *Service
162348	project                string
162349	resource               string
162350	testpermissionsrequest *TestPermissionsRequest
162351	urlParams_             gensupport.URLParams
162352	ctx_                   context.Context
162353	header_                http.Header
162354}
162355
162356// TestIamPermissions: Returns permissions that a caller has on the
162357// specified resource.
162358//
162359// - project: Project ID for this request.
162360// - resource: Name or id of the resource for this request.
162361func (r *SslCertificatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslCertificatesTestIamPermissionsCall {
162362	c := &SslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162363	c.project = project
162364	c.resource = resource
162365	c.testpermissionsrequest = testpermissionsrequest
162366	return c
162367}
162368
162369// Fields allows partial responses to be retrieved. See
162370// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162371// for more information.
162372func (c *SslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslCertificatesTestIamPermissionsCall {
162373	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162374	return c
162375}
162376
162377// Context sets the context to be used in this call's Do method. Any
162378// pending HTTP request will be aborted if the provided context is
162379// canceled.
162380func (c *SslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *SslCertificatesTestIamPermissionsCall {
162381	c.ctx_ = ctx
162382	return c
162383}
162384
162385// Header returns an http.Header that can be modified by the caller to
162386// add HTTP headers to the request.
162387func (c *SslCertificatesTestIamPermissionsCall) Header() http.Header {
162388	if c.header_ == nil {
162389		c.header_ = make(http.Header)
162390	}
162391	return c.header_
162392}
162393
162394func (c *SslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
162395	reqHeaders := make(http.Header)
162396	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162397	for k, v := range c.header_ {
162398		reqHeaders[k] = v
162399	}
162400	reqHeaders.Set("User-Agent", c.s.userAgent())
162401	var body io.Reader = nil
162402	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
162403	if err != nil {
162404		return nil, err
162405	}
162406	reqHeaders.Set("Content-Type", "application/json")
162407	c.urlParams_.Set("alt", alt)
162408	c.urlParams_.Set("prettyPrint", "false")
162409	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{resource}/testIamPermissions")
162410	urls += "?" + c.urlParams_.Encode()
162411	req, err := http.NewRequest("POST", urls, body)
162412	if err != nil {
162413		return nil, err
162414	}
162415	req.Header = reqHeaders
162416	googleapi.Expand(req.URL, map[string]string{
162417		"project":  c.project,
162418		"resource": c.resource,
162419	})
162420	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162421}
162422
162423// Do executes the "compute.sslCertificates.testIamPermissions" call.
162424// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
162425// non-2xx status code is an error. Response headers are in either
162426// *TestPermissionsResponse.ServerResponse.Header or (if a response was
162427// returned at all) in error.(*googleapi.Error).Header. Use
162428// googleapi.IsNotModified to check whether the returned error was
162429// because http.StatusNotModified was returned.
162430func (c *SslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
162431	gensupport.SetOptions(c.urlParams_, opts...)
162432	res, err := c.doRequest("json")
162433	if res != nil && res.StatusCode == http.StatusNotModified {
162434		if res.Body != nil {
162435			res.Body.Close()
162436		}
162437		return nil, &googleapi.Error{
162438			Code:   res.StatusCode,
162439			Header: res.Header,
162440		}
162441	}
162442	if err != nil {
162443		return nil, err
162444	}
162445	defer googleapi.CloseBody(res)
162446	if err := googleapi.CheckResponse(res); err != nil {
162447		return nil, err
162448	}
162449	ret := &TestPermissionsResponse{
162450		ServerResponse: googleapi.ServerResponse{
162451			Header:         res.Header,
162452			HTTPStatusCode: res.StatusCode,
162453		},
162454	}
162455	target := &ret
162456	if err := gensupport.DecodeResponse(target, res); err != nil {
162457		return nil, err
162458	}
162459	return ret, nil
162460	// {
162461	//   "description": "Returns permissions that a caller has on the specified resource.",
162462	//   "httpMethod": "POST",
162463	//   "id": "compute.sslCertificates.testIamPermissions",
162464	//   "parameterOrder": [
162465	//     "project",
162466	//     "resource"
162467	//   ],
162468	//   "parameters": {
162469	//     "project": {
162470	//       "description": "Project ID for this request.",
162471	//       "location": "path",
162472	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162473	//       "required": true,
162474	//       "type": "string"
162475	//     },
162476	//     "resource": {
162477	//       "description": "Name or id of the resource for this request.",
162478	//       "location": "path",
162479	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162480	//       "required": true,
162481	//       "type": "string"
162482	//     }
162483	//   },
162484	//   "path": "projects/{project}/global/sslCertificates/{resource}/testIamPermissions",
162485	//   "request": {
162486	//     "$ref": "TestPermissionsRequest"
162487	//   },
162488	//   "response": {
162489	//     "$ref": "TestPermissionsResponse"
162490	//   },
162491	//   "scopes": [
162492	//     "https://www.googleapis.com/auth/cloud-platform",
162493	//     "https://www.googleapis.com/auth/compute",
162494	//     "https://www.googleapis.com/auth/compute.readonly"
162495	//   ]
162496	// }
162497
162498}
162499
162500// method id "compute.sslPolicies.delete":
162501
162502type SslPoliciesDeleteCall struct {
162503	s          *Service
162504	project    string
162505	sslPolicy  string
162506	urlParams_ gensupport.URLParams
162507	ctx_       context.Context
162508	header_    http.Header
162509}
162510
162511// Delete: Deletes the specified SSL policy. The SSL policy resource can
162512// be deleted only if it is not in use by any TargetHttpsProxy or
162513// TargetSslProxy resources.
162514//
162515// - project: Project ID for this request.
162516// - sslPolicy: Name of the SSL policy to delete. The name must be 1-63
162517//   characters long, and comply with RFC1035.
162518func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
162519	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162520	c.project = project
162521	c.sslPolicy = sslPolicy
162522	return c
162523}
162524
162525// RequestId sets the optional parameter "requestId": An optional
162526// request ID to identify requests. Specify a unique request ID so that
162527// if you must retry your request, the server will know to ignore the
162528// request if it has already been completed.
162529//
162530// For example, consider a situation where you make an initial request
162531// and the request times out. If you make the request again with the
162532// same request ID, the server can check if original operation with the
162533// same request ID was received, and if so, will ignore the second
162534// request. This prevents clients from accidentally creating duplicate
162535// commitments.
162536//
162537// The request ID must be a valid UUID with the exception that zero UUID
162538// is not supported (00000000-0000-0000-0000-000000000000).
162539func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
162540	c.urlParams_.Set("requestId", requestId)
162541	return c
162542}
162543
162544// Fields allows partial responses to be retrieved. See
162545// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162546// for more information.
162547func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
162548	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162549	return c
162550}
162551
162552// Context sets the context to be used in this call's Do method. Any
162553// pending HTTP request will be aborted if the provided context is
162554// canceled.
162555func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
162556	c.ctx_ = ctx
162557	return c
162558}
162559
162560// Header returns an http.Header that can be modified by the caller to
162561// add HTTP headers to the request.
162562func (c *SslPoliciesDeleteCall) Header() http.Header {
162563	if c.header_ == nil {
162564		c.header_ = make(http.Header)
162565	}
162566	return c.header_
162567}
162568
162569func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
162570	reqHeaders := make(http.Header)
162571	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162572	for k, v := range c.header_ {
162573		reqHeaders[k] = v
162574	}
162575	reqHeaders.Set("User-Agent", c.s.userAgent())
162576	var body io.Reader = nil
162577	c.urlParams_.Set("alt", alt)
162578	c.urlParams_.Set("prettyPrint", "false")
162579	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
162580	urls += "?" + c.urlParams_.Encode()
162581	req, err := http.NewRequest("DELETE", urls, body)
162582	if err != nil {
162583		return nil, err
162584	}
162585	req.Header = reqHeaders
162586	googleapi.Expand(req.URL, map[string]string{
162587		"project":   c.project,
162588		"sslPolicy": c.sslPolicy,
162589	})
162590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162591}
162592
162593// Do executes the "compute.sslPolicies.delete" call.
162594// Exactly one of *Operation or error will be non-nil. Any non-2xx
162595// status code is an error. Response headers are in either
162596// *Operation.ServerResponse.Header or (if a response was returned at
162597// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162598// to check whether the returned error was because
162599// http.StatusNotModified was returned.
162600func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162601	gensupport.SetOptions(c.urlParams_, opts...)
162602	res, err := c.doRequest("json")
162603	if res != nil && res.StatusCode == http.StatusNotModified {
162604		if res.Body != nil {
162605			res.Body.Close()
162606		}
162607		return nil, &googleapi.Error{
162608			Code:   res.StatusCode,
162609			Header: res.Header,
162610		}
162611	}
162612	if err != nil {
162613		return nil, err
162614	}
162615	defer googleapi.CloseBody(res)
162616	if err := googleapi.CheckResponse(res); err != nil {
162617		return nil, err
162618	}
162619	ret := &Operation{
162620		ServerResponse: googleapi.ServerResponse{
162621			Header:         res.Header,
162622			HTTPStatusCode: res.StatusCode,
162623		},
162624	}
162625	target := &ret
162626	if err := gensupport.DecodeResponse(target, res); err != nil {
162627		return nil, err
162628	}
162629	return ret, nil
162630	// {
162631	//   "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.",
162632	//   "httpMethod": "DELETE",
162633	//   "id": "compute.sslPolicies.delete",
162634	//   "parameterOrder": [
162635	//     "project",
162636	//     "sslPolicy"
162637	//   ],
162638	//   "parameters": {
162639	//     "project": {
162640	//       "description": "Project ID for this request.",
162641	//       "location": "path",
162642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162643	//       "required": true,
162644	//       "type": "string"
162645	//     },
162646	//     "requestId": {
162647	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162648	//       "location": "query",
162649	//       "type": "string"
162650	//     },
162651	//     "sslPolicy": {
162652	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
162653	//       "location": "path",
162654	//       "required": true,
162655	//       "type": "string"
162656	//     }
162657	//   },
162658	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
162659	//   "response": {
162660	//     "$ref": "Operation"
162661	//   },
162662	//   "scopes": [
162663	//     "https://www.googleapis.com/auth/cloud-platform",
162664	//     "https://www.googleapis.com/auth/compute"
162665	//   ]
162666	// }
162667
162668}
162669
162670// method id "compute.sslPolicies.get":
162671
162672type SslPoliciesGetCall struct {
162673	s            *Service
162674	project      string
162675	sslPolicy    string
162676	urlParams_   gensupport.URLParams
162677	ifNoneMatch_ string
162678	ctx_         context.Context
162679	header_      http.Header
162680}
162681
162682// Get: Lists all of the ordered rules present in a single specified
162683// policy.
162684//
162685// - project: Project ID for this request.
162686// - sslPolicy: Name of the SSL policy to update. The name must be 1-63
162687//   characters long, and comply with RFC1035.
162688func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
162689	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162690	c.project = project
162691	c.sslPolicy = sslPolicy
162692	return c
162693}
162694
162695// Fields allows partial responses to be retrieved. See
162696// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162697// for more information.
162698func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
162699	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162700	return c
162701}
162702
162703// IfNoneMatch sets the optional parameter which makes the operation
162704// fail if the object's ETag matches the given value. This is useful for
162705// getting updates only after the object has changed since the last
162706// request. Use googleapi.IsNotModified to check whether the response
162707// error from Do is the result of In-None-Match.
162708func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
162709	c.ifNoneMatch_ = entityTag
162710	return c
162711}
162712
162713// Context sets the context to be used in this call's Do method. Any
162714// pending HTTP request will be aborted if the provided context is
162715// canceled.
162716func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
162717	c.ctx_ = ctx
162718	return c
162719}
162720
162721// Header returns an http.Header that can be modified by the caller to
162722// add HTTP headers to the request.
162723func (c *SslPoliciesGetCall) Header() http.Header {
162724	if c.header_ == nil {
162725		c.header_ = make(http.Header)
162726	}
162727	return c.header_
162728}
162729
162730func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
162731	reqHeaders := make(http.Header)
162732	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162733	for k, v := range c.header_ {
162734		reqHeaders[k] = v
162735	}
162736	reqHeaders.Set("User-Agent", c.s.userAgent())
162737	if c.ifNoneMatch_ != "" {
162738		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162739	}
162740	var body io.Reader = nil
162741	c.urlParams_.Set("alt", alt)
162742	c.urlParams_.Set("prettyPrint", "false")
162743	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
162744	urls += "?" + c.urlParams_.Encode()
162745	req, err := http.NewRequest("GET", urls, body)
162746	if err != nil {
162747		return nil, err
162748	}
162749	req.Header = reqHeaders
162750	googleapi.Expand(req.URL, map[string]string{
162751		"project":   c.project,
162752		"sslPolicy": c.sslPolicy,
162753	})
162754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162755}
162756
162757// Do executes the "compute.sslPolicies.get" call.
162758// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
162759// status code is an error. Response headers are in either
162760// *SslPolicy.ServerResponse.Header or (if a response was returned at
162761// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162762// to check whether the returned error was because
162763// http.StatusNotModified was returned.
162764func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
162765	gensupport.SetOptions(c.urlParams_, opts...)
162766	res, err := c.doRequest("json")
162767	if res != nil && res.StatusCode == http.StatusNotModified {
162768		if res.Body != nil {
162769			res.Body.Close()
162770		}
162771		return nil, &googleapi.Error{
162772			Code:   res.StatusCode,
162773			Header: res.Header,
162774		}
162775	}
162776	if err != nil {
162777		return nil, err
162778	}
162779	defer googleapi.CloseBody(res)
162780	if err := googleapi.CheckResponse(res); err != nil {
162781		return nil, err
162782	}
162783	ret := &SslPolicy{
162784		ServerResponse: googleapi.ServerResponse{
162785			Header:         res.Header,
162786			HTTPStatusCode: res.StatusCode,
162787		},
162788	}
162789	target := &ret
162790	if err := gensupport.DecodeResponse(target, res); err != nil {
162791		return nil, err
162792	}
162793	return ret, nil
162794	// {
162795	//   "description": "Lists all of the ordered rules present in a single specified policy.",
162796	//   "httpMethod": "GET",
162797	//   "id": "compute.sslPolicies.get",
162798	//   "parameterOrder": [
162799	//     "project",
162800	//     "sslPolicy"
162801	//   ],
162802	//   "parameters": {
162803	//     "project": {
162804	//       "description": "Project ID for this request.",
162805	//       "location": "path",
162806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162807	//       "required": true,
162808	//       "type": "string"
162809	//     },
162810	//     "sslPolicy": {
162811	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
162812	//       "location": "path",
162813	//       "required": true,
162814	//       "type": "string"
162815	//     }
162816	//   },
162817	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
162818	//   "response": {
162819	//     "$ref": "SslPolicy"
162820	//   },
162821	//   "scopes": [
162822	//     "https://www.googleapis.com/auth/cloud-platform",
162823	//     "https://www.googleapis.com/auth/compute",
162824	//     "https://www.googleapis.com/auth/compute.readonly"
162825	//   ]
162826	// }
162827
162828}
162829
162830// method id "compute.sslPolicies.insert":
162831
162832type SslPoliciesInsertCall struct {
162833	s          *Service
162834	project    string
162835	sslpolicy  *SslPolicy
162836	urlParams_ gensupport.URLParams
162837	ctx_       context.Context
162838	header_    http.Header
162839}
162840
162841// Insert: Returns the specified SSL policy resource. Gets a list of
162842// available SSL policies by making a list() request.
162843//
162844// - project: Project ID for this request.
162845func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
162846	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162847	c.project = project
162848	c.sslpolicy = sslpolicy
162849	return c
162850}
162851
162852// RequestId sets the optional parameter "requestId": An optional
162853// request ID to identify requests. Specify a unique request ID so that
162854// if you must retry your request, the server will know to ignore the
162855// request if it has already been completed.
162856//
162857// For example, consider a situation where you make an initial request
162858// and the request times out. If you make the request again with the
162859// same request ID, the server can check if original operation with the
162860// same request ID was received, and if so, will ignore the second
162861// request. This prevents clients from accidentally creating duplicate
162862// commitments.
162863//
162864// The request ID must be a valid UUID with the exception that zero UUID
162865// is not supported (00000000-0000-0000-0000-000000000000).
162866func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
162867	c.urlParams_.Set("requestId", requestId)
162868	return c
162869}
162870
162871// Fields allows partial responses to be retrieved. See
162872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162873// for more information.
162874func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
162875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162876	return c
162877}
162878
162879// Context sets the context to be used in this call's Do method. Any
162880// pending HTTP request will be aborted if the provided context is
162881// canceled.
162882func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
162883	c.ctx_ = ctx
162884	return c
162885}
162886
162887// Header returns an http.Header that can be modified by the caller to
162888// add HTTP headers to the request.
162889func (c *SslPoliciesInsertCall) Header() http.Header {
162890	if c.header_ == nil {
162891		c.header_ = make(http.Header)
162892	}
162893	return c.header_
162894}
162895
162896func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
162897	reqHeaders := make(http.Header)
162898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162899	for k, v := range c.header_ {
162900		reqHeaders[k] = v
162901	}
162902	reqHeaders.Set("User-Agent", c.s.userAgent())
162903	var body io.Reader = nil
162904	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
162905	if err != nil {
162906		return nil, err
162907	}
162908	reqHeaders.Set("Content-Type", "application/json")
162909	c.urlParams_.Set("alt", alt)
162910	c.urlParams_.Set("prettyPrint", "false")
162911	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
162912	urls += "?" + c.urlParams_.Encode()
162913	req, err := http.NewRequest("POST", urls, body)
162914	if err != nil {
162915		return nil, err
162916	}
162917	req.Header = reqHeaders
162918	googleapi.Expand(req.URL, map[string]string{
162919		"project": c.project,
162920	})
162921	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162922}
162923
162924// Do executes the "compute.sslPolicies.insert" call.
162925// Exactly one of *Operation or error will be non-nil. Any non-2xx
162926// status code is an error. Response headers are in either
162927// *Operation.ServerResponse.Header or (if a response was returned at
162928// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162929// to check whether the returned error was because
162930// http.StatusNotModified was returned.
162931func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162932	gensupport.SetOptions(c.urlParams_, opts...)
162933	res, err := c.doRequest("json")
162934	if res != nil && res.StatusCode == http.StatusNotModified {
162935		if res.Body != nil {
162936			res.Body.Close()
162937		}
162938		return nil, &googleapi.Error{
162939			Code:   res.StatusCode,
162940			Header: res.Header,
162941		}
162942	}
162943	if err != nil {
162944		return nil, err
162945	}
162946	defer googleapi.CloseBody(res)
162947	if err := googleapi.CheckResponse(res); err != nil {
162948		return nil, err
162949	}
162950	ret := &Operation{
162951		ServerResponse: googleapi.ServerResponse{
162952			Header:         res.Header,
162953			HTTPStatusCode: res.StatusCode,
162954		},
162955	}
162956	target := &ret
162957	if err := gensupport.DecodeResponse(target, res); err != nil {
162958		return nil, err
162959	}
162960	return ret, nil
162961	// {
162962	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
162963	//   "httpMethod": "POST",
162964	//   "id": "compute.sslPolicies.insert",
162965	//   "parameterOrder": [
162966	//     "project"
162967	//   ],
162968	//   "parameters": {
162969	//     "project": {
162970	//       "description": "Project ID for this request.",
162971	//       "location": "path",
162972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162973	//       "required": true,
162974	//       "type": "string"
162975	//     },
162976	//     "requestId": {
162977	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162978	//       "location": "query",
162979	//       "type": "string"
162980	//     }
162981	//   },
162982	//   "path": "projects/{project}/global/sslPolicies",
162983	//   "request": {
162984	//     "$ref": "SslPolicy"
162985	//   },
162986	//   "response": {
162987	//     "$ref": "Operation"
162988	//   },
162989	//   "scopes": [
162990	//     "https://www.googleapis.com/auth/cloud-platform",
162991	//     "https://www.googleapis.com/auth/compute"
162992	//   ]
162993	// }
162994
162995}
162996
162997// method id "compute.sslPolicies.list":
162998
162999type SslPoliciesListCall struct {
163000	s            *Service
163001	project      string
163002	urlParams_   gensupport.URLParams
163003	ifNoneMatch_ string
163004	ctx_         context.Context
163005	header_      http.Header
163006}
163007
163008// List: Lists all the SSL policies that have been configured for the
163009// specified project.
163010//
163011// - project: Project ID for this request.
163012func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
163013	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163014	c.project = project
163015	return c
163016}
163017
163018// Filter sets the optional parameter "filter": A filter expression that
163019// filters resources listed in the response. The expression must specify
163020// the field name, a comparison operator, and the value that you want to
163021// use for filtering. The value must be a string, a number, or a
163022// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163023// `<`.
163024//
163025// For example, if you are filtering Compute Engine instances, you can
163026// exclude instances named `example-instance` by specifying `name !=
163027// example-instance`.
163028//
163029// You can also filter nested fields. For example, you could specify
163030// `scheduling.automaticRestart = false` to include instances only if
163031// they are not scheduled for automatic restarts. You can use filtering
163032// on nested fields to filter based on resource labels.
163033//
163034// To filter on multiple expressions, provide each separate expression
163035// within parentheses. For example: ``` (scheduling.automaticRestart =
163036// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
163037// is an `AND` expression. However, you can include `AND` and `OR`
163038// expressions explicitly. For example: ``` (cpuPlatform = "Intel
163039// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
163040// (scheduling.automaticRestart = true) ```
163041func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
163042	c.urlParams_.Set("filter", filter)
163043	return c
163044}
163045
163046// MaxResults sets the optional parameter "maxResults": The maximum
163047// number of results per page that should be returned. If the number of
163048// available results is larger than `maxResults`, Compute Engine returns
163049// a `nextPageToken` that can be used to get the next page of results in
163050// subsequent list requests. Acceptable values are `0` to `500`,
163051// inclusive. (Default: `500`)
163052func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
163053	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163054	return c
163055}
163056
163057// OrderBy sets the optional parameter "orderBy": Sorts list results by
163058// a certain order. By default, results are returned in alphanumerical
163059// order based on the resource name.
163060//
163061// You can also sort results in descending order based on the creation
163062// timestamp using `orderBy="creationTimestamp desc". This sorts
163063// results based on the `creationTimestamp` field in reverse
163064// chronological order (newest result first). Use this to sort resources
163065// like operations so that the newest operation is returned
163066// first.
163067//
163068// Currently, only sorting by `name` or `creationTimestamp desc` is
163069// supported.
163070func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
163071	c.urlParams_.Set("orderBy", orderBy)
163072	return c
163073}
163074
163075// PageToken sets the optional parameter "pageToken": Specifies a page
163076// token to use. Set `pageToken` to the `nextPageToken` returned by a
163077// previous list request to get the next page of results.
163078func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
163079	c.urlParams_.Set("pageToken", pageToken)
163080	return c
163081}
163082
163083// ReturnPartialSuccess sets the optional parameter
163084// "returnPartialSuccess": Opt-in for partial success behavior which
163085// provides partial results in case of failure. The default value is
163086// false.
163087func (c *SslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListCall {
163088	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163089	return c
163090}
163091
163092// Fields allows partial responses to be retrieved. See
163093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163094// for more information.
163095func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
163096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163097	return c
163098}
163099
163100// IfNoneMatch sets the optional parameter which makes the operation
163101// fail if the object's ETag matches the given value. This is useful for
163102// getting updates only after the object has changed since the last
163103// request. Use googleapi.IsNotModified to check whether the response
163104// error from Do is the result of In-None-Match.
163105func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
163106	c.ifNoneMatch_ = entityTag
163107	return c
163108}
163109
163110// Context sets the context to be used in this call's Do method. Any
163111// pending HTTP request will be aborted if the provided context is
163112// canceled.
163113func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
163114	c.ctx_ = ctx
163115	return c
163116}
163117
163118// Header returns an http.Header that can be modified by the caller to
163119// add HTTP headers to the request.
163120func (c *SslPoliciesListCall) Header() http.Header {
163121	if c.header_ == nil {
163122		c.header_ = make(http.Header)
163123	}
163124	return c.header_
163125}
163126
163127func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
163128	reqHeaders := make(http.Header)
163129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
163130	for k, v := range c.header_ {
163131		reqHeaders[k] = v
163132	}
163133	reqHeaders.Set("User-Agent", c.s.userAgent())
163134	if c.ifNoneMatch_ != "" {
163135		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163136	}
163137	var body io.Reader = nil
163138	c.urlParams_.Set("alt", alt)
163139	c.urlParams_.Set("prettyPrint", "false")
163140	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
163141	urls += "?" + c.urlParams_.Encode()
163142	req, err := http.NewRequest("GET", urls, body)
163143	if err != nil {
163144		return nil, err
163145	}
163146	req.Header = reqHeaders
163147	googleapi.Expand(req.URL, map[string]string{
163148		"project": c.project,
163149	})
163150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163151}
163152
163153// Do executes the "compute.sslPolicies.list" call.
163154// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
163155// status code is an error. Response headers are in either
163156// *SslPoliciesList.ServerResponse.Header or (if a response was returned
163157// at all) in error.(*googleapi.Error).Header. Use
163158// googleapi.IsNotModified to check whether the returned error was
163159// because http.StatusNotModified was returned.
163160func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
163161	gensupport.SetOptions(c.urlParams_, opts...)
163162	res, err := c.doRequest("json")
163163	if res != nil && res.StatusCode == http.StatusNotModified {
163164		if res.Body != nil {
163165			res.Body.Close()
163166		}
163167		return nil, &googleapi.Error{
163168			Code:   res.StatusCode,
163169			Header: res.Header,
163170		}
163171	}
163172	if err != nil {
163173		return nil, err
163174	}
163175	defer googleapi.CloseBody(res)
163176	if err := googleapi.CheckResponse(res); err != nil {
163177		return nil, err
163178	}
163179	ret := &SslPoliciesList{
163180		ServerResponse: googleapi.ServerResponse{
163181			Header:         res.Header,
163182			HTTPStatusCode: res.StatusCode,
163183		},
163184	}
163185	target := &ret
163186	if err := gensupport.DecodeResponse(target, res); err != nil {
163187		return nil, err
163188	}
163189	return ret, nil
163190	// {
163191	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
163192	//   "httpMethod": "GET",
163193	//   "id": "compute.sslPolicies.list",
163194	//   "parameterOrder": [
163195	//     "project"
163196	//   ],
163197	//   "parameters": {
163198	//     "filter": {
163199	//       "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) ```",
163200	//       "location": "query",
163201	//       "type": "string"
163202	//     },
163203	//     "maxResults": {
163204	//       "default": "500",
163205	//       "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`)",
163206	//       "format": "uint32",
163207	//       "location": "query",
163208	//       "minimum": "0",
163209	//       "type": "integer"
163210	//     },
163211	//     "orderBy": {
163212	//       "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.",
163213	//       "location": "query",
163214	//       "type": "string"
163215	//     },
163216	//     "pageToken": {
163217	//       "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.",
163218	//       "location": "query",
163219	//       "type": "string"
163220	//     },
163221	//     "project": {
163222	//       "description": "Project ID for this request.",
163223	//       "location": "path",
163224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163225	//       "required": true,
163226	//       "type": "string"
163227	//     },
163228	//     "returnPartialSuccess": {
163229	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163230	//       "location": "query",
163231	//       "type": "boolean"
163232	//     }
163233	//   },
163234	//   "path": "projects/{project}/global/sslPolicies",
163235	//   "response": {
163236	//     "$ref": "SslPoliciesList"
163237	//   },
163238	//   "scopes": [
163239	//     "https://www.googleapis.com/auth/cloud-platform",
163240	//     "https://www.googleapis.com/auth/compute",
163241	//     "https://www.googleapis.com/auth/compute.readonly"
163242	//   ]
163243	// }
163244
163245}
163246
163247// Pages invokes f for each page of results.
163248// A non-nil error returned from f will halt the iteration.
163249// The provided context supersedes any context provided to the Context method.
163250func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
163251	c.ctx_ = ctx
163252	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163253	for {
163254		x, err := c.Do()
163255		if err != nil {
163256			return err
163257		}
163258		if err := f(x); err != nil {
163259			return err
163260		}
163261		if x.NextPageToken == "" {
163262			return nil
163263		}
163264		c.PageToken(x.NextPageToken)
163265	}
163266}
163267
163268// method id "compute.sslPolicies.listAvailableFeatures":
163269
163270type SslPoliciesListAvailableFeaturesCall struct {
163271	s            *Service
163272	project      string
163273	urlParams_   gensupport.URLParams
163274	ifNoneMatch_ string
163275	ctx_         context.Context
163276	header_      http.Header
163277}
163278
163279// ListAvailableFeatures: Lists all features that can be specified in
163280// the SSL policy when using custom profile.
163281//
163282// - project: Project ID for this request.
163283func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
163284	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163285	c.project = project
163286	return c
163287}
163288
163289// Filter sets the optional parameter "filter": A filter expression that
163290// filters resources listed in the response. The expression must specify
163291// the field name, a comparison operator, and the value that you want to
163292// use for filtering. The value must be a string, a number, or a
163293// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163294// `<`.
163295//
163296// For example, if you are filtering Compute Engine instances, you can
163297// exclude instances named `example-instance` by specifying `name !=
163298// example-instance`.
163299//
163300// You can also filter nested fields. For example, you could specify
163301// `scheduling.automaticRestart = false` to include instances only if
163302// they are not scheduled for automatic restarts. You can use filtering
163303// on nested fields to filter based on resource labels.
163304//
163305// To filter on multiple expressions, provide each separate expression
163306// within parentheses. For example: ``` (scheduling.automaticRestart =
163307// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
163308// is an `AND` expression. However, you can include `AND` and `OR`
163309// expressions explicitly. For example: ``` (cpuPlatform = "Intel
163310// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
163311// (scheduling.automaticRestart = true) ```
163312func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
163313	c.urlParams_.Set("filter", filter)
163314	return c
163315}
163316
163317// MaxResults sets the optional parameter "maxResults": The maximum
163318// number of results per page that should be returned. If the number of
163319// available results is larger than `maxResults`, Compute Engine returns
163320// a `nextPageToken` that can be used to get the next page of results in
163321// subsequent list requests. Acceptable values are `0` to `500`,
163322// inclusive. (Default: `500`)
163323func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
163324	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163325	return c
163326}
163327
163328// OrderBy sets the optional parameter "orderBy": Sorts list results by
163329// a certain order. By default, results are returned in alphanumerical
163330// order based on the resource name.
163331//
163332// You can also sort results in descending order based on the creation
163333// timestamp using `orderBy="creationTimestamp desc". This sorts
163334// results based on the `creationTimestamp` field in reverse
163335// chronological order (newest result first). Use this to sort resources
163336// like operations so that the newest operation is returned
163337// first.
163338//
163339// Currently, only sorting by `name` or `creationTimestamp desc` is
163340// supported.
163341func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
163342	c.urlParams_.Set("orderBy", orderBy)
163343	return c
163344}
163345
163346// PageToken sets the optional parameter "pageToken": Specifies a page
163347// token to use. Set `pageToken` to the `nextPageToken` returned by a
163348// previous list request to get the next page of results.
163349func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
163350	c.urlParams_.Set("pageToken", pageToken)
163351	return c
163352}
163353
163354// ReturnPartialSuccess sets the optional parameter
163355// "returnPartialSuccess": Opt-in for partial success behavior which
163356// provides partial results in case of failure. The default value is
163357// false.
163358func (c *SslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListAvailableFeaturesCall {
163359	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163360	return c
163361}
163362
163363// Fields allows partial responses to be retrieved. See
163364// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163365// for more information.
163366func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
163367	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163368	return c
163369}
163370
163371// IfNoneMatch sets the optional parameter which makes the operation
163372// fail if the object's ETag matches the given value. This is useful for
163373// getting updates only after the object has changed since the last
163374// request. Use googleapi.IsNotModified to check whether the response
163375// error from Do is the result of In-None-Match.
163376func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
163377	c.ifNoneMatch_ = entityTag
163378	return c
163379}
163380
163381// Context sets the context to be used in this call's Do method. Any
163382// pending HTTP request will be aborted if the provided context is
163383// canceled.
163384func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
163385	c.ctx_ = ctx
163386	return c
163387}
163388
163389// Header returns an http.Header that can be modified by the caller to
163390// add HTTP headers to the request.
163391func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
163392	if c.header_ == nil {
163393		c.header_ = make(http.Header)
163394	}
163395	return c.header_
163396}
163397
163398func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
163399	reqHeaders := make(http.Header)
163400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
163401	for k, v := range c.header_ {
163402		reqHeaders[k] = v
163403	}
163404	reqHeaders.Set("User-Agent", c.s.userAgent())
163405	if c.ifNoneMatch_ != "" {
163406		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163407	}
163408	var body io.Reader = nil
163409	c.urlParams_.Set("alt", alt)
163410	c.urlParams_.Set("prettyPrint", "false")
163411	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/listAvailableFeatures")
163412	urls += "?" + c.urlParams_.Encode()
163413	req, err := http.NewRequest("GET", urls, body)
163414	if err != nil {
163415		return nil, err
163416	}
163417	req.Header = reqHeaders
163418	googleapi.Expand(req.URL, map[string]string{
163419		"project": c.project,
163420	})
163421	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163422}
163423
163424// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
163425// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
163426// will be non-nil. Any non-2xx status code is an error. Response
163427// headers are in either
163428// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
163429// (if a response was returned at all) in
163430// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
163431// whether the returned error was because http.StatusNotModified was
163432// returned.
163433func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
163434	gensupport.SetOptions(c.urlParams_, opts...)
163435	res, err := c.doRequest("json")
163436	if res != nil && res.StatusCode == http.StatusNotModified {
163437		if res.Body != nil {
163438			res.Body.Close()
163439		}
163440		return nil, &googleapi.Error{
163441			Code:   res.StatusCode,
163442			Header: res.Header,
163443		}
163444	}
163445	if err != nil {
163446		return nil, err
163447	}
163448	defer googleapi.CloseBody(res)
163449	if err := googleapi.CheckResponse(res); err != nil {
163450		return nil, err
163451	}
163452	ret := &SslPoliciesListAvailableFeaturesResponse{
163453		ServerResponse: googleapi.ServerResponse{
163454			Header:         res.Header,
163455			HTTPStatusCode: res.StatusCode,
163456		},
163457	}
163458	target := &ret
163459	if err := gensupport.DecodeResponse(target, res); err != nil {
163460		return nil, err
163461	}
163462	return ret, nil
163463	// {
163464	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
163465	//   "httpMethod": "GET",
163466	//   "id": "compute.sslPolicies.listAvailableFeatures",
163467	//   "parameterOrder": [
163468	//     "project"
163469	//   ],
163470	//   "parameters": {
163471	//     "filter": {
163472	//       "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) ```",
163473	//       "location": "query",
163474	//       "type": "string"
163475	//     },
163476	//     "maxResults": {
163477	//       "default": "500",
163478	//       "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`)",
163479	//       "format": "uint32",
163480	//       "location": "query",
163481	//       "minimum": "0",
163482	//       "type": "integer"
163483	//     },
163484	//     "orderBy": {
163485	//       "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.",
163486	//       "location": "query",
163487	//       "type": "string"
163488	//     },
163489	//     "pageToken": {
163490	//       "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.",
163491	//       "location": "query",
163492	//       "type": "string"
163493	//     },
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	//     "returnPartialSuccess": {
163502	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163503	//       "location": "query",
163504	//       "type": "boolean"
163505	//     }
163506	//   },
163507	//   "path": "projects/{project}/global/sslPolicies/listAvailableFeatures",
163508	//   "response": {
163509	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
163510	//   },
163511	//   "scopes": [
163512	//     "https://www.googleapis.com/auth/cloud-platform",
163513	//     "https://www.googleapis.com/auth/compute",
163514	//     "https://www.googleapis.com/auth/compute.readonly"
163515	//   ]
163516	// }
163517
163518}
163519
163520// method id "compute.sslPolicies.patch":
163521
163522type SslPoliciesPatchCall struct {
163523	s          *Service
163524	project    string
163525	sslPolicy  string
163526	sslpolicy  *SslPolicy
163527	urlParams_ gensupport.URLParams
163528	ctx_       context.Context
163529	header_    http.Header
163530}
163531
163532// Patch: Patches the specified SSL policy with the data included in the
163533// request.
163534//
163535// - project: Project ID for this request.
163536// - sslPolicy: Name of the SSL policy to update. The name must be 1-63
163537//   characters long, and comply with RFC1035.
163538func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
163539	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163540	c.project = project
163541	c.sslPolicy = sslPolicy
163542	c.sslpolicy = sslpolicy
163543	return c
163544}
163545
163546// RequestId sets the optional parameter "requestId": An optional
163547// request ID to identify requests. Specify a unique request ID so that
163548// if you must retry your request, the server will know to ignore the
163549// request if it has already been completed.
163550//
163551// For example, consider a situation where you make an initial request
163552// and the request times out. If you make the request again with the
163553// same request ID, the server can check if original operation with the
163554// same request ID was received, and if so, will ignore the second
163555// request. This prevents clients from accidentally creating duplicate
163556// commitments.
163557//
163558// The request ID must be a valid UUID with the exception that zero UUID
163559// is not supported (00000000-0000-0000-0000-000000000000).
163560func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
163561	c.urlParams_.Set("requestId", requestId)
163562	return c
163563}
163564
163565// Fields allows partial responses to be retrieved. See
163566// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163567// for more information.
163568func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
163569	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163570	return c
163571}
163572
163573// Context sets the context to be used in this call's Do method. Any
163574// pending HTTP request will be aborted if the provided context is
163575// canceled.
163576func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
163577	c.ctx_ = ctx
163578	return c
163579}
163580
163581// Header returns an http.Header that can be modified by the caller to
163582// add HTTP headers to the request.
163583func (c *SslPoliciesPatchCall) Header() http.Header {
163584	if c.header_ == nil {
163585		c.header_ = make(http.Header)
163586	}
163587	return c.header_
163588}
163589
163590func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
163591	reqHeaders := make(http.Header)
163592	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
163593	for k, v := range c.header_ {
163594		reqHeaders[k] = v
163595	}
163596	reqHeaders.Set("User-Agent", c.s.userAgent())
163597	var body io.Reader = nil
163598	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
163599	if err != nil {
163600		return nil, err
163601	}
163602	reqHeaders.Set("Content-Type", "application/json")
163603	c.urlParams_.Set("alt", alt)
163604	c.urlParams_.Set("prettyPrint", "false")
163605	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
163606	urls += "?" + c.urlParams_.Encode()
163607	req, err := http.NewRequest("PATCH", urls, body)
163608	if err != nil {
163609		return nil, err
163610	}
163611	req.Header = reqHeaders
163612	googleapi.Expand(req.URL, map[string]string{
163613		"project":   c.project,
163614		"sslPolicy": c.sslPolicy,
163615	})
163616	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163617}
163618
163619// Do executes the "compute.sslPolicies.patch" call.
163620// Exactly one of *Operation or error will be non-nil. Any non-2xx
163621// status code is an error. Response headers are in either
163622// *Operation.ServerResponse.Header or (if a response was returned at
163623// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163624// to check whether the returned error was because
163625// http.StatusNotModified was returned.
163626func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163627	gensupport.SetOptions(c.urlParams_, opts...)
163628	res, err := c.doRequest("json")
163629	if res != nil && res.StatusCode == http.StatusNotModified {
163630		if res.Body != nil {
163631			res.Body.Close()
163632		}
163633		return nil, &googleapi.Error{
163634			Code:   res.StatusCode,
163635			Header: res.Header,
163636		}
163637	}
163638	if err != nil {
163639		return nil, err
163640	}
163641	defer googleapi.CloseBody(res)
163642	if err := googleapi.CheckResponse(res); err != nil {
163643		return nil, err
163644	}
163645	ret := &Operation{
163646		ServerResponse: googleapi.ServerResponse{
163647			Header:         res.Header,
163648			HTTPStatusCode: res.StatusCode,
163649		},
163650	}
163651	target := &ret
163652	if err := gensupport.DecodeResponse(target, res); err != nil {
163653		return nil, err
163654	}
163655	return ret, nil
163656	// {
163657	//   "description": "Patches the specified SSL policy with the data included in the request.",
163658	//   "httpMethod": "PATCH",
163659	//   "id": "compute.sslPolicies.patch",
163660	//   "parameterOrder": [
163661	//     "project",
163662	//     "sslPolicy"
163663	//   ],
163664	//   "parameters": {
163665	//     "project": {
163666	//       "description": "Project ID for this request.",
163667	//       "location": "path",
163668	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163669	//       "required": true,
163670	//       "type": "string"
163671	//     },
163672	//     "requestId": {
163673	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163674	//       "location": "query",
163675	//       "type": "string"
163676	//     },
163677	//     "sslPolicy": {
163678	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
163679	//       "location": "path",
163680	//       "required": true,
163681	//       "type": "string"
163682	//     }
163683	//   },
163684	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
163685	//   "request": {
163686	//     "$ref": "SslPolicy"
163687	//   },
163688	//   "response": {
163689	//     "$ref": "Operation"
163690	//   },
163691	//   "scopes": [
163692	//     "https://www.googleapis.com/auth/cloud-platform",
163693	//     "https://www.googleapis.com/auth/compute"
163694	//   ]
163695	// }
163696
163697}
163698
163699// method id "compute.sslPolicies.testIamPermissions":
163700
163701type SslPoliciesTestIamPermissionsCall struct {
163702	s                      *Service
163703	project                string
163704	resource               string
163705	testpermissionsrequest *TestPermissionsRequest
163706	urlParams_             gensupport.URLParams
163707	ctx_                   context.Context
163708	header_                http.Header
163709}
163710
163711// TestIamPermissions: Returns permissions that a caller has on the
163712// specified resource.
163713//
163714// - project: Project ID for this request.
163715// - resource: Name or id of the resource for this request.
163716func (r *SslPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslPoliciesTestIamPermissionsCall {
163717	c := &SslPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163718	c.project = project
163719	c.resource = resource
163720	c.testpermissionsrequest = testpermissionsrequest
163721	return c
163722}
163723
163724// Fields allows partial responses to be retrieved. See
163725// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163726// for more information.
163727func (c *SslPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslPoliciesTestIamPermissionsCall {
163728	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163729	return c
163730}
163731
163732// Context sets the context to be used in this call's Do method. Any
163733// pending HTTP request will be aborted if the provided context is
163734// canceled.
163735func (c *SslPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SslPoliciesTestIamPermissionsCall {
163736	c.ctx_ = ctx
163737	return c
163738}
163739
163740// Header returns an http.Header that can be modified by the caller to
163741// add HTTP headers to the request.
163742func (c *SslPoliciesTestIamPermissionsCall) Header() http.Header {
163743	if c.header_ == nil {
163744		c.header_ = make(http.Header)
163745	}
163746	return c.header_
163747}
163748
163749func (c *SslPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
163750	reqHeaders := make(http.Header)
163751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
163752	for k, v := range c.header_ {
163753		reqHeaders[k] = v
163754	}
163755	reqHeaders.Set("User-Agent", c.s.userAgent())
163756	var body io.Reader = nil
163757	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
163758	if err != nil {
163759		return nil, err
163760	}
163761	reqHeaders.Set("Content-Type", "application/json")
163762	c.urlParams_.Set("alt", alt)
163763	c.urlParams_.Set("prettyPrint", "false")
163764	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{resource}/testIamPermissions")
163765	urls += "?" + c.urlParams_.Encode()
163766	req, err := http.NewRequest("POST", urls, body)
163767	if err != nil {
163768		return nil, err
163769	}
163770	req.Header = reqHeaders
163771	googleapi.Expand(req.URL, map[string]string{
163772		"project":  c.project,
163773		"resource": c.resource,
163774	})
163775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163776}
163777
163778// Do executes the "compute.sslPolicies.testIamPermissions" call.
163779// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
163780// non-2xx status code is an error. Response headers are in either
163781// *TestPermissionsResponse.ServerResponse.Header or (if a response was
163782// returned at all) in error.(*googleapi.Error).Header. Use
163783// googleapi.IsNotModified to check whether the returned error was
163784// because http.StatusNotModified was returned.
163785func (c *SslPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
163786	gensupport.SetOptions(c.urlParams_, opts...)
163787	res, err := c.doRequest("json")
163788	if res != nil && res.StatusCode == http.StatusNotModified {
163789		if res.Body != nil {
163790			res.Body.Close()
163791		}
163792		return nil, &googleapi.Error{
163793			Code:   res.StatusCode,
163794			Header: res.Header,
163795		}
163796	}
163797	if err != nil {
163798		return nil, err
163799	}
163800	defer googleapi.CloseBody(res)
163801	if err := googleapi.CheckResponse(res); err != nil {
163802		return nil, err
163803	}
163804	ret := &TestPermissionsResponse{
163805		ServerResponse: googleapi.ServerResponse{
163806			Header:         res.Header,
163807			HTTPStatusCode: res.StatusCode,
163808		},
163809	}
163810	target := &ret
163811	if err := gensupport.DecodeResponse(target, res); err != nil {
163812		return nil, err
163813	}
163814	return ret, nil
163815	// {
163816	//   "description": "Returns permissions that a caller has on the specified resource.",
163817	//   "httpMethod": "POST",
163818	//   "id": "compute.sslPolicies.testIamPermissions",
163819	//   "parameterOrder": [
163820	//     "project",
163821	//     "resource"
163822	//   ],
163823	//   "parameters": {
163824	//     "project": {
163825	//       "description": "Project ID for this request.",
163826	//       "location": "path",
163827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163828	//       "required": true,
163829	//       "type": "string"
163830	//     },
163831	//     "resource": {
163832	//       "description": "Name or id of the resource for this request.",
163833	//       "location": "path",
163834	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163835	//       "required": true,
163836	//       "type": "string"
163837	//     }
163838	//   },
163839	//   "path": "projects/{project}/global/sslPolicies/{resource}/testIamPermissions",
163840	//   "request": {
163841	//     "$ref": "TestPermissionsRequest"
163842	//   },
163843	//   "response": {
163844	//     "$ref": "TestPermissionsResponse"
163845	//   },
163846	//   "scopes": [
163847	//     "https://www.googleapis.com/auth/cloud-platform",
163848	//     "https://www.googleapis.com/auth/compute",
163849	//     "https://www.googleapis.com/auth/compute.readonly"
163850	//   ]
163851	// }
163852
163853}
163854
163855// method id "compute.subnetworks.aggregatedList":
163856
163857type SubnetworksAggregatedListCall struct {
163858	s            *Service
163859	project      string
163860	urlParams_   gensupport.URLParams
163861	ifNoneMatch_ string
163862	ctx_         context.Context
163863	header_      http.Header
163864}
163865
163866// AggregatedList: Retrieves an aggregated list of subnetworks.
163867//
163868// - project: Project ID for this request.
163869func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
163870	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163871	c.project = project
163872	return c
163873}
163874
163875// Filter sets the optional parameter "filter": A filter expression that
163876// filters resources listed in the response. The expression must specify
163877// the field name, a comparison operator, and the value that you want to
163878// use for filtering. The value must be a string, a number, or a
163879// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163880// `<`.
163881//
163882// For example, if you are filtering Compute Engine instances, you can
163883// exclude instances named `example-instance` by specifying `name !=
163884// example-instance`.
163885//
163886// You can also filter nested fields. For example, you could specify
163887// `scheduling.automaticRestart = false` to include instances only if
163888// they are not scheduled for automatic restarts. You can use filtering
163889// on nested fields to filter based on resource labels.
163890//
163891// To filter on multiple expressions, provide each separate expression
163892// within parentheses. For example: ``` (scheduling.automaticRestart =
163893// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
163894// is an `AND` expression. However, you can include `AND` and `OR`
163895// expressions explicitly. For example: ``` (cpuPlatform = "Intel
163896// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
163897// (scheduling.automaticRestart = true) ```
163898func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
163899	c.urlParams_.Set("filter", filter)
163900	return c
163901}
163902
163903// IncludeAllScopes sets the optional parameter "includeAllScopes":
163904// Indicates whether every visible scope for each scope type (zone,
163905// region, global) should be included in the response. For new resource
163906// types added after this field, the flag has no effect as new resource
163907// types will always include every visible scope for each scope type in
163908// response. For resource types which predate this field, if this flag
163909// is omitted or false, only scopes of the scope types where the
163910// resource type is expected to be found will be included.
163911func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
163912	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
163913	return c
163914}
163915
163916// MaxResults sets the optional parameter "maxResults": The maximum
163917// number of results per page that should be returned. If the number of
163918// available results is larger than `maxResults`, Compute Engine returns
163919// a `nextPageToken` that can be used to get the next page of results in
163920// subsequent list requests. Acceptable values are `0` to `500`,
163921// inclusive. (Default: `500`)
163922func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
163923	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163924	return c
163925}
163926
163927// OrderBy sets the optional parameter "orderBy": Sorts list results by
163928// a certain order. By default, results are returned in alphanumerical
163929// order based on the resource name.
163930//
163931// You can also sort results in descending order based on the creation
163932// timestamp using `orderBy="creationTimestamp desc". This sorts
163933// results based on the `creationTimestamp` field in reverse
163934// chronological order (newest result first). Use this to sort resources
163935// like operations so that the newest operation is returned
163936// first.
163937//
163938// Currently, only sorting by `name` or `creationTimestamp desc` is
163939// supported.
163940func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
163941	c.urlParams_.Set("orderBy", orderBy)
163942	return c
163943}
163944
163945// PageToken sets the optional parameter "pageToken": Specifies a page
163946// token to use. Set `pageToken` to the `nextPageToken` returned by a
163947// previous list request to get the next page of results.
163948func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
163949	c.urlParams_.Set("pageToken", pageToken)
163950	return c
163951}
163952
163953// ReturnPartialSuccess sets the optional parameter
163954// "returnPartialSuccess": Opt-in for partial success behavior which
163955// provides partial results in case of failure. The default value is
163956// false.
163957func (c *SubnetworksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksAggregatedListCall {
163958	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163959	return c
163960}
163961
163962// Fields allows partial responses to be retrieved. See
163963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163964// for more information.
163965func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
163966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163967	return c
163968}
163969
163970// IfNoneMatch sets the optional parameter which makes the operation
163971// fail if the object's ETag matches the given value. This is useful for
163972// getting updates only after the object has changed since the last
163973// request. Use googleapi.IsNotModified to check whether the response
163974// error from Do is the result of In-None-Match.
163975func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
163976	c.ifNoneMatch_ = entityTag
163977	return c
163978}
163979
163980// Context sets the context to be used in this call's Do method. Any
163981// pending HTTP request will be aborted if the provided context is
163982// canceled.
163983func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
163984	c.ctx_ = ctx
163985	return c
163986}
163987
163988// Header returns an http.Header that can be modified by the caller to
163989// add HTTP headers to the request.
163990func (c *SubnetworksAggregatedListCall) Header() http.Header {
163991	if c.header_ == nil {
163992		c.header_ = make(http.Header)
163993	}
163994	return c.header_
163995}
163996
163997func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
163998	reqHeaders := make(http.Header)
163999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
164000	for k, v := range c.header_ {
164001		reqHeaders[k] = v
164002	}
164003	reqHeaders.Set("User-Agent", c.s.userAgent())
164004	if c.ifNoneMatch_ != "" {
164005		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164006	}
164007	var body io.Reader = nil
164008	c.urlParams_.Set("alt", alt)
164009	c.urlParams_.Set("prettyPrint", "false")
164010	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks")
164011	urls += "?" + c.urlParams_.Encode()
164012	req, err := http.NewRequest("GET", urls, body)
164013	if err != nil {
164014		return nil, err
164015	}
164016	req.Header = reqHeaders
164017	googleapi.Expand(req.URL, map[string]string{
164018		"project": c.project,
164019	})
164020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164021}
164022
164023// Do executes the "compute.subnetworks.aggregatedList" call.
164024// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
164025// Any non-2xx status code is an error. Response headers are in either
164026// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
164027// returned at all) in error.(*googleapi.Error).Header. Use
164028// googleapi.IsNotModified to check whether the returned error was
164029// because http.StatusNotModified was returned.
164030func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
164031	gensupport.SetOptions(c.urlParams_, opts...)
164032	res, err := c.doRequest("json")
164033	if res != nil && res.StatusCode == http.StatusNotModified {
164034		if res.Body != nil {
164035			res.Body.Close()
164036		}
164037		return nil, &googleapi.Error{
164038			Code:   res.StatusCode,
164039			Header: res.Header,
164040		}
164041	}
164042	if err != nil {
164043		return nil, err
164044	}
164045	defer googleapi.CloseBody(res)
164046	if err := googleapi.CheckResponse(res); err != nil {
164047		return nil, err
164048	}
164049	ret := &SubnetworkAggregatedList{
164050		ServerResponse: googleapi.ServerResponse{
164051			Header:         res.Header,
164052			HTTPStatusCode: res.StatusCode,
164053		},
164054	}
164055	target := &ret
164056	if err := gensupport.DecodeResponse(target, res); err != nil {
164057		return nil, err
164058	}
164059	return ret, nil
164060	// {
164061	//   "description": "Retrieves an aggregated list of subnetworks.",
164062	//   "httpMethod": "GET",
164063	//   "id": "compute.subnetworks.aggregatedList",
164064	//   "parameterOrder": [
164065	//     "project"
164066	//   ],
164067	//   "parameters": {
164068	//     "filter": {
164069	//       "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) ```",
164070	//       "location": "query",
164071	//       "type": "string"
164072	//     },
164073	//     "includeAllScopes": {
164074	//       "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.",
164075	//       "location": "query",
164076	//       "type": "boolean"
164077	//     },
164078	//     "maxResults": {
164079	//       "default": "500",
164080	//       "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`)",
164081	//       "format": "uint32",
164082	//       "location": "query",
164083	//       "minimum": "0",
164084	//       "type": "integer"
164085	//     },
164086	//     "orderBy": {
164087	//       "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.",
164088	//       "location": "query",
164089	//       "type": "string"
164090	//     },
164091	//     "pageToken": {
164092	//       "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.",
164093	//       "location": "query",
164094	//       "type": "string"
164095	//     },
164096	//     "project": {
164097	//       "description": "Project ID for this request.",
164098	//       "location": "path",
164099	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164100	//       "required": true,
164101	//       "type": "string"
164102	//     },
164103	//     "returnPartialSuccess": {
164104	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
164105	//       "location": "query",
164106	//       "type": "boolean"
164107	//     }
164108	//   },
164109	//   "path": "projects/{project}/aggregated/subnetworks",
164110	//   "response": {
164111	//     "$ref": "SubnetworkAggregatedList"
164112	//   },
164113	//   "scopes": [
164114	//     "https://www.googleapis.com/auth/cloud-platform",
164115	//     "https://www.googleapis.com/auth/compute",
164116	//     "https://www.googleapis.com/auth/compute.readonly"
164117	//   ]
164118	// }
164119
164120}
164121
164122// Pages invokes f for each page of results.
164123// A non-nil error returned from f will halt the iteration.
164124// The provided context supersedes any context provided to the Context method.
164125func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
164126	c.ctx_ = ctx
164127	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
164128	for {
164129		x, err := c.Do()
164130		if err != nil {
164131			return err
164132		}
164133		if err := f(x); err != nil {
164134			return err
164135		}
164136		if x.NextPageToken == "" {
164137			return nil
164138		}
164139		c.PageToken(x.NextPageToken)
164140	}
164141}
164142
164143// method id "compute.subnetworks.delete":
164144
164145type SubnetworksDeleteCall struct {
164146	s          *Service
164147	project    string
164148	region     string
164149	subnetwork string
164150	urlParams_ gensupport.URLParams
164151	ctx_       context.Context
164152	header_    http.Header
164153}
164154
164155// Delete: Deletes the specified subnetwork.
164156//
164157// - project: Project ID for this request.
164158// - region: Name of the region scoping this request.
164159// - subnetwork: Name of the Subnetwork resource to delete.
164160func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
164161	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164162	c.project = project
164163	c.region = region
164164	c.subnetwork = subnetwork
164165	return c
164166}
164167
164168// RequestId sets the optional parameter "requestId": An optional
164169// request ID to identify requests. Specify a unique request ID so that
164170// if you must retry your request, the server will know to ignore the
164171// request if it has already been completed.
164172//
164173// For example, consider a situation where you make an initial request
164174// and the request times out. If you make the request again with the
164175// same request ID, the server can check if original operation with the
164176// same request ID was received, and if so, will ignore the second
164177// request. This prevents clients from accidentally creating duplicate
164178// commitments.
164179//
164180// The request ID must be a valid UUID with the exception that zero UUID
164181// is not supported (00000000-0000-0000-0000-000000000000).
164182func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
164183	c.urlParams_.Set("requestId", requestId)
164184	return c
164185}
164186
164187// Fields allows partial responses to be retrieved. See
164188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164189// for more information.
164190func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
164191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164192	return c
164193}
164194
164195// Context sets the context to be used in this call's Do method. Any
164196// pending HTTP request will be aborted if the provided context is
164197// canceled.
164198func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
164199	c.ctx_ = ctx
164200	return c
164201}
164202
164203// Header returns an http.Header that can be modified by the caller to
164204// add HTTP headers to the request.
164205func (c *SubnetworksDeleteCall) Header() http.Header {
164206	if c.header_ == nil {
164207		c.header_ = make(http.Header)
164208	}
164209	return c.header_
164210}
164211
164212func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
164213	reqHeaders := make(http.Header)
164214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
164215	for k, v := range c.header_ {
164216		reqHeaders[k] = v
164217	}
164218	reqHeaders.Set("User-Agent", c.s.userAgent())
164219	var body io.Reader = nil
164220	c.urlParams_.Set("alt", alt)
164221	c.urlParams_.Set("prettyPrint", "false")
164222	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
164223	urls += "?" + c.urlParams_.Encode()
164224	req, err := http.NewRequest("DELETE", urls, body)
164225	if err != nil {
164226		return nil, err
164227	}
164228	req.Header = reqHeaders
164229	googleapi.Expand(req.URL, map[string]string{
164230		"project":    c.project,
164231		"region":     c.region,
164232		"subnetwork": c.subnetwork,
164233	})
164234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164235}
164236
164237// Do executes the "compute.subnetworks.delete" call.
164238// Exactly one of *Operation or error will be non-nil. Any non-2xx
164239// status code is an error. Response headers are in either
164240// *Operation.ServerResponse.Header or (if a response was returned at
164241// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164242// to check whether the returned error was because
164243// http.StatusNotModified was returned.
164244func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164245	gensupport.SetOptions(c.urlParams_, opts...)
164246	res, err := c.doRequest("json")
164247	if res != nil && res.StatusCode == http.StatusNotModified {
164248		if res.Body != nil {
164249			res.Body.Close()
164250		}
164251		return nil, &googleapi.Error{
164252			Code:   res.StatusCode,
164253			Header: res.Header,
164254		}
164255	}
164256	if err != nil {
164257		return nil, err
164258	}
164259	defer googleapi.CloseBody(res)
164260	if err := googleapi.CheckResponse(res); err != nil {
164261		return nil, err
164262	}
164263	ret := &Operation{
164264		ServerResponse: googleapi.ServerResponse{
164265			Header:         res.Header,
164266			HTTPStatusCode: res.StatusCode,
164267		},
164268	}
164269	target := &ret
164270	if err := gensupport.DecodeResponse(target, res); err != nil {
164271		return nil, err
164272	}
164273	return ret, nil
164274	// {
164275	//   "description": "Deletes the specified subnetwork.",
164276	//   "httpMethod": "DELETE",
164277	//   "id": "compute.subnetworks.delete",
164278	//   "parameterOrder": [
164279	//     "project",
164280	//     "region",
164281	//     "subnetwork"
164282	//   ],
164283	//   "parameters": {
164284	//     "project": {
164285	//       "description": "Project ID for this request.",
164286	//       "location": "path",
164287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164288	//       "required": true,
164289	//       "type": "string"
164290	//     },
164291	//     "region": {
164292	//       "description": "Name of the region scoping this request.",
164293	//       "location": "path",
164294	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164295	//       "required": true,
164296	//       "type": "string"
164297	//     },
164298	//     "requestId": {
164299	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164300	//       "location": "query",
164301	//       "type": "string"
164302	//     },
164303	//     "subnetwork": {
164304	//       "description": "Name of the Subnetwork resource to delete.",
164305	//       "location": "path",
164306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164307	//       "required": true,
164308	//       "type": "string"
164309	//     }
164310	//   },
164311	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
164312	//   "response": {
164313	//     "$ref": "Operation"
164314	//   },
164315	//   "scopes": [
164316	//     "https://www.googleapis.com/auth/cloud-platform",
164317	//     "https://www.googleapis.com/auth/compute"
164318	//   ]
164319	// }
164320
164321}
164322
164323// method id "compute.subnetworks.expandIpCidrRange":
164324
164325type SubnetworksExpandIpCidrRangeCall struct {
164326	s                                   *Service
164327	project                             string
164328	region                              string
164329	subnetwork                          string
164330	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
164331	urlParams_                          gensupport.URLParams
164332	ctx_                                context.Context
164333	header_                             http.Header
164334}
164335
164336// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
164337// specified value.
164338//
164339// - project: Project ID for this request.
164340// - region: Name of the region scoping this request.
164341// - subnetwork: Name of the Subnetwork resource to update.
164342func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
164343	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164344	c.project = project
164345	c.region = region
164346	c.subnetwork = subnetwork
164347	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
164348	return c
164349}
164350
164351// RequestId sets the optional parameter "requestId": An optional
164352// request ID to identify requests. Specify a unique request ID so that
164353// if you must retry your request, the server will know to ignore the
164354// request if it has already been completed.
164355//
164356// For example, consider a situation where you make an initial request
164357// and the request times out. If you make the request again with the
164358// same request ID, the server can check if original operation with the
164359// same request ID was received, and if so, will ignore the second
164360// request. This prevents clients from accidentally creating duplicate
164361// commitments.
164362//
164363// The request ID must be a valid UUID with the exception that zero UUID
164364// is not supported (00000000-0000-0000-0000-000000000000).
164365func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
164366	c.urlParams_.Set("requestId", requestId)
164367	return c
164368}
164369
164370// Fields allows partial responses to be retrieved. See
164371// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164372// for more information.
164373func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
164374	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164375	return c
164376}
164377
164378// Context sets the context to be used in this call's Do method. Any
164379// pending HTTP request will be aborted if the provided context is
164380// canceled.
164381func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
164382	c.ctx_ = ctx
164383	return c
164384}
164385
164386// Header returns an http.Header that can be modified by the caller to
164387// add HTTP headers to the request.
164388func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
164389	if c.header_ == nil {
164390		c.header_ = make(http.Header)
164391	}
164392	return c.header_
164393}
164394
164395func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
164396	reqHeaders := make(http.Header)
164397	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
164398	for k, v := range c.header_ {
164399		reqHeaders[k] = v
164400	}
164401	reqHeaders.Set("User-Agent", c.s.userAgent())
164402	var body io.Reader = nil
164403	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
164404	if err != nil {
164405		return nil, err
164406	}
164407	reqHeaders.Set("Content-Type", "application/json")
164408	c.urlParams_.Set("alt", alt)
164409	c.urlParams_.Set("prettyPrint", "false")
164410	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
164411	urls += "?" + c.urlParams_.Encode()
164412	req, err := http.NewRequest("POST", urls, body)
164413	if err != nil {
164414		return nil, err
164415	}
164416	req.Header = reqHeaders
164417	googleapi.Expand(req.URL, map[string]string{
164418		"project":    c.project,
164419		"region":     c.region,
164420		"subnetwork": c.subnetwork,
164421	})
164422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164423}
164424
164425// Do executes the "compute.subnetworks.expandIpCidrRange" call.
164426// Exactly one of *Operation or error will be non-nil. Any non-2xx
164427// status code is an error. Response headers are in either
164428// *Operation.ServerResponse.Header or (if a response was returned at
164429// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164430// to check whether the returned error was because
164431// http.StatusNotModified was returned.
164432func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164433	gensupport.SetOptions(c.urlParams_, opts...)
164434	res, err := c.doRequest("json")
164435	if res != nil && res.StatusCode == http.StatusNotModified {
164436		if res.Body != nil {
164437			res.Body.Close()
164438		}
164439		return nil, &googleapi.Error{
164440			Code:   res.StatusCode,
164441			Header: res.Header,
164442		}
164443	}
164444	if err != nil {
164445		return nil, err
164446	}
164447	defer googleapi.CloseBody(res)
164448	if err := googleapi.CheckResponse(res); err != nil {
164449		return nil, err
164450	}
164451	ret := &Operation{
164452		ServerResponse: googleapi.ServerResponse{
164453			Header:         res.Header,
164454			HTTPStatusCode: res.StatusCode,
164455		},
164456	}
164457	target := &ret
164458	if err := gensupport.DecodeResponse(target, res); err != nil {
164459		return nil, err
164460	}
164461	return ret, nil
164462	// {
164463	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
164464	//   "httpMethod": "POST",
164465	//   "id": "compute.subnetworks.expandIpCidrRange",
164466	//   "parameterOrder": [
164467	//     "project",
164468	//     "region",
164469	//     "subnetwork"
164470	//   ],
164471	//   "parameters": {
164472	//     "project": {
164473	//       "description": "Project ID for this request.",
164474	//       "location": "path",
164475	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164476	//       "required": true,
164477	//       "type": "string"
164478	//     },
164479	//     "region": {
164480	//       "description": "Name of the region scoping this request.",
164481	//       "location": "path",
164482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164483	//       "required": true,
164484	//       "type": "string"
164485	//     },
164486	//     "requestId": {
164487	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164488	//       "location": "query",
164489	//       "type": "string"
164490	//     },
164491	//     "subnetwork": {
164492	//       "description": "Name of the Subnetwork resource to update.",
164493	//       "location": "path",
164494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164495	//       "required": true,
164496	//       "type": "string"
164497	//     }
164498	//   },
164499	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
164500	//   "request": {
164501	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
164502	//   },
164503	//   "response": {
164504	//     "$ref": "Operation"
164505	//   },
164506	//   "scopes": [
164507	//     "https://www.googleapis.com/auth/cloud-platform",
164508	//     "https://www.googleapis.com/auth/compute"
164509	//   ]
164510	// }
164511
164512}
164513
164514// method id "compute.subnetworks.get":
164515
164516type SubnetworksGetCall struct {
164517	s            *Service
164518	project      string
164519	region       string
164520	subnetwork   string
164521	urlParams_   gensupport.URLParams
164522	ifNoneMatch_ string
164523	ctx_         context.Context
164524	header_      http.Header
164525}
164526
164527// Get: Returns the specified subnetwork. Gets a list of available
164528// subnetworks list() request.
164529//
164530// - project: Project ID for this request.
164531// - region: Name of the region scoping this request.
164532// - subnetwork: Name of the Subnetwork resource to return.
164533func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
164534	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164535	c.project = project
164536	c.region = region
164537	c.subnetwork = subnetwork
164538	return c
164539}
164540
164541// Fields allows partial responses to be retrieved. See
164542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164543// for more information.
164544func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
164545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164546	return c
164547}
164548
164549// IfNoneMatch sets the optional parameter which makes the operation
164550// fail if the object's ETag matches the given value. This is useful for
164551// getting updates only after the object has changed since the last
164552// request. Use googleapi.IsNotModified to check whether the response
164553// error from Do is the result of In-None-Match.
164554func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
164555	c.ifNoneMatch_ = entityTag
164556	return c
164557}
164558
164559// Context sets the context to be used in this call's Do method. Any
164560// pending HTTP request will be aborted if the provided context is
164561// canceled.
164562func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
164563	c.ctx_ = ctx
164564	return c
164565}
164566
164567// Header returns an http.Header that can be modified by the caller to
164568// add HTTP headers to the request.
164569func (c *SubnetworksGetCall) Header() http.Header {
164570	if c.header_ == nil {
164571		c.header_ = make(http.Header)
164572	}
164573	return c.header_
164574}
164575
164576func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
164577	reqHeaders := make(http.Header)
164578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
164579	for k, v := range c.header_ {
164580		reqHeaders[k] = v
164581	}
164582	reqHeaders.Set("User-Agent", c.s.userAgent())
164583	if c.ifNoneMatch_ != "" {
164584		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164585	}
164586	var body io.Reader = nil
164587	c.urlParams_.Set("alt", alt)
164588	c.urlParams_.Set("prettyPrint", "false")
164589	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
164590	urls += "?" + c.urlParams_.Encode()
164591	req, err := http.NewRequest("GET", urls, body)
164592	if err != nil {
164593		return nil, err
164594	}
164595	req.Header = reqHeaders
164596	googleapi.Expand(req.URL, map[string]string{
164597		"project":    c.project,
164598		"region":     c.region,
164599		"subnetwork": c.subnetwork,
164600	})
164601	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164602}
164603
164604// Do executes the "compute.subnetworks.get" call.
164605// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
164606// status code is an error. Response headers are in either
164607// *Subnetwork.ServerResponse.Header or (if a response was returned at
164608// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164609// to check whether the returned error was because
164610// http.StatusNotModified was returned.
164611func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
164612	gensupport.SetOptions(c.urlParams_, opts...)
164613	res, err := c.doRequest("json")
164614	if res != nil && res.StatusCode == http.StatusNotModified {
164615		if res.Body != nil {
164616			res.Body.Close()
164617		}
164618		return nil, &googleapi.Error{
164619			Code:   res.StatusCode,
164620			Header: res.Header,
164621		}
164622	}
164623	if err != nil {
164624		return nil, err
164625	}
164626	defer googleapi.CloseBody(res)
164627	if err := googleapi.CheckResponse(res); err != nil {
164628		return nil, err
164629	}
164630	ret := &Subnetwork{
164631		ServerResponse: googleapi.ServerResponse{
164632			Header:         res.Header,
164633			HTTPStatusCode: res.StatusCode,
164634		},
164635	}
164636	target := &ret
164637	if err := gensupport.DecodeResponse(target, res); err != nil {
164638		return nil, err
164639	}
164640	return ret, nil
164641	// {
164642	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
164643	//   "httpMethod": "GET",
164644	//   "id": "compute.subnetworks.get",
164645	//   "parameterOrder": [
164646	//     "project",
164647	//     "region",
164648	//     "subnetwork"
164649	//   ],
164650	//   "parameters": {
164651	//     "project": {
164652	//       "description": "Project ID for this request.",
164653	//       "location": "path",
164654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164655	//       "required": true,
164656	//       "type": "string"
164657	//     },
164658	//     "region": {
164659	//       "description": "Name of the region scoping this request.",
164660	//       "location": "path",
164661	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164662	//       "required": true,
164663	//       "type": "string"
164664	//     },
164665	//     "subnetwork": {
164666	//       "description": "Name of the Subnetwork resource to return.",
164667	//       "location": "path",
164668	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164669	//       "required": true,
164670	//       "type": "string"
164671	//     }
164672	//   },
164673	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
164674	//   "response": {
164675	//     "$ref": "Subnetwork"
164676	//   },
164677	//   "scopes": [
164678	//     "https://www.googleapis.com/auth/cloud-platform",
164679	//     "https://www.googleapis.com/auth/compute",
164680	//     "https://www.googleapis.com/auth/compute.readonly"
164681	//   ]
164682	// }
164683
164684}
164685
164686// method id "compute.subnetworks.getIamPolicy":
164687
164688type SubnetworksGetIamPolicyCall struct {
164689	s            *Service
164690	project      string
164691	region       string
164692	resource     string
164693	urlParams_   gensupport.URLParams
164694	ifNoneMatch_ string
164695	ctx_         context.Context
164696	header_      http.Header
164697}
164698
164699// GetIamPolicy: Gets the access control policy for a resource. May be
164700// empty if no such policy or resource exists.
164701//
164702// - project: Project ID for this request.
164703// - region: The name of the region for this request.
164704// - resource: Name or id of the resource for this request.
164705func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
164706	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164707	c.project = project
164708	c.region = region
164709	c.resource = resource
164710	return c
164711}
164712
164713// OptionsRequestedPolicyVersion sets the optional parameter
164714// "optionsRequestedPolicyVersion": Requested IAM Policy version.
164715func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
164716	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
164717	return c
164718}
164719
164720// Fields allows partial responses to be retrieved. See
164721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164722// for more information.
164723func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
164724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164725	return c
164726}
164727
164728// IfNoneMatch sets the optional parameter which makes the operation
164729// fail if the object's ETag matches the given value. This is useful for
164730// getting updates only after the object has changed since the last
164731// request. Use googleapi.IsNotModified to check whether the response
164732// error from Do is the result of In-None-Match.
164733func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
164734	c.ifNoneMatch_ = entityTag
164735	return c
164736}
164737
164738// Context sets the context to be used in this call's Do method. Any
164739// pending HTTP request will be aborted if the provided context is
164740// canceled.
164741func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
164742	c.ctx_ = ctx
164743	return c
164744}
164745
164746// Header returns an http.Header that can be modified by the caller to
164747// add HTTP headers to the request.
164748func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
164749	if c.header_ == nil {
164750		c.header_ = make(http.Header)
164751	}
164752	return c.header_
164753}
164754
164755func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
164756	reqHeaders := make(http.Header)
164757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
164758	for k, v := range c.header_ {
164759		reqHeaders[k] = v
164760	}
164761	reqHeaders.Set("User-Agent", c.s.userAgent())
164762	if c.ifNoneMatch_ != "" {
164763		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164764	}
164765	var body io.Reader = nil
164766	c.urlParams_.Set("alt", alt)
164767	c.urlParams_.Set("prettyPrint", "false")
164768	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
164769	urls += "?" + c.urlParams_.Encode()
164770	req, err := http.NewRequest("GET", urls, body)
164771	if err != nil {
164772		return nil, err
164773	}
164774	req.Header = reqHeaders
164775	googleapi.Expand(req.URL, map[string]string{
164776		"project":  c.project,
164777		"region":   c.region,
164778		"resource": c.resource,
164779	})
164780	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164781}
164782
164783// Do executes the "compute.subnetworks.getIamPolicy" call.
164784// Exactly one of *Policy or error will be non-nil. Any non-2xx status
164785// code is an error. Response headers are in either
164786// *Policy.ServerResponse.Header or (if a response was returned at all)
164787// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
164788// check whether the returned error was because http.StatusNotModified
164789// was returned.
164790func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
164791	gensupport.SetOptions(c.urlParams_, opts...)
164792	res, err := c.doRequest("json")
164793	if res != nil && res.StatusCode == http.StatusNotModified {
164794		if res.Body != nil {
164795			res.Body.Close()
164796		}
164797		return nil, &googleapi.Error{
164798			Code:   res.StatusCode,
164799			Header: res.Header,
164800		}
164801	}
164802	if err != nil {
164803		return nil, err
164804	}
164805	defer googleapi.CloseBody(res)
164806	if err := googleapi.CheckResponse(res); err != nil {
164807		return nil, err
164808	}
164809	ret := &Policy{
164810		ServerResponse: googleapi.ServerResponse{
164811			Header:         res.Header,
164812			HTTPStatusCode: res.StatusCode,
164813		},
164814	}
164815	target := &ret
164816	if err := gensupport.DecodeResponse(target, res); err != nil {
164817		return nil, err
164818	}
164819	return ret, nil
164820	// {
164821	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
164822	//   "httpMethod": "GET",
164823	//   "id": "compute.subnetworks.getIamPolicy",
164824	//   "parameterOrder": [
164825	//     "project",
164826	//     "region",
164827	//     "resource"
164828	//   ],
164829	//   "parameters": {
164830	//     "optionsRequestedPolicyVersion": {
164831	//       "description": "Requested IAM Policy version.",
164832	//       "format": "int32",
164833	//       "location": "query",
164834	//       "type": "integer"
164835	//     },
164836	//     "project": {
164837	//       "description": "Project ID for this request.",
164838	//       "location": "path",
164839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164840	//       "required": true,
164841	//       "type": "string"
164842	//     },
164843	//     "region": {
164844	//       "description": "The name of the region for this request.",
164845	//       "location": "path",
164846	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
164847	//       "required": true,
164848	//       "type": "string"
164849	//     },
164850	//     "resource": {
164851	//       "description": "Name or id of the resource for this request.",
164852	//       "location": "path",
164853	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164854	//       "required": true,
164855	//       "type": "string"
164856	//     }
164857	//   },
164858	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
164859	//   "response": {
164860	//     "$ref": "Policy"
164861	//   },
164862	//   "scopes": [
164863	//     "https://www.googleapis.com/auth/cloud-platform",
164864	//     "https://www.googleapis.com/auth/compute",
164865	//     "https://www.googleapis.com/auth/compute.readonly"
164866	//   ]
164867	// }
164868
164869}
164870
164871// method id "compute.subnetworks.insert":
164872
164873type SubnetworksInsertCall struct {
164874	s          *Service
164875	project    string
164876	region     string
164877	subnetwork *Subnetwork
164878	urlParams_ gensupport.URLParams
164879	ctx_       context.Context
164880	header_    http.Header
164881}
164882
164883// Insert: Creates a subnetwork in the specified project using the data
164884// included in the request.
164885//
164886// - project: Project ID for this request.
164887// - region: Name of the region scoping this request.
164888func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
164889	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164890	c.project = project
164891	c.region = region
164892	c.subnetwork = subnetwork
164893	return c
164894}
164895
164896// RequestId sets the optional parameter "requestId": An optional
164897// request ID to identify requests. Specify a unique request ID so that
164898// if you must retry your request, the server will know to ignore the
164899// request if it has already been completed.
164900//
164901// For example, consider a situation where you make an initial request
164902// and the request times out. If you make the request again with the
164903// same request ID, the server can check if original operation with the
164904// same request ID was received, and if so, will ignore the second
164905// request. This prevents clients from accidentally creating duplicate
164906// commitments.
164907//
164908// The request ID must be a valid UUID with the exception that zero UUID
164909// is not supported (00000000-0000-0000-0000-000000000000).
164910func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
164911	c.urlParams_.Set("requestId", requestId)
164912	return c
164913}
164914
164915// Fields allows partial responses to be retrieved. See
164916// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164917// for more information.
164918func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
164919	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164920	return c
164921}
164922
164923// Context sets the context to be used in this call's Do method. Any
164924// pending HTTP request will be aborted if the provided context is
164925// canceled.
164926func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
164927	c.ctx_ = ctx
164928	return c
164929}
164930
164931// Header returns an http.Header that can be modified by the caller to
164932// add HTTP headers to the request.
164933func (c *SubnetworksInsertCall) Header() http.Header {
164934	if c.header_ == nil {
164935		c.header_ = make(http.Header)
164936	}
164937	return c.header_
164938}
164939
164940func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
164941	reqHeaders := make(http.Header)
164942	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
164943	for k, v := range c.header_ {
164944		reqHeaders[k] = v
164945	}
164946	reqHeaders.Set("User-Agent", c.s.userAgent())
164947	var body io.Reader = nil
164948	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
164949	if err != nil {
164950		return nil, err
164951	}
164952	reqHeaders.Set("Content-Type", "application/json")
164953	c.urlParams_.Set("alt", alt)
164954	c.urlParams_.Set("prettyPrint", "false")
164955	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
164956	urls += "?" + c.urlParams_.Encode()
164957	req, err := http.NewRequest("POST", urls, body)
164958	if err != nil {
164959		return nil, err
164960	}
164961	req.Header = reqHeaders
164962	googleapi.Expand(req.URL, map[string]string{
164963		"project": c.project,
164964		"region":  c.region,
164965	})
164966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164967}
164968
164969// Do executes the "compute.subnetworks.insert" call.
164970// Exactly one of *Operation or error will be non-nil. Any non-2xx
164971// status code is an error. Response headers are in either
164972// *Operation.ServerResponse.Header or (if a response was returned at
164973// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164974// to check whether the returned error was because
164975// http.StatusNotModified was returned.
164976func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164977	gensupport.SetOptions(c.urlParams_, opts...)
164978	res, err := c.doRequest("json")
164979	if res != nil && res.StatusCode == http.StatusNotModified {
164980		if res.Body != nil {
164981			res.Body.Close()
164982		}
164983		return nil, &googleapi.Error{
164984			Code:   res.StatusCode,
164985			Header: res.Header,
164986		}
164987	}
164988	if err != nil {
164989		return nil, err
164990	}
164991	defer googleapi.CloseBody(res)
164992	if err := googleapi.CheckResponse(res); err != nil {
164993		return nil, err
164994	}
164995	ret := &Operation{
164996		ServerResponse: googleapi.ServerResponse{
164997			Header:         res.Header,
164998			HTTPStatusCode: res.StatusCode,
164999		},
165000	}
165001	target := &ret
165002	if err := gensupport.DecodeResponse(target, res); err != nil {
165003		return nil, err
165004	}
165005	return ret, nil
165006	// {
165007	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
165008	//   "httpMethod": "POST",
165009	//   "id": "compute.subnetworks.insert",
165010	//   "parameterOrder": [
165011	//     "project",
165012	//     "region"
165013	//   ],
165014	//   "parameters": {
165015	//     "project": {
165016	//       "description": "Project ID for this request.",
165017	//       "location": "path",
165018	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165019	//       "required": true,
165020	//       "type": "string"
165021	//     },
165022	//     "region": {
165023	//       "description": "Name of the region scoping this request.",
165024	//       "location": "path",
165025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165026	//       "required": true,
165027	//       "type": "string"
165028	//     },
165029	//     "requestId": {
165030	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165031	//       "location": "query",
165032	//       "type": "string"
165033	//     }
165034	//   },
165035	//   "path": "projects/{project}/regions/{region}/subnetworks",
165036	//   "request": {
165037	//     "$ref": "Subnetwork"
165038	//   },
165039	//   "response": {
165040	//     "$ref": "Operation"
165041	//   },
165042	//   "scopes": [
165043	//     "https://www.googleapis.com/auth/cloud-platform",
165044	//     "https://www.googleapis.com/auth/compute"
165045	//   ]
165046	// }
165047
165048}
165049
165050// method id "compute.subnetworks.list":
165051
165052type SubnetworksListCall struct {
165053	s            *Service
165054	project      string
165055	region       string
165056	urlParams_   gensupport.URLParams
165057	ifNoneMatch_ string
165058	ctx_         context.Context
165059	header_      http.Header
165060}
165061
165062// List: Retrieves a list of subnetworks available to the specified
165063// project.
165064//
165065// - project: Project ID for this request.
165066// - region: Name of the region scoping this request.
165067func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
165068	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165069	c.project = project
165070	c.region = region
165071	return c
165072}
165073
165074// Filter sets the optional parameter "filter": A filter expression that
165075// filters resources listed in the response. The expression must specify
165076// the field name, a comparison operator, and the value that you want to
165077// use for filtering. The value must be a string, a number, or a
165078// boolean. The comparison operator must be either `=`, `!=`, `>`, or
165079// `<`.
165080//
165081// For example, if you are filtering Compute Engine instances, you can
165082// exclude instances named `example-instance` by specifying `name !=
165083// example-instance`.
165084//
165085// You can also filter nested fields. For example, you could specify
165086// `scheduling.automaticRestart = false` to include instances only if
165087// they are not scheduled for automatic restarts. You can use filtering
165088// on nested fields to filter based on resource labels.
165089//
165090// To filter on multiple expressions, provide each separate expression
165091// within parentheses. For example: ``` (scheduling.automaticRestart =
165092// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
165093// is an `AND` expression. However, you can include `AND` and `OR`
165094// expressions explicitly. For example: ``` (cpuPlatform = "Intel
165095// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
165096// (scheduling.automaticRestart = true) ```
165097func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
165098	c.urlParams_.Set("filter", filter)
165099	return c
165100}
165101
165102// MaxResults sets the optional parameter "maxResults": The maximum
165103// number of results per page that should be returned. If the number of
165104// available results is larger than `maxResults`, Compute Engine returns
165105// a `nextPageToken` that can be used to get the next page of results in
165106// subsequent list requests. Acceptable values are `0` to `500`,
165107// inclusive. (Default: `500`)
165108func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
165109	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165110	return c
165111}
165112
165113// OrderBy sets the optional parameter "orderBy": Sorts list results by
165114// a certain order. By default, results are returned in alphanumerical
165115// order based on the resource name.
165116//
165117// You can also sort results in descending order based on the creation
165118// timestamp using `orderBy="creationTimestamp desc". This sorts
165119// results based on the `creationTimestamp` field in reverse
165120// chronological order (newest result first). Use this to sort resources
165121// like operations so that the newest operation is returned
165122// first.
165123//
165124// Currently, only sorting by `name` or `creationTimestamp desc` is
165125// supported.
165126func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
165127	c.urlParams_.Set("orderBy", orderBy)
165128	return c
165129}
165130
165131// PageToken sets the optional parameter "pageToken": Specifies a page
165132// token to use. Set `pageToken` to the `nextPageToken` returned by a
165133// previous list request to get the next page of results.
165134func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
165135	c.urlParams_.Set("pageToken", pageToken)
165136	return c
165137}
165138
165139// ReturnPartialSuccess sets the optional parameter
165140// "returnPartialSuccess": Opt-in for partial success behavior which
165141// provides partial results in case of failure. The default value is
165142// false.
165143func (c *SubnetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListCall {
165144	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
165145	return c
165146}
165147
165148// Fields allows partial responses to be retrieved. See
165149// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165150// for more information.
165151func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
165152	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165153	return c
165154}
165155
165156// IfNoneMatch sets the optional parameter which makes the operation
165157// fail if the object's ETag matches the given value. This is useful for
165158// getting updates only after the object has changed since the last
165159// request. Use googleapi.IsNotModified to check whether the response
165160// error from Do is the result of In-None-Match.
165161func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
165162	c.ifNoneMatch_ = entityTag
165163	return c
165164}
165165
165166// Context sets the context to be used in this call's Do method. Any
165167// pending HTTP request will be aborted if the provided context is
165168// canceled.
165169func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
165170	c.ctx_ = ctx
165171	return c
165172}
165173
165174// Header returns an http.Header that can be modified by the caller to
165175// add HTTP headers to the request.
165176func (c *SubnetworksListCall) Header() http.Header {
165177	if c.header_ == nil {
165178		c.header_ = make(http.Header)
165179	}
165180	return c.header_
165181}
165182
165183func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
165184	reqHeaders := make(http.Header)
165185	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
165186	for k, v := range c.header_ {
165187		reqHeaders[k] = v
165188	}
165189	reqHeaders.Set("User-Agent", c.s.userAgent())
165190	if c.ifNoneMatch_ != "" {
165191		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165192	}
165193	var body io.Reader = nil
165194	c.urlParams_.Set("alt", alt)
165195	c.urlParams_.Set("prettyPrint", "false")
165196	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
165197	urls += "?" + c.urlParams_.Encode()
165198	req, err := http.NewRequest("GET", urls, body)
165199	if err != nil {
165200		return nil, err
165201	}
165202	req.Header = reqHeaders
165203	googleapi.Expand(req.URL, map[string]string{
165204		"project": c.project,
165205		"region":  c.region,
165206	})
165207	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165208}
165209
165210// Do executes the "compute.subnetworks.list" call.
165211// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
165212// status code is an error. Response headers are in either
165213// *SubnetworkList.ServerResponse.Header or (if a response was returned
165214// at all) in error.(*googleapi.Error).Header. Use
165215// googleapi.IsNotModified to check whether the returned error was
165216// because http.StatusNotModified was returned.
165217func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
165218	gensupport.SetOptions(c.urlParams_, opts...)
165219	res, err := c.doRequest("json")
165220	if res != nil && res.StatusCode == http.StatusNotModified {
165221		if res.Body != nil {
165222			res.Body.Close()
165223		}
165224		return nil, &googleapi.Error{
165225			Code:   res.StatusCode,
165226			Header: res.Header,
165227		}
165228	}
165229	if err != nil {
165230		return nil, err
165231	}
165232	defer googleapi.CloseBody(res)
165233	if err := googleapi.CheckResponse(res); err != nil {
165234		return nil, err
165235	}
165236	ret := &SubnetworkList{
165237		ServerResponse: googleapi.ServerResponse{
165238			Header:         res.Header,
165239			HTTPStatusCode: res.StatusCode,
165240		},
165241	}
165242	target := &ret
165243	if err := gensupport.DecodeResponse(target, res); err != nil {
165244		return nil, err
165245	}
165246	return ret, nil
165247	// {
165248	//   "description": "Retrieves a list of subnetworks available to the specified project.",
165249	//   "httpMethod": "GET",
165250	//   "id": "compute.subnetworks.list",
165251	//   "parameterOrder": [
165252	//     "project",
165253	//     "region"
165254	//   ],
165255	//   "parameters": {
165256	//     "filter": {
165257	//       "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) ```",
165258	//       "location": "query",
165259	//       "type": "string"
165260	//     },
165261	//     "maxResults": {
165262	//       "default": "500",
165263	//       "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`)",
165264	//       "format": "uint32",
165265	//       "location": "query",
165266	//       "minimum": "0",
165267	//       "type": "integer"
165268	//     },
165269	//     "orderBy": {
165270	//       "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.",
165271	//       "location": "query",
165272	//       "type": "string"
165273	//     },
165274	//     "pageToken": {
165275	//       "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.",
165276	//       "location": "query",
165277	//       "type": "string"
165278	//     },
165279	//     "project": {
165280	//       "description": "Project ID for this request.",
165281	//       "location": "path",
165282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165283	//       "required": true,
165284	//       "type": "string"
165285	//     },
165286	//     "region": {
165287	//       "description": "Name of the region scoping this request.",
165288	//       "location": "path",
165289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165290	//       "required": true,
165291	//       "type": "string"
165292	//     },
165293	//     "returnPartialSuccess": {
165294	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
165295	//       "location": "query",
165296	//       "type": "boolean"
165297	//     }
165298	//   },
165299	//   "path": "projects/{project}/regions/{region}/subnetworks",
165300	//   "response": {
165301	//     "$ref": "SubnetworkList"
165302	//   },
165303	//   "scopes": [
165304	//     "https://www.googleapis.com/auth/cloud-platform",
165305	//     "https://www.googleapis.com/auth/compute",
165306	//     "https://www.googleapis.com/auth/compute.readonly"
165307	//   ]
165308	// }
165309
165310}
165311
165312// Pages invokes f for each page of results.
165313// A non-nil error returned from f will halt the iteration.
165314// The provided context supersedes any context provided to the Context method.
165315func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
165316	c.ctx_ = ctx
165317	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
165318	for {
165319		x, err := c.Do()
165320		if err != nil {
165321			return err
165322		}
165323		if err := f(x); err != nil {
165324			return err
165325		}
165326		if x.NextPageToken == "" {
165327			return nil
165328		}
165329		c.PageToken(x.NextPageToken)
165330	}
165331}
165332
165333// method id "compute.subnetworks.listUsable":
165334
165335type SubnetworksListUsableCall struct {
165336	s            *Service
165337	project      string
165338	urlParams_   gensupport.URLParams
165339	ifNoneMatch_ string
165340	ctx_         context.Context
165341	header_      http.Header
165342}
165343
165344// ListUsable: Retrieves an aggregated list of all usable subnetworks in
165345// the project.
165346//
165347// - project: Project ID for this request.
165348func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
165349	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165350	c.project = project
165351	return c
165352}
165353
165354// Filter sets the optional parameter "filter": A filter expression that
165355// filters resources listed in the response. The expression must specify
165356// the field name, a comparison operator, and the value that you want to
165357// use for filtering. The value must be a string, a number, or a
165358// boolean. The comparison operator must be either `=`, `!=`, `>`, or
165359// `<`.
165360//
165361// For example, if you are filtering Compute Engine instances, you can
165362// exclude instances named `example-instance` by specifying `name !=
165363// example-instance`.
165364//
165365// You can also filter nested fields. For example, you could specify
165366// `scheduling.automaticRestart = false` to include instances only if
165367// they are not scheduled for automatic restarts. You can use filtering
165368// on nested fields to filter based on resource labels.
165369//
165370// To filter on multiple expressions, provide each separate expression
165371// within parentheses. For example: ``` (scheduling.automaticRestart =
165372// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
165373// is an `AND` expression. However, you can include `AND` and `OR`
165374// expressions explicitly. For example: ``` (cpuPlatform = "Intel
165375// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
165376// (scheduling.automaticRestart = true) ```
165377func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
165378	c.urlParams_.Set("filter", filter)
165379	return c
165380}
165381
165382// MaxResults sets the optional parameter "maxResults": The maximum
165383// number of results per page that should be returned. If the number of
165384// available results is larger than `maxResults`, Compute Engine returns
165385// a `nextPageToken` that can be used to get the next page of results in
165386// subsequent list requests. Acceptable values are `0` to `500`,
165387// inclusive. (Default: `500`)
165388func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
165389	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165390	return c
165391}
165392
165393// OrderBy sets the optional parameter "orderBy": Sorts list results by
165394// a certain order. By default, results are returned in alphanumerical
165395// order based on the resource name.
165396//
165397// You can also sort results in descending order based on the creation
165398// timestamp using `orderBy="creationTimestamp desc". This sorts
165399// results based on the `creationTimestamp` field in reverse
165400// chronological order (newest result first). Use this to sort resources
165401// like operations so that the newest operation is returned
165402// first.
165403//
165404// Currently, only sorting by `name` or `creationTimestamp desc` is
165405// supported.
165406func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
165407	c.urlParams_.Set("orderBy", orderBy)
165408	return c
165409}
165410
165411// PageToken sets the optional parameter "pageToken": Specifies a page
165412// token to use. Set `pageToken` to the `nextPageToken` returned by a
165413// previous list request to get the next page of results.
165414func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
165415	c.urlParams_.Set("pageToken", pageToken)
165416	return c
165417}
165418
165419// ReturnPartialSuccess sets the optional parameter
165420// "returnPartialSuccess": Opt-in for partial success behavior which
165421// provides partial results in case of failure. The default value is
165422// false.
165423func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListUsableCall {
165424	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
165425	return c
165426}
165427
165428// Fields allows partial responses to be retrieved. See
165429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165430// for more information.
165431func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
165432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165433	return c
165434}
165435
165436// IfNoneMatch sets the optional parameter which makes the operation
165437// fail if the object's ETag matches the given value. This is useful for
165438// getting updates only after the object has changed since the last
165439// request. Use googleapi.IsNotModified to check whether the response
165440// error from Do is the result of In-None-Match.
165441func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
165442	c.ifNoneMatch_ = entityTag
165443	return c
165444}
165445
165446// Context sets the context to be used in this call's Do method. Any
165447// pending HTTP request will be aborted if the provided context is
165448// canceled.
165449func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
165450	c.ctx_ = ctx
165451	return c
165452}
165453
165454// Header returns an http.Header that can be modified by the caller to
165455// add HTTP headers to the request.
165456func (c *SubnetworksListUsableCall) Header() http.Header {
165457	if c.header_ == nil {
165458		c.header_ = make(http.Header)
165459	}
165460	return c.header_
165461}
165462
165463func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
165464	reqHeaders := make(http.Header)
165465	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
165466	for k, v := range c.header_ {
165467		reqHeaders[k] = v
165468	}
165469	reqHeaders.Set("User-Agent", c.s.userAgent())
165470	if c.ifNoneMatch_ != "" {
165471		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165472	}
165473	var body io.Reader = nil
165474	c.urlParams_.Set("alt", alt)
165475	c.urlParams_.Set("prettyPrint", "false")
165476	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks/listUsable")
165477	urls += "?" + c.urlParams_.Encode()
165478	req, err := http.NewRequest("GET", urls, body)
165479	if err != nil {
165480		return nil, err
165481	}
165482	req.Header = reqHeaders
165483	googleapi.Expand(req.URL, map[string]string{
165484		"project": c.project,
165485	})
165486	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165487}
165488
165489// Do executes the "compute.subnetworks.listUsable" call.
165490// Exactly one of *UsableSubnetworksAggregatedList or error will be
165491// non-nil. Any non-2xx status code is an error. Response headers are in
165492// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
165493// a response was returned at all) in error.(*googleapi.Error).Header.
165494// Use googleapi.IsNotModified to check whether the returned error was
165495// because http.StatusNotModified was returned.
165496func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
165497	gensupport.SetOptions(c.urlParams_, opts...)
165498	res, err := c.doRequest("json")
165499	if res != nil && res.StatusCode == http.StatusNotModified {
165500		if res.Body != nil {
165501			res.Body.Close()
165502		}
165503		return nil, &googleapi.Error{
165504			Code:   res.StatusCode,
165505			Header: res.Header,
165506		}
165507	}
165508	if err != nil {
165509		return nil, err
165510	}
165511	defer googleapi.CloseBody(res)
165512	if err := googleapi.CheckResponse(res); err != nil {
165513		return nil, err
165514	}
165515	ret := &UsableSubnetworksAggregatedList{
165516		ServerResponse: googleapi.ServerResponse{
165517			Header:         res.Header,
165518			HTTPStatusCode: res.StatusCode,
165519		},
165520	}
165521	target := &ret
165522	if err := gensupport.DecodeResponse(target, res); err != nil {
165523		return nil, err
165524	}
165525	return ret, nil
165526	// {
165527	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project.",
165528	//   "httpMethod": "GET",
165529	//   "id": "compute.subnetworks.listUsable",
165530	//   "parameterOrder": [
165531	//     "project"
165532	//   ],
165533	//   "parameters": {
165534	//     "filter": {
165535	//       "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) ```",
165536	//       "location": "query",
165537	//       "type": "string"
165538	//     },
165539	//     "maxResults": {
165540	//       "default": "500",
165541	//       "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`)",
165542	//       "format": "uint32",
165543	//       "location": "query",
165544	//       "minimum": "0",
165545	//       "type": "integer"
165546	//     },
165547	//     "orderBy": {
165548	//       "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.",
165549	//       "location": "query",
165550	//       "type": "string"
165551	//     },
165552	//     "pageToken": {
165553	//       "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.",
165554	//       "location": "query",
165555	//       "type": "string"
165556	//     },
165557	//     "project": {
165558	//       "description": "Project ID for this request.",
165559	//       "location": "path",
165560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165561	//       "required": true,
165562	//       "type": "string"
165563	//     },
165564	//     "returnPartialSuccess": {
165565	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
165566	//       "location": "query",
165567	//       "type": "boolean"
165568	//     }
165569	//   },
165570	//   "path": "projects/{project}/aggregated/subnetworks/listUsable",
165571	//   "response": {
165572	//     "$ref": "UsableSubnetworksAggregatedList"
165573	//   },
165574	//   "scopes": [
165575	//     "https://www.googleapis.com/auth/cloud-platform",
165576	//     "https://www.googleapis.com/auth/compute",
165577	//     "https://www.googleapis.com/auth/compute.readonly"
165578	//   ]
165579	// }
165580
165581}
165582
165583// Pages invokes f for each page of results.
165584// A non-nil error returned from f will halt the iteration.
165585// The provided context supersedes any context provided to the Context method.
165586func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
165587	c.ctx_ = ctx
165588	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
165589	for {
165590		x, err := c.Do()
165591		if err != nil {
165592			return err
165593		}
165594		if err := f(x); err != nil {
165595			return err
165596		}
165597		if x.NextPageToken == "" {
165598			return nil
165599		}
165600		c.PageToken(x.NextPageToken)
165601	}
165602}
165603
165604// method id "compute.subnetworks.patch":
165605
165606type SubnetworksPatchCall struct {
165607	s           *Service
165608	project     string
165609	region      string
165610	subnetwork  string
165611	subnetwork2 *Subnetwork
165612	urlParams_  gensupport.URLParams
165613	ctx_        context.Context
165614	header_     http.Header
165615}
165616
165617// Patch: Patches the specified subnetwork with the data included in the
165618// request. Only certain fields can be updated with a patch request as
165619// indicated in the field descriptions. You must specify the current
165620// fingerprint of the subnetwork resource being patched.
165621//
165622// - project: Project ID for this request.
165623// - region: Name of the region scoping this request.
165624// - subnetwork: Name of the Subnetwork resource to patch.
165625func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
165626	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165627	c.project = project
165628	c.region = region
165629	c.subnetwork = subnetwork
165630	c.subnetwork2 = subnetwork2
165631	return c
165632}
165633
165634// DrainTimeoutSeconds sets the optional parameter
165635// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
165636// seconds on the amount of time allowed to drain connections from the
165637// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
165638// timeout is only applicable when the following conditions are true: -
165639// the subnetwork being patched has purpose =
165640// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
165641// = BACKUP - the patch request is setting the role to ACTIVE. Note that
165642// after this patch operation the roles of the ACTIVE and BACKUP
165643// subnetworks will be swapped.
165644func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
165645	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
165646	return c
165647}
165648
165649// RequestId sets the optional parameter "requestId": An optional
165650// request ID to identify requests. Specify a unique request ID so that
165651// if you must retry your request, the server will know to ignore the
165652// request if it has already been completed.
165653//
165654// For example, consider a situation where you make an initial request
165655// and the request times out. If you make the request again with the
165656// same request ID, the server can check if original operation with the
165657// same request ID was received, and if so, will ignore the second
165658// request. This prevents clients from accidentally creating duplicate
165659// commitments.
165660//
165661// The request ID must be a valid UUID with the exception that zero UUID
165662// is not supported (00000000-0000-0000-0000-000000000000).
165663func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
165664	c.urlParams_.Set("requestId", requestId)
165665	return c
165666}
165667
165668// Fields allows partial responses to be retrieved. See
165669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165670// for more information.
165671func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
165672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165673	return c
165674}
165675
165676// Context sets the context to be used in this call's Do method. Any
165677// pending HTTP request will be aborted if the provided context is
165678// canceled.
165679func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
165680	c.ctx_ = ctx
165681	return c
165682}
165683
165684// Header returns an http.Header that can be modified by the caller to
165685// add HTTP headers to the request.
165686func (c *SubnetworksPatchCall) Header() http.Header {
165687	if c.header_ == nil {
165688		c.header_ = make(http.Header)
165689	}
165690	return c.header_
165691}
165692
165693func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
165694	reqHeaders := make(http.Header)
165695	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
165696	for k, v := range c.header_ {
165697		reqHeaders[k] = v
165698	}
165699	reqHeaders.Set("User-Agent", c.s.userAgent())
165700	var body io.Reader = nil
165701	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
165702	if err != nil {
165703		return nil, err
165704	}
165705	reqHeaders.Set("Content-Type", "application/json")
165706	c.urlParams_.Set("alt", alt)
165707	c.urlParams_.Set("prettyPrint", "false")
165708	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
165709	urls += "?" + c.urlParams_.Encode()
165710	req, err := http.NewRequest("PATCH", urls, body)
165711	if err != nil {
165712		return nil, err
165713	}
165714	req.Header = reqHeaders
165715	googleapi.Expand(req.URL, map[string]string{
165716		"project":    c.project,
165717		"region":     c.region,
165718		"subnetwork": c.subnetwork,
165719	})
165720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165721}
165722
165723// Do executes the "compute.subnetworks.patch" call.
165724// Exactly one of *Operation or error will be non-nil. Any non-2xx
165725// status code is an error. Response headers are in either
165726// *Operation.ServerResponse.Header or (if a response was returned at
165727// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165728// to check whether the returned error was because
165729// http.StatusNotModified was returned.
165730func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165731	gensupport.SetOptions(c.urlParams_, opts...)
165732	res, err := c.doRequest("json")
165733	if res != nil && res.StatusCode == http.StatusNotModified {
165734		if res.Body != nil {
165735			res.Body.Close()
165736		}
165737		return nil, &googleapi.Error{
165738			Code:   res.StatusCode,
165739			Header: res.Header,
165740		}
165741	}
165742	if err != nil {
165743		return nil, err
165744	}
165745	defer googleapi.CloseBody(res)
165746	if err := googleapi.CheckResponse(res); err != nil {
165747		return nil, err
165748	}
165749	ret := &Operation{
165750		ServerResponse: googleapi.ServerResponse{
165751			Header:         res.Header,
165752			HTTPStatusCode: res.StatusCode,
165753		},
165754	}
165755	target := &ret
165756	if err := gensupport.DecodeResponse(target, res); err != nil {
165757		return nil, err
165758	}
165759	return ret, nil
165760	// {
165761	//   "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.",
165762	//   "httpMethod": "PATCH",
165763	//   "id": "compute.subnetworks.patch",
165764	//   "parameterOrder": [
165765	//     "project",
165766	//     "region",
165767	//     "subnetwork"
165768	//   ],
165769	//   "parameters": {
165770	//     "drainTimeoutSeconds": {
165771	//       "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.",
165772	//       "format": "int32",
165773	//       "location": "query",
165774	//       "type": "integer"
165775	//     },
165776	//     "project": {
165777	//       "description": "Project ID for this request.",
165778	//       "location": "path",
165779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165780	//       "required": true,
165781	//       "type": "string"
165782	//     },
165783	//     "region": {
165784	//       "description": "Name of the region scoping this request.",
165785	//       "location": "path",
165786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165787	//       "required": true,
165788	//       "type": "string"
165789	//     },
165790	//     "requestId": {
165791	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165792	//       "location": "query",
165793	//       "type": "string"
165794	//     },
165795	//     "subnetwork": {
165796	//       "description": "Name of the Subnetwork resource to patch.",
165797	//       "location": "path",
165798	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165799	//       "required": true,
165800	//       "type": "string"
165801	//     }
165802	//   },
165803	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
165804	//   "request": {
165805	//     "$ref": "Subnetwork"
165806	//   },
165807	//   "response": {
165808	//     "$ref": "Operation"
165809	//   },
165810	//   "scopes": [
165811	//     "https://www.googleapis.com/auth/cloud-platform",
165812	//     "https://www.googleapis.com/auth/compute"
165813	//   ]
165814	// }
165815
165816}
165817
165818// method id "compute.subnetworks.setIamPolicy":
165819
165820type SubnetworksSetIamPolicyCall struct {
165821	s                      *Service
165822	project                string
165823	region                 string
165824	resource               string
165825	regionsetpolicyrequest *RegionSetPolicyRequest
165826	urlParams_             gensupport.URLParams
165827	ctx_                   context.Context
165828	header_                http.Header
165829}
165830
165831// SetIamPolicy: Sets the access control policy on the specified
165832// resource. Replaces any existing policy.
165833//
165834// - project: Project ID for this request.
165835// - region: The name of the region for this request.
165836// - resource: Name or id of the resource for this request.
165837func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
165838	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165839	c.project = project
165840	c.region = region
165841	c.resource = resource
165842	c.regionsetpolicyrequest = regionsetpolicyrequest
165843	return c
165844}
165845
165846// Fields allows partial responses to be retrieved. See
165847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165848// for more information.
165849func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
165850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165851	return c
165852}
165853
165854// Context sets the context to be used in this call's Do method. Any
165855// pending HTTP request will be aborted if the provided context is
165856// canceled.
165857func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
165858	c.ctx_ = ctx
165859	return c
165860}
165861
165862// Header returns an http.Header that can be modified by the caller to
165863// add HTTP headers to the request.
165864func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
165865	if c.header_ == nil {
165866		c.header_ = make(http.Header)
165867	}
165868	return c.header_
165869}
165870
165871func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
165872	reqHeaders := make(http.Header)
165873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
165874	for k, v := range c.header_ {
165875		reqHeaders[k] = v
165876	}
165877	reqHeaders.Set("User-Agent", c.s.userAgent())
165878	var body io.Reader = nil
165879	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
165880	if err != nil {
165881		return nil, err
165882	}
165883	reqHeaders.Set("Content-Type", "application/json")
165884	c.urlParams_.Set("alt", alt)
165885	c.urlParams_.Set("prettyPrint", "false")
165886	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
165887	urls += "?" + c.urlParams_.Encode()
165888	req, err := http.NewRequest("POST", urls, body)
165889	if err != nil {
165890		return nil, err
165891	}
165892	req.Header = reqHeaders
165893	googleapi.Expand(req.URL, map[string]string{
165894		"project":  c.project,
165895		"region":   c.region,
165896		"resource": c.resource,
165897	})
165898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165899}
165900
165901// Do executes the "compute.subnetworks.setIamPolicy" call.
165902// Exactly one of *Policy or error will be non-nil. Any non-2xx status
165903// code is an error. Response headers are in either
165904// *Policy.ServerResponse.Header or (if a response was returned at all)
165905// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
165906// check whether the returned error was because http.StatusNotModified
165907// was returned.
165908func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
165909	gensupport.SetOptions(c.urlParams_, opts...)
165910	res, err := c.doRequest("json")
165911	if res != nil && res.StatusCode == http.StatusNotModified {
165912		if res.Body != nil {
165913			res.Body.Close()
165914		}
165915		return nil, &googleapi.Error{
165916			Code:   res.StatusCode,
165917			Header: res.Header,
165918		}
165919	}
165920	if err != nil {
165921		return nil, err
165922	}
165923	defer googleapi.CloseBody(res)
165924	if err := googleapi.CheckResponse(res); err != nil {
165925		return nil, err
165926	}
165927	ret := &Policy{
165928		ServerResponse: googleapi.ServerResponse{
165929			Header:         res.Header,
165930			HTTPStatusCode: res.StatusCode,
165931		},
165932	}
165933	target := &ret
165934	if err := gensupport.DecodeResponse(target, res); err != nil {
165935		return nil, err
165936	}
165937	return ret, nil
165938	// {
165939	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
165940	//   "httpMethod": "POST",
165941	//   "id": "compute.subnetworks.setIamPolicy",
165942	//   "parameterOrder": [
165943	//     "project",
165944	//     "region",
165945	//     "resource"
165946	//   ],
165947	//   "parameters": {
165948	//     "project": {
165949	//       "description": "Project ID for this request.",
165950	//       "location": "path",
165951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165952	//       "required": true,
165953	//       "type": "string"
165954	//     },
165955	//     "region": {
165956	//       "description": "The name of the region for this request.",
165957	//       "location": "path",
165958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165959	//       "required": true,
165960	//       "type": "string"
165961	//     },
165962	//     "resource": {
165963	//       "description": "Name or id of the resource for this request.",
165964	//       "location": "path",
165965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165966	//       "required": true,
165967	//       "type": "string"
165968	//     }
165969	//   },
165970	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
165971	//   "request": {
165972	//     "$ref": "RegionSetPolicyRequest"
165973	//   },
165974	//   "response": {
165975	//     "$ref": "Policy"
165976	//   },
165977	//   "scopes": [
165978	//     "https://www.googleapis.com/auth/cloud-platform",
165979	//     "https://www.googleapis.com/auth/compute"
165980	//   ]
165981	// }
165982
165983}
165984
165985// method id "compute.subnetworks.setPrivateIpGoogleAccess":
165986
165987type SubnetworksSetPrivateIpGoogleAccessCall struct {
165988	s                                          *Service
165989	project                                    string
165990	region                                     string
165991	subnetwork                                 string
165992	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
165993	urlParams_                                 gensupport.URLParams
165994	ctx_                                       context.Context
165995	header_                                    http.Header
165996}
165997
165998// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
165999// Google services without assigning external IP addresses through
166000// Private Google Access.
166001//
166002// - project: Project ID for this request.
166003// - region: Name of the region scoping this request.
166004// - subnetwork: Name of the Subnetwork resource.
166005func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
166006	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166007	c.project = project
166008	c.region = region
166009	c.subnetwork = subnetwork
166010	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
166011	return c
166012}
166013
166014// RequestId sets the optional parameter "requestId": An optional
166015// request ID to identify requests. Specify a unique request ID so that
166016// if you must retry your request, the server will know to ignore the
166017// request if it has already been completed.
166018//
166019// For example, consider a situation where you make an initial request
166020// and the request times out. If you make the request again with the
166021// same request ID, the server can check if original operation with the
166022// same request ID was received, and if so, will ignore the second
166023// request. This prevents clients from accidentally creating duplicate
166024// commitments.
166025//
166026// The request ID must be a valid UUID with the exception that zero UUID
166027// is not supported (00000000-0000-0000-0000-000000000000).
166028func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
166029	c.urlParams_.Set("requestId", requestId)
166030	return c
166031}
166032
166033// Fields allows partial responses to be retrieved. See
166034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166035// for more information.
166036func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
166037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166038	return c
166039}
166040
166041// Context sets the context to be used in this call's Do method. Any
166042// pending HTTP request will be aborted if the provided context is
166043// canceled.
166044func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
166045	c.ctx_ = ctx
166046	return c
166047}
166048
166049// Header returns an http.Header that can be modified by the caller to
166050// add HTTP headers to the request.
166051func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
166052	if c.header_ == nil {
166053		c.header_ = make(http.Header)
166054	}
166055	return c.header_
166056}
166057
166058func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
166059	reqHeaders := make(http.Header)
166060	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
166061	for k, v := range c.header_ {
166062		reqHeaders[k] = v
166063	}
166064	reqHeaders.Set("User-Agent", c.s.userAgent())
166065	var body io.Reader = nil
166066	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
166067	if err != nil {
166068		return nil, err
166069	}
166070	reqHeaders.Set("Content-Type", "application/json")
166071	c.urlParams_.Set("alt", alt)
166072	c.urlParams_.Set("prettyPrint", "false")
166073	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
166074	urls += "?" + c.urlParams_.Encode()
166075	req, err := http.NewRequest("POST", urls, body)
166076	if err != nil {
166077		return nil, err
166078	}
166079	req.Header = reqHeaders
166080	googleapi.Expand(req.URL, map[string]string{
166081		"project":    c.project,
166082		"region":     c.region,
166083		"subnetwork": c.subnetwork,
166084	})
166085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166086}
166087
166088// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
166089// Exactly one of *Operation or error will be non-nil. Any non-2xx
166090// status code is an error. Response headers are in either
166091// *Operation.ServerResponse.Header or (if a response was returned at
166092// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166093// to check whether the returned error was because
166094// http.StatusNotModified was returned.
166095func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166096	gensupport.SetOptions(c.urlParams_, opts...)
166097	res, err := c.doRequest("json")
166098	if res != nil && res.StatusCode == http.StatusNotModified {
166099		if res.Body != nil {
166100			res.Body.Close()
166101		}
166102		return nil, &googleapi.Error{
166103			Code:   res.StatusCode,
166104			Header: res.Header,
166105		}
166106	}
166107	if err != nil {
166108		return nil, err
166109	}
166110	defer googleapi.CloseBody(res)
166111	if err := googleapi.CheckResponse(res); err != nil {
166112		return nil, err
166113	}
166114	ret := &Operation{
166115		ServerResponse: googleapi.ServerResponse{
166116			Header:         res.Header,
166117			HTTPStatusCode: res.StatusCode,
166118		},
166119	}
166120	target := &ret
166121	if err := gensupport.DecodeResponse(target, res); err != nil {
166122		return nil, err
166123	}
166124	return ret, nil
166125	// {
166126	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
166127	//   "httpMethod": "POST",
166128	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
166129	//   "parameterOrder": [
166130	//     "project",
166131	//     "region",
166132	//     "subnetwork"
166133	//   ],
166134	//   "parameters": {
166135	//     "project": {
166136	//       "description": "Project ID for this request.",
166137	//       "location": "path",
166138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166139	//       "required": true,
166140	//       "type": "string"
166141	//     },
166142	//     "region": {
166143	//       "description": "Name of the region scoping this request.",
166144	//       "location": "path",
166145	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166146	//       "required": true,
166147	//       "type": "string"
166148	//     },
166149	//     "requestId": {
166150	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166151	//       "location": "query",
166152	//       "type": "string"
166153	//     },
166154	//     "subnetwork": {
166155	//       "description": "Name of the Subnetwork resource.",
166156	//       "location": "path",
166157	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166158	//       "required": true,
166159	//       "type": "string"
166160	//     }
166161	//   },
166162	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
166163	//   "request": {
166164	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
166165	//   },
166166	//   "response": {
166167	//     "$ref": "Operation"
166168	//   },
166169	//   "scopes": [
166170	//     "https://www.googleapis.com/auth/cloud-platform",
166171	//     "https://www.googleapis.com/auth/compute"
166172	//   ]
166173	// }
166174
166175}
166176
166177// method id "compute.subnetworks.testIamPermissions":
166178
166179type SubnetworksTestIamPermissionsCall struct {
166180	s                      *Service
166181	project                string
166182	region                 string
166183	resource               string
166184	testpermissionsrequest *TestPermissionsRequest
166185	urlParams_             gensupport.URLParams
166186	ctx_                   context.Context
166187	header_                http.Header
166188}
166189
166190// TestIamPermissions: Returns permissions that a caller has on the
166191// specified resource.
166192//
166193// - project: Project ID for this request.
166194// - region: The name of the region for this request.
166195// - resource: Name or id of the resource for this request.
166196func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
166197	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166198	c.project = project
166199	c.region = region
166200	c.resource = resource
166201	c.testpermissionsrequest = testpermissionsrequest
166202	return c
166203}
166204
166205// Fields allows partial responses to be retrieved. See
166206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166207// for more information.
166208func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
166209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166210	return c
166211}
166212
166213// Context sets the context to be used in this call's Do method. Any
166214// pending HTTP request will be aborted if the provided context is
166215// canceled.
166216func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
166217	c.ctx_ = ctx
166218	return c
166219}
166220
166221// Header returns an http.Header that can be modified by the caller to
166222// add HTTP headers to the request.
166223func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
166224	if c.header_ == nil {
166225		c.header_ = make(http.Header)
166226	}
166227	return c.header_
166228}
166229
166230func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
166231	reqHeaders := make(http.Header)
166232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
166233	for k, v := range c.header_ {
166234		reqHeaders[k] = v
166235	}
166236	reqHeaders.Set("User-Agent", c.s.userAgent())
166237	var body io.Reader = nil
166238	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
166239	if err != nil {
166240		return nil, err
166241	}
166242	reqHeaders.Set("Content-Type", "application/json")
166243	c.urlParams_.Set("alt", alt)
166244	c.urlParams_.Set("prettyPrint", "false")
166245	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
166246	urls += "?" + c.urlParams_.Encode()
166247	req, err := http.NewRequest("POST", urls, body)
166248	if err != nil {
166249		return nil, err
166250	}
166251	req.Header = reqHeaders
166252	googleapi.Expand(req.URL, map[string]string{
166253		"project":  c.project,
166254		"region":   c.region,
166255		"resource": c.resource,
166256	})
166257	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166258}
166259
166260// Do executes the "compute.subnetworks.testIamPermissions" call.
166261// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
166262// non-2xx status code is an error. Response headers are in either
166263// *TestPermissionsResponse.ServerResponse.Header or (if a response was
166264// returned at all) in error.(*googleapi.Error).Header. Use
166265// googleapi.IsNotModified to check whether the returned error was
166266// because http.StatusNotModified was returned.
166267func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
166268	gensupport.SetOptions(c.urlParams_, opts...)
166269	res, err := c.doRequest("json")
166270	if res != nil && res.StatusCode == http.StatusNotModified {
166271		if res.Body != nil {
166272			res.Body.Close()
166273		}
166274		return nil, &googleapi.Error{
166275			Code:   res.StatusCode,
166276			Header: res.Header,
166277		}
166278	}
166279	if err != nil {
166280		return nil, err
166281	}
166282	defer googleapi.CloseBody(res)
166283	if err := googleapi.CheckResponse(res); err != nil {
166284		return nil, err
166285	}
166286	ret := &TestPermissionsResponse{
166287		ServerResponse: googleapi.ServerResponse{
166288			Header:         res.Header,
166289			HTTPStatusCode: res.StatusCode,
166290		},
166291	}
166292	target := &ret
166293	if err := gensupport.DecodeResponse(target, res); err != nil {
166294		return nil, err
166295	}
166296	return ret, nil
166297	// {
166298	//   "description": "Returns permissions that a caller has on the specified resource.",
166299	//   "httpMethod": "POST",
166300	//   "id": "compute.subnetworks.testIamPermissions",
166301	//   "parameterOrder": [
166302	//     "project",
166303	//     "region",
166304	//     "resource"
166305	//   ],
166306	//   "parameters": {
166307	//     "project": {
166308	//       "description": "Project ID for this request.",
166309	//       "location": "path",
166310	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166311	//       "required": true,
166312	//       "type": "string"
166313	//     },
166314	//     "region": {
166315	//       "description": "The name of the region for this request.",
166316	//       "location": "path",
166317	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166318	//       "required": true,
166319	//       "type": "string"
166320	//     },
166321	//     "resource": {
166322	//       "description": "Name or id of the resource for this request.",
166323	//       "location": "path",
166324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166325	//       "required": true,
166326	//       "type": "string"
166327	//     }
166328	//   },
166329	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
166330	//   "request": {
166331	//     "$ref": "TestPermissionsRequest"
166332	//   },
166333	//   "response": {
166334	//     "$ref": "TestPermissionsResponse"
166335	//   },
166336	//   "scopes": [
166337	//     "https://www.googleapis.com/auth/cloud-platform",
166338	//     "https://www.googleapis.com/auth/compute",
166339	//     "https://www.googleapis.com/auth/compute.readonly"
166340	//   ]
166341	// }
166342
166343}
166344
166345// method id "compute.targetGrpcProxies.delete":
166346
166347type TargetGrpcProxiesDeleteCall struct {
166348	s               *Service
166349	project         string
166350	targetGrpcProxy string
166351	urlParams_      gensupport.URLParams
166352	ctx_            context.Context
166353	header_         http.Header
166354}
166355
166356// Delete: Deletes the specified TargetGrpcProxy in the given scope
166357//
166358// - project: Project ID for this request.
166359// - targetGrpcProxy: Name of the TargetGrpcProxy resource to delete.
166360func (r *TargetGrpcProxiesService) Delete(project string, targetGrpcProxy string) *TargetGrpcProxiesDeleteCall {
166361	c := &TargetGrpcProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166362	c.project = project
166363	c.targetGrpcProxy = targetGrpcProxy
166364	return c
166365}
166366
166367// RequestId sets the optional parameter "requestId": An optional
166368// request ID to identify requests. Specify a unique request ID so that
166369// if you must retry your request, the server will know to ignore the
166370// request if it has already been completed.
166371//
166372// For example, consider a situation where you make an initial request
166373// and the request times out. If you make the request again with the
166374// same request ID, the server can check if original operation with the
166375// same request ID was received, and if so, will ignore the second
166376// request. This prevents clients from accidentally creating duplicate
166377// commitments.
166378//
166379// The request ID must be a valid UUID with the exception that zero UUID
166380// is not supported (00000000-0000-0000-0000-000000000000).
166381func (c *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcProxiesDeleteCall {
166382	c.urlParams_.Set("requestId", requestId)
166383	return c
166384}
166385
166386// Fields allows partial responses to be retrieved. See
166387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166388// for more information.
166389func (c *TargetGrpcProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesDeleteCall {
166390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166391	return c
166392}
166393
166394// Context sets the context to be used in this call's Do method. Any
166395// pending HTTP request will be aborted if the provided context is
166396// canceled.
166397func (c *TargetGrpcProxiesDeleteCall) Context(ctx context.Context) *TargetGrpcProxiesDeleteCall {
166398	c.ctx_ = ctx
166399	return c
166400}
166401
166402// Header returns an http.Header that can be modified by the caller to
166403// add HTTP headers to the request.
166404func (c *TargetGrpcProxiesDeleteCall) Header() http.Header {
166405	if c.header_ == nil {
166406		c.header_ = make(http.Header)
166407	}
166408	return c.header_
166409}
166410
166411func (c *TargetGrpcProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
166412	reqHeaders := make(http.Header)
166413	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
166414	for k, v := range c.header_ {
166415		reqHeaders[k] = v
166416	}
166417	reqHeaders.Set("User-Agent", c.s.userAgent())
166418	var body io.Reader = nil
166419	c.urlParams_.Set("alt", alt)
166420	c.urlParams_.Set("prettyPrint", "false")
166421	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
166422	urls += "?" + c.urlParams_.Encode()
166423	req, err := http.NewRequest("DELETE", urls, body)
166424	if err != nil {
166425		return nil, err
166426	}
166427	req.Header = reqHeaders
166428	googleapi.Expand(req.URL, map[string]string{
166429		"project":         c.project,
166430		"targetGrpcProxy": c.targetGrpcProxy,
166431	})
166432	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166433}
166434
166435// Do executes the "compute.targetGrpcProxies.delete" call.
166436// Exactly one of *Operation or error will be non-nil. Any non-2xx
166437// status code is an error. Response headers are in either
166438// *Operation.ServerResponse.Header or (if a response was returned at
166439// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166440// to check whether the returned error was because
166441// http.StatusNotModified was returned.
166442func (c *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166443	gensupport.SetOptions(c.urlParams_, opts...)
166444	res, err := c.doRequest("json")
166445	if res != nil && res.StatusCode == http.StatusNotModified {
166446		if res.Body != nil {
166447			res.Body.Close()
166448		}
166449		return nil, &googleapi.Error{
166450			Code:   res.StatusCode,
166451			Header: res.Header,
166452		}
166453	}
166454	if err != nil {
166455		return nil, err
166456	}
166457	defer googleapi.CloseBody(res)
166458	if err := googleapi.CheckResponse(res); err != nil {
166459		return nil, err
166460	}
166461	ret := &Operation{
166462		ServerResponse: googleapi.ServerResponse{
166463			Header:         res.Header,
166464			HTTPStatusCode: res.StatusCode,
166465		},
166466	}
166467	target := &ret
166468	if err := gensupport.DecodeResponse(target, res); err != nil {
166469		return nil, err
166470	}
166471	return ret, nil
166472	// {
166473	//   "description": "Deletes the specified TargetGrpcProxy in the given scope",
166474	//   "httpMethod": "DELETE",
166475	//   "id": "compute.targetGrpcProxies.delete",
166476	//   "parameterOrder": [
166477	//     "project",
166478	//     "targetGrpcProxy"
166479	//   ],
166480	//   "parameters": {
166481	//     "project": {
166482	//       "description": "Project ID for this request.",
166483	//       "location": "path",
166484	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166485	//       "required": true,
166486	//       "type": "string"
166487	//     },
166488	//     "requestId": {
166489	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166490	//       "location": "query",
166491	//       "type": "string"
166492	//     },
166493	//     "targetGrpcProxy": {
166494	//       "description": "Name of the TargetGrpcProxy resource to delete.",
166495	//       "location": "path",
166496	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166497	//       "required": true,
166498	//       "type": "string"
166499	//     }
166500	//   },
166501	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
166502	//   "response": {
166503	//     "$ref": "Operation"
166504	//   },
166505	//   "scopes": [
166506	//     "https://www.googleapis.com/auth/cloud-platform",
166507	//     "https://www.googleapis.com/auth/compute"
166508	//   ]
166509	// }
166510
166511}
166512
166513// method id "compute.targetGrpcProxies.get":
166514
166515type TargetGrpcProxiesGetCall struct {
166516	s               *Service
166517	project         string
166518	targetGrpcProxy string
166519	urlParams_      gensupport.URLParams
166520	ifNoneMatch_    string
166521	ctx_            context.Context
166522	header_         http.Header
166523}
166524
166525// Get: Returns the specified TargetGrpcProxy resource in the given
166526// scope.
166527//
166528// - project: Project ID for this request.
166529// - targetGrpcProxy: Name of the TargetGrpcProxy resource to return.
166530func (r *TargetGrpcProxiesService) Get(project string, targetGrpcProxy string) *TargetGrpcProxiesGetCall {
166531	c := &TargetGrpcProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166532	c.project = project
166533	c.targetGrpcProxy = targetGrpcProxy
166534	return c
166535}
166536
166537// Fields allows partial responses to be retrieved. See
166538// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166539// for more information.
166540func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesGetCall {
166541	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166542	return c
166543}
166544
166545// IfNoneMatch sets the optional parameter which makes the operation
166546// fail if the object's ETag matches the given value. This is useful for
166547// getting updates only after the object has changed since the last
166548// request. Use googleapi.IsNotModified to check whether the response
166549// error from Do is the result of In-None-Match.
166550func (c *TargetGrpcProxiesGetCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesGetCall {
166551	c.ifNoneMatch_ = entityTag
166552	return c
166553}
166554
166555// Context sets the context to be used in this call's Do method. Any
166556// pending HTTP request will be aborted if the provided context is
166557// canceled.
166558func (c *TargetGrpcProxiesGetCall) Context(ctx context.Context) *TargetGrpcProxiesGetCall {
166559	c.ctx_ = ctx
166560	return c
166561}
166562
166563// Header returns an http.Header that can be modified by the caller to
166564// add HTTP headers to the request.
166565func (c *TargetGrpcProxiesGetCall) Header() http.Header {
166566	if c.header_ == nil {
166567		c.header_ = make(http.Header)
166568	}
166569	return c.header_
166570}
166571
166572func (c *TargetGrpcProxiesGetCall) doRequest(alt string) (*http.Response, error) {
166573	reqHeaders := make(http.Header)
166574	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
166575	for k, v := range c.header_ {
166576		reqHeaders[k] = v
166577	}
166578	reqHeaders.Set("User-Agent", c.s.userAgent())
166579	if c.ifNoneMatch_ != "" {
166580		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166581	}
166582	var body io.Reader = nil
166583	c.urlParams_.Set("alt", alt)
166584	c.urlParams_.Set("prettyPrint", "false")
166585	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
166586	urls += "?" + c.urlParams_.Encode()
166587	req, err := http.NewRequest("GET", urls, body)
166588	if err != nil {
166589		return nil, err
166590	}
166591	req.Header = reqHeaders
166592	googleapi.Expand(req.URL, map[string]string{
166593		"project":         c.project,
166594		"targetGrpcProxy": c.targetGrpcProxy,
166595	})
166596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166597}
166598
166599// Do executes the "compute.targetGrpcProxies.get" call.
166600// Exactly one of *TargetGrpcProxy or error will be non-nil. Any non-2xx
166601// status code is an error. Response headers are in either
166602// *TargetGrpcProxy.ServerResponse.Header or (if a response was returned
166603// at all) in error.(*googleapi.Error).Header. Use
166604// googleapi.IsNotModified to check whether the returned error was
166605// because http.StatusNotModified was returned.
166606func (c *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxy, error) {
166607	gensupport.SetOptions(c.urlParams_, opts...)
166608	res, err := c.doRequest("json")
166609	if res != nil && res.StatusCode == http.StatusNotModified {
166610		if res.Body != nil {
166611			res.Body.Close()
166612		}
166613		return nil, &googleapi.Error{
166614			Code:   res.StatusCode,
166615			Header: res.Header,
166616		}
166617	}
166618	if err != nil {
166619		return nil, err
166620	}
166621	defer googleapi.CloseBody(res)
166622	if err := googleapi.CheckResponse(res); err != nil {
166623		return nil, err
166624	}
166625	ret := &TargetGrpcProxy{
166626		ServerResponse: googleapi.ServerResponse{
166627			Header:         res.Header,
166628			HTTPStatusCode: res.StatusCode,
166629		},
166630	}
166631	target := &ret
166632	if err := gensupport.DecodeResponse(target, res); err != nil {
166633		return nil, err
166634	}
166635	return ret, nil
166636	// {
166637	//   "description": "Returns the specified TargetGrpcProxy resource in the given scope.",
166638	//   "httpMethod": "GET",
166639	//   "id": "compute.targetGrpcProxies.get",
166640	//   "parameterOrder": [
166641	//     "project",
166642	//     "targetGrpcProxy"
166643	//   ],
166644	//   "parameters": {
166645	//     "project": {
166646	//       "description": "Project ID for this request.",
166647	//       "location": "path",
166648	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166649	//       "required": true,
166650	//       "type": "string"
166651	//     },
166652	//     "targetGrpcProxy": {
166653	//       "description": "Name of the TargetGrpcProxy resource to return.",
166654	//       "location": "path",
166655	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166656	//       "required": true,
166657	//       "type": "string"
166658	//     }
166659	//   },
166660	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
166661	//   "response": {
166662	//     "$ref": "TargetGrpcProxy"
166663	//   },
166664	//   "scopes": [
166665	//     "https://www.googleapis.com/auth/cloud-platform",
166666	//     "https://www.googleapis.com/auth/compute",
166667	//     "https://www.googleapis.com/auth/compute.readonly"
166668	//   ]
166669	// }
166670
166671}
166672
166673// method id "compute.targetGrpcProxies.insert":
166674
166675type TargetGrpcProxiesInsertCall struct {
166676	s               *Service
166677	project         string
166678	targetgrpcproxy *TargetGrpcProxy
166679	urlParams_      gensupport.URLParams
166680	ctx_            context.Context
166681	header_         http.Header
166682}
166683
166684// Insert: Creates a TargetGrpcProxy in the specified project in the
166685// given scope using the parameters that are included in the request.
166686//
166687// - project: Project ID for this request.
166688func (r *TargetGrpcProxiesService) Insert(project string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesInsertCall {
166689	c := &TargetGrpcProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166690	c.project = project
166691	c.targetgrpcproxy = targetgrpcproxy
166692	return c
166693}
166694
166695// RequestId sets the optional parameter "requestId": An optional
166696// request ID to identify requests. Specify a unique request ID so that
166697// if you must retry your request, the server will know to ignore the
166698// request if it has already been completed.
166699//
166700// For example, consider a situation where you make an initial request
166701// and the request times out. If you make the request again with the
166702// same request ID, the server can check if original operation with the
166703// same request ID was received, and if so, will ignore the second
166704// request. This prevents clients from accidentally creating duplicate
166705// commitments.
166706//
166707// The request ID must be a valid UUID with the exception that zero UUID
166708// is not supported (00000000-0000-0000-0000-000000000000).
166709func (c *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcProxiesInsertCall {
166710	c.urlParams_.Set("requestId", requestId)
166711	return c
166712}
166713
166714// Fields allows partial responses to be retrieved. See
166715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166716// for more information.
166717func (c *TargetGrpcProxiesInsertCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesInsertCall {
166718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166719	return c
166720}
166721
166722// Context sets the context to be used in this call's Do method. Any
166723// pending HTTP request will be aborted if the provided context is
166724// canceled.
166725func (c *TargetGrpcProxiesInsertCall) Context(ctx context.Context) *TargetGrpcProxiesInsertCall {
166726	c.ctx_ = ctx
166727	return c
166728}
166729
166730// Header returns an http.Header that can be modified by the caller to
166731// add HTTP headers to the request.
166732func (c *TargetGrpcProxiesInsertCall) Header() http.Header {
166733	if c.header_ == nil {
166734		c.header_ = make(http.Header)
166735	}
166736	return c.header_
166737}
166738
166739func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
166740	reqHeaders := make(http.Header)
166741	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
166742	for k, v := range c.header_ {
166743		reqHeaders[k] = v
166744	}
166745	reqHeaders.Set("User-Agent", c.s.userAgent())
166746	var body io.Reader = nil
166747	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
166748	if err != nil {
166749		return nil, err
166750	}
166751	reqHeaders.Set("Content-Type", "application/json")
166752	c.urlParams_.Set("alt", alt)
166753	c.urlParams_.Set("prettyPrint", "false")
166754	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
166755	urls += "?" + c.urlParams_.Encode()
166756	req, err := http.NewRequest("POST", urls, body)
166757	if err != nil {
166758		return nil, err
166759	}
166760	req.Header = reqHeaders
166761	googleapi.Expand(req.URL, map[string]string{
166762		"project": c.project,
166763	})
166764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166765}
166766
166767// Do executes the "compute.targetGrpcProxies.insert" call.
166768// Exactly one of *Operation or error will be non-nil. Any non-2xx
166769// status code is an error. Response headers are in either
166770// *Operation.ServerResponse.Header or (if a response was returned at
166771// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166772// to check whether the returned error was because
166773// http.StatusNotModified was returned.
166774func (c *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166775	gensupport.SetOptions(c.urlParams_, opts...)
166776	res, err := c.doRequest("json")
166777	if res != nil && res.StatusCode == http.StatusNotModified {
166778		if res.Body != nil {
166779			res.Body.Close()
166780		}
166781		return nil, &googleapi.Error{
166782			Code:   res.StatusCode,
166783			Header: res.Header,
166784		}
166785	}
166786	if err != nil {
166787		return nil, err
166788	}
166789	defer googleapi.CloseBody(res)
166790	if err := googleapi.CheckResponse(res); err != nil {
166791		return nil, err
166792	}
166793	ret := &Operation{
166794		ServerResponse: googleapi.ServerResponse{
166795			Header:         res.Header,
166796			HTTPStatusCode: res.StatusCode,
166797		},
166798	}
166799	target := &ret
166800	if err := gensupport.DecodeResponse(target, res); err != nil {
166801		return nil, err
166802	}
166803	return ret, nil
166804	// {
166805	//   "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.",
166806	//   "httpMethod": "POST",
166807	//   "id": "compute.targetGrpcProxies.insert",
166808	//   "parameterOrder": [
166809	//     "project"
166810	//   ],
166811	//   "parameters": {
166812	//     "project": {
166813	//       "description": "Project ID for this request.",
166814	//       "location": "path",
166815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166816	//       "required": true,
166817	//       "type": "string"
166818	//     },
166819	//     "requestId": {
166820	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166821	//       "location": "query",
166822	//       "type": "string"
166823	//     }
166824	//   },
166825	//   "path": "projects/{project}/global/targetGrpcProxies",
166826	//   "request": {
166827	//     "$ref": "TargetGrpcProxy"
166828	//   },
166829	//   "response": {
166830	//     "$ref": "Operation"
166831	//   },
166832	//   "scopes": [
166833	//     "https://www.googleapis.com/auth/cloud-platform",
166834	//     "https://www.googleapis.com/auth/compute"
166835	//   ]
166836	// }
166837
166838}
166839
166840// method id "compute.targetGrpcProxies.list":
166841
166842type TargetGrpcProxiesListCall struct {
166843	s            *Service
166844	project      string
166845	urlParams_   gensupport.URLParams
166846	ifNoneMatch_ string
166847	ctx_         context.Context
166848	header_      http.Header
166849}
166850
166851// List: Lists the TargetGrpcProxies for a project in the given scope.
166852//
166853// - project: Project ID for this request.
166854func (r *TargetGrpcProxiesService) List(project string) *TargetGrpcProxiesListCall {
166855	c := &TargetGrpcProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166856	c.project = project
166857	return c
166858}
166859
166860// Filter sets the optional parameter "filter": A filter expression that
166861// filters resources listed in the response. The expression must specify
166862// the field name, a comparison operator, and the value that you want to
166863// use for filtering. The value must be a string, a number, or a
166864// boolean. The comparison operator must be either `=`, `!=`, `>`, or
166865// `<`.
166866//
166867// For example, if you are filtering Compute Engine instances, you can
166868// exclude instances named `example-instance` by specifying `name !=
166869// example-instance`.
166870//
166871// You can also filter nested fields. For example, you could specify
166872// `scheduling.automaticRestart = false` to include instances only if
166873// they are not scheduled for automatic restarts. You can use filtering
166874// on nested fields to filter based on resource labels.
166875//
166876// To filter on multiple expressions, provide each separate expression
166877// within parentheses. For example: ``` (scheduling.automaticRestart =
166878// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
166879// is an `AND` expression. However, you can include `AND` and `OR`
166880// expressions explicitly. For example: ``` (cpuPlatform = "Intel
166881// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
166882// (scheduling.automaticRestart = true) ```
166883func (c *TargetGrpcProxiesListCall) Filter(filter string) *TargetGrpcProxiesListCall {
166884	c.urlParams_.Set("filter", filter)
166885	return c
166886}
166887
166888// MaxResults sets the optional parameter "maxResults": The maximum
166889// number of results per page that should be returned. If the number of
166890// available results is larger than `maxResults`, Compute Engine returns
166891// a `nextPageToken` that can be used to get the next page of results in
166892// subsequent list requests. Acceptable values are `0` to `500`,
166893// inclusive. (Default: `500`)
166894func (c *TargetGrpcProxiesListCall) MaxResults(maxResults int64) *TargetGrpcProxiesListCall {
166895	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166896	return c
166897}
166898
166899// OrderBy sets the optional parameter "orderBy": Sorts list results by
166900// a certain order. By default, results are returned in alphanumerical
166901// order based on the resource name.
166902//
166903// You can also sort results in descending order based on the creation
166904// timestamp using `orderBy="creationTimestamp desc". This sorts
166905// results based on the `creationTimestamp` field in reverse
166906// chronological order (newest result first). Use this to sort resources
166907// like operations so that the newest operation is returned
166908// first.
166909//
166910// Currently, only sorting by `name` or `creationTimestamp desc` is
166911// supported.
166912func (c *TargetGrpcProxiesListCall) OrderBy(orderBy string) *TargetGrpcProxiesListCall {
166913	c.urlParams_.Set("orderBy", orderBy)
166914	return c
166915}
166916
166917// PageToken sets the optional parameter "pageToken": Specifies a page
166918// token to use. Set `pageToken` to the `nextPageToken` returned by a
166919// previous list request to get the next page of results.
166920func (c *TargetGrpcProxiesListCall) PageToken(pageToken string) *TargetGrpcProxiesListCall {
166921	c.urlParams_.Set("pageToken", pageToken)
166922	return c
166923}
166924
166925// ReturnPartialSuccess sets the optional parameter
166926// "returnPartialSuccess": Opt-in for partial success behavior which
166927// provides partial results in case of failure. The default value is
166928// false.
166929func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetGrpcProxiesListCall {
166930	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
166931	return c
166932}
166933
166934// Fields allows partial responses to be retrieved. See
166935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166936// for more information.
166937func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesListCall {
166938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166939	return c
166940}
166941
166942// IfNoneMatch sets the optional parameter which makes the operation
166943// fail if the object's ETag matches the given value. This is useful for
166944// getting updates only after the object has changed since the last
166945// request. Use googleapi.IsNotModified to check whether the response
166946// error from Do is the result of In-None-Match.
166947func (c *TargetGrpcProxiesListCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesListCall {
166948	c.ifNoneMatch_ = entityTag
166949	return c
166950}
166951
166952// Context sets the context to be used in this call's Do method. Any
166953// pending HTTP request will be aborted if the provided context is
166954// canceled.
166955func (c *TargetGrpcProxiesListCall) Context(ctx context.Context) *TargetGrpcProxiesListCall {
166956	c.ctx_ = ctx
166957	return c
166958}
166959
166960// Header returns an http.Header that can be modified by the caller to
166961// add HTTP headers to the request.
166962func (c *TargetGrpcProxiesListCall) Header() http.Header {
166963	if c.header_ == nil {
166964		c.header_ = make(http.Header)
166965	}
166966	return c.header_
166967}
166968
166969func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error) {
166970	reqHeaders := make(http.Header)
166971	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
166972	for k, v := range c.header_ {
166973		reqHeaders[k] = v
166974	}
166975	reqHeaders.Set("User-Agent", c.s.userAgent())
166976	if c.ifNoneMatch_ != "" {
166977		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166978	}
166979	var body io.Reader = nil
166980	c.urlParams_.Set("alt", alt)
166981	c.urlParams_.Set("prettyPrint", "false")
166982	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
166983	urls += "?" + c.urlParams_.Encode()
166984	req, err := http.NewRequest("GET", urls, body)
166985	if err != nil {
166986		return nil, err
166987	}
166988	req.Header = reqHeaders
166989	googleapi.Expand(req.URL, map[string]string{
166990		"project": c.project,
166991	})
166992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166993}
166994
166995// Do executes the "compute.targetGrpcProxies.list" call.
166996// Exactly one of *TargetGrpcProxyList or error will be non-nil. Any
166997// non-2xx status code is an error. Response headers are in either
166998// *TargetGrpcProxyList.ServerResponse.Header or (if a response was
166999// returned at all) in error.(*googleapi.Error).Header. Use
167000// googleapi.IsNotModified to check whether the returned error was
167001// because http.StatusNotModified was returned.
167002func (c *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxyList, error) {
167003	gensupport.SetOptions(c.urlParams_, opts...)
167004	res, err := c.doRequest("json")
167005	if res != nil && res.StatusCode == http.StatusNotModified {
167006		if res.Body != nil {
167007			res.Body.Close()
167008		}
167009		return nil, &googleapi.Error{
167010			Code:   res.StatusCode,
167011			Header: res.Header,
167012		}
167013	}
167014	if err != nil {
167015		return nil, err
167016	}
167017	defer googleapi.CloseBody(res)
167018	if err := googleapi.CheckResponse(res); err != nil {
167019		return nil, err
167020	}
167021	ret := &TargetGrpcProxyList{
167022		ServerResponse: googleapi.ServerResponse{
167023			Header:         res.Header,
167024			HTTPStatusCode: res.StatusCode,
167025		},
167026	}
167027	target := &ret
167028	if err := gensupport.DecodeResponse(target, res); err != nil {
167029		return nil, err
167030	}
167031	return ret, nil
167032	// {
167033	//   "description": "Lists the TargetGrpcProxies for a project in the given scope.",
167034	//   "httpMethod": "GET",
167035	//   "id": "compute.targetGrpcProxies.list",
167036	//   "parameterOrder": [
167037	//     "project"
167038	//   ],
167039	//   "parameters": {
167040	//     "filter": {
167041	//       "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) ```",
167042	//       "location": "query",
167043	//       "type": "string"
167044	//     },
167045	//     "maxResults": {
167046	//       "default": "500",
167047	//       "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`)",
167048	//       "format": "uint32",
167049	//       "location": "query",
167050	//       "minimum": "0",
167051	//       "type": "integer"
167052	//     },
167053	//     "orderBy": {
167054	//       "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.",
167055	//       "location": "query",
167056	//       "type": "string"
167057	//     },
167058	//     "pageToken": {
167059	//       "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.",
167060	//       "location": "query",
167061	//       "type": "string"
167062	//     },
167063	//     "project": {
167064	//       "description": "Project ID for this request.",
167065	//       "location": "path",
167066	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167067	//       "required": true,
167068	//       "type": "string"
167069	//     },
167070	//     "returnPartialSuccess": {
167071	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
167072	//       "location": "query",
167073	//       "type": "boolean"
167074	//     }
167075	//   },
167076	//   "path": "projects/{project}/global/targetGrpcProxies",
167077	//   "response": {
167078	//     "$ref": "TargetGrpcProxyList"
167079	//   },
167080	//   "scopes": [
167081	//     "https://www.googleapis.com/auth/cloud-platform",
167082	//     "https://www.googleapis.com/auth/compute",
167083	//     "https://www.googleapis.com/auth/compute.readonly"
167084	//   ]
167085	// }
167086
167087}
167088
167089// Pages invokes f for each page of results.
167090// A non-nil error returned from f will halt the iteration.
167091// The provided context supersedes any context provided to the Context method.
167092func (c *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrpcProxyList) error) error {
167093	c.ctx_ = ctx
167094	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167095	for {
167096		x, err := c.Do()
167097		if err != nil {
167098			return err
167099		}
167100		if err := f(x); err != nil {
167101			return err
167102		}
167103		if x.NextPageToken == "" {
167104			return nil
167105		}
167106		c.PageToken(x.NextPageToken)
167107	}
167108}
167109
167110// method id "compute.targetGrpcProxies.patch":
167111
167112type TargetGrpcProxiesPatchCall struct {
167113	s               *Service
167114	project         string
167115	targetGrpcProxy string
167116	targetgrpcproxy *TargetGrpcProxy
167117	urlParams_      gensupport.URLParams
167118	ctx_            context.Context
167119	header_         http.Header
167120}
167121
167122// Patch: Patches the specified TargetGrpcProxy resource with the data
167123// included in the request. This method supports PATCH semantics and
167124// uses JSON merge patch format and processing rules.
167125//
167126// - project: Project ID for this request.
167127// - targetGrpcProxy: Name of the TargetGrpcProxy resource to patch.
167128func (r *TargetGrpcProxiesService) Patch(project string, targetGrpcProxy string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesPatchCall {
167129	c := &TargetGrpcProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167130	c.project = project
167131	c.targetGrpcProxy = targetGrpcProxy
167132	c.targetgrpcproxy = targetgrpcproxy
167133	return c
167134}
167135
167136// RequestId sets the optional parameter "requestId": An optional
167137// request ID to identify requests. Specify a unique request ID so that
167138// if you must retry your request, the server will know to ignore the
167139// request if it has already been completed.
167140//
167141// For example, consider a situation where you make an initial request
167142// and the request times out. If you make the request again with the
167143// same request ID, the server can check if original operation with the
167144// same request ID was received, and if so, will ignore the second
167145// request. This prevents clients from accidentally creating duplicate
167146// commitments.
167147//
167148// The request ID must be a valid UUID with the exception that zero UUID
167149// is not supported (00000000-0000-0000-0000-000000000000).
167150func (c *TargetGrpcProxiesPatchCall) RequestId(requestId string) *TargetGrpcProxiesPatchCall {
167151	c.urlParams_.Set("requestId", requestId)
167152	return c
167153}
167154
167155// Fields allows partial responses to be retrieved. See
167156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167157// for more information.
167158func (c *TargetGrpcProxiesPatchCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesPatchCall {
167159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167160	return c
167161}
167162
167163// Context sets the context to be used in this call's Do method. Any
167164// pending HTTP request will be aborted if the provided context is
167165// canceled.
167166func (c *TargetGrpcProxiesPatchCall) Context(ctx context.Context) *TargetGrpcProxiesPatchCall {
167167	c.ctx_ = ctx
167168	return c
167169}
167170
167171// Header returns an http.Header that can be modified by the caller to
167172// add HTTP headers to the request.
167173func (c *TargetGrpcProxiesPatchCall) Header() http.Header {
167174	if c.header_ == nil {
167175		c.header_ = make(http.Header)
167176	}
167177	return c.header_
167178}
167179
167180func (c *TargetGrpcProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
167181	reqHeaders := make(http.Header)
167182	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
167183	for k, v := range c.header_ {
167184		reqHeaders[k] = v
167185	}
167186	reqHeaders.Set("User-Agent", c.s.userAgent())
167187	var body io.Reader = nil
167188	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
167189	if err != nil {
167190		return nil, err
167191	}
167192	reqHeaders.Set("Content-Type", "application/json")
167193	c.urlParams_.Set("alt", alt)
167194	c.urlParams_.Set("prettyPrint", "false")
167195	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
167196	urls += "?" + c.urlParams_.Encode()
167197	req, err := http.NewRequest("PATCH", urls, body)
167198	if err != nil {
167199		return nil, err
167200	}
167201	req.Header = reqHeaders
167202	googleapi.Expand(req.URL, map[string]string{
167203		"project":         c.project,
167204		"targetGrpcProxy": c.targetGrpcProxy,
167205	})
167206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167207}
167208
167209// Do executes the "compute.targetGrpcProxies.patch" call.
167210// Exactly one of *Operation or error will be non-nil. Any non-2xx
167211// status code is an error. Response headers are in either
167212// *Operation.ServerResponse.Header or (if a response was returned at
167213// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167214// to check whether the returned error was because
167215// http.StatusNotModified was returned.
167216func (c *TargetGrpcProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167217	gensupport.SetOptions(c.urlParams_, opts...)
167218	res, err := c.doRequest("json")
167219	if res != nil && res.StatusCode == http.StatusNotModified {
167220		if res.Body != nil {
167221			res.Body.Close()
167222		}
167223		return nil, &googleapi.Error{
167224			Code:   res.StatusCode,
167225			Header: res.Header,
167226		}
167227	}
167228	if err != nil {
167229		return nil, err
167230	}
167231	defer googleapi.CloseBody(res)
167232	if err := googleapi.CheckResponse(res); err != nil {
167233		return nil, err
167234	}
167235	ret := &Operation{
167236		ServerResponse: googleapi.ServerResponse{
167237			Header:         res.Header,
167238			HTTPStatusCode: res.StatusCode,
167239		},
167240	}
167241	target := &ret
167242	if err := gensupport.DecodeResponse(target, res); err != nil {
167243		return nil, err
167244	}
167245	return ret, nil
167246	// {
167247	//   "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.",
167248	//   "httpMethod": "PATCH",
167249	//   "id": "compute.targetGrpcProxies.patch",
167250	//   "parameterOrder": [
167251	//     "project",
167252	//     "targetGrpcProxy"
167253	//   ],
167254	//   "parameters": {
167255	//     "project": {
167256	//       "description": "Project ID for this request.",
167257	//       "location": "path",
167258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167259	//       "required": true,
167260	//       "type": "string"
167261	//     },
167262	//     "requestId": {
167263	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167264	//       "location": "query",
167265	//       "type": "string"
167266	//     },
167267	//     "targetGrpcProxy": {
167268	//       "description": "Name of the TargetGrpcProxy resource to patch.",
167269	//       "location": "path",
167270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167271	//       "required": true,
167272	//       "type": "string"
167273	//     }
167274	//   },
167275	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
167276	//   "request": {
167277	//     "$ref": "TargetGrpcProxy"
167278	//   },
167279	//   "response": {
167280	//     "$ref": "Operation"
167281	//   },
167282	//   "scopes": [
167283	//     "https://www.googleapis.com/auth/cloud-platform",
167284	//     "https://www.googleapis.com/auth/compute"
167285	//   ]
167286	// }
167287
167288}
167289
167290// method id "compute.targetGrpcProxies.testIamPermissions":
167291
167292type TargetGrpcProxiesTestIamPermissionsCall struct {
167293	s                      *Service
167294	project                string
167295	resource               string
167296	testpermissionsrequest *TestPermissionsRequest
167297	urlParams_             gensupport.URLParams
167298	ctx_                   context.Context
167299	header_                http.Header
167300}
167301
167302// TestIamPermissions: Returns permissions that a caller has on the
167303// specified resource.
167304//
167305// - project: Project ID for this request.
167306// - resource: Name or id of the resource for this request.
167307func (r *TargetGrpcProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetGrpcProxiesTestIamPermissionsCall {
167308	c := &TargetGrpcProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167309	c.project = project
167310	c.resource = resource
167311	c.testpermissionsrequest = testpermissionsrequest
167312	return c
167313}
167314
167315// Fields allows partial responses to be retrieved. See
167316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167317// for more information.
167318func (c *TargetGrpcProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesTestIamPermissionsCall {
167319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167320	return c
167321}
167322
167323// Context sets the context to be used in this call's Do method. Any
167324// pending HTTP request will be aborted if the provided context is
167325// canceled.
167326func (c *TargetGrpcProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetGrpcProxiesTestIamPermissionsCall {
167327	c.ctx_ = ctx
167328	return c
167329}
167330
167331// Header returns an http.Header that can be modified by the caller to
167332// add HTTP headers to the request.
167333func (c *TargetGrpcProxiesTestIamPermissionsCall) Header() http.Header {
167334	if c.header_ == nil {
167335		c.header_ = make(http.Header)
167336	}
167337	return c.header_
167338}
167339
167340func (c *TargetGrpcProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
167341	reqHeaders := make(http.Header)
167342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
167343	for k, v := range c.header_ {
167344		reqHeaders[k] = v
167345	}
167346	reqHeaders.Set("User-Agent", c.s.userAgent())
167347	var body io.Reader = nil
167348	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
167349	if err != nil {
167350		return nil, err
167351	}
167352	reqHeaders.Set("Content-Type", "application/json")
167353	c.urlParams_.Set("alt", alt)
167354	c.urlParams_.Set("prettyPrint", "false")
167355	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{resource}/testIamPermissions")
167356	urls += "?" + c.urlParams_.Encode()
167357	req, err := http.NewRequest("POST", urls, body)
167358	if err != nil {
167359		return nil, err
167360	}
167361	req.Header = reqHeaders
167362	googleapi.Expand(req.URL, map[string]string{
167363		"project":  c.project,
167364		"resource": c.resource,
167365	})
167366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167367}
167368
167369// Do executes the "compute.targetGrpcProxies.testIamPermissions" call.
167370// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
167371// non-2xx status code is an error. Response headers are in either
167372// *TestPermissionsResponse.ServerResponse.Header or (if a response was
167373// returned at all) in error.(*googleapi.Error).Header. Use
167374// googleapi.IsNotModified to check whether the returned error was
167375// because http.StatusNotModified was returned.
167376func (c *TargetGrpcProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
167377	gensupport.SetOptions(c.urlParams_, opts...)
167378	res, err := c.doRequest("json")
167379	if res != nil && res.StatusCode == http.StatusNotModified {
167380		if res.Body != nil {
167381			res.Body.Close()
167382		}
167383		return nil, &googleapi.Error{
167384			Code:   res.StatusCode,
167385			Header: res.Header,
167386		}
167387	}
167388	if err != nil {
167389		return nil, err
167390	}
167391	defer googleapi.CloseBody(res)
167392	if err := googleapi.CheckResponse(res); err != nil {
167393		return nil, err
167394	}
167395	ret := &TestPermissionsResponse{
167396		ServerResponse: googleapi.ServerResponse{
167397			Header:         res.Header,
167398			HTTPStatusCode: res.StatusCode,
167399		},
167400	}
167401	target := &ret
167402	if err := gensupport.DecodeResponse(target, res); err != nil {
167403		return nil, err
167404	}
167405	return ret, nil
167406	// {
167407	//   "description": "Returns permissions that a caller has on the specified resource.",
167408	//   "httpMethod": "POST",
167409	//   "id": "compute.targetGrpcProxies.testIamPermissions",
167410	//   "parameterOrder": [
167411	//     "project",
167412	//     "resource"
167413	//   ],
167414	//   "parameters": {
167415	//     "project": {
167416	//       "description": "Project ID for this request.",
167417	//       "location": "path",
167418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167419	//       "required": true,
167420	//       "type": "string"
167421	//     },
167422	//     "resource": {
167423	//       "description": "Name or id of the resource for this request.",
167424	//       "location": "path",
167425	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167426	//       "required": true,
167427	//       "type": "string"
167428	//     }
167429	//   },
167430	//   "path": "projects/{project}/global/targetGrpcProxies/{resource}/testIamPermissions",
167431	//   "request": {
167432	//     "$ref": "TestPermissionsRequest"
167433	//   },
167434	//   "response": {
167435	//     "$ref": "TestPermissionsResponse"
167436	//   },
167437	//   "scopes": [
167438	//     "https://www.googleapis.com/auth/cloud-platform",
167439	//     "https://www.googleapis.com/auth/compute",
167440	//     "https://www.googleapis.com/auth/compute.readonly"
167441	//   ]
167442	// }
167443
167444}
167445
167446// method id "compute.targetHttpProxies.aggregatedList":
167447
167448type TargetHttpProxiesAggregatedListCall struct {
167449	s            *Service
167450	project      string
167451	urlParams_   gensupport.URLParams
167452	ifNoneMatch_ string
167453	ctx_         context.Context
167454	header_      http.Header
167455}
167456
167457// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
167458// regional and global, available to the specified project.
167459//
167460// - project: Name of the project scoping this request.
167461func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
167462	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167463	c.project = project
167464	return c
167465}
167466
167467// Filter sets the optional parameter "filter": A filter expression that
167468// filters resources listed in the response. The expression must specify
167469// the field name, a comparison operator, and the value that you want to
167470// use for filtering. The value must be a string, a number, or a
167471// boolean. The comparison operator must be either `=`, `!=`, `>`, or
167472// `<`.
167473//
167474// For example, if you are filtering Compute Engine instances, you can
167475// exclude instances named `example-instance` by specifying `name !=
167476// example-instance`.
167477//
167478// You can also filter nested fields. For example, you could specify
167479// `scheduling.automaticRestart = false` to include instances only if
167480// they are not scheduled for automatic restarts. You can use filtering
167481// on nested fields to filter based on resource labels.
167482//
167483// To filter on multiple expressions, provide each separate expression
167484// within parentheses. For example: ``` (scheduling.automaticRestart =
167485// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
167486// is an `AND` expression. However, you can include `AND` and `OR`
167487// expressions explicitly. For example: ``` (cpuPlatform = "Intel
167488// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
167489// (scheduling.automaticRestart = true) ```
167490func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
167491	c.urlParams_.Set("filter", filter)
167492	return c
167493}
167494
167495// IncludeAllScopes sets the optional parameter "includeAllScopes":
167496// Indicates whether every visible scope for each scope type (zone,
167497// region, global) should be included in the response. For new resource
167498// types added after this field, the flag has no effect as new resource
167499// types will always include every visible scope for each scope type in
167500// response. For resource types which predate this field, if this flag
167501// is omitted or false, only scopes of the scope types where the
167502// resource type is expected to be found will be included.
167503func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
167504	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
167505	return c
167506}
167507
167508// MaxResults sets the optional parameter "maxResults": The maximum
167509// number of results per page that should be returned. If the number of
167510// available results is larger than `maxResults`, Compute Engine returns
167511// a `nextPageToken` that can be used to get the next page of results in
167512// subsequent list requests. Acceptable values are `0` to `500`,
167513// inclusive. (Default: `500`)
167514func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
167515	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
167516	return c
167517}
167518
167519// OrderBy sets the optional parameter "orderBy": Sorts list results by
167520// a certain order. By default, results are returned in alphanumerical
167521// order based on the resource name.
167522//
167523// You can also sort results in descending order based on the creation
167524// timestamp using `orderBy="creationTimestamp desc". This sorts
167525// results based on the `creationTimestamp` field in reverse
167526// chronological order (newest result first). Use this to sort resources
167527// like operations so that the newest operation is returned
167528// first.
167529//
167530// Currently, only sorting by `name` or `creationTimestamp desc` is
167531// supported.
167532func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
167533	c.urlParams_.Set("orderBy", orderBy)
167534	return c
167535}
167536
167537// PageToken sets the optional parameter "pageToken": Specifies a page
167538// token to use. Set `pageToken` to the `nextPageToken` returned by a
167539// previous list request to get the next page of results.
167540func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
167541	c.urlParams_.Set("pageToken", pageToken)
167542	return c
167543}
167544
167545// ReturnPartialSuccess sets the optional parameter
167546// "returnPartialSuccess": Opt-in for partial success behavior which
167547// provides partial results in case of failure. The default value is
167548// false.
167549func (c *TargetHttpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesAggregatedListCall {
167550	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
167551	return c
167552}
167553
167554// Fields allows partial responses to be retrieved. See
167555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167556// for more information.
167557func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
167558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167559	return c
167560}
167561
167562// IfNoneMatch sets the optional parameter which makes the operation
167563// fail if the object's ETag matches the given value. This is useful for
167564// getting updates only after the object has changed since the last
167565// request. Use googleapi.IsNotModified to check whether the response
167566// error from Do is the result of In-None-Match.
167567func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
167568	c.ifNoneMatch_ = entityTag
167569	return c
167570}
167571
167572// Context sets the context to be used in this call's Do method. Any
167573// pending HTTP request will be aborted if the provided context is
167574// canceled.
167575func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
167576	c.ctx_ = ctx
167577	return c
167578}
167579
167580// Header returns an http.Header that can be modified by the caller to
167581// add HTTP headers to the request.
167582func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
167583	if c.header_ == nil {
167584		c.header_ = make(http.Header)
167585	}
167586	return c.header_
167587}
167588
167589func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
167590	reqHeaders := make(http.Header)
167591	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
167592	for k, v := range c.header_ {
167593		reqHeaders[k] = v
167594	}
167595	reqHeaders.Set("User-Agent", c.s.userAgent())
167596	if c.ifNoneMatch_ != "" {
167597		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167598	}
167599	var body io.Reader = nil
167600	c.urlParams_.Set("alt", alt)
167601	c.urlParams_.Set("prettyPrint", "false")
167602	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpProxies")
167603	urls += "?" + c.urlParams_.Encode()
167604	req, err := http.NewRequest("GET", urls, body)
167605	if err != nil {
167606		return nil, err
167607	}
167608	req.Header = reqHeaders
167609	googleapi.Expand(req.URL, map[string]string{
167610		"project": c.project,
167611	})
167612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167613}
167614
167615// Do executes the "compute.targetHttpProxies.aggregatedList" call.
167616// Exactly one of *TargetHttpProxyAggregatedList or error will be
167617// non-nil. Any non-2xx status code is an error. Response headers are in
167618// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
167619// response was returned at all) in error.(*googleapi.Error).Header. Use
167620// googleapi.IsNotModified to check whether the returned error was
167621// because http.StatusNotModified was returned.
167622func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
167623	gensupport.SetOptions(c.urlParams_, opts...)
167624	res, err := c.doRequest("json")
167625	if res != nil && res.StatusCode == http.StatusNotModified {
167626		if res.Body != nil {
167627			res.Body.Close()
167628		}
167629		return nil, &googleapi.Error{
167630			Code:   res.StatusCode,
167631			Header: res.Header,
167632		}
167633	}
167634	if err != nil {
167635		return nil, err
167636	}
167637	defer googleapi.CloseBody(res)
167638	if err := googleapi.CheckResponse(res); err != nil {
167639		return nil, err
167640	}
167641	ret := &TargetHttpProxyAggregatedList{
167642		ServerResponse: googleapi.ServerResponse{
167643			Header:         res.Header,
167644			HTTPStatusCode: res.StatusCode,
167645		},
167646	}
167647	target := &ret
167648	if err := gensupport.DecodeResponse(target, res); err != nil {
167649		return nil, err
167650	}
167651	return ret, nil
167652	// {
167653	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
167654	//   "httpMethod": "GET",
167655	//   "id": "compute.targetHttpProxies.aggregatedList",
167656	//   "parameterOrder": [
167657	//     "project"
167658	//   ],
167659	//   "parameters": {
167660	//     "filter": {
167661	//       "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) ```",
167662	//       "location": "query",
167663	//       "type": "string"
167664	//     },
167665	//     "includeAllScopes": {
167666	//       "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.",
167667	//       "location": "query",
167668	//       "type": "boolean"
167669	//     },
167670	//     "maxResults": {
167671	//       "default": "500",
167672	//       "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`)",
167673	//       "format": "uint32",
167674	//       "location": "query",
167675	//       "minimum": "0",
167676	//       "type": "integer"
167677	//     },
167678	//     "orderBy": {
167679	//       "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.",
167680	//       "location": "query",
167681	//       "type": "string"
167682	//     },
167683	//     "pageToken": {
167684	//       "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.",
167685	//       "location": "query",
167686	//       "type": "string"
167687	//     },
167688	//     "project": {
167689	//       "description": "Name of the project scoping this request.",
167690	//       "location": "path",
167691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167692	//       "required": true,
167693	//       "type": "string"
167694	//     },
167695	//     "returnPartialSuccess": {
167696	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
167697	//       "location": "query",
167698	//       "type": "boolean"
167699	//     }
167700	//   },
167701	//   "path": "projects/{project}/aggregated/targetHttpProxies",
167702	//   "response": {
167703	//     "$ref": "TargetHttpProxyAggregatedList"
167704	//   },
167705	//   "scopes": [
167706	//     "https://www.googleapis.com/auth/cloud-platform",
167707	//     "https://www.googleapis.com/auth/compute",
167708	//     "https://www.googleapis.com/auth/compute.readonly"
167709	//   ]
167710	// }
167711
167712}
167713
167714// Pages invokes f for each page of results.
167715// A non-nil error returned from f will halt the iteration.
167716// The provided context supersedes any context provided to the Context method.
167717func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
167718	c.ctx_ = ctx
167719	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167720	for {
167721		x, err := c.Do()
167722		if err != nil {
167723			return err
167724		}
167725		if err := f(x); err != nil {
167726			return err
167727		}
167728		if x.NextPageToken == "" {
167729			return nil
167730		}
167731		c.PageToken(x.NextPageToken)
167732	}
167733}
167734
167735// method id "compute.targetHttpProxies.delete":
167736
167737type TargetHttpProxiesDeleteCall struct {
167738	s               *Service
167739	project         string
167740	targetHttpProxy string
167741	urlParams_      gensupport.URLParams
167742	ctx_            context.Context
167743	header_         http.Header
167744}
167745
167746// Delete: Deletes the specified TargetHttpProxy resource.
167747//
167748// - project: Project ID for this request.
167749// - targetHttpProxy: Name of the TargetHttpProxy resource to delete.
167750// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
167751func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
167752	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167753	c.project = project
167754	c.targetHttpProxy = targetHttpProxy
167755	return c
167756}
167757
167758// RequestId sets the optional parameter "requestId": An optional
167759// request ID to identify requests. Specify a unique request ID so that
167760// if you must retry your request, the server will know to ignore the
167761// request if it has already been completed.
167762//
167763// For example, consider a situation where you make an initial request
167764// and the request times out. If you make the request again with the
167765// same request ID, the server can check if original operation with the
167766// same request ID was received, and if so, will ignore the second
167767// request. This prevents clients from accidentally creating duplicate
167768// commitments.
167769//
167770// The request ID must be a valid UUID with the exception that zero UUID
167771// is not supported (00000000-0000-0000-0000-000000000000).
167772func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
167773	c.urlParams_.Set("requestId", requestId)
167774	return c
167775}
167776
167777// Fields allows partial responses to be retrieved. See
167778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167779// for more information.
167780func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
167781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167782	return c
167783}
167784
167785// Context sets the context to be used in this call's Do method. Any
167786// pending HTTP request will be aborted if the provided context is
167787// canceled.
167788func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
167789	c.ctx_ = ctx
167790	return c
167791}
167792
167793// Header returns an http.Header that can be modified by the caller to
167794// add HTTP headers to the request.
167795func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
167796	if c.header_ == nil {
167797		c.header_ = make(http.Header)
167798	}
167799	return c.header_
167800}
167801
167802func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
167803	reqHeaders := make(http.Header)
167804	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
167805	for k, v := range c.header_ {
167806		reqHeaders[k] = v
167807	}
167808	reqHeaders.Set("User-Agent", c.s.userAgent())
167809	var body io.Reader = nil
167810	c.urlParams_.Set("alt", alt)
167811	c.urlParams_.Set("prettyPrint", "false")
167812	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
167813	urls += "?" + c.urlParams_.Encode()
167814	req, err := http.NewRequest("DELETE", urls, body)
167815	if err != nil {
167816		return nil, err
167817	}
167818	req.Header = reqHeaders
167819	googleapi.Expand(req.URL, map[string]string{
167820		"project":         c.project,
167821		"targetHttpProxy": c.targetHttpProxy,
167822	})
167823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167824}
167825
167826// Do executes the "compute.targetHttpProxies.delete" call.
167827// Exactly one of *Operation or error will be non-nil. Any non-2xx
167828// status code is an error. Response headers are in either
167829// *Operation.ServerResponse.Header or (if a response was returned at
167830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167831// to check whether the returned error was because
167832// http.StatusNotModified was returned.
167833func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167834	gensupport.SetOptions(c.urlParams_, opts...)
167835	res, err := c.doRequest("json")
167836	if res != nil && res.StatusCode == http.StatusNotModified {
167837		if res.Body != nil {
167838			res.Body.Close()
167839		}
167840		return nil, &googleapi.Error{
167841			Code:   res.StatusCode,
167842			Header: res.Header,
167843		}
167844	}
167845	if err != nil {
167846		return nil, err
167847	}
167848	defer googleapi.CloseBody(res)
167849	if err := googleapi.CheckResponse(res); err != nil {
167850		return nil, err
167851	}
167852	ret := &Operation{
167853		ServerResponse: googleapi.ServerResponse{
167854			Header:         res.Header,
167855			HTTPStatusCode: res.StatusCode,
167856		},
167857	}
167858	target := &ret
167859	if err := gensupport.DecodeResponse(target, res); err != nil {
167860		return nil, err
167861	}
167862	return ret, nil
167863	// {
167864	//   "description": "Deletes the specified TargetHttpProxy resource.",
167865	//   "httpMethod": "DELETE",
167866	//   "id": "compute.targetHttpProxies.delete",
167867	//   "parameterOrder": [
167868	//     "project",
167869	//     "targetHttpProxy"
167870	//   ],
167871	//   "parameters": {
167872	//     "project": {
167873	//       "description": "Project ID for this request.",
167874	//       "location": "path",
167875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167876	//       "required": true,
167877	//       "type": "string"
167878	//     },
167879	//     "requestId": {
167880	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167881	//       "location": "query",
167882	//       "type": "string"
167883	//     },
167884	//     "targetHttpProxy": {
167885	//       "description": "Name of the TargetHttpProxy resource to delete.",
167886	//       "location": "path",
167887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167888	//       "required": true,
167889	//       "type": "string"
167890	//     }
167891	//   },
167892	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
167893	//   "response": {
167894	//     "$ref": "Operation"
167895	//   },
167896	//   "scopes": [
167897	//     "https://www.googleapis.com/auth/cloud-platform",
167898	//     "https://www.googleapis.com/auth/compute"
167899	//   ]
167900	// }
167901
167902}
167903
167904// method id "compute.targetHttpProxies.get":
167905
167906type TargetHttpProxiesGetCall struct {
167907	s               *Service
167908	project         string
167909	targetHttpProxy string
167910	urlParams_      gensupport.URLParams
167911	ifNoneMatch_    string
167912	ctx_            context.Context
167913	header_         http.Header
167914}
167915
167916// Get: Returns the specified TargetHttpProxy resource. Gets a list of
167917// available target HTTP proxies by making a list() request.
167918//
167919// - project: Project ID for this request.
167920// - targetHttpProxy: Name of the TargetHttpProxy resource to return.
167921// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
167922func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
167923	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167924	c.project = project
167925	c.targetHttpProxy = targetHttpProxy
167926	return c
167927}
167928
167929// Fields allows partial responses to be retrieved. See
167930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167931// for more information.
167932func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
167933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167934	return c
167935}
167936
167937// IfNoneMatch sets the optional parameter which makes the operation
167938// fail if the object's ETag matches the given value. This is useful for
167939// getting updates only after the object has changed since the last
167940// request. Use googleapi.IsNotModified to check whether the response
167941// error from Do is the result of In-None-Match.
167942func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
167943	c.ifNoneMatch_ = entityTag
167944	return c
167945}
167946
167947// Context sets the context to be used in this call's Do method. Any
167948// pending HTTP request will be aborted if the provided context is
167949// canceled.
167950func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
167951	c.ctx_ = ctx
167952	return c
167953}
167954
167955// Header returns an http.Header that can be modified by the caller to
167956// add HTTP headers to the request.
167957func (c *TargetHttpProxiesGetCall) Header() http.Header {
167958	if c.header_ == nil {
167959		c.header_ = make(http.Header)
167960	}
167961	return c.header_
167962}
167963
167964func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
167965	reqHeaders := make(http.Header)
167966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
167967	for k, v := range c.header_ {
167968		reqHeaders[k] = v
167969	}
167970	reqHeaders.Set("User-Agent", c.s.userAgent())
167971	if c.ifNoneMatch_ != "" {
167972		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167973	}
167974	var body io.Reader = nil
167975	c.urlParams_.Set("alt", alt)
167976	c.urlParams_.Set("prettyPrint", "false")
167977	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
167978	urls += "?" + c.urlParams_.Encode()
167979	req, err := http.NewRequest("GET", urls, body)
167980	if err != nil {
167981		return nil, err
167982	}
167983	req.Header = reqHeaders
167984	googleapi.Expand(req.URL, map[string]string{
167985		"project":         c.project,
167986		"targetHttpProxy": c.targetHttpProxy,
167987	})
167988	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167989}
167990
167991// Do executes the "compute.targetHttpProxies.get" call.
167992// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
167993// status code is an error. Response headers are in either
167994// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
167995// at all) in error.(*googleapi.Error).Header. Use
167996// googleapi.IsNotModified to check whether the returned error was
167997// because http.StatusNotModified was returned.
167998func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
167999	gensupport.SetOptions(c.urlParams_, opts...)
168000	res, err := c.doRequest("json")
168001	if res != nil && res.StatusCode == http.StatusNotModified {
168002		if res.Body != nil {
168003			res.Body.Close()
168004		}
168005		return nil, &googleapi.Error{
168006			Code:   res.StatusCode,
168007			Header: res.Header,
168008		}
168009	}
168010	if err != nil {
168011		return nil, err
168012	}
168013	defer googleapi.CloseBody(res)
168014	if err := googleapi.CheckResponse(res); err != nil {
168015		return nil, err
168016	}
168017	ret := &TargetHttpProxy{
168018		ServerResponse: googleapi.ServerResponse{
168019			Header:         res.Header,
168020			HTTPStatusCode: res.StatusCode,
168021		},
168022	}
168023	target := &ret
168024	if err := gensupport.DecodeResponse(target, res); err != nil {
168025		return nil, err
168026	}
168027	return ret, nil
168028	// {
168029	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
168030	//   "httpMethod": "GET",
168031	//   "id": "compute.targetHttpProxies.get",
168032	//   "parameterOrder": [
168033	//     "project",
168034	//     "targetHttpProxy"
168035	//   ],
168036	//   "parameters": {
168037	//     "project": {
168038	//       "description": "Project ID for this request.",
168039	//       "location": "path",
168040	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168041	//       "required": true,
168042	//       "type": "string"
168043	//     },
168044	//     "targetHttpProxy": {
168045	//       "description": "Name of the TargetHttpProxy resource to return.",
168046	//       "location": "path",
168047	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168048	//       "required": true,
168049	//       "type": "string"
168050	//     }
168051	//   },
168052	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
168053	//   "response": {
168054	//     "$ref": "TargetHttpProxy"
168055	//   },
168056	//   "scopes": [
168057	//     "https://www.googleapis.com/auth/cloud-platform",
168058	//     "https://www.googleapis.com/auth/compute",
168059	//     "https://www.googleapis.com/auth/compute.readonly"
168060	//   ]
168061	// }
168062
168063}
168064
168065// method id "compute.targetHttpProxies.insert":
168066
168067type TargetHttpProxiesInsertCall struct {
168068	s               *Service
168069	project         string
168070	targethttpproxy *TargetHttpProxy
168071	urlParams_      gensupport.URLParams
168072	ctx_            context.Context
168073	header_         http.Header
168074}
168075
168076// Insert: Creates a TargetHttpProxy resource in the specified project
168077// using the data included in the request.
168078//
168079// - project: Project ID for this request.
168080// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
168081func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
168082	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168083	c.project = project
168084	c.targethttpproxy = targethttpproxy
168085	return c
168086}
168087
168088// RequestId sets the optional parameter "requestId": An optional
168089// request ID to identify requests. Specify a unique request ID so that
168090// if you must retry your request, the server will know to ignore the
168091// request if it has already been completed.
168092//
168093// For example, consider a situation where you make an initial request
168094// and the request times out. If you make the request again with the
168095// same request ID, the server can check if original operation with the
168096// same request ID was received, and if so, will ignore the second
168097// request. This prevents clients from accidentally creating duplicate
168098// commitments.
168099//
168100// The request ID must be a valid UUID with the exception that zero UUID
168101// is not supported (00000000-0000-0000-0000-000000000000).
168102func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
168103	c.urlParams_.Set("requestId", requestId)
168104	return c
168105}
168106
168107// Fields allows partial responses to be retrieved. See
168108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168109// for more information.
168110func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
168111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168112	return c
168113}
168114
168115// Context sets the context to be used in this call's Do method. Any
168116// pending HTTP request will be aborted if the provided context is
168117// canceled.
168118func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
168119	c.ctx_ = ctx
168120	return c
168121}
168122
168123// Header returns an http.Header that can be modified by the caller to
168124// add HTTP headers to the request.
168125func (c *TargetHttpProxiesInsertCall) Header() http.Header {
168126	if c.header_ == nil {
168127		c.header_ = make(http.Header)
168128	}
168129	return c.header_
168130}
168131
168132func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
168133	reqHeaders := make(http.Header)
168134	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
168135	for k, v := range c.header_ {
168136		reqHeaders[k] = v
168137	}
168138	reqHeaders.Set("User-Agent", c.s.userAgent())
168139	var body io.Reader = nil
168140	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
168141	if err != nil {
168142		return nil, err
168143	}
168144	reqHeaders.Set("Content-Type", "application/json")
168145	c.urlParams_.Set("alt", alt)
168146	c.urlParams_.Set("prettyPrint", "false")
168147	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
168148	urls += "?" + c.urlParams_.Encode()
168149	req, err := http.NewRequest("POST", urls, body)
168150	if err != nil {
168151		return nil, err
168152	}
168153	req.Header = reqHeaders
168154	googleapi.Expand(req.URL, map[string]string{
168155		"project": c.project,
168156	})
168157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168158}
168159
168160// Do executes the "compute.targetHttpProxies.insert" call.
168161// Exactly one of *Operation or error will be non-nil. Any non-2xx
168162// status code is an error. Response headers are in either
168163// *Operation.ServerResponse.Header or (if a response was returned at
168164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168165// to check whether the returned error was because
168166// http.StatusNotModified was returned.
168167func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168168	gensupport.SetOptions(c.urlParams_, opts...)
168169	res, err := c.doRequest("json")
168170	if res != nil && res.StatusCode == http.StatusNotModified {
168171		if res.Body != nil {
168172			res.Body.Close()
168173		}
168174		return nil, &googleapi.Error{
168175			Code:   res.StatusCode,
168176			Header: res.Header,
168177		}
168178	}
168179	if err != nil {
168180		return nil, err
168181	}
168182	defer googleapi.CloseBody(res)
168183	if err := googleapi.CheckResponse(res); err != nil {
168184		return nil, err
168185	}
168186	ret := &Operation{
168187		ServerResponse: googleapi.ServerResponse{
168188			Header:         res.Header,
168189			HTTPStatusCode: res.StatusCode,
168190		},
168191	}
168192	target := &ret
168193	if err := gensupport.DecodeResponse(target, res); err != nil {
168194		return nil, err
168195	}
168196	return ret, nil
168197	// {
168198	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
168199	//   "httpMethod": "POST",
168200	//   "id": "compute.targetHttpProxies.insert",
168201	//   "parameterOrder": [
168202	//     "project"
168203	//   ],
168204	//   "parameters": {
168205	//     "project": {
168206	//       "description": "Project ID for this request.",
168207	//       "location": "path",
168208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168209	//       "required": true,
168210	//       "type": "string"
168211	//     },
168212	//     "requestId": {
168213	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168214	//       "location": "query",
168215	//       "type": "string"
168216	//     }
168217	//   },
168218	//   "path": "projects/{project}/global/targetHttpProxies",
168219	//   "request": {
168220	//     "$ref": "TargetHttpProxy"
168221	//   },
168222	//   "response": {
168223	//     "$ref": "Operation"
168224	//   },
168225	//   "scopes": [
168226	//     "https://www.googleapis.com/auth/cloud-platform",
168227	//     "https://www.googleapis.com/auth/compute"
168228	//   ]
168229	// }
168230
168231}
168232
168233// method id "compute.targetHttpProxies.list":
168234
168235type TargetHttpProxiesListCall struct {
168236	s            *Service
168237	project      string
168238	urlParams_   gensupport.URLParams
168239	ifNoneMatch_ string
168240	ctx_         context.Context
168241	header_      http.Header
168242}
168243
168244// List: Retrieves the list of TargetHttpProxy resources available to
168245// the specified project.
168246//
168247// - project: Project ID for this request.
168248// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
168249func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
168250	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168251	c.project = project
168252	return c
168253}
168254
168255// Filter sets the optional parameter "filter": A filter expression that
168256// filters resources listed in the response. The expression must specify
168257// the field name, a comparison operator, and the value that you want to
168258// use for filtering. The value must be a string, a number, or a
168259// boolean. The comparison operator must be either `=`, `!=`, `>`, or
168260// `<`.
168261//
168262// For example, if you are filtering Compute Engine instances, you can
168263// exclude instances named `example-instance` by specifying `name !=
168264// example-instance`.
168265//
168266// You can also filter nested fields. For example, you could specify
168267// `scheduling.automaticRestart = false` to include instances only if
168268// they are not scheduled for automatic restarts. You can use filtering
168269// on nested fields to filter based on resource labels.
168270//
168271// To filter on multiple expressions, provide each separate expression
168272// within parentheses. For example: ``` (scheduling.automaticRestart =
168273// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
168274// is an `AND` expression. However, you can include `AND` and `OR`
168275// expressions explicitly. For example: ``` (cpuPlatform = "Intel
168276// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
168277// (scheduling.automaticRestart = true) ```
168278func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
168279	c.urlParams_.Set("filter", filter)
168280	return c
168281}
168282
168283// MaxResults sets the optional parameter "maxResults": The maximum
168284// number of results per page that should be returned. If the number of
168285// available results is larger than `maxResults`, Compute Engine returns
168286// a `nextPageToken` that can be used to get the next page of results in
168287// subsequent list requests. Acceptable values are `0` to `500`,
168288// inclusive. (Default: `500`)
168289func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
168290	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168291	return c
168292}
168293
168294// OrderBy sets the optional parameter "orderBy": Sorts list results by
168295// a certain order. By default, results are returned in alphanumerical
168296// order based on the resource name.
168297//
168298// You can also sort results in descending order based on the creation
168299// timestamp using `orderBy="creationTimestamp desc". This sorts
168300// results based on the `creationTimestamp` field in reverse
168301// chronological order (newest result first). Use this to sort resources
168302// like operations so that the newest operation is returned
168303// first.
168304//
168305// Currently, only sorting by `name` or `creationTimestamp desc` is
168306// supported.
168307func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
168308	c.urlParams_.Set("orderBy", orderBy)
168309	return c
168310}
168311
168312// PageToken sets the optional parameter "pageToken": Specifies a page
168313// token to use. Set `pageToken` to the `nextPageToken` returned by a
168314// previous list request to get the next page of results.
168315func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
168316	c.urlParams_.Set("pageToken", pageToken)
168317	return c
168318}
168319
168320// ReturnPartialSuccess sets the optional parameter
168321// "returnPartialSuccess": Opt-in for partial success behavior which
168322// provides partial results in case of failure. The default value is
168323// false.
168324func (c *TargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesListCall {
168325	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
168326	return c
168327}
168328
168329// Fields allows partial responses to be retrieved. See
168330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168331// for more information.
168332func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
168333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168334	return c
168335}
168336
168337// IfNoneMatch sets the optional parameter which makes the operation
168338// fail if the object's ETag matches the given value. This is useful for
168339// getting updates only after the object has changed since the last
168340// request. Use googleapi.IsNotModified to check whether the response
168341// error from Do is the result of In-None-Match.
168342func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
168343	c.ifNoneMatch_ = entityTag
168344	return c
168345}
168346
168347// Context sets the context to be used in this call's Do method. Any
168348// pending HTTP request will be aborted if the provided context is
168349// canceled.
168350func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
168351	c.ctx_ = ctx
168352	return c
168353}
168354
168355// Header returns an http.Header that can be modified by the caller to
168356// add HTTP headers to the request.
168357func (c *TargetHttpProxiesListCall) Header() http.Header {
168358	if c.header_ == nil {
168359		c.header_ = make(http.Header)
168360	}
168361	return c.header_
168362}
168363
168364func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
168365	reqHeaders := make(http.Header)
168366	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
168367	for k, v := range c.header_ {
168368		reqHeaders[k] = v
168369	}
168370	reqHeaders.Set("User-Agent", c.s.userAgent())
168371	if c.ifNoneMatch_ != "" {
168372		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168373	}
168374	var body io.Reader = nil
168375	c.urlParams_.Set("alt", alt)
168376	c.urlParams_.Set("prettyPrint", "false")
168377	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
168378	urls += "?" + c.urlParams_.Encode()
168379	req, err := http.NewRequest("GET", urls, body)
168380	if err != nil {
168381		return nil, err
168382	}
168383	req.Header = reqHeaders
168384	googleapi.Expand(req.URL, map[string]string{
168385		"project": c.project,
168386	})
168387	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168388}
168389
168390// Do executes the "compute.targetHttpProxies.list" call.
168391// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
168392// non-2xx status code is an error. Response headers are in either
168393// *TargetHttpProxyList.ServerResponse.Header or (if a response was
168394// returned at all) in error.(*googleapi.Error).Header. Use
168395// googleapi.IsNotModified to check whether the returned error was
168396// because http.StatusNotModified was returned.
168397func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
168398	gensupport.SetOptions(c.urlParams_, opts...)
168399	res, err := c.doRequest("json")
168400	if res != nil && res.StatusCode == http.StatusNotModified {
168401		if res.Body != nil {
168402			res.Body.Close()
168403		}
168404		return nil, &googleapi.Error{
168405			Code:   res.StatusCode,
168406			Header: res.Header,
168407		}
168408	}
168409	if err != nil {
168410		return nil, err
168411	}
168412	defer googleapi.CloseBody(res)
168413	if err := googleapi.CheckResponse(res); err != nil {
168414		return nil, err
168415	}
168416	ret := &TargetHttpProxyList{
168417		ServerResponse: googleapi.ServerResponse{
168418			Header:         res.Header,
168419			HTTPStatusCode: res.StatusCode,
168420		},
168421	}
168422	target := &ret
168423	if err := gensupport.DecodeResponse(target, res); err != nil {
168424		return nil, err
168425	}
168426	return ret, nil
168427	// {
168428	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
168429	//   "httpMethod": "GET",
168430	//   "id": "compute.targetHttpProxies.list",
168431	//   "parameterOrder": [
168432	//     "project"
168433	//   ],
168434	//   "parameters": {
168435	//     "filter": {
168436	//       "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) ```",
168437	//       "location": "query",
168438	//       "type": "string"
168439	//     },
168440	//     "maxResults": {
168441	//       "default": "500",
168442	//       "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`)",
168443	//       "format": "uint32",
168444	//       "location": "query",
168445	//       "minimum": "0",
168446	//       "type": "integer"
168447	//     },
168448	//     "orderBy": {
168449	//       "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.",
168450	//       "location": "query",
168451	//       "type": "string"
168452	//     },
168453	//     "pageToken": {
168454	//       "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.",
168455	//       "location": "query",
168456	//       "type": "string"
168457	//     },
168458	//     "project": {
168459	//       "description": "Project ID for this request.",
168460	//       "location": "path",
168461	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168462	//       "required": true,
168463	//       "type": "string"
168464	//     },
168465	//     "returnPartialSuccess": {
168466	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
168467	//       "location": "query",
168468	//       "type": "boolean"
168469	//     }
168470	//   },
168471	//   "path": "projects/{project}/global/targetHttpProxies",
168472	//   "response": {
168473	//     "$ref": "TargetHttpProxyList"
168474	//   },
168475	//   "scopes": [
168476	//     "https://www.googleapis.com/auth/cloud-platform",
168477	//     "https://www.googleapis.com/auth/compute",
168478	//     "https://www.googleapis.com/auth/compute.readonly"
168479	//   ]
168480	// }
168481
168482}
168483
168484// Pages invokes f for each page of results.
168485// A non-nil error returned from f will halt the iteration.
168486// The provided context supersedes any context provided to the Context method.
168487func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
168488	c.ctx_ = ctx
168489	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168490	for {
168491		x, err := c.Do()
168492		if err != nil {
168493			return err
168494		}
168495		if err := f(x); err != nil {
168496			return err
168497		}
168498		if x.NextPageToken == "" {
168499			return nil
168500		}
168501		c.PageToken(x.NextPageToken)
168502	}
168503}
168504
168505// method id "compute.targetHttpProxies.patch":
168506
168507type TargetHttpProxiesPatchCall struct {
168508	s               *Service
168509	project         string
168510	targetHttpProxy string
168511	targethttpproxy *TargetHttpProxy
168512	urlParams_      gensupport.URLParams
168513	ctx_            context.Context
168514	header_         http.Header
168515}
168516
168517// Patch: Patches the specified TargetHttpProxy resource with the data
168518// included in the request. This method supports PATCH semantics and
168519// uses JSON merge patch format and processing rules. (==
168520// suppress_warning http-rest-shadowed ==)
168521//
168522// - project: Project ID for this request.
168523// - targetHttpProxy: Name of the TargetHttpProxy resource to patch.
168524func (r *TargetHttpProxiesService) Patch(project string, targetHttpProxy string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesPatchCall {
168525	c := &TargetHttpProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168526	c.project = project
168527	c.targetHttpProxy = targetHttpProxy
168528	c.targethttpproxy = targethttpproxy
168529	return c
168530}
168531
168532// RequestId sets the optional parameter "requestId": An optional
168533// request ID to identify requests. Specify a unique request ID so that
168534// if you must retry your request, the server will know to ignore the
168535// request if it has already been completed.
168536//
168537// For example, consider a situation where you make an initial request
168538// and the request times out. If you make the request again with the
168539// same request ID, the server can check if original operation with the
168540// same request ID was received, and if so, will ignore the second
168541// request. This prevents clients from accidentally creating duplicate
168542// commitments.
168543//
168544// The request ID must be a valid UUID with the exception that zero UUID
168545// is not supported (00000000-0000-0000-0000-000000000000).
168546func (c *TargetHttpProxiesPatchCall) RequestId(requestId string) *TargetHttpProxiesPatchCall {
168547	c.urlParams_.Set("requestId", requestId)
168548	return c
168549}
168550
168551// Fields allows partial responses to be retrieved. See
168552// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168553// for more information.
168554func (c *TargetHttpProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpProxiesPatchCall {
168555	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168556	return c
168557}
168558
168559// Context sets the context to be used in this call's Do method. Any
168560// pending HTTP request will be aborted if the provided context is
168561// canceled.
168562func (c *TargetHttpProxiesPatchCall) Context(ctx context.Context) *TargetHttpProxiesPatchCall {
168563	c.ctx_ = ctx
168564	return c
168565}
168566
168567// Header returns an http.Header that can be modified by the caller to
168568// add HTTP headers to the request.
168569func (c *TargetHttpProxiesPatchCall) Header() http.Header {
168570	if c.header_ == nil {
168571		c.header_ = make(http.Header)
168572	}
168573	return c.header_
168574}
168575
168576func (c *TargetHttpProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
168577	reqHeaders := make(http.Header)
168578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
168579	for k, v := range c.header_ {
168580		reqHeaders[k] = v
168581	}
168582	reqHeaders.Set("User-Agent", c.s.userAgent())
168583	var body io.Reader = nil
168584	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
168585	if err != nil {
168586		return nil, err
168587	}
168588	reqHeaders.Set("Content-Type", "application/json")
168589	c.urlParams_.Set("alt", alt)
168590	c.urlParams_.Set("prettyPrint", "false")
168591	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
168592	urls += "?" + c.urlParams_.Encode()
168593	req, err := http.NewRequest("PATCH", urls, body)
168594	if err != nil {
168595		return nil, err
168596	}
168597	req.Header = reqHeaders
168598	googleapi.Expand(req.URL, map[string]string{
168599		"project":         c.project,
168600		"targetHttpProxy": c.targetHttpProxy,
168601	})
168602	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168603}
168604
168605// Do executes the "compute.targetHttpProxies.patch" call.
168606// Exactly one of *Operation or error will be non-nil. Any non-2xx
168607// status code is an error. Response headers are in either
168608// *Operation.ServerResponse.Header or (if a response was returned at
168609// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168610// to check whether the returned error was because
168611// http.StatusNotModified was returned.
168612func (c *TargetHttpProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168613	gensupport.SetOptions(c.urlParams_, opts...)
168614	res, err := c.doRequest("json")
168615	if res != nil && res.StatusCode == http.StatusNotModified {
168616		if res.Body != nil {
168617			res.Body.Close()
168618		}
168619		return nil, &googleapi.Error{
168620			Code:   res.StatusCode,
168621			Header: res.Header,
168622		}
168623	}
168624	if err != nil {
168625		return nil, err
168626	}
168627	defer googleapi.CloseBody(res)
168628	if err := googleapi.CheckResponse(res); err != nil {
168629		return nil, err
168630	}
168631	ret := &Operation{
168632		ServerResponse: googleapi.ServerResponse{
168633			Header:         res.Header,
168634			HTTPStatusCode: res.StatusCode,
168635		},
168636	}
168637	target := &ret
168638	if err := gensupport.DecodeResponse(target, res); err != nil {
168639		return nil, err
168640	}
168641	return ret, nil
168642	// {
168643	//   "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 ==)",
168644	//   "httpMethod": "PATCH",
168645	//   "id": "compute.targetHttpProxies.patch",
168646	//   "parameterOrder": [
168647	//     "project",
168648	//     "targetHttpProxy"
168649	//   ],
168650	//   "parameters": {
168651	//     "project": {
168652	//       "description": "Project ID for this request.",
168653	//       "location": "path",
168654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168655	//       "required": true,
168656	//       "type": "string"
168657	//     },
168658	//     "requestId": {
168659	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168660	//       "location": "query",
168661	//       "type": "string"
168662	//     },
168663	//     "targetHttpProxy": {
168664	//       "description": "Name of the TargetHttpProxy resource to patch.",
168665	//       "location": "path",
168666	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168667	//       "required": true,
168668	//       "type": "string"
168669	//     }
168670	//   },
168671	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
168672	//   "request": {
168673	//     "$ref": "TargetHttpProxy"
168674	//   },
168675	//   "response": {
168676	//     "$ref": "Operation"
168677	//   },
168678	//   "scopes": [
168679	//     "https://www.googleapis.com/auth/cloud-platform",
168680	//     "https://www.googleapis.com/auth/compute"
168681	//   ]
168682	// }
168683
168684}
168685
168686// method id "compute.targetHttpProxies.setUrlMap":
168687
168688type TargetHttpProxiesSetUrlMapCall struct {
168689	s               *Service
168690	project         string
168691	targetHttpProxy string
168692	urlmapreference *UrlMapReference
168693	urlParams_      gensupport.URLParams
168694	ctx_            context.Context
168695	header_         http.Header
168696}
168697
168698// SetUrlMap: Changes the URL map for TargetHttpProxy.
168699//
168700// - project: Project ID for this request.
168701// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
168702// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
168703func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
168704	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168705	c.project = project
168706	c.targetHttpProxy = targetHttpProxy
168707	c.urlmapreference = urlmapreference
168708	return c
168709}
168710
168711// RequestId sets the optional parameter "requestId": An optional
168712// request ID to identify requests. Specify a unique request ID so that
168713// if you must retry your request, the server will know to ignore the
168714// request if it has already been completed.
168715//
168716// For example, consider a situation where you make an initial request
168717// and the request times out. If you make the request again with the
168718// same request ID, the server can check if original operation with the
168719// same request ID was received, and if so, will ignore the second
168720// request. This prevents clients from accidentally creating duplicate
168721// commitments.
168722//
168723// The request ID must be a valid UUID with the exception that zero UUID
168724// is not supported (00000000-0000-0000-0000-000000000000).
168725func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
168726	c.urlParams_.Set("requestId", requestId)
168727	return c
168728}
168729
168730// Fields allows partial responses to be retrieved. See
168731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168732// for more information.
168733func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
168734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168735	return c
168736}
168737
168738// Context sets the context to be used in this call's Do method. Any
168739// pending HTTP request will be aborted if the provided context is
168740// canceled.
168741func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
168742	c.ctx_ = ctx
168743	return c
168744}
168745
168746// Header returns an http.Header that can be modified by the caller to
168747// add HTTP headers to the request.
168748func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
168749	if c.header_ == nil {
168750		c.header_ = make(http.Header)
168751	}
168752	return c.header_
168753}
168754
168755func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
168756	reqHeaders := make(http.Header)
168757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
168758	for k, v := range c.header_ {
168759		reqHeaders[k] = v
168760	}
168761	reqHeaders.Set("User-Agent", c.s.userAgent())
168762	var body io.Reader = nil
168763	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
168764	if err != nil {
168765		return nil, err
168766	}
168767	reqHeaders.Set("Content-Type", "application/json")
168768	c.urlParams_.Set("alt", alt)
168769	c.urlParams_.Set("prettyPrint", "false")
168770	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
168771	urls += "?" + c.urlParams_.Encode()
168772	req, err := http.NewRequest("POST", urls, body)
168773	if err != nil {
168774		return nil, err
168775	}
168776	req.Header = reqHeaders
168777	googleapi.Expand(req.URL, map[string]string{
168778		"project":         c.project,
168779		"targetHttpProxy": c.targetHttpProxy,
168780	})
168781	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168782}
168783
168784// Do executes the "compute.targetHttpProxies.setUrlMap" call.
168785// Exactly one of *Operation or error will be non-nil. Any non-2xx
168786// status code is an error. Response headers are in either
168787// *Operation.ServerResponse.Header or (if a response was returned at
168788// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168789// to check whether the returned error was because
168790// http.StatusNotModified was returned.
168791func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168792	gensupport.SetOptions(c.urlParams_, opts...)
168793	res, err := c.doRequest("json")
168794	if res != nil && res.StatusCode == http.StatusNotModified {
168795		if res.Body != nil {
168796			res.Body.Close()
168797		}
168798		return nil, &googleapi.Error{
168799			Code:   res.StatusCode,
168800			Header: res.Header,
168801		}
168802	}
168803	if err != nil {
168804		return nil, err
168805	}
168806	defer googleapi.CloseBody(res)
168807	if err := googleapi.CheckResponse(res); err != nil {
168808		return nil, err
168809	}
168810	ret := &Operation{
168811		ServerResponse: googleapi.ServerResponse{
168812			Header:         res.Header,
168813			HTTPStatusCode: res.StatusCode,
168814		},
168815	}
168816	target := &ret
168817	if err := gensupport.DecodeResponse(target, res); err != nil {
168818		return nil, err
168819	}
168820	return ret, nil
168821	// {
168822	//   "description": "Changes the URL map for TargetHttpProxy.",
168823	//   "httpMethod": "POST",
168824	//   "id": "compute.targetHttpProxies.setUrlMap",
168825	//   "parameterOrder": [
168826	//     "project",
168827	//     "targetHttpProxy"
168828	//   ],
168829	//   "parameters": {
168830	//     "project": {
168831	//       "description": "Project ID for this request.",
168832	//       "location": "path",
168833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168834	//       "required": true,
168835	//       "type": "string"
168836	//     },
168837	//     "requestId": {
168838	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168839	//       "location": "query",
168840	//       "type": "string"
168841	//     },
168842	//     "targetHttpProxy": {
168843	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
168844	//       "location": "path",
168845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168846	//       "required": true,
168847	//       "type": "string"
168848	//     }
168849	//   },
168850	//   "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
168851	//   "request": {
168852	//     "$ref": "UrlMapReference"
168853	//   },
168854	//   "response": {
168855	//     "$ref": "Operation"
168856	//   },
168857	//   "scopes": [
168858	//     "https://www.googleapis.com/auth/cloud-platform",
168859	//     "https://www.googleapis.com/auth/compute"
168860	//   ]
168861	// }
168862
168863}
168864
168865// method id "compute.targetHttpProxies.testIamPermissions":
168866
168867type TargetHttpProxiesTestIamPermissionsCall struct {
168868	s                      *Service
168869	project                string
168870	resource               string
168871	testpermissionsrequest *TestPermissionsRequest
168872	urlParams_             gensupport.URLParams
168873	ctx_                   context.Context
168874	header_                http.Header
168875}
168876
168877// TestIamPermissions: Returns permissions that a caller has on the
168878// specified resource.
168879//
168880// - project: Project ID for this request.
168881// - resource: Name or id of the resource for this request.
168882func (r *TargetHttpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpProxiesTestIamPermissionsCall {
168883	c := &TargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168884	c.project = project
168885	c.resource = resource
168886	c.testpermissionsrequest = testpermissionsrequest
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 *TargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpProxiesTestIamPermissionsCall {
168894	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168895	return c
168896}
168897
168898// Context sets the context to be used in this call's Do method. Any
168899// pending HTTP request will be aborted if the provided context is
168900// canceled.
168901func (c *TargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpProxiesTestIamPermissionsCall {
168902	c.ctx_ = ctx
168903	return c
168904}
168905
168906// Header returns an http.Header that can be modified by the caller to
168907// add HTTP headers to the request.
168908func (c *TargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
168909	if c.header_ == nil {
168910		c.header_ = make(http.Header)
168911	}
168912	return c.header_
168913}
168914
168915func (c *TargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
168916	reqHeaders := make(http.Header)
168917	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
168918	for k, v := range c.header_ {
168919		reqHeaders[k] = v
168920	}
168921	reqHeaders.Set("User-Agent", c.s.userAgent())
168922	var body io.Reader = nil
168923	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
168924	if err != nil {
168925		return nil, err
168926	}
168927	reqHeaders.Set("Content-Type", "application/json")
168928	c.urlParams_.Set("alt", alt)
168929	c.urlParams_.Set("prettyPrint", "false")
168930	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{resource}/testIamPermissions")
168931	urls += "?" + c.urlParams_.Encode()
168932	req, err := http.NewRequest("POST", urls, body)
168933	if err != nil {
168934		return nil, err
168935	}
168936	req.Header = reqHeaders
168937	googleapi.Expand(req.URL, map[string]string{
168938		"project":  c.project,
168939		"resource": c.resource,
168940	})
168941	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168942}
168943
168944// Do executes the "compute.targetHttpProxies.testIamPermissions" call.
168945// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
168946// non-2xx status code is an error. Response headers are in either
168947// *TestPermissionsResponse.ServerResponse.Header or (if a response was
168948// returned at all) in error.(*googleapi.Error).Header. Use
168949// googleapi.IsNotModified to check whether the returned error was
168950// because http.StatusNotModified was returned.
168951func (c *TargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
168952	gensupport.SetOptions(c.urlParams_, opts...)
168953	res, err := c.doRequest("json")
168954	if res != nil && res.StatusCode == http.StatusNotModified {
168955		if res.Body != nil {
168956			res.Body.Close()
168957		}
168958		return nil, &googleapi.Error{
168959			Code:   res.StatusCode,
168960			Header: res.Header,
168961		}
168962	}
168963	if err != nil {
168964		return nil, err
168965	}
168966	defer googleapi.CloseBody(res)
168967	if err := googleapi.CheckResponse(res); err != nil {
168968		return nil, err
168969	}
168970	ret := &TestPermissionsResponse{
168971		ServerResponse: googleapi.ServerResponse{
168972			Header:         res.Header,
168973			HTTPStatusCode: res.StatusCode,
168974		},
168975	}
168976	target := &ret
168977	if err := gensupport.DecodeResponse(target, res); err != nil {
168978		return nil, err
168979	}
168980	return ret, nil
168981	// {
168982	//   "description": "Returns permissions that a caller has on the specified resource.",
168983	//   "httpMethod": "POST",
168984	//   "id": "compute.targetHttpProxies.testIamPermissions",
168985	//   "parameterOrder": [
168986	//     "project",
168987	//     "resource"
168988	//   ],
168989	//   "parameters": {
168990	//     "project": {
168991	//       "description": "Project ID for this request.",
168992	//       "location": "path",
168993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168994	//       "required": true,
168995	//       "type": "string"
168996	//     },
168997	//     "resource": {
168998	//       "description": "Name or id of the resource for this request.",
168999	//       "location": "path",
169000	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169001	//       "required": true,
169002	//       "type": "string"
169003	//     }
169004	//   },
169005	//   "path": "projects/{project}/global/targetHttpProxies/{resource}/testIamPermissions",
169006	//   "request": {
169007	//     "$ref": "TestPermissionsRequest"
169008	//   },
169009	//   "response": {
169010	//     "$ref": "TestPermissionsResponse"
169011	//   },
169012	//   "scopes": [
169013	//     "https://www.googleapis.com/auth/cloud-platform",
169014	//     "https://www.googleapis.com/auth/compute",
169015	//     "https://www.googleapis.com/auth/compute.readonly"
169016	//   ]
169017	// }
169018
169019}
169020
169021// method id "compute.targetHttpsProxies.aggregatedList":
169022
169023type TargetHttpsProxiesAggregatedListCall struct {
169024	s            *Service
169025	project      string
169026	urlParams_   gensupport.URLParams
169027	ifNoneMatch_ string
169028	ctx_         context.Context
169029	header_      http.Header
169030}
169031
169032// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
169033// regional and global, available to the specified project.
169034//
169035// - project: Name of the project scoping this request.
169036func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
169037	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169038	c.project = project
169039	return c
169040}
169041
169042// Filter sets the optional parameter "filter": A filter expression that
169043// filters resources listed in the response. The expression must specify
169044// the field name, a comparison operator, and the value that you want to
169045// use for filtering. The value must be a string, a number, or a
169046// boolean. The comparison operator must be either `=`, `!=`, `>`, or
169047// `<`.
169048//
169049// For example, if you are filtering Compute Engine instances, you can
169050// exclude instances named `example-instance` by specifying `name !=
169051// example-instance`.
169052//
169053// You can also filter nested fields. For example, you could specify
169054// `scheduling.automaticRestart = false` to include instances only if
169055// they are not scheduled for automatic restarts. You can use filtering
169056// on nested fields to filter based on resource labels.
169057//
169058// To filter on multiple expressions, provide each separate expression
169059// within parentheses. For example: ``` (scheduling.automaticRestart =
169060// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
169061// is an `AND` expression. However, you can include `AND` and `OR`
169062// expressions explicitly. For example: ``` (cpuPlatform = "Intel
169063// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
169064// (scheduling.automaticRestart = true) ```
169065func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
169066	c.urlParams_.Set("filter", filter)
169067	return c
169068}
169069
169070// IncludeAllScopes sets the optional parameter "includeAllScopes":
169071// Indicates whether every visible scope for each scope type (zone,
169072// region, global) should be included in the response. For new resource
169073// types added after this field, the flag has no effect as new resource
169074// types will always include every visible scope for each scope type in
169075// response. For resource types which predate this field, if this flag
169076// is omitted or false, only scopes of the scope types where the
169077// resource type is expected to be found will be included.
169078func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
169079	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
169080	return c
169081}
169082
169083// MaxResults sets the optional parameter "maxResults": The maximum
169084// number of results per page that should be returned. If the number of
169085// available results is larger than `maxResults`, Compute Engine returns
169086// a `nextPageToken` that can be used to get the next page of results in
169087// subsequent list requests. Acceptable values are `0` to `500`,
169088// inclusive. (Default: `500`)
169089func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
169090	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
169091	return c
169092}
169093
169094// OrderBy sets the optional parameter "orderBy": Sorts list results by
169095// a certain order. By default, results are returned in alphanumerical
169096// order based on the resource name.
169097//
169098// You can also sort results in descending order based on the creation
169099// timestamp using `orderBy="creationTimestamp desc". This sorts
169100// results based on the `creationTimestamp` field in reverse
169101// chronological order (newest result first). Use this to sort resources
169102// like operations so that the newest operation is returned
169103// first.
169104//
169105// Currently, only sorting by `name` or `creationTimestamp desc` is
169106// supported.
169107func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
169108	c.urlParams_.Set("orderBy", orderBy)
169109	return c
169110}
169111
169112// PageToken sets the optional parameter "pageToken": Specifies a page
169113// token to use. Set `pageToken` to the `nextPageToken` returned by a
169114// previous list request to get the next page of results.
169115func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
169116	c.urlParams_.Set("pageToken", pageToken)
169117	return c
169118}
169119
169120// ReturnPartialSuccess sets the optional parameter
169121// "returnPartialSuccess": Opt-in for partial success behavior which
169122// provides partial results in case of failure. The default value is
169123// false.
169124func (c *TargetHttpsProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesAggregatedListCall {
169125	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
169126	return c
169127}
169128
169129// Fields allows partial responses to be retrieved. See
169130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169131// for more information.
169132func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
169133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169134	return c
169135}
169136
169137// IfNoneMatch sets the optional parameter which makes the operation
169138// fail if the object's ETag matches the given value. This is useful for
169139// getting updates only after the object has changed since the last
169140// request. Use googleapi.IsNotModified to check whether the response
169141// error from Do is the result of In-None-Match.
169142func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
169143	c.ifNoneMatch_ = entityTag
169144	return c
169145}
169146
169147// Context sets the context to be used in this call's Do method. Any
169148// pending HTTP request will be aborted if the provided context is
169149// canceled.
169150func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
169151	c.ctx_ = ctx
169152	return c
169153}
169154
169155// Header returns an http.Header that can be modified by the caller to
169156// add HTTP headers to the request.
169157func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
169158	if c.header_ == nil {
169159		c.header_ = make(http.Header)
169160	}
169161	return c.header_
169162}
169163
169164func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
169165	reqHeaders := make(http.Header)
169166	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
169167	for k, v := range c.header_ {
169168		reqHeaders[k] = v
169169	}
169170	reqHeaders.Set("User-Agent", c.s.userAgent())
169171	if c.ifNoneMatch_ != "" {
169172		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169173	}
169174	var body io.Reader = nil
169175	c.urlParams_.Set("alt", alt)
169176	c.urlParams_.Set("prettyPrint", "false")
169177	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpsProxies")
169178	urls += "?" + c.urlParams_.Encode()
169179	req, err := http.NewRequest("GET", urls, body)
169180	if err != nil {
169181		return nil, err
169182	}
169183	req.Header = reqHeaders
169184	googleapi.Expand(req.URL, map[string]string{
169185		"project": c.project,
169186	})
169187	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169188}
169189
169190// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
169191// Exactly one of *TargetHttpsProxyAggregatedList or error will be
169192// non-nil. Any non-2xx status code is an error. Response headers are in
169193// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
169194// response was returned at all) in error.(*googleapi.Error).Header. Use
169195// googleapi.IsNotModified to check whether the returned error was
169196// because http.StatusNotModified was returned.
169197func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
169198	gensupport.SetOptions(c.urlParams_, opts...)
169199	res, err := c.doRequest("json")
169200	if res != nil && res.StatusCode == http.StatusNotModified {
169201		if res.Body != nil {
169202			res.Body.Close()
169203		}
169204		return nil, &googleapi.Error{
169205			Code:   res.StatusCode,
169206			Header: res.Header,
169207		}
169208	}
169209	if err != nil {
169210		return nil, err
169211	}
169212	defer googleapi.CloseBody(res)
169213	if err := googleapi.CheckResponse(res); err != nil {
169214		return nil, err
169215	}
169216	ret := &TargetHttpsProxyAggregatedList{
169217		ServerResponse: googleapi.ServerResponse{
169218			Header:         res.Header,
169219			HTTPStatusCode: res.StatusCode,
169220		},
169221	}
169222	target := &ret
169223	if err := gensupport.DecodeResponse(target, res); err != nil {
169224		return nil, err
169225	}
169226	return ret, nil
169227	// {
169228	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
169229	//   "httpMethod": "GET",
169230	//   "id": "compute.targetHttpsProxies.aggregatedList",
169231	//   "parameterOrder": [
169232	//     "project"
169233	//   ],
169234	//   "parameters": {
169235	//     "filter": {
169236	//       "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) ```",
169237	//       "location": "query",
169238	//       "type": "string"
169239	//     },
169240	//     "includeAllScopes": {
169241	//       "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.",
169242	//       "location": "query",
169243	//       "type": "boolean"
169244	//     },
169245	//     "maxResults": {
169246	//       "default": "500",
169247	//       "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`)",
169248	//       "format": "uint32",
169249	//       "location": "query",
169250	//       "minimum": "0",
169251	//       "type": "integer"
169252	//     },
169253	//     "orderBy": {
169254	//       "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.",
169255	//       "location": "query",
169256	//       "type": "string"
169257	//     },
169258	//     "pageToken": {
169259	//       "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.",
169260	//       "location": "query",
169261	//       "type": "string"
169262	//     },
169263	//     "project": {
169264	//       "description": "Name of the project scoping this request.",
169265	//       "location": "path",
169266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169267	//       "required": true,
169268	//       "type": "string"
169269	//     },
169270	//     "returnPartialSuccess": {
169271	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
169272	//       "location": "query",
169273	//       "type": "boolean"
169274	//     }
169275	//   },
169276	//   "path": "projects/{project}/aggregated/targetHttpsProxies",
169277	//   "response": {
169278	//     "$ref": "TargetHttpsProxyAggregatedList"
169279	//   },
169280	//   "scopes": [
169281	//     "https://www.googleapis.com/auth/cloud-platform",
169282	//     "https://www.googleapis.com/auth/compute",
169283	//     "https://www.googleapis.com/auth/compute.readonly"
169284	//   ]
169285	// }
169286
169287}
169288
169289// Pages invokes f for each page of results.
169290// A non-nil error returned from f will halt the iteration.
169291// The provided context supersedes any context provided to the Context method.
169292func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
169293	c.ctx_ = ctx
169294	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
169295	for {
169296		x, err := c.Do()
169297		if err != nil {
169298			return err
169299		}
169300		if err := f(x); err != nil {
169301			return err
169302		}
169303		if x.NextPageToken == "" {
169304			return nil
169305		}
169306		c.PageToken(x.NextPageToken)
169307	}
169308}
169309
169310// method id "compute.targetHttpsProxies.delete":
169311
169312type TargetHttpsProxiesDeleteCall struct {
169313	s                *Service
169314	project          string
169315	targetHttpsProxy string
169316	urlParams_       gensupport.URLParams
169317	ctx_             context.Context
169318	header_          http.Header
169319}
169320
169321// Delete: Deletes the specified TargetHttpsProxy resource.
169322//
169323// - project: Project ID for this request.
169324// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
169325func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
169326	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169327	c.project = project
169328	c.targetHttpsProxy = targetHttpsProxy
169329	return c
169330}
169331
169332// RequestId sets the optional parameter "requestId": An optional
169333// request ID to identify requests. Specify a unique request ID so that
169334// if you must retry your request, the server will know to ignore the
169335// request if it has already been completed.
169336//
169337// For example, consider a situation where you make an initial request
169338// and the request times out. If you make the request again with the
169339// same request ID, the server can check if original operation with the
169340// same request ID was received, and if so, will ignore the second
169341// request. This prevents clients from accidentally creating duplicate
169342// commitments.
169343//
169344// The request ID must be a valid UUID with the exception that zero UUID
169345// is not supported (00000000-0000-0000-0000-000000000000).
169346func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
169347	c.urlParams_.Set("requestId", requestId)
169348	return c
169349}
169350
169351// Fields allows partial responses to be retrieved. See
169352// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169353// for more information.
169354func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
169355	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169356	return c
169357}
169358
169359// Context sets the context to be used in this call's Do method. Any
169360// pending HTTP request will be aborted if the provided context is
169361// canceled.
169362func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
169363	c.ctx_ = ctx
169364	return c
169365}
169366
169367// Header returns an http.Header that can be modified by the caller to
169368// add HTTP headers to the request.
169369func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
169370	if c.header_ == nil {
169371		c.header_ = make(http.Header)
169372	}
169373	return c.header_
169374}
169375
169376func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
169377	reqHeaders := make(http.Header)
169378	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
169379	for k, v := range c.header_ {
169380		reqHeaders[k] = v
169381	}
169382	reqHeaders.Set("User-Agent", c.s.userAgent())
169383	var body io.Reader = nil
169384	c.urlParams_.Set("alt", alt)
169385	c.urlParams_.Set("prettyPrint", "false")
169386	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
169387	urls += "?" + c.urlParams_.Encode()
169388	req, err := http.NewRequest("DELETE", urls, body)
169389	if err != nil {
169390		return nil, err
169391	}
169392	req.Header = reqHeaders
169393	googleapi.Expand(req.URL, map[string]string{
169394		"project":          c.project,
169395		"targetHttpsProxy": c.targetHttpsProxy,
169396	})
169397	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169398}
169399
169400// Do executes the "compute.targetHttpsProxies.delete" call.
169401// Exactly one of *Operation or error will be non-nil. Any non-2xx
169402// status code is an error. Response headers are in either
169403// *Operation.ServerResponse.Header or (if a response was returned at
169404// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169405// to check whether the returned error was because
169406// http.StatusNotModified was returned.
169407func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169408	gensupport.SetOptions(c.urlParams_, opts...)
169409	res, err := c.doRequest("json")
169410	if res != nil && res.StatusCode == http.StatusNotModified {
169411		if res.Body != nil {
169412			res.Body.Close()
169413		}
169414		return nil, &googleapi.Error{
169415			Code:   res.StatusCode,
169416			Header: res.Header,
169417		}
169418	}
169419	if err != nil {
169420		return nil, err
169421	}
169422	defer googleapi.CloseBody(res)
169423	if err := googleapi.CheckResponse(res); err != nil {
169424		return nil, err
169425	}
169426	ret := &Operation{
169427		ServerResponse: googleapi.ServerResponse{
169428			Header:         res.Header,
169429			HTTPStatusCode: res.StatusCode,
169430		},
169431	}
169432	target := &ret
169433	if err := gensupport.DecodeResponse(target, res); err != nil {
169434		return nil, err
169435	}
169436	return ret, nil
169437	// {
169438	//   "description": "Deletes the specified TargetHttpsProxy resource.",
169439	//   "httpMethod": "DELETE",
169440	//   "id": "compute.targetHttpsProxies.delete",
169441	//   "parameterOrder": [
169442	//     "project",
169443	//     "targetHttpsProxy"
169444	//   ],
169445	//   "parameters": {
169446	//     "project": {
169447	//       "description": "Project ID for this request.",
169448	//       "location": "path",
169449	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169450	//       "required": true,
169451	//       "type": "string"
169452	//     },
169453	//     "requestId": {
169454	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169455	//       "location": "query",
169456	//       "type": "string"
169457	//     },
169458	//     "targetHttpsProxy": {
169459	//       "description": "Name of the TargetHttpsProxy resource to delete.",
169460	//       "location": "path",
169461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169462	//       "required": true,
169463	//       "type": "string"
169464	//     }
169465	//   },
169466	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
169467	//   "response": {
169468	//     "$ref": "Operation"
169469	//   },
169470	//   "scopes": [
169471	//     "https://www.googleapis.com/auth/cloud-platform",
169472	//     "https://www.googleapis.com/auth/compute"
169473	//   ]
169474	// }
169475
169476}
169477
169478// method id "compute.targetHttpsProxies.get":
169479
169480type TargetHttpsProxiesGetCall struct {
169481	s                *Service
169482	project          string
169483	targetHttpsProxy string
169484	urlParams_       gensupport.URLParams
169485	ifNoneMatch_     string
169486	ctx_             context.Context
169487	header_          http.Header
169488}
169489
169490// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
169491// available target HTTPS proxies by making a list() request.
169492//
169493// - project: Project ID for this request.
169494// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
169495func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
169496	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169497	c.project = project
169498	c.targetHttpsProxy = targetHttpsProxy
169499	return c
169500}
169501
169502// Fields allows partial responses to be retrieved. See
169503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169504// for more information.
169505func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
169506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169507	return c
169508}
169509
169510// IfNoneMatch sets the optional parameter which makes the operation
169511// fail if the object's ETag matches the given value. This is useful for
169512// getting updates only after the object has changed since the last
169513// request. Use googleapi.IsNotModified to check whether the response
169514// error from Do is the result of In-None-Match.
169515func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
169516	c.ifNoneMatch_ = entityTag
169517	return c
169518}
169519
169520// Context sets the context to be used in this call's Do method. Any
169521// pending HTTP request will be aborted if the provided context is
169522// canceled.
169523func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
169524	c.ctx_ = ctx
169525	return c
169526}
169527
169528// Header returns an http.Header that can be modified by the caller to
169529// add HTTP headers to the request.
169530func (c *TargetHttpsProxiesGetCall) Header() http.Header {
169531	if c.header_ == nil {
169532		c.header_ = make(http.Header)
169533	}
169534	return c.header_
169535}
169536
169537func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
169538	reqHeaders := make(http.Header)
169539	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
169540	for k, v := range c.header_ {
169541		reqHeaders[k] = v
169542	}
169543	reqHeaders.Set("User-Agent", c.s.userAgent())
169544	if c.ifNoneMatch_ != "" {
169545		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169546	}
169547	var body io.Reader = nil
169548	c.urlParams_.Set("alt", alt)
169549	c.urlParams_.Set("prettyPrint", "false")
169550	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
169551	urls += "?" + c.urlParams_.Encode()
169552	req, err := http.NewRequest("GET", urls, body)
169553	if err != nil {
169554		return nil, err
169555	}
169556	req.Header = reqHeaders
169557	googleapi.Expand(req.URL, map[string]string{
169558		"project":          c.project,
169559		"targetHttpsProxy": c.targetHttpsProxy,
169560	})
169561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169562}
169563
169564// Do executes the "compute.targetHttpsProxies.get" call.
169565// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
169566// non-2xx status code is an error. Response headers are in either
169567// *TargetHttpsProxy.ServerResponse.Header or (if a response was
169568// returned at all) in error.(*googleapi.Error).Header. Use
169569// googleapi.IsNotModified to check whether the returned error was
169570// because http.StatusNotModified was returned.
169571func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
169572	gensupport.SetOptions(c.urlParams_, opts...)
169573	res, err := c.doRequest("json")
169574	if res != nil && res.StatusCode == http.StatusNotModified {
169575		if res.Body != nil {
169576			res.Body.Close()
169577		}
169578		return nil, &googleapi.Error{
169579			Code:   res.StatusCode,
169580			Header: res.Header,
169581		}
169582	}
169583	if err != nil {
169584		return nil, err
169585	}
169586	defer googleapi.CloseBody(res)
169587	if err := googleapi.CheckResponse(res); err != nil {
169588		return nil, err
169589	}
169590	ret := &TargetHttpsProxy{
169591		ServerResponse: googleapi.ServerResponse{
169592			Header:         res.Header,
169593			HTTPStatusCode: res.StatusCode,
169594		},
169595	}
169596	target := &ret
169597	if err := gensupport.DecodeResponse(target, res); err != nil {
169598		return nil, err
169599	}
169600	return ret, nil
169601	// {
169602	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
169603	//   "httpMethod": "GET",
169604	//   "id": "compute.targetHttpsProxies.get",
169605	//   "parameterOrder": [
169606	//     "project",
169607	//     "targetHttpsProxy"
169608	//   ],
169609	//   "parameters": {
169610	//     "project": {
169611	//       "description": "Project ID for this request.",
169612	//       "location": "path",
169613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169614	//       "required": true,
169615	//       "type": "string"
169616	//     },
169617	//     "targetHttpsProxy": {
169618	//       "description": "Name of the TargetHttpsProxy resource to return.",
169619	//       "location": "path",
169620	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169621	//       "required": true,
169622	//       "type": "string"
169623	//     }
169624	//   },
169625	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
169626	//   "response": {
169627	//     "$ref": "TargetHttpsProxy"
169628	//   },
169629	//   "scopes": [
169630	//     "https://www.googleapis.com/auth/cloud-platform",
169631	//     "https://www.googleapis.com/auth/compute",
169632	//     "https://www.googleapis.com/auth/compute.readonly"
169633	//   ]
169634	// }
169635
169636}
169637
169638// method id "compute.targetHttpsProxies.insert":
169639
169640type TargetHttpsProxiesInsertCall struct {
169641	s                *Service
169642	project          string
169643	targethttpsproxy *TargetHttpsProxy
169644	urlParams_       gensupport.URLParams
169645	ctx_             context.Context
169646	header_          http.Header
169647}
169648
169649// Insert: Creates a TargetHttpsProxy resource in the specified project
169650// using the data included in the request.
169651//
169652// - project: Project ID for this request.
169653func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
169654	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169655	c.project = project
169656	c.targethttpsproxy = targethttpsproxy
169657	return c
169658}
169659
169660// RequestId sets the optional parameter "requestId": An optional
169661// request ID to identify requests. Specify a unique request ID so that
169662// if you must retry your request, the server will know to ignore the
169663// request if it has already been completed.
169664//
169665// For example, consider a situation where you make an initial request
169666// and the request times out. If you make the request again with the
169667// same request ID, the server can check if original operation with the
169668// same request ID was received, and if so, will ignore the second
169669// request. This prevents clients from accidentally creating duplicate
169670// commitments.
169671//
169672// The request ID must be a valid UUID with the exception that zero UUID
169673// is not supported (00000000-0000-0000-0000-000000000000).
169674func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
169675	c.urlParams_.Set("requestId", requestId)
169676	return c
169677}
169678
169679// Fields allows partial responses to be retrieved. See
169680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169681// for more information.
169682func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
169683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169684	return c
169685}
169686
169687// Context sets the context to be used in this call's Do method. Any
169688// pending HTTP request will be aborted if the provided context is
169689// canceled.
169690func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
169691	c.ctx_ = ctx
169692	return c
169693}
169694
169695// Header returns an http.Header that can be modified by the caller to
169696// add HTTP headers to the request.
169697func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
169698	if c.header_ == nil {
169699		c.header_ = make(http.Header)
169700	}
169701	return c.header_
169702}
169703
169704func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
169705	reqHeaders := make(http.Header)
169706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
169707	for k, v := range c.header_ {
169708		reqHeaders[k] = v
169709	}
169710	reqHeaders.Set("User-Agent", c.s.userAgent())
169711	var body io.Reader = nil
169712	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
169713	if err != nil {
169714		return nil, err
169715	}
169716	reqHeaders.Set("Content-Type", "application/json")
169717	c.urlParams_.Set("alt", alt)
169718	c.urlParams_.Set("prettyPrint", "false")
169719	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
169720	urls += "?" + c.urlParams_.Encode()
169721	req, err := http.NewRequest("POST", urls, body)
169722	if err != nil {
169723		return nil, err
169724	}
169725	req.Header = reqHeaders
169726	googleapi.Expand(req.URL, map[string]string{
169727		"project": c.project,
169728	})
169729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169730}
169731
169732// Do executes the "compute.targetHttpsProxies.insert" call.
169733// Exactly one of *Operation or error will be non-nil. Any non-2xx
169734// status code is an error. Response headers are in either
169735// *Operation.ServerResponse.Header or (if a response was returned at
169736// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169737// to check whether the returned error was because
169738// http.StatusNotModified was returned.
169739func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169740	gensupport.SetOptions(c.urlParams_, opts...)
169741	res, err := c.doRequest("json")
169742	if res != nil && res.StatusCode == http.StatusNotModified {
169743		if res.Body != nil {
169744			res.Body.Close()
169745		}
169746		return nil, &googleapi.Error{
169747			Code:   res.StatusCode,
169748			Header: res.Header,
169749		}
169750	}
169751	if err != nil {
169752		return nil, err
169753	}
169754	defer googleapi.CloseBody(res)
169755	if err := googleapi.CheckResponse(res); err != nil {
169756		return nil, err
169757	}
169758	ret := &Operation{
169759		ServerResponse: googleapi.ServerResponse{
169760			Header:         res.Header,
169761			HTTPStatusCode: res.StatusCode,
169762		},
169763	}
169764	target := &ret
169765	if err := gensupport.DecodeResponse(target, res); err != nil {
169766		return nil, err
169767	}
169768	return ret, nil
169769	// {
169770	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
169771	//   "httpMethod": "POST",
169772	//   "id": "compute.targetHttpsProxies.insert",
169773	//   "parameterOrder": [
169774	//     "project"
169775	//   ],
169776	//   "parameters": {
169777	//     "project": {
169778	//       "description": "Project ID for this request.",
169779	//       "location": "path",
169780	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169781	//       "required": true,
169782	//       "type": "string"
169783	//     },
169784	//     "requestId": {
169785	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169786	//       "location": "query",
169787	//       "type": "string"
169788	//     }
169789	//   },
169790	//   "path": "projects/{project}/global/targetHttpsProxies",
169791	//   "request": {
169792	//     "$ref": "TargetHttpsProxy"
169793	//   },
169794	//   "response": {
169795	//     "$ref": "Operation"
169796	//   },
169797	//   "scopes": [
169798	//     "https://www.googleapis.com/auth/cloud-platform",
169799	//     "https://www.googleapis.com/auth/compute"
169800	//   ]
169801	// }
169802
169803}
169804
169805// method id "compute.targetHttpsProxies.list":
169806
169807type TargetHttpsProxiesListCall struct {
169808	s            *Service
169809	project      string
169810	urlParams_   gensupport.URLParams
169811	ifNoneMatch_ string
169812	ctx_         context.Context
169813	header_      http.Header
169814}
169815
169816// List: Retrieves the list of TargetHttpsProxy resources available to
169817// the specified project.
169818//
169819// - project: Project ID for this request.
169820func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
169821	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169822	c.project = project
169823	return c
169824}
169825
169826// Filter sets the optional parameter "filter": A filter expression that
169827// filters resources listed in the response. The expression must specify
169828// the field name, a comparison operator, and the value that you want to
169829// use for filtering. The value must be a string, a number, or a
169830// boolean. The comparison operator must be either `=`, `!=`, `>`, or
169831// `<`.
169832//
169833// For example, if you are filtering Compute Engine instances, you can
169834// exclude instances named `example-instance` by specifying `name !=
169835// example-instance`.
169836//
169837// You can also filter nested fields. For example, you could specify
169838// `scheduling.automaticRestart = false` to include instances only if
169839// they are not scheduled for automatic restarts. You can use filtering
169840// on nested fields to filter based on resource labels.
169841//
169842// To filter on multiple expressions, provide each separate expression
169843// within parentheses. For example: ``` (scheduling.automaticRestart =
169844// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
169845// is an `AND` expression. However, you can include `AND` and `OR`
169846// expressions explicitly. For example: ``` (cpuPlatform = "Intel
169847// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
169848// (scheduling.automaticRestart = true) ```
169849func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
169850	c.urlParams_.Set("filter", filter)
169851	return c
169852}
169853
169854// MaxResults sets the optional parameter "maxResults": The maximum
169855// number of results per page that should be returned. If the number of
169856// available results is larger than `maxResults`, Compute Engine returns
169857// a `nextPageToken` that can be used to get the next page of results in
169858// subsequent list requests. Acceptable values are `0` to `500`,
169859// inclusive. (Default: `500`)
169860func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
169861	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
169862	return c
169863}
169864
169865// OrderBy sets the optional parameter "orderBy": Sorts list results by
169866// a certain order. By default, results are returned in alphanumerical
169867// order based on the resource name.
169868//
169869// You can also sort results in descending order based on the creation
169870// timestamp using `orderBy="creationTimestamp desc". This sorts
169871// results based on the `creationTimestamp` field in reverse
169872// chronological order (newest result first). Use this to sort resources
169873// like operations so that the newest operation is returned
169874// first.
169875//
169876// Currently, only sorting by `name` or `creationTimestamp desc` is
169877// supported.
169878func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
169879	c.urlParams_.Set("orderBy", orderBy)
169880	return c
169881}
169882
169883// PageToken sets the optional parameter "pageToken": Specifies a page
169884// token to use. Set `pageToken` to the `nextPageToken` returned by a
169885// previous list request to get the next page of results.
169886func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
169887	c.urlParams_.Set("pageToken", pageToken)
169888	return c
169889}
169890
169891// ReturnPartialSuccess sets the optional parameter
169892// "returnPartialSuccess": Opt-in for partial success behavior which
169893// provides partial results in case of failure. The default value is
169894// false.
169895func (c *TargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesListCall {
169896	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
169897	return c
169898}
169899
169900// Fields allows partial responses to be retrieved. See
169901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169902// for more information.
169903func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
169904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169905	return c
169906}
169907
169908// IfNoneMatch sets the optional parameter which makes the operation
169909// fail if the object's ETag matches the given value. This is useful for
169910// getting updates only after the object has changed since the last
169911// request. Use googleapi.IsNotModified to check whether the response
169912// error from Do is the result of In-None-Match.
169913func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
169914	c.ifNoneMatch_ = entityTag
169915	return c
169916}
169917
169918// Context sets the context to be used in this call's Do method. Any
169919// pending HTTP request will be aborted if the provided context is
169920// canceled.
169921func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
169922	c.ctx_ = ctx
169923	return c
169924}
169925
169926// Header returns an http.Header that can be modified by the caller to
169927// add HTTP headers to the request.
169928func (c *TargetHttpsProxiesListCall) Header() http.Header {
169929	if c.header_ == nil {
169930		c.header_ = make(http.Header)
169931	}
169932	return c.header_
169933}
169934
169935func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
169936	reqHeaders := make(http.Header)
169937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
169938	for k, v := range c.header_ {
169939		reqHeaders[k] = v
169940	}
169941	reqHeaders.Set("User-Agent", c.s.userAgent())
169942	if c.ifNoneMatch_ != "" {
169943		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169944	}
169945	var body io.Reader = nil
169946	c.urlParams_.Set("alt", alt)
169947	c.urlParams_.Set("prettyPrint", "false")
169948	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
169949	urls += "?" + c.urlParams_.Encode()
169950	req, err := http.NewRequest("GET", urls, body)
169951	if err != nil {
169952		return nil, err
169953	}
169954	req.Header = reqHeaders
169955	googleapi.Expand(req.URL, map[string]string{
169956		"project": c.project,
169957	})
169958	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169959}
169960
169961// Do executes the "compute.targetHttpsProxies.list" call.
169962// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
169963// non-2xx status code is an error. Response headers are in either
169964// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
169965// returned at all) in error.(*googleapi.Error).Header. Use
169966// googleapi.IsNotModified to check whether the returned error was
169967// because http.StatusNotModified was returned.
169968func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
169969	gensupport.SetOptions(c.urlParams_, opts...)
169970	res, err := c.doRequest("json")
169971	if res != nil && res.StatusCode == http.StatusNotModified {
169972		if res.Body != nil {
169973			res.Body.Close()
169974		}
169975		return nil, &googleapi.Error{
169976			Code:   res.StatusCode,
169977			Header: res.Header,
169978		}
169979	}
169980	if err != nil {
169981		return nil, err
169982	}
169983	defer googleapi.CloseBody(res)
169984	if err := googleapi.CheckResponse(res); err != nil {
169985		return nil, err
169986	}
169987	ret := &TargetHttpsProxyList{
169988		ServerResponse: googleapi.ServerResponse{
169989			Header:         res.Header,
169990			HTTPStatusCode: res.StatusCode,
169991		},
169992	}
169993	target := &ret
169994	if err := gensupport.DecodeResponse(target, res); err != nil {
169995		return nil, err
169996	}
169997	return ret, nil
169998	// {
169999	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
170000	//   "httpMethod": "GET",
170001	//   "id": "compute.targetHttpsProxies.list",
170002	//   "parameterOrder": [
170003	//     "project"
170004	//   ],
170005	//   "parameters": {
170006	//     "filter": {
170007	//       "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) ```",
170008	//       "location": "query",
170009	//       "type": "string"
170010	//     },
170011	//     "maxResults": {
170012	//       "default": "500",
170013	//       "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`)",
170014	//       "format": "uint32",
170015	//       "location": "query",
170016	//       "minimum": "0",
170017	//       "type": "integer"
170018	//     },
170019	//     "orderBy": {
170020	//       "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.",
170021	//       "location": "query",
170022	//       "type": "string"
170023	//     },
170024	//     "pageToken": {
170025	//       "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.",
170026	//       "location": "query",
170027	//       "type": "string"
170028	//     },
170029	//     "project": {
170030	//       "description": "Project ID for this request.",
170031	//       "location": "path",
170032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170033	//       "required": true,
170034	//       "type": "string"
170035	//     },
170036	//     "returnPartialSuccess": {
170037	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
170038	//       "location": "query",
170039	//       "type": "boolean"
170040	//     }
170041	//   },
170042	//   "path": "projects/{project}/global/targetHttpsProxies",
170043	//   "response": {
170044	//     "$ref": "TargetHttpsProxyList"
170045	//   },
170046	//   "scopes": [
170047	//     "https://www.googleapis.com/auth/cloud-platform",
170048	//     "https://www.googleapis.com/auth/compute",
170049	//     "https://www.googleapis.com/auth/compute.readonly"
170050	//   ]
170051	// }
170052
170053}
170054
170055// Pages invokes f for each page of results.
170056// A non-nil error returned from f will halt the iteration.
170057// The provided context supersedes any context provided to the Context method.
170058func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
170059	c.ctx_ = ctx
170060	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
170061	for {
170062		x, err := c.Do()
170063		if err != nil {
170064			return err
170065		}
170066		if err := f(x); err != nil {
170067			return err
170068		}
170069		if x.NextPageToken == "" {
170070			return nil
170071		}
170072		c.PageToken(x.NextPageToken)
170073	}
170074}
170075
170076// method id "compute.targetHttpsProxies.patch":
170077
170078type TargetHttpsProxiesPatchCall struct {
170079	s                *Service
170080	project          string
170081	targetHttpsProxy string
170082	targethttpsproxy *TargetHttpsProxy
170083	urlParams_       gensupport.URLParams
170084	ctx_             context.Context
170085	header_          http.Header
170086}
170087
170088// Patch: Patches the specified TargetHttpsProxy resource with the data
170089// included in the request. This method supports PATCH semantics and
170090// uses JSON merge patch format and processing rules. (==
170091// suppress_warning http-rest-shadowed ==)
170092//
170093// - project: Project ID for this request.
170094// - targetHttpsProxy: Name of the TargetHttpsProxy resource to patch.
170095func (r *TargetHttpsProxiesService) Patch(project string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesPatchCall {
170096	c := &TargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170097	c.project = project
170098	c.targetHttpsProxy = targetHttpsProxy
170099	c.targethttpsproxy = targethttpsproxy
170100	return c
170101}
170102
170103// RequestId sets the optional parameter "requestId": An optional
170104// request ID to identify requests. Specify a unique request ID so that
170105// if you must retry your request, the server will know to ignore the
170106// request if it has already been completed.
170107//
170108// For example, consider a situation where you make an initial request
170109// and the request times out. If you make the request again with the
170110// same request ID, the server can check if original operation with the
170111// same request ID was received, and if so, will ignore the second
170112// request. This prevents clients from accidentally creating duplicate
170113// commitments.
170114//
170115// The request ID must be a valid UUID with the exception that zero UUID
170116// is not supported (00000000-0000-0000-0000-000000000000).
170117func (c *TargetHttpsProxiesPatchCall) RequestId(requestId string) *TargetHttpsProxiesPatchCall {
170118	c.urlParams_.Set("requestId", requestId)
170119	return c
170120}
170121
170122// Fields allows partial responses to be retrieved. See
170123// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170124// for more information.
170125func (c *TargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesPatchCall {
170126	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170127	return c
170128}
170129
170130// Context sets the context to be used in this call's Do method. Any
170131// pending HTTP request will be aborted if the provided context is
170132// canceled.
170133func (c *TargetHttpsProxiesPatchCall) Context(ctx context.Context) *TargetHttpsProxiesPatchCall {
170134	c.ctx_ = ctx
170135	return c
170136}
170137
170138// Header returns an http.Header that can be modified by the caller to
170139// add HTTP headers to the request.
170140func (c *TargetHttpsProxiesPatchCall) Header() http.Header {
170141	if c.header_ == nil {
170142		c.header_ = make(http.Header)
170143	}
170144	return c.header_
170145}
170146
170147func (c *TargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
170148	reqHeaders := make(http.Header)
170149	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
170150	for k, v := range c.header_ {
170151		reqHeaders[k] = v
170152	}
170153	reqHeaders.Set("User-Agent", c.s.userAgent())
170154	var body io.Reader = nil
170155	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
170156	if err != nil {
170157		return nil, err
170158	}
170159	reqHeaders.Set("Content-Type", "application/json")
170160	c.urlParams_.Set("alt", alt)
170161	c.urlParams_.Set("prettyPrint", "false")
170162	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
170163	urls += "?" + c.urlParams_.Encode()
170164	req, err := http.NewRequest("PATCH", urls, body)
170165	if err != nil {
170166		return nil, err
170167	}
170168	req.Header = reqHeaders
170169	googleapi.Expand(req.URL, map[string]string{
170170		"project":          c.project,
170171		"targetHttpsProxy": c.targetHttpsProxy,
170172	})
170173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170174}
170175
170176// Do executes the "compute.targetHttpsProxies.patch" call.
170177// Exactly one of *Operation or error will be non-nil. Any non-2xx
170178// status code is an error. Response headers are in either
170179// *Operation.ServerResponse.Header or (if a response was returned at
170180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170181// to check whether the returned error was because
170182// http.StatusNotModified was returned.
170183func (c *TargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170184	gensupport.SetOptions(c.urlParams_, opts...)
170185	res, err := c.doRequest("json")
170186	if res != nil && res.StatusCode == http.StatusNotModified {
170187		if res.Body != nil {
170188			res.Body.Close()
170189		}
170190		return nil, &googleapi.Error{
170191			Code:   res.StatusCode,
170192			Header: res.Header,
170193		}
170194	}
170195	if err != nil {
170196		return nil, err
170197	}
170198	defer googleapi.CloseBody(res)
170199	if err := googleapi.CheckResponse(res); err != nil {
170200		return nil, err
170201	}
170202	ret := &Operation{
170203		ServerResponse: googleapi.ServerResponse{
170204			Header:         res.Header,
170205			HTTPStatusCode: res.StatusCode,
170206		},
170207	}
170208	target := &ret
170209	if err := gensupport.DecodeResponse(target, res); err != nil {
170210		return nil, err
170211	}
170212	return ret, nil
170213	// {
170214	//   "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 ==)",
170215	//   "httpMethod": "PATCH",
170216	//   "id": "compute.targetHttpsProxies.patch",
170217	//   "parameterOrder": [
170218	//     "project",
170219	//     "targetHttpsProxy"
170220	//   ],
170221	//   "parameters": {
170222	//     "project": {
170223	//       "description": "Project ID for this request.",
170224	//       "location": "path",
170225	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170226	//       "required": true,
170227	//       "type": "string"
170228	//     },
170229	//     "requestId": {
170230	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170231	//       "location": "query",
170232	//       "type": "string"
170233	//     },
170234	//     "targetHttpsProxy": {
170235	//       "description": "Name of the TargetHttpsProxy resource to patch.",
170236	//       "location": "path",
170237	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170238	//       "required": true,
170239	//       "type": "string"
170240	//     }
170241	//   },
170242	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
170243	//   "request": {
170244	//     "$ref": "TargetHttpsProxy"
170245	//   },
170246	//   "response": {
170247	//     "$ref": "Operation"
170248	//   },
170249	//   "scopes": [
170250	//     "https://www.googleapis.com/auth/cloud-platform",
170251	//     "https://www.googleapis.com/auth/compute"
170252	//   ]
170253	// }
170254
170255}
170256
170257// method id "compute.targetHttpsProxies.setQuicOverride":
170258
170259type TargetHttpsProxiesSetQuicOverrideCall struct {
170260	s                                        *Service
170261	project                                  string
170262	targetHttpsProxy                         string
170263	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
170264	urlParams_                               gensupport.URLParams
170265	ctx_                                     context.Context
170266	header_                                  http.Header
170267}
170268
170269// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
170270//
170271// - project: Project ID for this request.
170272// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set the
170273//   QUIC override policy for. The name should conform to RFC1035.
170274func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
170275	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170276	c.project = project
170277	c.targetHttpsProxy = targetHttpsProxy
170278	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
170279	return c
170280}
170281
170282// RequestId sets the optional parameter "requestId": An optional
170283// request ID to identify requests. Specify a unique request ID so that
170284// if you must retry your request, the server will know to ignore the
170285// request if it has already been completed.
170286//
170287// For example, consider a situation where you make an initial request
170288// and the request times out. If you make the request again with the
170289// same request ID, the server can check if original operation with the
170290// same request ID was received, and if so, will ignore the second
170291// request. This prevents clients from accidentally creating duplicate
170292// commitments.
170293//
170294// The request ID must be a valid UUID with the exception that zero UUID
170295// is not supported (00000000-0000-0000-0000-000000000000).
170296func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
170297	c.urlParams_.Set("requestId", requestId)
170298	return c
170299}
170300
170301// Fields allows partial responses to be retrieved. See
170302// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170303// for more information.
170304func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
170305	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170306	return c
170307}
170308
170309// Context sets the context to be used in this call's Do method. Any
170310// pending HTTP request will be aborted if the provided context is
170311// canceled.
170312func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
170313	c.ctx_ = ctx
170314	return c
170315}
170316
170317// Header returns an http.Header that can be modified by the caller to
170318// add HTTP headers to the request.
170319func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
170320	if c.header_ == nil {
170321		c.header_ = make(http.Header)
170322	}
170323	return c.header_
170324}
170325
170326func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
170327	reqHeaders := make(http.Header)
170328	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
170329	for k, v := range c.header_ {
170330		reqHeaders[k] = v
170331	}
170332	reqHeaders.Set("User-Agent", c.s.userAgent())
170333	var body io.Reader = nil
170334	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
170335	if err != nil {
170336		return nil, err
170337	}
170338	reqHeaders.Set("Content-Type", "application/json")
170339	c.urlParams_.Set("alt", alt)
170340	c.urlParams_.Set("prettyPrint", "false")
170341	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
170342	urls += "?" + c.urlParams_.Encode()
170343	req, err := http.NewRequest("POST", urls, body)
170344	if err != nil {
170345		return nil, err
170346	}
170347	req.Header = reqHeaders
170348	googleapi.Expand(req.URL, map[string]string{
170349		"project":          c.project,
170350		"targetHttpsProxy": c.targetHttpsProxy,
170351	})
170352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170353}
170354
170355// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
170356// Exactly one of *Operation or error will be non-nil. Any non-2xx
170357// status code is an error. Response headers are in either
170358// *Operation.ServerResponse.Header or (if a response was returned at
170359// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170360// to check whether the returned error was because
170361// http.StatusNotModified was returned.
170362func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170363	gensupport.SetOptions(c.urlParams_, opts...)
170364	res, err := c.doRequest("json")
170365	if res != nil && res.StatusCode == http.StatusNotModified {
170366		if res.Body != nil {
170367			res.Body.Close()
170368		}
170369		return nil, &googleapi.Error{
170370			Code:   res.StatusCode,
170371			Header: res.Header,
170372		}
170373	}
170374	if err != nil {
170375		return nil, err
170376	}
170377	defer googleapi.CloseBody(res)
170378	if err := googleapi.CheckResponse(res); err != nil {
170379		return nil, err
170380	}
170381	ret := &Operation{
170382		ServerResponse: googleapi.ServerResponse{
170383			Header:         res.Header,
170384			HTTPStatusCode: res.StatusCode,
170385		},
170386	}
170387	target := &ret
170388	if err := gensupport.DecodeResponse(target, res); err != nil {
170389		return nil, err
170390	}
170391	return ret, nil
170392	// {
170393	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
170394	//   "httpMethod": "POST",
170395	//   "id": "compute.targetHttpsProxies.setQuicOverride",
170396	//   "parameterOrder": [
170397	//     "project",
170398	//     "targetHttpsProxy"
170399	//   ],
170400	//   "parameters": {
170401	//     "project": {
170402	//       "description": "Project ID for this request.",
170403	//       "location": "path",
170404	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170405	//       "required": true,
170406	//       "type": "string"
170407	//     },
170408	//     "requestId": {
170409	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170410	//       "location": "query",
170411	//       "type": "string"
170412	//     },
170413	//     "targetHttpsProxy": {
170414	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
170415	//       "location": "path",
170416	//       "required": true,
170417	//       "type": "string"
170418	//     }
170419	//   },
170420	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
170421	//   "request": {
170422	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
170423	//   },
170424	//   "response": {
170425	//     "$ref": "Operation"
170426	//   },
170427	//   "scopes": [
170428	//     "https://www.googleapis.com/auth/cloud-platform",
170429	//     "https://www.googleapis.com/auth/compute"
170430	//   ]
170431	// }
170432
170433}
170434
170435// method id "compute.targetHttpsProxies.setSslCertificates":
170436
170437type TargetHttpsProxiesSetSslCertificatesCall struct {
170438	s                                           *Service
170439	project                                     string
170440	targetHttpsProxy                            string
170441	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
170442	urlParams_                                  gensupport.URLParams
170443	ctx_                                        context.Context
170444	header_                                     http.Header
170445}
170446
170447// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
170448//
170449// - project: Project ID for this request.
170450// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
170451//   SslCertificates resource for.
170452func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
170453	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170454	c.project = project
170455	c.targetHttpsProxy = targetHttpsProxy
170456	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
170457	return c
170458}
170459
170460// RequestId sets the optional parameter "requestId": An optional
170461// request ID to identify requests. Specify a unique request ID so that
170462// if you must retry your request, the server will know to ignore the
170463// request if it has already been completed.
170464//
170465// For example, consider a situation where you make an initial request
170466// and the request times out. If you make the request again with the
170467// same request ID, the server can check if original operation with the
170468// same request ID was received, and if so, will ignore the second
170469// request. This prevents clients from accidentally creating duplicate
170470// commitments.
170471//
170472// The request ID must be a valid UUID with the exception that zero UUID
170473// is not supported (00000000-0000-0000-0000-000000000000).
170474func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
170475	c.urlParams_.Set("requestId", requestId)
170476	return c
170477}
170478
170479// Fields allows partial responses to be retrieved. See
170480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170481// for more information.
170482func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
170483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170484	return c
170485}
170486
170487// Context sets the context to be used in this call's Do method. Any
170488// pending HTTP request will be aborted if the provided context is
170489// canceled.
170490func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
170491	c.ctx_ = ctx
170492	return c
170493}
170494
170495// Header returns an http.Header that can be modified by the caller to
170496// add HTTP headers to the request.
170497func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
170498	if c.header_ == nil {
170499		c.header_ = make(http.Header)
170500	}
170501	return c.header_
170502}
170503
170504func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
170505	reqHeaders := make(http.Header)
170506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
170507	for k, v := range c.header_ {
170508		reqHeaders[k] = v
170509	}
170510	reqHeaders.Set("User-Agent", c.s.userAgent())
170511	var body io.Reader = nil
170512	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
170513	if err != nil {
170514		return nil, err
170515	}
170516	reqHeaders.Set("Content-Type", "application/json")
170517	c.urlParams_.Set("alt", alt)
170518	c.urlParams_.Set("prettyPrint", "false")
170519	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
170520	urls += "?" + c.urlParams_.Encode()
170521	req, err := http.NewRequest("POST", urls, body)
170522	if err != nil {
170523		return nil, err
170524	}
170525	req.Header = reqHeaders
170526	googleapi.Expand(req.URL, map[string]string{
170527		"project":          c.project,
170528		"targetHttpsProxy": c.targetHttpsProxy,
170529	})
170530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170531}
170532
170533// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
170534// Exactly one of *Operation or error will be non-nil. Any non-2xx
170535// status code is an error. Response headers are in either
170536// *Operation.ServerResponse.Header or (if a response was returned at
170537// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170538// to check whether the returned error was because
170539// http.StatusNotModified was returned.
170540func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170541	gensupport.SetOptions(c.urlParams_, opts...)
170542	res, err := c.doRequest("json")
170543	if res != nil && res.StatusCode == http.StatusNotModified {
170544		if res.Body != nil {
170545			res.Body.Close()
170546		}
170547		return nil, &googleapi.Error{
170548			Code:   res.StatusCode,
170549			Header: res.Header,
170550		}
170551	}
170552	if err != nil {
170553		return nil, err
170554	}
170555	defer googleapi.CloseBody(res)
170556	if err := googleapi.CheckResponse(res); err != nil {
170557		return nil, err
170558	}
170559	ret := &Operation{
170560		ServerResponse: googleapi.ServerResponse{
170561			Header:         res.Header,
170562			HTTPStatusCode: res.StatusCode,
170563		},
170564	}
170565	target := &ret
170566	if err := gensupport.DecodeResponse(target, res); err != nil {
170567		return nil, err
170568	}
170569	return ret, nil
170570	// {
170571	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
170572	//   "httpMethod": "POST",
170573	//   "id": "compute.targetHttpsProxies.setSslCertificates",
170574	//   "parameterOrder": [
170575	//     "project",
170576	//     "targetHttpsProxy"
170577	//   ],
170578	//   "parameters": {
170579	//     "project": {
170580	//       "description": "Project ID for this request.",
170581	//       "location": "path",
170582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-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	//     "targetHttpsProxy": {
170592	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource 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}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
170600	//   "request": {
170601	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
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.targetHttpsProxies.setSslPolicy":
170615
170616type TargetHttpsProxiesSetSslPolicyCall struct {
170617	s                  *Service
170618	project            string
170619	targetHttpsProxy   string
170620	sslpolicyreference *SslPolicyReference
170621	urlParams_         gensupport.URLParams
170622	ctx_               context.Context
170623	header_            http.Header
170624}
170625
170626// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
170627// policy specifies the server-side support for SSL features. This
170628// affects connections between clients and the HTTPS proxy load
170629// balancer. They do not affect the connection between the load balancer
170630// and the backends.
170631//
170632// - project: Project ID for this request.
170633// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose SSL
170634//   policy is to be set. The name must be 1-63 characters long, and
170635//   comply with RFC1035.
170636func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
170637	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170638	c.project = project
170639	c.targetHttpsProxy = targetHttpsProxy
170640	c.sslpolicyreference = sslpolicyreference
170641	return c
170642}
170643
170644// RequestId sets the optional parameter "requestId": An optional
170645// request ID to identify requests. Specify a unique request ID so that
170646// if you must retry your request, the server will know to ignore the
170647// request if it has already been completed.
170648//
170649// For example, consider a situation where you make an initial request
170650// and the request times out. If you make the request again with the
170651// same request ID, the server can check if original operation with the
170652// same request ID was received, and if so, will ignore the second
170653// request. This prevents clients from accidentally creating duplicate
170654// commitments.
170655//
170656// The request ID must be a valid UUID with the exception that zero UUID
170657// is not supported (00000000-0000-0000-0000-000000000000).
170658func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
170659	c.urlParams_.Set("requestId", requestId)
170660	return c
170661}
170662
170663// Fields allows partial responses to be retrieved. See
170664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170665// for more information.
170666func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
170667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170668	return c
170669}
170670
170671// Context sets the context to be used in this call's Do method. Any
170672// pending HTTP request will be aborted if the provided context is
170673// canceled.
170674func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
170675	c.ctx_ = ctx
170676	return c
170677}
170678
170679// Header returns an http.Header that can be modified by the caller to
170680// add HTTP headers to the request.
170681func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
170682	if c.header_ == nil {
170683		c.header_ = make(http.Header)
170684	}
170685	return c.header_
170686}
170687
170688func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
170689	reqHeaders := make(http.Header)
170690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
170691	for k, v := range c.header_ {
170692		reqHeaders[k] = v
170693	}
170694	reqHeaders.Set("User-Agent", c.s.userAgent())
170695	var body io.Reader = nil
170696	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
170697	if err != nil {
170698		return nil, err
170699	}
170700	reqHeaders.Set("Content-Type", "application/json")
170701	c.urlParams_.Set("alt", alt)
170702	c.urlParams_.Set("prettyPrint", "false")
170703	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
170704	urls += "?" + c.urlParams_.Encode()
170705	req, err := http.NewRequest("POST", urls, body)
170706	if err != nil {
170707		return nil, err
170708	}
170709	req.Header = reqHeaders
170710	googleapi.Expand(req.URL, map[string]string{
170711		"project":          c.project,
170712		"targetHttpsProxy": c.targetHttpsProxy,
170713	})
170714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170715}
170716
170717// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
170718// Exactly one of *Operation or error will be non-nil. Any non-2xx
170719// status code is an error. Response headers are in either
170720// *Operation.ServerResponse.Header or (if a response was returned at
170721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170722// to check whether the returned error was because
170723// http.StatusNotModified was returned.
170724func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170725	gensupport.SetOptions(c.urlParams_, opts...)
170726	res, err := c.doRequest("json")
170727	if res != nil && res.StatusCode == http.StatusNotModified {
170728		if res.Body != nil {
170729			res.Body.Close()
170730		}
170731		return nil, &googleapi.Error{
170732			Code:   res.StatusCode,
170733			Header: res.Header,
170734		}
170735	}
170736	if err != nil {
170737		return nil, err
170738	}
170739	defer googleapi.CloseBody(res)
170740	if err := googleapi.CheckResponse(res); err != nil {
170741		return nil, err
170742	}
170743	ret := &Operation{
170744		ServerResponse: googleapi.ServerResponse{
170745			Header:         res.Header,
170746			HTTPStatusCode: res.StatusCode,
170747		},
170748	}
170749	target := &ret
170750	if err := gensupport.DecodeResponse(target, res); err != nil {
170751		return nil, err
170752	}
170753	return ret, nil
170754	// {
170755	//   "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.",
170756	//   "httpMethod": "POST",
170757	//   "id": "compute.targetHttpsProxies.setSslPolicy",
170758	//   "parameterOrder": [
170759	//     "project",
170760	//     "targetHttpsProxy"
170761	//   ],
170762	//   "parameters": {
170763	//     "project": {
170764	//       "description": "Project ID for this request.",
170765	//       "location": "path",
170766	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170767	//       "required": true,
170768	//       "type": "string"
170769	//     },
170770	//     "requestId": {
170771	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170772	//       "location": "query",
170773	//       "type": "string"
170774	//     },
170775	//     "targetHttpsProxy": {
170776	//       "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.",
170777	//       "location": "path",
170778	//       "required": true,
170779	//       "type": "string"
170780	//     }
170781	//   },
170782	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
170783	//   "request": {
170784	//     "$ref": "SslPolicyReference"
170785	//   },
170786	//   "response": {
170787	//     "$ref": "Operation"
170788	//   },
170789	//   "scopes": [
170790	//     "https://www.googleapis.com/auth/cloud-platform",
170791	//     "https://www.googleapis.com/auth/compute"
170792	//   ]
170793	// }
170794
170795}
170796
170797// method id "compute.targetHttpsProxies.setUrlMap":
170798
170799type TargetHttpsProxiesSetUrlMapCall struct {
170800	s                *Service
170801	project          string
170802	targetHttpsProxy string
170803	urlmapreference  *UrlMapReference
170804	urlParams_       gensupport.URLParams
170805	ctx_             context.Context
170806	header_          http.Header
170807}
170808
170809// SetUrlMap: Changes the URL map for TargetHttpsProxy.
170810//
170811// - project: Project ID for this request.
170812// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose URL
170813//   map is to be set.
170814func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
170815	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170816	c.project = project
170817	c.targetHttpsProxy = targetHttpsProxy
170818	c.urlmapreference = urlmapreference
170819	return c
170820}
170821
170822// RequestId sets the optional parameter "requestId": An optional
170823// request ID to identify requests. Specify a unique request ID so that
170824// if you must retry your request, the server will know to ignore the
170825// request if it has already been completed.
170826//
170827// For example, consider a situation where you make an initial request
170828// and the request times out. If you make the request again with the
170829// same request ID, the server can check if original operation with the
170830// same request ID was received, and if so, will ignore the second
170831// request. This prevents clients from accidentally creating duplicate
170832// commitments.
170833//
170834// The request ID must be a valid UUID with the exception that zero UUID
170835// is not supported (00000000-0000-0000-0000-000000000000).
170836func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
170837	c.urlParams_.Set("requestId", requestId)
170838	return c
170839}
170840
170841// Fields allows partial responses to be retrieved. See
170842// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170843// for more information.
170844func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
170845	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170846	return c
170847}
170848
170849// Context sets the context to be used in this call's Do method. Any
170850// pending HTTP request will be aborted if the provided context is
170851// canceled.
170852func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
170853	c.ctx_ = ctx
170854	return c
170855}
170856
170857// Header returns an http.Header that can be modified by the caller to
170858// add HTTP headers to the request.
170859func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
170860	if c.header_ == nil {
170861		c.header_ = make(http.Header)
170862	}
170863	return c.header_
170864}
170865
170866func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
170867	reqHeaders := make(http.Header)
170868	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
170869	for k, v := range c.header_ {
170870		reqHeaders[k] = v
170871	}
170872	reqHeaders.Set("User-Agent", c.s.userAgent())
170873	var body io.Reader = nil
170874	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
170875	if err != nil {
170876		return nil, err
170877	}
170878	reqHeaders.Set("Content-Type", "application/json")
170879	c.urlParams_.Set("alt", alt)
170880	c.urlParams_.Set("prettyPrint", "false")
170881	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
170882	urls += "?" + c.urlParams_.Encode()
170883	req, err := http.NewRequest("POST", urls, body)
170884	if err != nil {
170885		return nil, err
170886	}
170887	req.Header = reqHeaders
170888	googleapi.Expand(req.URL, map[string]string{
170889		"project":          c.project,
170890		"targetHttpsProxy": c.targetHttpsProxy,
170891	})
170892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170893}
170894
170895// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
170896// Exactly one of *Operation or error will be non-nil. Any non-2xx
170897// status code is an error. Response headers are in either
170898// *Operation.ServerResponse.Header or (if a response was returned at
170899// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170900// to check whether the returned error was because
170901// http.StatusNotModified was returned.
170902func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170903	gensupport.SetOptions(c.urlParams_, opts...)
170904	res, err := c.doRequest("json")
170905	if res != nil && res.StatusCode == http.StatusNotModified {
170906		if res.Body != nil {
170907			res.Body.Close()
170908		}
170909		return nil, &googleapi.Error{
170910			Code:   res.StatusCode,
170911			Header: res.Header,
170912		}
170913	}
170914	if err != nil {
170915		return nil, err
170916	}
170917	defer googleapi.CloseBody(res)
170918	if err := googleapi.CheckResponse(res); err != nil {
170919		return nil, err
170920	}
170921	ret := &Operation{
170922		ServerResponse: googleapi.ServerResponse{
170923			Header:         res.Header,
170924			HTTPStatusCode: res.StatusCode,
170925		},
170926	}
170927	target := &ret
170928	if err := gensupport.DecodeResponse(target, res); err != nil {
170929		return nil, err
170930	}
170931	return ret, nil
170932	// {
170933	//   "description": "Changes the URL map for TargetHttpsProxy.",
170934	//   "httpMethod": "POST",
170935	//   "id": "compute.targetHttpsProxies.setUrlMap",
170936	//   "parameterOrder": [
170937	//     "project",
170938	//     "targetHttpsProxy"
170939	//   ],
170940	//   "parameters": {
170941	//     "project": {
170942	//       "description": "Project ID for this request.",
170943	//       "location": "path",
170944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170945	//       "required": true,
170946	//       "type": "string"
170947	//     },
170948	//     "requestId": {
170949	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170950	//       "location": "query",
170951	//       "type": "string"
170952	//     },
170953	//     "targetHttpsProxy": {
170954	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
170955	//       "location": "path",
170956	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170957	//       "required": true,
170958	//       "type": "string"
170959	//     }
170960	//   },
170961	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
170962	//   "request": {
170963	//     "$ref": "UrlMapReference"
170964	//   },
170965	//   "response": {
170966	//     "$ref": "Operation"
170967	//   },
170968	//   "scopes": [
170969	//     "https://www.googleapis.com/auth/cloud-platform",
170970	//     "https://www.googleapis.com/auth/compute"
170971	//   ]
170972	// }
170973
170974}
170975
170976// method id "compute.targetHttpsProxies.testIamPermissions":
170977
170978type TargetHttpsProxiesTestIamPermissionsCall struct {
170979	s                      *Service
170980	project                string
170981	resource               string
170982	testpermissionsrequest *TestPermissionsRequest
170983	urlParams_             gensupport.URLParams
170984	ctx_                   context.Context
170985	header_                http.Header
170986}
170987
170988// TestIamPermissions: Returns permissions that a caller has on the
170989// specified resource.
170990//
170991// - project: Project ID for this request.
170992// - resource: Name or id of the resource for this request.
170993func (r *TargetHttpsProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpsProxiesTestIamPermissionsCall {
170994	c := &TargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170995	c.project = project
170996	c.resource = resource
170997	c.testpermissionsrequest = testpermissionsrequest
170998	return c
170999}
171000
171001// Fields allows partial responses to be retrieved. See
171002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171003// for more information.
171004func (c *TargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesTestIamPermissionsCall {
171005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171006	return c
171007}
171008
171009// Context sets the context to be used in this call's Do method. Any
171010// pending HTTP request will be aborted if the provided context is
171011// canceled.
171012func (c *TargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpsProxiesTestIamPermissionsCall {
171013	c.ctx_ = ctx
171014	return c
171015}
171016
171017// Header returns an http.Header that can be modified by the caller to
171018// add HTTP headers to the request.
171019func (c *TargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
171020	if c.header_ == nil {
171021		c.header_ = make(http.Header)
171022	}
171023	return c.header_
171024}
171025
171026func (c *TargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
171027	reqHeaders := make(http.Header)
171028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
171029	for k, v := range c.header_ {
171030		reqHeaders[k] = v
171031	}
171032	reqHeaders.Set("User-Agent", c.s.userAgent())
171033	var body io.Reader = nil
171034	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
171035	if err != nil {
171036		return nil, err
171037	}
171038	reqHeaders.Set("Content-Type", "application/json")
171039	c.urlParams_.Set("alt", alt)
171040	c.urlParams_.Set("prettyPrint", "false")
171041	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{resource}/testIamPermissions")
171042	urls += "?" + c.urlParams_.Encode()
171043	req, err := http.NewRequest("POST", urls, body)
171044	if err != nil {
171045		return nil, err
171046	}
171047	req.Header = reqHeaders
171048	googleapi.Expand(req.URL, map[string]string{
171049		"project":  c.project,
171050		"resource": c.resource,
171051	})
171052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171053}
171054
171055// Do executes the "compute.targetHttpsProxies.testIamPermissions" call.
171056// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
171057// non-2xx status code is an error. Response headers are in either
171058// *TestPermissionsResponse.ServerResponse.Header or (if a response was
171059// returned at all) in error.(*googleapi.Error).Header. Use
171060// googleapi.IsNotModified to check whether the returned error was
171061// because http.StatusNotModified was returned.
171062func (c *TargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
171063	gensupport.SetOptions(c.urlParams_, opts...)
171064	res, err := c.doRequest("json")
171065	if res != nil && res.StatusCode == http.StatusNotModified {
171066		if res.Body != nil {
171067			res.Body.Close()
171068		}
171069		return nil, &googleapi.Error{
171070			Code:   res.StatusCode,
171071			Header: res.Header,
171072		}
171073	}
171074	if err != nil {
171075		return nil, err
171076	}
171077	defer googleapi.CloseBody(res)
171078	if err := googleapi.CheckResponse(res); err != nil {
171079		return nil, err
171080	}
171081	ret := &TestPermissionsResponse{
171082		ServerResponse: googleapi.ServerResponse{
171083			Header:         res.Header,
171084			HTTPStatusCode: res.StatusCode,
171085		},
171086	}
171087	target := &ret
171088	if err := gensupport.DecodeResponse(target, res); err != nil {
171089		return nil, err
171090	}
171091	return ret, nil
171092	// {
171093	//   "description": "Returns permissions that a caller has on the specified resource.",
171094	//   "httpMethod": "POST",
171095	//   "id": "compute.targetHttpsProxies.testIamPermissions",
171096	//   "parameterOrder": [
171097	//     "project",
171098	//     "resource"
171099	//   ],
171100	//   "parameters": {
171101	//     "project": {
171102	//       "description": "Project ID for this request.",
171103	//       "location": "path",
171104	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171105	//       "required": true,
171106	//       "type": "string"
171107	//     },
171108	//     "resource": {
171109	//       "description": "Name or id of the resource for this request.",
171110	//       "location": "path",
171111	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171112	//       "required": true,
171113	//       "type": "string"
171114	//     }
171115	//   },
171116	//   "path": "projects/{project}/global/targetHttpsProxies/{resource}/testIamPermissions",
171117	//   "request": {
171118	//     "$ref": "TestPermissionsRequest"
171119	//   },
171120	//   "response": {
171121	//     "$ref": "TestPermissionsResponse"
171122	//   },
171123	//   "scopes": [
171124	//     "https://www.googleapis.com/auth/cloud-platform",
171125	//     "https://www.googleapis.com/auth/compute",
171126	//     "https://www.googleapis.com/auth/compute.readonly"
171127	//   ]
171128	// }
171129
171130}
171131
171132// method id "compute.targetInstances.aggregatedList":
171133
171134type TargetInstancesAggregatedListCall struct {
171135	s            *Service
171136	project      string
171137	urlParams_   gensupport.URLParams
171138	ifNoneMatch_ string
171139	ctx_         context.Context
171140	header_      http.Header
171141}
171142
171143// AggregatedList: Retrieves an aggregated list of target instances.
171144//
171145// - project: Project ID for this request.
171146// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
171147func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
171148	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171149	c.project = project
171150	return c
171151}
171152
171153// Filter sets the optional parameter "filter": A filter expression that
171154// filters resources listed in the response. The expression must specify
171155// the field name, a comparison operator, and the value that you want to
171156// use for filtering. The value must be a string, a number, or a
171157// boolean. The comparison operator must be either `=`, `!=`, `>`, or
171158// `<`.
171159//
171160// For example, if you are filtering Compute Engine instances, you can
171161// exclude instances named `example-instance` by specifying `name !=
171162// example-instance`.
171163//
171164// You can also filter nested fields. For example, you could specify
171165// `scheduling.automaticRestart = false` to include instances only if
171166// they are not scheduled for automatic restarts. You can use filtering
171167// on nested fields to filter based on resource labels.
171168//
171169// To filter on multiple expressions, provide each separate expression
171170// within parentheses. For example: ``` (scheduling.automaticRestart =
171171// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
171172// is an `AND` expression. However, you can include `AND` and `OR`
171173// expressions explicitly. For example: ``` (cpuPlatform = "Intel
171174// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
171175// (scheduling.automaticRestart = true) ```
171176func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
171177	c.urlParams_.Set("filter", filter)
171178	return c
171179}
171180
171181// IncludeAllScopes sets the optional parameter "includeAllScopes":
171182// Indicates whether every visible scope for each scope type (zone,
171183// region, global) should be included in the response. For new resource
171184// types added after this field, the flag has no effect as new resource
171185// types will always include every visible scope for each scope type in
171186// response. For resource types which predate this field, if this flag
171187// is omitted or false, only scopes of the scope types where the
171188// resource type is expected to be found will be included.
171189func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
171190	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
171191	return c
171192}
171193
171194// MaxResults sets the optional parameter "maxResults": The maximum
171195// number of results per page that should be returned. If the number of
171196// available results is larger than `maxResults`, Compute Engine returns
171197// a `nextPageToken` that can be used to get the next page of results in
171198// subsequent list requests. Acceptable values are `0` to `500`,
171199// inclusive. (Default: `500`)
171200func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
171201	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
171202	return c
171203}
171204
171205// OrderBy sets the optional parameter "orderBy": Sorts list results by
171206// a certain order. By default, results are returned in alphanumerical
171207// order based on the resource name.
171208//
171209// You can also sort results in descending order based on the creation
171210// timestamp using `orderBy="creationTimestamp desc". This sorts
171211// results based on the `creationTimestamp` field in reverse
171212// chronological order (newest result first). Use this to sort resources
171213// like operations so that the newest operation is returned
171214// first.
171215//
171216// Currently, only sorting by `name` or `creationTimestamp desc` is
171217// supported.
171218func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
171219	c.urlParams_.Set("orderBy", orderBy)
171220	return c
171221}
171222
171223// PageToken sets the optional parameter "pageToken": Specifies a page
171224// token to use. Set `pageToken` to the `nextPageToken` returned by a
171225// previous list request to get the next page of results.
171226func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
171227	c.urlParams_.Set("pageToken", pageToken)
171228	return c
171229}
171230
171231// ReturnPartialSuccess sets the optional parameter
171232// "returnPartialSuccess": Opt-in for partial success behavior which
171233// provides partial results in case of failure. The default value is
171234// false.
171235func (c *TargetInstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesAggregatedListCall {
171236	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
171237	return c
171238}
171239
171240// Fields allows partial responses to be retrieved. See
171241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171242// for more information.
171243func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
171244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171245	return c
171246}
171247
171248// IfNoneMatch sets the optional parameter which makes the operation
171249// fail if the object's ETag matches the given value. This is useful for
171250// getting updates only after the object has changed since the last
171251// request. Use googleapi.IsNotModified to check whether the response
171252// error from Do is the result of In-None-Match.
171253func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
171254	c.ifNoneMatch_ = entityTag
171255	return c
171256}
171257
171258// Context sets the context to be used in this call's Do method. Any
171259// pending HTTP request will be aborted if the provided context is
171260// canceled.
171261func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
171262	c.ctx_ = ctx
171263	return c
171264}
171265
171266// Header returns an http.Header that can be modified by the caller to
171267// add HTTP headers to the request.
171268func (c *TargetInstancesAggregatedListCall) Header() http.Header {
171269	if c.header_ == nil {
171270		c.header_ = make(http.Header)
171271	}
171272	return c.header_
171273}
171274
171275func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
171276	reqHeaders := make(http.Header)
171277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
171278	for k, v := range c.header_ {
171279		reqHeaders[k] = v
171280	}
171281	reqHeaders.Set("User-Agent", c.s.userAgent())
171282	if c.ifNoneMatch_ != "" {
171283		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
171284	}
171285	var body io.Reader = nil
171286	c.urlParams_.Set("alt", alt)
171287	c.urlParams_.Set("prettyPrint", "false")
171288	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetInstances")
171289	urls += "?" + c.urlParams_.Encode()
171290	req, err := http.NewRequest("GET", urls, body)
171291	if err != nil {
171292		return nil, err
171293	}
171294	req.Header = reqHeaders
171295	googleapi.Expand(req.URL, map[string]string{
171296		"project": c.project,
171297	})
171298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171299}
171300
171301// Do executes the "compute.targetInstances.aggregatedList" call.
171302// Exactly one of *TargetInstanceAggregatedList or error will be
171303// non-nil. Any non-2xx status code is an error. Response headers are in
171304// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
171305// response was returned at all) in error.(*googleapi.Error).Header. Use
171306// googleapi.IsNotModified to check whether the returned error was
171307// because http.StatusNotModified was returned.
171308func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
171309	gensupport.SetOptions(c.urlParams_, opts...)
171310	res, err := c.doRequest("json")
171311	if res != nil && res.StatusCode == http.StatusNotModified {
171312		if res.Body != nil {
171313			res.Body.Close()
171314		}
171315		return nil, &googleapi.Error{
171316			Code:   res.StatusCode,
171317			Header: res.Header,
171318		}
171319	}
171320	if err != nil {
171321		return nil, err
171322	}
171323	defer googleapi.CloseBody(res)
171324	if err := googleapi.CheckResponse(res); err != nil {
171325		return nil, err
171326	}
171327	ret := &TargetInstanceAggregatedList{
171328		ServerResponse: googleapi.ServerResponse{
171329			Header:         res.Header,
171330			HTTPStatusCode: res.StatusCode,
171331		},
171332	}
171333	target := &ret
171334	if err := gensupport.DecodeResponse(target, res); err != nil {
171335		return nil, err
171336	}
171337	return ret, nil
171338	// {
171339	//   "description": "Retrieves an aggregated list of target instances.",
171340	//   "httpMethod": "GET",
171341	//   "id": "compute.targetInstances.aggregatedList",
171342	//   "parameterOrder": [
171343	//     "project"
171344	//   ],
171345	//   "parameters": {
171346	//     "filter": {
171347	//       "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) ```",
171348	//       "location": "query",
171349	//       "type": "string"
171350	//     },
171351	//     "includeAllScopes": {
171352	//       "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.",
171353	//       "location": "query",
171354	//       "type": "boolean"
171355	//     },
171356	//     "maxResults": {
171357	//       "default": "500",
171358	//       "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`)",
171359	//       "format": "uint32",
171360	//       "location": "query",
171361	//       "minimum": "0",
171362	//       "type": "integer"
171363	//     },
171364	//     "orderBy": {
171365	//       "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.",
171366	//       "location": "query",
171367	//       "type": "string"
171368	//     },
171369	//     "pageToken": {
171370	//       "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.",
171371	//       "location": "query",
171372	//       "type": "string"
171373	//     },
171374	//     "project": {
171375	//       "description": "Project ID for this request.",
171376	//       "location": "path",
171377	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171378	//       "required": true,
171379	//       "type": "string"
171380	//     },
171381	//     "returnPartialSuccess": {
171382	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
171383	//       "location": "query",
171384	//       "type": "boolean"
171385	//     }
171386	//   },
171387	//   "path": "projects/{project}/aggregated/targetInstances",
171388	//   "response": {
171389	//     "$ref": "TargetInstanceAggregatedList"
171390	//   },
171391	//   "scopes": [
171392	//     "https://www.googleapis.com/auth/cloud-platform",
171393	//     "https://www.googleapis.com/auth/compute",
171394	//     "https://www.googleapis.com/auth/compute.readonly"
171395	//   ]
171396	// }
171397
171398}
171399
171400// Pages invokes f for each page of results.
171401// A non-nil error returned from f will halt the iteration.
171402// The provided context supersedes any context provided to the Context method.
171403func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
171404	c.ctx_ = ctx
171405	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
171406	for {
171407		x, err := c.Do()
171408		if err != nil {
171409			return err
171410		}
171411		if err := f(x); err != nil {
171412			return err
171413		}
171414		if x.NextPageToken == "" {
171415			return nil
171416		}
171417		c.PageToken(x.NextPageToken)
171418	}
171419}
171420
171421// method id "compute.targetInstances.delete":
171422
171423type TargetInstancesDeleteCall struct {
171424	s              *Service
171425	project        string
171426	zone           string
171427	targetInstance string
171428	urlParams_     gensupport.URLParams
171429	ctx_           context.Context
171430	header_        http.Header
171431}
171432
171433// Delete: Deletes the specified TargetInstance resource.
171434//
171435// - project: Project ID for this request.
171436// - targetInstance: Name of the TargetInstance resource to delete.
171437// - zone: Name of the zone scoping this request.
171438// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
171439func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
171440	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171441	c.project = project
171442	c.zone = zone
171443	c.targetInstance = targetInstance
171444	return c
171445}
171446
171447// RequestId sets the optional parameter "requestId": An optional
171448// request ID to identify requests. Specify a unique request ID so that
171449// if you must retry your request, the server will know to ignore the
171450// request if it has already been completed.
171451//
171452// For example, consider a situation where you make an initial request
171453// and the request times out. If you make the request again with the
171454// same request ID, the server can check if original operation with the
171455// same request ID was received, and if so, will ignore the second
171456// request. This prevents clients from accidentally creating duplicate
171457// commitments.
171458//
171459// The request ID must be a valid UUID with the exception that zero UUID
171460// is not supported (00000000-0000-0000-0000-000000000000).
171461func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
171462	c.urlParams_.Set("requestId", requestId)
171463	return c
171464}
171465
171466// Fields allows partial responses to be retrieved. See
171467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171468// for more information.
171469func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
171470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171471	return c
171472}
171473
171474// Context sets the context to be used in this call's Do method. Any
171475// pending HTTP request will be aborted if the provided context is
171476// canceled.
171477func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
171478	c.ctx_ = ctx
171479	return c
171480}
171481
171482// Header returns an http.Header that can be modified by the caller to
171483// add HTTP headers to the request.
171484func (c *TargetInstancesDeleteCall) Header() http.Header {
171485	if c.header_ == nil {
171486		c.header_ = make(http.Header)
171487	}
171488	return c.header_
171489}
171490
171491func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
171492	reqHeaders := make(http.Header)
171493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
171494	for k, v := range c.header_ {
171495		reqHeaders[k] = v
171496	}
171497	reqHeaders.Set("User-Agent", c.s.userAgent())
171498	var body io.Reader = nil
171499	c.urlParams_.Set("alt", alt)
171500	c.urlParams_.Set("prettyPrint", "false")
171501	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
171502	urls += "?" + c.urlParams_.Encode()
171503	req, err := http.NewRequest("DELETE", urls, body)
171504	if err != nil {
171505		return nil, err
171506	}
171507	req.Header = reqHeaders
171508	googleapi.Expand(req.URL, map[string]string{
171509		"project":        c.project,
171510		"zone":           c.zone,
171511		"targetInstance": c.targetInstance,
171512	})
171513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171514}
171515
171516// Do executes the "compute.targetInstances.delete" call.
171517// Exactly one of *Operation or error will be non-nil. Any non-2xx
171518// status code is an error. Response headers are in either
171519// *Operation.ServerResponse.Header or (if a response was returned at
171520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171521// to check whether the returned error was because
171522// http.StatusNotModified was returned.
171523func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171524	gensupport.SetOptions(c.urlParams_, opts...)
171525	res, err := c.doRequest("json")
171526	if res != nil && res.StatusCode == http.StatusNotModified {
171527		if res.Body != nil {
171528			res.Body.Close()
171529		}
171530		return nil, &googleapi.Error{
171531			Code:   res.StatusCode,
171532			Header: res.Header,
171533		}
171534	}
171535	if err != nil {
171536		return nil, err
171537	}
171538	defer googleapi.CloseBody(res)
171539	if err := googleapi.CheckResponse(res); err != nil {
171540		return nil, err
171541	}
171542	ret := &Operation{
171543		ServerResponse: googleapi.ServerResponse{
171544			Header:         res.Header,
171545			HTTPStatusCode: res.StatusCode,
171546		},
171547	}
171548	target := &ret
171549	if err := gensupport.DecodeResponse(target, res); err != nil {
171550		return nil, err
171551	}
171552	return ret, nil
171553	// {
171554	//   "description": "Deletes the specified TargetInstance resource.",
171555	//   "httpMethod": "DELETE",
171556	//   "id": "compute.targetInstances.delete",
171557	//   "parameterOrder": [
171558	//     "project",
171559	//     "zone",
171560	//     "targetInstance"
171561	//   ],
171562	//   "parameters": {
171563	//     "project": {
171564	//       "description": "Project ID for this request.",
171565	//       "location": "path",
171566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171567	//       "required": true,
171568	//       "type": "string"
171569	//     },
171570	//     "requestId": {
171571	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171572	//       "location": "query",
171573	//       "type": "string"
171574	//     },
171575	//     "targetInstance": {
171576	//       "description": "Name of the TargetInstance resource to delete.",
171577	//       "location": "path",
171578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171579	//       "required": true,
171580	//       "type": "string"
171581	//     },
171582	//     "zone": {
171583	//       "description": "Name of the zone scoping this request.",
171584	//       "location": "path",
171585	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
171586	//       "required": true,
171587	//       "type": "string"
171588	//     }
171589	//   },
171590	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
171591	//   "response": {
171592	//     "$ref": "Operation"
171593	//   },
171594	//   "scopes": [
171595	//     "https://www.googleapis.com/auth/cloud-platform",
171596	//     "https://www.googleapis.com/auth/compute"
171597	//   ]
171598	// }
171599
171600}
171601
171602// method id "compute.targetInstances.get":
171603
171604type TargetInstancesGetCall struct {
171605	s              *Service
171606	project        string
171607	zone           string
171608	targetInstance string
171609	urlParams_     gensupport.URLParams
171610	ifNoneMatch_   string
171611	ctx_           context.Context
171612	header_        http.Header
171613}
171614
171615// Get: Returns the specified TargetInstance resource. Gets a list of
171616// available target instances by making a list() request.
171617//
171618// - project: Project ID for this request.
171619// - targetInstance: Name of the TargetInstance resource to return.
171620// - zone: Name of the zone scoping this request.
171621// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
171622func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
171623	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171624	c.project = project
171625	c.zone = zone
171626	c.targetInstance = targetInstance
171627	return c
171628}
171629
171630// Fields allows partial responses to be retrieved. See
171631// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171632// for more information.
171633func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
171634	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171635	return c
171636}
171637
171638// IfNoneMatch sets the optional parameter which makes the operation
171639// fail if the object's ETag matches the given value. This is useful for
171640// getting updates only after the object has changed since the last
171641// request. Use googleapi.IsNotModified to check whether the response
171642// error from Do is the result of In-None-Match.
171643func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
171644	c.ifNoneMatch_ = entityTag
171645	return c
171646}
171647
171648// Context sets the context to be used in this call's Do method. Any
171649// pending HTTP request will be aborted if the provided context is
171650// canceled.
171651func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
171652	c.ctx_ = ctx
171653	return c
171654}
171655
171656// Header returns an http.Header that can be modified by the caller to
171657// add HTTP headers to the request.
171658func (c *TargetInstancesGetCall) Header() http.Header {
171659	if c.header_ == nil {
171660		c.header_ = make(http.Header)
171661	}
171662	return c.header_
171663}
171664
171665func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
171666	reqHeaders := make(http.Header)
171667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
171668	for k, v := range c.header_ {
171669		reqHeaders[k] = v
171670	}
171671	reqHeaders.Set("User-Agent", c.s.userAgent())
171672	if c.ifNoneMatch_ != "" {
171673		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
171674	}
171675	var body io.Reader = nil
171676	c.urlParams_.Set("alt", alt)
171677	c.urlParams_.Set("prettyPrint", "false")
171678	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
171679	urls += "?" + c.urlParams_.Encode()
171680	req, err := http.NewRequest("GET", urls, body)
171681	if err != nil {
171682		return nil, err
171683	}
171684	req.Header = reqHeaders
171685	googleapi.Expand(req.URL, map[string]string{
171686		"project":        c.project,
171687		"zone":           c.zone,
171688		"targetInstance": c.targetInstance,
171689	})
171690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171691}
171692
171693// Do executes the "compute.targetInstances.get" call.
171694// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
171695// status code is an error. Response headers are in either
171696// *TargetInstance.ServerResponse.Header or (if a response was returned
171697// at all) in error.(*googleapi.Error).Header. Use
171698// googleapi.IsNotModified to check whether the returned error was
171699// because http.StatusNotModified was returned.
171700func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
171701	gensupport.SetOptions(c.urlParams_, opts...)
171702	res, err := c.doRequest("json")
171703	if res != nil && res.StatusCode == http.StatusNotModified {
171704		if res.Body != nil {
171705			res.Body.Close()
171706		}
171707		return nil, &googleapi.Error{
171708			Code:   res.StatusCode,
171709			Header: res.Header,
171710		}
171711	}
171712	if err != nil {
171713		return nil, err
171714	}
171715	defer googleapi.CloseBody(res)
171716	if err := googleapi.CheckResponse(res); err != nil {
171717		return nil, err
171718	}
171719	ret := &TargetInstance{
171720		ServerResponse: googleapi.ServerResponse{
171721			Header:         res.Header,
171722			HTTPStatusCode: res.StatusCode,
171723		},
171724	}
171725	target := &ret
171726	if err := gensupport.DecodeResponse(target, res); err != nil {
171727		return nil, err
171728	}
171729	return ret, nil
171730	// {
171731	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
171732	//   "httpMethod": "GET",
171733	//   "id": "compute.targetInstances.get",
171734	//   "parameterOrder": [
171735	//     "project",
171736	//     "zone",
171737	//     "targetInstance"
171738	//   ],
171739	//   "parameters": {
171740	//     "project": {
171741	//       "description": "Project ID for this request.",
171742	//       "location": "path",
171743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171744	//       "required": true,
171745	//       "type": "string"
171746	//     },
171747	//     "targetInstance": {
171748	//       "description": "Name of the TargetInstance resource to return.",
171749	//       "location": "path",
171750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171751	//       "required": true,
171752	//       "type": "string"
171753	//     },
171754	//     "zone": {
171755	//       "description": "Name of the zone scoping this request.",
171756	//       "location": "path",
171757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
171758	//       "required": true,
171759	//       "type": "string"
171760	//     }
171761	//   },
171762	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
171763	//   "response": {
171764	//     "$ref": "TargetInstance"
171765	//   },
171766	//   "scopes": [
171767	//     "https://www.googleapis.com/auth/cloud-platform",
171768	//     "https://www.googleapis.com/auth/compute",
171769	//     "https://www.googleapis.com/auth/compute.readonly"
171770	//   ]
171771	// }
171772
171773}
171774
171775// method id "compute.targetInstances.insert":
171776
171777type TargetInstancesInsertCall struct {
171778	s              *Service
171779	project        string
171780	zone           string
171781	targetinstance *TargetInstance
171782	urlParams_     gensupport.URLParams
171783	ctx_           context.Context
171784	header_        http.Header
171785}
171786
171787// Insert: Creates a TargetInstance resource in the specified project
171788// and zone using the data included in the request.
171789//
171790// - project: Project ID for this request.
171791// - zone: Name of the zone scoping this request.
171792// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
171793func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
171794	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171795	c.project = project
171796	c.zone = zone
171797	c.targetinstance = targetinstance
171798	return c
171799}
171800
171801// RequestId sets the optional parameter "requestId": An optional
171802// request ID to identify requests. Specify a unique request ID so that
171803// if you must retry your request, the server will know to ignore the
171804// request if it has already been completed.
171805//
171806// For example, consider a situation where you make an initial request
171807// and the request times out. If you make the request again with the
171808// same request ID, the server can check if original operation with the
171809// same request ID was received, and if so, will ignore the second
171810// request. This prevents clients from accidentally creating duplicate
171811// commitments.
171812//
171813// The request ID must be a valid UUID with the exception that zero UUID
171814// is not supported (00000000-0000-0000-0000-000000000000).
171815func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
171816	c.urlParams_.Set("requestId", requestId)
171817	return c
171818}
171819
171820// Fields allows partial responses to be retrieved. See
171821// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171822// for more information.
171823func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
171824	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171825	return c
171826}
171827
171828// Context sets the context to be used in this call's Do method. Any
171829// pending HTTP request will be aborted if the provided context is
171830// canceled.
171831func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
171832	c.ctx_ = ctx
171833	return c
171834}
171835
171836// Header returns an http.Header that can be modified by the caller to
171837// add HTTP headers to the request.
171838func (c *TargetInstancesInsertCall) Header() http.Header {
171839	if c.header_ == nil {
171840		c.header_ = make(http.Header)
171841	}
171842	return c.header_
171843}
171844
171845func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
171846	reqHeaders := make(http.Header)
171847	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
171848	for k, v := range c.header_ {
171849		reqHeaders[k] = v
171850	}
171851	reqHeaders.Set("User-Agent", c.s.userAgent())
171852	var body io.Reader = nil
171853	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
171854	if err != nil {
171855		return nil, err
171856	}
171857	reqHeaders.Set("Content-Type", "application/json")
171858	c.urlParams_.Set("alt", alt)
171859	c.urlParams_.Set("prettyPrint", "false")
171860	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
171861	urls += "?" + c.urlParams_.Encode()
171862	req, err := http.NewRequest("POST", urls, body)
171863	if err != nil {
171864		return nil, err
171865	}
171866	req.Header = reqHeaders
171867	googleapi.Expand(req.URL, map[string]string{
171868		"project": c.project,
171869		"zone":    c.zone,
171870	})
171871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171872}
171873
171874// Do executes the "compute.targetInstances.insert" call.
171875// Exactly one of *Operation or error will be non-nil. Any non-2xx
171876// status code is an error. Response headers are in either
171877// *Operation.ServerResponse.Header or (if a response was returned at
171878// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171879// to check whether the returned error was because
171880// http.StatusNotModified was returned.
171881func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171882	gensupport.SetOptions(c.urlParams_, opts...)
171883	res, err := c.doRequest("json")
171884	if res != nil && res.StatusCode == http.StatusNotModified {
171885		if res.Body != nil {
171886			res.Body.Close()
171887		}
171888		return nil, &googleapi.Error{
171889			Code:   res.StatusCode,
171890			Header: res.Header,
171891		}
171892	}
171893	if err != nil {
171894		return nil, err
171895	}
171896	defer googleapi.CloseBody(res)
171897	if err := googleapi.CheckResponse(res); err != nil {
171898		return nil, err
171899	}
171900	ret := &Operation{
171901		ServerResponse: googleapi.ServerResponse{
171902			Header:         res.Header,
171903			HTTPStatusCode: res.StatusCode,
171904		},
171905	}
171906	target := &ret
171907	if err := gensupport.DecodeResponse(target, res); err != nil {
171908		return nil, err
171909	}
171910	return ret, nil
171911	// {
171912	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
171913	//   "httpMethod": "POST",
171914	//   "id": "compute.targetInstances.insert",
171915	//   "parameterOrder": [
171916	//     "project",
171917	//     "zone"
171918	//   ],
171919	//   "parameters": {
171920	//     "project": {
171921	//       "description": "Project ID for this request.",
171922	//       "location": "path",
171923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171924	//       "required": true,
171925	//       "type": "string"
171926	//     },
171927	//     "requestId": {
171928	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171929	//       "location": "query",
171930	//       "type": "string"
171931	//     },
171932	//     "zone": {
171933	//       "description": "Name of the zone scoping this request.",
171934	//       "location": "path",
171935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
171936	//       "required": true,
171937	//       "type": "string"
171938	//     }
171939	//   },
171940	//   "path": "projects/{project}/zones/{zone}/targetInstances",
171941	//   "request": {
171942	//     "$ref": "TargetInstance"
171943	//   },
171944	//   "response": {
171945	//     "$ref": "Operation"
171946	//   },
171947	//   "scopes": [
171948	//     "https://www.googleapis.com/auth/cloud-platform",
171949	//     "https://www.googleapis.com/auth/compute"
171950	//   ]
171951	// }
171952
171953}
171954
171955// method id "compute.targetInstances.list":
171956
171957type TargetInstancesListCall struct {
171958	s            *Service
171959	project      string
171960	zone         string
171961	urlParams_   gensupport.URLParams
171962	ifNoneMatch_ string
171963	ctx_         context.Context
171964	header_      http.Header
171965}
171966
171967// List: Retrieves a list of TargetInstance resources available to the
171968// specified project and zone.
171969//
171970// - project: Project ID for this request.
171971// - zone: Name of the zone scoping this request.
171972// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
171973func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
171974	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171975	c.project = project
171976	c.zone = zone
171977	return c
171978}
171979
171980// Filter sets the optional parameter "filter": A filter expression that
171981// filters resources listed in the response. The expression must specify
171982// the field name, a comparison operator, and the value that you want to
171983// use for filtering. The value must be a string, a number, or a
171984// boolean. The comparison operator must be either `=`, `!=`, `>`, or
171985// `<`.
171986//
171987// For example, if you are filtering Compute Engine instances, you can
171988// exclude instances named `example-instance` by specifying `name !=
171989// example-instance`.
171990//
171991// You can also filter nested fields. For example, you could specify
171992// `scheduling.automaticRestart = false` to include instances only if
171993// they are not scheduled for automatic restarts. You can use filtering
171994// on nested fields to filter based on resource labels.
171995//
171996// To filter on multiple expressions, provide each separate expression
171997// within parentheses. For example: ``` (scheduling.automaticRestart =
171998// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
171999// is an `AND` expression. However, you can include `AND` and `OR`
172000// expressions explicitly. For example: ``` (cpuPlatform = "Intel
172001// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
172002// (scheduling.automaticRestart = true) ```
172003func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
172004	c.urlParams_.Set("filter", filter)
172005	return c
172006}
172007
172008// MaxResults sets the optional parameter "maxResults": The maximum
172009// number of results per page that should be returned. If the number of
172010// available results is larger than `maxResults`, Compute Engine returns
172011// a `nextPageToken` that can be used to get the next page of results in
172012// subsequent list requests. Acceptable values are `0` to `500`,
172013// inclusive. (Default: `500`)
172014func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
172015	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
172016	return c
172017}
172018
172019// OrderBy sets the optional parameter "orderBy": Sorts list results by
172020// a certain order. By default, results are returned in alphanumerical
172021// order based on the resource name.
172022//
172023// You can also sort results in descending order based on the creation
172024// timestamp using `orderBy="creationTimestamp desc". This sorts
172025// results based on the `creationTimestamp` field in reverse
172026// chronological order (newest result first). Use this to sort resources
172027// like operations so that the newest operation is returned
172028// first.
172029//
172030// Currently, only sorting by `name` or `creationTimestamp desc` is
172031// supported.
172032func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
172033	c.urlParams_.Set("orderBy", orderBy)
172034	return c
172035}
172036
172037// PageToken sets the optional parameter "pageToken": Specifies a page
172038// token to use. Set `pageToken` to the `nextPageToken` returned by a
172039// previous list request to get the next page of results.
172040func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
172041	c.urlParams_.Set("pageToken", pageToken)
172042	return c
172043}
172044
172045// ReturnPartialSuccess sets the optional parameter
172046// "returnPartialSuccess": Opt-in for partial success behavior which
172047// provides partial results in case of failure. The default value is
172048// false.
172049func (c *TargetInstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesListCall {
172050	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
172051	return c
172052}
172053
172054// Fields allows partial responses to be retrieved. See
172055// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172056// for more information.
172057func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
172058	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172059	return c
172060}
172061
172062// IfNoneMatch sets the optional parameter which makes the operation
172063// fail if the object's ETag matches the given value. This is useful for
172064// getting updates only after the object has changed since the last
172065// request. Use googleapi.IsNotModified to check whether the response
172066// error from Do is the result of In-None-Match.
172067func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
172068	c.ifNoneMatch_ = entityTag
172069	return c
172070}
172071
172072// Context sets the context to be used in this call's Do method. Any
172073// pending HTTP request will be aborted if the provided context is
172074// canceled.
172075func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
172076	c.ctx_ = ctx
172077	return c
172078}
172079
172080// Header returns an http.Header that can be modified by the caller to
172081// add HTTP headers to the request.
172082func (c *TargetInstancesListCall) Header() http.Header {
172083	if c.header_ == nil {
172084		c.header_ = make(http.Header)
172085	}
172086	return c.header_
172087}
172088
172089func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
172090	reqHeaders := make(http.Header)
172091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
172092	for k, v := range c.header_ {
172093		reqHeaders[k] = v
172094	}
172095	reqHeaders.Set("User-Agent", c.s.userAgent())
172096	if c.ifNoneMatch_ != "" {
172097		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
172098	}
172099	var body io.Reader = nil
172100	c.urlParams_.Set("alt", alt)
172101	c.urlParams_.Set("prettyPrint", "false")
172102	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
172103	urls += "?" + c.urlParams_.Encode()
172104	req, err := http.NewRequest("GET", urls, body)
172105	if err != nil {
172106		return nil, err
172107	}
172108	req.Header = reqHeaders
172109	googleapi.Expand(req.URL, map[string]string{
172110		"project": c.project,
172111		"zone":    c.zone,
172112	})
172113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172114}
172115
172116// Do executes the "compute.targetInstances.list" call.
172117// Exactly one of *TargetInstanceList or error will be non-nil. Any
172118// non-2xx status code is an error. Response headers are in either
172119// *TargetInstanceList.ServerResponse.Header or (if a response was
172120// returned at all) in error.(*googleapi.Error).Header. Use
172121// googleapi.IsNotModified to check whether the returned error was
172122// because http.StatusNotModified was returned.
172123func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
172124	gensupport.SetOptions(c.urlParams_, opts...)
172125	res, err := c.doRequest("json")
172126	if res != nil && res.StatusCode == http.StatusNotModified {
172127		if res.Body != nil {
172128			res.Body.Close()
172129		}
172130		return nil, &googleapi.Error{
172131			Code:   res.StatusCode,
172132			Header: res.Header,
172133		}
172134	}
172135	if err != nil {
172136		return nil, err
172137	}
172138	defer googleapi.CloseBody(res)
172139	if err := googleapi.CheckResponse(res); err != nil {
172140		return nil, err
172141	}
172142	ret := &TargetInstanceList{
172143		ServerResponse: googleapi.ServerResponse{
172144			Header:         res.Header,
172145			HTTPStatusCode: res.StatusCode,
172146		},
172147	}
172148	target := &ret
172149	if err := gensupport.DecodeResponse(target, res); err != nil {
172150		return nil, err
172151	}
172152	return ret, nil
172153	// {
172154	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
172155	//   "httpMethod": "GET",
172156	//   "id": "compute.targetInstances.list",
172157	//   "parameterOrder": [
172158	//     "project",
172159	//     "zone"
172160	//   ],
172161	//   "parameters": {
172162	//     "filter": {
172163	//       "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) ```",
172164	//       "location": "query",
172165	//       "type": "string"
172166	//     },
172167	//     "maxResults": {
172168	//       "default": "500",
172169	//       "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`)",
172170	//       "format": "uint32",
172171	//       "location": "query",
172172	//       "minimum": "0",
172173	//       "type": "integer"
172174	//     },
172175	//     "orderBy": {
172176	//       "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.",
172177	//       "location": "query",
172178	//       "type": "string"
172179	//     },
172180	//     "pageToken": {
172181	//       "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.",
172182	//       "location": "query",
172183	//       "type": "string"
172184	//     },
172185	//     "project": {
172186	//       "description": "Project ID for this request.",
172187	//       "location": "path",
172188	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172189	//       "required": true,
172190	//       "type": "string"
172191	//     },
172192	//     "returnPartialSuccess": {
172193	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
172194	//       "location": "query",
172195	//       "type": "boolean"
172196	//     },
172197	//     "zone": {
172198	//       "description": "Name of the zone scoping this request.",
172199	//       "location": "path",
172200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
172201	//       "required": true,
172202	//       "type": "string"
172203	//     }
172204	//   },
172205	//   "path": "projects/{project}/zones/{zone}/targetInstances",
172206	//   "response": {
172207	//     "$ref": "TargetInstanceList"
172208	//   },
172209	//   "scopes": [
172210	//     "https://www.googleapis.com/auth/cloud-platform",
172211	//     "https://www.googleapis.com/auth/compute",
172212	//     "https://www.googleapis.com/auth/compute.readonly"
172213	//   ]
172214	// }
172215
172216}
172217
172218// Pages invokes f for each page of results.
172219// A non-nil error returned from f will halt the iteration.
172220// The provided context supersedes any context provided to the Context method.
172221func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
172222	c.ctx_ = ctx
172223	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
172224	for {
172225		x, err := c.Do()
172226		if err != nil {
172227			return err
172228		}
172229		if err := f(x); err != nil {
172230			return err
172231		}
172232		if x.NextPageToken == "" {
172233			return nil
172234		}
172235		c.PageToken(x.NextPageToken)
172236	}
172237}
172238
172239// method id "compute.targetInstances.testIamPermissions":
172240
172241type TargetInstancesTestIamPermissionsCall struct {
172242	s                      *Service
172243	project                string
172244	zone                   string
172245	resource               string
172246	testpermissionsrequest *TestPermissionsRequest
172247	urlParams_             gensupport.URLParams
172248	ctx_                   context.Context
172249	header_                http.Header
172250}
172251
172252// TestIamPermissions: Returns permissions that a caller has on the
172253// specified resource.
172254//
172255// - project: Project ID for this request.
172256// - resource: Name or id of the resource for this request.
172257// - zone: The name of the zone for this request.
172258func (r *TargetInstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetInstancesTestIamPermissionsCall {
172259	c := &TargetInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172260	c.project = project
172261	c.zone = zone
172262	c.resource = resource
172263	c.testpermissionsrequest = testpermissionsrequest
172264	return c
172265}
172266
172267// Fields allows partial responses to be retrieved. See
172268// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172269// for more information.
172270func (c *TargetInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetInstancesTestIamPermissionsCall {
172271	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172272	return c
172273}
172274
172275// Context sets the context to be used in this call's Do method. Any
172276// pending HTTP request will be aborted if the provided context is
172277// canceled.
172278func (c *TargetInstancesTestIamPermissionsCall) Context(ctx context.Context) *TargetInstancesTestIamPermissionsCall {
172279	c.ctx_ = ctx
172280	return c
172281}
172282
172283// Header returns an http.Header that can be modified by the caller to
172284// add HTTP headers to the request.
172285func (c *TargetInstancesTestIamPermissionsCall) Header() http.Header {
172286	if c.header_ == nil {
172287		c.header_ = make(http.Header)
172288	}
172289	return c.header_
172290}
172291
172292func (c *TargetInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
172293	reqHeaders := make(http.Header)
172294	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
172295	for k, v := range c.header_ {
172296		reqHeaders[k] = v
172297	}
172298	reqHeaders.Set("User-Agent", c.s.userAgent())
172299	var body io.Reader = nil
172300	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
172301	if err != nil {
172302		return nil, err
172303	}
172304	reqHeaders.Set("Content-Type", "application/json")
172305	c.urlParams_.Set("alt", alt)
172306	c.urlParams_.Set("prettyPrint", "false")
172307	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions")
172308	urls += "?" + c.urlParams_.Encode()
172309	req, err := http.NewRequest("POST", urls, body)
172310	if err != nil {
172311		return nil, err
172312	}
172313	req.Header = reqHeaders
172314	googleapi.Expand(req.URL, map[string]string{
172315		"project":  c.project,
172316		"zone":     c.zone,
172317		"resource": c.resource,
172318	})
172319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172320}
172321
172322// Do executes the "compute.targetInstances.testIamPermissions" call.
172323// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
172324// non-2xx status code is an error. Response headers are in either
172325// *TestPermissionsResponse.ServerResponse.Header or (if a response was
172326// returned at all) in error.(*googleapi.Error).Header. Use
172327// googleapi.IsNotModified to check whether the returned error was
172328// because http.StatusNotModified was returned.
172329func (c *TargetInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
172330	gensupport.SetOptions(c.urlParams_, opts...)
172331	res, err := c.doRequest("json")
172332	if res != nil && res.StatusCode == http.StatusNotModified {
172333		if res.Body != nil {
172334			res.Body.Close()
172335		}
172336		return nil, &googleapi.Error{
172337			Code:   res.StatusCode,
172338			Header: res.Header,
172339		}
172340	}
172341	if err != nil {
172342		return nil, err
172343	}
172344	defer googleapi.CloseBody(res)
172345	if err := googleapi.CheckResponse(res); err != nil {
172346		return nil, err
172347	}
172348	ret := &TestPermissionsResponse{
172349		ServerResponse: googleapi.ServerResponse{
172350			Header:         res.Header,
172351			HTTPStatusCode: res.StatusCode,
172352		},
172353	}
172354	target := &ret
172355	if err := gensupport.DecodeResponse(target, res); err != nil {
172356		return nil, err
172357	}
172358	return ret, nil
172359	// {
172360	//   "description": "Returns permissions that a caller has on the specified resource.",
172361	//   "httpMethod": "POST",
172362	//   "id": "compute.targetInstances.testIamPermissions",
172363	//   "parameterOrder": [
172364	//     "project",
172365	//     "zone",
172366	//     "resource"
172367	//   ],
172368	//   "parameters": {
172369	//     "project": {
172370	//       "description": "Project ID for this request.",
172371	//       "location": "path",
172372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172373	//       "required": true,
172374	//       "type": "string"
172375	//     },
172376	//     "resource": {
172377	//       "description": "Name or id of the resource for this request.",
172378	//       "location": "path",
172379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172380	//       "required": true,
172381	//       "type": "string"
172382	//     },
172383	//     "zone": {
172384	//       "description": "The name of the zone for this request.",
172385	//       "location": "path",
172386	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
172387	//       "required": true,
172388	//       "type": "string"
172389	//     }
172390	//   },
172391	//   "path": "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
172392	//   "request": {
172393	//     "$ref": "TestPermissionsRequest"
172394	//   },
172395	//   "response": {
172396	//     "$ref": "TestPermissionsResponse"
172397	//   },
172398	//   "scopes": [
172399	//     "https://www.googleapis.com/auth/cloud-platform",
172400	//     "https://www.googleapis.com/auth/compute",
172401	//     "https://www.googleapis.com/auth/compute.readonly"
172402	//   ]
172403	// }
172404
172405}
172406
172407// method id "compute.targetPools.addHealthCheck":
172408
172409type TargetPoolsAddHealthCheckCall struct {
172410	s                                *Service
172411	project                          string
172412	region                           string
172413	targetPool                       string
172414	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
172415	urlParams_                       gensupport.URLParams
172416	ctx_                             context.Context
172417	header_                          http.Header
172418}
172419
172420// AddHealthCheck: Adds health check URLs to a target pool.
172421//
172422// - project: Project ID for this request.
172423// - region: Name of the region scoping this request.
172424// - targetPool: Name of the target pool to add a health check to.
172425// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
172426func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
172427	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172428	c.project = project
172429	c.region = region
172430	c.targetPool = targetPool
172431	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
172432	return c
172433}
172434
172435// RequestId sets the optional parameter "requestId": An optional
172436// request ID to identify requests. Specify a unique request ID so that
172437// if you must retry your request, the server will know to ignore the
172438// request if it has already been completed.
172439//
172440// For example, consider a situation where you make an initial request
172441// and the request times out. If you make the request again with the
172442// same request ID, the server can check if original operation with the
172443// same request ID was received, and if so, will ignore the second
172444// request. This prevents clients from accidentally creating duplicate
172445// commitments.
172446//
172447// The request ID must be a valid UUID with the exception that zero UUID
172448// is not supported (00000000-0000-0000-0000-000000000000).
172449func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
172450	c.urlParams_.Set("requestId", requestId)
172451	return c
172452}
172453
172454// Fields allows partial responses to be retrieved. See
172455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172456// for more information.
172457func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
172458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172459	return c
172460}
172461
172462// Context sets the context to be used in this call's Do method. Any
172463// pending HTTP request will be aborted if the provided context is
172464// canceled.
172465func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
172466	c.ctx_ = ctx
172467	return c
172468}
172469
172470// Header returns an http.Header that can be modified by the caller to
172471// add HTTP headers to the request.
172472func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
172473	if c.header_ == nil {
172474		c.header_ = make(http.Header)
172475	}
172476	return c.header_
172477}
172478
172479func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
172480	reqHeaders := make(http.Header)
172481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
172482	for k, v := range c.header_ {
172483		reqHeaders[k] = v
172484	}
172485	reqHeaders.Set("User-Agent", c.s.userAgent())
172486	var body io.Reader = nil
172487	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
172488	if err != nil {
172489		return nil, err
172490	}
172491	reqHeaders.Set("Content-Type", "application/json")
172492	c.urlParams_.Set("alt", alt)
172493	c.urlParams_.Set("prettyPrint", "false")
172494	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
172495	urls += "?" + c.urlParams_.Encode()
172496	req, err := http.NewRequest("POST", urls, body)
172497	if err != nil {
172498		return nil, err
172499	}
172500	req.Header = reqHeaders
172501	googleapi.Expand(req.URL, map[string]string{
172502		"project":    c.project,
172503		"region":     c.region,
172504		"targetPool": c.targetPool,
172505	})
172506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172507}
172508
172509// Do executes the "compute.targetPools.addHealthCheck" call.
172510// Exactly one of *Operation or error will be non-nil. Any non-2xx
172511// status code is an error. Response headers are in either
172512// *Operation.ServerResponse.Header or (if a response was returned at
172513// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172514// to check whether the returned error was because
172515// http.StatusNotModified was returned.
172516func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172517	gensupport.SetOptions(c.urlParams_, opts...)
172518	res, err := c.doRequest("json")
172519	if res != nil && res.StatusCode == http.StatusNotModified {
172520		if res.Body != nil {
172521			res.Body.Close()
172522		}
172523		return nil, &googleapi.Error{
172524			Code:   res.StatusCode,
172525			Header: res.Header,
172526		}
172527	}
172528	if err != nil {
172529		return nil, err
172530	}
172531	defer googleapi.CloseBody(res)
172532	if err := googleapi.CheckResponse(res); err != nil {
172533		return nil, err
172534	}
172535	ret := &Operation{
172536		ServerResponse: googleapi.ServerResponse{
172537			Header:         res.Header,
172538			HTTPStatusCode: res.StatusCode,
172539		},
172540	}
172541	target := &ret
172542	if err := gensupport.DecodeResponse(target, res); err != nil {
172543		return nil, err
172544	}
172545	return ret, nil
172546	// {
172547	//   "description": "Adds health check URLs to a target pool.",
172548	//   "httpMethod": "POST",
172549	//   "id": "compute.targetPools.addHealthCheck",
172550	//   "parameterOrder": [
172551	//     "project",
172552	//     "region",
172553	//     "targetPool"
172554	//   ],
172555	//   "parameters": {
172556	//     "project": {
172557	//       "description": "Project ID for this request.",
172558	//       "location": "path",
172559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172560	//       "required": true,
172561	//       "type": "string"
172562	//     },
172563	//     "region": {
172564	//       "description": "Name of the region scoping this request.",
172565	//       "location": "path",
172566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
172567	//       "required": true,
172568	//       "type": "string"
172569	//     },
172570	//     "requestId": {
172571	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172572	//       "location": "query",
172573	//       "type": "string"
172574	//     },
172575	//     "targetPool": {
172576	//       "description": "Name of the target pool to add a health check to.",
172577	//       "location": "path",
172578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172579	//       "required": true,
172580	//       "type": "string"
172581	//     }
172582	//   },
172583	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
172584	//   "request": {
172585	//     "$ref": "TargetPoolsAddHealthCheckRequest"
172586	//   },
172587	//   "response": {
172588	//     "$ref": "Operation"
172589	//   },
172590	//   "scopes": [
172591	//     "https://www.googleapis.com/auth/cloud-platform",
172592	//     "https://www.googleapis.com/auth/compute"
172593	//   ]
172594	// }
172595
172596}
172597
172598// method id "compute.targetPools.addInstance":
172599
172600type TargetPoolsAddInstanceCall struct {
172601	s                             *Service
172602	project                       string
172603	region                        string
172604	targetPool                    string
172605	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
172606	urlParams_                    gensupport.URLParams
172607	ctx_                          context.Context
172608	header_                       http.Header
172609}
172610
172611// AddInstance: Adds an instance to a target pool.
172612//
172613// - project: Project ID for this request.
172614// - region: Name of the region scoping this request.
172615// - targetPool: Name of the TargetPool resource to add instances to.
172616// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
172617func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
172618	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172619	c.project = project
172620	c.region = region
172621	c.targetPool = targetPool
172622	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
172623	return c
172624}
172625
172626// RequestId sets the optional parameter "requestId": An optional
172627// request ID to identify requests. Specify a unique request ID so that
172628// if you must retry your request, the server will know to ignore the
172629// request if it has already been completed.
172630//
172631// For example, consider a situation where you make an initial request
172632// and the request times out. If you make the request again with the
172633// same request ID, the server can check if original operation with the
172634// same request ID was received, and if so, will ignore the second
172635// request. This prevents clients from accidentally creating duplicate
172636// commitments.
172637//
172638// The request ID must be a valid UUID with the exception that zero UUID
172639// is not supported (00000000-0000-0000-0000-000000000000).
172640func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
172641	c.urlParams_.Set("requestId", requestId)
172642	return c
172643}
172644
172645// Fields allows partial responses to be retrieved. See
172646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172647// for more information.
172648func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
172649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172650	return c
172651}
172652
172653// Context sets the context to be used in this call's Do method. Any
172654// pending HTTP request will be aborted if the provided context is
172655// canceled.
172656func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
172657	c.ctx_ = ctx
172658	return c
172659}
172660
172661// Header returns an http.Header that can be modified by the caller to
172662// add HTTP headers to the request.
172663func (c *TargetPoolsAddInstanceCall) Header() http.Header {
172664	if c.header_ == nil {
172665		c.header_ = make(http.Header)
172666	}
172667	return c.header_
172668}
172669
172670func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
172671	reqHeaders := make(http.Header)
172672	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
172673	for k, v := range c.header_ {
172674		reqHeaders[k] = v
172675	}
172676	reqHeaders.Set("User-Agent", c.s.userAgent())
172677	var body io.Reader = nil
172678	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
172679	if err != nil {
172680		return nil, err
172681	}
172682	reqHeaders.Set("Content-Type", "application/json")
172683	c.urlParams_.Set("alt", alt)
172684	c.urlParams_.Set("prettyPrint", "false")
172685	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance")
172686	urls += "?" + c.urlParams_.Encode()
172687	req, err := http.NewRequest("POST", urls, body)
172688	if err != nil {
172689		return nil, err
172690	}
172691	req.Header = reqHeaders
172692	googleapi.Expand(req.URL, map[string]string{
172693		"project":    c.project,
172694		"region":     c.region,
172695		"targetPool": c.targetPool,
172696	})
172697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172698}
172699
172700// Do executes the "compute.targetPools.addInstance" call.
172701// Exactly one of *Operation or error will be non-nil. Any non-2xx
172702// status code is an error. Response headers are in either
172703// *Operation.ServerResponse.Header or (if a response was returned at
172704// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172705// to check whether the returned error was because
172706// http.StatusNotModified was returned.
172707func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172708	gensupport.SetOptions(c.urlParams_, opts...)
172709	res, err := c.doRequest("json")
172710	if res != nil && res.StatusCode == http.StatusNotModified {
172711		if res.Body != nil {
172712			res.Body.Close()
172713		}
172714		return nil, &googleapi.Error{
172715			Code:   res.StatusCode,
172716			Header: res.Header,
172717		}
172718	}
172719	if err != nil {
172720		return nil, err
172721	}
172722	defer googleapi.CloseBody(res)
172723	if err := googleapi.CheckResponse(res); err != nil {
172724		return nil, err
172725	}
172726	ret := &Operation{
172727		ServerResponse: googleapi.ServerResponse{
172728			Header:         res.Header,
172729			HTTPStatusCode: res.StatusCode,
172730		},
172731	}
172732	target := &ret
172733	if err := gensupport.DecodeResponse(target, res); err != nil {
172734		return nil, err
172735	}
172736	return ret, nil
172737	// {
172738	//   "description": "Adds an instance to a target pool.",
172739	//   "httpMethod": "POST",
172740	//   "id": "compute.targetPools.addInstance",
172741	//   "parameterOrder": [
172742	//     "project",
172743	//     "region",
172744	//     "targetPool"
172745	//   ],
172746	//   "parameters": {
172747	//     "project": {
172748	//       "description": "Project ID for this request.",
172749	//       "location": "path",
172750	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172751	//       "required": true,
172752	//       "type": "string"
172753	//     },
172754	//     "region": {
172755	//       "description": "Name of the region scoping this request.",
172756	//       "location": "path",
172757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
172758	//       "required": true,
172759	//       "type": "string"
172760	//     },
172761	//     "requestId": {
172762	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172763	//       "location": "query",
172764	//       "type": "string"
172765	//     },
172766	//     "targetPool": {
172767	//       "description": "Name of the TargetPool resource to add instances to.",
172768	//       "location": "path",
172769	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172770	//       "required": true,
172771	//       "type": "string"
172772	//     }
172773	//   },
172774	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
172775	//   "request": {
172776	//     "$ref": "TargetPoolsAddInstanceRequest"
172777	//   },
172778	//   "response": {
172779	//     "$ref": "Operation"
172780	//   },
172781	//   "scopes": [
172782	//     "https://www.googleapis.com/auth/cloud-platform",
172783	//     "https://www.googleapis.com/auth/compute"
172784	//   ]
172785	// }
172786
172787}
172788
172789// method id "compute.targetPools.aggregatedList":
172790
172791type TargetPoolsAggregatedListCall struct {
172792	s            *Service
172793	project      string
172794	urlParams_   gensupport.URLParams
172795	ifNoneMatch_ string
172796	ctx_         context.Context
172797	header_      http.Header
172798}
172799
172800// AggregatedList: Retrieves an aggregated list of target pools.
172801//
172802// - project: Project ID for this request.
172803// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
172804func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
172805	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172806	c.project = project
172807	return c
172808}
172809
172810// Filter sets the optional parameter "filter": A filter expression that
172811// filters resources listed in the response. The expression must specify
172812// the field name, a comparison operator, and the value that you want to
172813// use for filtering. The value must be a string, a number, or a
172814// boolean. The comparison operator must be either `=`, `!=`, `>`, or
172815// `<`.
172816//
172817// For example, if you are filtering Compute Engine instances, you can
172818// exclude instances named `example-instance` by specifying `name !=
172819// example-instance`.
172820//
172821// You can also filter nested fields. For example, you could specify
172822// `scheduling.automaticRestart = false` to include instances only if
172823// they are not scheduled for automatic restarts. You can use filtering
172824// on nested fields to filter based on resource labels.
172825//
172826// To filter on multiple expressions, provide each separate expression
172827// within parentheses. For example: ``` (scheduling.automaticRestart =
172828// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
172829// is an `AND` expression. However, you can include `AND` and `OR`
172830// expressions explicitly. For example: ``` (cpuPlatform = "Intel
172831// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
172832// (scheduling.automaticRestart = true) ```
172833func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
172834	c.urlParams_.Set("filter", filter)
172835	return c
172836}
172837
172838// IncludeAllScopes sets the optional parameter "includeAllScopes":
172839// Indicates whether every visible scope for each scope type (zone,
172840// region, global) should be included in the response. For new resource
172841// types added after this field, the flag has no effect as new resource
172842// types will always include every visible scope for each scope type in
172843// response. For resource types which predate this field, if this flag
172844// is omitted or false, only scopes of the scope types where the
172845// resource type is expected to be found will be included.
172846func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
172847	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
172848	return c
172849}
172850
172851// MaxResults sets the optional parameter "maxResults": The maximum
172852// number of results per page that should be returned. If the number of
172853// available results is larger than `maxResults`, Compute Engine returns
172854// a `nextPageToken` that can be used to get the next page of results in
172855// subsequent list requests. Acceptable values are `0` to `500`,
172856// inclusive. (Default: `500`)
172857func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
172858	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
172859	return c
172860}
172861
172862// OrderBy sets the optional parameter "orderBy": Sorts list results by
172863// a certain order. By default, results are returned in alphanumerical
172864// order based on the resource name.
172865//
172866// You can also sort results in descending order based on the creation
172867// timestamp using `orderBy="creationTimestamp desc". This sorts
172868// results based on the `creationTimestamp` field in reverse
172869// chronological order (newest result first). Use this to sort resources
172870// like operations so that the newest operation is returned
172871// first.
172872//
172873// Currently, only sorting by `name` or `creationTimestamp desc` is
172874// supported.
172875func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
172876	c.urlParams_.Set("orderBy", orderBy)
172877	return c
172878}
172879
172880// PageToken sets the optional parameter "pageToken": Specifies a page
172881// token to use. Set `pageToken` to the `nextPageToken` returned by a
172882// previous list request to get the next page of results.
172883func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
172884	c.urlParams_.Set("pageToken", pageToken)
172885	return c
172886}
172887
172888// ReturnPartialSuccess sets the optional parameter
172889// "returnPartialSuccess": Opt-in for partial success behavior which
172890// provides partial results in case of failure. The default value is
172891// false.
172892func (c *TargetPoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsAggregatedListCall {
172893	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
172894	return c
172895}
172896
172897// Fields allows partial responses to be retrieved. See
172898// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172899// for more information.
172900func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
172901	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172902	return c
172903}
172904
172905// IfNoneMatch sets the optional parameter which makes the operation
172906// fail if the object's ETag matches the given value. This is useful for
172907// getting updates only after the object has changed since the last
172908// request. Use googleapi.IsNotModified to check whether the response
172909// error from Do is the result of In-None-Match.
172910func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
172911	c.ifNoneMatch_ = entityTag
172912	return c
172913}
172914
172915// Context sets the context to be used in this call's Do method. Any
172916// pending HTTP request will be aborted if the provided context is
172917// canceled.
172918func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
172919	c.ctx_ = ctx
172920	return c
172921}
172922
172923// Header returns an http.Header that can be modified by the caller to
172924// add HTTP headers to the request.
172925func (c *TargetPoolsAggregatedListCall) Header() http.Header {
172926	if c.header_ == nil {
172927		c.header_ = make(http.Header)
172928	}
172929	return c.header_
172930}
172931
172932func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
172933	reqHeaders := make(http.Header)
172934	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
172935	for k, v := range c.header_ {
172936		reqHeaders[k] = v
172937	}
172938	reqHeaders.Set("User-Agent", c.s.userAgent())
172939	if c.ifNoneMatch_ != "" {
172940		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
172941	}
172942	var body io.Reader = nil
172943	c.urlParams_.Set("alt", alt)
172944	c.urlParams_.Set("prettyPrint", "false")
172945	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetPools")
172946	urls += "?" + c.urlParams_.Encode()
172947	req, err := http.NewRequest("GET", urls, body)
172948	if err != nil {
172949		return nil, err
172950	}
172951	req.Header = reqHeaders
172952	googleapi.Expand(req.URL, map[string]string{
172953		"project": c.project,
172954	})
172955	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172956}
172957
172958// Do executes the "compute.targetPools.aggregatedList" call.
172959// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
172960// Any non-2xx status code is an error. Response headers are in either
172961// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
172962// returned at all) in error.(*googleapi.Error).Header. Use
172963// googleapi.IsNotModified to check whether the returned error was
172964// because http.StatusNotModified was returned.
172965func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
172966	gensupport.SetOptions(c.urlParams_, opts...)
172967	res, err := c.doRequest("json")
172968	if res != nil && res.StatusCode == http.StatusNotModified {
172969		if res.Body != nil {
172970			res.Body.Close()
172971		}
172972		return nil, &googleapi.Error{
172973			Code:   res.StatusCode,
172974			Header: res.Header,
172975		}
172976	}
172977	if err != nil {
172978		return nil, err
172979	}
172980	defer googleapi.CloseBody(res)
172981	if err := googleapi.CheckResponse(res); err != nil {
172982		return nil, err
172983	}
172984	ret := &TargetPoolAggregatedList{
172985		ServerResponse: googleapi.ServerResponse{
172986			Header:         res.Header,
172987			HTTPStatusCode: res.StatusCode,
172988		},
172989	}
172990	target := &ret
172991	if err := gensupport.DecodeResponse(target, res); err != nil {
172992		return nil, err
172993	}
172994	return ret, nil
172995	// {
172996	//   "description": "Retrieves an aggregated list of target pools.",
172997	//   "httpMethod": "GET",
172998	//   "id": "compute.targetPools.aggregatedList",
172999	//   "parameterOrder": [
173000	//     "project"
173001	//   ],
173002	//   "parameters": {
173003	//     "filter": {
173004	//       "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) ```",
173005	//       "location": "query",
173006	//       "type": "string"
173007	//     },
173008	//     "includeAllScopes": {
173009	//       "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.",
173010	//       "location": "query",
173011	//       "type": "boolean"
173012	//     },
173013	//     "maxResults": {
173014	//       "default": "500",
173015	//       "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`)",
173016	//       "format": "uint32",
173017	//       "location": "query",
173018	//       "minimum": "0",
173019	//       "type": "integer"
173020	//     },
173021	//     "orderBy": {
173022	//       "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.",
173023	//       "location": "query",
173024	//       "type": "string"
173025	//     },
173026	//     "pageToken": {
173027	//       "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.",
173028	//       "location": "query",
173029	//       "type": "string"
173030	//     },
173031	//     "project": {
173032	//       "description": "Project ID for this request.",
173033	//       "location": "path",
173034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173035	//       "required": true,
173036	//       "type": "string"
173037	//     },
173038	//     "returnPartialSuccess": {
173039	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
173040	//       "location": "query",
173041	//       "type": "boolean"
173042	//     }
173043	//   },
173044	//   "path": "projects/{project}/aggregated/targetPools",
173045	//   "response": {
173046	//     "$ref": "TargetPoolAggregatedList"
173047	//   },
173048	//   "scopes": [
173049	//     "https://www.googleapis.com/auth/cloud-platform",
173050	//     "https://www.googleapis.com/auth/compute",
173051	//     "https://www.googleapis.com/auth/compute.readonly"
173052	//   ]
173053	// }
173054
173055}
173056
173057// Pages invokes f for each page of results.
173058// A non-nil error returned from f will halt the iteration.
173059// The provided context supersedes any context provided to the Context method.
173060func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
173061	c.ctx_ = ctx
173062	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
173063	for {
173064		x, err := c.Do()
173065		if err != nil {
173066			return err
173067		}
173068		if err := f(x); err != nil {
173069			return err
173070		}
173071		if x.NextPageToken == "" {
173072			return nil
173073		}
173074		c.PageToken(x.NextPageToken)
173075	}
173076}
173077
173078// method id "compute.targetPools.delete":
173079
173080type TargetPoolsDeleteCall struct {
173081	s          *Service
173082	project    string
173083	region     string
173084	targetPool string
173085	urlParams_ gensupport.URLParams
173086	ctx_       context.Context
173087	header_    http.Header
173088}
173089
173090// Delete: Deletes the specified target pool.
173091//
173092// - project: Project ID for this request.
173093// - region: Name of the region scoping this request.
173094// - targetPool: Name of the TargetPool resource to delete.
173095// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
173096func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
173097	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173098	c.project = project
173099	c.region = region
173100	c.targetPool = targetPool
173101	return c
173102}
173103
173104// RequestId sets the optional parameter "requestId": An optional
173105// request ID to identify requests. Specify a unique request ID so that
173106// if you must retry your request, the server will know to ignore the
173107// request if it has already been completed.
173108//
173109// For example, consider a situation where you make an initial request
173110// and the request times out. If you make the request again with the
173111// same request ID, the server can check if original operation with the
173112// same request ID was received, and if so, will ignore the second
173113// request. This prevents clients from accidentally creating duplicate
173114// commitments.
173115//
173116// The request ID must be a valid UUID with the exception that zero UUID
173117// is not supported (00000000-0000-0000-0000-000000000000).
173118func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
173119	c.urlParams_.Set("requestId", requestId)
173120	return c
173121}
173122
173123// Fields allows partial responses to be retrieved. See
173124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173125// for more information.
173126func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
173127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173128	return c
173129}
173130
173131// Context sets the context to be used in this call's Do method. Any
173132// pending HTTP request will be aborted if the provided context is
173133// canceled.
173134func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
173135	c.ctx_ = ctx
173136	return c
173137}
173138
173139// Header returns an http.Header that can be modified by the caller to
173140// add HTTP headers to the request.
173141func (c *TargetPoolsDeleteCall) Header() http.Header {
173142	if c.header_ == nil {
173143		c.header_ = make(http.Header)
173144	}
173145	return c.header_
173146}
173147
173148func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
173149	reqHeaders := make(http.Header)
173150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
173151	for k, v := range c.header_ {
173152		reqHeaders[k] = v
173153	}
173154	reqHeaders.Set("User-Agent", c.s.userAgent())
173155	var body io.Reader = nil
173156	c.urlParams_.Set("alt", alt)
173157	c.urlParams_.Set("prettyPrint", "false")
173158	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
173159	urls += "?" + c.urlParams_.Encode()
173160	req, err := http.NewRequest("DELETE", urls, body)
173161	if err != nil {
173162		return nil, err
173163	}
173164	req.Header = reqHeaders
173165	googleapi.Expand(req.URL, map[string]string{
173166		"project":    c.project,
173167		"region":     c.region,
173168		"targetPool": c.targetPool,
173169	})
173170	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173171}
173172
173173// Do executes the "compute.targetPools.delete" call.
173174// Exactly one of *Operation or error will be non-nil. Any non-2xx
173175// status code is an error. Response headers are in either
173176// *Operation.ServerResponse.Header or (if a response was returned at
173177// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
173178// to check whether the returned error was because
173179// http.StatusNotModified was returned.
173180func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
173181	gensupport.SetOptions(c.urlParams_, opts...)
173182	res, err := c.doRequest("json")
173183	if res != nil && res.StatusCode == http.StatusNotModified {
173184		if res.Body != nil {
173185			res.Body.Close()
173186		}
173187		return nil, &googleapi.Error{
173188			Code:   res.StatusCode,
173189			Header: res.Header,
173190		}
173191	}
173192	if err != nil {
173193		return nil, err
173194	}
173195	defer googleapi.CloseBody(res)
173196	if err := googleapi.CheckResponse(res); err != nil {
173197		return nil, err
173198	}
173199	ret := &Operation{
173200		ServerResponse: googleapi.ServerResponse{
173201			Header:         res.Header,
173202			HTTPStatusCode: res.StatusCode,
173203		},
173204	}
173205	target := &ret
173206	if err := gensupport.DecodeResponse(target, res); err != nil {
173207		return nil, err
173208	}
173209	return ret, nil
173210	// {
173211	//   "description": "Deletes the specified target pool.",
173212	//   "httpMethod": "DELETE",
173213	//   "id": "compute.targetPools.delete",
173214	//   "parameterOrder": [
173215	//     "project",
173216	//     "region",
173217	//     "targetPool"
173218	//   ],
173219	//   "parameters": {
173220	//     "project": {
173221	//       "description": "Project ID for this request.",
173222	//       "location": "path",
173223	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173224	//       "required": true,
173225	//       "type": "string"
173226	//     },
173227	//     "region": {
173228	//       "description": "Name of the region scoping this request.",
173229	//       "location": "path",
173230	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
173231	//       "required": true,
173232	//       "type": "string"
173233	//     },
173234	//     "requestId": {
173235	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
173236	//       "location": "query",
173237	//       "type": "string"
173238	//     },
173239	//     "targetPool": {
173240	//       "description": "Name of the TargetPool resource to delete.",
173241	//       "location": "path",
173242	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
173243	//       "required": true,
173244	//       "type": "string"
173245	//     }
173246	//   },
173247	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
173248	//   "response": {
173249	//     "$ref": "Operation"
173250	//   },
173251	//   "scopes": [
173252	//     "https://www.googleapis.com/auth/cloud-platform",
173253	//     "https://www.googleapis.com/auth/compute"
173254	//   ]
173255	// }
173256
173257}
173258
173259// method id "compute.targetPools.get":
173260
173261type TargetPoolsGetCall struct {
173262	s            *Service
173263	project      string
173264	region       string
173265	targetPool   string
173266	urlParams_   gensupport.URLParams
173267	ifNoneMatch_ string
173268	ctx_         context.Context
173269	header_      http.Header
173270}
173271
173272// Get: Returns the specified target pool. Gets a list of available
173273// target pools by making a list() request.
173274//
173275// - project: Project ID for this request.
173276// - region: Name of the region scoping this request.
173277// - targetPool: Name of the TargetPool resource to return.
173278// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
173279func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
173280	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173281	c.project = project
173282	c.region = region
173283	c.targetPool = targetPool
173284	return c
173285}
173286
173287// Fields allows partial responses to be retrieved. See
173288// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173289// for more information.
173290func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
173291	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173292	return c
173293}
173294
173295// IfNoneMatch sets the optional parameter which makes the operation
173296// fail if the object's ETag matches the given value. This is useful for
173297// getting updates only after the object has changed since the last
173298// request. Use googleapi.IsNotModified to check whether the response
173299// error from Do is the result of In-None-Match.
173300func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
173301	c.ifNoneMatch_ = entityTag
173302	return c
173303}
173304
173305// Context sets the context to be used in this call's Do method. Any
173306// pending HTTP request will be aborted if the provided context is
173307// canceled.
173308func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
173309	c.ctx_ = ctx
173310	return c
173311}
173312
173313// Header returns an http.Header that can be modified by the caller to
173314// add HTTP headers to the request.
173315func (c *TargetPoolsGetCall) Header() http.Header {
173316	if c.header_ == nil {
173317		c.header_ = make(http.Header)
173318	}
173319	return c.header_
173320}
173321
173322func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
173323	reqHeaders := make(http.Header)
173324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
173325	for k, v := range c.header_ {
173326		reqHeaders[k] = v
173327	}
173328	reqHeaders.Set("User-Agent", c.s.userAgent())
173329	if c.ifNoneMatch_ != "" {
173330		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
173331	}
173332	var body io.Reader = nil
173333	c.urlParams_.Set("alt", alt)
173334	c.urlParams_.Set("prettyPrint", "false")
173335	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
173336	urls += "?" + c.urlParams_.Encode()
173337	req, err := http.NewRequest("GET", urls, body)
173338	if err != nil {
173339		return nil, err
173340	}
173341	req.Header = reqHeaders
173342	googleapi.Expand(req.URL, map[string]string{
173343		"project":    c.project,
173344		"region":     c.region,
173345		"targetPool": c.targetPool,
173346	})
173347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173348}
173349
173350// Do executes the "compute.targetPools.get" call.
173351// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
173352// status code is an error. Response headers are in either
173353// *TargetPool.ServerResponse.Header or (if a response was returned at
173354// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
173355// to check whether the returned error was because
173356// http.StatusNotModified was returned.
173357func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
173358	gensupport.SetOptions(c.urlParams_, opts...)
173359	res, err := c.doRequest("json")
173360	if res != nil && res.StatusCode == http.StatusNotModified {
173361		if res.Body != nil {
173362			res.Body.Close()
173363		}
173364		return nil, &googleapi.Error{
173365			Code:   res.StatusCode,
173366			Header: res.Header,
173367		}
173368	}
173369	if err != nil {
173370		return nil, err
173371	}
173372	defer googleapi.CloseBody(res)
173373	if err := googleapi.CheckResponse(res); err != nil {
173374		return nil, err
173375	}
173376	ret := &TargetPool{
173377		ServerResponse: googleapi.ServerResponse{
173378			Header:         res.Header,
173379			HTTPStatusCode: res.StatusCode,
173380		},
173381	}
173382	target := &ret
173383	if err := gensupport.DecodeResponse(target, res); err != nil {
173384		return nil, err
173385	}
173386	return ret, nil
173387	// {
173388	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
173389	//   "httpMethod": "GET",
173390	//   "id": "compute.targetPools.get",
173391	//   "parameterOrder": [
173392	//     "project",
173393	//     "region",
173394	//     "targetPool"
173395	//   ],
173396	//   "parameters": {
173397	//     "project": {
173398	//       "description": "Project ID for this request.",
173399	//       "location": "path",
173400	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173401	//       "required": true,
173402	//       "type": "string"
173403	//     },
173404	//     "region": {
173405	//       "description": "Name of the region scoping this request.",
173406	//       "location": "path",
173407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
173408	//       "required": true,
173409	//       "type": "string"
173410	//     },
173411	//     "targetPool": {
173412	//       "description": "Name of the TargetPool resource to return.",
173413	//       "location": "path",
173414	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
173415	//       "required": true,
173416	//       "type": "string"
173417	//     }
173418	//   },
173419	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
173420	//   "response": {
173421	//     "$ref": "TargetPool"
173422	//   },
173423	//   "scopes": [
173424	//     "https://www.googleapis.com/auth/cloud-platform",
173425	//     "https://www.googleapis.com/auth/compute",
173426	//     "https://www.googleapis.com/auth/compute.readonly"
173427	//   ]
173428	// }
173429
173430}
173431
173432// method id "compute.targetPools.getHealth":
173433
173434type TargetPoolsGetHealthCall struct {
173435	s                 *Service
173436	project           string
173437	region            string
173438	targetPool        string
173439	instancereference *InstanceReference
173440	urlParams_        gensupport.URLParams
173441	ctx_              context.Context
173442	header_           http.Header
173443}
173444
173445// GetHealth: Gets the most recent health check results for each IP for
173446// the instance that is referenced by the given target pool.
173447//
173448// - project: Project ID for this request.
173449// - region: Name of the region scoping this request.
173450// - targetPool: Name of the TargetPool resource to which the queried
173451//   instance belongs.
173452// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
173453func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
173454	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173455	c.project = project
173456	c.region = region
173457	c.targetPool = targetPool
173458	c.instancereference = instancereference
173459	return c
173460}
173461
173462// Fields allows partial responses to be retrieved. See
173463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173464// for more information.
173465func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
173466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173467	return c
173468}
173469
173470// Context sets the context to be used in this call's Do method. Any
173471// pending HTTP request will be aborted if the provided context is
173472// canceled.
173473func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
173474	c.ctx_ = ctx
173475	return c
173476}
173477
173478// Header returns an http.Header that can be modified by the caller to
173479// add HTTP headers to the request.
173480func (c *TargetPoolsGetHealthCall) Header() http.Header {
173481	if c.header_ == nil {
173482		c.header_ = make(http.Header)
173483	}
173484	return c.header_
173485}
173486
173487func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
173488	reqHeaders := make(http.Header)
173489	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
173490	for k, v := range c.header_ {
173491		reqHeaders[k] = v
173492	}
173493	reqHeaders.Set("User-Agent", c.s.userAgent())
173494	var body io.Reader = nil
173495	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
173496	if err != nil {
173497		return nil, err
173498	}
173499	reqHeaders.Set("Content-Type", "application/json")
173500	c.urlParams_.Set("alt", alt)
173501	c.urlParams_.Set("prettyPrint", "false")
173502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth")
173503	urls += "?" + c.urlParams_.Encode()
173504	req, err := http.NewRequest("POST", urls, body)
173505	if err != nil {
173506		return nil, err
173507	}
173508	req.Header = reqHeaders
173509	googleapi.Expand(req.URL, map[string]string{
173510		"project":    c.project,
173511		"region":     c.region,
173512		"targetPool": c.targetPool,
173513	})
173514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173515}
173516
173517// Do executes the "compute.targetPools.getHealth" call.
173518// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
173519// Any non-2xx status code is an error. Response headers are in either
173520// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
173521// returned at all) in error.(*googleapi.Error).Header. Use
173522// googleapi.IsNotModified to check whether the returned error was
173523// because http.StatusNotModified was returned.
173524func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
173525	gensupport.SetOptions(c.urlParams_, opts...)
173526	res, err := c.doRequest("json")
173527	if res != nil && res.StatusCode == http.StatusNotModified {
173528		if res.Body != nil {
173529			res.Body.Close()
173530		}
173531		return nil, &googleapi.Error{
173532			Code:   res.StatusCode,
173533			Header: res.Header,
173534		}
173535	}
173536	if err != nil {
173537		return nil, err
173538	}
173539	defer googleapi.CloseBody(res)
173540	if err := googleapi.CheckResponse(res); err != nil {
173541		return nil, err
173542	}
173543	ret := &TargetPoolInstanceHealth{
173544		ServerResponse: googleapi.ServerResponse{
173545			Header:         res.Header,
173546			HTTPStatusCode: res.StatusCode,
173547		},
173548	}
173549	target := &ret
173550	if err := gensupport.DecodeResponse(target, res); err != nil {
173551		return nil, err
173552	}
173553	return ret, nil
173554	// {
173555	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
173556	//   "httpMethod": "POST",
173557	//   "id": "compute.targetPools.getHealth",
173558	//   "parameterOrder": [
173559	//     "project",
173560	//     "region",
173561	//     "targetPool"
173562	//   ],
173563	//   "parameters": {
173564	//     "project": {
173565	//       "description": "Project ID for this request.",
173566	//       "location": "path",
173567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173568	//       "required": true,
173569	//       "type": "string"
173570	//     },
173571	//     "region": {
173572	//       "description": "Name of the region scoping this request.",
173573	//       "location": "path",
173574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
173575	//       "required": true,
173576	//       "type": "string"
173577	//     },
173578	//     "targetPool": {
173579	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
173580	//       "location": "path",
173581	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
173582	//       "required": true,
173583	//       "type": "string"
173584	//     }
173585	//   },
173586	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
173587	//   "request": {
173588	//     "$ref": "InstanceReference"
173589	//   },
173590	//   "response": {
173591	//     "$ref": "TargetPoolInstanceHealth"
173592	//   },
173593	//   "scopes": [
173594	//     "https://www.googleapis.com/auth/cloud-platform",
173595	//     "https://www.googleapis.com/auth/compute",
173596	//     "https://www.googleapis.com/auth/compute.readonly"
173597	//   ]
173598	// }
173599
173600}
173601
173602// method id "compute.targetPools.insert":
173603
173604type TargetPoolsInsertCall struct {
173605	s          *Service
173606	project    string
173607	region     string
173608	targetpool *TargetPool
173609	urlParams_ gensupport.URLParams
173610	ctx_       context.Context
173611	header_    http.Header
173612}
173613
173614// Insert: Creates a target pool in the specified project and region
173615// using the data included in the request.
173616//
173617// - project: Project ID for this request.
173618// - region: Name of the region scoping this request.
173619// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
173620func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
173621	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173622	c.project = project
173623	c.region = region
173624	c.targetpool = targetpool
173625	return c
173626}
173627
173628// RequestId sets the optional parameter "requestId": An optional
173629// request ID to identify requests. Specify a unique request ID so that
173630// if you must retry your request, the server will know to ignore the
173631// request if it has already been completed.
173632//
173633// For example, consider a situation where you make an initial request
173634// and the request times out. If you make the request again with the
173635// same request ID, the server can check if original operation with the
173636// same request ID was received, and if so, will ignore the second
173637// request. This prevents clients from accidentally creating duplicate
173638// commitments.
173639//
173640// The request ID must be a valid UUID with the exception that zero UUID
173641// is not supported (00000000-0000-0000-0000-000000000000).
173642func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
173643	c.urlParams_.Set("requestId", requestId)
173644	return c
173645}
173646
173647// Fields allows partial responses to be retrieved. See
173648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173649// for more information.
173650func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
173651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173652	return c
173653}
173654
173655// Context sets the context to be used in this call's Do method. Any
173656// pending HTTP request will be aborted if the provided context is
173657// canceled.
173658func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
173659	c.ctx_ = ctx
173660	return c
173661}
173662
173663// Header returns an http.Header that can be modified by the caller to
173664// add HTTP headers to the request.
173665func (c *TargetPoolsInsertCall) Header() http.Header {
173666	if c.header_ == nil {
173667		c.header_ = make(http.Header)
173668	}
173669	return c.header_
173670}
173671
173672func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
173673	reqHeaders := make(http.Header)
173674	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
173675	for k, v := range c.header_ {
173676		reqHeaders[k] = v
173677	}
173678	reqHeaders.Set("User-Agent", c.s.userAgent())
173679	var body io.Reader = nil
173680	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
173681	if err != nil {
173682		return nil, err
173683	}
173684	reqHeaders.Set("Content-Type", "application/json")
173685	c.urlParams_.Set("alt", alt)
173686	c.urlParams_.Set("prettyPrint", "false")
173687	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
173688	urls += "?" + c.urlParams_.Encode()
173689	req, err := http.NewRequest("POST", urls, body)
173690	if err != nil {
173691		return nil, err
173692	}
173693	req.Header = reqHeaders
173694	googleapi.Expand(req.URL, map[string]string{
173695		"project": c.project,
173696		"region":  c.region,
173697	})
173698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173699}
173700
173701// Do executes the "compute.targetPools.insert" call.
173702// Exactly one of *Operation or error will be non-nil. Any non-2xx
173703// status code is an error. Response headers are in either
173704// *Operation.ServerResponse.Header or (if a response was returned at
173705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
173706// to check whether the returned error was because
173707// http.StatusNotModified was returned.
173708func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
173709	gensupport.SetOptions(c.urlParams_, opts...)
173710	res, err := c.doRequest("json")
173711	if res != nil && res.StatusCode == http.StatusNotModified {
173712		if res.Body != nil {
173713			res.Body.Close()
173714		}
173715		return nil, &googleapi.Error{
173716			Code:   res.StatusCode,
173717			Header: res.Header,
173718		}
173719	}
173720	if err != nil {
173721		return nil, err
173722	}
173723	defer googleapi.CloseBody(res)
173724	if err := googleapi.CheckResponse(res); err != nil {
173725		return nil, err
173726	}
173727	ret := &Operation{
173728		ServerResponse: googleapi.ServerResponse{
173729			Header:         res.Header,
173730			HTTPStatusCode: res.StatusCode,
173731		},
173732	}
173733	target := &ret
173734	if err := gensupport.DecodeResponse(target, res); err != nil {
173735		return nil, err
173736	}
173737	return ret, nil
173738	// {
173739	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
173740	//   "httpMethod": "POST",
173741	//   "id": "compute.targetPools.insert",
173742	//   "parameterOrder": [
173743	//     "project",
173744	//     "region"
173745	//   ],
173746	//   "parameters": {
173747	//     "project": {
173748	//       "description": "Project ID for this request.",
173749	//       "location": "path",
173750	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173751	//       "required": true,
173752	//       "type": "string"
173753	//     },
173754	//     "region": {
173755	//       "description": "Name of the region scoping this request.",
173756	//       "location": "path",
173757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
173758	//       "required": true,
173759	//       "type": "string"
173760	//     },
173761	//     "requestId": {
173762	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
173763	//       "location": "query",
173764	//       "type": "string"
173765	//     }
173766	//   },
173767	//   "path": "projects/{project}/regions/{region}/targetPools",
173768	//   "request": {
173769	//     "$ref": "TargetPool"
173770	//   },
173771	//   "response": {
173772	//     "$ref": "Operation"
173773	//   },
173774	//   "scopes": [
173775	//     "https://www.googleapis.com/auth/cloud-platform",
173776	//     "https://www.googleapis.com/auth/compute"
173777	//   ]
173778	// }
173779
173780}
173781
173782// method id "compute.targetPools.list":
173783
173784type TargetPoolsListCall struct {
173785	s            *Service
173786	project      string
173787	region       string
173788	urlParams_   gensupport.URLParams
173789	ifNoneMatch_ string
173790	ctx_         context.Context
173791	header_      http.Header
173792}
173793
173794// List: Retrieves a list of target pools available to the specified
173795// project and region.
173796//
173797// - project: Project ID for this request.
173798// - region: Name of the region scoping this request.
173799// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
173800func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
173801	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173802	c.project = project
173803	c.region = region
173804	return c
173805}
173806
173807// Filter sets the optional parameter "filter": A filter expression that
173808// filters resources listed in the response. The expression must specify
173809// the field name, a comparison operator, and the value that you want to
173810// use for filtering. The value must be a string, a number, or a
173811// boolean. The comparison operator must be either `=`, `!=`, `>`, or
173812// `<`.
173813//
173814// For example, if you are filtering Compute Engine instances, you can
173815// exclude instances named `example-instance` by specifying `name !=
173816// example-instance`.
173817//
173818// You can also filter nested fields. For example, you could specify
173819// `scheduling.automaticRestart = false` to include instances only if
173820// they are not scheduled for automatic restarts. You can use filtering
173821// on nested fields to filter based on resource labels.
173822//
173823// To filter on multiple expressions, provide each separate expression
173824// within parentheses. For example: ``` (scheduling.automaticRestart =
173825// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
173826// is an `AND` expression. However, you can include `AND` and `OR`
173827// expressions explicitly. For example: ``` (cpuPlatform = "Intel
173828// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
173829// (scheduling.automaticRestart = true) ```
173830func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
173831	c.urlParams_.Set("filter", filter)
173832	return c
173833}
173834
173835// MaxResults sets the optional parameter "maxResults": The maximum
173836// number of results per page that should be returned. If the number of
173837// available results is larger than `maxResults`, Compute Engine returns
173838// a `nextPageToken` that can be used to get the next page of results in
173839// subsequent list requests. Acceptable values are `0` to `500`,
173840// inclusive. (Default: `500`)
173841func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
173842	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
173843	return c
173844}
173845
173846// OrderBy sets the optional parameter "orderBy": Sorts list results by
173847// a certain order. By default, results are returned in alphanumerical
173848// order based on the resource name.
173849//
173850// You can also sort results in descending order based on the creation
173851// timestamp using `orderBy="creationTimestamp desc". This sorts
173852// results based on the `creationTimestamp` field in reverse
173853// chronological order (newest result first). Use this to sort resources
173854// like operations so that the newest operation is returned
173855// first.
173856//
173857// Currently, only sorting by `name` or `creationTimestamp desc` is
173858// supported.
173859func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
173860	c.urlParams_.Set("orderBy", orderBy)
173861	return c
173862}
173863
173864// PageToken sets the optional parameter "pageToken": Specifies a page
173865// token to use. Set `pageToken` to the `nextPageToken` returned by a
173866// previous list request to get the next page of results.
173867func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
173868	c.urlParams_.Set("pageToken", pageToken)
173869	return c
173870}
173871
173872// ReturnPartialSuccess sets the optional parameter
173873// "returnPartialSuccess": Opt-in for partial success behavior which
173874// provides partial results in case of failure. The default value is
173875// false.
173876func (c *TargetPoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsListCall {
173877	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
173878	return c
173879}
173880
173881// Fields allows partial responses to be retrieved. See
173882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173883// for more information.
173884func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
173885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173886	return c
173887}
173888
173889// IfNoneMatch sets the optional parameter which makes the operation
173890// fail if the object's ETag matches the given value. This is useful for
173891// getting updates only after the object has changed since the last
173892// request. Use googleapi.IsNotModified to check whether the response
173893// error from Do is the result of In-None-Match.
173894func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
173895	c.ifNoneMatch_ = entityTag
173896	return c
173897}
173898
173899// Context sets the context to be used in this call's Do method. Any
173900// pending HTTP request will be aborted if the provided context is
173901// canceled.
173902func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
173903	c.ctx_ = ctx
173904	return c
173905}
173906
173907// Header returns an http.Header that can be modified by the caller to
173908// add HTTP headers to the request.
173909func (c *TargetPoolsListCall) Header() http.Header {
173910	if c.header_ == nil {
173911		c.header_ = make(http.Header)
173912	}
173913	return c.header_
173914}
173915
173916func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
173917	reqHeaders := make(http.Header)
173918	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
173919	for k, v := range c.header_ {
173920		reqHeaders[k] = v
173921	}
173922	reqHeaders.Set("User-Agent", c.s.userAgent())
173923	if c.ifNoneMatch_ != "" {
173924		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
173925	}
173926	var body io.Reader = nil
173927	c.urlParams_.Set("alt", alt)
173928	c.urlParams_.Set("prettyPrint", "false")
173929	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
173930	urls += "?" + c.urlParams_.Encode()
173931	req, err := http.NewRequest("GET", urls, body)
173932	if err != nil {
173933		return nil, err
173934	}
173935	req.Header = reqHeaders
173936	googleapi.Expand(req.URL, map[string]string{
173937		"project": c.project,
173938		"region":  c.region,
173939	})
173940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173941}
173942
173943// Do executes the "compute.targetPools.list" call.
173944// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
173945// status code is an error. Response headers are in either
173946// *TargetPoolList.ServerResponse.Header or (if a response was returned
173947// at all) in error.(*googleapi.Error).Header. Use
173948// googleapi.IsNotModified to check whether the returned error was
173949// because http.StatusNotModified was returned.
173950func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
173951	gensupport.SetOptions(c.urlParams_, opts...)
173952	res, err := c.doRequest("json")
173953	if res != nil && res.StatusCode == http.StatusNotModified {
173954		if res.Body != nil {
173955			res.Body.Close()
173956		}
173957		return nil, &googleapi.Error{
173958			Code:   res.StatusCode,
173959			Header: res.Header,
173960		}
173961	}
173962	if err != nil {
173963		return nil, err
173964	}
173965	defer googleapi.CloseBody(res)
173966	if err := googleapi.CheckResponse(res); err != nil {
173967		return nil, err
173968	}
173969	ret := &TargetPoolList{
173970		ServerResponse: googleapi.ServerResponse{
173971			Header:         res.Header,
173972			HTTPStatusCode: res.StatusCode,
173973		},
173974	}
173975	target := &ret
173976	if err := gensupport.DecodeResponse(target, res); err != nil {
173977		return nil, err
173978	}
173979	return ret, nil
173980	// {
173981	//   "description": "Retrieves a list of target pools available to the specified project and region.",
173982	//   "httpMethod": "GET",
173983	//   "id": "compute.targetPools.list",
173984	//   "parameterOrder": [
173985	//     "project",
173986	//     "region"
173987	//   ],
173988	//   "parameters": {
173989	//     "filter": {
173990	//       "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) ```",
173991	//       "location": "query",
173992	//       "type": "string"
173993	//     },
173994	//     "maxResults": {
173995	//       "default": "500",
173996	//       "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`)",
173997	//       "format": "uint32",
173998	//       "location": "query",
173999	//       "minimum": "0",
174000	//       "type": "integer"
174001	//     },
174002	//     "orderBy": {
174003	//       "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.",
174004	//       "location": "query",
174005	//       "type": "string"
174006	//     },
174007	//     "pageToken": {
174008	//       "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.",
174009	//       "location": "query",
174010	//       "type": "string"
174011	//     },
174012	//     "project": {
174013	//       "description": "Project ID for this request.",
174014	//       "location": "path",
174015	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174016	//       "required": true,
174017	//       "type": "string"
174018	//     },
174019	//     "region": {
174020	//       "description": "Name of the region scoping this request.",
174021	//       "location": "path",
174022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174023	//       "required": true,
174024	//       "type": "string"
174025	//     },
174026	//     "returnPartialSuccess": {
174027	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
174028	//       "location": "query",
174029	//       "type": "boolean"
174030	//     }
174031	//   },
174032	//   "path": "projects/{project}/regions/{region}/targetPools",
174033	//   "response": {
174034	//     "$ref": "TargetPoolList"
174035	//   },
174036	//   "scopes": [
174037	//     "https://www.googleapis.com/auth/cloud-platform",
174038	//     "https://www.googleapis.com/auth/compute",
174039	//     "https://www.googleapis.com/auth/compute.readonly"
174040	//   ]
174041	// }
174042
174043}
174044
174045// Pages invokes f for each page of results.
174046// A non-nil error returned from f will halt the iteration.
174047// The provided context supersedes any context provided to the Context method.
174048func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
174049	c.ctx_ = ctx
174050	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
174051	for {
174052		x, err := c.Do()
174053		if err != nil {
174054			return err
174055		}
174056		if err := f(x); err != nil {
174057			return err
174058		}
174059		if x.NextPageToken == "" {
174060			return nil
174061		}
174062		c.PageToken(x.NextPageToken)
174063	}
174064}
174065
174066// method id "compute.targetPools.removeHealthCheck":
174067
174068type TargetPoolsRemoveHealthCheckCall struct {
174069	s                                   *Service
174070	project                             string
174071	region                              string
174072	targetPool                          string
174073	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
174074	urlParams_                          gensupport.URLParams
174075	ctx_                                context.Context
174076	header_                             http.Header
174077}
174078
174079// RemoveHealthCheck: Removes health check URL from a target pool.
174080//
174081// - project: Project ID for this request.
174082// - region: Name of the region for this request.
174083// - targetPool: Name of the target pool to remove health checks from.
174084// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
174085func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
174086	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174087	c.project = project
174088	c.region = region
174089	c.targetPool = targetPool
174090	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
174091	return c
174092}
174093
174094// RequestId sets the optional parameter "requestId": An optional
174095// request ID to identify requests. Specify a unique request ID so that
174096// if you must retry your request, the server will know to ignore the
174097// request if it has already been completed.
174098//
174099// For example, consider a situation where you make an initial request
174100// and the request times out. If you make the request again with the
174101// same request ID, the server can check if original operation with the
174102// same request ID was received, and if so, will ignore the second
174103// request. This prevents clients from accidentally creating duplicate
174104// commitments.
174105//
174106// The request ID must be a valid UUID with the exception that zero UUID
174107// is not supported (00000000-0000-0000-0000-000000000000).
174108func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
174109	c.urlParams_.Set("requestId", requestId)
174110	return c
174111}
174112
174113// Fields allows partial responses to be retrieved. See
174114// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174115// for more information.
174116func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
174117	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174118	return c
174119}
174120
174121// Context sets the context to be used in this call's Do method. Any
174122// pending HTTP request will be aborted if the provided context is
174123// canceled.
174124func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
174125	c.ctx_ = ctx
174126	return c
174127}
174128
174129// Header returns an http.Header that can be modified by the caller to
174130// add HTTP headers to the request.
174131func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
174132	if c.header_ == nil {
174133		c.header_ = make(http.Header)
174134	}
174135	return c.header_
174136}
174137
174138func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
174139	reqHeaders := make(http.Header)
174140	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
174141	for k, v := range c.header_ {
174142		reqHeaders[k] = v
174143	}
174144	reqHeaders.Set("User-Agent", c.s.userAgent())
174145	var body io.Reader = nil
174146	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
174147	if err != nil {
174148		return nil, err
174149	}
174150	reqHeaders.Set("Content-Type", "application/json")
174151	c.urlParams_.Set("alt", alt)
174152	c.urlParams_.Set("prettyPrint", "false")
174153	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
174154	urls += "?" + c.urlParams_.Encode()
174155	req, err := http.NewRequest("POST", urls, body)
174156	if err != nil {
174157		return nil, err
174158	}
174159	req.Header = reqHeaders
174160	googleapi.Expand(req.URL, map[string]string{
174161		"project":    c.project,
174162		"region":     c.region,
174163		"targetPool": c.targetPool,
174164	})
174165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174166}
174167
174168// Do executes the "compute.targetPools.removeHealthCheck" call.
174169// Exactly one of *Operation or error will be non-nil. Any non-2xx
174170// status code is an error. Response headers are in either
174171// *Operation.ServerResponse.Header or (if a response was returned at
174172// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174173// to check whether the returned error was because
174174// http.StatusNotModified was returned.
174175func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174176	gensupport.SetOptions(c.urlParams_, opts...)
174177	res, err := c.doRequest("json")
174178	if res != nil && res.StatusCode == http.StatusNotModified {
174179		if res.Body != nil {
174180			res.Body.Close()
174181		}
174182		return nil, &googleapi.Error{
174183			Code:   res.StatusCode,
174184			Header: res.Header,
174185		}
174186	}
174187	if err != nil {
174188		return nil, err
174189	}
174190	defer googleapi.CloseBody(res)
174191	if err := googleapi.CheckResponse(res); err != nil {
174192		return nil, err
174193	}
174194	ret := &Operation{
174195		ServerResponse: googleapi.ServerResponse{
174196			Header:         res.Header,
174197			HTTPStatusCode: res.StatusCode,
174198		},
174199	}
174200	target := &ret
174201	if err := gensupport.DecodeResponse(target, res); err != nil {
174202		return nil, err
174203	}
174204	return ret, nil
174205	// {
174206	//   "description": "Removes health check URL from a target pool.",
174207	//   "httpMethod": "POST",
174208	//   "id": "compute.targetPools.removeHealthCheck",
174209	//   "parameterOrder": [
174210	//     "project",
174211	//     "region",
174212	//     "targetPool"
174213	//   ],
174214	//   "parameters": {
174215	//     "project": {
174216	//       "description": "Project ID for this request.",
174217	//       "location": "path",
174218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174219	//       "required": true,
174220	//       "type": "string"
174221	//     },
174222	//     "region": {
174223	//       "description": "Name of the region for this request.",
174224	//       "location": "path",
174225	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174226	//       "required": true,
174227	//       "type": "string"
174228	//     },
174229	//     "requestId": {
174230	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174231	//       "location": "query",
174232	//       "type": "string"
174233	//     },
174234	//     "targetPool": {
174235	//       "description": "Name of the target pool to remove health checks from.",
174236	//       "location": "path",
174237	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174238	//       "required": true,
174239	//       "type": "string"
174240	//     }
174241	//   },
174242	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
174243	//   "request": {
174244	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
174245	//   },
174246	//   "response": {
174247	//     "$ref": "Operation"
174248	//   },
174249	//   "scopes": [
174250	//     "https://www.googleapis.com/auth/cloud-platform",
174251	//     "https://www.googleapis.com/auth/compute"
174252	//   ]
174253	// }
174254
174255}
174256
174257// method id "compute.targetPools.removeInstance":
174258
174259type TargetPoolsRemoveInstanceCall struct {
174260	s                                *Service
174261	project                          string
174262	region                           string
174263	targetPool                       string
174264	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
174265	urlParams_                       gensupport.URLParams
174266	ctx_                             context.Context
174267	header_                          http.Header
174268}
174269
174270// RemoveInstance: Removes instance URL from a target pool.
174271//
174272// - project: Project ID for this request.
174273// - region: Name of the region scoping this request.
174274// - targetPool: Name of the TargetPool resource to remove instances
174275//   from.
174276// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
174277func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
174278	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174279	c.project = project
174280	c.region = region
174281	c.targetPool = targetPool
174282	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
174283	return c
174284}
174285
174286// RequestId sets the optional parameter "requestId": An optional
174287// request ID to identify requests. Specify a unique request ID so that
174288// if you must retry your request, the server will know to ignore the
174289// request if it has already been completed.
174290//
174291// For example, consider a situation where you make an initial request
174292// and the request times out. If you make the request again with the
174293// same request ID, the server can check if original operation with the
174294// same request ID was received, and if so, will ignore the second
174295// request. This prevents clients from accidentally creating duplicate
174296// commitments.
174297//
174298// The request ID must be a valid UUID with the exception that zero UUID
174299// is not supported (00000000-0000-0000-0000-000000000000).
174300func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
174301	c.urlParams_.Set("requestId", requestId)
174302	return c
174303}
174304
174305// Fields allows partial responses to be retrieved. See
174306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174307// for more information.
174308func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
174309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174310	return c
174311}
174312
174313// Context sets the context to be used in this call's Do method. Any
174314// pending HTTP request will be aborted if the provided context is
174315// canceled.
174316func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
174317	c.ctx_ = ctx
174318	return c
174319}
174320
174321// Header returns an http.Header that can be modified by the caller to
174322// add HTTP headers to the request.
174323func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
174324	if c.header_ == nil {
174325		c.header_ = make(http.Header)
174326	}
174327	return c.header_
174328}
174329
174330func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
174331	reqHeaders := make(http.Header)
174332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
174333	for k, v := range c.header_ {
174334		reqHeaders[k] = v
174335	}
174336	reqHeaders.Set("User-Agent", c.s.userAgent())
174337	var body io.Reader = nil
174338	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
174339	if err != nil {
174340		return nil, err
174341	}
174342	reqHeaders.Set("Content-Type", "application/json")
174343	c.urlParams_.Set("alt", alt)
174344	c.urlParams_.Set("prettyPrint", "false")
174345	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
174346	urls += "?" + c.urlParams_.Encode()
174347	req, err := http.NewRequest("POST", urls, body)
174348	if err != nil {
174349		return nil, err
174350	}
174351	req.Header = reqHeaders
174352	googleapi.Expand(req.URL, map[string]string{
174353		"project":    c.project,
174354		"region":     c.region,
174355		"targetPool": c.targetPool,
174356	})
174357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174358}
174359
174360// Do executes the "compute.targetPools.removeInstance" call.
174361// Exactly one of *Operation or error will be non-nil. Any non-2xx
174362// status code is an error. Response headers are in either
174363// *Operation.ServerResponse.Header or (if a response was returned at
174364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174365// to check whether the returned error was because
174366// http.StatusNotModified was returned.
174367func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174368	gensupport.SetOptions(c.urlParams_, opts...)
174369	res, err := c.doRequest("json")
174370	if res != nil && res.StatusCode == http.StatusNotModified {
174371		if res.Body != nil {
174372			res.Body.Close()
174373		}
174374		return nil, &googleapi.Error{
174375			Code:   res.StatusCode,
174376			Header: res.Header,
174377		}
174378	}
174379	if err != nil {
174380		return nil, err
174381	}
174382	defer googleapi.CloseBody(res)
174383	if err := googleapi.CheckResponse(res); err != nil {
174384		return nil, err
174385	}
174386	ret := &Operation{
174387		ServerResponse: googleapi.ServerResponse{
174388			Header:         res.Header,
174389			HTTPStatusCode: res.StatusCode,
174390		},
174391	}
174392	target := &ret
174393	if err := gensupport.DecodeResponse(target, res); err != nil {
174394		return nil, err
174395	}
174396	return ret, nil
174397	// {
174398	//   "description": "Removes instance URL from a target pool.",
174399	//   "httpMethod": "POST",
174400	//   "id": "compute.targetPools.removeInstance",
174401	//   "parameterOrder": [
174402	//     "project",
174403	//     "region",
174404	//     "targetPool"
174405	//   ],
174406	//   "parameters": {
174407	//     "project": {
174408	//       "description": "Project ID for this request.",
174409	//       "location": "path",
174410	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174411	//       "required": true,
174412	//       "type": "string"
174413	//     },
174414	//     "region": {
174415	//       "description": "Name of the region scoping this request.",
174416	//       "location": "path",
174417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174418	//       "required": true,
174419	//       "type": "string"
174420	//     },
174421	//     "requestId": {
174422	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174423	//       "location": "query",
174424	//       "type": "string"
174425	//     },
174426	//     "targetPool": {
174427	//       "description": "Name of the TargetPool resource to remove instances from.",
174428	//       "location": "path",
174429	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174430	//       "required": true,
174431	//       "type": "string"
174432	//     }
174433	//   },
174434	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
174435	//   "request": {
174436	//     "$ref": "TargetPoolsRemoveInstanceRequest"
174437	//   },
174438	//   "response": {
174439	//     "$ref": "Operation"
174440	//   },
174441	//   "scopes": [
174442	//     "https://www.googleapis.com/auth/cloud-platform",
174443	//     "https://www.googleapis.com/auth/compute"
174444	//   ]
174445	// }
174446
174447}
174448
174449// method id "compute.targetPools.setBackup":
174450
174451type TargetPoolsSetBackupCall struct {
174452	s               *Service
174453	project         string
174454	region          string
174455	targetPool      string
174456	targetreference *TargetReference
174457	urlParams_      gensupport.URLParams
174458	ctx_            context.Context
174459	header_         http.Header
174460}
174461
174462// SetBackup: Changes a backup target pool's configurations.
174463//
174464// - project: Project ID for this request.
174465// - region: Name of the region scoping this request.
174466// - targetPool: Name of the TargetPool resource to set a backup pool
174467//   for.
174468// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
174469func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
174470	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174471	c.project = project
174472	c.region = region
174473	c.targetPool = targetPool
174474	c.targetreference = targetreference
174475	return c
174476}
174477
174478// FailoverRatio sets the optional parameter "failoverRatio": New
174479// failoverRatio value for the target pool.
174480func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
174481	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
174482	return c
174483}
174484
174485// RequestId sets the optional parameter "requestId": An optional
174486// request ID to identify requests. Specify a unique request ID so that
174487// if you must retry your request, the server will know to ignore the
174488// request if it has already been completed.
174489//
174490// For example, consider a situation where you make an initial request
174491// and the request times out. If you make the request again with the
174492// same request ID, the server can check if original operation with the
174493// same request ID was received, and if so, will ignore the second
174494// request. This prevents clients from accidentally creating duplicate
174495// commitments.
174496//
174497// The request ID must be a valid UUID with the exception that zero UUID
174498// is not supported (00000000-0000-0000-0000-000000000000).
174499func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
174500	c.urlParams_.Set("requestId", requestId)
174501	return c
174502}
174503
174504// Fields allows partial responses to be retrieved. See
174505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174506// for more information.
174507func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
174508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174509	return c
174510}
174511
174512// Context sets the context to be used in this call's Do method. Any
174513// pending HTTP request will be aborted if the provided context is
174514// canceled.
174515func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
174516	c.ctx_ = ctx
174517	return c
174518}
174519
174520// Header returns an http.Header that can be modified by the caller to
174521// add HTTP headers to the request.
174522func (c *TargetPoolsSetBackupCall) Header() http.Header {
174523	if c.header_ == nil {
174524		c.header_ = make(http.Header)
174525	}
174526	return c.header_
174527}
174528
174529func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
174530	reqHeaders := make(http.Header)
174531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
174532	for k, v := range c.header_ {
174533		reqHeaders[k] = v
174534	}
174535	reqHeaders.Set("User-Agent", c.s.userAgent())
174536	var body io.Reader = nil
174537	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
174538	if err != nil {
174539		return nil, err
174540	}
174541	reqHeaders.Set("Content-Type", "application/json")
174542	c.urlParams_.Set("alt", alt)
174543	c.urlParams_.Set("prettyPrint", "false")
174544	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup")
174545	urls += "?" + c.urlParams_.Encode()
174546	req, err := http.NewRequest("POST", urls, body)
174547	if err != nil {
174548		return nil, err
174549	}
174550	req.Header = reqHeaders
174551	googleapi.Expand(req.URL, map[string]string{
174552		"project":    c.project,
174553		"region":     c.region,
174554		"targetPool": c.targetPool,
174555	})
174556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174557}
174558
174559// Do executes the "compute.targetPools.setBackup" call.
174560// Exactly one of *Operation or error will be non-nil. Any non-2xx
174561// status code is an error. Response headers are in either
174562// *Operation.ServerResponse.Header or (if a response was returned at
174563// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174564// to check whether the returned error was because
174565// http.StatusNotModified was returned.
174566func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174567	gensupport.SetOptions(c.urlParams_, opts...)
174568	res, err := c.doRequest("json")
174569	if res != nil && res.StatusCode == http.StatusNotModified {
174570		if res.Body != nil {
174571			res.Body.Close()
174572		}
174573		return nil, &googleapi.Error{
174574			Code:   res.StatusCode,
174575			Header: res.Header,
174576		}
174577	}
174578	if err != nil {
174579		return nil, err
174580	}
174581	defer googleapi.CloseBody(res)
174582	if err := googleapi.CheckResponse(res); err != nil {
174583		return nil, err
174584	}
174585	ret := &Operation{
174586		ServerResponse: googleapi.ServerResponse{
174587			Header:         res.Header,
174588			HTTPStatusCode: res.StatusCode,
174589		},
174590	}
174591	target := &ret
174592	if err := gensupport.DecodeResponse(target, res); err != nil {
174593		return nil, err
174594	}
174595	return ret, nil
174596	// {
174597	//   "description": "Changes a backup target pool's configurations.",
174598	//   "httpMethod": "POST",
174599	//   "id": "compute.targetPools.setBackup",
174600	//   "parameterOrder": [
174601	//     "project",
174602	//     "region",
174603	//     "targetPool"
174604	//   ],
174605	//   "parameters": {
174606	//     "failoverRatio": {
174607	//       "description": "New failoverRatio value for the target pool.",
174608	//       "format": "float",
174609	//       "location": "query",
174610	//       "type": "number"
174611	//     },
174612	//     "project": {
174613	//       "description": "Project ID for this request.",
174614	//       "location": "path",
174615	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174616	//       "required": true,
174617	//       "type": "string"
174618	//     },
174619	//     "region": {
174620	//       "description": "Name of the region scoping this request.",
174621	//       "location": "path",
174622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174623	//       "required": true,
174624	//       "type": "string"
174625	//     },
174626	//     "requestId": {
174627	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174628	//       "location": "query",
174629	//       "type": "string"
174630	//     },
174631	//     "targetPool": {
174632	//       "description": "Name of the TargetPool resource to set a backup pool for.",
174633	//       "location": "path",
174634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174635	//       "required": true,
174636	//       "type": "string"
174637	//     }
174638	//   },
174639	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
174640	//   "request": {
174641	//     "$ref": "TargetReference"
174642	//   },
174643	//   "response": {
174644	//     "$ref": "Operation"
174645	//   },
174646	//   "scopes": [
174647	//     "https://www.googleapis.com/auth/cloud-platform",
174648	//     "https://www.googleapis.com/auth/compute"
174649	//   ]
174650	// }
174651
174652}
174653
174654// method id "compute.targetPools.testIamPermissions":
174655
174656type TargetPoolsTestIamPermissionsCall struct {
174657	s                      *Service
174658	project                string
174659	region                 string
174660	resource               string
174661	testpermissionsrequest *TestPermissionsRequest
174662	urlParams_             gensupport.URLParams
174663	ctx_                   context.Context
174664	header_                http.Header
174665}
174666
174667// TestIamPermissions: Returns permissions that a caller has on the
174668// specified resource.
174669//
174670// - project: Project ID for this request.
174671// - region: The name of the region for this request.
174672// - resource: Name or id of the resource for this request.
174673func (r *TargetPoolsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetPoolsTestIamPermissionsCall {
174674	c := &TargetPoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174675	c.project = project
174676	c.region = region
174677	c.resource = resource
174678	c.testpermissionsrequest = testpermissionsrequest
174679	return c
174680}
174681
174682// Fields allows partial responses to be retrieved. See
174683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174684// for more information.
174685func (c *TargetPoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetPoolsTestIamPermissionsCall {
174686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174687	return c
174688}
174689
174690// Context sets the context to be used in this call's Do method. Any
174691// pending HTTP request will be aborted if the provided context is
174692// canceled.
174693func (c *TargetPoolsTestIamPermissionsCall) Context(ctx context.Context) *TargetPoolsTestIamPermissionsCall {
174694	c.ctx_ = ctx
174695	return c
174696}
174697
174698// Header returns an http.Header that can be modified by the caller to
174699// add HTTP headers to the request.
174700func (c *TargetPoolsTestIamPermissionsCall) Header() http.Header {
174701	if c.header_ == nil {
174702		c.header_ = make(http.Header)
174703	}
174704	return c.header_
174705}
174706
174707func (c *TargetPoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
174708	reqHeaders := make(http.Header)
174709	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
174710	for k, v := range c.header_ {
174711		reqHeaders[k] = v
174712	}
174713	reqHeaders.Set("User-Agent", c.s.userAgent())
174714	var body io.Reader = nil
174715	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
174716	if err != nil {
174717		return nil, err
174718	}
174719	reqHeaders.Set("Content-Type", "application/json")
174720	c.urlParams_.Set("alt", alt)
174721	c.urlParams_.Set("prettyPrint", "false")
174722	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions")
174723	urls += "?" + c.urlParams_.Encode()
174724	req, err := http.NewRequest("POST", urls, body)
174725	if err != nil {
174726		return nil, err
174727	}
174728	req.Header = reqHeaders
174729	googleapi.Expand(req.URL, map[string]string{
174730		"project":  c.project,
174731		"region":   c.region,
174732		"resource": c.resource,
174733	})
174734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174735}
174736
174737// Do executes the "compute.targetPools.testIamPermissions" call.
174738// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
174739// non-2xx status code is an error. Response headers are in either
174740// *TestPermissionsResponse.ServerResponse.Header or (if a response was
174741// returned at all) in error.(*googleapi.Error).Header. Use
174742// googleapi.IsNotModified to check whether the returned error was
174743// because http.StatusNotModified was returned.
174744func (c *TargetPoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
174745	gensupport.SetOptions(c.urlParams_, opts...)
174746	res, err := c.doRequest("json")
174747	if res != nil && res.StatusCode == http.StatusNotModified {
174748		if res.Body != nil {
174749			res.Body.Close()
174750		}
174751		return nil, &googleapi.Error{
174752			Code:   res.StatusCode,
174753			Header: res.Header,
174754		}
174755	}
174756	if err != nil {
174757		return nil, err
174758	}
174759	defer googleapi.CloseBody(res)
174760	if err := googleapi.CheckResponse(res); err != nil {
174761		return nil, err
174762	}
174763	ret := &TestPermissionsResponse{
174764		ServerResponse: googleapi.ServerResponse{
174765			Header:         res.Header,
174766			HTTPStatusCode: res.StatusCode,
174767		},
174768	}
174769	target := &ret
174770	if err := gensupport.DecodeResponse(target, res); err != nil {
174771		return nil, err
174772	}
174773	return ret, nil
174774	// {
174775	//   "description": "Returns permissions that a caller has on the specified resource.",
174776	//   "httpMethod": "POST",
174777	//   "id": "compute.targetPools.testIamPermissions",
174778	//   "parameterOrder": [
174779	//     "project",
174780	//     "region",
174781	//     "resource"
174782	//   ],
174783	//   "parameters": {
174784	//     "project": {
174785	//       "description": "Project ID for this request.",
174786	//       "location": "path",
174787	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174788	//       "required": true,
174789	//       "type": "string"
174790	//     },
174791	//     "region": {
174792	//       "description": "The name of the region for this request.",
174793	//       "location": "path",
174794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174795	//       "required": true,
174796	//       "type": "string"
174797	//     },
174798	//     "resource": {
174799	//       "description": "Name or id of the resource for this request.",
174800	//       "location": "path",
174801	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174802	//       "required": true,
174803	//       "type": "string"
174804	//     }
174805	//   },
174806	//   "path": "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions",
174807	//   "request": {
174808	//     "$ref": "TestPermissionsRequest"
174809	//   },
174810	//   "response": {
174811	//     "$ref": "TestPermissionsResponse"
174812	//   },
174813	//   "scopes": [
174814	//     "https://www.googleapis.com/auth/cloud-platform",
174815	//     "https://www.googleapis.com/auth/compute",
174816	//     "https://www.googleapis.com/auth/compute.readonly"
174817	//   ]
174818	// }
174819
174820}
174821
174822// method id "compute.targetSslProxies.delete":
174823
174824type TargetSslProxiesDeleteCall struct {
174825	s              *Service
174826	project        string
174827	targetSslProxy string
174828	urlParams_     gensupport.URLParams
174829	ctx_           context.Context
174830	header_        http.Header
174831}
174832
174833// Delete: Deletes the specified TargetSslProxy resource.
174834//
174835// - project: Project ID for this request.
174836// - targetSslProxy: Name of the TargetSslProxy resource to delete.
174837func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
174838	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174839	c.project = project
174840	c.targetSslProxy = targetSslProxy
174841	return c
174842}
174843
174844// RequestId sets the optional parameter "requestId": An optional
174845// request ID to identify requests. Specify a unique request ID so that
174846// if you must retry your request, the server will know to ignore the
174847// request if it has already been completed.
174848//
174849// For example, consider a situation where you make an initial request
174850// and the request times out. If you make the request again with the
174851// same request ID, the server can check if original operation with the
174852// same request ID was received, and if so, will ignore the second
174853// request. This prevents clients from accidentally creating duplicate
174854// commitments.
174855//
174856// The request ID must be a valid UUID with the exception that zero UUID
174857// is not supported (00000000-0000-0000-0000-000000000000).
174858func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
174859	c.urlParams_.Set("requestId", requestId)
174860	return c
174861}
174862
174863// Fields allows partial responses to be retrieved. See
174864// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174865// for more information.
174866func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
174867	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174868	return c
174869}
174870
174871// Context sets the context to be used in this call's Do method. Any
174872// pending HTTP request will be aborted if the provided context is
174873// canceled.
174874func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
174875	c.ctx_ = ctx
174876	return c
174877}
174878
174879// Header returns an http.Header that can be modified by the caller to
174880// add HTTP headers to the request.
174881func (c *TargetSslProxiesDeleteCall) Header() http.Header {
174882	if c.header_ == nil {
174883		c.header_ = make(http.Header)
174884	}
174885	return c.header_
174886}
174887
174888func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
174889	reqHeaders := make(http.Header)
174890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
174891	for k, v := range c.header_ {
174892		reqHeaders[k] = v
174893	}
174894	reqHeaders.Set("User-Agent", c.s.userAgent())
174895	var body io.Reader = nil
174896	c.urlParams_.Set("alt", alt)
174897	c.urlParams_.Set("prettyPrint", "false")
174898	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
174899	urls += "?" + c.urlParams_.Encode()
174900	req, err := http.NewRequest("DELETE", urls, body)
174901	if err != nil {
174902		return nil, err
174903	}
174904	req.Header = reqHeaders
174905	googleapi.Expand(req.URL, map[string]string{
174906		"project":        c.project,
174907		"targetSslProxy": c.targetSslProxy,
174908	})
174909	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174910}
174911
174912// Do executes the "compute.targetSslProxies.delete" call.
174913// Exactly one of *Operation or error will be non-nil. Any non-2xx
174914// status code is an error. Response headers are in either
174915// *Operation.ServerResponse.Header or (if a response was returned at
174916// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174917// to check whether the returned error was because
174918// http.StatusNotModified was returned.
174919func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174920	gensupport.SetOptions(c.urlParams_, opts...)
174921	res, err := c.doRequest("json")
174922	if res != nil && res.StatusCode == http.StatusNotModified {
174923		if res.Body != nil {
174924			res.Body.Close()
174925		}
174926		return nil, &googleapi.Error{
174927			Code:   res.StatusCode,
174928			Header: res.Header,
174929		}
174930	}
174931	if err != nil {
174932		return nil, err
174933	}
174934	defer googleapi.CloseBody(res)
174935	if err := googleapi.CheckResponse(res); err != nil {
174936		return nil, err
174937	}
174938	ret := &Operation{
174939		ServerResponse: googleapi.ServerResponse{
174940			Header:         res.Header,
174941			HTTPStatusCode: res.StatusCode,
174942		},
174943	}
174944	target := &ret
174945	if err := gensupport.DecodeResponse(target, res); err != nil {
174946		return nil, err
174947	}
174948	return ret, nil
174949	// {
174950	//   "description": "Deletes the specified TargetSslProxy resource.",
174951	//   "httpMethod": "DELETE",
174952	//   "id": "compute.targetSslProxies.delete",
174953	//   "parameterOrder": [
174954	//     "project",
174955	//     "targetSslProxy"
174956	//   ],
174957	//   "parameters": {
174958	//     "project": {
174959	//       "description": "Project ID for this request.",
174960	//       "location": "path",
174961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174962	//       "required": true,
174963	//       "type": "string"
174964	//     },
174965	//     "requestId": {
174966	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174967	//       "location": "query",
174968	//       "type": "string"
174969	//     },
174970	//     "targetSslProxy": {
174971	//       "description": "Name of the TargetSslProxy resource to delete.",
174972	//       "location": "path",
174973	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174974	//       "required": true,
174975	//       "type": "string"
174976	//     }
174977	//   },
174978	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
174979	//   "response": {
174980	//     "$ref": "Operation"
174981	//   },
174982	//   "scopes": [
174983	//     "https://www.googleapis.com/auth/cloud-platform",
174984	//     "https://www.googleapis.com/auth/compute"
174985	//   ]
174986	// }
174987
174988}
174989
174990// method id "compute.targetSslProxies.get":
174991
174992type TargetSslProxiesGetCall struct {
174993	s              *Service
174994	project        string
174995	targetSslProxy string
174996	urlParams_     gensupport.URLParams
174997	ifNoneMatch_   string
174998	ctx_           context.Context
174999	header_        http.Header
175000}
175001
175002// Get: Returns the specified TargetSslProxy resource. Gets a list of
175003// available target SSL proxies by making a list() request.
175004//
175005// - project: Project ID for this request.
175006// - targetSslProxy: Name of the TargetSslProxy resource to return.
175007func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
175008	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175009	c.project = project
175010	c.targetSslProxy = targetSslProxy
175011	return c
175012}
175013
175014// Fields allows partial responses to be retrieved. See
175015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175016// for more information.
175017func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
175018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175019	return c
175020}
175021
175022// IfNoneMatch sets the optional parameter which makes the operation
175023// fail if the object's ETag matches the given value. This is useful for
175024// getting updates only after the object has changed since the last
175025// request. Use googleapi.IsNotModified to check whether the response
175026// error from Do is the result of In-None-Match.
175027func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
175028	c.ifNoneMatch_ = entityTag
175029	return c
175030}
175031
175032// Context sets the context to be used in this call's Do method. Any
175033// pending HTTP request will be aborted if the provided context is
175034// canceled.
175035func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
175036	c.ctx_ = ctx
175037	return c
175038}
175039
175040// Header returns an http.Header that can be modified by the caller to
175041// add HTTP headers to the request.
175042func (c *TargetSslProxiesGetCall) Header() http.Header {
175043	if c.header_ == nil {
175044		c.header_ = make(http.Header)
175045	}
175046	return c.header_
175047}
175048
175049func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
175050	reqHeaders := make(http.Header)
175051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
175052	for k, v := range c.header_ {
175053		reqHeaders[k] = v
175054	}
175055	reqHeaders.Set("User-Agent", c.s.userAgent())
175056	if c.ifNoneMatch_ != "" {
175057		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
175058	}
175059	var body io.Reader = nil
175060	c.urlParams_.Set("alt", alt)
175061	c.urlParams_.Set("prettyPrint", "false")
175062	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
175063	urls += "?" + c.urlParams_.Encode()
175064	req, err := http.NewRequest("GET", urls, body)
175065	if err != nil {
175066		return nil, err
175067	}
175068	req.Header = reqHeaders
175069	googleapi.Expand(req.URL, map[string]string{
175070		"project":        c.project,
175071		"targetSslProxy": c.targetSslProxy,
175072	})
175073	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175074}
175075
175076// Do executes the "compute.targetSslProxies.get" call.
175077// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
175078// status code is an error. Response headers are in either
175079// *TargetSslProxy.ServerResponse.Header or (if a response was returned
175080// at all) in error.(*googleapi.Error).Header. Use
175081// googleapi.IsNotModified to check whether the returned error was
175082// because http.StatusNotModified was returned.
175083func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
175084	gensupport.SetOptions(c.urlParams_, opts...)
175085	res, err := c.doRequest("json")
175086	if res != nil && res.StatusCode == http.StatusNotModified {
175087		if res.Body != nil {
175088			res.Body.Close()
175089		}
175090		return nil, &googleapi.Error{
175091			Code:   res.StatusCode,
175092			Header: res.Header,
175093		}
175094	}
175095	if err != nil {
175096		return nil, err
175097	}
175098	defer googleapi.CloseBody(res)
175099	if err := googleapi.CheckResponse(res); err != nil {
175100		return nil, err
175101	}
175102	ret := &TargetSslProxy{
175103		ServerResponse: googleapi.ServerResponse{
175104			Header:         res.Header,
175105			HTTPStatusCode: res.StatusCode,
175106		},
175107	}
175108	target := &ret
175109	if err := gensupport.DecodeResponse(target, res); err != nil {
175110		return nil, err
175111	}
175112	return ret, nil
175113	// {
175114	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
175115	//   "httpMethod": "GET",
175116	//   "id": "compute.targetSslProxies.get",
175117	//   "parameterOrder": [
175118	//     "project",
175119	//     "targetSslProxy"
175120	//   ],
175121	//   "parameters": {
175122	//     "project": {
175123	//       "description": "Project ID for this request.",
175124	//       "location": "path",
175125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175126	//       "required": true,
175127	//       "type": "string"
175128	//     },
175129	//     "targetSslProxy": {
175130	//       "description": "Name of the TargetSslProxy resource to return.",
175131	//       "location": "path",
175132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175133	//       "required": true,
175134	//       "type": "string"
175135	//     }
175136	//   },
175137	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
175138	//   "response": {
175139	//     "$ref": "TargetSslProxy"
175140	//   },
175141	//   "scopes": [
175142	//     "https://www.googleapis.com/auth/cloud-platform",
175143	//     "https://www.googleapis.com/auth/compute",
175144	//     "https://www.googleapis.com/auth/compute.readonly"
175145	//   ]
175146	// }
175147
175148}
175149
175150// method id "compute.targetSslProxies.insert":
175151
175152type TargetSslProxiesInsertCall struct {
175153	s              *Service
175154	project        string
175155	targetsslproxy *TargetSslProxy
175156	urlParams_     gensupport.URLParams
175157	ctx_           context.Context
175158	header_        http.Header
175159}
175160
175161// Insert: Creates a TargetSslProxy resource in the specified project
175162// using the data included in the request.
175163//
175164// - project: Project ID for this request.
175165func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
175166	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175167	c.project = project
175168	c.targetsslproxy = targetsslproxy
175169	return c
175170}
175171
175172// RequestId sets the optional parameter "requestId": An optional
175173// request ID to identify requests. Specify a unique request ID so that
175174// if you must retry your request, the server will know to ignore the
175175// request if it has already been completed.
175176//
175177// For example, consider a situation where you make an initial request
175178// and the request times out. If you make the request again with the
175179// same request ID, the server can check if original operation with the
175180// same request ID was received, and if so, will ignore the second
175181// request. This prevents clients from accidentally creating duplicate
175182// commitments.
175183//
175184// The request ID must be a valid UUID with the exception that zero UUID
175185// is not supported (00000000-0000-0000-0000-000000000000).
175186func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
175187	c.urlParams_.Set("requestId", requestId)
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 *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
175195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175196	return c
175197}
175198
175199// Context sets the context to be used in this call's Do method. Any
175200// pending HTTP request will be aborted if the provided context is
175201// canceled.
175202func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
175203	c.ctx_ = ctx
175204	return c
175205}
175206
175207// Header returns an http.Header that can be modified by the caller to
175208// add HTTP headers to the request.
175209func (c *TargetSslProxiesInsertCall) Header() http.Header {
175210	if c.header_ == nil {
175211		c.header_ = make(http.Header)
175212	}
175213	return c.header_
175214}
175215
175216func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
175217	reqHeaders := make(http.Header)
175218	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
175219	for k, v := range c.header_ {
175220		reqHeaders[k] = v
175221	}
175222	reqHeaders.Set("User-Agent", c.s.userAgent())
175223	var body io.Reader = nil
175224	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
175225	if err != nil {
175226		return nil, err
175227	}
175228	reqHeaders.Set("Content-Type", "application/json")
175229	c.urlParams_.Set("alt", alt)
175230	c.urlParams_.Set("prettyPrint", "false")
175231	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
175232	urls += "?" + c.urlParams_.Encode()
175233	req, err := http.NewRequest("POST", urls, body)
175234	if err != nil {
175235		return nil, err
175236	}
175237	req.Header = reqHeaders
175238	googleapi.Expand(req.URL, map[string]string{
175239		"project": c.project,
175240	})
175241	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175242}
175243
175244// Do executes the "compute.targetSslProxies.insert" call.
175245// Exactly one of *Operation or error will be non-nil. Any non-2xx
175246// status code is an error. Response headers are in either
175247// *Operation.ServerResponse.Header or (if a response was returned at
175248// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175249// to check whether the returned error was because
175250// http.StatusNotModified was returned.
175251func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175252	gensupport.SetOptions(c.urlParams_, opts...)
175253	res, err := c.doRequest("json")
175254	if res != nil && res.StatusCode == http.StatusNotModified {
175255		if res.Body != nil {
175256			res.Body.Close()
175257		}
175258		return nil, &googleapi.Error{
175259			Code:   res.StatusCode,
175260			Header: res.Header,
175261		}
175262	}
175263	if err != nil {
175264		return nil, err
175265	}
175266	defer googleapi.CloseBody(res)
175267	if err := googleapi.CheckResponse(res); err != nil {
175268		return nil, err
175269	}
175270	ret := &Operation{
175271		ServerResponse: googleapi.ServerResponse{
175272			Header:         res.Header,
175273			HTTPStatusCode: res.StatusCode,
175274		},
175275	}
175276	target := &ret
175277	if err := gensupport.DecodeResponse(target, res); err != nil {
175278		return nil, err
175279	}
175280	return ret, nil
175281	// {
175282	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
175283	//   "httpMethod": "POST",
175284	//   "id": "compute.targetSslProxies.insert",
175285	//   "parameterOrder": [
175286	//     "project"
175287	//   ],
175288	//   "parameters": {
175289	//     "project": {
175290	//       "description": "Project ID for this request.",
175291	//       "location": "path",
175292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175293	//       "required": true,
175294	//       "type": "string"
175295	//     },
175296	//     "requestId": {
175297	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
175298	//       "location": "query",
175299	//       "type": "string"
175300	//     }
175301	//   },
175302	//   "path": "projects/{project}/global/targetSslProxies",
175303	//   "request": {
175304	//     "$ref": "TargetSslProxy"
175305	//   },
175306	//   "response": {
175307	//     "$ref": "Operation"
175308	//   },
175309	//   "scopes": [
175310	//     "https://www.googleapis.com/auth/cloud-platform",
175311	//     "https://www.googleapis.com/auth/compute"
175312	//   ]
175313	// }
175314
175315}
175316
175317// method id "compute.targetSslProxies.list":
175318
175319type TargetSslProxiesListCall struct {
175320	s            *Service
175321	project      string
175322	urlParams_   gensupport.URLParams
175323	ifNoneMatch_ string
175324	ctx_         context.Context
175325	header_      http.Header
175326}
175327
175328// List: Retrieves the list of TargetSslProxy resources available to the
175329// specified project.
175330//
175331// - project: Project ID for this request.
175332func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
175333	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175334	c.project = project
175335	return c
175336}
175337
175338// Filter sets the optional parameter "filter": A filter expression that
175339// filters resources listed in the response. The expression must specify
175340// the field name, a comparison operator, and the value that you want to
175341// use for filtering. The value must be a string, a number, or a
175342// boolean. The comparison operator must be either `=`, `!=`, `>`, or
175343// `<`.
175344//
175345// For example, if you are filtering Compute Engine instances, you can
175346// exclude instances named `example-instance` by specifying `name !=
175347// example-instance`.
175348//
175349// You can also filter nested fields. For example, you could specify
175350// `scheduling.automaticRestart = false` to include instances only if
175351// they are not scheduled for automatic restarts. You can use filtering
175352// on nested fields to filter based on resource labels.
175353//
175354// To filter on multiple expressions, provide each separate expression
175355// within parentheses. For example: ``` (scheduling.automaticRestart =
175356// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
175357// is an `AND` expression. However, you can include `AND` and `OR`
175358// expressions explicitly. For example: ``` (cpuPlatform = "Intel
175359// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
175360// (scheduling.automaticRestart = true) ```
175361func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
175362	c.urlParams_.Set("filter", filter)
175363	return c
175364}
175365
175366// MaxResults sets the optional parameter "maxResults": The maximum
175367// number of results per page that should be returned. If the number of
175368// available results is larger than `maxResults`, Compute Engine returns
175369// a `nextPageToken` that can be used to get the next page of results in
175370// subsequent list requests. Acceptable values are `0` to `500`,
175371// inclusive. (Default: `500`)
175372func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
175373	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
175374	return c
175375}
175376
175377// OrderBy sets the optional parameter "orderBy": Sorts list results by
175378// a certain order. By default, results are returned in alphanumerical
175379// order based on the resource name.
175380//
175381// You can also sort results in descending order based on the creation
175382// timestamp using `orderBy="creationTimestamp desc". This sorts
175383// results based on the `creationTimestamp` field in reverse
175384// chronological order (newest result first). Use this to sort resources
175385// like operations so that the newest operation is returned
175386// first.
175387//
175388// Currently, only sorting by `name` or `creationTimestamp desc` is
175389// supported.
175390func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
175391	c.urlParams_.Set("orderBy", orderBy)
175392	return c
175393}
175394
175395// PageToken sets the optional parameter "pageToken": Specifies a page
175396// token to use. Set `pageToken` to the `nextPageToken` returned by a
175397// previous list request to get the next page of results.
175398func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
175399	c.urlParams_.Set("pageToken", pageToken)
175400	return c
175401}
175402
175403// ReturnPartialSuccess sets the optional parameter
175404// "returnPartialSuccess": Opt-in for partial success behavior which
175405// provides partial results in case of failure. The default value is
175406// false.
175407func (c *TargetSslProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetSslProxiesListCall {
175408	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
175409	return c
175410}
175411
175412// Fields allows partial responses to be retrieved. See
175413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175414// for more information.
175415func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
175416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175417	return c
175418}
175419
175420// IfNoneMatch sets the optional parameter which makes the operation
175421// fail if the object's ETag matches the given value. This is useful for
175422// getting updates only after the object has changed since the last
175423// request. Use googleapi.IsNotModified to check whether the response
175424// error from Do is the result of In-None-Match.
175425func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
175426	c.ifNoneMatch_ = entityTag
175427	return c
175428}
175429
175430// Context sets the context to be used in this call's Do method. Any
175431// pending HTTP request will be aborted if the provided context is
175432// canceled.
175433func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
175434	c.ctx_ = ctx
175435	return c
175436}
175437
175438// Header returns an http.Header that can be modified by the caller to
175439// add HTTP headers to the request.
175440func (c *TargetSslProxiesListCall) Header() http.Header {
175441	if c.header_ == nil {
175442		c.header_ = make(http.Header)
175443	}
175444	return c.header_
175445}
175446
175447func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
175448	reqHeaders := make(http.Header)
175449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
175450	for k, v := range c.header_ {
175451		reqHeaders[k] = v
175452	}
175453	reqHeaders.Set("User-Agent", c.s.userAgent())
175454	if c.ifNoneMatch_ != "" {
175455		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
175456	}
175457	var body io.Reader = nil
175458	c.urlParams_.Set("alt", alt)
175459	c.urlParams_.Set("prettyPrint", "false")
175460	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
175461	urls += "?" + c.urlParams_.Encode()
175462	req, err := http.NewRequest("GET", urls, body)
175463	if err != nil {
175464		return nil, err
175465	}
175466	req.Header = reqHeaders
175467	googleapi.Expand(req.URL, map[string]string{
175468		"project": c.project,
175469	})
175470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175471}
175472
175473// Do executes the "compute.targetSslProxies.list" call.
175474// Exactly one of *TargetSslProxyList or error will be non-nil. Any
175475// non-2xx status code is an error. Response headers are in either
175476// *TargetSslProxyList.ServerResponse.Header or (if a response was
175477// returned at all) in error.(*googleapi.Error).Header. Use
175478// googleapi.IsNotModified to check whether the returned error was
175479// because http.StatusNotModified was returned.
175480func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
175481	gensupport.SetOptions(c.urlParams_, opts...)
175482	res, err := c.doRequest("json")
175483	if res != nil && res.StatusCode == http.StatusNotModified {
175484		if res.Body != nil {
175485			res.Body.Close()
175486		}
175487		return nil, &googleapi.Error{
175488			Code:   res.StatusCode,
175489			Header: res.Header,
175490		}
175491	}
175492	if err != nil {
175493		return nil, err
175494	}
175495	defer googleapi.CloseBody(res)
175496	if err := googleapi.CheckResponse(res); err != nil {
175497		return nil, err
175498	}
175499	ret := &TargetSslProxyList{
175500		ServerResponse: googleapi.ServerResponse{
175501			Header:         res.Header,
175502			HTTPStatusCode: res.StatusCode,
175503		},
175504	}
175505	target := &ret
175506	if err := gensupport.DecodeResponse(target, res); err != nil {
175507		return nil, err
175508	}
175509	return ret, nil
175510	// {
175511	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
175512	//   "httpMethod": "GET",
175513	//   "id": "compute.targetSslProxies.list",
175514	//   "parameterOrder": [
175515	//     "project"
175516	//   ],
175517	//   "parameters": {
175518	//     "filter": {
175519	//       "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) ```",
175520	//       "location": "query",
175521	//       "type": "string"
175522	//     },
175523	//     "maxResults": {
175524	//       "default": "500",
175525	//       "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`)",
175526	//       "format": "uint32",
175527	//       "location": "query",
175528	//       "minimum": "0",
175529	//       "type": "integer"
175530	//     },
175531	//     "orderBy": {
175532	//       "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.",
175533	//       "location": "query",
175534	//       "type": "string"
175535	//     },
175536	//     "pageToken": {
175537	//       "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.",
175538	//       "location": "query",
175539	//       "type": "string"
175540	//     },
175541	//     "project": {
175542	//       "description": "Project ID for this request.",
175543	//       "location": "path",
175544	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175545	//       "required": true,
175546	//       "type": "string"
175547	//     },
175548	//     "returnPartialSuccess": {
175549	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
175550	//       "location": "query",
175551	//       "type": "boolean"
175552	//     }
175553	//   },
175554	//   "path": "projects/{project}/global/targetSslProxies",
175555	//   "response": {
175556	//     "$ref": "TargetSslProxyList"
175557	//   },
175558	//   "scopes": [
175559	//     "https://www.googleapis.com/auth/cloud-platform",
175560	//     "https://www.googleapis.com/auth/compute",
175561	//     "https://www.googleapis.com/auth/compute.readonly"
175562	//   ]
175563	// }
175564
175565}
175566
175567// Pages invokes f for each page of results.
175568// A non-nil error returned from f will halt the iteration.
175569// The provided context supersedes any context provided to the Context method.
175570func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
175571	c.ctx_ = ctx
175572	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
175573	for {
175574		x, err := c.Do()
175575		if err != nil {
175576			return err
175577		}
175578		if err := f(x); err != nil {
175579			return err
175580		}
175581		if x.NextPageToken == "" {
175582			return nil
175583		}
175584		c.PageToken(x.NextPageToken)
175585	}
175586}
175587
175588// method id "compute.targetSslProxies.setBackendService":
175589
175590type TargetSslProxiesSetBackendServiceCall struct {
175591	s                                        *Service
175592	project                                  string
175593	targetSslProxy                           string
175594	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
175595	urlParams_                               gensupport.URLParams
175596	ctx_                                     context.Context
175597	header_                                  http.Header
175598}
175599
175600// SetBackendService: Changes the BackendService for TargetSslProxy.
175601//
175602// - project: Project ID for this request.
175603// - targetSslProxy: Name of the TargetSslProxy resource whose
175604//   BackendService resource is to be set.
175605func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
175606	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175607	c.project = project
175608	c.targetSslProxy = targetSslProxy
175609	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
175610	return c
175611}
175612
175613// RequestId sets the optional parameter "requestId": An optional
175614// request ID to identify requests. Specify a unique request ID so that
175615// if you must retry your request, the server will know to ignore the
175616// request if it has already been completed.
175617//
175618// For example, consider a situation where you make an initial request
175619// and the request times out. If you make the request again with the
175620// same request ID, the server can check if original operation with the
175621// same request ID was received, and if so, will ignore the second
175622// request. This prevents clients from accidentally creating duplicate
175623// commitments.
175624//
175625// The request ID must be a valid UUID with the exception that zero UUID
175626// is not supported (00000000-0000-0000-0000-000000000000).
175627func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
175628	c.urlParams_.Set("requestId", requestId)
175629	return c
175630}
175631
175632// Fields allows partial responses to be retrieved. See
175633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175634// for more information.
175635func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
175636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175637	return c
175638}
175639
175640// Context sets the context to be used in this call's Do method. Any
175641// pending HTTP request will be aborted if the provided context is
175642// canceled.
175643func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
175644	c.ctx_ = ctx
175645	return c
175646}
175647
175648// Header returns an http.Header that can be modified by the caller to
175649// add HTTP headers to the request.
175650func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
175651	if c.header_ == nil {
175652		c.header_ = make(http.Header)
175653	}
175654	return c.header_
175655}
175656
175657func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
175658	reqHeaders := make(http.Header)
175659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
175660	for k, v := range c.header_ {
175661		reqHeaders[k] = v
175662	}
175663	reqHeaders.Set("User-Agent", c.s.userAgent())
175664	var body io.Reader = nil
175665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
175666	if err != nil {
175667		return nil, err
175668	}
175669	reqHeaders.Set("Content-Type", "application/json")
175670	c.urlParams_.Set("alt", alt)
175671	c.urlParams_.Set("prettyPrint", "false")
175672	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
175673	urls += "?" + c.urlParams_.Encode()
175674	req, err := http.NewRequest("POST", urls, body)
175675	if err != nil {
175676		return nil, err
175677	}
175678	req.Header = reqHeaders
175679	googleapi.Expand(req.URL, map[string]string{
175680		"project":        c.project,
175681		"targetSslProxy": c.targetSslProxy,
175682	})
175683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175684}
175685
175686// Do executes the "compute.targetSslProxies.setBackendService" call.
175687// Exactly one of *Operation or error will be non-nil. Any non-2xx
175688// status code is an error. Response headers are in either
175689// *Operation.ServerResponse.Header or (if a response was returned at
175690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175691// to check whether the returned error was because
175692// http.StatusNotModified was returned.
175693func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175694	gensupport.SetOptions(c.urlParams_, opts...)
175695	res, err := c.doRequest("json")
175696	if res != nil && res.StatusCode == http.StatusNotModified {
175697		if res.Body != nil {
175698			res.Body.Close()
175699		}
175700		return nil, &googleapi.Error{
175701			Code:   res.StatusCode,
175702			Header: res.Header,
175703		}
175704	}
175705	if err != nil {
175706		return nil, err
175707	}
175708	defer googleapi.CloseBody(res)
175709	if err := googleapi.CheckResponse(res); err != nil {
175710		return nil, err
175711	}
175712	ret := &Operation{
175713		ServerResponse: googleapi.ServerResponse{
175714			Header:         res.Header,
175715			HTTPStatusCode: res.StatusCode,
175716		},
175717	}
175718	target := &ret
175719	if err := gensupport.DecodeResponse(target, res); err != nil {
175720		return nil, err
175721	}
175722	return ret, nil
175723	// {
175724	//   "description": "Changes the BackendService for TargetSslProxy.",
175725	//   "httpMethod": "POST",
175726	//   "id": "compute.targetSslProxies.setBackendService",
175727	//   "parameterOrder": [
175728	//     "project",
175729	//     "targetSslProxy"
175730	//   ],
175731	//   "parameters": {
175732	//     "project": {
175733	//       "description": "Project ID for this request.",
175734	//       "location": "path",
175735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175736	//       "required": true,
175737	//       "type": "string"
175738	//     },
175739	//     "requestId": {
175740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
175741	//       "location": "query",
175742	//       "type": "string"
175743	//     },
175744	//     "targetSslProxy": {
175745	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
175746	//       "location": "path",
175747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175748	//       "required": true,
175749	//       "type": "string"
175750	//     }
175751	//   },
175752	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
175753	//   "request": {
175754	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
175755	//   },
175756	//   "response": {
175757	//     "$ref": "Operation"
175758	//   },
175759	//   "scopes": [
175760	//     "https://www.googleapis.com/auth/cloud-platform",
175761	//     "https://www.googleapis.com/auth/compute"
175762	//   ]
175763	// }
175764
175765}
175766
175767// method id "compute.targetSslProxies.setProxyHeader":
175768
175769type TargetSslProxiesSetProxyHeaderCall struct {
175770	s                                     *Service
175771	project                               string
175772	targetSslProxy                        string
175773	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
175774	urlParams_                            gensupport.URLParams
175775	ctx_                                  context.Context
175776	header_                               http.Header
175777}
175778
175779// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
175780//
175781// - project: Project ID for this request.
175782// - targetSslProxy: Name of the TargetSslProxy resource whose
175783//   ProxyHeader is to be set.
175784func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
175785	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175786	c.project = project
175787	c.targetSslProxy = targetSslProxy
175788	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
175789	return c
175790}
175791
175792// RequestId sets the optional parameter "requestId": An optional
175793// request ID to identify requests. Specify a unique request ID so that
175794// if you must retry your request, the server will know to ignore the
175795// request if it has already been completed.
175796//
175797// For example, consider a situation where you make an initial request
175798// and the request times out. If you make the request again with the
175799// same request ID, the server can check if original operation with the
175800// same request ID was received, and if so, will ignore the second
175801// request. This prevents clients from accidentally creating duplicate
175802// commitments.
175803//
175804// The request ID must be a valid UUID with the exception that zero UUID
175805// is not supported (00000000-0000-0000-0000-000000000000).
175806func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
175807	c.urlParams_.Set("requestId", requestId)
175808	return c
175809}
175810
175811// Fields allows partial responses to be retrieved. See
175812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175813// for more information.
175814func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
175815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175816	return c
175817}
175818
175819// Context sets the context to be used in this call's Do method. Any
175820// pending HTTP request will be aborted if the provided context is
175821// canceled.
175822func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
175823	c.ctx_ = ctx
175824	return c
175825}
175826
175827// Header returns an http.Header that can be modified by the caller to
175828// add HTTP headers to the request.
175829func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
175830	if c.header_ == nil {
175831		c.header_ = make(http.Header)
175832	}
175833	return c.header_
175834}
175835
175836func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
175837	reqHeaders := make(http.Header)
175838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
175839	for k, v := range c.header_ {
175840		reqHeaders[k] = v
175841	}
175842	reqHeaders.Set("User-Agent", c.s.userAgent())
175843	var body io.Reader = nil
175844	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
175845	if err != nil {
175846		return nil, err
175847	}
175848	reqHeaders.Set("Content-Type", "application/json")
175849	c.urlParams_.Set("alt", alt)
175850	c.urlParams_.Set("prettyPrint", "false")
175851	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
175852	urls += "?" + c.urlParams_.Encode()
175853	req, err := http.NewRequest("POST", urls, body)
175854	if err != nil {
175855		return nil, err
175856	}
175857	req.Header = reqHeaders
175858	googleapi.Expand(req.URL, map[string]string{
175859		"project":        c.project,
175860		"targetSslProxy": c.targetSslProxy,
175861	})
175862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175863}
175864
175865// Do executes the "compute.targetSslProxies.setProxyHeader" call.
175866// Exactly one of *Operation or error will be non-nil. Any non-2xx
175867// status code is an error. Response headers are in either
175868// *Operation.ServerResponse.Header or (if a response was returned at
175869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175870// to check whether the returned error was because
175871// http.StatusNotModified was returned.
175872func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175873	gensupport.SetOptions(c.urlParams_, opts...)
175874	res, err := c.doRequest("json")
175875	if res != nil && res.StatusCode == http.StatusNotModified {
175876		if res.Body != nil {
175877			res.Body.Close()
175878		}
175879		return nil, &googleapi.Error{
175880			Code:   res.StatusCode,
175881			Header: res.Header,
175882		}
175883	}
175884	if err != nil {
175885		return nil, err
175886	}
175887	defer googleapi.CloseBody(res)
175888	if err := googleapi.CheckResponse(res); err != nil {
175889		return nil, err
175890	}
175891	ret := &Operation{
175892		ServerResponse: googleapi.ServerResponse{
175893			Header:         res.Header,
175894			HTTPStatusCode: res.StatusCode,
175895		},
175896	}
175897	target := &ret
175898	if err := gensupport.DecodeResponse(target, res); err != nil {
175899		return nil, err
175900	}
175901	return ret, nil
175902	// {
175903	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
175904	//   "httpMethod": "POST",
175905	//   "id": "compute.targetSslProxies.setProxyHeader",
175906	//   "parameterOrder": [
175907	//     "project",
175908	//     "targetSslProxy"
175909	//   ],
175910	//   "parameters": {
175911	//     "project": {
175912	//       "description": "Project ID for this request.",
175913	//       "location": "path",
175914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175915	//       "required": true,
175916	//       "type": "string"
175917	//     },
175918	//     "requestId": {
175919	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
175920	//       "location": "query",
175921	//       "type": "string"
175922	//     },
175923	//     "targetSslProxy": {
175924	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
175925	//       "location": "path",
175926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175927	//       "required": true,
175928	//       "type": "string"
175929	//     }
175930	//   },
175931	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
175932	//   "request": {
175933	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
175934	//   },
175935	//   "response": {
175936	//     "$ref": "Operation"
175937	//   },
175938	//   "scopes": [
175939	//     "https://www.googleapis.com/auth/cloud-platform",
175940	//     "https://www.googleapis.com/auth/compute"
175941	//   ]
175942	// }
175943
175944}
175945
175946// method id "compute.targetSslProxies.setSslCertificates":
175947
175948type TargetSslProxiesSetSslCertificatesCall struct {
175949	s                                         *Service
175950	project                                   string
175951	targetSslProxy                            string
175952	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
175953	urlParams_                                gensupport.URLParams
175954	ctx_                                      context.Context
175955	header_                                   http.Header
175956}
175957
175958// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
175959//
175960// - project: Project ID for this request.
175961// - targetSslProxy: Name of the TargetSslProxy resource whose
175962//   SslCertificate resource is to be set.
175963func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
175964	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175965	c.project = project
175966	c.targetSslProxy = targetSslProxy
175967	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
175968	return c
175969}
175970
175971// RequestId sets the optional parameter "requestId": An optional
175972// request ID to identify requests. Specify a unique request ID so that
175973// if you must retry your request, the server will know to ignore the
175974// request if it has already been completed.
175975//
175976// For example, consider a situation where you make an initial request
175977// and the request times out. If you make the request again with the
175978// same request ID, the server can check if original operation with the
175979// same request ID was received, and if so, will ignore the second
175980// request. This prevents clients from accidentally creating duplicate
175981// commitments.
175982//
175983// The request ID must be a valid UUID with the exception that zero UUID
175984// is not supported (00000000-0000-0000-0000-000000000000).
175985func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
175986	c.urlParams_.Set("requestId", requestId)
175987	return c
175988}
175989
175990// Fields allows partial responses to be retrieved. See
175991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175992// for more information.
175993func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
175994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175995	return c
175996}
175997
175998// Context sets the context to be used in this call's Do method. Any
175999// pending HTTP request will be aborted if the provided context is
176000// canceled.
176001func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
176002	c.ctx_ = ctx
176003	return c
176004}
176005
176006// Header returns an http.Header that can be modified by the caller to
176007// add HTTP headers to the request.
176008func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
176009	if c.header_ == nil {
176010		c.header_ = make(http.Header)
176011	}
176012	return c.header_
176013}
176014
176015func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
176016	reqHeaders := make(http.Header)
176017	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
176018	for k, v := range c.header_ {
176019		reqHeaders[k] = v
176020	}
176021	reqHeaders.Set("User-Agent", c.s.userAgent())
176022	var body io.Reader = nil
176023	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
176024	if err != nil {
176025		return nil, err
176026	}
176027	reqHeaders.Set("Content-Type", "application/json")
176028	c.urlParams_.Set("alt", alt)
176029	c.urlParams_.Set("prettyPrint", "false")
176030	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
176031	urls += "?" + c.urlParams_.Encode()
176032	req, err := http.NewRequest("POST", urls, body)
176033	if err != nil {
176034		return nil, err
176035	}
176036	req.Header = reqHeaders
176037	googleapi.Expand(req.URL, map[string]string{
176038		"project":        c.project,
176039		"targetSslProxy": c.targetSslProxy,
176040	})
176041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176042}
176043
176044// Do executes the "compute.targetSslProxies.setSslCertificates" call.
176045// Exactly one of *Operation or error will be non-nil. Any non-2xx
176046// status code is an error. Response headers are in either
176047// *Operation.ServerResponse.Header or (if a response was returned at
176048// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176049// to check whether the returned error was because
176050// http.StatusNotModified was returned.
176051func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
176052	gensupport.SetOptions(c.urlParams_, opts...)
176053	res, err := c.doRequest("json")
176054	if res != nil && res.StatusCode == http.StatusNotModified {
176055		if res.Body != nil {
176056			res.Body.Close()
176057		}
176058		return nil, &googleapi.Error{
176059			Code:   res.StatusCode,
176060			Header: res.Header,
176061		}
176062	}
176063	if err != nil {
176064		return nil, err
176065	}
176066	defer googleapi.CloseBody(res)
176067	if err := googleapi.CheckResponse(res); err != nil {
176068		return nil, err
176069	}
176070	ret := &Operation{
176071		ServerResponse: googleapi.ServerResponse{
176072			Header:         res.Header,
176073			HTTPStatusCode: res.StatusCode,
176074		},
176075	}
176076	target := &ret
176077	if err := gensupport.DecodeResponse(target, res); err != nil {
176078		return nil, err
176079	}
176080	return ret, nil
176081	// {
176082	//   "description": "Changes SslCertificates for TargetSslProxy.",
176083	//   "httpMethod": "POST",
176084	//   "id": "compute.targetSslProxies.setSslCertificates",
176085	//   "parameterOrder": [
176086	//     "project",
176087	//     "targetSslProxy"
176088	//   ],
176089	//   "parameters": {
176090	//     "project": {
176091	//       "description": "Project ID for this request.",
176092	//       "location": "path",
176093	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176094	//       "required": true,
176095	//       "type": "string"
176096	//     },
176097	//     "requestId": {
176098	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176099	//       "location": "query",
176100	//       "type": "string"
176101	//     },
176102	//     "targetSslProxy": {
176103	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
176104	//       "location": "path",
176105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176106	//       "required": true,
176107	//       "type": "string"
176108	//     }
176109	//   },
176110	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
176111	//   "request": {
176112	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
176113	//   },
176114	//   "response": {
176115	//     "$ref": "Operation"
176116	//   },
176117	//   "scopes": [
176118	//     "https://www.googleapis.com/auth/cloud-platform",
176119	//     "https://www.googleapis.com/auth/compute"
176120	//   ]
176121	// }
176122
176123}
176124
176125// method id "compute.targetSslProxies.setSslPolicy":
176126
176127type TargetSslProxiesSetSslPolicyCall struct {
176128	s                  *Service
176129	project            string
176130	targetSslProxy     string
176131	sslpolicyreference *SslPolicyReference
176132	urlParams_         gensupport.URLParams
176133	ctx_               context.Context
176134	header_            http.Header
176135}
176136
176137// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
176138// specifies the server-side support for SSL features. This affects
176139// connections between clients and the SSL proxy load balancer. They do
176140// not affect the connection between the load balancer and the backends.
176141//
176142// - project: Project ID for this request.
176143// - targetSslProxy: Name of the TargetSslProxy resource whose SSL
176144//   policy is to be set. The name must be 1-63 characters long, and
176145//   comply with RFC1035.
176146func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
176147	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176148	c.project = project
176149	c.targetSslProxy = targetSslProxy
176150	c.sslpolicyreference = sslpolicyreference
176151	return c
176152}
176153
176154// RequestId sets the optional parameter "requestId": An optional
176155// request ID to identify requests. Specify a unique request ID so that
176156// if you must retry your request, the server will know to ignore the
176157// request if it has already been completed.
176158//
176159// For example, consider a situation where you make an initial request
176160// and the request times out. If you make the request again with the
176161// same request ID, the server can check if original operation with the
176162// same request ID was received, and if so, will ignore the second
176163// request. This prevents clients from accidentally creating duplicate
176164// commitments.
176165//
176166// The request ID must be a valid UUID with the exception that zero UUID
176167// is not supported (00000000-0000-0000-0000-000000000000).
176168func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
176169	c.urlParams_.Set("requestId", requestId)
176170	return c
176171}
176172
176173// Fields allows partial responses to be retrieved. See
176174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176175// for more information.
176176func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
176177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176178	return c
176179}
176180
176181// Context sets the context to be used in this call's Do method. Any
176182// pending HTTP request will be aborted if the provided context is
176183// canceled.
176184func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
176185	c.ctx_ = ctx
176186	return c
176187}
176188
176189// Header returns an http.Header that can be modified by the caller to
176190// add HTTP headers to the request.
176191func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
176192	if c.header_ == nil {
176193		c.header_ = make(http.Header)
176194	}
176195	return c.header_
176196}
176197
176198func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
176199	reqHeaders := make(http.Header)
176200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
176201	for k, v := range c.header_ {
176202		reqHeaders[k] = v
176203	}
176204	reqHeaders.Set("User-Agent", c.s.userAgent())
176205	var body io.Reader = nil
176206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
176207	if err != nil {
176208		return nil, err
176209	}
176210	reqHeaders.Set("Content-Type", "application/json")
176211	c.urlParams_.Set("alt", alt)
176212	c.urlParams_.Set("prettyPrint", "false")
176213	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
176214	urls += "?" + c.urlParams_.Encode()
176215	req, err := http.NewRequest("POST", urls, body)
176216	if err != nil {
176217		return nil, err
176218	}
176219	req.Header = reqHeaders
176220	googleapi.Expand(req.URL, map[string]string{
176221		"project":        c.project,
176222		"targetSslProxy": c.targetSslProxy,
176223	})
176224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176225}
176226
176227// Do executes the "compute.targetSslProxies.setSslPolicy" call.
176228// Exactly one of *Operation or error will be non-nil. Any non-2xx
176229// status code is an error. Response headers are in either
176230// *Operation.ServerResponse.Header or (if a response was returned at
176231// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176232// to check whether the returned error was because
176233// http.StatusNotModified was returned.
176234func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
176235	gensupport.SetOptions(c.urlParams_, opts...)
176236	res, err := c.doRequest("json")
176237	if res != nil && res.StatusCode == http.StatusNotModified {
176238		if res.Body != nil {
176239			res.Body.Close()
176240		}
176241		return nil, &googleapi.Error{
176242			Code:   res.StatusCode,
176243			Header: res.Header,
176244		}
176245	}
176246	if err != nil {
176247		return nil, err
176248	}
176249	defer googleapi.CloseBody(res)
176250	if err := googleapi.CheckResponse(res); err != nil {
176251		return nil, err
176252	}
176253	ret := &Operation{
176254		ServerResponse: googleapi.ServerResponse{
176255			Header:         res.Header,
176256			HTTPStatusCode: res.StatusCode,
176257		},
176258	}
176259	target := &ret
176260	if err := gensupport.DecodeResponse(target, res); err != nil {
176261		return nil, err
176262	}
176263	return ret, nil
176264	// {
176265	//   "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.",
176266	//   "httpMethod": "POST",
176267	//   "id": "compute.targetSslProxies.setSslPolicy",
176268	//   "parameterOrder": [
176269	//     "project",
176270	//     "targetSslProxy"
176271	//   ],
176272	//   "parameters": {
176273	//     "project": {
176274	//       "description": "Project ID for this request.",
176275	//       "location": "path",
176276	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176277	//       "required": true,
176278	//       "type": "string"
176279	//     },
176280	//     "requestId": {
176281	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176282	//       "location": "query",
176283	//       "type": "string"
176284	//     },
176285	//     "targetSslProxy": {
176286	//       "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.",
176287	//       "location": "path",
176288	//       "required": true,
176289	//       "type": "string"
176290	//     }
176291	//   },
176292	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
176293	//   "request": {
176294	//     "$ref": "SslPolicyReference"
176295	//   },
176296	//   "response": {
176297	//     "$ref": "Operation"
176298	//   },
176299	//   "scopes": [
176300	//     "https://www.googleapis.com/auth/cloud-platform",
176301	//     "https://www.googleapis.com/auth/compute"
176302	//   ]
176303	// }
176304
176305}
176306
176307// method id "compute.targetSslProxies.testIamPermissions":
176308
176309type TargetSslProxiesTestIamPermissionsCall struct {
176310	s                      *Service
176311	project                string
176312	resource               string
176313	testpermissionsrequest *TestPermissionsRequest
176314	urlParams_             gensupport.URLParams
176315	ctx_                   context.Context
176316	header_                http.Header
176317}
176318
176319// TestIamPermissions: Returns permissions that a caller has on the
176320// specified resource.
176321//
176322// - project: Project ID for this request.
176323// - resource: Name or id of the resource for this request.
176324func (r *TargetSslProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetSslProxiesTestIamPermissionsCall {
176325	c := &TargetSslProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176326	c.project = project
176327	c.resource = resource
176328	c.testpermissionsrequest = testpermissionsrequest
176329	return c
176330}
176331
176332// Fields allows partial responses to be retrieved. See
176333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176334// for more information.
176335func (c *TargetSslProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetSslProxiesTestIamPermissionsCall {
176336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176337	return c
176338}
176339
176340// Context sets the context to be used in this call's Do method. Any
176341// pending HTTP request will be aborted if the provided context is
176342// canceled.
176343func (c *TargetSslProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetSslProxiesTestIamPermissionsCall {
176344	c.ctx_ = ctx
176345	return c
176346}
176347
176348// Header returns an http.Header that can be modified by the caller to
176349// add HTTP headers to the request.
176350func (c *TargetSslProxiesTestIamPermissionsCall) Header() http.Header {
176351	if c.header_ == nil {
176352		c.header_ = make(http.Header)
176353	}
176354	return c.header_
176355}
176356
176357func (c *TargetSslProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
176358	reqHeaders := make(http.Header)
176359	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
176360	for k, v := range c.header_ {
176361		reqHeaders[k] = v
176362	}
176363	reqHeaders.Set("User-Agent", c.s.userAgent())
176364	var body io.Reader = nil
176365	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
176366	if err != nil {
176367		return nil, err
176368	}
176369	reqHeaders.Set("Content-Type", "application/json")
176370	c.urlParams_.Set("alt", alt)
176371	c.urlParams_.Set("prettyPrint", "false")
176372	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions")
176373	urls += "?" + c.urlParams_.Encode()
176374	req, err := http.NewRequest("POST", urls, body)
176375	if err != nil {
176376		return nil, err
176377	}
176378	req.Header = reqHeaders
176379	googleapi.Expand(req.URL, map[string]string{
176380		"project":  c.project,
176381		"resource": c.resource,
176382	})
176383	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176384}
176385
176386// Do executes the "compute.targetSslProxies.testIamPermissions" call.
176387// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
176388// non-2xx status code is an error. Response headers are in either
176389// *TestPermissionsResponse.ServerResponse.Header or (if a response was
176390// returned at all) in error.(*googleapi.Error).Header. Use
176391// googleapi.IsNotModified to check whether the returned error was
176392// because http.StatusNotModified was returned.
176393func (c *TargetSslProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
176394	gensupport.SetOptions(c.urlParams_, opts...)
176395	res, err := c.doRequest("json")
176396	if res != nil && res.StatusCode == http.StatusNotModified {
176397		if res.Body != nil {
176398			res.Body.Close()
176399		}
176400		return nil, &googleapi.Error{
176401			Code:   res.StatusCode,
176402			Header: res.Header,
176403		}
176404	}
176405	if err != nil {
176406		return nil, err
176407	}
176408	defer googleapi.CloseBody(res)
176409	if err := googleapi.CheckResponse(res); err != nil {
176410		return nil, err
176411	}
176412	ret := &TestPermissionsResponse{
176413		ServerResponse: googleapi.ServerResponse{
176414			Header:         res.Header,
176415			HTTPStatusCode: res.StatusCode,
176416		},
176417	}
176418	target := &ret
176419	if err := gensupport.DecodeResponse(target, res); err != nil {
176420		return nil, err
176421	}
176422	return ret, nil
176423	// {
176424	//   "description": "Returns permissions that a caller has on the specified resource.",
176425	//   "httpMethod": "POST",
176426	//   "id": "compute.targetSslProxies.testIamPermissions",
176427	//   "parameterOrder": [
176428	//     "project",
176429	//     "resource"
176430	//   ],
176431	//   "parameters": {
176432	//     "project": {
176433	//       "description": "Project ID for this request.",
176434	//       "location": "path",
176435	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176436	//       "required": true,
176437	//       "type": "string"
176438	//     },
176439	//     "resource": {
176440	//       "description": "Name or id of the resource for this request.",
176441	//       "location": "path",
176442	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176443	//       "required": true,
176444	//       "type": "string"
176445	//     }
176446	//   },
176447	//   "path": "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions",
176448	//   "request": {
176449	//     "$ref": "TestPermissionsRequest"
176450	//   },
176451	//   "response": {
176452	//     "$ref": "TestPermissionsResponse"
176453	//   },
176454	//   "scopes": [
176455	//     "https://www.googleapis.com/auth/cloud-platform",
176456	//     "https://www.googleapis.com/auth/compute",
176457	//     "https://www.googleapis.com/auth/compute.readonly"
176458	//   ]
176459	// }
176460
176461}
176462
176463// method id "compute.targetTcpProxies.delete":
176464
176465type TargetTcpProxiesDeleteCall struct {
176466	s              *Service
176467	project        string
176468	targetTcpProxy string
176469	urlParams_     gensupport.URLParams
176470	ctx_           context.Context
176471	header_        http.Header
176472}
176473
176474// Delete: Deletes the specified TargetTcpProxy resource.
176475//
176476// - project: Project ID for this request.
176477// - targetTcpProxy: Name of the TargetTcpProxy resource to delete.
176478func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
176479	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176480	c.project = project
176481	c.targetTcpProxy = targetTcpProxy
176482	return c
176483}
176484
176485// RequestId sets the optional parameter "requestId": An optional
176486// request ID to identify requests. Specify a unique request ID so that
176487// if you must retry your request, the server will know to ignore the
176488// request if it has already been completed.
176489//
176490// For example, consider a situation where you make an initial request
176491// and the request times out. If you make the request again with the
176492// same request ID, the server can check if original operation with the
176493// same request ID was received, and if so, will ignore the second
176494// request. This prevents clients from accidentally creating duplicate
176495// commitments.
176496//
176497// The request ID must be a valid UUID with the exception that zero UUID
176498// is not supported (00000000-0000-0000-0000-000000000000).
176499func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
176500	c.urlParams_.Set("requestId", requestId)
176501	return c
176502}
176503
176504// Fields allows partial responses to be retrieved. See
176505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176506// for more information.
176507func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
176508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176509	return c
176510}
176511
176512// Context sets the context to be used in this call's Do method. Any
176513// pending HTTP request will be aborted if the provided context is
176514// canceled.
176515func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
176516	c.ctx_ = ctx
176517	return c
176518}
176519
176520// Header returns an http.Header that can be modified by the caller to
176521// add HTTP headers to the request.
176522func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
176523	if c.header_ == nil {
176524		c.header_ = make(http.Header)
176525	}
176526	return c.header_
176527}
176528
176529func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
176530	reqHeaders := make(http.Header)
176531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
176532	for k, v := range c.header_ {
176533		reqHeaders[k] = v
176534	}
176535	reqHeaders.Set("User-Agent", c.s.userAgent())
176536	var body io.Reader = nil
176537	c.urlParams_.Set("alt", alt)
176538	c.urlParams_.Set("prettyPrint", "false")
176539	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
176540	urls += "?" + c.urlParams_.Encode()
176541	req, err := http.NewRequest("DELETE", urls, body)
176542	if err != nil {
176543		return nil, err
176544	}
176545	req.Header = reqHeaders
176546	googleapi.Expand(req.URL, map[string]string{
176547		"project":        c.project,
176548		"targetTcpProxy": c.targetTcpProxy,
176549	})
176550	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176551}
176552
176553// Do executes the "compute.targetTcpProxies.delete" call.
176554// Exactly one of *Operation or error will be non-nil. Any non-2xx
176555// status code is an error. Response headers are in either
176556// *Operation.ServerResponse.Header or (if a response was returned at
176557// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176558// to check whether the returned error was because
176559// http.StatusNotModified was returned.
176560func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
176561	gensupport.SetOptions(c.urlParams_, opts...)
176562	res, err := c.doRequest("json")
176563	if res != nil && res.StatusCode == http.StatusNotModified {
176564		if res.Body != nil {
176565			res.Body.Close()
176566		}
176567		return nil, &googleapi.Error{
176568			Code:   res.StatusCode,
176569			Header: res.Header,
176570		}
176571	}
176572	if err != nil {
176573		return nil, err
176574	}
176575	defer googleapi.CloseBody(res)
176576	if err := googleapi.CheckResponse(res); err != nil {
176577		return nil, err
176578	}
176579	ret := &Operation{
176580		ServerResponse: googleapi.ServerResponse{
176581			Header:         res.Header,
176582			HTTPStatusCode: res.StatusCode,
176583		},
176584	}
176585	target := &ret
176586	if err := gensupport.DecodeResponse(target, res); err != nil {
176587		return nil, err
176588	}
176589	return ret, nil
176590	// {
176591	//   "description": "Deletes the specified TargetTcpProxy resource.",
176592	//   "httpMethod": "DELETE",
176593	//   "id": "compute.targetTcpProxies.delete",
176594	//   "parameterOrder": [
176595	//     "project",
176596	//     "targetTcpProxy"
176597	//   ],
176598	//   "parameters": {
176599	//     "project": {
176600	//       "description": "Project ID for this request.",
176601	//       "location": "path",
176602	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176603	//       "required": true,
176604	//       "type": "string"
176605	//     },
176606	//     "requestId": {
176607	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176608	//       "location": "query",
176609	//       "type": "string"
176610	//     },
176611	//     "targetTcpProxy": {
176612	//       "description": "Name of the TargetTcpProxy resource to delete.",
176613	//       "location": "path",
176614	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176615	//       "required": true,
176616	//       "type": "string"
176617	//     }
176618	//   },
176619	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
176620	//   "response": {
176621	//     "$ref": "Operation"
176622	//   },
176623	//   "scopes": [
176624	//     "https://www.googleapis.com/auth/cloud-platform",
176625	//     "https://www.googleapis.com/auth/compute"
176626	//   ]
176627	// }
176628
176629}
176630
176631// method id "compute.targetTcpProxies.get":
176632
176633type TargetTcpProxiesGetCall struct {
176634	s              *Service
176635	project        string
176636	targetTcpProxy string
176637	urlParams_     gensupport.URLParams
176638	ifNoneMatch_   string
176639	ctx_           context.Context
176640	header_        http.Header
176641}
176642
176643// Get: Returns the specified TargetTcpProxy resource. Gets a list of
176644// available target TCP proxies by making a list() request.
176645//
176646// - project: Project ID for this request.
176647// - targetTcpProxy: Name of the TargetTcpProxy resource to return.
176648func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
176649	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176650	c.project = project
176651	c.targetTcpProxy = targetTcpProxy
176652	return c
176653}
176654
176655// Fields allows partial responses to be retrieved. See
176656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176657// for more information.
176658func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
176659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176660	return c
176661}
176662
176663// IfNoneMatch sets the optional parameter which makes the operation
176664// fail if the object's ETag matches the given value. This is useful for
176665// getting updates only after the object has changed since the last
176666// request. Use googleapi.IsNotModified to check whether the response
176667// error from Do is the result of In-None-Match.
176668func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
176669	c.ifNoneMatch_ = entityTag
176670	return c
176671}
176672
176673// Context sets the context to be used in this call's Do method. Any
176674// pending HTTP request will be aborted if the provided context is
176675// canceled.
176676func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
176677	c.ctx_ = ctx
176678	return c
176679}
176680
176681// Header returns an http.Header that can be modified by the caller to
176682// add HTTP headers to the request.
176683func (c *TargetTcpProxiesGetCall) Header() http.Header {
176684	if c.header_ == nil {
176685		c.header_ = make(http.Header)
176686	}
176687	return c.header_
176688}
176689
176690func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
176691	reqHeaders := make(http.Header)
176692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
176693	for k, v := range c.header_ {
176694		reqHeaders[k] = v
176695	}
176696	reqHeaders.Set("User-Agent", c.s.userAgent())
176697	if c.ifNoneMatch_ != "" {
176698		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
176699	}
176700	var body io.Reader = nil
176701	c.urlParams_.Set("alt", alt)
176702	c.urlParams_.Set("prettyPrint", "false")
176703	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
176704	urls += "?" + c.urlParams_.Encode()
176705	req, err := http.NewRequest("GET", urls, body)
176706	if err != nil {
176707		return nil, err
176708	}
176709	req.Header = reqHeaders
176710	googleapi.Expand(req.URL, map[string]string{
176711		"project":        c.project,
176712		"targetTcpProxy": c.targetTcpProxy,
176713	})
176714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176715}
176716
176717// Do executes the "compute.targetTcpProxies.get" call.
176718// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
176719// status code is an error. Response headers are in either
176720// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
176721// at all) in error.(*googleapi.Error).Header. Use
176722// googleapi.IsNotModified to check whether the returned error was
176723// because http.StatusNotModified was returned.
176724func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
176725	gensupport.SetOptions(c.urlParams_, opts...)
176726	res, err := c.doRequest("json")
176727	if res != nil && res.StatusCode == http.StatusNotModified {
176728		if res.Body != nil {
176729			res.Body.Close()
176730		}
176731		return nil, &googleapi.Error{
176732			Code:   res.StatusCode,
176733			Header: res.Header,
176734		}
176735	}
176736	if err != nil {
176737		return nil, err
176738	}
176739	defer googleapi.CloseBody(res)
176740	if err := googleapi.CheckResponse(res); err != nil {
176741		return nil, err
176742	}
176743	ret := &TargetTcpProxy{
176744		ServerResponse: googleapi.ServerResponse{
176745			Header:         res.Header,
176746			HTTPStatusCode: res.StatusCode,
176747		},
176748	}
176749	target := &ret
176750	if err := gensupport.DecodeResponse(target, res); err != nil {
176751		return nil, err
176752	}
176753	return ret, nil
176754	// {
176755	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
176756	//   "httpMethod": "GET",
176757	//   "id": "compute.targetTcpProxies.get",
176758	//   "parameterOrder": [
176759	//     "project",
176760	//     "targetTcpProxy"
176761	//   ],
176762	//   "parameters": {
176763	//     "project": {
176764	//       "description": "Project ID for this request.",
176765	//       "location": "path",
176766	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176767	//       "required": true,
176768	//       "type": "string"
176769	//     },
176770	//     "targetTcpProxy": {
176771	//       "description": "Name of the TargetTcpProxy resource to return.",
176772	//       "location": "path",
176773	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176774	//       "required": true,
176775	//       "type": "string"
176776	//     }
176777	//   },
176778	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
176779	//   "response": {
176780	//     "$ref": "TargetTcpProxy"
176781	//   },
176782	//   "scopes": [
176783	//     "https://www.googleapis.com/auth/cloud-platform",
176784	//     "https://www.googleapis.com/auth/compute",
176785	//     "https://www.googleapis.com/auth/compute.readonly"
176786	//   ]
176787	// }
176788
176789}
176790
176791// method id "compute.targetTcpProxies.insert":
176792
176793type TargetTcpProxiesInsertCall struct {
176794	s              *Service
176795	project        string
176796	targettcpproxy *TargetTcpProxy
176797	urlParams_     gensupport.URLParams
176798	ctx_           context.Context
176799	header_        http.Header
176800}
176801
176802// Insert: Creates a TargetTcpProxy resource in the specified project
176803// using the data included in the request.
176804//
176805// - project: Project ID for this request.
176806func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
176807	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176808	c.project = project
176809	c.targettcpproxy = targettcpproxy
176810	return c
176811}
176812
176813// RequestId sets the optional parameter "requestId": An optional
176814// request ID to identify requests. Specify a unique request ID so that
176815// if you must retry your request, the server will know to ignore the
176816// request if it has already been completed.
176817//
176818// For example, consider a situation where you make an initial request
176819// and the request times out. If you make the request again with the
176820// same request ID, the server can check if original operation with the
176821// same request ID was received, and if so, will ignore the second
176822// request. This prevents clients from accidentally creating duplicate
176823// commitments.
176824//
176825// The request ID must be a valid UUID with the exception that zero UUID
176826// is not supported (00000000-0000-0000-0000-000000000000).
176827func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
176828	c.urlParams_.Set("requestId", requestId)
176829	return c
176830}
176831
176832// Fields allows partial responses to be retrieved. See
176833// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176834// for more information.
176835func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
176836	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176837	return c
176838}
176839
176840// Context sets the context to be used in this call's Do method. Any
176841// pending HTTP request will be aborted if the provided context is
176842// canceled.
176843func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
176844	c.ctx_ = ctx
176845	return c
176846}
176847
176848// Header returns an http.Header that can be modified by the caller to
176849// add HTTP headers to the request.
176850func (c *TargetTcpProxiesInsertCall) Header() http.Header {
176851	if c.header_ == nil {
176852		c.header_ = make(http.Header)
176853	}
176854	return c.header_
176855}
176856
176857func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
176858	reqHeaders := make(http.Header)
176859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
176860	for k, v := range c.header_ {
176861		reqHeaders[k] = v
176862	}
176863	reqHeaders.Set("User-Agent", c.s.userAgent())
176864	var body io.Reader = nil
176865	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
176866	if err != nil {
176867		return nil, err
176868	}
176869	reqHeaders.Set("Content-Type", "application/json")
176870	c.urlParams_.Set("alt", alt)
176871	c.urlParams_.Set("prettyPrint", "false")
176872	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
176873	urls += "?" + c.urlParams_.Encode()
176874	req, err := http.NewRequest("POST", urls, body)
176875	if err != nil {
176876		return nil, err
176877	}
176878	req.Header = reqHeaders
176879	googleapi.Expand(req.URL, map[string]string{
176880		"project": c.project,
176881	})
176882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176883}
176884
176885// Do executes the "compute.targetTcpProxies.insert" call.
176886// Exactly one of *Operation or error will be non-nil. Any non-2xx
176887// status code is an error. Response headers are in either
176888// *Operation.ServerResponse.Header or (if a response was returned at
176889// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176890// to check whether the returned error was because
176891// http.StatusNotModified was returned.
176892func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
176893	gensupport.SetOptions(c.urlParams_, opts...)
176894	res, err := c.doRequest("json")
176895	if res != nil && res.StatusCode == http.StatusNotModified {
176896		if res.Body != nil {
176897			res.Body.Close()
176898		}
176899		return nil, &googleapi.Error{
176900			Code:   res.StatusCode,
176901			Header: res.Header,
176902		}
176903	}
176904	if err != nil {
176905		return nil, err
176906	}
176907	defer googleapi.CloseBody(res)
176908	if err := googleapi.CheckResponse(res); err != nil {
176909		return nil, err
176910	}
176911	ret := &Operation{
176912		ServerResponse: googleapi.ServerResponse{
176913			Header:         res.Header,
176914			HTTPStatusCode: res.StatusCode,
176915		},
176916	}
176917	target := &ret
176918	if err := gensupport.DecodeResponse(target, res); err != nil {
176919		return nil, err
176920	}
176921	return ret, nil
176922	// {
176923	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
176924	//   "httpMethod": "POST",
176925	//   "id": "compute.targetTcpProxies.insert",
176926	//   "parameterOrder": [
176927	//     "project"
176928	//   ],
176929	//   "parameters": {
176930	//     "project": {
176931	//       "description": "Project ID for this request.",
176932	//       "location": "path",
176933	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176934	//       "required": true,
176935	//       "type": "string"
176936	//     },
176937	//     "requestId": {
176938	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176939	//       "location": "query",
176940	//       "type": "string"
176941	//     }
176942	//   },
176943	//   "path": "projects/{project}/global/targetTcpProxies",
176944	//   "request": {
176945	//     "$ref": "TargetTcpProxy"
176946	//   },
176947	//   "response": {
176948	//     "$ref": "Operation"
176949	//   },
176950	//   "scopes": [
176951	//     "https://www.googleapis.com/auth/cloud-platform",
176952	//     "https://www.googleapis.com/auth/compute"
176953	//   ]
176954	// }
176955
176956}
176957
176958// method id "compute.targetTcpProxies.list":
176959
176960type TargetTcpProxiesListCall struct {
176961	s            *Service
176962	project      string
176963	urlParams_   gensupport.URLParams
176964	ifNoneMatch_ string
176965	ctx_         context.Context
176966	header_      http.Header
176967}
176968
176969// List: Retrieves the list of TargetTcpProxy resources available to the
176970// specified project.
176971//
176972// - project: Project ID for this request.
176973func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
176974	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176975	c.project = project
176976	return c
176977}
176978
176979// Filter sets the optional parameter "filter": A filter expression that
176980// filters resources listed in the response. The expression must specify
176981// the field name, a comparison operator, and the value that you want to
176982// use for filtering. The value must be a string, a number, or a
176983// boolean. The comparison operator must be either `=`, `!=`, `>`, or
176984// `<`.
176985//
176986// For example, if you are filtering Compute Engine instances, you can
176987// exclude instances named `example-instance` by specifying `name !=
176988// example-instance`.
176989//
176990// You can also filter nested fields. For example, you could specify
176991// `scheduling.automaticRestart = false` to include instances only if
176992// they are not scheduled for automatic restarts. You can use filtering
176993// on nested fields to filter based on resource labels.
176994//
176995// To filter on multiple expressions, provide each separate expression
176996// within parentheses. For example: ``` (scheduling.automaticRestart =
176997// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
176998// is an `AND` expression. However, you can include `AND` and `OR`
176999// expressions explicitly. For example: ``` (cpuPlatform = "Intel
177000// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
177001// (scheduling.automaticRestart = true) ```
177002func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
177003	c.urlParams_.Set("filter", filter)
177004	return c
177005}
177006
177007// MaxResults sets the optional parameter "maxResults": The maximum
177008// number of results per page that should be returned. If the number of
177009// available results is larger than `maxResults`, Compute Engine returns
177010// a `nextPageToken` that can be used to get the next page of results in
177011// subsequent list requests. Acceptable values are `0` to `500`,
177012// inclusive. (Default: `500`)
177013func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
177014	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
177015	return c
177016}
177017
177018// OrderBy sets the optional parameter "orderBy": Sorts list results by
177019// a certain order. By default, results are returned in alphanumerical
177020// order based on the resource name.
177021//
177022// You can also sort results in descending order based on the creation
177023// timestamp using `orderBy="creationTimestamp desc". This sorts
177024// results based on the `creationTimestamp` field in reverse
177025// chronological order (newest result first). Use this to sort resources
177026// like operations so that the newest operation is returned
177027// first.
177028//
177029// Currently, only sorting by `name` or `creationTimestamp desc` is
177030// supported.
177031func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
177032	c.urlParams_.Set("orderBy", orderBy)
177033	return c
177034}
177035
177036// PageToken sets the optional parameter "pageToken": Specifies a page
177037// token to use. Set `pageToken` to the `nextPageToken` returned by a
177038// previous list request to get the next page of results.
177039func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
177040	c.urlParams_.Set("pageToken", pageToken)
177041	return c
177042}
177043
177044// ReturnPartialSuccess sets the optional parameter
177045// "returnPartialSuccess": Opt-in for partial success behavior which
177046// provides partial results in case of failure. The default value is
177047// false.
177048func (c *TargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesListCall {
177049	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
177050	return c
177051}
177052
177053// Fields allows partial responses to be retrieved. See
177054// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177055// for more information.
177056func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
177057	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177058	return c
177059}
177060
177061// IfNoneMatch sets the optional parameter which makes the operation
177062// fail if the object's ETag matches the given value. This is useful for
177063// getting updates only after the object has changed since the last
177064// request. Use googleapi.IsNotModified to check whether the response
177065// error from Do is the result of In-None-Match.
177066func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
177067	c.ifNoneMatch_ = entityTag
177068	return c
177069}
177070
177071// Context sets the context to be used in this call's Do method. Any
177072// pending HTTP request will be aborted if the provided context is
177073// canceled.
177074func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
177075	c.ctx_ = ctx
177076	return c
177077}
177078
177079// Header returns an http.Header that can be modified by the caller to
177080// add HTTP headers to the request.
177081func (c *TargetTcpProxiesListCall) Header() http.Header {
177082	if c.header_ == nil {
177083		c.header_ = make(http.Header)
177084	}
177085	return c.header_
177086}
177087
177088func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
177089	reqHeaders := make(http.Header)
177090	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
177091	for k, v := range c.header_ {
177092		reqHeaders[k] = v
177093	}
177094	reqHeaders.Set("User-Agent", c.s.userAgent())
177095	if c.ifNoneMatch_ != "" {
177096		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
177097	}
177098	var body io.Reader = nil
177099	c.urlParams_.Set("alt", alt)
177100	c.urlParams_.Set("prettyPrint", "false")
177101	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
177102	urls += "?" + c.urlParams_.Encode()
177103	req, err := http.NewRequest("GET", urls, body)
177104	if err != nil {
177105		return nil, err
177106	}
177107	req.Header = reqHeaders
177108	googleapi.Expand(req.URL, map[string]string{
177109		"project": c.project,
177110	})
177111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177112}
177113
177114// Do executes the "compute.targetTcpProxies.list" call.
177115// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
177116// non-2xx status code is an error. Response headers are in either
177117// *TargetTcpProxyList.ServerResponse.Header or (if a response was
177118// returned at all) in error.(*googleapi.Error).Header. Use
177119// googleapi.IsNotModified to check whether the returned error was
177120// because http.StatusNotModified was returned.
177121func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
177122	gensupport.SetOptions(c.urlParams_, opts...)
177123	res, err := c.doRequest("json")
177124	if res != nil && res.StatusCode == http.StatusNotModified {
177125		if res.Body != nil {
177126			res.Body.Close()
177127		}
177128		return nil, &googleapi.Error{
177129			Code:   res.StatusCode,
177130			Header: res.Header,
177131		}
177132	}
177133	if err != nil {
177134		return nil, err
177135	}
177136	defer googleapi.CloseBody(res)
177137	if err := googleapi.CheckResponse(res); err != nil {
177138		return nil, err
177139	}
177140	ret := &TargetTcpProxyList{
177141		ServerResponse: googleapi.ServerResponse{
177142			Header:         res.Header,
177143			HTTPStatusCode: res.StatusCode,
177144		},
177145	}
177146	target := &ret
177147	if err := gensupport.DecodeResponse(target, res); err != nil {
177148		return nil, err
177149	}
177150	return ret, nil
177151	// {
177152	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
177153	//   "httpMethod": "GET",
177154	//   "id": "compute.targetTcpProxies.list",
177155	//   "parameterOrder": [
177156	//     "project"
177157	//   ],
177158	//   "parameters": {
177159	//     "filter": {
177160	//       "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) ```",
177161	//       "location": "query",
177162	//       "type": "string"
177163	//     },
177164	//     "maxResults": {
177165	//       "default": "500",
177166	//       "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`)",
177167	//       "format": "uint32",
177168	//       "location": "query",
177169	//       "minimum": "0",
177170	//       "type": "integer"
177171	//     },
177172	//     "orderBy": {
177173	//       "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.",
177174	//       "location": "query",
177175	//       "type": "string"
177176	//     },
177177	//     "pageToken": {
177178	//       "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.",
177179	//       "location": "query",
177180	//       "type": "string"
177181	//     },
177182	//     "project": {
177183	//       "description": "Project ID for this request.",
177184	//       "location": "path",
177185	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177186	//       "required": true,
177187	//       "type": "string"
177188	//     },
177189	//     "returnPartialSuccess": {
177190	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
177191	//       "location": "query",
177192	//       "type": "boolean"
177193	//     }
177194	//   },
177195	//   "path": "projects/{project}/global/targetTcpProxies",
177196	//   "response": {
177197	//     "$ref": "TargetTcpProxyList"
177198	//   },
177199	//   "scopes": [
177200	//     "https://www.googleapis.com/auth/cloud-platform",
177201	//     "https://www.googleapis.com/auth/compute",
177202	//     "https://www.googleapis.com/auth/compute.readonly"
177203	//   ]
177204	// }
177205
177206}
177207
177208// Pages invokes f for each page of results.
177209// A non-nil error returned from f will halt the iteration.
177210// The provided context supersedes any context provided to the Context method.
177211func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
177212	c.ctx_ = ctx
177213	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
177214	for {
177215		x, err := c.Do()
177216		if err != nil {
177217			return err
177218		}
177219		if err := f(x); err != nil {
177220			return err
177221		}
177222		if x.NextPageToken == "" {
177223			return nil
177224		}
177225		c.PageToken(x.NextPageToken)
177226	}
177227}
177228
177229// method id "compute.targetTcpProxies.setBackendService":
177230
177231type TargetTcpProxiesSetBackendServiceCall struct {
177232	s                                        *Service
177233	project                                  string
177234	targetTcpProxy                           string
177235	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
177236	urlParams_                               gensupport.URLParams
177237	ctx_                                     context.Context
177238	header_                                  http.Header
177239}
177240
177241// SetBackendService: Changes the BackendService for TargetTcpProxy.
177242//
177243// - project: Project ID for this request.
177244// - targetTcpProxy: Name of the TargetTcpProxy resource whose
177245//   BackendService resource is to be set.
177246func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
177247	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177248	c.project = project
177249	c.targetTcpProxy = targetTcpProxy
177250	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
177251	return c
177252}
177253
177254// RequestId sets the optional parameter "requestId": An optional
177255// request ID to identify requests. Specify a unique request ID so that
177256// if you must retry your request, the server will know to ignore the
177257// request if it has already been completed.
177258//
177259// For example, consider a situation where you make an initial request
177260// and the request times out. If you make the request again with the
177261// same request ID, the server can check if original operation with the
177262// same request ID was received, and if so, will ignore the second
177263// request. This prevents clients from accidentally creating duplicate
177264// commitments.
177265//
177266// The request ID must be a valid UUID with the exception that zero UUID
177267// is not supported (00000000-0000-0000-0000-000000000000).
177268func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
177269	c.urlParams_.Set("requestId", requestId)
177270	return c
177271}
177272
177273// Fields allows partial responses to be retrieved. See
177274// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177275// for more information.
177276func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
177277	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177278	return c
177279}
177280
177281// Context sets the context to be used in this call's Do method. Any
177282// pending HTTP request will be aborted if the provided context is
177283// canceled.
177284func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
177285	c.ctx_ = ctx
177286	return c
177287}
177288
177289// Header returns an http.Header that can be modified by the caller to
177290// add HTTP headers to the request.
177291func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
177292	if c.header_ == nil {
177293		c.header_ = make(http.Header)
177294	}
177295	return c.header_
177296}
177297
177298func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
177299	reqHeaders := make(http.Header)
177300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
177301	for k, v := range c.header_ {
177302		reqHeaders[k] = v
177303	}
177304	reqHeaders.Set("User-Agent", c.s.userAgent())
177305	var body io.Reader = nil
177306	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
177307	if err != nil {
177308		return nil, err
177309	}
177310	reqHeaders.Set("Content-Type", "application/json")
177311	c.urlParams_.Set("alt", alt)
177312	c.urlParams_.Set("prettyPrint", "false")
177313	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
177314	urls += "?" + c.urlParams_.Encode()
177315	req, err := http.NewRequest("POST", urls, body)
177316	if err != nil {
177317		return nil, err
177318	}
177319	req.Header = reqHeaders
177320	googleapi.Expand(req.URL, map[string]string{
177321		"project":        c.project,
177322		"targetTcpProxy": c.targetTcpProxy,
177323	})
177324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177325}
177326
177327// Do executes the "compute.targetTcpProxies.setBackendService" call.
177328// Exactly one of *Operation or error will be non-nil. Any non-2xx
177329// status code is an error. Response headers are in either
177330// *Operation.ServerResponse.Header or (if a response was returned at
177331// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
177332// to check whether the returned error was because
177333// http.StatusNotModified was returned.
177334func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
177335	gensupport.SetOptions(c.urlParams_, opts...)
177336	res, err := c.doRequest("json")
177337	if res != nil && res.StatusCode == http.StatusNotModified {
177338		if res.Body != nil {
177339			res.Body.Close()
177340		}
177341		return nil, &googleapi.Error{
177342			Code:   res.StatusCode,
177343			Header: res.Header,
177344		}
177345	}
177346	if err != nil {
177347		return nil, err
177348	}
177349	defer googleapi.CloseBody(res)
177350	if err := googleapi.CheckResponse(res); err != nil {
177351		return nil, err
177352	}
177353	ret := &Operation{
177354		ServerResponse: googleapi.ServerResponse{
177355			Header:         res.Header,
177356			HTTPStatusCode: res.StatusCode,
177357		},
177358	}
177359	target := &ret
177360	if err := gensupport.DecodeResponse(target, res); err != nil {
177361		return nil, err
177362	}
177363	return ret, nil
177364	// {
177365	//   "description": "Changes the BackendService for TargetTcpProxy.",
177366	//   "httpMethod": "POST",
177367	//   "id": "compute.targetTcpProxies.setBackendService",
177368	//   "parameterOrder": [
177369	//     "project",
177370	//     "targetTcpProxy"
177371	//   ],
177372	//   "parameters": {
177373	//     "project": {
177374	//       "description": "Project ID for this request.",
177375	//       "location": "path",
177376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177377	//       "required": true,
177378	//       "type": "string"
177379	//     },
177380	//     "requestId": {
177381	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
177382	//       "location": "query",
177383	//       "type": "string"
177384	//     },
177385	//     "targetTcpProxy": {
177386	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
177387	//       "location": "path",
177388	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177389	//       "required": true,
177390	//       "type": "string"
177391	//     }
177392	//   },
177393	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
177394	//   "request": {
177395	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
177396	//   },
177397	//   "response": {
177398	//     "$ref": "Operation"
177399	//   },
177400	//   "scopes": [
177401	//     "https://www.googleapis.com/auth/cloud-platform",
177402	//     "https://www.googleapis.com/auth/compute"
177403	//   ]
177404	// }
177405
177406}
177407
177408// method id "compute.targetTcpProxies.setProxyHeader":
177409
177410type TargetTcpProxiesSetProxyHeaderCall struct {
177411	s                                     *Service
177412	project                               string
177413	targetTcpProxy                        string
177414	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
177415	urlParams_                            gensupport.URLParams
177416	ctx_                                  context.Context
177417	header_                               http.Header
177418}
177419
177420// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
177421//
177422// - project: Project ID for this request.
177423// - targetTcpProxy: Name of the TargetTcpProxy resource whose
177424//   ProxyHeader is to be set.
177425func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
177426	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177427	c.project = project
177428	c.targetTcpProxy = targetTcpProxy
177429	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
177430	return c
177431}
177432
177433// RequestId sets the optional parameter "requestId": An optional
177434// request ID to identify requests. Specify a unique request ID so that
177435// if you must retry your request, the server will know to ignore the
177436// request if it has already been completed.
177437//
177438// For example, consider a situation where you make an initial request
177439// and the request times out. If you make the request again with the
177440// same request ID, the server can check if original operation with the
177441// same request ID was received, and if so, will ignore the second
177442// request. This prevents clients from accidentally creating duplicate
177443// commitments.
177444//
177445// The request ID must be a valid UUID with the exception that zero UUID
177446// is not supported (00000000-0000-0000-0000-000000000000).
177447func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
177448	c.urlParams_.Set("requestId", requestId)
177449	return c
177450}
177451
177452// Fields allows partial responses to be retrieved. See
177453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177454// for more information.
177455func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
177456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177457	return c
177458}
177459
177460// Context sets the context to be used in this call's Do method. Any
177461// pending HTTP request will be aborted if the provided context is
177462// canceled.
177463func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
177464	c.ctx_ = ctx
177465	return c
177466}
177467
177468// Header returns an http.Header that can be modified by the caller to
177469// add HTTP headers to the request.
177470func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
177471	if c.header_ == nil {
177472		c.header_ = make(http.Header)
177473	}
177474	return c.header_
177475}
177476
177477func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
177478	reqHeaders := make(http.Header)
177479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
177480	for k, v := range c.header_ {
177481		reqHeaders[k] = v
177482	}
177483	reqHeaders.Set("User-Agent", c.s.userAgent())
177484	var body io.Reader = nil
177485	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
177486	if err != nil {
177487		return nil, err
177488	}
177489	reqHeaders.Set("Content-Type", "application/json")
177490	c.urlParams_.Set("alt", alt)
177491	c.urlParams_.Set("prettyPrint", "false")
177492	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
177493	urls += "?" + c.urlParams_.Encode()
177494	req, err := http.NewRequest("POST", urls, body)
177495	if err != nil {
177496		return nil, err
177497	}
177498	req.Header = reqHeaders
177499	googleapi.Expand(req.URL, map[string]string{
177500		"project":        c.project,
177501		"targetTcpProxy": c.targetTcpProxy,
177502	})
177503	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177504}
177505
177506// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
177507// Exactly one of *Operation or error will be non-nil. Any non-2xx
177508// status code is an error. Response headers are in either
177509// *Operation.ServerResponse.Header or (if a response was returned at
177510// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
177511// to check whether the returned error was because
177512// http.StatusNotModified was returned.
177513func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
177514	gensupport.SetOptions(c.urlParams_, opts...)
177515	res, err := c.doRequest("json")
177516	if res != nil && res.StatusCode == http.StatusNotModified {
177517		if res.Body != nil {
177518			res.Body.Close()
177519		}
177520		return nil, &googleapi.Error{
177521			Code:   res.StatusCode,
177522			Header: res.Header,
177523		}
177524	}
177525	if err != nil {
177526		return nil, err
177527	}
177528	defer googleapi.CloseBody(res)
177529	if err := googleapi.CheckResponse(res); err != nil {
177530		return nil, err
177531	}
177532	ret := &Operation{
177533		ServerResponse: googleapi.ServerResponse{
177534			Header:         res.Header,
177535			HTTPStatusCode: res.StatusCode,
177536		},
177537	}
177538	target := &ret
177539	if err := gensupport.DecodeResponse(target, res); err != nil {
177540		return nil, err
177541	}
177542	return ret, nil
177543	// {
177544	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
177545	//   "httpMethod": "POST",
177546	//   "id": "compute.targetTcpProxies.setProxyHeader",
177547	//   "parameterOrder": [
177548	//     "project",
177549	//     "targetTcpProxy"
177550	//   ],
177551	//   "parameters": {
177552	//     "project": {
177553	//       "description": "Project ID for this request.",
177554	//       "location": "path",
177555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177556	//       "required": true,
177557	//       "type": "string"
177558	//     },
177559	//     "requestId": {
177560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
177561	//       "location": "query",
177562	//       "type": "string"
177563	//     },
177564	//     "targetTcpProxy": {
177565	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
177566	//       "location": "path",
177567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177568	//       "required": true,
177569	//       "type": "string"
177570	//     }
177571	//   },
177572	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
177573	//   "request": {
177574	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
177575	//   },
177576	//   "response": {
177577	//     "$ref": "Operation"
177578	//   },
177579	//   "scopes": [
177580	//     "https://www.googleapis.com/auth/cloud-platform",
177581	//     "https://www.googleapis.com/auth/compute"
177582	//   ]
177583	// }
177584
177585}
177586
177587// method id "compute.targetTcpProxies.testIamPermissions":
177588
177589type TargetTcpProxiesTestIamPermissionsCall struct {
177590	s                      *Service
177591	project                string
177592	resource               string
177593	testpermissionsrequest *TestPermissionsRequest
177594	urlParams_             gensupport.URLParams
177595	ctx_                   context.Context
177596	header_                http.Header
177597}
177598
177599// TestIamPermissions: Returns permissions that a caller has on the
177600// specified resource.
177601//
177602// - project: Project ID for this request.
177603// - resource: Name or id of the resource for this request.
177604func (r *TargetTcpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetTcpProxiesTestIamPermissionsCall {
177605	c := &TargetTcpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177606	c.project = project
177607	c.resource = resource
177608	c.testpermissionsrequest = testpermissionsrequest
177609	return c
177610}
177611
177612// Fields allows partial responses to be retrieved. See
177613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177614// for more information.
177615func (c *TargetTcpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetTcpProxiesTestIamPermissionsCall {
177616	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177617	return c
177618}
177619
177620// Context sets the context to be used in this call's Do method. Any
177621// pending HTTP request will be aborted if the provided context is
177622// canceled.
177623func (c *TargetTcpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetTcpProxiesTestIamPermissionsCall {
177624	c.ctx_ = ctx
177625	return c
177626}
177627
177628// Header returns an http.Header that can be modified by the caller to
177629// add HTTP headers to the request.
177630func (c *TargetTcpProxiesTestIamPermissionsCall) Header() http.Header {
177631	if c.header_ == nil {
177632		c.header_ = make(http.Header)
177633	}
177634	return c.header_
177635}
177636
177637func (c *TargetTcpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
177638	reqHeaders := make(http.Header)
177639	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
177640	for k, v := range c.header_ {
177641		reqHeaders[k] = v
177642	}
177643	reqHeaders.Set("User-Agent", c.s.userAgent())
177644	var body io.Reader = nil
177645	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
177646	if err != nil {
177647		return nil, err
177648	}
177649	reqHeaders.Set("Content-Type", "application/json")
177650	c.urlParams_.Set("alt", alt)
177651	c.urlParams_.Set("prettyPrint", "false")
177652	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions")
177653	urls += "?" + c.urlParams_.Encode()
177654	req, err := http.NewRequest("POST", urls, body)
177655	if err != nil {
177656		return nil, err
177657	}
177658	req.Header = reqHeaders
177659	googleapi.Expand(req.URL, map[string]string{
177660		"project":  c.project,
177661		"resource": c.resource,
177662	})
177663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177664}
177665
177666// Do executes the "compute.targetTcpProxies.testIamPermissions" call.
177667// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
177668// non-2xx status code is an error. Response headers are in either
177669// *TestPermissionsResponse.ServerResponse.Header or (if a response was
177670// returned at all) in error.(*googleapi.Error).Header. Use
177671// googleapi.IsNotModified to check whether the returned error was
177672// because http.StatusNotModified was returned.
177673func (c *TargetTcpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
177674	gensupport.SetOptions(c.urlParams_, opts...)
177675	res, err := c.doRequest("json")
177676	if res != nil && res.StatusCode == http.StatusNotModified {
177677		if res.Body != nil {
177678			res.Body.Close()
177679		}
177680		return nil, &googleapi.Error{
177681			Code:   res.StatusCode,
177682			Header: res.Header,
177683		}
177684	}
177685	if err != nil {
177686		return nil, err
177687	}
177688	defer googleapi.CloseBody(res)
177689	if err := googleapi.CheckResponse(res); err != nil {
177690		return nil, err
177691	}
177692	ret := &TestPermissionsResponse{
177693		ServerResponse: googleapi.ServerResponse{
177694			Header:         res.Header,
177695			HTTPStatusCode: res.StatusCode,
177696		},
177697	}
177698	target := &ret
177699	if err := gensupport.DecodeResponse(target, res); err != nil {
177700		return nil, err
177701	}
177702	return ret, nil
177703	// {
177704	//   "description": "Returns permissions that a caller has on the specified resource.",
177705	//   "httpMethod": "POST",
177706	//   "id": "compute.targetTcpProxies.testIamPermissions",
177707	//   "parameterOrder": [
177708	//     "project",
177709	//     "resource"
177710	//   ],
177711	//   "parameters": {
177712	//     "project": {
177713	//       "description": "Project ID for this request.",
177714	//       "location": "path",
177715	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177716	//       "required": true,
177717	//       "type": "string"
177718	//     },
177719	//     "resource": {
177720	//       "description": "Name or id of the resource for this request.",
177721	//       "location": "path",
177722	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177723	//       "required": true,
177724	//       "type": "string"
177725	//     }
177726	//   },
177727	//   "path": "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions",
177728	//   "request": {
177729	//     "$ref": "TestPermissionsRequest"
177730	//   },
177731	//   "response": {
177732	//     "$ref": "TestPermissionsResponse"
177733	//   },
177734	//   "scopes": [
177735	//     "https://www.googleapis.com/auth/cloud-platform",
177736	//     "https://www.googleapis.com/auth/compute",
177737	//     "https://www.googleapis.com/auth/compute.readonly"
177738	//   ]
177739	// }
177740
177741}
177742
177743// method id "compute.targetVpnGateways.aggregatedList":
177744
177745type TargetVpnGatewaysAggregatedListCall struct {
177746	s            *Service
177747	project      string
177748	urlParams_   gensupport.URLParams
177749	ifNoneMatch_ string
177750	ctx_         context.Context
177751	header_      http.Header
177752}
177753
177754// AggregatedList: Retrieves an aggregated list of target VPN gateways.
177755//
177756// - project: Project ID for this request.
177757func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
177758	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177759	c.project = project
177760	return c
177761}
177762
177763// Filter sets the optional parameter "filter": A filter expression that
177764// filters resources listed in the response. The expression must specify
177765// the field name, a comparison operator, and the value that you want to
177766// use for filtering. The value must be a string, a number, or a
177767// boolean. The comparison operator must be either `=`, `!=`, `>`, or
177768// `<`.
177769//
177770// For example, if you are filtering Compute Engine instances, you can
177771// exclude instances named `example-instance` by specifying `name !=
177772// example-instance`.
177773//
177774// You can also filter nested fields. For example, you could specify
177775// `scheduling.automaticRestart = false` to include instances only if
177776// they are not scheduled for automatic restarts. You can use filtering
177777// on nested fields to filter based on resource labels.
177778//
177779// To filter on multiple expressions, provide each separate expression
177780// within parentheses. For example: ``` (scheduling.automaticRestart =
177781// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
177782// is an `AND` expression. However, you can include `AND` and `OR`
177783// expressions explicitly. For example: ``` (cpuPlatform = "Intel
177784// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
177785// (scheduling.automaticRestart = true) ```
177786func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
177787	c.urlParams_.Set("filter", filter)
177788	return c
177789}
177790
177791// IncludeAllScopes sets the optional parameter "includeAllScopes":
177792// Indicates whether every visible scope for each scope type (zone,
177793// region, global) should be included in the response. For new resource
177794// types added after this field, the flag has no effect as new resource
177795// types will always include every visible scope for each scope type in
177796// response. For resource types which predate this field, if this flag
177797// is omitted or false, only scopes of the scope types where the
177798// resource type is expected to be found will be included.
177799func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
177800	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
177801	return c
177802}
177803
177804// MaxResults sets the optional parameter "maxResults": The maximum
177805// number of results per page that should be returned. If the number of
177806// available results is larger than `maxResults`, Compute Engine returns
177807// a `nextPageToken` that can be used to get the next page of results in
177808// subsequent list requests. Acceptable values are `0` to `500`,
177809// inclusive. (Default: `500`)
177810func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
177811	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
177812	return c
177813}
177814
177815// OrderBy sets the optional parameter "orderBy": Sorts list results by
177816// a certain order. By default, results are returned in alphanumerical
177817// order based on the resource name.
177818//
177819// You can also sort results in descending order based on the creation
177820// timestamp using `orderBy="creationTimestamp desc". This sorts
177821// results based on the `creationTimestamp` field in reverse
177822// chronological order (newest result first). Use this to sort resources
177823// like operations so that the newest operation is returned
177824// first.
177825//
177826// Currently, only sorting by `name` or `creationTimestamp desc` is
177827// supported.
177828func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
177829	c.urlParams_.Set("orderBy", orderBy)
177830	return c
177831}
177832
177833// PageToken sets the optional parameter "pageToken": Specifies a page
177834// token to use. Set `pageToken` to the `nextPageToken` returned by a
177835// previous list request to get the next page of results.
177836func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
177837	c.urlParams_.Set("pageToken", pageToken)
177838	return c
177839}
177840
177841// ReturnPartialSuccess sets the optional parameter
177842// "returnPartialSuccess": Opt-in for partial success behavior which
177843// provides partial results in case of failure. The default value is
177844// false.
177845func (c *TargetVpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysAggregatedListCall {
177846	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
177847	return c
177848}
177849
177850// Fields allows partial responses to be retrieved. See
177851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177852// for more information.
177853func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
177854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177855	return c
177856}
177857
177858// IfNoneMatch sets the optional parameter which makes the operation
177859// fail if the object's ETag matches the given value. This is useful for
177860// getting updates only after the object has changed since the last
177861// request. Use googleapi.IsNotModified to check whether the response
177862// error from Do is the result of In-None-Match.
177863func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
177864	c.ifNoneMatch_ = entityTag
177865	return c
177866}
177867
177868// Context sets the context to be used in this call's Do method. Any
177869// pending HTTP request will be aborted if the provided context is
177870// canceled.
177871func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
177872	c.ctx_ = ctx
177873	return c
177874}
177875
177876// Header returns an http.Header that can be modified by the caller to
177877// add HTTP headers to the request.
177878func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
177879	if c.header_ == nil {
177880		c.header_ = make(http.Header)
177881	}
177882	return c.header_
177883}
177884
177885func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
177886	reqHeaders := make(http.Header)
177887	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
177888	for k, v := range c.header_ {
177889		reqHeaders[k] = v
177890	}
177891	reqHeaders.Set("User-Agent", c.s.userAgent())
177892	if c.ifNoneMatch_ != "" {
177893		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
177894	}
177895	var body io.Reader = nil
177896	c.urlParams_.Set("alt", alt)
177897	c.urlParams_.Set("prettyPrint", "false")
177898	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetVpnGateways")
177899	urls += "?" + c.urlParams_.Encode()
177900	req, err := http.NewRequest("GET", urls, body)
177901	if err != nil {
177902		return nil, err
177903	}
177904	req.Header = reqHeaders
177905	googleapi.Expand(req.URL, map[string]string{
177906		"project": c.project,
177907	})
177908	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177909}
177910
177911// Do executes the "compute.targetVpnGateways.aggregatedList" call.
177912// Exactly one of *TargetVpnGatewayAggregatedList or error will be
177913// non-nil. Any non-2xx status code is an error. Response headers are in
177914// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
177915// response was returned at all) in error.(*googleapi.Error).Header. Use
177916// googleapi.IsNotModified to check whether the returned error was
177917// because http.StatusNotModified was returned.
177918func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
177919	gensupport.SetOptions(c.urlParams_, opts...)
177920	res, err := c.doRequest("json")
177921	if res != nil && res.StatusCode == http.StatusNotModified {
177922		if res.Body != nil {
177923			res.Body.Close()
177924		}
177925		return nil, &googleapi.Error{
177926			Code:   res.StatusCode,
177927			Header: res.Header,
177928		}
177929	}
177930	if err != nil {
177931		return nil, err
177932	}
177933	defer googleapi.CloseBody(res)
177934	if err := googleapi.CheckResponse(res); err != nil {
177935		return nil, err
177936	}
177937	ret := &TargetVpnGatewayAggregatedList{
177938		ServerResponse: googleapi.ServerResponse{
177939			Header:         res.Header,
177940			HTTPStatusCode: res.StatusCode,
177941		},
177942	}
177943	target := &ret
177944	if err := gensupport.DecodeResponse(target, res); err != nil {
177945		return nil, err
177946	}
177947	return ret, nil
177948	// {
177949	//   "description": "Retrieves an aggregated list of target VPN gateways.",
177950	//   "httpMethod": "GET",
177951	//   "id": "compute.targetVpnGateways.aggregatedList",
177952	//   "parameterOrder": [
177953	//     "project"
177954	//   ],
177955	//   "parameters": {
177956	//     "filter": {
177957	//       "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) ```",
177958	//       "location": "query",
177959	//       "type": "string"
177960	//     },
177961	//     "includeAllScopes": {
177962	//       "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.",
177963	//       "location": "query",
177964	//       "type": "boolean"
177965	//     },
177966	//     "maxResults": {
177967	//       "default": "500",
177968	//       "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`)",
177969	//       "format": "uint32",
177970	//       "location": "query",
177971	//       "minimum": "0",
177972	//       "type": "integer"
177973	//     },
177974	//     "orderBy": {
177975	//       "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.",
177976	//       "location": "query",
177977	//       "type": "string"
177978	//     },
177979	//     "pageToken": {
177980	//       "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.",
177981	//       "location": "query",
177982	//       "type": "string"
177983	//     },
177984	//     "project": {
177985	//       "description": "Project ID for this request.",
177986	//       "location": "path",
177987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177988	//       "required": true,
177989	//       "type": "string"
177990	//     },
177991	//     "returnPartialSuccess": {
177992	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
177993	//       "location": "query",
177994	//       "type": "boolean"
177995	//     }
177996	//   },
177997	//   "path": "projects/{project}/aggregated/targetVpnGateways",
177998	//   "response": {
177999	//     "$ref": "TargetVpnGatewayAggregatedList"
178000	//   },
178001	//   "scopes": [
178002	//     "https://www.googleapis.com/auth/cloud-platform",
178003	//     "https://www.googleapis.com/auth/compute",
178004	//     "https://www.googleapis.com/auth/compute.readonly"
178005	//   ]
178006	// }
178007
178008}
178009
178010// Pages invokes f for each page of results.
178011// A non-nil error returned from f will halt the iteration.
178012// The provided context supersedes any context provided to the Context method.
178013func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
178014	c.ctx_ = ctx
178015	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
178016	for {
178017		x, err := c.Do()
178018		if err != nil {
178019			return err
178020		}
178021		if err := f(x); err != nil {
178022			return err
178023		}
178024		if x.NextPageToken == "" {
178025			return nil
178026		}
178027		c.PageToken(x.NextPageToken)
178028	}
178029}
178030
178031// method id "compute.targetVpnGateways.delete":
178032
178033type TargetVpnGatewaysDeleteCall struct {
178034	s                *Service
178035	project          string
178036	region           string
178037	targetVpnGateway string
178038	urlParams_       gensupport.URLParams
178039	ctx_             context.Context
178040	header_          http.Header
178041}
178042
178043// Delete: Deletes the specified target VPN gateway.
178044//
178045// - project: Project ID for this request.
178046// - region: Name of the region for this request.
178047// - targetVpnGateway: Name of the target VPN gateway to delete.
178048func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
178049	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178050	c.project = project
178051	c.region = region
178052	c.targetVpnGateway = targetVpnGateway
178053	return c
178054}
178055
178056// RequestId sets the optional parameter "requestId": An optional
178057// request ID to identify requests. Specify a unique request ID so that
178058// if you must retry your request, the server will know to ignore the
178059// request if it has already been completed.
178060//
178061// For example, consider a situation where you make an initial request
178062// and the request times out. If you make the request again with the
178063// same request ID, the server can check if original operation with the
178064// same request ID was received, and if so, will ignore the second
178065// request. This prevents clients from accidentally creating duplicate
178066// commitments.
178067//
178068// The request ID must be a valid UUID with the exception that zero UUID
178069// is not supported (00000000-0000-0000-0000-000000000000).
178070func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
178071	c.urlParams_.Set("requestId", requestId)
178072	return c
178073}
178074
178075// Fields allows partial responses to be retrieved. See
178076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178077// for more information.
178078func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
178079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178080	return c
178081}
178082
178083// Context sets the context to be used in this call's Do method. Any
178084// pending HTTP request will be aborted if the provided context is
178085// canceled.
178086func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
178087	c.ctx_ = ctx
178088	return c
178089}
178090
178091// Header returns an http.Header that can be modified by the caller to
178092// add HTTP headers to the request.
178093func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
178094	if c.header_ == nil {
178095		c.header_ = make(http.Header)
178096	}
178097	return c.header_
178098}
178099
178100func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
178101	reqHeaders := make(http.Header)
178102	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
178103	for k, v := range c.header_ {
178104		reqHeaders[k] = v
178105	}
178106	reqHeaders.Set("User-Agent", c.s.userAgent())
178107	var body io.Reader = nil
178108	c.urlParams_.Set("alt", alt)
178109	c.urlParams_.Set("prettyPrint", "false")
178110	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
178111	urls += "?" + c.urlParams_.Encode()
178112	req, err := http.NewRequest("DELETE", urls, body)
178113	if err != nil {
178114		return nil, err
178115	}
178116	req.Header = reqHeaders
178117	googleapi.Expand(req.URL, map[string]string{
178118		"project":          c.project,
178119		"region":           c.region,
178120		"targetVpnGateway": c.targetVpnGateway,
178121	})
178122	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178123}
178124
178125// Do executes the "compute.targetVpnGateways.delete" call.
178126// Exactly one of *Operation or error will be non-nil. Any non-2xx
178127// status code is an error. Response headers are in either
178128// *Operation.ServerResponse.Header or (if a response was returned at
178129// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
178130// to check whether the returned error was because
178131// http.StatusNotModified was returned.
178132func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
178133	gensupport.SetOptions(c.urlParams_, opts...)
178134	res, err := c.doRequest("json")
178135	if res != nil && res.StatusCode == http.StatusNotModified {
178136		if res.Body != nil {
178137			res.Body.Close()
178138		}
178139		return nil, &googleapi.Error{
178140			Code:   res.StatusCode,
178141			Header: res.Header,
178142		}
178143	}
178144	if err != nil {
178145		return nil, err
178146	}
178147	defer googleapi.CloseBody(res)
178148	if err := googleapi.CheckResponse(res); err != nil {
178149		return nil, err
178150	}
178151	ret := &Operation{
178152		ServerResponse: googleapi.ServerResponse{
178153			Header:         res.Header,
178154			HTTPStatusCode: res.StatusCode,
178155		},
178156	}
178157	target := &ret
178158	if err := gensupport.DecodeResponse(target, res); err != nil {
178159		return nil, err
178160	}
178161	return ret, nil
178162	// {
178163	//   "description": "Deletes the specified target VPN gateway.",
178164	//   "httpMethod": "DELETE",
178165	//   "id": "compute.targetVpnGateways.delete",
178166	//   "parameterOrder": [
178167	//     "project",
178168	//     "region",
178169	//     "targetVpnGateway"
178170	//   ],
178171	//   "parameters": {
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	//     "requestId": {
178187	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
178188	//       "location": "query",
178189	//       "type": "string"
178190	//     },
178191	//     "targetVpnGateway": {
178192	//       "description": "Name of the target VPN gateway to delete.",
178193	//       "location": "path",
178194	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
178195	//       "required": true,
178196	//       "type": "string"
178197	//     }
178198	//   },
178199	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
178200	//   "response": {
178201	//     "$ref": "Operation"
178202	//   },
178203	//   "scopes": [
178204	//     "https://www.googleapis.com/auth/cloud-platform",
178205	//     "https://www.googleapis.com/auth/compute"
178206	//   ]
178207	// }
178208
178209}
178210
178211// method id "compute.targetVpnGateways.get":
178212
178213type TargetVpnGatewaysGetCall struct {
178214	s                *Service
178215	project          string
178216	region           string
178217	targetVpnGateway string
178218	urlParams_       gensupport.URLParams
178219	ifNoneMatch_     string
178220	ctx_             context.Context
178221	header_          http.Header
178222}
178223
178224// Get: Returns the specified target VPN gateway. Gets a list of
178225// available target VPN gateways by making a list() request.
178226//
178227// - project: Project ID for this request.
178228// - region: Name of the region for this request.
178229// - targetVpnGateway: Name of the target VPN gateway to return.
178230func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
178231	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178232	c.project = project
178233	c.region = region
178234	c.targetVpnGateway = targetVpnGateway
178235	return c
178236}
178237
178238// Fields allows partial responses to be retrieved. See
178239// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178240// for more information.
178241func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
178242	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178243	return c
178244}
178245
178246// IfNoneMatch sets the optional parameter which makes the operation
178247// fail if the object's ETag matches the given value. This is useful for
178248// getting updates only after the object has changed since the last
178249// request. Use googleapi.IsNotModified to check whether the response
178250// error from Do is the result of In-None-Match.
178251func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
178252	c.ifNoneMatch_ = entityTag
178253	return c
178254}
178255
178256// Context sets the context to be used in this call's Do method. Any
178257// pending HTTP request will be aborted if the provided context is
178258// canceled.
178259func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
178260	c.ctx_ = ctx
178261	return c
178262}
178263
178264// Header returns an http.Header that can be modified by the caller to
178265// add HTTP headers to the request.
178266func (c *TargetVpnGatewaysGetCall) Header() http.Header {
178267	if c.header_ == nil {
178268		c.header_ = make(http.Header)
178269	}
178270	return c.header_
178271}
178272
178273func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
178274	reqHeaders := make(http.Header)
178275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
178276	for k, v := range c.header_ {
178277		reqHeaders[k] = v
178278	}
178279	reqHeaders.Set("User-Agent", c.s.userAgent())
178280	if c.ifNoneMatch_ != "" {
178281		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
178282	}
178283	var body io.Reader = nil
178284	c.urlParams_.Set("alt", alt)
178285	c.urlParams_.Set("prettyPrint", "false")
178286	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
178287	urls += "?" + c.urlParams_.Encode()
178288	req, err := http.NewRequest("GET", urls, body)
178289	if err != nil {
178290		return nil, err
178291	}
178292	req.Header = reqHeaders
178293	googleapi.Expand(req.URL, map[string]string{
178294		"project":          c.project,
178295		"region":           c.region,
178296		"targetVpnGateway": c.targetVpnGateway,
178297	})
178298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178299}
178300
178301// Do executes the "compute.targetVpnGateways.get" call.
178302// Exactly one of *TargetVpnGateway or error will be non-nil. Any
178303// non-2xx status code is an error. Response headers are in either
178304// *TargetVpnGateway.ServerResponse.Header or (if a response was
178305// returned at all) in error.(*googleapi.Error).Header. Use
178306// googleapi.IsNotModified to check whether the returned error was
178307// because http.StatusNotModified was returned.
178308func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
178309	gensupport.SetOptions(c.urlParams_, opts...)
178310	res, err := c.doRequest("json")
178311	if res != nil && res.StatusCode == http.StatusNotModified {
178312		if res.Body != nil {
178313			res.Body.Close()
178314		}
178315		return nil, &googleapi.Error{
178316			Code:   res.StatusCode,
178317			Header: res.Header,
178318		}
178319	}
178320	if err != nil {
178321		return nil, err
178322	}
178323	defer googleapi.CloseBody(res)
178324	if err := googleapi.CheckResponse(res); err != nil {
178325		return nil, err
178326	}
178327	ret := &TargetVpnGateway{
178328		ServerResponse: googleapi.ServerResponse{
178329			Header:         res.Header,
178330			HTTPStatusCode: res.StatusCode,
178331		},
178332	}
178333	target := &ret
178334	if err := gensupport.DecodeResponse(target, res); err != nil {
178335		return nil, err
178336	}
178337	return ret, nil
178338	// {
178339	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
178340	//   "httpMethod": "GET",
178341	//   "id": "compute.targetVpnGateways.get",
178342	//   "parameterOrder": [
178343	//     "project",
178344	//     "region",
178345	//     "targetVpnGateway"
178346	//   ],
178347	//   "parameters": {
178348	//     "project": {
178349	//       "description": "Project ID for this request.",
178350	//       "location": "path",
178351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178352	//       "required": true,
178353	//       "type": "string"
178354	//     },
178355	//     "region": {
178356	//       "description": "Name of the region for this request.",
178357	//       "location": "path",
178358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178359	//       "required": true,
178360	//       "type": "string"
178361	//     },
178362	//     "targetVpnGateway": {
178363	//       "description": "Name of the target VPN gateway to return.",
178364	//       "location": "path",
178365	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
178366	//       "required": true,
178367	//       "type": "string"
178368	//     }
178369	//   },
178370	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
178371	//   "response": {
178372	//     "$ref": "TargetVpnGateway"
178373	//   },
178374	//   "scopes": [
178375	//     "https://www.googleapis.com/auth/cloud-platform",
178376	//     "https://www.googleapis.com/auth/compute",
178377	//     "https://www.googleapis.com/auth/compute.readonly"
178378	//   ]
178379	// }
178380
178381}
178382
178383// method id "compute.targetVpnGateways.insert":
178384
178385type TargetVpnGatewaysInsertCall struct {
178386	s                *Service
178387	project          string
178388	region           string
178389	targetvpngateway *TargetVpnGateway
178390	urlParams_       gensupport.URLParams
178391	ctx_             context.Context
178392	header_          http.Header
178393}
178394
178395// Insert: Creates a target VPN gateway in the specified project and
178396// region using the data included in the request.
178397//
178398// - project: Project ID for this request.
178399// - region: Name of the region for this request.
178400func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
178401	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178402	c.project = project
178403	c.region = region
178404	c.targetvpngateway = targetvpngateway
178405	return c
178406}
178407
178408// RequestId sets the optional parameter "requestId": An optional
178409// request ID to identify requests. Specify a unique request ID so that
178410// if you must retry your request, the server will know to ignore the
178411// request if it has already been completed.
178412//
178413// For example, consider a situation where you make an initial request
178414// and the request times out. If you make the request again with the
178415// same request ID, the server can check if original operation with the
178416// same request ID was received, and if so, will ignore the second
178417// request. This prevents clients from accidentally creating duplicate
178418// commitments.
178419//
178420// The request ID must be a valid UUID with the exception that zero UUID
178421// is not supported (00000000-0000-0000-0000-000000000000).
178422func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
178423	c.urlParams_.Set("requestId", requestId)
178424	return c
178425}
178426
178427// Fields allows partial responses to be retrieved. See
178428// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178429// for more information.
178430func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
178431	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178432	return c
178433}
178434
178435// Context sets the context to be used in this call's Do method. Any
178436// pending HTTP request will be aborted if the provided context is
178437// canceled.
178438func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
178439	c.ctx_ = ctx
178440	return c
178441}
178442
178443// Header returns an http.Header that can be modified by the caller to
178444// add HTTP headers to the request.
178445func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
178446	if c.header_ == nil {
178447		c.header_ = make(http.Header)
178448	}
178449	return c.header_
178450}
178451
178452func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
178453	reqHeaders := make(http.Header)
178454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
178455	for k, v := range c.header_ {
178456		reqHeaders[k] = v
178457	}
178458	reqHeaders.Set("User-Agent", c.s.userAgent())
178459	var body io.Reader = nil
178460	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
178461	if err != nil {
178462		return nil, err
178463	}
178464	reqHeaders.Set("Content-Type", "application/json")
178465	c.urlParams_.Set("alt", alt)
178466	c.urlParams_.Set("prettyPrint", "false")
178467	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
178468	urls += "?" + c.urlParams_.Encode()
178469	req, err := http.NewRequest("POST", urls, body)
178470	if err != nil {
178471		return nil, err
178472	}
178473	req.Header = reqHeaders
178474	googleapi.Expand(req.URL, map[string]string{
178475		"project": c.project,
178476		"region":  c.region,
178477	})
178478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178479}
178480
178481// Do executes the "compute.targetVpnGateways.insert" call.
178482// Exactly one of *Operation or error will be non-nil. Any non-2xx
178483// status code is an error. Response headers are in either
178484// *Operation.ServerResponse.Header or (if a response was returned at
178485// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
178486// to check whether the returned error was because
178487// http.StatusNotModified was returned.
178488func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
178489	gensupport.SetOptions(c.urlParams_, opts...)
178490	res, err := c.doRequest("json")
178491	if res != nil && res.StatusCode == http.StatusNotModified {
178492		if res.Body != nil {
178493			res.Body.Close()
178494		}
178495		return nil, &googleapi.Error{
178496			Code:   res.StatusCode,
178497			Header: res.Header,
178498		}
178499	}
178500	if err != nil {
178501		return nil, err
178502	}
178503	defer googleapi.CloseBody(res)
178504	if err := googleapi.CheckResponse(res); err != nil {
178505		return nil, err
178506	}
178507	ret := &Operation{
178508		ServerResponse: googleapi.ServerResponse{
178509			Header:         res.Header,
178510			HTTPStatusCode: res.StatusCode,
178511		},
178512	}
178513	target := &ret
178514	if err := gensupport.DecodeResponse(target, res); err != nil {
178515		return nil, err
178516	}
178517	return ret, nil
178518	// {
178519	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
178520	//   "httpMethod": "POST",
178521	//   "id": "compute.targetVpnGateways.insert",
178522	//   "parameterOrder": [
178523	//     "project",
178524	//     "region"
178525	//   ],
178526	//   "parameters": {
178527	//     "project": {
178528	//       "description": "Project ID for this request.",
178529	//       "location": "path",
178530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178531	//       "required": true,
178532	//       "type": "string"
178533	//     },
178534	//     "region": {
178535	//       "description": "Name of the region for this request.",
178536	//       "location": "path",
178537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178538	//       "required": true,
178539	//       "type": "string"
178540	//     },
178541	//     "requestId": {
178542	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
178543	//       "location": "query",
178544	//       "type": "string"
178545	//     }
178546	//   },
178547	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
178548	//   "request": {
178549	//     "$ref": "TargetVpnGateway"
178550	//   },
178551	//   "response": {
178552	//     "$ref": "Operation"
178553	//   },
178554	//   "scopes": [
178555	//     "https://www.googleapis.com/auth/cloud-platform",
178556	//     "https://www.googleapis.com/auth/compute"
178557	//   ]
178558	// }
178559
178560}
178561
178562// method id "compute.targetVpnGateways.list":
178563
178564type TargetVpnGatewaysListCall struct {
178565	s            *Service
178566	project      string
178567	region       string
178568	urlParams_   gensupport.URLParams
178569	ifNoneMatch_ string
178570	ctx_         context.Context
178571	header_      http.Header
178572}
178573
178574// List: Retrieves a list of target VPN gateways available to the
178575// specified project and region.
178576//
178577// - project: Project ID for this request.
178578// - region: Name of the region for this request.
178579func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
178580	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178581	c.project = project
178582	c.region = region
178583	return c
178584}
178585
178586// Filter sets the optional parameter "filter": A filter expression that
178587// filters resources listed in the response. The expression must specify
178588// the field name, a comparison operator, and the value that you want to
178589// use for filtering. The value must be a string, a number, or a
178590// boolean. The comparison operator must be either `=`, `!=`, `>`, or
178591// `<`.
178592//
178593// For example, if you are filtering Compute Engine instances, you can
178594// exclude instances named `example-instance` by specifying `name !=
178595// example-instance`.
178596//
178597// You can also filter nested fields. For example, you could specify
178598// `scheduling.automaticRestart = false` to include instances only if
178599// they are not scheduled for automatic restarts. You can use filtering
178600// on nested fields to filter based on resource labels.
178601//
178602// To filter on multiple expressions, provide each separate expression
178603// within parentheses. For example: ``` (scheduling.automaticRestart =
178604// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
178605// is an `AND` expression. However, you can include `AND` and `OR`
178606// expressions explicitly. For example: ``` (cpuPlatform = "Intel
178607// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
178608// (scheduling.automaticRestart = true) ```
178609func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
178610	c.urlParams_.Set("filter", filter)
178611	return c
178612}
178613
178614// MaxResults sets the optional parameter "maxResults": The maximum
178615// number of results per page that should be returned. If the number of
178616// available results is larger than `maxResults`, Compute Engine returns
178617// a `nextPageToken` that can be used to get the next page of results in
178618// subsequent list requests. Acceptable values are `0` to `500`,
178619// inclusive. (Default: `500`)
178620func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
178621	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
178622	return c
178623}
178624
178625// OrderBy sets the optional parameter "orderBy": Sorts list results by
178626// a certain order. By default, results are returned in alphanumerical
178627// order based on the resource name.
178628//
178629// You can also sort results in descending order based on the creation
178630// timestamp using `orderBy="creationTimestamp desc". This sorts
178631// results based on the `creationTimestamp` field in reverse
178632// chronological order (newest result first). Use this to sort resources
178633// like operations so that the newest operation is returned
178634// first.
178635//
178636// Currently, only sorting by `name` or `creationTimestamp desc` is
178637// supported.
178638func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
178639	c.urlParams_.Set("orderBy", orderBy)
178640	return c
178641}
178642
178643// PageToken sets the optional parameter "pageToken": Specifies a page
178644// token to use. Set `pageToken` to the `nextPageToken` returned by a
178645// previous list request to get the next page of results.
178646func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
178647	c.urlParams_.Set("pageToken", pageToken)
178648	return c
178649}
178650
178651// ReturnPartialSuccess sets the optional parameter
178652// "returnPartialSuccess": Opt-in for partial success behavior which
178653// provides partial results in case of failure. The default value is
178654// false.
178655func (c *TargetVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysListCall {
178656	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
178657	return c
178658}
178659
178660// Fields allows partial responses to be retrieved. See
178661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178662// for more information.
178663func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
178664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178665	return c
178666}
178667
178668// IfNoneMatch sets the optional parameter which makes the operation
178669// fail if the object's ETag matches the given value. This is useful for
178670// getting updates only after the object has changed since the last
178671// request. Use googleapi.IsNotModified to check whether the response
178672// error from Do is the result of In-None-Match.
178673func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
178674	c.ifNoneMatch_ = entityTag
178675	return c
178676}
178677
178678// Context sets the context to be used in this call's Do method. Any
178679// pending HTTP request will be aborted if the provided context is
178680// canceled.
178681func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
178682	c.ctx_ = ctx
178683	return c
178684}
178685
178686// Header returns an http.Header that can be modified by the caller to
178687// add HTTP headers to the request.
178688func (c *TargetVpnGatewaysListCall) Header() http.Header {
178689	if c.header_ == nil {
178690		c.header_ = make(http.Header)
178691	}
178692	return c.header_
178693}
178694
178695func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
178696	reqHeaders := make(http.Header)
178697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
178698	for k, v := range c.header_ {
178699		reqHeaders[k] = v
178700	}
178701	reqHeaders.Set("User-Agent", c.s.userAgent())
178702	if c.ifNoneMatch_ != "" {
178703		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
178704	}
178705	var body io.Reader = nil
178706	c.urlParams_.Set("alt", alt)
178707	c.urlParams_.Set("prettyPrint", "false")
178708	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
178709	urls += "?" + c.urlParams_.Encode()
178710	req, err := http.NewRequest("GET", urls, body)
178711	if err != nil {
178712		return nil, err
178713	}
178714	req.Header = reqHeaders
178715	googleapi.Expand(req.URL, map[string]string{
178716		"project": c.project,
178717		"region":  c.region,
178718	})
178719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178720}
178721
178722// Do executes the "compute.targetVpnGateways.list" call.
178723// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
178724// non-2xx status code is an error. Response headers are in either
178725// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
178726// returned at all) in error.(*googleapi.Error).Header. Use
178727// googleapi.IsNotModified to check whether the returned error was
178728// because http.StatusNotModified was returned.
178729func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
178730	gensupport.SetOptions(c.urlParams_, opts...)
178731	res, err := c.doRequest("json")
178732	if res != nil && res.StatusCode == http.StatusNotModified {
178733		if res.Body != nil {
178734			res.Body.Close()
178735		}
178736		return nil, &googleapi.Error{
178737			Code:   res.StatusCode,
178738			Header: res.Header,
178739		}
178740	}
178741	if err != nil {
178742		return nil, err
178743	}
178744	defer googleapi.CloseBody(res)
178745	if err := googleapi.CheckResponse(res); err != nil {
178746		return nil, err
178747	}
178748	ret := &TargetVpnGatewayList{
178749		ServerResponse: googleapi.ServerResponse{
178750			Header:         res.Header,
178751			HTTPStatusCode: res.StatusCode,
178752		},
178753	}
178754	target := &ret
178755	if err := gensupport.DecodeResponse(target, res); err != nil {
178756		return nil, err
178757	}
178758	return ret, nil
178759	// {
178760	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
178761	//   "httpMethod": "GET",
178762	//   "id": "compute.targetVpnGateways.list",
178763	//   "parameterOrder": [
178764	//     "project",
178765	//     "region"
178766	//   ],
178767	//   "parameters": {
178768	//     "filter": {
178769	//       "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) ```",
178770	//       "location": "query",
178771	//       "type": "string"
178772	//     },
178773	//     "maxResults": {
178774	//       "default": "500",
178775	//       "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`)",
178776	//       "format": "uint32",
178777	//       "location": "query",
178778	//       "minimum": "0",
178779	//       "type": "integer"
178780	//     },
178781	//     "orderBy": {
178782	//       "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.",
178783	//       "location": "query",
178784	//       "type": "string"
178785	//     },
178786	//     "pageToken": {
178787	//       "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.",
178788	//       "location": "query",
178789	//       "type": "string"
178790	//     },
178791	//     "project": {
178792	//       "description": "Project ID for this request.",
178793	//       "location": "path",
178794	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178795	//       "required": true,
178796	//       "type": "string"
178797	//     },
178798	//     "region": {
178799	//       "description": "Name of the region for this request.",
178800	//       "location": "path",
178801	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178802	//       "required": true,
178803	//       "type": "string"
178804	//     },
178805	//     "returnPartialSuccess": {
178806	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
178807	//       "location": "query",
178808	//       "type": "boolean"
178809	//     }
178810	//   },
178811	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
178812	//   "response": {
178813	//     "$ref": "TargetVpnGatewayList"
178814	//   },
178815	//   "scopes": [
178816	//     "https://www.googleapis.com/auth/cloud-platform",
178817	//     "https://www.googleapis.com/auth/compute",
178818	//     "https://www.googleapis.com/auth/compute.readonly"
178819	//   ]
178820	// }
178821
178822}
178823
178824// Pages invokes f for each page of results.
178825// A non-nil error returned from f will halt the iteration.
178826// The provided context supersedes any context provided to the Context method.
178827func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
178828	c.ctx_ = ctx
178829	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
178830	for {
178831		x, err := c.Do()
178832		if err != nil {
178833			return err
178834		}
178835		if err := f(x); err != nil {
178836			return err
178837		}
178838		if x.NextPageToken == "" {
178839			return nil
178840		}
178841		c.PageToken(x.NextPageToken)
178842	}
178843}
178844
178845// method id "compute.targetVpnGateways.setLabels":
178846
178847type TargetVpnGatewaysSetLabelsCall struct {
178848	s                      *Service
178849	project                string
178850	region                 string
178851	resource               string
178852	regionsetlabelsrequest *RegionSetLabelsRequest
178853	urlParams_             gensupport.URLParams
178854	ctx_                   context.Context
178855	header_                http.Header
178856}
178857
178858// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about
178859// labels, read the Labeling Resources documentation.
178860//
178861// - project: Project ID for this request.
178862// - region: The region for this request.
178863// - resource: Name or id of the resource for this request.
178864func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall {
178865	c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178866	c.project = project
178867	c.region = region
178868	c.resource = resource
178869	c.regionsetlabelsrequest = regionsetlabelsrequest
178870	return c
178871}
178872
178873// RequestId sets the optional parameter "requestId": An optional
178874// request ID to identify requests. Specify a unique request ID so that
178875// if you must retry your request, the server will know to ignore the
178876// request if it has already been completed.
178877//
178878// For example, consider a situation where you make an initial request
178879// and the request times out. If you make the request again with the
178880// same request ID, the server can check if original operation with the
178881// same request ID was received, and if so, will ignore the second
178882// request. This prevents clients from accidentally creating duplicate
178883// commitments.
178884//
178885// The request ID must be a valid UUID with the exception that zero UUID
178886// is not supported (00000000-0000-0000-0000-000000000000).
178887func (c *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall {
178888	c.urlParams_.Set("requestId", requestId)
178889	return c
178890}
178891
178892// Fields allows partial responses to be retrieved. See
178893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178894// for more information.
178895func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall {
178896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178897	return c
178898}
178899
178900// Context sets the context to be used in this call's Do method. Any
178901// pending HTTP request will be aborted if the provided context is
178902// canceled.
178903func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall {
178904	c.ctx_ = ctx
178905	return c
178906}
178907
178908// Header returns an http.Header that can be modified by the caller to
178909// add HTTP headers to the request.
178910func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header {
178911	if c.header_ == nil {
178912		c.header_ = make(http.Header)
178913	}
178914	return c.header_
178915}
178916
178917func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
178918	reqHeaders := make(http.Header)
178919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
178920	for k, v := range c.header_ {
178921		reqHeaders[k] = v
178922	}
178923	reqHeaders.Set("User-Agent", c.s.userAgent())
178924	var body io.Reader = nil
178925	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
178926	if err != nil {
178927		return nil, err
178928	}
178929	reqHeaders.Set("Content-Type", "application/json")
178930	c.urlParams_.Set("alt", alt)
178931	c.urlParams_.Set("prettyPrint", "false")
178932	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels")
178933	urls += "?" + c.urlParams_.Encode()
178934	req, err := http.NewRequest("POST", urls, body)
178935	if err != nil {
178936		return nil, err
178937	}
178938	req.Header = reqHeaders
178939	googleapi.Expand(req.URL, map[string]string{
178940		"project":  c.project,
178941		"region":   c.region,
178942		"resource": c.resource,
178943	})
178944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178945}
178946
178947// Do executes the "compute.targetVpnGateways.setLabels" call.
178948// Exactly one of *Operation or error will be non-nil. Any non-2xx
178949// status code is an error. Response headers are in either
178950// *Operation.ServerResponse.Header or (if a response was returned at
178951// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
178952// to check whether the returned error was because
178953// http.StatusNotModified was returned.
178954func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
178955	gensupport.SetOptions(c.urlParams_, opts...)
178956	res, err := c.doRequest("json")
178957	if res != nil && res.StatusCode == http.StatusNotModified {
178958		if res.Body != nil {
178959			res.Body.Close()
178960		}
178961		return nil, &googleapi.Error{
178962			Code:   res.StatusCode,
178963			Header: res.Header,
178964		}
178965	}
178966	if err != nil {
178967		return nil, err
178968	}
178969	defer googleapi.CloseBody(res)
178970	if err := googleapi.CheckResponse(res); err != nil {
178971		return nil, err
178972	}
178973	ret := &Operation{
178974		ServerResponse: googleapi.ServerResponse{
178975			Header:         res.Header,
178976			HTTPStatusCode: res.StatusCode,
178977		},
178978	}
178979	target := &ret
178980	if err := gensupport.DecodeResponse(target, res); err != nil {
178981		return nil, err
178982	}
178983	return ret, nil
178984	// {
178985	//   "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
178986	//   "httpMethod": "POST",
178987	//   "id": "compute.targetVpnGateways.setLabels",
178988	//   "parameterOrder": [
178989	//     "project",
178990	//     "region",
178991	//     "resource"
178992	//   ],
178993	//   "parameters": {
178994	//     "project": {
178995	//       "description": "Project ID for this request.",
178996	//       "location": "path",
178997	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178998	//       "required": true,
178999	//       "type": "string"
179000	//     },
179001	//     "region": {
179002	//       "description": "The region for this request.",
179003	//       "location": "path",
179004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179005	//       "required": true,
179006	//       "type": "string"
179007	//     },
179008	//     "requestId": {
179009	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
179010	//       "location": "query",
179011	//       "type": "string"
179012	//     },
179013	//     "resource": {
179014	//       "description": "Name or id of the resource for this request.",
179015	//       "location": "path",
179016	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179017	//       "required": true,
179018	//       "type": "string"
179019	//     }
179020	//   },
179021	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
179022	//   "request": {
179023	//     "$ref": "RegionSetLabelsRequest"
179024	//   },
179025	//   "response": {
179026	//     "$ref": "Operation"
179027	//   },
179028	//   "scopes": [
179029	//     "https://www.googleapis.com/auth/cloud-platform",
179030	//     "https://www.googleapis.com/auth/compute"
179031	//   ]
179032	// }
179033
179034}
179035
179036// method id "compute.targetVpnGateways.testIamPermissions":
179037
179038type TargetVpnGatewaysTestIamPermissionsCall struct {
179039	s                      *Service
179040	project                string
179041	region                 string
179042	resource               string
179043	testpermissionsrequest *TestPermissionsRequest
179044	urlParams_             gensupport.URLParams
179045	ctx_                   context.Context
179046	header_                http.Header
179047}
179048
179049// TestIamPermissions: Returns permissions that a caller has on the
179050// specified resource.
179051//
179052// - project: Project ID for this request.
179053// - region: The name of the region for this request.
179054// - resource: Name or id of the resource for this request.
179055func (r *TargetVpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetVpnGatewaysTestIamPermissionsCall {
179056	c := &TargetVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179057	c.project = project
179058	c.region = region
179059	c.resource = resource
179060	c.testpermissionsrequest = testpermissionsrequest
179061	return c
179062}
179063
179064// Fields allows partial responses to be retrieved. See
179065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179066// for more information.
179067func (c *TargetVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysTestIamPermissionsCall {
179068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179069	return c
179070}
179071
179072// Context sets the context to be used in this call's Do method. Any
179073// pending HTTP request will be aborted if the provided context is
179074// canceled.
179075func (c *TargetVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *TargetVpnGatewaysTestIamPermissionsCall {
179076	c.ctx_ = ctx
179077	return c
179078}
179079
179080// Header returns an http.Header that can be modified by the caller to
179081// add HTTP headers to the request.
179082func (c *TargetVpnGatewaysTestIamPermissionsCall) Header() http.Header {
179083	if c.header_ == nil {
179084		c.header_ = make(http.Header)
179085	}
179086	return c.header_
179087}
179088
179089func (c *TargetVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
179090	reqHeaders := make(http.Header)
179091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
179092	for k, v := range c.header_ {
179093		reqHeaders[k] = v
179094	}
179095	reqHeaders.Set("User-Agent", c.s.userAgent())
179096	var body io.Reader = nil
179097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
179098	if err != nil {
179099		return nil, err
179100	}
179101	reqHeaders.Set("Content-Type", "application/json")
179102	c.urlParams_.Set("alt", alt)
179103	c.urlParams_.Set("prettyPrint", "false")
179104	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions")
179105	urls += "?" + c.urlParams_.Encode()
179106	req, err := http.NewRequest("POST", urls, body)
179107	if err != nil {
179108		return nil, err
179109	}
179110	req.Header = reqHeaders
179111	googleapi.Expand(req.URL, map[string]string{
179112		"project":  c.project,
179113		"region":   c.region,
179114		"resource": c.resource,
179115	})
179116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179117}
179118
179119// Do executes the "compute.targetVpnGateways.testIamPermissions" call.
179120// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
179121// non-2xx status code is an error. Response headers are in either
179122// *TestPermissionsResponse.ServerResponse.Header or (if a response was
179123// returned at all) in error.(*googleapi.Error).Header. Use
179124// googleapi.IsNotModified to check whether the returned error was
179125// because http.StatusNotModified was returned.
179126func (c *TargetVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
179127	gensupport.SetOptions(c.urlParams_, opts...)
179128	res, err := c.doRequest("json")
179129	if res != nil && res.StatusCode == http.StatusNotModified {
179130		if res.Body != nil {
179131			res.Body.Close()
179132		}
179133		return nil, &googleapi.Error{
179134			Code:   res.StatusCode,
179135			Header: res.Header,
179136		}
179137	}
179138	if err != nil {
179139		return nil, err
179140	}
179141	defer googleapi.CloseBody(res)
179142	if err := googleapi.CheckResponse(res); err != nil {
179143		return nil, err
179144	}
179145	ret := &TestPermissionsResponse{
179146		ServerResponse: googleapi.ServerResponse{
179147			Header:         res.Header,
179148			HTTPStatusCode: res.StatusCode,
179149		},
179150	}
179151	target := &ret
179152	if err := gensupport.DecodeResponse(target, res); err != nil {
179153		return nil, err
179154	}
179155	return ret, nil
179156	// {
179157	//   "description": "Returns permissions that a caller has on the specified resource.",
179158	//   "httpMethod": "POST",
179159	//   "id": "compute.targetVpnGateways.testIamPermissions",
179160	//   "parameterOrder": [
179161	//     "project",
179162	//     "region",
179163	//     "resource"
179164	//   ],
179165	//   "parameters": {
179166	//     "project": {
179167	//       "description": "Project ID for this request.",
179168	//       "location": "path",
179169	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179170	//       "required": true,
179171	//       "type": "string"
179172	//     },
179173	//     "region": {
179174	//       "description": "The name of the region for this request.",
179175	//       "location": "path",
179176	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179177	//       "required": true,
179178	//       "type": "string"
179179	//     },
179180	//     "resource": {
179181	//       "description": "Name or id of the resource for this request.",
179182	//       "location": "path",
179183	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179184	//       "required": true,
179185	//       "type": "string"
179186	//     }
179187	//   },
179188	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions",
179189	//   "request": {
179190	//     "$ref": "TestPermissionsRequest"
179191	//   },
179192	//   "response": {
179193	//     "$ref": "TestPermissionsResponse"
179194	//   },
179195	//   "scopes": [
179196	//     "https://www.googleapis.com/auth/cloud-platform",
179197	//     "https://www.googleapis.com/auth/compute",
179198	//     "https://www.googleapis.com/auth/compute.readonly"
179199	//   ]
179200	// }
179201
179202}
179203
179204// method id "compute.urlMaps.aggregatedList":
179205
179206type UrlMapsAggregatedListCall struct {
179207	s            *Service
179208	project      string
179209	urlParams_   gensupport.URLParams
179210	ifNoneMatch_ string
179211	ctx_         context.Context
179212	header_      http.Header
179213}
179214
179215// AggregatedList: Retrieves the list of all UrlMap resources, regional
179216// and global, available to the specified project.
179217//
179218// - project: Name of the project scoping this request.
179219func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
179220	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179221	c.project = project
179222	return c
179223}
179224
179225// Filter sets the optional parameter "filter": A filter expression that
179226// filters resources listed in the response. The expression must specify
179227// the field name, a comparison operator, and the value that you want to
179228// use for filtering. The value must be a string, a number, or a
179229// boolean. The comparison operator must be either `=`, `!=`, `>`, or
179230// `<`.
179231//
179232// For example, if you are filtering Compute Engine instances, you can
179233// exclude instances named `example-instance` by specifying `name !=
179234// example-instance`.
179235//
179236// You can also filter nested fields. For example, you could specify
179237// `scheduling.automaticRestart = false` to include instances only if
179238// they are not scheduled for automatic restarts. You can use filtering
179239// on nested fields to filter based on resource labels.
179240//
179241// To filter on multiple expressions, provide each separate expression
179242// within parentheses. For example: ``` (scheduling.automaticRestart =
179243// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
179244// is an `AND` expression. However, you can include `AND` and `OR`
179245// expressions explicitly. For example: ``` (cpuPlatform = "Intel
179246// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
179247// (scheduling.automaticRestart = true) ```
179248func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
179249	c.urlParams_.Set("filter", filter)
179250	return c
179251}
179252
179253// IncludeAllScopes sets the optional parameter "includeAllScopes":
179254// Indicates whether every visible scope for each scope type (zone,
179255// region, global) should be included in the response. For new resource
179256// types added after this field, the flag has no effect as new resource
179257// types will always include every visible scope for each scope type in
179258// response. For resource types which predate this field, if this flag
179259// is omitted or false, only scopes of the scope types where the
179260// resource type is expected to be found will be included.
179261func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
179262	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
179263	return c
179264}
179265
179266// MaxResults sets the optional parameter "maxResults": The maximum
179267// number of results per page that should be returned. If the number of
179268// available results is larger than `maxResults`, Compute Engine returns
179269// a `nextPageToken` that can be used to get the next page of results in
179270// subsequent list requests. Acceptable values are `0` to `500`,
179271// inclusive. (Default: `500`)
179272func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
179273	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
179274	return c
179275}
179276
179277// OrderBy sets the optional parameter "orderBy": Sorts list results by
179278// a certain order. By default, results are returned in alphanumerical
179279// order based on the resource name.
179280//
179281// You can also sort results in descending order based on the creation
179282// timestamp using `orderBy="creationTimestamp desc". This sorts
179283// results based on the `creationTimestamp` field in reverse
179284// chronological order (newest result first). Use this to sort resources
179285// like operations so that the newest operation is returned
179286// first.
179287//
179288// Currently, only sorting by `name` or `creationTimestamp desc` is
179289// supported.
179290func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
179291	c.urlParams_.Set("orderBy", orderBy)
179292	return c
179293}
179294
179295// PageToken sets the optional parameter "pageToken": Specifies a page
179296// token to use. Set `pageToken` to the `nextPageToken` returned by a
179297// previous list request to get the next page of results.
179298func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
179299	c.urlParams_.Set("pageToken", pageToken)
179300	return c
179301}
179302
179303// ReturnPartialSuccess sets the optional parameter
179304// "returnPartialSuccess": Opt-in for partial success behavior which
179305// provides partial results in case of failure. The default value is
179306// false.
179307func (c *UrlMapsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsAggregatedListCall {
179308	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
179309	return c
179310}
179311
179312// Fields allows partial responses to be retrieved. See
179313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179314// for more information.
179315func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
179316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179317	return c
179318}
179319
179320// IfNoneMatch sets the optional parameter which makes the operation
179321// fail if the object's ETag matches the given value. This is useful for
179322// getting updates only after the object has changed since the last
179323// request. Use googleapi.IsNotModified to check whether the response
179324// error from Do is the result of In-None-Match.
179325func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
179326	c.ifNoneMatch_ = entityTag
179327	return c
179328}
179329
179330// Context sets the context to be used in this call's Do method. Any
179331// pending HTTP request will be aborted if the provided context is
179332// canceled.
179333func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
179334	c.ctx_ = ctx
179335	return c
179336}
179337
179338// Header returns an http.Header that can be modified by the caller to
179339// add HTTP headers to the request.
179340func (c *UrlMapsAggregatedListCall) Header() http.Header {
179341	if c.header_ == nil {
179342		c.header_ = make(http.Header)
179343	}
179344	return c.header_
179345}
179346
179347func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
179348	reqHeaders := make(http.Header)
179349	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
179350	for k, v := range c.header_ {
179351		reqHeaders[k] = v
179352	}
179353	reqHeaders.Set("User-Agent", c.s.userAgent())
179354	if c.ifNoneMatch_ != "" {
179355		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
179356	}
179357	var body io.Reader = nil
179358	c.urlParams_.Set("alt", alt)
179359	c.urlParams_.Set("prettyPrint", "false")
179360	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/urlMaps")
179361	urls += "?" + c.urlParams_.Encode()
179362	req, err := http.NewRequest("GET", urls, body)
179363	if err != nil {
179364		return nil, err
179365	}
179366	req.Header = reqHeaders
179367	googleapi.Expand(req.URL, map[string]string{
179368		"project": c.project,
179369	})
179370	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179371}
179372
179373// Do executes the "compute.urlMaps.aggregatedList" call.
179374// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
179375// non-2xx status code is an error. Response headers are in either
179376// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
179377// returned at all) in error.(*googleapi.Error).Header. Use
179378// googleapi.IsNotModified to check whether the returned error was
179379// because http.StatusNotModified was returned.
179380func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
179381	gensupport.SetOptions(c.urlParams_, opts...)
179382	res, err := c.doRequest("json")
179383	if res != nil && res.StatusCode == http.StatusNotModified {
179384		if res.Body != nil {
179385			res.Body.Close()
179386		}
179387		return nil, &googleapi.Error{
179388			Code:   res.StatusCode,
179389			Header: res.Header,
179390		}
179391	}
179392	if err != nil {
179393		return nil, err
179394	}
179395	defer googleapi.CloseBody(res)
179396	if err := googleapi.CheckResponse(res); err != nil {
179397		return nil, err
179398	}
179399	ret := &UrlMapsAggregatedList{
179400		ServerResponse: googleapi.ServerResponse{
179401			Header:         res.Header,
179402			HTTPStatusCode: res.StatusCode,
179403		},
179404	}
179405	target := &ret
179406	if err := gensupport.DecodeResponse(target, res); err != nil {
179407		return nil, err
179408	}
179409	return ret, nil
179410	// {
179411	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
179412	//   "httpMethod": "GET",
179413	//   "id": "compute.urlMaps.aggregatedList",
179414	//   "parameterOrder": [
179415	//     "project"
179416	//   ],
179417	//   "parameters": {
179418	//     "filter": {
179419	//       "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) ```",
179420	//       "location": "query",
179421	//       "type": "string"
179422	//     },
179423	//     "includeAllScopes": {
179424	//       "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.",
179425	//       "location": "query",
179426	//       "type": "boolean"
179427	//     },
179428	//     "maxResults": {
179429	//       "default": "500",
179430	//       "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`)",
179431	//       "format": "uint32",
179432	//       "location": "query",
179433	//       "minimum": "0",
179434	//       "type": "integer"
179435	//     },
179436	//     "orderBy": {
179437	//       "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.",
179438	//       "location": "query",
179439	//       "type": "string"
179440	//     },
179441	//     "pageToken": {
179442	//       "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.",
179443	//       "location": "query",
179444	//       "type": "string"
179445	//     },
179446	//     "project": {
179447	//       "description": "Name of the project scoping this request.",
179448	//       "location": "path",
179449	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179450	//       "required": true,
179451	//       "type": "string"
179452	//     },
179453	//     "returnPartialSuccess": {
179454	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
179455	//       "location": "query",
179456	//       "type": "boolean"
179457	//     }
179458	//   },
179459	//   "path": "projects/{project}/aggregated/urlMaps",
179460	//   "response": {
179461	//     "$ref": "UrlMapsAggregatedList"
179462	//   },
179463	//   "scopes": [
179464	//     "https://www.googleapis.com/auth/cloud-platform",
179465	//     "https://www.googleapis.com/auth/compute",
179466	//     "https://www.googleapis.com/auth/compute.readonly"
179467	//   ]
179468	// }
179469
179470}
179471
179472// Pages invokes f for each page of results.
179473// A non-nil error returned from f will halt the iteration.
179474// The provided context supersedes any context provided to the Context method.
179475func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
179476	c.ctx_ = ctx
179477	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
179478	for {
179479		x, err := c.Do()
179480		if err != nil {
179481			return err
179482		}
179483		if err := f(x); err != nil {
179484			return err
179485		}
179486		if x.NextPageToken == "" {
179487			return nil
179488		}
179489		c.PageToken(x.NextPageToken)
179490	}
179491}
179492
179493// method id "compute.urlMaps.delete":
179494
179495type UrlMapsDeleteCall struct {
179496	s          *Service
179497	project    string
179498	urlMap     string
179499	urlParams_ gensupport.URLParams
179500	ctx_       context.Context
179501	header_    http.Header
179502}
179503
179504// Delete: Deletes the specified UrlMap resource.
179505//
179506// - project: Project ID for this request.
179507// - urlMap: Name of the UrlMap resource to delete.
179508// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
179509func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
179510	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179511	c.project = project
179512	c.urlMap = urlMap
179513	return c
179514}
179515
179516// RequestId sets the optional parameter "requestId": An optional
179517// request ID to identify requests. Specify a unique request ID so that
179518// if you must retry your request, the server will know to ignore the
179519// request if it has already been completed.
179520//
179521// For example, consider a situation where you make an initial request
179522// and the request times out. If you make the request again with the
179523// same request ID, the server can check if original operation with the
179524// same request ID was received, and if so, will ignore the second
179525// request. This prevents clients from accidentally creating duplicate
179526// commitments.
179527//
179528// The request ID must be a valid UUID with the exception that zero UUID
179529// is not supported (00000000-0000-0000-0000-000000000000).
179530func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
179531	c.urlParams_.Set("requestId", requestId)
179532	return c
179533}
179534
179535// Fields allows partial responses to be retrieved. See
179536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179537// for more information.
179538func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
179539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179540	return c
179541}
179542
179543// Context sets the context to be used in this call's Do method. Any
179544// pending HTTP request will be aborted if the provided context is
179545// canceled.
179546func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
179547	c.ctx_ = ctx
179548	return c
179549}
179550
179551// Header returns an http.Header that can be modified by the caller to
179552// add HTTP headers to the request.
179553func (c *UrlMapsDeleteCall) Header() http.Header {
179554	if c.header_ == nil {
179555		c.header_ = make(http.Header)
179556	}
179557	return c.header_
179558}
179559
179560func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
179561	reqHeaders := make(http.Header)
179562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
179563	for k, v := range c.header_ {
179564		reqHeaders[k] = v
179565	}
179566	reqHeaders.Set("User-Agent", c.s.userAgent())
179567	var body io.Reader = nil
179568	c.urlParams_.Set("alt", alt)
179569	c.urlParams_.Set("prettyPrint", "false")
179570	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
179571	urls += "?" + c.urlParams_.Encode()
179572	req, err := http.NewRequest("DELETE", urls, body)
179573	if err != nil {
179574		return nil, err
179575	}
179576	req.Header = reqHeaders
179577	googleapi.Expand(req.URL, map[string]string{
179578		"project": c.project,
179579		"urlMap":  c.urlMap,
179580	})
179581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179582}
179583
179584// Do executes the "compute.urlMaps.delete" call.
179585// Exactly one of *Operation or error will be non-nil. Any non-2xx
179586// status code is an error. Response headers are in either
179587// *Operation.ServerResponse.Header or (if a response was returned at
179588// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
179589// to check whether the returned error was because
179590// http.StatusNotModified was returned.
179591func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
179592	gensupport.SetOptions(c.urlParams_, opts...)
179593	res, err := c.doRequest("json")
179594	if res != nil && res.StatusCode == http.StatusNotModified {
179595		if res.Body != nil {
179596			res.Body.Close()
179597		}
179598		return nil, &googleapi.Error{
179599			Code:   res.StatusCode,
179600			Header: res.Header,
179601		}
179602	}
179603	if err != nil {
179604		return nil, err
179605	}
179606	defer googleapi.CloseBody(res)
179607	if err := googleapi.CheckResponse(res); err != nil {
179608		return nil, err
179609	}
179610	ret := &Operation{
179611		ServerResponse: googleapi.ServerResponse{
179612			Header:         res.Header,
179613			HTTPStatusCode: res.StatusCode,
179614		},
179615	}
179616	target := &ret
179617	if err := gensupport.DecodeResponse(target, res); err != nil {
179618		return nil, err
179619	}
179620	return ret, nil
179621	// {
179622	//   "description": "Deletes the specified UrlMap resource.",
179623	//   "httpMethod": "DELETE",
179624	//   "id": "compute.urlMaps.delete",
179625	//   "parameterOrder": [
179626	//     "project",
179627	//     "urlMap"
179628	//   ],
179629	//   "parameters": {
179630	//     "project": {
179631	//       "description": "Project ID for this request.",
179632	//       "location": "path",
179633	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179634	//       "required": true,
179635	//       "type": "string"
179636	//     },
179637	//     "requestId": {
179638	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
179639	//       "location": "query",
179640	//       "type": "string"
179641	//     },
179642	//     "urlMap": {
179643	//       "description": "Name of the UrlMap resource to delete.",
179644	//       "location": "path",
179645	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179646	//       "required": true,
179647	//       "type": "string"
179648	//     }
179649	//   },
179650	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
179651	//   "response": {
179652	//     "$ref": "Operation"
179653	//   },
179654	//   "scopes": [
179655	//     "https://www.googleapis.com/auth/cloud-platform",
179656	//     "https://www.googleapis.com/auth/compute"
179657	//   ]
179658	// }
179659
179660}
179661
179662// method id "compute.urlMaps.get":
179663
179664type UrlMapsGetCall struct {
179665	s            *Service
179666	project      string
179667	urlMap       string
179668	urlParams_   gensupport.URLParams
179669	ifNoneMatch_ string
179670	ctx_         context.Context
179671	header_      http.Header
179672}
179673
179674// Get: Returns the specified UrlMap resource. Gets a list of available
179675// URL maps by making a list() request.
179676//
179677// - project: Project ID for this request.
179678// - urlMap: Name of the UrlMap resource to return.
179679// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
179680func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
179681	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179682	c.project = project
179683	c.urlMap = urlMap
179684	return c
179685}
179686
179687// Fields allows partial responses to be retrieved. See
179688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179689// for more information.
179690func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
179691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179692	return c
179693}
179694
179695// IfNoneMatch sets the optional parameter which makes the operation
179696// fail if the object's ETag matches the given value. This is useful for
179697// getting updates only after the object has changed since the last
179698// request. Use googleapi.IsNotModified to check whether the response
179699// error from Do is the result of In-None-Match.
179700func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
179701	c.ifNoneMatch_ = entityTag
179702	return c
179703}
179704
179705// Context sets the context to be used in this call's Do method. Any
179706// pending HTTP request will be aborted if the provided context is
179707// canceled.
179708func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
179709	c.ctx_ = ctx
179710	return c
179711}
179712
179713// Header returns an http.Header that can be modified by the caller to
179714// add HTTP headers to the request.
179715func (c *UrlMapsGetCall) Header() http.Header {
179716	if c.header_ == nil {
179717		c.header_ = make(http.Header)
179718	}
179719	return c.header_
179720}
179721
179722func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
179723	reqHeaders := make(http.Header)
179724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
179725	for k, v := range c.header_ {
179726		reqHeaders[k] = v
179727	}
179728	reqHeaders.Set("User-Agent", c.s.userAgent())
179729	if c.ifNoneMatch_ != "" {
179730		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
179731	}
179732	var body io.Reader = nil
179733	c.urlParams_.Set("alt", alt)
179734	c.urlParams_.Set("prettyPrint", "false")
179735	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
179736	urls += "?" + c.urlParams_.Encode()
179737	req, err := http.NewRequest("GET", urls, body)
179738	if err != nil {
179739		return nil, err
179740	}
179741	req.Header = reqHeaders
179742	googleapi.Expand(req.URL, map[string]string{
179743		"project": c.project,
179744		"urlMap":  c.urlMap,
179745	})
179746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179747}
179748
179749// Do executes the "compute.urlMaps.get" call.
179750// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
179751// code is an error. Response headers are in either
179752// *UrlMap.ServerResponse.Header or (if a response was returned at all)
179753// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
179754// check whether the returned error was because http.StatusNotModified
179755// was returned.
179756func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
179757	gensupport.SetOptions(c.urlParams_, opts...)
179758	res, err := c.doRequest("json")
179759	if res != nil && res.StatusCode == http.StatusNotModified {
179760		if res.Body != nil {
179761			res.Body.Close()
179762		}
179763		return nil, &googleapi.Error{
179764			Code:   res.StatusCode,
179765			Header: res.Header,
179766		}
179767	}
179768	if err != nil {
179769		return nil, err
179770	}
179771	defer googleapi.CloseBody(res)
179772	if err := googleapi.CheckResponse(res); err != nil {
179773		return nil, err
179774	}
179775	ret := &UrlMap{
179776		ServerResponse: googleapi.ServerResponse{
179777			Header:         res.Header,
179778			HTTPStatusCode: res.StatusCode,
179779		},
179780	}
179781	target := &ret
179782	if err := gensupport.DecodeResponse(target, res); err != nil {
179783		return nil, err
179784	}
179785	return ret, nil
179786	// {
179787	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
179788	//   "httpMethod": "GET",
179789	//   "id": "compute.urlMaps.get",
179790	//   "parameterOrder": [
179791	//     "project",
179792	//     "urlMap"
179793	//   ],
179794	//   "parameters": {
179795	//     "project": {
179796	//       "description": "Project ID for this request.",
179797	//       "location": "path",
179798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179799	//       "required": true,
179800	//       "type": "string"
179801	//     },
179802	//     "urlMap": {
179803	//       "description": "Name of the UrlMap resource to return.",
179804	//       "location": "path",
179805	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179806	//       "required": true,
179807	//       "type": "string"
179808	//     }
179809	//   },
179810	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
179811	//   "response": {
179812	//     "$ref": "UrlMap"
179813	//   },
179814	//   "scopes": [
179815	//     "https://www.googleapis.com/auth/cloud-platform",
179816	//     "https://www.googleapis.com/auth/compute",
179817	//     "https://www.googleapis.com/auth/compute.readonly"
179818	//   ]
179819	// }
179820
179821}
179822
179823// method id "compute.urlMaps.insert":
179824
179825type UrlMapsInsertCall struct {
179826	s          *Service
179827	project    string
179828	urlmap     *UrlMap
179829	urlParams_ gensupport.URLParams
179830	ctx_       context.Context
179831	header_    http.Header
179832}
179833
179834// Insert: Creates a UrlMap resource in the specified project using the
179835// data included in the request.
179836//
179837// - project: Project ID for this request.
179838// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
179839func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
179840	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179841	c.project = project
179842	c.urlmap = urlmap
179843	return c
179844}
179845
179846// RequestId sets the optional parameter "requestId": An optional
179847// request ID to identify requests. Specify a unique request ID so that
179848// if you must retry your request, the server will know to ignore the
179849// request if it has already been completed.
179850//
179851// For example, consider a situation where you make an initial request
179852// and the request times out. If you make the request again with the
179853// same request ID, the server can check if original operation with the
179854// same request ID was received, and if so, will ignore the second
179855// request. This prevents clients from accidentally creating duplicate
179856// commitments.
179857//
179858// The request ID must be a valid UUID with the exception that zero UUID
179859// is not supported (00000000-0000-0000-0000-000000000000).
179860func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
179861	c.urlParams_.Set("requestId", requestId)
179862	return c
179863}
179864
179865// Fields allows partial responses to be retrieved. See
179866// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179867// for more information.
179868func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
179869	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179870	return c
179871}
179872
179873// Context sets the context to be used in this call's Do method. Any
179874// pending HTTP request will be aborted if the provided context is
179875// canceled.
179876func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
179877	c.ctx_ = ctx
179878	return c
179879}
179880
179881// Header returns an http.Header that can be modified by the caller to
179882// add HTTP headers to the request.
179883func (c *UrlMapsInsertCall) Header() http.Header {
179884	if c.header_ == nil {
179885		c.header_ = make(http.Header)
179886	}
179887	return c.header_
179888}
179889
179890func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
179891	reqHeaders := make(http.Header)
179892	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
179893	for k, v := range c.header_ {
179894		reqHeaders[k] = v
179895	}
179896	reqHeaders.Set("User-Agent", c.s.userAgent())
179897	var body io.Reader = nil
179898	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
179899	if err != nil {
179900		return nil, err
179901	}
179902	reqHeaders.Set("Content-Type", "application/json")
179903	c.urlParams_.Set("alt", alt)
179904	c.urlParams_.Set("prettyPrint", "false")
179905	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
179906	urls += "?" + c.urlParams_.Encode()
179907	req, err := http.NewRequest("POST", urls, body)
179908	if err != nil {
179909		return nil, err
179910	}
179911	req.Header = reqHeaders
179912	googleapi.Expand(req.URL, map[string]string{
179913		"project": c.project,
179914	})
179915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179916}
179917
179918// Do executes the "compute.urlMaps.insert" call.
179919// Exactly one of *Operation or error will be non-nil. Any non-2xx
179920// status code is an error. Response headers are in either
179921// *Operation.ServerResponse.Header or (if a response was returned at
179922// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
179923// to check whether the returned error was because
179924// http.StatusNotModified was returned.
179925func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
179926	gensupport.SetOptions(c.urlParams_, opts...)
179927	res, err := c.doRequest("json")
179928	if res != nil && res.StatusCode == http.StatusNotModified {
179929		if res.Body != nil {
179930			res.Body.Close()
179931		}
179932		return nil, &googleapi.Error{
179933			Code:   res.StatusCode,
179934			Header: res.Header,
179935		}
179936	}
179937	if err != nil {
179938		return nil, err
179939	}
179940	defer googleapi.CloseBody(res)
179941	if err := googleapi.CheckResponse(res); err != nil {
179942		return nil, err
179943	}
179944	ret := &Operation{
179945		ServerResponse: googleapi.ServerResponse{
179946			Header:         res.Header,
179947			HTTPStatusCode: res.StatusCode,
179948		},
179949	}
179950	target := &ret
179951	if err := gensupport.DecodeResponse(target, res); err != nil {
179952		return nil, err
179953	}
179954	return ret, nil
179955	// {
179956	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
179957	//   "httpMethod": "POST",
179958	//   "id": "compute.urlMaps.insert",
179959	//   "parameterOrder": [
179960	//     "project"
179961	//   ],
179962	//   "parameters": {
179963	//     "project": {
179964	//       "description": "Project ID for this request.",
179965	//       "location": "path",
179966	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179967	//       "required": true,
179968	//       "type": "string"
179969	//     },
179970	//     "requestId": {
179971	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
179972	//       "location": "query",
179973	//       "type": "string"
179974	//     }
179975	//   },
179976	//   "path": "projects/{project}/global/urlMaps",
179977	//   "request": {
179978	//     "$ref": "UrlMap"
179979	//   },
179980	//   "response": {
179981	//     "$ref": "Operation"
179982	//   },
179983	//   "scopes": [
179984	//     "https://www.googleapis.com/auth/cloud-platform",
179985	//     "https://www.googleapis.com/auth/compute"
179986	//   ]
179987	// }
179988
179989}
179990
179991// method id "compute.urlMaps.invalidateCache":
179992
179993type UrlMapsInvalidateCacheCall struct {
179994	s                     *Service
179995	project               string
179996	urlMap                string
179997	cacheinvalidationrule *CacheInvalidationRule
179998	urlParams_            gensupport.URLParams
179999	ctx_                  context.Context
180000	header_               http.Header
180001}
180002
180003// InvalidateCache: Initiates a cache invalidation operation,
180004// invalidating the specified path, scoped to the specified UrlMap.
180005//
180006// For more information, see Invalidating cached content
180007// (/cdn/docs/invalidating-cached-content).
180008//
180009// - project: Project ID for this request.
180010// - urlMap: Name of the UrlMap scoping this request.
180011func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
180012	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180013	c.project = project
180014	c.urlMap = urlMap
180015	c.cacheinvalidationrule = cacheinvalidationrule
180016	return c
180017}
180018
180019// RequestId sets the optional parameter "requestId": An optional
180020// request ID to identify requests. Specify a unique request ID so that
180021// if you must retry your request, the server will know to ignore the
180022// request if it has already been completed.
180023//
180024// For example, consider a situation where you make an initial request
180025// and the request times out. If you make the request again with the
180026// same request ID, the server can check if original operation with the
180027// same request ID was received, and if so, will ignore the second
180028// request. This prevents clients from accidentally creating duplicate
180029// commitments.
180030//
180031// The request ID must be a valid UUID with the exception that zero UUID
180032// is not supported (00000000-0000-0000-0000-000000000000).
180033func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
180034	c.urlParams_.Set("requestId", requestId)
180035	return c
180036}
180037
180038// Fields allows partial responses to be retrieved. See
180039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180040// for more information.
180041func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
180042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180043	return c
180044}
180045
180046// Context sets the context to be used in this call's Do method. Any
180047// pending HTTP request will be aborted if the provided context is
180048// canceled.
180049func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
180050	c.ctx_ = ctx
180051	return c
180052}
180053
180054// Header returns an http.Header that can be modified by the caller to
180055// add HTTP headers to the request.
180056func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
180057	if c.header_ == nil {
180058		c.header_ = make(http.Header)
180059	}
180060	return c.header_
180061}
180062
180063func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
180064	reqHeaders := make(http.Header)
180065	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
180066	for k, v := range c.header_ {
180067		reqHeaders[k] = v
180068	}
180069	reqHeaders.Set("User-Agent", c.s.userAgent())
180070	var body io.Reader = nil
180071	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
180072	if err != nil {
180073		return nil, err
180074	}
180075	reqHeaders.Set("Content-Type", "application/json")
180076	c.urlParams_.Set("alt", alt)
180077	c.urlParams_.Set("prettyPrint", "false")
180078	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/invalidateCache")
180079	urls += "?" + c.urlParams_.Encode()
180080	req, err := http.NewRequest("POST", urls, body)
180081	if err != nil {
180082		return nil, err
180083	}
180084	req.Header = reqHeaders
180085	googleapi.Expand(req.URL, map[string]string{
180086		"project": c.project,
180087		"urlMap":  c.urlMap,
180088	})
180089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180090}
180091
180092// Do executes the "compute.urlMaps.invalidateCache" call.
180093// Exactly one of *Operation or error will be non-nil. Any non-2xx
180094// status code is an error. Response headers are in either
180095// *Operation.ServerResponse.Header or (if a response was returned at
180096// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
180097// to check whether the returned error was because
180098// http.StatusNotModified was returned.
180099func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
180100	gensupport.SetOptions(c.urlParams_, opts...)
180101	res, err := c.doRequest("json")
180102	if res != nil && res.StatusCode == http.StatusNotModified {
180103		if res.Body != nil {
180104			res.Body.Close()
180105		}
180106		return nil, &googleapi.Error{
180107			Code:   res.StatusCode,
180108			Header: res.Header,
180109		}
180110	}
180111	if err != nil {
180112		return nil, err
180113	}
180114	defer googleapi.CloseBody(res)
180115	if err := googleapi.CheckResponse(res); err != nil {
180116		return nil, err
180117	}
180118	ret := &Operation{
180119		ServerResponse: googleapi.ServerResponse{
180120			Header:         res.Header,
180121			HTTPStatusCode: res.StatusCode,
180122		},
180123	}
180124	target := &ret
180125	if err := gensupport.DecodeResponse(target, res); err != nil {
180126		return nil, err
180127	}
180128	return ret, nil
180129	// {
180130	//   "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).",
180131	//   "httpMethod": "POST",
180132	//   "id": "compute.urlMaps.invalidateCache",
180133	//   "parameterOrder": [
180134	//     "project",
180135	//     "urlMap"
180136	//   ],
180137	//   "parameters": {
180138	//     "project": {
180139	//       "description": "Project ID for this request.",
180140	//       "location": "path",
180141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180142	//       "required": true,
180143	//       "type": "string"
180144	//     },
180145	//     "requestId": {
180146	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
180147	//       "location": "query",
180148	//       "type": "string"
180149	//     },
180150	//     "urlMap": {
180151	//       "description": "Name of the UrlMap scoping this request.",
180152	//       "location": "path",
180153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180154	//       "required": true,
180155	//       "type": "string"
180156	//     }
180157	//   },
180158	//   "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
180159	//   "request": {
180160	//     "$ref": "CacheInvalidationRule"
180161	//   },
180162	//   "response": {
180163	//     "$ref": "Operation"
180164	//   },
180165	//   "scopes": [
180166	//     "https://www.googleapis.com/auth/cloud-platform",
180167	//     "https://www.googleapis.com/auth/compute"
180168	//   ]
180169	// }
180170
180171}
180172
180173// method id "compute.urlMaps.list":
180174
180175type UrlMapsListCall struct {
180176	s            *Service
180177	project      string
180178	urlParams_   gensupport.URLParams
180179	ifNoneMatch_ string
180180	ctx_         context.Context
180181	header_      http.Header
180182}
180183
180184// List: Retrieves the list of UrlMap resources available to the
180185// specified project.
180186//
180187// - project: Project ID for this request.
180188// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
180189func (r *UrlMapsService) List(project string) *UrlMapsListCall {
180190	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180191	c.project = project
180192	return c
180193}
180194
180195// Filter sets the optional parameter "filter": A filter expression that
180196// filters resources listed in the response. The expression must specify
180197// the field name, a comparison operator, and the value that you want to
180198// use for filtering. The value must be a string, a number, or a
180199// boolean. The comparison operator must be either `=`, `!=`, `>`, or
180200// `<`.
180201//
180202// For example, if you are filtering Compute Engine instances, you can
180203// exclude instances named `example-instance` by specifying `name !=
180204// example-instance`.
180205//
180206// You can also filter nested fields. For example, you could specify
180207// `scheduling.automaticRestart = false` to include instances only if
180208// they are not scheduled for automatic restarts. You can use filtering
180209// on nested fields to filter based on resource labels.
180210//
180211// To filter on multiple expressions, provide each separate expression
180212// within parentheses. For example: ``` (scheduling.automaticRestart =
180213// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
180214// is an `AND` expression. However, you can include `AND` and `OR`
180215// expressions explicitly. For example: ``` (cpuPlatform = "Intel
180216// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
180217// (scheduling.automaticRestart = true) ```
180218func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
180219	c.urlParams_.Set("filter", filter)
180220	return c
180221}
180222
180223// MaxResults sets the optional parameter "maxResults": The maximum
180224// number of results per page that should be returned. If the number of
180225// available results is larger than `maxResults`, Compute Engine returns
180226// a `nextPageToken` that can be used to get the next page of results in
180227// subsequent list requests. Acceptable values are `0` to `500`,
180228// inclusive. (Default: `500`)
180229func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
180230	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
180231	return c
180232}
180233
180234// OrderBy sets the optional parameter "orderBy": Sorts list results by
180235// a certain order. By default, results are returned in alphanumerical
180236// order based on the resource name.
180237//
180238// You can also sort results in descending order based on the creation
180239// timestamp using `orderBy="creationTimestamp desc". This sorts
180240// results based on the `creationTimestamp` field in reverse
180241// chronological order (newest result first). Use this to sort resources
180242// like operations so that the newest operation is returned
180243// first.
180244//
180245// Currently, only sorting by `name` or `creationTimestamp desc` is
180246// supported.
180247func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
180248	c.urlParams_.Set("orderBy", orderBy)
180249	return c
180250}
180251
180252// PageToken sets the optional parameter "pageToken": Specifies a page
180253// token to use. Set `pageToken` to the `nextPageToken` returned by a
180254// previous list request to get the next page of results.
180255func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
180256	c.urlParams_.Set("pageToken", pageToken)
180257	return c
180258}
180259
180260// ReturnPartialSuccess sets the optional parameter
180261// "returnPartialSuccess": Opt-in for partial success behavior which
180262// provides partial results in case of failure. The default value is
180263// false.
180264func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsListCall {
180265	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
180266	return c
180267}
180268
180269// Fields allows partial responses to be retrieved. See
180270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180271// for more information.
180272func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
180273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180274	return c
180275}
180276
180277// IfNoneMatch sets the optional parameter which makes the operation
180278// fail if the object's ETag matches the given value. This is useful for
180279// getting updates only after the object has changed since the last
180280// request. Use googleapi.IsNotModified to check whether the response
180281// error from Do is the result of In-None-Match.
180282func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
180283	c.ifNoneMatch_ = entityTag
180284	return c
180285}
180286
180287// Context sets the context to be used in this call's Do method. Any
180288// pending HTTP request will be aborted if the provided context is
180289// canceled.
180290func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
180291	c.ctx_ = ctx
180292	return c
180293}
180294
180295// Header returns an http.Header that can be modified by the caller to
180296// add HTTP headers to the request.
180297func (c *UrlMapsListCall) Header() http.Header {
180298	if c.header_ == nil {
180299		c.header_ = make(http.Header)
180300	}
180301	return c.header_
180302}
180303
180304func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
180305	reqHeaders := make(http.Header)
180306	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
180307	for k, v := range c.header_ {
180308		reqHeaders[k] = v
180309	}
180310	reqHeaders.Set("User-Agent", c.s.userAgent())
180311	if c.ifNoneMatch_ != "" {
180312		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
180313	}
180314	var body io.Reader = nil
180315	c.urlParams_.Set("alt", alt)
180316	c.urlParams_.Set("prettyPrint", "false")
180317	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
180318	urls += "?" + c.urlParams_.Encode()
180319	req, err := http.NewRequest("GET", urls, body)
180320	if err != nil {
180321		return nil, err
180322	}
180323	req.Header = reqHeaders
180324	googleapi.Expand(req.URL, map[string]string{
180325		"project": c.project,
180326	})
180327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180328}
180329
180330// Do executes the "compute.urlMaps.list" call.
180331// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
180332// status code is an error. Response headers are in either
180333// *UrlMapList.ServerResponse.Header or (if a response was returned at
180334// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
180335// to check whether the returned error was because
180336// http.StatusNotModified was returned.
180337func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
180338	gensupport.SetOptions(c.urlParams_, opts...)
180339	res, err := c.doRequest("json")
180340	if res != nil && res.StatusCode == http.StatusNotModified {
180341		if res.Body != nil {
180342			res.Body.Close()
180343		}
180344		return nil, &googleapi.Error{
180345			Code:   res.StatusCode,
180346			Header: res.Header,
180347		}
180348	}
180349	if err != nil {
180350		return nil, err
180351	}
180352	defer googleapi.CloseBody(res)
180353	if err := googleapi.CheckResponse(res); err != nil {
180354		return nil, err
180355	}
180356	ret := &UrlMapList{
180357		ServerResponse: googleapi.ServerResponse{
180358			Header:         res.Header,
180359			HTTPStatusCode: res.StatusCode,
180360		},
180361	}
180362	target := &ret
180363	if err := gensupport.DecodeResponse(target, res); err != nil {
180364		return nil, err
180365	}
180366	return ret, nil
180367	// {
180368	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
180369	//   "httpMethod": "GET",
180370	//   "id": "compute.urlMaps.list",
180371	//   "parameterOrder": [
180372	//     "project"
180373	//   ],
180374	//   "parameters": {
180375	//     "filter": {
180376	//       "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) ```",
180377	//       "location": "query",
180378	//       "type": "string"
180379	//     },
180380	//     "maxResults": {
180381	//       "default": "500",
180382	//       "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`)",
180383	//       "format": "uint32",
180384	//       "location": "query",
180385	//       "minimum": "0",
180386	//       "type": "integer"
180387	//     },
180388	//     "orderBy": {
180389	//       "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.",
180390	//       "location": "query",
180391	//       "type": "string"
180392	//     },
180393	//     "pageToken": {
180394	//       "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.",
180395	//       "location": "query",
180396	//       "type": "string"
180397	//     },
180398	//     "project": {
180399	//       "description": "Project ID for this request.",
180400	//       "location": "path",
180401	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180402	//       "required": true,
180403	//       "type": "string"
180404	//     },
180405	//     "returnPartialSuccess": {
180406	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
180407	//       "location": "query",
180408	//       "type": "boolean"
180409	//     }
180410	//   },
180411	//   "path": "projects/{project}/global/urlMaps",
180412	//   "response": {
180413	//     "$ref": "UrlMapList"
180414	//   },
180415	//   "scopes": [
180416	//     "https://www.googleapis.com/auth/cloud-platform",
180417	//     "https://www.googleapis.com/auth/compute",
180418	//     "https://www.googleapis.com/auth/compute.readonly"
180419	//   ]
180420	// }
180421
180422}
180423
180424// Pages invokes f for each page of results.
180425// A non-nil error returned from f will halt the iteration.
180426// The provided context supersedes any context provided to the Context method.
180427func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
180428	c.ctx_ = ctx
180429	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
180430	for {
180431		x, err := c.Do()
180432		if err != nil {
180433			return err
180434		}
180435		if err := f(x); err != nil {
180436			return err
180437		}
180438		if x.NextPageToken == "" {
180439			return nil
180440		}
180441		c.PageToken(x.NextPageToken)
180442	}
180443}
180444
180445// method id "compute.urlMaps.patch":
180446
180447type UrlMapsPatchCall struct {
180448	s          *Service
180449	project    string
180450	urlMap     string
180451	urlmap     *UrlMap
180452	urlParams_ gensupport.URLParams
180453	ctx_       context.Context
180454	header_    http.Header
180455}
180456
180457// Patch: Patches the specified UrlMap resource with the data included
180458// in the request. This method supports PATCH semantics and uses the
180459// JSON merge patch format and processing rules.
180460//
180461// - project: Project ID for this request.
180462// - urlMap: Name of the UrlMap resource to patch.
180463// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
180464func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
180465	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180466	c.project = project
180467	c.urlMap = urlMap
180468	c.urlmap = urlmap
180469	return c
180470}
180471
180472// RequestId sets the optional parameter "requestId": An optional
180473// request ID to identify requests. Specify a unique request ID so that
180474// if you must retry your request, the server will know to ignore the
180475// request if it has already been completed.
180476//
180477// For example, consider a situation where you make an initial request
180478// and the request times out. If you make the request again with the
180479// same request ID, the server can check if original operation with the
180480// same request ID was received, and if so, will ignore the second
180481// request. This prevents clients from accidentally creating duplicate
180482// commitments.
180483//
180484// The request ID must be a valid UUID with the exception that zero UUID
180485// is not supported (00000000-0000-0000-0000-000000000000).
180486func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
180487	c.urlParams_.Set("requestId", requestId)
180488	return c
180489}
180490
180491// Fields allows partial responses to be retrieved. See
180492// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180493// for more information.
180494func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
180495	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180496	return c
180497}
180498
180499// Context sets the context to be used in this call's Do method. Any
180500// pending HTTP request will be aborted if the provided context is
180501// canceled.
180502func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
180503	c.ctx_ = ctx
180504	return c
180505}
180506
180507// Header returns an http.Header that can be modified by the caller to
180508// add HTTP headers to the request.
180509func (c *UrlMapsPatchCall) Header() http.Header {
180510	if c.header_ == nil {
180511		c.header_ = make(http.Header)
180512	}
180513	return c.header_
180514}
180515
180516func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
180517	reqHeaders := make(http.Header)
180518	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
180519	for k, v := range c.header_ {
180520		reqHeaders[k] = v
180521	}
180522	reqHeaders.Set("User-Agent", c.s.userAgent())
180523	var body io.Reader = nil
180524	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
180525	if err != nil {
180526		return nil, err
180527	}
180528	reqHeaders.Set("Content-Type", "application/json")
180529	c.urlParams_.Set("alt", alt)
180530	c.urlParams_.Set("prettyPrint", "false")
180531	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
180532	urls += "?" + c.urlParams_.Encode()
180533	req, err := http.NewRequest("PATCH", urls, body)
180534	if err != nil {
180535		return nil, err
180536	}
180537	req.Header = reqHeaders
180538	googleapi.Expand(req.URL, map[string]string{
180539		"project": c.project,
180540		"urlMap":  c.urlMap,
180541	})
180542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180543}
180544
180545// Do executes the "compute.urlMaps.patch" call.
180546// Exactly one of *Operation or error will be non-nil. Any non-2xx
180547// status code is an error. Response headers are in either
180548// *Operation.ServerResponse.Header or (if a response was returned at
180549// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
180550// to check whether the returned error was because
180551// http.StatusNotModified was returned.
180552func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
180553	gensupport.SetOptions(c.urlParams_, opts...)
180554	res, err := c.doRequest("json")
180555	if res != nil && res.StatusCode == http.StatusNotModified {
180556		if res.Body != nil {
180557			res.Body.Close()
180558		}
180559		return nil, &googleapi.Error{
180560			Code:   res.StatusCode,
180561			Header: res.Header,
180562		}
180563	}
180564	if err != nil {
180565		return nil, err
180566	}
180567	defer googleapi.CloseBody(res)
180568	if err := googleapi.CheckResponse(res); err != nil {
180569		return nil, err
180570	}
180571	ret := &Operation{
180572		ServerResponse: googleapi.ServerResponse{
180573			Header:         res.Header,
180574			HTTPStatusCode: res.StatusCode,
180575		},
180576	}
180577	target := &ret
180578	if err := gensupport.DecodeResponse(target, res); err != nil {
180579		return nil, err
180580	}
180581	return ret, nil
180582	// {
180583	//   "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.",
180584	//   "httpMethod": "PATCH",
180585	//   "id": "compute.urlMaps.patch",
180586	//   "parameterOrder": [
180587	//     "project",
180588	//     "urlMap"
180589	//   ],
180590	//   "parameters": {
180591	//     "project": {
180592	//       "description": "Project ID for this request.",
180593	//       "location": "path",
180594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180595	//       "required": true,
180596	//       "type": "string"
180597	//     },
180598	//     "requestId": {
180599	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
180600	//       "location": "query",
180601	//       "type": "string"
180602	//     },
180603	//     "urlMap": {
180604	//       "description": "Name of the UrlMap resource to patch.",
180605	//       "location": "path",
180606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180607	//       "required": true,
180608	//       "type": "string"
180609	//     }
180610	//   },
180611	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
180612	//   "request": {
180613	//     "$ref": "UrlMap"
180614	//   },
180615	//   "response": {
180616	//     "$ref": "Operation"
180617	//   },
180618	//   "scopes": [
180619	//     "https://www.googleapis.com/auth/cloud-platform",
180620	//     "https://www.googleapis.com/auth/compute"
180621	//   ]
180622	// }
180623
180624}
180625
180626// method id "compute.urlMaps.testIamPermissions":
180627
180628type UrlMapsTestIamPermissionsCall struct {
180629	s                      *Service
180630	project                string
180631	resource               string
180632	testpermissionsrequest *TestPermissionsRequest
180633	urlParams_             gensupport.URLParams
180634	ctx_                   context.Context
180635	header_                http.Header
180636}
180637
180638// TestIamPermissions: Returns permissions that a caller has on the
180639// specified resource.
180640//
180641// - project: Project ID for this request.
180642// - resource: Name or id of the resource for this request.
180643func (r *UrlMapsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *UrlMapsTestIamPermissionsCall {
180644	c := &UrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180645	c.project = project
180646	c.resource = resource
180647	c.testpermissionsrequest = testpermissionsrequest
180648	return c
180649}
180650
180651// Fields allows partial responses to be retrieved. See
180652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180653// for more information.
180654func (c *UrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *UrlMapsTestIamPermissionsCall {
180655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180656	return c
180657}
180658
180659// Context sets the context to be used in this call's Do method. Any
180660// pending HTTP request will be aborted if the provided context is
180661// canceled.
180662func (c *UrlMapsTestIamPermissionsCall) Context(ctx context.Context) *UrlMapsTestIamPermissionsCall {
180663	c.ctx_ = ctx
180664	return c
180665}
180666
180667// Header returns an http.Header that can be modified by the caller to
180668// add HTTP headers to the request.
180669func (c *UrlMapsTestIamPermissionsCall) Header() http.Header {
180670	if c.header_ == nil {
180671		c.header_ = make(http.Header)
180672	}
180673	return c.header_
180674}
180675
180676func (c *UrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
180677	reqHeaders := make(http.Header)
180678	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
180679	for k, v := range c.header_ {
180680		reqHeaders[k] = v
180681	}
180682	reqHeaders.Set("User-Agent", c.s.userAgent())
180683	var body io.Reader = nil
180684	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
180685	if err != nil {
180686		return nil, err
180687	}
180688	reqHeaders.Set("Content-Type", "application/json")
180689	c.urlParams_.Set("alt", alt)
180690	c.urlParams_.Set("prettyPrint", "false")
180691	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{resource}/testIamPermissions")
180692	urls += "?" + c.urlParams_.Encode()
180693	req, err := http.NewRequest("POST", urls, body)
180694	if err != nil {
180695		return nil, err
180696	}
180697	req.Header = reqHeaders
180698	googleapi.Expand(req.URL, map[string]string{
180699		"project":  c.project,
180700		"resource": c.resource,
180701	})
180702	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180703}
180704
180705// Do executes the "compute.urlMaps.testIamPermissions" call.
180706// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
180707// non-2xx status code is an error. Response headers are in either
180708// *TestPermissionsResponse.ServerResponse.Header or (if a response was
180709// returned at all) in error.(*googleapi.Error).Header. Use
180710// googleapi.IsNotModified to check whether the returned error was
180711// because http.StatusNotModified was returned.
180712func (c *UrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
180713	gensupport.SetOptions(c.urlParams_, opts...)
180714	res, err := c.doRequest("json")
180715	if res != nil && res.StatusCode == http.StatusNotModified {
180716		if res.Body != nil {
180717			res.Body.Close()
180718		}
180719		return nil, &googleapi.Error{
180720			Code:   res.StatusCode,
180721			Header: res.Header,
180722		}
180723	}
180724	if err != nil {
180725		return nil, err
180726	}
180727	defer googleapi.CloseBody(res)
180728	if err := googleapi.CheckResponse(res); err != nil {
180729		return nil, err
180730	}
180731	ret := &TestPermissionsResponse{
180732		ServerResponse: googleapi.ServerResponse{
180733			Header:         res.Header,
180734			HTTPStatusCode: res.StatusCode,
180735		},
180736	}
180737	target := &ret
180738	if err := gensupport.DecodeResponse(target, res); err != nil {
180739		return nil, err
180740	}
180741	return ret, nil
180742	// {
180743	//   "description": "Returns permissions that a caller has on the specified resource.",
180744	//   "httpMethod": "POST",
180745	//   "id": "compute.urlMaps.testIamPermissions",
180746	//   "parameterOrder": [
180747	//     "project",
180748	//     "resource"
180749	//   ],
180750	//   "parameters": {
180751	//     "project": {
180752	//       "description": "Project ID for this request.",
180753	//       "location": "path",
180754	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180755	//       "required": true,
180756	//       "type": "string"
180757	//     },
180758	//     "resource": {
180759	//       "description": "Name or id of the resource for this request.",
180760	//       "location": "path",
180761	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180762	//       "required": true,
180763	//       "type": "string"
180764	//     }
180765	//   },
180766	//   "path": "projects/{project}/global/urlMaps/{resource}/testIamPermissions",
180767	//   "request": {
180768	//     "$ref": "TestPermissionsRequest"
180769	//   },
180770	//   "response": {
180771	//     "$ref": "TestPermissionsResponse"
180772	//   },
180773	//   "scopes": [
180774	//     "https://www.googleapis.com/auth/cloud-platform",
180775	//     "https://www.googleapis.com/auth/compute",
180776	//     "https://www.googleapis.com/auth/compute.readonly"
180777	//   ]
180778	// }
180779
180780}
180781
180782// method id "compute.urlMaps.update":
180783
180784type UrlMapsUpdateCall struct {
180785	s          *Service
180786	project    string
180787	urlMap     string
180788	urlmap     *UrlMap
180789	urlParams_ gensupport.URLParams
180790	ctx_       context.Context
180791	header_    http.Header
180792}
180793
180794// Update: Updates the specified UrlMap resource with the data included
180795// in the request.
180796//
180797// - project: Project ID for this request.
180798// - urlMap: Name of the UrlMap resource to update.
180799// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
180800func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
180801	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180802	c.project = project
180803	c.urlMap = urlMap
180804	c.urlmap = urlmap
180805	return c
180806}
180807
180808// RequestId sets the optional parameter "requestId": An optional
180809// request ID to identify requests. Specify a unique request ID so that
180810// if you must retry your request, the server will know to ignore the
180811// request if it has already been completed.
180812//
180813// For example, consider a situation where you make an initial request
180814// and the request times out. If you make the request again with the
180815// same request ID, the server can check if original operation with the
180816// same request ID was received, and if so, will ignore the second
180817// request. This prevents clients from accidentally creating duplicate
180818// commitments.
180819//
180820// The request ID must be a valid UUID with the exception that zero UUID
180821// is not supported (00000000-0000-0000-0000-000000000000).
180822func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
180823	c.urlParams_.Set("requestId", requestId)
180824	return c
180825}
180826
180827// Fields allows partial responses to be retrieved. See
180828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180829// for more information.
180830func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
180831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180832	return c
180833}
180834
180835// Context sets the context to be used in this call's Do method. Any
180836// pending HTTP request will be aborted if the provided context is
180837// canceled.
180838func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
180839	c.ctx_ = ctx
180840	return c
180841}
180842
180843// Header returns an http.Header that can be modified by the caller to
180844// add HTTP headers to the request.
180845func (c *UrlMapsUpdateCall) Header() http.Header {
180846	if c.header_ == nil {
180847		c.header_ = make(http.Header)
180848	}
180849	return c.header_
180850}
180851
180852func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
180853	reqHeaders := make(http.Header)
180854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
180855	for k, v := range c.header_ {
180856		reqHeaders[k] = v
180857	}
180858	reqHeaders.Set("User-Agent", c.s.userAgent())
180859	var body io.Reader = nil
180860	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
180861	if err != nil {
180862		return nil, err
180863	}
180864	reqHeaders.Set("Content-Type", "application/json")
180865	c.urlParams_.Set("alt", alt)
180866	c.urlParams_.Set("prettyPrint", "false")
180867	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
180868	urls += "?" + c.urlParams_.Encode()
180869	req, err := http.NewRequest("PUT", urls, body)
180870	if err != nil {
180871		return nil, err
180872	}
180873	req.Header = reqHeaders
180874	googleapi.Expand(req.URL, map[string]string{
180875		"project": c.project,
180876		"urlMap":  c.urlMap,
180877	})
180878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180879}
180880
180881// Do executes the "compute.urlMaps.update" call.
180882// Exactly one of *Operation or error will be non-nil. Any non-2xx
180883// status code is an error. Response headers are in either
180884// *Operation.ServerResponse.Header or (if a response was returned at
180885// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
180886// to check whether the returned error was because
180887// http.StatusNotModified was returned.
180888func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
180889	gensupport.SetOptions(c.urlParams_, opts...)
180890	res, err := c.doRequest("json")
180891	if res != nil && res.StatusCode == http.StatusNotModified {
180892		if res.Body != nil {
180893			res.Body.Close()
180894		}
180895		return nil, &googleapi.Error{
180896			Code:   res.StatusCode,
180897			Header: res.Header,
180898		}
180899	}
180900	if err != nil {
180901		return nil, err
180902	}
180903	defer googleapi.CloseBody(res)
180904	if err := googleapi.CheckResponse(res); err != nil {
180905		return nil, err
180906	}
180907	ret := &Operation{
180908		ServerResponse: googleapi.ServerResponse{
180909			Header:         res.Header,
180910			HTTPStatusCode: res.StatusCode,
180911		},
180912	}
180913	target := &ret
180914	if err := gensupport.DecodeResponse(target, res); err != nil {
180915		return nil, err
180916	}
180917	return ret, nil
180918	// {
180919	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
180920	//   "httpMethod": "PUT",
180921	//   "id": "compute.urlMaps.update",
180922	//   "parameterOrder": [
180923	//     "project",
180924	//     "urlMap"
180925	//   ],
180926	//   "parameters": {
180927	//     "project": {
180928	//       "description": "Project ID for this request.",
180929	//       "location": "path",
180930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180931	//       "required": true,
180932	//       "type": "string"
180933	//     },
180934	//     "requestId": {
180935	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
180936	//       "location": "query",
180937	//       "type": "string"
180938	//     },
180939	//     "urlMap": {
180940	//       "description": "Name of the UrlMap resource to update.",
180941	//       "location": "path",
180942	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180943	//       "required": true,
180944	//       "type": "string"
180945	//     }
180946	//   },
180947	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
180948	//   "request": {
180949	//     "$ref": "UrlMap"
180950	//   },
180951	//   "response": {
180952	//     "$ref": "Operation"
180953	//   },
180954	//   "scopes": [
180955	//     "https://www.googleapis.com/auth/cloud-platform",
180956	//     "https://www.googleapis.com/auth/compute"
180957	//   ]
180958	// }
180959
180960}
180961
180962// method id "compute.urlMaps.validate":
180963
180964type UrlMapsValidateCall struct {
180965	s                      *Service
180966	project                string
180967	urlMap                 string
180968	urlmapsvalidaterequest *UrlMapsValidateRequest
180969	urlParams_             gensupport.URLParams
180970	ctx_                   context.Context
180971	header_                http.Header
180972}
180973
180974// Validate: Runs static validation for the UrlMap. In particular, the
180975// tests of the provided UrlMap will be run. Calling this method does
180976// NOT create the UrlMap.
180977//
180978// - project: Project ID for this request.
180979// - urlMap: Name of the UrlMap resource to be validated as.
180980// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
180981func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
180982	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180983	c.project = project
180984	c.urlMap = urlMap
180985	c.urlmapsvalidaterequest = urlmapsvalidaterequest
180986	return c
180987}
180988
180989// Fields allows partial responses to be retrieved. See
180990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180991// for more information.
180992func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
180993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180994	return c
180995}
180996
180997// Context sets the context to be used in this call's Do method. Any
180998// pending HTTP request will be aborted if the provided context is
180999// canceled.
181000func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
181001	c.ctx_ = ctx
181002	return c
181003}
181004
181005// Header returns an http.Header that can be modified by the caller to
181006// add HTTP headers to the request.
181007func (c *UrlMapsValidateCall) Header() http.Header {
181008	if c.header_ == nil {
181009		c.header_ = make(http.Header)
181010	}
181011	return c.header_
181012}
181013
181014func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
181015	reqHeaders := make(http.Header)
181016	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
181017	for k, v := range c.header_ {
181018		reqHeaders[k] = v
181019	}
181020	reqHeaders.Set("User-Agent", c.s.userAgent())
181021	var body io.Reader = nil
181022	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
181023	if err != nil {
181024		return nil, err
181025	}
181026	reqHeaders.Set("Content-Type", "application/json")
181027	c.urlParams_.Set("alt", alt)
181028	c.urlParams_.Set("prettyPrint", "false")
181029	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/validate")
181030	urls += "?" + c.urlParams_.Encode()
181031	req, err := http.NewRequest("POST", urls, body)
181032	if err != nil {
181033		return nil, err
181034	}
181035	req.Header = reqHeaders
181036	googleapi.Expand(req.URL, map[string]string{
181037		"project": c.project,
181038		"urlMap":  c.urlMap,
181039	})
181040	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181041}
181042
181043// Do executes the "compute.urlMaps.validate" call.
181044// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
181045// non-2xx status code is an error. Response headers are in either
181046// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
181047// returned at all) in error.(*googleapi.Error).Header. Use
181048// googleapi.IsNotModified to check whether the returned error was
181049// because http.StatusNotModified was returned.
181050func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
181051	gensupport.SetOptions(c.urlParams_, opts...)
181052	res, err := c.doRequest("json")
181053	if res != nil && res.StatusCode == http.StatusNotModified {
181054		if res.Body != nil {
181055			res.Body.Close()
181056		}
181057		return nil, &googleapi.Error{
181058			Code:   res.StatusCode,
181059			Header: res.Header,
181060		}
181061	}
181062	if err != nil {
181063		return nil, err
181064	}
181065	defer googleapi.CloseBody(res)
181066	if err := googleapi.CheckResponse(res); err != nil {
181067		return nil, err
181068	}
181069	ret := &UrlMapsValidateResponse{
181070		ServerResponse: googleapi.ServerResponse{
181071			Header:         res.Header,
181072			HTTPStatusCode: res.StatusCode,
181073		},
181074	}
181075	target := &ret
181076	if err := gensupport.DecodeResponse(target, res); err != nil {
181077		return nil, err
181078	}
181079	return ret, nil
181080	// {
181081	//   "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.",
181082	//   "httpMethod": "POST",
181083	//   "id": "compute.urlMaps.validate",
181084	//   "parameterOrder": [
181085	//     "project",
181086	//     "urlMap"
181087	//   ],
181088	//   "parameters": {
181089	//     "project": {
181090	//       "description": "Project ID for this request.",
181091	//       "location": "path",
181092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181093	//       "required": true,
181094	//       "type": "string"
181095	//     },
181096	//     "urlMap": {
181097	//       "description": "Name of the UrlMap resource to be validated as.",
181098	//       "location": "path",
181099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
181100	//       "required": true,
181101	//       "type": "string"
181102	//     }
181103	//   },
181104	//   "path": "projects/{project}/global/urlMaps/{urlMap}/validate",
181105	//   "request": {
181106	//     "$ref": "UrlMapsValidateRequest"
181107	//   },
181108	//   "response": {
181109	//     "$ref": "UrlMapsValidateResponse"
181110	//   },
181111	//   "scopes": [
181112	//     "https://www.googleapis.com/auth/cloud-platform",
181113	//     "https://www.googleapis.com/auth/compute"
181114	//   ]
181115	// }
181116
181117}
181118
181119// method id "compute.vpnGateways.aggregatedList":
181120
181121type VpnGatewaysAggregatedListCall struct {
181122	s            *Service
181123	project      string
181124	urlParams_   gensupport.URLParams
181125	ifNoneMatch_ string
181126	ctx_         context.Context
181127	header_      http.Header
181128}
181129
181130// AggregatedList: Retrieves an aggregated list of VPN gateways.
181131//
181132// - project: Project ID for this request.
181133func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
181134	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181135	c.project = project
181136	return c
181137}
181138
181139// Filter sets the optional parameter "filter": A filter expression that
181140// filters resources listed in the response. The expression must specify
181141// the field name, a comparison operator, and the value that you want to
181142// use for filtering. The value must be a string, a number, or a
181143// boolean. The comparison operator must be either `=`, `!=`, `>`, or
181144// `<`.
181145//
181146// For example, if you are filtering Compute Engine instances, you can
181147// exclude instances named `example-instance` by specifying `name !=
181148// example-instance`.
181149//
181150// You can also filter nested fields. For example, you could specify
181151// `scheduling.automaticRestart = false` to include instances only if
181152// they are not scheduled for automatic restarts. You can use filtering
181153// on nested fields to filter based on resource labels.
181154//
181155// To filter on multiple expressions, provide each separate expression
181156// within parentheses. For example: ``` (scheduling.automaticRestart =
181157// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
181158// is an `AND` expression. However, you can include `AND` and `OR`
181159// expressions explicitly. For example: ``` (cpuPlatform = "Intel
181160// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
181161// (scheduling.automaticRestart = true) ```
181162func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
181163	c.urlParams_.Set("filter", filter)
181164	return c
181165}
181166
181167// IncludeAllScopes sets the optional parameter "includeAllScopes":
181168// Indicates whether every visible scope for each scope type (zone,
181169// region, global) should be included in the response. For new resource
181170// types added after this field, the flag has no effect as new resource
181171// types will always include every visible scope for each scope type in
181172// response. For resource types which predate this field, if this flag
181173// is omitted or false, only scopes of the scope types where the
181174// resource type is expected to be found will be included.
181175func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
181176	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
181177	return c
181178}
181179
181180// MaxResults sets the optional parameter "maxResults": The maximum
181181// number of results per page that should be returned. If the number of
181182// available results is larger than `maxResults`, Compute Engine returns
181183// a `nextPageToken` that can be used to get the next page of results in
181184// subsequent list requests. Acceptable values are `0` to `500`,
181185// inclusive. (Default: `500`)
181186func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
181187	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
181188	return c
181189}
181190
181191// OrderBy sets the optional parameter "orderBy": Sorts list results by
181192// a certain order. By default, results are returned in alphanumerical
181193// order based on the resource name.
181194//
181195// You can also sort results in descending order based on the creation
181196// timestamp using `orderBy="creationTimestamp desc". This sorts
181197// results based on the `creationTimestamp` field in reverse
181198// chronological order (newest result first). Use this to sort resources
181199// like operations so that the newest operation is returned
181200// first.
181201//
181202// Currently, only sorting by `name` or `creationTimestamp desc` is
181203// supported.
181204func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
181205	c.urlParams_.Set("orderBy", orderBy)
181206	return c
181207}
181208
181209// PageToken sets the optional parameter "pageToken": Specifies a page
181210// token to use. Set `pageToken` to the `nextPageToken` returned by a
181211// previous list request to get the next page of results.
181212func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
181213	c.urlParams_.Set("pageToken", pageToken)
181214	return c
181215}
181216
181217// ReturnPartialSuccess sets the optional parameter
181218// "returnPartialSuccess": Opt-in for partial success behavior which
181219// provides partial results in case of failure. The default value is
181220// false.
181221func (c *VpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysAggregatedListCall {
181222	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
181223	return c
181224}
181225
181226// Fields allows partial responses to be retrieved. See
181227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181228// for more information.
181229func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
181230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181231	return c
181232}
181233
181234// IfNoneMatch sets the optional parameter which makes the operation
181235// fail if the object's ETag matches the given value. This is useful for
181236// getting updates only after the object has changed since the last
181237// request. Use googleapi.IsNotModified to check whether the response
181238// error from Do is the result of In-None-Match.
181239func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
181240	c.ifNoneMatch_ = entityTag
181241	return c
181242}
181243
181244// Context sets the context to be used in this call's Do method. Any
181245// pending HTTP request will be aborted if the provided context is
181246// canceled.
181247func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
181248	c.ctx_ = ctx
181249	return c
181250}
181251
181252// Header returns an http.Header that can be modified by the caller to
181253// add HTTP headers to the request.
181254func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
181255	if c.header_ == nil {
181256		c.header_ = make(http.Header)
181257	}
181258	return c.header_
181259}
181260
181261func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
181262	reqHeaders := make(http.Header)
181263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
181264	for k, v := range c.header_ {
181265		reqHeaders[k] = v
181266	}
181267	reqHeaders.Set("User-Agent", c.s.userAgent())
181268	if c.ifNoneMatch_ != "" {
181269		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
181270	}
181271	var body io.Reader = nil
181272	c.urlParams_.Set("alt", alt)
181273	c.urlParams_.Set("prettyPrint", "false")
181274	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnGateways")
181275	urls += "?" + c.urlParams_.Encode()
181276	req, err := http.NewRequest("GET", urls, body)
181277	if err != nil {
181278		return nil, err
181279	}
181280	req.Header = reqHeaders
181281	googleapi.Expand(req.URL, map[string]string{
181282		"project": c.project,
181283	})
181284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181285}
181286
181287// Do executes the "compute.vpnGateways.aggregatedList" call.
181288// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
181289// Any non-2xx status code is an error. Response headers are in either
181290// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
181291// returned at all) in error.(*googleapi.Error).Header. Use
181292// googleapi.IsNotModified to check whether the returned error was
181293// because http.StatusNotModified was returned.
181294func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
181295	gensupport.SetOptions(c.urlParams_, opts...)
181296	res, err := c.doRequest("json")
181297	if res != nil && res.StatusCode == http.StatusNotModified {
181298		if res.Body != nil {
181299			res.Body.Close()
181300		}
181301		return nil, &googleapi.Error{
181302			Code:   res.StatusCode,
181303			Header: res.Header,
181304		}
181305	}
181306	if err != nil {
181307		return nil, err
181308	}
181309	defer googleapi.CloseBody(res)
181310	if err := googleapi.CheckResponse(res); err != nil {
181311		return nil, err
181312	}
181313	ret := &VpnGatewayAggregatedList{
181314		ServerResponse: googleapi.ServerResponse{
181315			Header:         res.Header,
181316			HTTPStatusCode: res.StatusCode,
181317		},
181318	}
181319	target := &ret
181320	if err := gensupport.DecodeResponse(target, res); err != nil {
181321		return nil, err
181322	}
181323	return ret, nil
181324	// {
181325	//   "description": "Retrieves an aggregated list of VPN gateways.",
181326	//   "httpMethod": "GET",
181327	//   "id": "compute.vpnGateways.aggregatedList",
181328	//   "parameterOrder": [
181329	//     "project"
181330	//   ],
181331	//   "parameters": {
181332	//     "filter": {
181333	//       "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) ```",
181334	//       "location": "query",
181335	//       "type": "string"
181336	//     },
181337	//     "includeAllScopes": {
181338	//       "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.",
181339	//       "location": "query",
181340	//       "type": "boolean"
181341	//     },
181342	//     "maxResults": {
181343	//       "default": "500",
181344	//       "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`)",
181345	//       "format": "uint32",
181346	//       "location": "query",
181347	//       "minimum": "0",
181348	//       "type": "integer"
181349	//     },
181350	//     "orderBy": {
181351	//       "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.",
181352	//       "location": "query",
181353	//       "type": "string"
181354	//     },
181355	//     "pageToken": {
181356	//       "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.",
181357	//       "location": "query",
181358	//       "type": "string"
181359	//     },
181360	//     "project": {
181361	//       "description": "Project ID for this request.",
181362	//       "location": "path",
181363	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181364	//       "required": true,
181365	//       "type": "string"
181366	//     },
181367	//     "returnPartialSuccess": {
181368	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
181369	//       "location": "query",
181370	//       "type": "boolean"
181371	//     }
181372	//   },
181373	//   "path": "projects/{project}/aggregated/vpnGateways",
181374	//   "response": {
181375	//     "$ref": "VpnGatewayAggregatedList"
181376	//   },
181377	//   "scopes": [
181378	//     "https://www.googleapis.com/auth/cloud-platform",
181379	//     "https://www.googleapis.com/auth/compute",
181380	//     "https://www.googleapis.com/auth/compute.readonly"
181381	//   ]
181382	// }
181383
181384}
181385
181386// Pages invokes f for each page of results.
181387// A non-nil error returned from f will halt the iteration.
181388// The provided context supersedes any context provided to the Context method.
181389func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
181390	c.ctx_ = ctx
181391	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
181392	for {
181393		x, err := c.Do()
181394		if err != nil {
181395			return err
181396		}
181397		if err := f(x); err != nil {
181398			return err
181399		}
181400		if x.NextPageToken == "" {
181401			return nil
181402		}
181403		c.PageToken(x.NextPageToken)
181404	}
181405}
181406
181407// method id "compute.vpnGateways.delete":
181408
181409type VpnGatewaysDeleteCall struct {
181410	s          *Service
181411	project    string
181412	region     string
181413	vpnGateway string
181414	urlParams_ gensupport.URLParams
181415	ctx_       context.Context
181416	header_    http.Header
181417}
181418
181419// Delete: Deletes the specified VPN gateway.
181420//
181421// - project: Project ID for this request.
181422// - region: Name of the region for this request.
181423// - vpnGateway: Name of the VPN gateway to delete.
181424func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
181425	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181426	c.project = project
181427	c.region = region
181428	c.vpnGateway = vpnGateway
181429	return c
181430}
181431
181432// RequestId sets the optional parameter "requestId": An optional
181433// request ID to identify requests. Specify a unique request ID so that
181434// if you must retry your request, the server will know to ignore the
181435// request if it has already been completed.
181436//
181437// For example, consider a situation where you make an initial request
181438// and the request times out. If you make the request again with the
181439// same request ID, the server can check if original operation with the
181440// same request ID was received, and if so, will ignore the second
181441// request. This prevents clients from accidentally creating duplicate
181442// commitments.
181443//
181444// The request ID must be a valid UUID with the exception that zero UUID
181445// is not supported (00000000-0000-0000-0000-000000000000).
181446func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
181447	c.urlParams_.Set("requestId", requestId)
181448	return c
181449}
181450
181451// Fields allows partial responses to be retrieved. See
181452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181453// for more information.
181454func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
181455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181456	return c
181457}
181458
181459// Context sets the context to be used in this call's Do method. Any
181460// pending HTTP request will be aborted if the provided context is
181461// canceled.
181462func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
181463	c.ctx_ = ctx
181464	return c
181465}
181466
181467// Header returns an http.Header that can be modified by the caller to
181468// add HTTP headers to the request.
181469func (c *VpnGatewaysDeleteCall) Header() http.Header {
181470	if c.header_ == nil {
181471		c.header_ = make(http.Header)
181472	}
181473	return c.header_
181474}
181475
181476func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
181477	reqHeaders := make(http.Header)
181478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
181479	for k, v := range c.header_ {
181480		reqHeaders[k] = v
181481	}
181482	reqHeaders.Set("User-Agent", c.s.userAgent())
181483	var body io.Reader = nil
181484	c.urlParams_.Set("alt", alt)
181485	c.urlParams_.Set("prettyPrint", "false")
181486	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
181487	urls += "?" + c.urlParams_.Encode()
181488	req, err := http.NewRequest("DELETE", urls, body)
181489	if err != nil {
181490		return nil, err
181491	}
181492	req.Header = reqHeaders
181493	googleapi.Expand(req.URL, map[string]string{
181494		"project":    c.project,
181495		"region":     c.region,
181496		"vpnGateway": c.vpnGateway,
181497	})
181498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181499}
181500
181501// Do executes the "compute.vpnGateways.delete" call.
181502// Exactly one of *Operation or error will be non-nil. Any non-2xx
181503// status code is an error. Response headers are in either
181504// *Operation.ServerResponse.Header or (if a response was returned at
181505// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
181506// to check whether the returned error was because
181507// http.StatusNotModified was returned.
181508func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
181509	gensupport.SetOptions(c.urlParams_, opts...)
181510	res, err := c.doRequest("json")
181511	if res != nil && res.StatusCode == http.StatusNotModified {
181512		if res.Body != nil {
181513			res.Body.Close()
181514		}
181515		return nil, &googleapi.Error{
181516			Code:   res.StatusCode,
181517			Header: res.Header,
181518		}
181519	}
181520	if err != nil {
181521		return nil, err
181522	}
181523	defer googleapi.CloseBody(res)
181524	if err := googleapi.CheckResponse(res); err != nil {
181525		return nil, err
181526	}
181527	ret := &Operation{
181528		ServerResponse: googleapi.ServerResponse{
181529			Header:         res.Header,
181530			HTTPStatusCode: res.StatusCode,
181531		},
181532	}
181533	target := &ret
181534	if err := gensupport.DecodeResponse(target, res); err != nil {
181535		return nil, err
181536	}
181537	return ret, nil
181538	// {
181539	//   "description": "Deletes the specified VPN gateway.",
181540	//   "httpMethod": "DELETE",
181541	//   "id": "compute.vpnGateways.delete",
181542	//   "parameterOrder": [
181543	//     "project",
181544	//     "region",
181545	//     "vpnGateway"
181546	//   ],
181547	//   "parameters": {
181548	//     "project": {
181549	//       "description": "Project ID for this request.",
181550	//       "location": "path",
181551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181552	//       "required": true,
181553	//       "type": "string"
181554	//     },
181555	//     "region": {
181556	//       "description": "Name of the region for this request.",
181557	//       "location": "path",
181558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
181559	//       "required": true,
181560	//       "type": "string"
181561	//     },
181562	//     "requestId": {
181563	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
181564	//       "location": "query",
181565	//       "type": "string"
181566	//     },
181567	//     "vpnGateway": {
181568	//       "description": "Name of the VPN gateway to delete.",
181569	//       "location": "path",
181570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
181571	//       "required": true,
181572	//       "type": "string"
181573	//     }
181574	//   },
181575	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
181576	//   "response": {
181577	//     "$ref": "Operation"
181578	//   },
181579	//   "scopes": [
181580	//     "https://www.googleapis.com/auth/cloud-platform",
181581	//     "https://www.googleapis.com/auth/compute"
181582	//   ]
181583	// }
181584
181585}
181586
181587// method id "compute.vpnGateways.get":
181588
181589type VpnGatewaysGetCall struct {
181590	s            *Service
181591	project      string
181592	region       string
181593	vpnGateway   string
181594	urlParams_   gensupport.URLParams
181595	ifNoneMatch_ string
181596	ctx_         context.Context
181597	header_      http.Header
181598}
181599
181600// Get: Returns the specified VPN gateway. Gets a list of available VPN
181601// gateways by making a list() request.
181602//
181603// - project: Project ID for this request.
181604// - region: Name of the region for this request.
181605// - vpnGateway: Name of the VPN gateway to return.
181606func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
181607	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181608	c.project = project
181609	c.region = region
181610	c.vpnGateway = vpnGateway
181611	return c
181612}
181613
181614// Fields allows partial responses to be retrieved. See
181615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181616// for more information.
181617func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
181618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181619	return c
181620}
181621
181622// IfNoneMatch sets the optional parameter which makes the operation
181623// fail if the object's ETag matches the given value. This is useful for
181624// getting updates only after the object has changed since the last
181625// request. Use googleapi.IsNotModified to check whether the response
181626// error from Do is the result of In-None-Match.
181627func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
181628	c.ifNoneMatch_ = entityTag
181629	return c
181630}
181631
181632// Context sets the context to be used in this call's Do method. Any
181633// pending HTTP request will be aborted if the provided context is
181634// canceled.
181635func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
181636	c.ctx_ = ctx
181637	return c
181638}
181639
181640// Header returns an http.Header that can be modified by the caller to
181641// add HTTP headers to the request.
181642func (c *VpnGatewaysGetCall) Header() http.Header {
181643	if c.header_ == nil {
181644		c.header_ = make(http.Header)
181645	}
181646	return c.header_
181647}
181648
181649func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
181650	reqHeaders := make(http.Header)
181651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
181652	for k, v := range c.header_ {
181653		reqHeaders[k] = v
181654	}
181655	reqHeaders.Set("User-Agent", c.s.userAgent())
181656	if c.ifNoneMatch_ != "" {
181657		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
181658	}
181659	var body io.Reader = nil
181660	c.urlParams_.Set("alt", alt)
181661	c.urlParams_.Set("prettyPrint", "false")
181662	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
181663	urls += "?" + c.urlParams_.Encode()
181664	req, err := http.NewRequest("GET", urls, body)
181665	if err != nil {
181666		return nil, err
181667	}
181668	req.Header = reqHeaders
181669	googleapi.Expand(req.URL, map[string]string{
181670		"project":    c.project,
181671		"region":     c.region,
181672		"vpnGateway": c.vpnGateway,
181673	})
181674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181675}
181676
181677// Do executes the "compute.vpnGateways.get" call.
181678// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
181679// status code is an error. Response headers are in either
181680// *VpnGateway.ServerResponse.Header or (if a response was returned at
181681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
181682// to check whether the returned error was because
181683// http.StatusNotModified was returned.
181684func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
181685	gensupport.SetOptions(c.urlParams_, opts...)
181686	res, err := c.doRequest("json")
181687	if res != nil && res.StatusCode == http.StatusNotModified {
181688		if res.Body != nil {
181689			res.Body.Close()
181690		}
181691		return nil, &googleapi.Error{
181692			Code:   res.StatusCode,
181693			Header: res.Header,
181694		}
181695	}
181696	if err != nil {
181697		return nil, err
181698	}
181699	defer googleapi.CloseBody(res)
181700	if err := googleapi.CheckResponse(res); err != nil {
181701		return nil, err
181702	}
181703	ret := &VpnGateway{
181704		ServerResponse: googleapi.ServerResponse{
181705			Header:         res.Header,
181706			HTTPStatusCode: res.StatusCode,
181707		},
181708	}
181709	target := &ret
181710	if err := gensupport.DecodeResponse(target, res); err != nil {
181711		return nil, err
181712	}
181713	return ret, nil
181714	// {
181715	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
181716	//   "httpMethod": "GET",
181717	//   "id": "compute.vpnGateways.get",
181718	//   "parameterOrder": [
181719	//     "project",
181720	//     "region",
181721	//     "vpnGateway"
181722	//   ],
181723	//   "parameters": {
181724	//     "project": {
181725	//       "description": "Project ID for this request.",
181726	//       "location": "path",
181727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181728	//       "required": true,
181729	//       "type": "string"
181730	//     },
181731	//     "region": {
181732	//       "description": "Name of the region for this request.",
181733	//       "location": "path",
181734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
181735	//       "required": true,
181736	//       "type": "string"
181737	//     },
181738	//     "vpnGateway": {
181739	//       "description": "Name of the VPN gateway to return.",
181740	//       "location": "path",
181741	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
181742	//       "required": true,
181743	//       "type": "string"
181744	//     }
181745	//   },
181746	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
181747	//   "response": {
181748	//     "$ref": "VpnGateway"
181749	//   },
181750	//   "scopes": [
181751	//     "https://www.googleapis.com/auth/cloud-platform",
181752	//     "https://www.googleapis.com/auth/compute",
181753	//     "https://www.googleapis.com/auth/compute.readonly"
181754	//   ]
181755	// }
181756
181757}
181758
181759// method id "compute.vpnGateways.getStatus":
181760
181761type VpnGatewaysGetStatusCall struct {
181762	s            *Service
181763	project      string
181764	region       string
181765	vpnGateway   string
181766	urlParams_   gensupport.URLParams
181767	ifNoneMatch_ string
181768	ctx_         context.Context
181769	header_      http.Header
181770}
181771
181772// GetStatus: Returns the status for the specified VPN gateway.
181773//
181774// - project: Project ID for this request.
181775// - region: Name of the region for this request.
181776// - vpnGateway: Name of the VPN gateway to return.
181777func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
181778	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181779	c.project = project
181780	c.region = region
181781	c.vpnGateway = vpnGateway
181782	return c
181783}
181784
181785// Fields allows partial responses to be retrieved. See
181786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181787// for more information.
181788func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
181789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181790	return c
181791}
181792
181793// IfNoneMatch sets the optional parameter which makes the operation
181794// fail if the object's ETag matches the given value. This is useful for
181795// getting updates only after the object has changed since the last
181796// request. Use googleapi.IsNotModified to check whether the response
181797// error from Do is the result of In-None-Match.
181798func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
181799	c.ifNoneMatch_ = entityTag
181800	return c
181801}
181802
181803// Context sets the context to be used in this call's Do method. Any
181804// pending HTTP request will be aborted if the provided context is
181805// canceled.
181806func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
181807	c.ctx_ = ctx
181808	return c
181809}
181810
181811// Header returns an http.Header that can be modified by the caller to
181812// add HTTP headers to the request.
181813func (c *VpnGatewaysGetStatusCall) Header() http.Header {
181814	if c.header_ == nil {
181815		c.header_ = make(http.Header)
181816	}
181817	return c.header_
181818}
181819
181820func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
181821	reqHeaders := make(http.Header)
181822	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
181823	for k, v := range c.header_ {
181824		reqHeaders[k] = v
181825	}
181826	reqHeaders.Set("User-Agent", c.s.userAgent())
181827	if c.ifNoneMatch_ != "" {
181828		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
181829	}
181830	var body io.Reader = nil
181831	c.urlParams_.Set("alt", alt)
181832	c.urlParams_.Set("prettyPrint", "false")
181833	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
181834	urls += "?" + c.urlParams_.Encode()
181835	req, err := http.NewRequest("GET", urls, body)
181836	if err != nil {
181837		return nil, err
181838	}
181839	req.Header = reqHeaders
181840	googleapi.Expand(req.URL, map[string]string{
181841		"project":    c.project,
181842		"region":     c.region,
181843		"vpnGateway": c.vpnGateway,
181844	})
181845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181846}
181847
181848// Do executes the "compute.vpnGateways.getStatus" call.
181849// Exactly one of *VpnGatewaysGetStatusResponse or error will be
181850// non-nil. Any non-2xx status code is an error. Response headers are in
181851// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
181852// response was returned at all) in error.(*googleapi.Error).Header. Use
181853// googleapi.IsNotModified to check whether the returned error was
181854// because http.StatusNotModified was returned.
181855func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
181856	gensupport.SetOptions(c.urlParams_, opts...)
181857	res, err := c.doRequest("json")
181858	if res != nil && res.StatusCode == http.StatusNotModified {
181859		if res.Body != nil {
181860			res.Body.Close()
181861		}
181862		return nil, &googleapi.Error{
181863			Code:   res.StatusCode,
181864			Header: res.Header,
181865		}
181866	}
181867	if err != nil {
181868		return nil, err
181869	}
181870	defer googleapi.CloseBody(res)
181871	if err := googleapi.CheckResponse(res); err != nil {
181872		return nil, err
181873	}
181874	ret := &VpnGatewaysGetStatusResponse{
181875		ServerResponse: googleapi.ServerResponse{
181876			Header:         res.Header,
181877			HTTPStatusCode: res.StatusCode,
181878		},
181879	}
181880	target := &ret
181881	if err := gensupport.DecodeResponse(target, res); err != nil {
181882		return nil, err
181883	}
181884	return ret, nil
181885	// {
181886	//   "description": "Returns the status for the specified VPN gateway.",
181887	//   "httpMethod": "GET",
181888	//   "id": "compute.vpnGateways.getStatus",
181889	//   "parameterOrder": [
181890	//     "project",
181891	//     "region",
181892	//     "vpnGateway"
181893	//   ],
181894	//   "parameters": {
181895	//     "project": {
181896	//       "description": "Project ID for this request.",
181897	//       "location": "path",
181898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181899	//       "required": true,
181900	//       "type": "string"
181901	//     },
181902	//     "region": {
181903	//       "description": "Name of the region for this request.",
181904	//       "location": "path",
181905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
181906	//       "required": true,
181907	//       "type": "string"
181908	//     },
181909	//     "vpnGateway": {
181910	//       "description": "Name of the VPN gateway to return.",
181911	//       "location": "path",
181912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
181913	//       "required": true,
181914	//       "type": "string"
181915	//     }
181916	//   },
181917	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
181918	//   "response": {
181919	//     "$ref": "VpnGatewaysGetStatusResponse"
181920	//   },
181921	//   "scopes": [
181922	//     "https://www.googleapis.com/auth/cloud-platform",
181923	//     "https://www.googleapis.com/auth/compute",
181924	//     "https://www.googleapis.com/auth/compute.readonly"
181925	//   ]
181926	// }
181927
181928}
181929
181930// method id "compute.vpnGateways.insert":
181931
181932type VpnGatewaysInsertCall struct {
181933	s          *Service
181934	project    string
181935	region     string
181936	vpngateway *VpnGateway
181937	urlParams_ gensupport.URLParams
181938	ctx_       context.Context
181939	header_    http.Header
181940}
181941
181942// Insert: Creates a VPN gateway in the specified project and region
181943// using the data included in the request.
181944//
181945// - project: Project ID for this request.
181946// - region: Name of the region for this request.
181947func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
181948	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181949	c.project = project
181950	c.region = region
181951	c.vpngateway = vpngateway
181952	return c
181953}
181954
181955// RequestId sets the optional parameter "requestId": An optional
181956// request ID to identify requests. Specify a unique request ID so that
181957// if you must retry your request, the server will know to ignore the
181958// request if it has already been completed.
181959//
181960// For example, consider a situation where you make an initial request
181961// and the request times out. If you make the request again with the
181962// same request ID, the server can check if original operation with the
181963// same request ID was received, and if so, will ignore the second
181964// request. This prevents clients from accidentally creating duplicate
181965// commitments.
181966//
181967// The request ID must be a valid UUID with the exception that zero UUID
181968// is not supported (00000000-0000-0000-0000-000000000000).
181969func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
181970	c.urlParams_.Set("requestId", requestId)
181971	return c
181972}
181973
181974// Fields allows partial responses to be retrieved. See
181975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181976// for more information.
181977func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
181978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181979	return c
181980}
181981
181982// Context sets the context to be used in this call's Do method. Any
181983// pending HTTP request will be aborted if the provided context is
181984// canceled.
181985func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
181986	c.ctx_ = ctx
181987	return c
181988}
181989
181990// Header returns an http.Header that can be modified by the caller to
181991// add HTTP headers to the request.
181992func (c *VpnGatewaysInsertCall) Header() http.Header {
181993	if c.header_ == nil {
181994		c.header_ = make(http.Header)
181995	}
181996	return c.header_
181997}
181998
181999func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
182000	reqHeaders := make(http.Header)
182001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
182002	for k, v := range c.header_ {
182003		reqHeaders[k] = v
182004	}
182005	reqHeaders.Set("User-Agent", c.s.userAgent())
182006	var body io.Reader = nil
182007	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
182008	if err != nil {
182009		return nil, err
182010	}
182011	reqHeaders.Set("Content-Type", "application/json")
182012	c.urlParams_.Set("alt", alt)
182013	c.urlParams_.Set("prettyPrint", "false")
182014	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
182015	urls += "?" + c.urlParams_.Encode()
182016	req, err := http.NewRequest("POST", urls, body)
182017	if err != nil {
182018		return nil, err
182019	}
182020	req.Header = reqHeaders
182021	googleapi.Expand(req.URL, map[string]string{
182022		"project": c.project,
182023		"region":  c.region,
182024	})
182025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
182026}
182027
182028// Do executes the "compute.vpnGateways.insert" call.
182029// Exactly one of *Operation or error will be non-nil. Any non-2xx
182030// status code is an error. Response headers are in either
182031// *Operation.ServerResponse.Header or (if a response was returned at
182032// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
182033// to check whether the returned error was because
182034// http.StatusNotModified was returned.
182035func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
182036	gensupport.SetOptions(c.urlParams_, opts...)
182037	res, err := c.doRequest("json")
182038	if res != nil && res.StatusCode == http.StatusNotModified {
182039		if res.Body != nil {
182040			res.Body.Close()
182041		}
182042		return nil, &googleapi.Error{
182043			Code:   res.StatusCode,
182044			Header: res.Header,
182045		}
182046	}
182047	if err != nil {
182048		return nil, err
182049	}
182050	defer googleapi.CloseBody(res)
182051	if err := googleapi.CheckResponse(res); err != nil {
182052		return nil, err
182053	}
182054	ret := &Operation{
182055		ServerResponse: googleapi.ServerResponse{
182056			Header:         res.Header,
182057			HTTPStatusCode: res.StatusCode,
182058		},
182059	}
182060	target := &ret
182061	if err := gensupport.DecodeResponse(target, res); err != nil {
182062		return nil, err
182063	}
182064	return ret, nil
182065	// {
182066	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
182067	//   "httpMethod": "POST",
182068	//   "id": "compute.vpnGateways.insert",
182069	//   "parameterOrder": [
182070	//     "project",
182071	//     "region"
182072	//   ],
182073	//   "parameters": {
182074	//     "project": {
182075	//       "description": "Project ID for this request.",
182076	//       "location": "path",
182077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
182078	//       "required": true,
182079	//       "type": "string"
182080	//     },
182081	//     "region": {
182082	//       "description": "Name of the region for this request.",
182083	//       "location": "path",
182084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
182085	//       "required": true,
182086	//       "type": "string"
182087	//     },
182088	//     "requestId": {
182089	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
182090	//       "location": "query",
182091	//       "type": "string"
182092	//     }
182093	//   },
182094	//   "path": "projects/{project}/regions/{region}/vpnGateways",
182095	//   "request": {
182096	//     "$ref": "VpnGateway"
182097	//   },
182098	//   "response": {
182099	//     "$ref": "Operation"
182100	//   },
182101	//   "scopes": [
182102	//     "https://www.googleapis.com/auth/cloud-platform",
182103	//     "https://www.googleapis.com/auth/compute"
182104	//   ]
182105	// }
182106
182107}
182108
182109// method id "compute.vpnGateways.list":
182110
182111type VpnGatewaysListCall struct {
182112	s            *Service
182113	project      string
182114	region       string
182115	urlParams_   gensupport.URLParams
182116	ifNoneMatch_ string
182117	ctx_         context.Context
182118	header_      http.Header
182119}
182120
182121// List: Retrieves a list of VPN gateways available to the specified
182122// project and region.
182123//
182124// - project: Project ID for this request.
182125// - region: Name of the region for this request.
182126func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
182127	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
182128	c.project = project
182129	c.region = region
182130	return c
182131}
182132
182133// Filter sets the optional parameter "filter": A filter expression that
182134// filters resources listed in the response. The expression must specify
182135// the field name, a comparison operator, and the value that you want to
182136// use for filtering. The value must be a string, a number, or a
182137// boolean. The comparison operator must be either `=`, `!=`, `>`, or
182138// `<`.
182139//
182140// For example, if you are filtering Compute Engine instances, you can
182141// exclude instances named `example-instance` by specifying `name !=
182142// example-instance`.
182143//
182144// You can also filter nested fields. For example, you could specify
182145// `scheduling.automaticRestart = false` to include instances only if
182146// they are not scheduled for automatic restarts. You can use filtering
182147// on nested fields to filter based on resource labels.
182148//
182149// To filter on multiple expressions, provide each separate expression
182150// within parentheses. For example: ``` (scheduling.automaticRestart =
182151// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
182152// is an `AND` expression. However, you can include `AND` and `OR`
182153// expressions explicitly. For example: ``` (cpuPlatform = "Intel
182154// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
182155// (scheduling.automaticRestart = true) ```
182156func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
182157	c.urlParams_.Set("filter", filter)
182158	return c
182159}
182160
182161// MaxResults sets the optional parameter "maxResults": The maximum
182162// number of results per page that should be returned. If the number of
182163// available results is larger than `maxResults`, Compute Engine returns
182164// a `nextPageToken` that can be used to get the next page of results in
182165// subsequent list requests. Acceptable values are `0` to `500`,
182166// inclusive. (Default: `500`)
182167func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
182168	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
182169	return c
182170}
182171
182172// OrderBy sets the optional parameter "orderBy": Sorts list results by
182173// a certain order. By default, results are returned in alphanumerical
182174// order based on the resource name.
182175//
182176// You can also sort results in descending order based on the creation
182177// timestamp using `orderBy="creationTimestamp desc". This sorts
182178// results based on the `creationTimestamp` field in reverse
182179// chronological order (newest result first). Use this to sort resources
182180// like operations so that the newest operation is returned
182181// first.
182182//
182183// Currently, only sorting by `name` or `creationTimestamp desc` is
182184// supported.
182185func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
182186	c.urlParams_.Set("orderBy", orderBy)
182187	return c
182188}
182189
182190// PageToken sets the optional parameter "pageToken": Specifies a page
182191// token to use. Set `pageToken` to the `nextPageToken` returned by a
182192// previous list request to get the next page of results.
182193func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
182194	c.urlParams_.Set("pageToken", pageToken)
182195	return c
182196}
182197
182198// ReturnPartialSuccess sets the optional parameter
182199// "returnPartialSuccess": Opt-in for partial success behavior which
182200// provides partial results in case of failure. The default value is
182201// false.
182202func (c *VpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysListCall {
182203	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
182204	return c
182205}
182206
182207// Fields allows partial responses to be retrieved. See
182208// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
182209// for more information.
182210func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
182211	c.urlParams_.Set("fields", googleapi.CombineFields(s))
182212	return c
182213}
182214
182215// IfNoneMatch sets the optional parameter which makes the operation
182216// fail if the object's ETag matches the given value. This is useful for
182217// getting updates only after the object has changed since the last
182218// request. Use googleapi.IsNotModified to check whether the response
182219// error from Do is the result of In-None-Match.
182220func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
182221	c.ifNoneMatch_ = entityTag
182222	return c
182223}
182224
182225// Context sets the context to be used in this call's Do method. Any
182226// pending HTTP request will be aborted if the provided context is
182227// canceled.
182228func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
182229	c.ctx_ = ctx
182230	return c
182231}
182232
182233// Header returns an http.Header that can be modified by the caller to
182234// add HTTP headers to the request.
182235func (c *VpnGatewaysListCall) Header() http.Header {
182236	if c.header_ == nil {
182237		c.header_ = make(http.Header)
182238	}
182239	return c.header_
182240}
182241
182242func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
182243	reqHeaders := make(http.Header)
182244	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
182245	for k, v := range c.header_ {
182246		reqHeaders[k] = v
182247	}
182248	reqHeaders.Set("User-Agent", c.s.userAgent())
182249	if c.ifNoneMatch_ != "" {
182250		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
182251	}
182252	var body io.Reader = nil
182253	c.urlParams_.Set("alt", alt)
182254	c.urlParams_.Set("prettyPrint", "false")
182255	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
182256	urls += "?" + c.urlParams_.Encode()
182257	req, err := http.NewRequest("GET", urls, body)
182258	if err != nil {
182259		return nil, err
182260	}
182261	req.Header = reqHeaders
182262	googleapi.Expand(req.URL, map[string]string{
182263		"project": c.project,
182264		"region":  c.region,
182265	})
182266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
182267}
182268
182269// Do executes the "compute.vpnGateways.list" call.
182270// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
182271// status code is an error. Response headers are in either
182272// *VpnGatewayList.ServerResponse.Header or (if a response was returned
182273// at all) in error.(*googleapi.Error).Header. Use
182274// googleapi.IsNotModified to check whether the returned error was
182275// because http.StatusNotModified was returned.
182276func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
182277	gensupport.SetOptions(c.urlParams_, opts...)
182278	res, err := c.doRequest("json")
182279	if res != nil && res.StatusCode == http.StatusNotModified {
182280		if res.Body != nil {
182281			res.Body.Close()
182282		}
182283		return nil, &googleapi.Error{
182284			Code:   res.StatusCode,
182285			Header: res.Header,
182286		}
182287	}
182288	if err != nil {
182289		return nil, err
182290	}
182291	defer googleapi.CloseBody(res)
182292	if err := googleapi.CheckResponse(res); err != nil {
182293		return nil, err
182294	}
182295	ret := &VpnGatewayList{
182296		ServerResponse: googleapi.ServerResponse{
182297			Header:         res.Header,
182298			HTTPStatusCode: res.StatusCode,
182299		},
182300	}
182301	target := &ret
182302	if err := gensupport.DecodeResponse(target, res); err != nil {
182303		return nil, err
182304	}
182305	return ret, nil
182306	// {
182307	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
182308	//   "httpMethod": "GET",
182309	//   "id": "compute.vpnGateways.list",
182310	//   "parameterOrder": [
182311	//     "project",
182312	//     "region"
182313	//   ],
182314	//   "parameters": {
182315	//     "filter": {
182316	//       "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) ```",
182317	//       "location": "query",
182318	//       "type": "string"
182319	//     },
182320	//     "maxResults": {
182321	//       "default": "500",
182322	//       "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`)",
182323	//       "format": "uint32",
182324	//       "location": "query",
182325	//       "minimum": "0",
182326	//       "type": "integer"
182327	//     },
182328	//     "orderBy": {
182329	//       "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.",
182330	//       "location": "query",
182331	//       "type": "string"
182332	//     },
182333	//     "pageToken": {
182334	//       "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.",
182335	//       "location": "query",
182336	//       "type": "string"
182337	//     },
182338	//     "project": {
182339	//       "description": "Project ID for this request.",
182340	//       "location": "path",
182341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
182342	//       "required": true,
182343	//       "type": "string"
182344	//     },
182345	//     "region": {
182346	//       "description": "Name of the region for this request.",
182347	//       "location": "path",
182348	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
182349	//       "required": true,
182350	//       "type": "string"
182351	//     },
182352	//     "returnPartialSuccess": {
182353	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
182354	//       "location": "query",
182355	//       "type": "boolean"
182356	//     }
182357	//   },
182358	//   "path": "projects/{project}/regions/{region}/vpnGateways",
182359	//   "response": {
182360	//     "$ref": "VpnGatewayList"
182361	//   },
182362	//   "scopes": [
182363	//     "https://www.googleapis.com/auth/cloud-platform",
182364	//     "https://www.googleapis.com/auth/compute",
182365	//     "https://www.googleapis.com/auth/compute.readonly"
182366	//   ]
182367	// }
182368
182369}
182370
182371// Pages invokes f for each page of results.
182372// A non-nil error returned from f will halt the iteration.
182373// The provided context supersedes any context provided to the Context method.
182374func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
182375	c.ctx_ = ctx
182376	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
182377	for {
182378		x, err := c.Do()
182379		if err != nil {
182380			return err
182381		}
182382		if err := f(x); err != nil {
182383			return err
182384		}
182385		if x.NextPageToken == "" {
182386			return nil
182387		}
182388		c.PageToken(x.NextPageToken)
182389	}
182390}
182391
182392// method id "compute.vpnGateways.setLabels":
182393
182394type VpnGatewaysSetLabelsCall struct {
182395	s                      *Service
182396	project                string
182397	region                 string
182398	resource               string
182399	regionsetlabelsrequest *RegionSetLabelsRequest
182400	urlParams_             gensupport.URLParams
182401	ctx_                   context.Context
182402	header_                http.Header
182403}
182404
182405// SetLabels: Sets the labels on a VpnGateway. To learn more about
182406// labels, read the Labeling Resources documentation.
182407//
182408// - project: Project ID for this request.
182409// - region: The region for this request.
182410// - resource: Name or id of the resource for this request.
182411func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
182412	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
182413	c.project = project
182414	c.region = region
182415	c.resource = resource
182416	c.regionsetlabelsrequest = regionsetlabelsrequest
182417	return c
182418}
182419
182420// RequestId sets the optional parameter "requestId": An optional
182421// request ID to identify requests. Specify a unique request ID so that
182422// if you must retry your request, the server will know to ignore the
182423// request if it has already been completed.
182424//
182425// For example, consider a situation where you make an initial request
182426// and the request times out. If you make the request again with the
182427// same request ID, the server can check if original operation with the
182428// same request ID was received, and if so, will ignore the second
182429// request. This prevents clients from accidentally creating duplicate
182430// commitments.
182431//
182432// The request ID must be a valid UUID with the exception that zero UUID
182433// is not supported (00000000-0000-0000-0000-000000000000).
182434func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
182435	c.urlParams_.Set("requestId", requestId)
182436	return c
182437}
182438
182439// Fields allows partial responses to be retrieved. See
182440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
182441// for more information.
182442func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
182443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
182444	return c
182445}
182446
182447// Context sets the context to be used in this call's Do method. Any
182448// pending HTTP request will be aborted if the provided context is
182449// canceled.
182450func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
182451	c.ctx_ = ctx
182452	return c
182453}
182454
182455// Header returns an http.Header that can be modified by the caller to
182456// add HTTP headers to the request.
182457func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
182458	if c.header_ == nil {
182459		c.header_ = make(http.Header)
182460	}
182461	return c.header_
182462}
182463
182464func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
182465	reqHeaders := make(http.Header)
182466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
182467	for k, v := range c.header_ {
182468		reqHeaders[k] = v
182469	}
182470	reqHeaders.Set("User-Agent", c.s.userAgent())
182471	var body io.Reader = nil
182472	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
182473	if err != nil {
182474		return nil, err
182475	}
182476	reqHeaders.Set("Content-Type", "application/json")
182477	c.urlParams_.Set("alt", alt)
182478	c.urlParams_.Set("prettyPrint", "false")
182479	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels")
182480	urls += "?" + c.urlParams_.Encode()
182481	req, err := http.NewRequest("POST", urls, body)
182482	if err != nil {
182483		return nil, err
182484	}
182485	req.Header = reqHeaders
182486	googleapi.Expand(req.URL, map[string]string{
182487		"project":  c.project,
182488		"region":   c.region,
182489		"resource": c.resource,
182490	})
182491	return gensupport.SendRequest(c.ctx_, c.s.client, req)
182492}
182493
182494// Do executes the "compute.vpnGateways.setLabels" call.
182495// Exactly one of *Operation or error will be non-nil. Any non-2xx
182496// status code is an error. Response headers are in either
182497// *Operation.ServerResponse.Header or (if a response was returned at
182498// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
182499// to check whether the returned error was because
182500// http.StatusNotModified was returned.
182501func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
182502	gensupport.SetOptions(c.urlParams_, opts...)
182503	res, err := c.doRequest("json")
182504	if res != nil && res.StatusCode == http.StatusNotModified {
182505		if res.Body != nil {
182506			res.Body.Close()
182507		}
182508		return nil, &googleapi.Error{
182509			Code:   res.StatusCode,
182510			Header: res.Header,
182511		}
182512	}
182513	if err != nil {
182514		return nil, err
182515	}
182516	defer googleapi.CloseBody(res)
182517	if err := googleapi.CheckResponse(res); err != nil {
182518		return nil, err
182519	}
182520	ret := &Operation{
182521		ServerResponse: googleapi.ServerResponse{
182522			Header:         res.Header,
182523			HTTPStatusCode: res.StatusCode,
182524		},
182525	}
182526	target := &ret
182527	if err := gensupport.DecodeResponse(target, res); err != nil {
182528		return nil, err
182529	}
182530	return ret, nil
182531	// {
182532	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
182533	//   "httpMethod": "POST",
182534	//   "id": "compute.vpnGateways.setLabels",
182535	//   "parameterOrder": [
182536	//     "project",
182537	//     "region",
182538	//     "resource"
182539	//   ],
182540	//   "parameters": {
182541	//     "project": {
182542	//       "description": "Project ID for this request.",
182543	//       "location": "path",
182544	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
182545	//       "required": true,
182546	//       "type": "string"
182547	//     },
182548	//     "region": {
182549	//       "description": "The region for this request.",
182550	//       "location": "path",
182551	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
182552	//       "required": true,
182553	//       "type": "string"
182554	//     },
182555	//     "requestId": {
182556	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
182557	//       "location": "query",
182558	//       "type": "string"
182559	//     },
182560	//     "resource": {
182561	//       "description": "Name or id of the resource for this request.",
182562	//       "location": "path",
182563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
182564	//       "required": true,
182565	//       "type": "string"
182566	//     }
182567	//   },
182568	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
182569	//   "request": {
182570	//     "$ref": "RegionSetLabelsRequest"
182571	//   },
182572	//   "response": {
182573	//     "$ref": "Operation"
182574	//   },
182575	//   "scopes": [
182576	//     "https://www.googleapis.com/auth/cloud-platform",
182577	//     "https://www.googleapis.com/auth/compute"
182578	//   ]
182579	// }
182580
182581}
182582
182583// method id "compute.vpnGateways.testIamPermissions":
182584
182585type VpnGatewaysTestIamPermissionsCall struct {
182586	s                      *Service
182587	project                string
182588	region                 string
182589	resource               string
182590	testpermissionsrequest *TestPermissionsRequest
182591	urlParams_             gensupport.URLParams
182592	ctx_                   context.Context
182593	header_                http.Header
182594}
182595
182596// TestIamPermissions: Returns permissions that a caller has on the
182597// specified resource.
182598//
182599// - project: Project ID for this request.
182600// - region: The name of the region for this request.
182601// - resource: Name or id of the resource for this request.
182602func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
182603	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
182604	c.project = project
182605	c.region = region
182606	c.resource = resource
182607	c.testpermissionsrequest = testpermissionsrequest
182608	return c
182609}
182610
182611// Fields allows partial responses to be retrieved. See
182612// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
182613// for more information.
182614func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
182615	c.urlParams_.Set("fields", googleapi.CombineFields(s))
182616	return c
182617}
182618
182619// Context sets the context to be used in this call's Do method. Any
182620// pending HTTP request will be aborted if the provided context is
182621// canceled.
182622func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
182623	c.ctx_ = ctx
182624	return c
182625}
182626
182627// Header returns an http.Header that can be modified by the caller to
182628// add HTTP headers to the request.
182629func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
182630	if c.header_ == nil {
182631		c.header_ = make(http.Header)
182632	}
182633	return c.header_
182634}
182635
182636func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
182637	reqHeaders := make(http.Header)
182638	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
182639	for k, v := range c.header_ {
182640		reqHeaders[k] = v
182641	}
182642	reqHeaders.Set("User-Agent", c.s.userAgent())
182643	var body io.Reader = nil
182644	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
182645	if err != nil {
182646		return nil, err
182647	}
182648	reqHeaders.Set("Content-Type", "application/json")
182649	c.urlParams_.Set("alt", alt)
182650	c.urlParams_.Set("prettyPrint", "false")
182651	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
182652	urls += "?" + c.urlParams_.Encode()
182653	req, err := http.NewRequest("POST", urls, body)
182654	if err != nil {
182655		return nil, err
182656	}
182657	req.Header = reqHeaders
182658	googleapi.Expand(req.URL, map[string]string{
182659		"project":  c.project,
182660		"region":   c.region,
182661		"resource": c.resource,
182662	})
182663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
182664}
182665
182666// Do executes the "compute.vpnGateways.testIamPermissions" call.
182667// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
182668// non-2xx status code is an error. Response headers are in either
182669// *TestPermissionsResponse.ServerResponse.Header or (if a response was
182670// returned at all) in error.(*googleapi.Error).Header. Use
182671// googleapi.IsNotModified to check whether the returned error was
182672// because http.StatusNotModified was returned.
182673func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
182674	gensupport.SetOptions(c.urlParams_, opts...)
182675	res, err := c.doRequest("json")
182676	if res != nil && res.StatusCode == http.StatusNotModified {
182677		if res.Body != nil {
182678			res.Body.Close()
182679		}
182680		return nil, &googleapi.Error{
182681			Code:   res.StatusCode,
182682			Header: res.Header,
182683		}
182684	}
182685	if err != nil {
182686		return nil, err
182687	}
182688	defer googleapi.CloseBody(res)
182689	if err := googleapi.CheckResponse(res); err != nil {
182690		return nil, err
182691	}
182692	ret := &TestPermissionsResponse{
182693		ServerResponse: googleapi.ServerResponse{
182694			Header:         res.Header,
182695			HTTPStatusCode: res.StatusCode,
182696		},
182697	}
182698	target := &ret
182699	if err := gensupport.DecodeResponse(target, res); err != nil {
182700		return nil, err
182701	}
182702	return ret, nil
182703	// {
182704	//   "description": "Returns permissions that a caller has on the specified resource.",
182705	//   "httpMethod": "POST",
182706	//   "id": "compute.vpnGateways.testIamPermissions",
182707	//   "parameterOrder": [
182708	//     "project",
182709	//     "region",
182710	//     "resource"
182711	//   ],
182712	//   "parameters": {
182713	//     "project": {
182714	//       "description": "Project ID for this request.",
182715	//       "location": "path",
182716	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
182717	//       "required": true,
182718	//       "type": "string"
182719	//     },
182720	//     "region": {
182721	//       "description": "The name of the region for this request.",
182722	//       "location": "path",
182723	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
182724	//       "required": true,
182725	//       "type": "string"
182726	//     },
182727	//     "resource": {
182728	//       "description": "Name or id of the resource for this request.",
182729	//       "location": "path",
182730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
182731	//       "required": true,
182732	//       "type": "string"
182733	//     }
182734	//   },
182735	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
182736	//   "request": {
182737	//     "$ref": "TestPermissionsRequest"
182738	//   },
182739	//   "response": {
182740	//     "$ref": "TestPermissionsResponse"
182741	//   },
182742	//   "scopes": [
182743	//     "https://www.googleapis.com/auth/cloud-platform",
182744	//     "https://www.googleapis.com/auth/compute",
182745	//     "https://www.googleapis.com/auth/compute.readonly"
182746	//   ]
182747	// }
182748
182749}
182750
182751// method id "compute.vpnTunnels.aggregatedList":
182752
182753type VpnTunnelsAggregatedListCall struct {
182754	s            *Service
182755	project      string
182756	urlParams_   gensupport.URLParams
182757	ifNoneMatch_ string
182758	ctx_         context.Context
182759	header_      http.Header
182760}
182761
182762// AggregatedList: Retrieves an aggregated list of VPN tunnels.
182763//
182764// - project: Project ID for this request.
182765func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
182766	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
182767	c.project = project
182768	return c
182769}
182770
182771// Filter sets the optional parameter "filter": A filter expression that
182772// filters resources listed in the response. The expression must specify
182773// the field name, a comparison operator, and the value that you want to
182774// use for filtering. The value must be a string, a number, or a
182775// boolean. The comparison operator must be either `=`, `!=`, `>`, or
182776// `<`.
182777//
182778// For example, if you are filtering Compute Engine instances, you can
182779// exclude instances named `example-instance` by specifying `name !=
182780// example-instance`.
182781//
182782// You can also filter nested fields. For example, you could specify
182783// `scheduling.automaticRestart = false` to include instances only if
182784// they are not scheduled for automatic restarts. You can use filtering
182785// on nested fields to filter based on resource labels.
182786//
182787// To filter on multiple expressions, provide each separate expression
182788// within parentheses. For example: ``` (scheduling.automaticRestart =
182789// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
182790// is an `AND` expression. However, you can include `AND` and `OR`
182791// expressions explicitly. For example: ``` (cpuPlatform = "Intel
182792// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
182793// (scheduling.automaticRestart = true) ```
182794func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
182795	c.urlParams_.Set("filter", filter)
182796	return c
182797}
182798
182799// IncludeAllScopes sets the optional parameter "includeAllScopes":
182800// Indicates whether every visible scope for each scope type (zone,
182801// region, global) should be included in the response. For new resource
182802// types added after this field, the flag has no effect as new resource
182803// types will always include every visible scope for each scope type in
182804// response. For resource types which predate this field, if this flag
182805// is omitted or false, only scopes of the scope types where the
182806// resource type is expected to be found will be included.
182807func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
182808	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
182809	return c
182810}
182811
182812// MaxResults sets the optional parameter "maxResults": The maximum
182813// number of results per page that should be returned. If the number of
182814// available results is larger than `maxResults`, Compute Engine returns
182815// a `nextPageToken` that can be used to get the next page of results in
182816// subsequent list requests. Acceptable values are `0` to `500`,
182817// inclusive. (Default: `500`)
182818func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
182819	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
182820	return c
182821}
182822
182823// OrderBy sets the optional parameter "orderBy": Sorts list results by
182824// a certain order. By default, results are returned in alphanumerical
182825// order based on the resource name.
182826//
182827// You can also sort results in descending order based on the creation
182828// timestamp using `orderBy="creationTimestamp desc". This sorts
182829// results based on the `creationTimestamp` field in reverse
182830// chronological order (newest result first). Use this to sort resources
182831// like operations so that the newest operation is returned
182832// first.
182833//
182834// Currently, only sorting by `name` or `creationTimestamp desc` is
182835// supported.
182836func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
182837	c.urlParams_.Set("orderBy", orderBy)
182838	return c
182839}
182840
182841// PageToken sets the optional parameter "pageToken": Specifies a page
182842// token to use. Set `pageToken` to the `nextPageToken` returned by a
182843// previous list request to get the next page of results.
182844func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
182845	c.urlParams_.Set("pageToken", pageToken)
182846	return c
182847}
182848
182849// ReturnPartialSuccess sets the optional parameter
182850// "returnPartialSuccess": Opt-in for partial success behavior which
182851// provides partial results in case of failure. The default value is
182852// false.
182853func (c *VpnTunnelsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsAggregatedListCall {
182854	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
182855	return c
182856}
182857
182858// Fields allows partial responses to be retrieved. See
182859// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
182860// for more information.
182861func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
182862	c.urlParams_.Set("fields", googleapi.CombineFields(s))
182863	return c
182864}
182865
182866// IfNoneMatch sets the optional parameter which makes the operation
182867// fail if the object's ETag matches the given value. This is useful for
182868// getting updates only after the object has changed since the last
182869// request. Use googleapi.IsNotModified to check whether the response
182870// error from Do is the result of In-None-Match.
182871func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
182872	c.ifNoneMatch_ = entityTag
182873	return c
182874}
182875
182876// Context sets the context to be used in this call's Do method. Any
182877// pending HTTP request will be aborted if the provided context is
182878// canceled.
182879func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
182880	c.ctx_ = ctx
182881	return c
182882}
182883
182884// Header returns an http.Header that can be modified by the caller to
182885// add HTTP headers to the request.
182886func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
182887	if c.header_ == nil {
182888		c.header_ = make(http.Header)
182889	}
182890	return c.header_
182891}
182892
182893func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
182894	reqHeaders := make(http.Header)
182895	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
182896	for k, v := range c.header_ {
182897		reqHeaders[k] = v
182898	}
182899	reqHeaders.Set("User-Agent", c.s.userAgent())
182900	if c.ifNoneMatch_ != "" {
182901		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
182902	}
182903	var body io.Reader = nil
182904	c.urlParams_.Set("alt", alt)
182905	c.urlParams_.Set("prettyPrint", "false")
182906	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnTunnels")
182907	urls += "?" + c.urlParams_.Encode()
182908	req, err := http.NewRequest("GET", urls, body)
182909	if err != nil {
182910		return nil, err
182911	}
182912	req.Header = reqHeaders
182913	googleapi.Expand(req.URL, map[string]string{
182914		"project": c.project,
182915	})
182916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
182917}
182918
182919// Do executes the "compute.vpnTunnels.aggregatedList" call.
182920// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
182921// non-2xx status code is an error. Response headers are in either
182922// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
182923// returned at all) in error.(*googleapi.Error).Header. Use
182924// googleapi.IsNotModified to check whether the returned error was
182925// because http.StatusNotModified was returned.
182926func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
182927	gensupport.SetOptions(c.urlParams_, opts...)
182928	res, err := c.doRequest("json")
182929	if res != nil && res.StatusCode == http.StatusNotModified {
182930		if res.Body != nil {
182931			res.Body.Close()
182932		}
182933		return nil, &googleapi.Error{
182934			Code:   res.StatusCode,
182935			Header: res.Header,
182936		}
182937	}
182938	if err != nil {
182939		return nil, err
182940	}
182941	defer googleapi.CloseBody(res)
182942	if err := googleapi.CheckResponse(res); err != nil {
182943		return nil, err
182944	}
182945	ret := &VpnTunnelAggregatedList{
182946		ServerResponse: googleapi.ServerResponse{
182947			Header:         res.Header,
182948			HTTPStatusCode: res.StatusCode,
182949		},
182950	}
182951	target := &ret
182952	if err := gensupport.DecodeResponse(target, res); err != nil {
182953		return nil, err
182954	}
182955	return ret, nil
182956	// {
182957	//   "description": "Retrieves an aggregated list of VPN tunnels.",
182958	//   "httpMethod": "GET",
182959	//   "id": "compute.vpnTunnels.aggregatedList",
182960	//   "parameterOrder": [
182961	//     "project"
182962	//   ],
182963	//   "parameters": {
182964	//     "filter": {
182965	//       "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) ```",
182966	//       "location": "query",
182967	//       "type": "string"
182968	//     },
182969	//     "includeAllScopes": {
182970	//       "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.",
182971	//       "location": "query",
182972	//       "type": "boolean"
182973	//     },
182974	//     "maxResults": {
182975	//       "default": "500",
182976	//       "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`)",
182977	//       "format": "uint32",
182978	//       "location": "query",
182979	//       "minimum": "0",
182980	//       "type": "integer"
182981	//     },
182982	//     "orderBy": {
182983	//       "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.",
182984	//       "location": "query",
182985	//       "type": "string"
182986	//     },
182987	//     "pageToken": {
182988	//       "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.",
182989	//       "location": "query",
182990	//       "type": "string"
182991	//     },
182992	//     "project": {
182993	//       "description": "Project ID for this request.",
182994	//       "location": "path",
182995	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
182996	//       "required": true,
182997	//       "type": "string"
182998	//     },
182999	//     "returnPartialSuccess": {
183000	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
183001	//       "location": "query",
183002	//       "type": "boolean"
183003	//     }
183004	//   },
183005	//   "path": "projects/{project}/aggregated/vpnTunnels",
183006	//   "response": {
183007	//     "$ref": "VpnTunnelAggregatedList"
183008	//   },
183009	//   "scopes": [
183010	//     "https://www.googleapis.com/auth/cloud-platform",
183011	//     "https://www.googleapis.com/auth/compute",
183012	//     "https://www.googleapis.com/auth/compute.readonly"
183013	//   ]
183014	// }
183015
183016}
183017
183018// Pages invokes f for each page of results.
183019// A non-nil error returned from f will halt the iteration.
183020// The provided context supersedes any context provided to the Context method.
183021func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
183022	c.ctx_ = ctx
183023	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
183024	for {
183025		x, err := c.Do()
183026		if err != nil {
183027			return err
183028		}
183029		if err := f(x); err != nil {
183030			return err
183031		}
183032		if x.NextPageToken == "" {
183033			return nil
183034		}
183035		c.PageToken(x.NextPageToken)
183036	}
183037}
183038
183039// method id "compute.vpnTunnels.delete":
183040
183041type VpnTunnelsDeleteCall struct {
183042	s          *Service
183043	project    string
183044	region     string
183045	vpnTunnel  string
183046	urlParams_ gensupport.URLParams
183047	ctx_       context.Context
183048	header_    http.Header
183049}
183050
183051// Delete: Deletes the specified VpnTunnel resource.
183052//
183053// - project: Project ID for this request.
183054// - region: Name of the region for this request.
183055// - vpnTunnel: Name of the VpnTunnel resource to delete.
183056func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
183057	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
183058	c.project = project
183059	c.region = region
183060	c.vpnTunnel = vpnTunnel
183061	return c
183062}
183063
183064// RequestId sets the optional parameter "requestId": An optional
183065// request ID to identify requests. Specify a unique request ID so that
183066// if you must retry your request, the server will know to ignore the
183067// request if it has already been completed.
183068//
183069// For example, consider a situation where you make an initial request
183070// and the request times out. If you make the request again with the
183071// same request ID, the server can check if original operation with the
183072// same request ID was received, and if so, will ignore the second
183073// request. This prevents clients from accidentally creating duplicate
183074// commitments.
183075//
183076// The request ID must be a valid UUID with the exception that zero UUID
183077// is not supported (00000000-0000-0000-0000-000000000000).
183078func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
183079	c.urlParams_.Set("requestId", requestId)
183080	return c
183081}
183082
183083// Fields allows partial responses to be retrieved. See
183084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
183085// for more information.
183086func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
183087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
183088	return c
183089}
183090
183091// Context sets the context to be used in this call's Do method. Any
183092// pending HTTP request will be aborted if the provided context is
183093// canceled.
183094func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
183095	c.ctx_ = ctx
183096	return c
183097}
183098
183099// Header returns an http.Header that can be modified by the caller to
183100// add HTTP headers to the request.
183101func (c *VpnTunnelsDeleteCall) Header() http.Header {
183102	if c.header_ == nil {
183103		c.header_ = make(http.Header)
183104	}
183105	return c.header_
183106}
183107
183108func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
183109	reqHeaders := make(http.Header)
183110	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
183111	for k, v := range c.header_ {
183112		reqHeaders[k] = v
183113	}
183114	reqHeaders.Set("User-Agent", c.s.userAgent())
183115	var body io.Reader = nil
183116	c.urlParams_.Set("alt", alt)
183117	c.urlParams_.Set("prettyPrint", "false")
183118	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
183119	urls += "?" + c.urlParams_.Encode()
183120	req, err := http.NewRequest("DELETE", urls, body)
183121	if err != nil {
183122		return nil, err
183123	}
183124	req.Header = reqHeaders
183125	googleapi.Expand(req.URL, map[string]string{
183126		"project":   c.project,
183127		"region":    c.region,
183128		"vpnTunnel": c.vpnTunnel,
183129	})
183130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
183131}
183132
183133// Do executes the "compute.vpnTunnels.delete" call.
183134// Exactly one of *Operation or error will be non-nil. Any non-2xx
183135// status code is an error. Response headers are in either
183136// *Operation.ServerResponse.Header or (if a response was returned at
183137// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
183138// to check whether the returned error was because
183139// http.StatusNotModified was returned.
183140func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
183141	gensupport.SetOptions(c.urlParams_, opts...)
183142	res, err := c.doRequest("json")
183143	if res != nil && res.StatusCode == http.StatusNotModified {
183144		if res.Body != nil {
183145			res.Body.Close()
183146		}
183147		return nil, &googleapi.Error{
183148			Code:   res.StatusCode,
183149			Header: res.Header,
183150		}
183151	}
183152	if err != nil {
183153		return nil, err
183154	}
183155	defer googleapi.CloseBody(res)
183156	if err := googleapi.CheckResponse(res); err != nil {
183157		return nil, err
183158	}
183159	ret := &Operation{
183160		ServerResponse: googleapi.ServerResponse{
183161			Header:         res.Header,
183162			HTTPStatusCode: res.StatusCode,
183163		},
183164	}
183165	target := &ret
183166	if err := gensupport.DecodeResponse(target, res); err != nil {
183167		return nil, err
183168	}
183169	return ret, nil
183170	// {
183171	//   "description": "Deletes the specified VpnTunnel resource.",
183172	//   "httpMethod": "DELETE",
183173	//   "id": "compute.vpnTunnels.delete",
183174	//   "parameterOrder": [
183175	//     "project",
183176	//     "region",
183177	//     "vpnTunnel"
183178	//   ],
183179	//   "parameters": {
183180	//     "project": {
183181	//       "description": "Project ID for this request.",
183182	//       "location": "path",
183183	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
183184	//       "required": true,
183185	//       "type": "string"
183186	//     },
183187	//     "region": {
183188	//       "description": "Name of the region for this request.",
183189	//       "location": "path",
183190	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
183191	//       "required": true,
183192	//       "type": "string"
183193	//     },
183194	//     "requestId": {
183195	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
183196	//       "location": "query",
183197	//       "type": "string"
183198	//     },
183199	//     "vpnTunnel": {
183200	//       "description": "Name of the VpnTunnel resource to delete.",
183201	//       "location": "path",
183202	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
183203	//       "required": true,
183204	//       "type": "string"
183205	//     }
183206	//   },
183207	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
183208	//   "response": {
183209	//     "$ref": "Operation"
183210	//   },
183211	//   "scopes": [
183212	//     "https://www.googleapis.com/auth/cloud-platform",
183213	//     "https://www.googleapis.com/auth/compute"
183214	//   ]
183215	// }
183216
183217}
183218
183219// method id "compute.vpnTunnels.get":
183220
183221type VpnTunnelsGetCall struct {
183222	s            *Service
183223	project      string
183224	region       string
183225	vpnTunnel    string
183226	urlParams_   gensupport.URLParams
183227	ifNoneMatch_ string
183228	ctx_         context.Context
183229	header_      http.Header
183230}
183231
183232// Get: Returns the specified VpnTunnel resource. Gets a list of
183233// available VPN tunnels by making a list() request.
183234//
183235// - project: Project ID for this request.
183236// - region: Name of the region for this request.
183237// - vpnTunnel: Name of the VpnTunnel resource to return.
183238func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
183239	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
183240	c.project = project
183241	c.region = region
183242	c.vpnTunnel = vpnTunnel
183243	return c
183244}
183245
183246// Fields allows partial responses to be retrieved. See
183247// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
183248// for more information.
183249func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
183250	c.urlParams_.Set("fields", googleapi.CombineFields(s))
183251	return c
183252}
183253
183254// IfNoneMatch sets the optional parameter which makes the operation
183255// fail if the object's ETag matches the given value. This is useful for
183256// getting updates only after the object has changed since the last
183257// request. Use googleapi.IsNotModified to check whether the response
183258// error from Do is the result of In-None-Match.
183259func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
183260	c.ifNoneMatch_ = entityTag
183261	return c
183262}
183263
183264// Context sets the context to be used in this call's Do method. Any
183265// pending HTTP request will be aborted if the provided context is
183266// canceled.
183267func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
183268	c.ctx_ = ctx
183269	return c
183270}
183271
183272// Header returns an http.Header that can be modified by the caller to
183273// add HTTP headers to the request.
183274func (c *VpnTunnelsGetCall) Header() http.Header {
183275	if c.header_ == nil {
183276		c.header_ = make(http.Header)
183277	}
183278	return c.header_
183279}
183280
183281func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
183282	reqHeaders := make(http.Header)
183283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
183284	for k, v := range c.header_ {
183285		reqHeaders[k] = v
183286	}
183287	reqHeaders.Set("User-Agent", c.s.userAgent())
183288	if c.ifNoneMatch_ != "" {
183289		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
183290	}
183291	var body io.Reader = nil
183292	c.urlParams_.Set("alt", alt)
183293	c.urlParams_.Set("prettyPrint", "false")
183294	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
183295	urls += "?" + c.urlParams_.Encode()
183296	req, err := http.NewRequest("GET", urls, body)
183297	if err != nil {
183298		return nil, err
183299	}
183300	req.Header = reqHeaders
183301	googleapi.Expand(req.URL, map[string]string{
183302		"project":   c.project,
183303		"region":    c.region,
183304		"vpnTunnel": c.vpnTunnel,
183305	})
183306	return gensupport.SendRequest(c.ctx_, c.s.client, req)
183307}
183308
183309// Do executes the "compute.vpnTunnels.get" call.
183310// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
183311// status code is an error. Response headers are in either
183312// *VpnTunnel.ServerResponse.Header or (if a response was returned at
183313// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
183314// to check whether the returned error was because
183315// http.StatusNotModified was returned.
183316func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
183317	gensupport.SetOptions(c.urlParams_, opts...)
183318	res, err := c.doRequest("json")
183319	if res != nil && res.StatusCode == http.StatusNotModified {
183320		if res.Body != nil {
183321			res.Body.Close()
183322		}
183323		return nil, &googleapi.Error{
183324			Code:   res.StatusCode,
183325			Header: res.Header,
183326		}
183327	}
183328	if err != nil {
183329		return nil, err
183330	}
183331	defer googleapi.CloseBody(res)
183332	if err := googleapi.CheckResponse(res); err != nil {
183333		return nil, err
183334	}
183335	ret := &VpnTunnel{
183336		ServerResponse: googleapi.ServerResponse{
183337			Header:         res.Header,
183338			HTTPStatusCode: res.StatusCode,
183339		},
183340	}
183341	target := &ret
183342	if err := gensupport.DecodeResponse(target, res); err != nil {
183343		return nil, err
183344	}
183345	return ret, nil
183346	// {
183347	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
183348	//   "httpMethod": "GET",
183349	//   "id": "compute.vpnTunnels.get",
183350	//   "parameterOrder": [
183351	//     "project",
183352	//     "region",
183353	//     "vpnTunnel"
183354	//   ],
183355	//   "parameters": {
183356	//     "project": {
183357	//       "description": "Project ID for this request.",
183358	//       "location": "path",
183359	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
183360	//       "required": true,
183361	//       "type": "string"
183362	//     },
183363	//     "region": {
183364	//       "description": "Name of the region for this request.",
183365	//       "location": "path",
183366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
183367	//       "required": true,
183368	//       "type": "string"
183369	//     },
183370	//     "vpnTunnel": {
183371	//       "description": "Name of the VpnTunnel resource to return.",
183372	//       "location": "path",
183373	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
183374	//       "required": true,
183375	//       "type": "string"
183376	//     }
183377	//   },
183378	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
183379	//   "response": {
183380	//     "$ref": "VpnTunnel"
183381	//   },
183382	//   "scopes": [
183383	//     "https://www.googleapis.com/auth/cloud-platform",
183384	//     "https://www.googleapis.com/auth/compute",
183385	//     "https://www.googleapis.com/auth/compute.readonly"
183386	//   ]
183387	// }
183388
183389}
183390
183391// method id "compute.vpnTunnels.insert":
183392
183393type VpnTunnelsInsertCall struct {
183394	s          *Service
183395	project    string
183396	region     string
183397	vpntunnel  *VpnTunnel
183398	urlParams_ gensupport.URLParams
183399	ctx_       context.Context
183400	header_    http.Header
183401}
183402
183403// Insert: Creates a VpnTunnel resource in the specified project and
183404// region using the data included in the request.
183405//
183406// - project: Project ID for this request.
183407// - region: Name of the region for this request.
183408func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
183409	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
183410	c.project = project
183411	c.region = region
183412	c.vpntunnel = vpntunnel
183413	return c
183414}
183415
183416// RequestId sets the optional parameter "requestId": An optional
183417// request ID to identify requests. Specify a unique request ID so that
183418// if you must retry your request, the server will know to ignore the
183419// request if it has already been completed.
183420//
183421// For example, consider a situation where you make an initial request
183422// and the request times out. If you make the request again with the
183423// same request ID, the server can check if original operation with the
183424// same request ID was received, and if so, will ignore the second
183425// request. This prevents clients from accidentally creating duplicate
183426// commitments.
183427//
183428// The request ID must be a valid UUID with the exception that zero UUID
183429// is not supported (00000000-0000-0000-0000-000000000000).
183430func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
183431	c.urlParams_.Set("requestId", requestId)
183432	return c
183433}
183434
183435// Fields allows partial responses to be retrieved. See
183436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
183437// for more information.
183438func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
183439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
183440	return c
183441}
183442
183443// Context sets the context to be used in this call's Do method. Any
183444// pending HTTP request will be aborted if the provided context is
183445// canceled.
183446func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
183447	c.ctx_ = ctx
183448	return c
183449}
183450
183451// Header returns an http.Header that can be modified by the caller to
183452// add HTTP headers to the request.
183453func (c *VpnTunnelsInsertCall) Header() http.Header {
183454	if c.header_ == nil {
183455		c.header_ = make(http.Header)
183456	}
183457	return c.header_
183458}
183459
183460func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
183461	reqHeaders := make(http.Header)
183462	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
183463	for k, v := range c.header_ {
183464		reqHeaders[k] = v
183465	}
183466	reqHeaders.Set("User-Agent", c.s.userAgent())
183467	var body io.Reader = nil
183468	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
183469	if err != nil {
183470		return nil, err
183471	}
183472	reqHeaders.Set("Content-Type", "application/json")
183473	c.urlParams_.Set("alt", alt)
183474	c.urlParams_.Set("prettyPrint", "false")
183475	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
183476	urls += "?" + c.urlParams_.Encode()
183477	req, err := http.NewRequest("POST", urls, body)
183478	if err != nil {
183479		return nil, err
183480	}
183481	req.Header = reqHeaders
183482	googleapi.Expand(req.URL, map[string]string{
183483		"project": c.project,
183484		"region":  c.region,
183485	})
183486	return gensupport.SendRequest(c.ctx_, c.s.client, req)
183487}
183488
183489// Do executes the "compute.vpnTunnels.insert" call.
183490// Exactly one of *Operation or error will be non-nil. Any non-2xx
183491// status code is an error. Response headers are in either
183492// *Operation.ServerResponse.Header or (if a response was returned at
183493// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
183494// to check whether the returned error was because
183495// http.StatusNotModified was returned.
183496func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
183497	gensupport.SetOptions(c.urlParams_, opts...)
183498	res, err := c.doRequest("json")
183499	if res != nil && res.StatusCode == http.StatusNotModified {
183500		if res.Body != nil {
183501			res.Body.Close()
183502		}
183503		return nil, &googleapi.Error{
183504			Code:   res.StatusCode,
183505			Header: res.Header,
183506		}
183507	}
183508	if err != nil {
183509		return nil, err
183510	}
183511	defer googleapi.CloseBody(res)
183512	if err := googleapi.CheckResponse(res); err != nil {
183513		return nil, err
183514	}
183515	ret := &Operation{
183516		ServerResponse: googleapi.ServerResponse{
183517			Header:         res.Header,
183518			HTTPStatusCode: res.StatusCode,
183519		},
183520	}
183521	target := &ret
183522	if err := gensupport.DecodeResponse(target, res); err != nil {
183523		return nil, err
183524	}
183525	return ret, nil
183526	// {
183527	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
183528	//   "httpMethod": "POST",
183529	//   "id": "compute.vpnTunnels.insert",
183530	//   "parameterOrder": [
183531	//     "project",
183532	//     "region"
183533	//   ],
183534	//   "parameters": {
183535	//     "project": {
183536	//       "description": "Project ID for this request.",
183537	//       "location": "path",
183538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
183539	//       "required": true,
183540	//       "type": "string"
183541	//     },
183542	//     "region": {
183543	//       "description": "Name of the region for this request.",
183544	//       "location": "path",
183545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
183546	//       "required": true,
183547	//       "type": "string"
183548	//     },
183549	//     "requestId": {
183550	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
183551	//       "location": "query",
183552	//       "type": "string"
183553	//     }
183554	//   },
183555	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
183556	//   "request": {
183557	//     "$ref": "VpnTunnel"
183558	//   },
183559	//   "response": {
183560	//     "$ref": "Operation"
183561	//   },
183562	//   "scopes": [
183563	//     "https://www.googleapis.com/auth/cloud-platform",
183564	//     "https://www.googleapis.com/auth/compute"
183565	//   ]
183566	// }
183567
183568}
183569
183570// method id "compute.vpnTunnels.list":
183571
183572type VpnTunnelsListCall struct {
183573	s            *Service
183574	project      string
183575	region       string
183576	urlParams_   gensupport.URLParams
183577	ifNoneMatch_ string
183578	ctx_         context.Context
183579	header_      http.Header
183580}
183581
183582// List: Retrieves a list of VpnTunnel resources contained in the
183583// specified project and region.
183584//
183585// - project: Project ID for this request.
183586// - region: Name of the region for this request.
183587func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
183588	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
183589	c.project = project
183590	c.region = region
183591	return c
183592}
183593
183594// Filter sets the optional parameter "filter": A filter expression that
183595// filters resources listed in the response. The expression must specify
183596// the field name, a comparison operator, and the value that you want to
183597// use for filtering. The value must be a string, a number, or a
183598// boolean. The comparison operator must be either `=`, `!=`, `>`, or
183599// `<`.
183600//
183601// For example, if you are filtering Compute Engine instances, you can
183602// exclude instances named `example-instance` by specifying `name !=
183603// example-instance`.
183604//
183605// You can also filter nested fields. For example, you could specify
183606// `scheduling.automaticRestart = false` to include instances only if
183607// they are not scheduled for automatic restarts. You can use filtering
183608// on nested fields to filter based on resource labels.
183609//
183610// To filter on multiple expressions, provide each separate expression
183611// within parentheses. For example: ``` (scheduling.automaticRestart =
183612// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
183613// is an `AND` expression. However, you can include `AND` and `OR`
183614// expressions explicitly. For example: ``` (cpuPlatform = "Intel
183615// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
183616// (scheduling.automaticRestart = true) ```
183617func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
183618	c.urlParams_.Set("filter", filter)
183619	return c
183620}
183621
183622// MaxResults sets the optional parameter "maxResults": The maximum
183623// number of results per page that should be returned. If the number of
183624// available results is larger than `maxResults`, Compute Engine returns
183625// a `nextPageToken` that can be used to get the next page of results in
183626// subsequent list requests. Acceptable values are `0` to `500`,
183627// inclusive. (Default: `500`)
183628func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
183629	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
183630	return c
183631}
183632
183633// OrderBy sets the optional parameter "orderBy": Sorts list results by
183634// a certain order. By default, results are returned in alphanumerical
183635// order based on the resource name.
183636//
183637// You can also sort results in descending order based on the creation
183638// timestamp using `orderBy="creationTimestamp desc". This sorts
183639// results based on the `creationTimestamp` field in reverse
183640// chronological order (newest result first). Use this to sort resources
183641// like operations so that the newest operation is returned
183642// first.
183643//
183644// Currently, only sorting by `name` or `creationTimestamp desc` is
183645// supported.
183646func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
183647	c.urlParams_.Set("orderBy", orderBy)
183648	return c
183649}
183650
183651// PageToken sets the optional parameter "pageToken": Specifies a page
183652// token to use. Set `pageToken` to the `nextPageToken` returned by a
183653// previous list request to get the next page of results.
183654func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
183655	c.urlParams_.Set("pageToken", pageToken)
183656	return c
183657}
183658
183659// ReturnPartialSuccess sets the optional parameter
183660// "returnPartialSuccess": Opt-in for partial success behavior which
183661// provides partial results in case of failure. The default value is
183662// false.
183663func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsListCall {
183664	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
183665	return c
183666}
183667
183668// Fields allows partial responses to be retrieved. See
183669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
183670// for more information.
183671func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
183672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
183673	return c
183674}
183675
183676// IfNoneMatch sets the optional parameter which makes the operation
183677// fail if the object's ETag matches the given value. This is useful for
183678// getting updates only after the object has changed since the last
183679// request. Use googleapi.IsNotModified to check whether the response
183680// error from Do is the result of In-None-Match.
183681func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
183682	c.ifNoneMatch_ = entityTag
183683	return c
183684}
183685
183686// Context sets the context to be used in this call's Do method. Any
183687// pending HTTP request will be aborted if the provided context is
183688// canceled.
183689func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
183690	c.ctx_ = ctx
183691	return c
183692}
183693
183694// Header returns an http.Header that can be modified by the caller to
183695// add HTTP headers to the request.
183696func (c *VpnTunnelsListCall) Header() http.Header {
183697	if c.header_ == nil {
183698		c.header_ = make(http.Header)
183699	}
183700	return c.header_
183701}
183702
183703func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
183704	reqHeaders := make(http.Header)
183705	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
183706	for k, v := range c.header_ {
183707		reqHeaders[k] = v
183708	}
183709	reqHeaders.Set("User-Agent", c.s.userAgent())
183710	if c.ifNoneMatch_ != "" {
183711		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
183712	}
183713	var body io.Reader = nil
183714	c.urlParams_.Set("alt", alt)
183715	c.urlParams_.Set("prettyPrint", "false")
183716	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
183717	urls += "?" + c.urlParams_.Encode()
183718	req, err := http.NewRequest("GET", urls, body)
183719	if err != nil {
183720		return nil, err
183721	}
183722	req.Header = reqHeaders
183723	googleapi.Expand(req.URL, map[string]string{
183724		"project": c.project,
183725		"region":  c.region,
183726	})
183727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
183728}
183729
183730// Do executes the "compute.vpnTunnels.list" call.
183731// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
183732// status code is an error. Response headers are in either
183733// *VpnTunnelList.ServerResponse.Header or (if a response was returned
183734// at all) in error.(*googleapi.Error).Header. Use
183735// googleapi.IsNotModified to check whether the returned error was
183736// because http.StatusNotModified was returned.
183737func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
183738	gensupport.SetOptions(c.urlParams_, opts...)
183739	res, err := c.doRequest("json")
183740	if res != nil && res.StatusCode == http.StatusNotModified {
183741		if res.Body != nil {
183742			res.Body.Close()
183743		}
183744		return nil, &googleapi.Error{
183745			Code:   res.StatusCode,
183746			Header: res.Header,
183747		}
183748	}
183749	if err != nil {
183750		return nil, err
183751	}
183752	defer googleapi.CloseBody(res)
183753	if err := googleapi.CheckResponse(res); err != nil {
183754		return nil, err
183755	}
183756	ret := &VpnTunnelList{
183757		ServerResponse: googleapi.ServerResponse{
183758			Header:         res.Header,
183759			HTTPStatusCode: res.StatusCode,
183760		},
183761	}
183762	target := &ret
183763	if err := gensupport.DecodeResponse(target, res); err != nil {
183764		return nil, err
183765	}
183766	return ret, nil
183767	// {
183768	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
183769	//   "httpMethod": "GET",
183770	//   "id": "compute.vpnTunnels.list",
183771	//   "parameterOrder": [
183772	//     "project",
183773	//     "region"
183774	//   ],
183775	//   "parameters": {
183776	//     "filter": {
183777	//       "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) ```",
183778	//       "location": "query",
183779	//       "type": "string"
183780	//     },
183781	//     "maxResults": {
183782	//       "default": "500",
183783	//       "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`)",
183784	//       "format": "uint32",
183785	//       "location": "query",
183786	//       "minimum": "0",
183787	//       "type": "integer"
183788	//     },
183789	//     "orderBy": {
183790	//       "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.",
183791	//       "location": "query",
183792	//       "type": "string"
183793	//     },
183794	//     "pageToken": {
183795	//       "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.",
183796	//       "location": "query",
183797	//       "type": "string"
183798	//     },
183799	//     "project": {
183800	//       "description": "Project ID for this request.",
183801	//       "location": "path",
183802	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
183803	//       "required": true,
183804	//       "type": "string"
183805	//     },
183806	//     "region": {
183807	//       "description": "Name of the region for this request.",
183808	//       "location": "path",
183809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
183810	//       "required": true,
183811	//       "type": "string"
183812	//     },
183813	//     "returnPartialSuccess": {
183814	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
183815	//       "location": "query",
183816	//       "type": "boolean"
183817	//     }
183818	//   },
183819	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
183820	//   "response": {
183821	//     "$ref": "VpnTunnelList"
183822	//   },
183823	//   "scopes": [
183824	//     "https://www.googleapis.com/auth/cloud-platform",
183825	//     "https://www.googleapis.com/auth/compute",
183826	//     "https://www.googleapis.com/auth/compute.readonly"
183827	//   ]
183828	// }
183829
183830}
183831
183832// Pages invokes f for each page of results.
183833// A non-nil error returned from f will halt the iteration.
183834// The provided context supersedes any context provided to the Context method.
183835func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
183836	c.ctx_ = ctx
183837	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
183838	for {
183839		x, err := c.Do()
183840		if err != nil {
183841			return err
183842		}
183843		if err := f(x); err != nil {
183844			return err
183845		}
183846		if x.NextPageToken == "" {
183847			return nil
183848		}
183849		c.PageToken(x.NextPageToken)
183850	}
183851}
183852
183853// method id "compute.vpnTunnels.setLabels":
183854
183855type VpnTunnelsSetLabelsCall struct {
183856	s                      *Service
183857	project                string
183858	region                 string
183859	resource               string
183860	regionsetlabelsrequest *RegionSetLabelsRequest
183861	urlParams_             gensupport.URLParams
183862	ctx_                   context.Context
183863	header_                http.Header
183864}
183865
183866// SetLabels: Sets the labels on a VpnTunnel. To learn more about
183867// labels, read the Labeling Resources documentation.
183868//
183869// - project: Project ID for this request.
183870// - region: The region for this request.
183871// - resource: Name or id of the resource for this request.
183872func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall {
183873	c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
183874	c.project = project
183875	c.region = region
183876	c.resource = resource
183877	c.regionsetlabelsrequest = regionsetlabelsrequest
183878	return c
183879}
183880
183881// RequestId sets the optional parameter "requestId": An optional
183882// request ID to identify requests. Specify a unique request ID so that
183883// if you must retry your request, the server will know to ignore the
183884// request if it has already been completed.
183885//
183886// For example, consider a situation where you make an initial request
183887// and the request times out. If you make the request again with the
183888// same request ID, the server can check if original operation with the
183889// same request ID was received, and if so, will ignore the second
183890// request. This prevents clients from accidentally creating duplicate
183891// commitments.
183892//
183893// The request ID must be a valid UUID with the exception that zero UUID
183894// is not supported (00000000-0000-0000-0000-000000000000).
183895func (c *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall {
183896	c.urlParams_.Set("requestId", requestId)
183897	return c
183898}
183899
183900// Fields allows partial responses to be retrieved. See
183901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
183902// for more information.
183903func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall {
183904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
183905	return c
183906}
183907
183908// Context sets the context to be used in this call's Do method. Any
183909// pending HTTP request will be aborted if the provided context is
183910// canceled.
183911func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall {
183912	c.ctx_ = ctx
183913	return c
183914}
183915
183916// Header returns an http.Header that can be modified by the caller to
183917// add HTTP headers to the request.
183918func (c *VpnTunnelsSetLabelsCall) Header() http.Header {
183919	if c.header_ == nil {
183920		c.header_ = make(http.Header)
183921	}
183922	return c.header_
183923}
183924
183925func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
183926	reqHeaders := make(http.Header)
183927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
183928	for k, v := range c.header_ {
183929		reqHeaders[k] = v
183930	}
183931	reqHeaders.Set("User-Agent", c.s.userAgent())
183932	var body io.Reader = nil
183933	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
183934	if err != nil {
183935		return nil, err
183936	}
183937	reqHeaders.Set("Content-Type", "application/json")
183938	c.urlParams_.Set("alt", alt)
183939	c.urlParams_.Set("prettyPrint", "false")
183940	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels")
183941	urls += "?" + c.urlParams_.Encode()
183942	req, err := http.NewRequest("POST", urls, body)
183943	if err != nil {
183944		return nil, err
183945	}
183946	req.Header = reqHeaders
183947	googleapi.Expand(req.URL, map[string]string{
183948		"project":  c.project,
183949		"region":   c.region,
183950		"resource": c.resource,
183951	})
183952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
183953}
183954
183955// Do executes the "compute.vpnTunnels.setLabels" call.
183956// Exactly one of *Operation or error will be non-nil. Any non-2xx
183957// status code is an error. Response headers are in either
183958// *Operation.ServerResponse.Header or (if a response was returned at
183959// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
183960// to check whether the returned error was because
183961// http.StatusNotModified was returned.
183962func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
183963	gensupport.SetOptions(c.urlParams_, opts...)
183964	res, err := c.doRequest("json")
183965	if res != nil && res.StatusCode == http.StatusNotModified {
183966		if res.Body != nil {
183967			res.Body.Close()
183968		}
183969		return nil, &googleapi.Error{
183970			Code:   res.StatusCode,
183971			Header: res.Header,
183972		}
183973	}
183974	if err != nil {
183975		return nil, err
183976	}
183977	defer googleapi.CloseBody(res)
183978	if err := googleapi.CheckResponse(res); err != nil {
183979		return nil, err
183980	}
183981	ret := &Operation{
183982		ServerResponse: googleapi.ServerResponse{
183983			Header:         res.Header,
183984			HTTPStatusCode: res.StatusCode,
183985		},
183986	}
183987	target := &ret
183988	if err := gensupport.DecodeResponse(target, res); err != nil {
183989		return nil, err
183990	}
183991	return ret, nil
183992	// {
183993	//   "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.",
183994	//   "httpMethod": "POST",
183995	//   "id": "compute.vpnTunnels.setLabels",
183996	//   "parameterOrder": [
183997	//     "project",
183998	//     "region",
183999	//     "resource"
184000	//   ],
184001	//   "parameters": {
184002	//     "project": {
184003	//       "description": "Project ID for this request.",
184004	//       "location": "path",
184005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
184006	//       "required": true,
184007	//       "type": "string"
184008	//     },
184009	//     "region": {
184010	//       "description": "The region for this request.",
184011	//       "location": "path",
184012	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
184013	//       "required": true,
184014	//       "type": "string"
184015	//     },
184016	//     "requestId": {
184017	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
184018	//       "location": "query",
184019	//       "type": "string"
184020	//     },
184021	//     "resource": {
184022	//       "description": "Name or id of the resource for this request.",
184023	//       "location": "path",
184024	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
184025	//       "required": true,
184026	//       "type": "string"
184027	//     }
184028	//   },
184029	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
184030	//   "request": {
184031	//     "$ref": "RegionSetLabelsRequest"
184032	//   },
184033	//   "response": {
184034	//     "$ref": "Operation"
184035	//   },
184036	//   "scopes": [
184037	//     "https://www.googleapis.com/auth/cloud-platform",
184038	//     "https://www.googleapis.com/auth/compute"
184039	//   ]
184040	// }
184041
184042}
184043
184044// method id "compute.vpnTunnels.testIamPermissions":
184045
184046type VpnTunnelsTestIamPermissionsCall struct {
184047	s                      *Service
184048	project                string
184049	region                 string
184050	resource               string
184051	testpermissionsrequest *TestPermissionsRequest
184052	urlParams_             gensupport.URLParams
184053	ctx_                   context.Context
184054	header_                http.Header
184055}
184056
184057// TestIamPermissions: Returns permissions that a caller has on the
184058// specified resource.
184059//
184060// - project: Project ID for this request.
184061// - region: The name of the region for this request.
184062// - resource: Name or id of the resource for this request.
184063func (r *VpnTunnelsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnTunnelsTestIamPermissionsCall {
184064	c := &VpnTunnelsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
184065	c.project = project
184066	c.region = region
184067	c.resource = resource
184068	c.testpermissionsrequest = testpermissionsrequest
184069	return c
184070}
184071
184072// Fields allows partial responses to be retrieved. See
184073// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
184074// for more information.
184075func (c *VpnTunnelsTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnTunnelsTestIamPermissionsCall {
184076	c.urlParams_.Set("fields", googleapi.CombineFields(s))
184077	return c
184078}
184079
184080// Context sets the context to be used in this call's Do method. Any
184081// pending HTTP request will be aborted if the provided context is
184082// canceled.
184083func (c *VpnTunnelsTestIamPermissionsCall) Context(ctx context.Context) *VpnTunnelsTestIamPermissionsCall {
184084	c.ctx_ = ctx
184085	return c
184086}
184087
184088// Header returns an http.Header that can be modified by the caller to
184089// add HTTP headers to the request.
184090func (c *VpnTunnelsTestIamPermissionsCall) Header() http.Header {
184091	if c.header_ == nil {
184092		c.header_ = make(http.Header)
184093	}
184094	return c.header_
184095}
184096
184097func (c *VpnTunnelsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
184098	reqHeaders := make(http.Header)
184099	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
184100	for k, v := range c.header_ {
184101		reqHeaders[k] = v
184102	}
184103	reqHeaders.Set("User-Agent", c.s.userAgent())
184104	var body io.Reader = nil
184105	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
184106	if err != nil {
184107		return nil, err
184108	}
184109	reqHeaders.Set("Content-Type", "application/json")
184110	c.urlParams_.Set("alt", alt)
184111	c.urlParams_.Set("prettyPrint", "false")
184112	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions")
184113	urls += "?" + c.urlParams_.Encode()
184114	req, err := http.NewRequest("POST", urls, body)
184115	if err != nil {
184116		return nil, err
184117	}
184118	req.Header = reqHeaders
184119	googleapi.Expand(req.URL, map[string]string{
184120		"project":  c.project,
184121		"region":   c.region,
184122		"resource": c.resource,
184123	})
184124	return gensupport.SendRequest(c.ctx_, c.s.client, req)
184125}
184126
184127// Do executes the "compute.vpnTunnels.testIamPermissions" call.
184128// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
184129// non-2xx status code is an error. Response headers are in either
184130// *TestPermissionsResponse.ServerResponse.Header or (if a response was
184131// returned at all) in error.(*googleapi.Error).Header. Use
184132// googleapi.IsNotModified to check whether the returned error was
184133// because http.StatusNotModified was returned.
184134func (c *VpnTunnelsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
184135	gensupport.SetOptions(c.urlParams_, opts...)
184136	res, err := c.doRequest("json")
184137	if res != nil && res.StatusCode == http.StatusNotModified {
184138		if res.Body != nil {
184139			res.Body.Close()
184140		}
184141		return nil, &googleapi.Error{
184142			Code:   res.StatusCode,
184143			Header: res.Header,
184144		}
184145	}
184146	if err != nil {
184147		return nil, err
184148	}
184149	defer googleapi.CloseBody(res)
184150	if err := googleapi.CheckResponse(res); err != nil {
184151		return nil, err
184152	}
184153	ret := &TestPermissionsResponse{
184154		ServerResponse: googleapi.ServerResponse{
184155			Header:         res.Header,
184156			HTTPStatusCode: res.StatusCode,
184157		},
184158	}
184159	target := &ret
184160	if err := gensupport.DecodeResponse(target, res); err != nil {
184161		return nil, err
184162	}
184163	return ret, nil
184164	// {
184165	//   "description": "Returns permissions that a caller has on the specified resource.",
184166	//   "httpMethod": "POST",
184167	//   "id": "compute.vpnTunnels.testIamPermissions",
184168	//   "parameterOrder": [
184169	//     "project",
184170	//     "region",
184171	//     "resource"
184172	//   ],
184173	//   "parameters": {
184174	//     "project": {
184175	//       "description": "Project ID for this request.",
184176	//       "location": "path",
184177	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
184178	//       "required": true,
184179	//       "type": "string"
184180	//     },
184181	//     "region": {
184182	//       "description": "The name of the region for this request.",
184183	//       "location": "path",
184184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
184185	//       "required": true,
184186	//       "type": "string"
184187	//     },
184188	//     "resource": {
184189	//       "description": "Name or id of the resource for this request.",
184190	//       "location": "path",
184191	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
184192	//       "required": true,
184193	//       "type": "string"
184194	//     }
184195	//   },
184196	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions",
184197	//   "request": {
184198	//     "$ref": "TestPermissionsRequest"
184199	//   },
184200	//   "response": {
184201	//     "$ref": "TestPermissionsResponse"
184202	//   },
184203	//   "scopes": [
184204	//     "https://www.googleapis.com/auth/cloud-platform",
184205	//     "https://www.googleapis.com/auth/compute",
184206	//     "https://www.googleapis.com/auth/compute.readonly"
184207	//   ]
184208	// }
184209
184210}
184211
184212// method id "compute.zoneOperations.delete":
184213
184214type ZoneOperationsDeleteCall struct {
184215	s          *Service
184216	project    string
184217	zone       string
184218	operation  string
184219	urlParams_ gensupport.URLParams
184220	ctx_       context.Context
184221	header_    http.Header
184222}
184223
184224// Delete: Deletes the specified zone-specific Operations resource.
184225//
184226// - operation: Name of the Operations resource to delete.
184227// - project: Project ID for this request.
184228// - zone: Name of the zone for this request.
184229// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
184230func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
184231	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
184232	c.project = project
184233	c.zone = zone
184234	c.operation = operation
184235	return c
184236}
184237
184238// Fields allows partial responses to be retrieved. See
184239// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
184240// for more information.
184241func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
184242	c.urlParams_.Set("fields", googleapi.CombineFields(s))
184243	return c
184244}
184245
184246// Context sets the context to be used in this call's Do method. Any
184247// pending HTTP request will be aborted if the provided context is
184248// canceled.
184249func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
184250	c.ctx_ = ctx
184251	return c
184252}
184253
184254// Header returns an http.Header that can be modified by the caller to
184255// add HTTP headers to the request.
184256func (c *ZoneOperationsDeleteCall) Header() http.Header {
184257	if c.header_ == nil {
184258		c.header_ = make(http.Header)
184259	}
184260	return c.header_
184261}
184262
184263func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
184264	reqHeaders := make(http.Header)
184265	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
184266	for k, v := range c.header_ {
184267		reqHeaders[k] = v
184268	}
184269	reqHeaders.Set("User-Agent", c.s.userAgent())
184270	var body io.Reader = nil
184271	c.urlParams_.Set("alt", alt)
184272	c.urlParams_.Set("prettyPrint", "false")
184273	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
184274	urls += "?" + c.urlParams_.Encode()
184275	req, err := http.NewRequest("DELETE", urls, body)
184276	if err != nil {
184277		return nil, err
184278	}
184279	req.Header = reqHeaders
184280	googleapi.Expand(req.URL, map[string]string{
184281		"project":   c.project,
184282		"zone":      c.zone,
184283		"operation": c.operation,
184284	})
184285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
184286}
184287
184288// Do executes the "compute.zoneOperations.delete" call.
184289func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
184290	gensupport.SetOptions(c.urlParams_, opts...)
184291	res, err := c.doRequest("json")
184292	if err != nil {
184293		return err
184294	}
184295	defer googleapi.CloseBody(res)
184296	if err := googleapi.CheckResponse(res); err != nil {
184297		return err
184298	}
184299	return nil
184300	// {
184301	//   "description": "Deletes the specified zone-specific Operations resource.",
184302	//   "httpMethod": "DELETE",
184303	//   "id": "compute.zoneOperations.delete",
184304	//   "parameterOrder": [
184305	//     "project",
184306	//     "zone",
184307	//     "operation"
184308	//   ],
184309	//   "parameters": {
184310	//     "operation": {
184311	//       "description": "Name of the Operations resource to delete.",
184312	//       "location": "path",
184313	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
184314	//       "required": true,
184315	//       "type": "string"
184316	//     },
184317	//     "project": {
184318	//       "description": "Project ID for this request.",
184319	//       "location": "path",
184320	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
184321	//       "required": true,
184322	//       "type": "string"
184323	//     },
184324	//     "zone": {
184325	//       "description": "Name of the zone for this request.",
184326	//       "location": "path",
184327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
184328	//       "required": true,
184329	//       "type": "string"
184330	//     }
184331	//   },
184332	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
184333	//   "scopes": [
184334	//     "https://www.googleapis.com/auth/cloud-platform",
184335	//     "https://www.googleapis.com/auth/compute"
184336	//   ]
184337	// }
184338
184339}
184340
184341// method id "compute.zoneOperations.get":
184342
184343type ZoneOperationsGetCall struct {
184344	s            *Service
184345	project      string
184346	zone         string
184347	operation    string
184348	urlParams_   gensupport.URLParams
184349	ifNoneMatch_ string
184350	ctx_         context.Context
184351	header_      http.Header
184352}
184353
184354// Get: Retrieves the specified zone-specific Operations resource.
184355//
184356// - operation: Name of the Operations resource to return.
184357// - project: Project ID for this request.
184358// - zone: Name of the zone for this request.
184359// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
184360func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
184361	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
184362	c.project = project
184363	c.zone = zone
184364	c.operation = operation
184365	return c
184366}
184367
184368// Fields allows partial responses to be retrieved. See
184369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
184370// for more information.
184371func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
184372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
184373	return c
184374}
184375
184376// IfNoneMatch sets the optional parameter which makes the operation
184377// fail if the object's ETag matches the given value. This is useful for
184378// getting updates only after the object has changed since the last
184379// request. Use googleapi.IsNotModified to check whether the response
184380// error from Do is the result of In-None-Match.
184381func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
184382	c.ifNoneMatch_ = entityTag
184383	return c
184384}
184385
184386// Context sets the context to be used in this call's Do method. Any
184387// pending HTTP request will be aborted if the provided context is
184388// canceled.
184389func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
184390	c.ctx_ = ctx
184391	return c
184392}
184393
184394// Header returns an http.Header that can be modified by the caller to
184395// add HTTP headers to the request.
184396func (c *ZoneOperationsGetCall) Header() http.Header {
184397	if c.header_ == nil {
184398		c.header_ = make(http.Header)
184399	}
184400	return c.header_
184401}
184402
184403func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
184404	reqHeaders := make(http.Header)
184405	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
184406	for k, v := range c.header_ {
184407		reqHeaders[k] = v
184408	}
184409	reqHeaders.Set("User-Agent", c.s.userAgent())
184410	if c.ifNoneMatch_ != "" {
184411		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
184412	}
184413	var body io.Reader = nil
184414	c.urlParams_.Set("alt", alt)
184415	c.urlParams_.Set("prettyPrint", "false")
184416	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
184417	urls += "?" + c.urlParams_.Encode()
184418	req, err := http.NewRequest("GET", urls, body)
184419	if err != nil {
184420		return nil, err
184421	}
184422	req.Header = reqHeaders
184423	googleapi.Expand(req.URL, map[string]string{
184424		"project":   c.project,
184425		"zone":      c.zone,
184426		"operation": c.operation,
184427	})
184428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
184429}
184430
184431// Do executes the "compute.zoneOperations.get" call.
184432// Exactly one of *Operation or error will be non-nil. Any non-2xx
184433// status code is an error. Response headers are in either
184434// *Operation.ServerResponse.Header or (if a response was returned at
184435// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
184436// to check whether the returned error was because
184437// http.StatusNotModified was returned.
184438func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
184439	gensupport.SetOptions(c.urlParams_, opts...)
184440	res, err := c.doRequest("json")
184441	if res != nil && res.StatusCode == http.StatusNotModified {
184442		if res.Body != nil {
184443			res.Body.Close()
184444		}
184445		return nil, &googleapi.Error{
184446			Code:   res.StatusCode,
184447			Header: res.Header,
184448		}
184449	}
184450	if err != nil {
184451		return nil, err
184452	}
184453	defer googleapi.CloseBody(res)
184454	if err := googleapi.CheckResponse(res); err != nil {
184455		return nil, err
184456	}
184457	ret := &Operation{
184458		ServerResponse: googleapi.ServerResponse{
184459			Header:         res.Header,
184460			HTTPStatusCode: res.StatusCode,
184461		},
184462	}
184463	target := &ret
184464	if err := gensupport.DecodeResponse(target, res); err != nil {
184465		return nil, err
184466	}
184467	return ret, nil
184468	// {
184469	//   "description": "Retrieves the specified zone-specific Operations resource.",
184470	//   "httpMethod": "GET",
184471	//   "id": "compute.zoneOperations.get",
184472	//   "parameterOrder": [
184473	//     "project",
184474	//     "zone",
184475	//     "operation"
184476	//   ],
184477	//   "parameters": {
184478	//     "operation": {
184479	//       "description": "Name of the Operations resource to return.",
184480	//       "location": "path",
184481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
184482	//       "required": true,
184483	//       "type": "string"
184484	//     },
184485	//     "project": {
184486	//       "description": "Project ID for this request.",
184487	//       "location": "path",
184488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
184489	//       "required": true,
184490	//       "type": "string"
184491	//     },
184492	//     "zone": {
184493	//       "description": "Name of the zone for this request.",
184494	//       "location": "path",
184495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
184496	//       "required": true,
184497	//       "type": "string"
184498	//     }
184499	//   },
184500	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
184501	//   "response": {
184502	//     "$ref": "Operation"
184503	//   },
184504	//   "scopes": [
184505	//     "https://www.googleapis.com/auth/cloud-platform",
184506	//     "https://www.googleapis.com/auth/compute",
184507	//     "https://www.googleapis.com/auth/compute.readonly"
184508	//   ]
184509	// }
184510
184511}
184512
184513// method id "compute.zoneOperations.list":
184514
184515type ZoneOperationsListCall struct {
184516	s            *Service
184517	project      string
184518	zone         string
184519	urlParams_   gensupport.URLParams
184520	ifNoneMatch_ string
184521	ctx_         context.Context
184522	header_      http.Header
184523}
184524
184525// List: Retrieves a list of Operation resources contained within the
184526// specified zone.
184527//
184528// - project: Project ID for this request.
184529// - zone: Name of the zone for request.
184530// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
184531func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
184532	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
184533	c.project = project
184534	c.zone = zone
184535	return c
184536}
184537
184538// Filter sets the optional parameter "filter": A filter expression that
184539// filters resources listed in the response. The expression must specify
184540// the field name, a comparison operator, and the value that you want to
184541// use for filtering. The value must be a string, a number, or a
184542// boolean. The comparison operator must be either `=`, `!=`, `>`, or
184543// `<`.
184544//
184545// For example, if you are filtering Compute Engine instances, you can
184546// exclude instances named `example-instance` by specifying `name !=
184547// example-instance`.
184548//
184549// You can also filter nested fields. For example, you could specify
184550// `scheduling.automaticRestart = false` to include instances only if
184551// they are not scheduled for automatic restarts. You can use filtering
184552// on nested fields to filter based on resource labels.
184553//
184554// To filter on multiple expressions, provide each separate expression
184555// within parentheses. For example: ``` (scheduling.automaticRestart =
184556// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
184557// is an `AND` expression. However, you can include `AND` and `OR`
184558// expressions explicitly. For example: ``` (cpuPlatform = "Intel
184559// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
184560// (scheduling.automaticRestart = true) ```
184561func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
184562	c.urlParams_.Set("filter", filter)
184563	return c
184564}
184565
184566// MaxResults sets the optional parameter "maxResults": The maximum
184567// number of results per page that should be returned. If the number of
184568// available results is larger than `maxResults`, Compute Engine returns
184569// a `nextPageToken` that can be used to get the next page of results in
184570// subsequent list requests. Acceptable values are `0` to `500`,
184571// inclusive. (Default: `500`)
184572func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
184573	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
184574	return c
184575}
184576
184577// OrderBy sets the optional parameter "orderBy": Sorts list results by
184578// a certain order. By default, results are returned in alphanumerical
184579// order based on the resource name.
184580//
184581// You can also sort results in descending order based on the creation
184582// timestamp using `orderBy="creationTimestamp desc". This sorts
184583// results based on the `creationTimestamp` field in reverse
184584// chronological order (newest result first). Use this to sort resources
184585// like operations so that the newest operation is returned
184586// first.
184587//
184588// Currently, only sorting by `name` or `creationTimestamp desc` is
184589// supported.
184590func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
184591	c.urlParams_.Set("orderBy", orderBy)
184592	return c
184593}
184594
184595// PageToken sets the optional parameter "pageToken": Specifies a page
184596// token to use. Set `pageToken` to the `nextPageToken` returned by a
184597// previous list request to get the next page of results.
184598func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
184599	c.urlParams_.Set("pageToken", pageToken)
184600	return c
184601}
184602
184603// ReturnPartialSuccess sets the optional parameter
184604// "returnPartialSuccess": Opt-in for partial success behavior which
184605// provides partial results in case of failure. The default value is
184606// false.
184607func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneOperationsListCall {
184608	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
184609	return c
184610}
184611
184612// Fields allows partial responses to be retrieved. See
184613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
184614// for more information.
184615func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
184616	c.urlParams_.Set("fields", googleapi.CombineFields(s))
184617	return c
184618}
184619
184620// IfNoneMatch sets the optional parameter which makes the operation
184621// fail if the object's ETag matches the given value. This is useful for
184622// getting updates only after the object has changed since the last
184623// request. Use googleapi.IsNotModified to check whether the response
184624// error from Do is the result of In-None-Match.
184625func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
184626	c.ifNoneMatch_ = entityTag
184627	return c
184628}
184629
184630// Context sets the context to be used in this call's Do method. Any
184631// pending HTTP request will be aborted if the provided context is
184632// canceled.
184633func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
184634	c.ctx_ = ctx
184635	return c
184636}
184637
184638// Header returns an http.Header that can be modified by the caller to
184639// add HTTP headers to the request.
184640func (c *ZoneOperationsListCall) Header() http.Header {
184641	if c.header_ == nil {
184642		c.header_ = make(http.Header)
184643	}
184644	return c.header_
184645}
184646
184647func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
184648	reqHeaders := make(http.Header)
184649	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
184650	for k, v := range c.header_ {
184651		reqHeaders[k] = v
184652	}
184653	reqHeaders.Set("User-Agent", c.s.userAgent())
184654	if c.ifNoneMatch_ != "" {
184655		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
184656	}
184657	var body io.Reader = nil
184658	c.urlParams_.Set("alt", alt)
184659	c.urlParams_.Set("prettyPrint", "false")
184660	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations")
184661	urls += "?" + c.urlParams_.Encode()
184662	req, err := http.NewRequest("GET", urls, body)
184663	if err != nil {
184664		return nil, err
184665	}
184666	req.Header = reqHeaders
184667	googleapi.Expand(req.URL, map[string]string{
184668		"project": c.project,
184669		"zone":    c.zone,
184670	})
184671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
184672}
184673
184674// Do executes the "compute.zoneOperations.list" call.
184675// Exactly one of *OperationList or error will be non-nil. Any non-2xx
184676// status code is an error. Response headers are in either
184677// *OperationList.ServerResponse.Header or (if a response was returned
184678// at all) in error.(*googleapi.Error).Header. Use
184679// googleapi.IsNotModified to check whether the returned error was
184680// because http.StatusNotModified was returned.
184681func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
184682	gensupport.SetOptions(c.urlParams_, opts...)
184683	res, err := c.doRequest("json")
184684	if res != nil && res.StatusCode == http.StatusNotModified {
184685		if res.Body != nil {
184686			res.Body.Close()
184687		}
184688		return nil, &googleapi.Error{
184689			Code:   res.StatusCode,
184690			Header: res.Header,
184691		}
184692	}
184693	if err != nil {
184694		return nil, err
184695	}
184696	defer googleapi.CloseBody(res)
184697	if err := googleapi.CheckResponse(res); err != nil {
184698		return nil, err
184699	}
184700	ret := &OperationList{
184701		ServerResponse: googleapi.ServerResponse{
184702			Header:         res.Header,
184703			HTTPStatusCode: res.StatusCode,
184704		},
184705	}
184706	target := &ret
184707	if err := gensupport.DecodeResponse(target, res); err != nil {
184708		return nil, err
184709	}
184710	return ret, nil
184711	// {
184712	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
184713	//   "httpMethod": "GET",
184714	//   "id": "compute.zoneOperations.list",
184715	//   "parameterOrder": [
184716	//     "project",
184717	//     "zone"
184718	//   ],
184719	//   "parameters": {
184720	//     "filter": {
184721	//       "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) ```",
184722	//       "location": "query",
184723	//       "type": "string"
184724	//     },
184725	//     "maxResults": {
184726	//       "default": "500",
184727	//       "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`)",
184728	//       "format": "uint32",
184729	//       "location": "query",
184730	//       "minimum": "0",
184731	//       "type": "integer"
184732	//     },
184733	//     "orderBy": {
184734	//       "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.",
184735	//       "location": "query",
184736	//       "type": "string"
184737	//     },
184738	//     "pageToken": {
184739	//       "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.",
184740	//       "location": "query",
184741	//       "type": "string"
184742	//     },
184743	//     "project": {
184744	//       "description": "Project ID for this request.",
184745	//       "location": "path",
184746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
184747	//       "required": true,
184748	//       "type": "string"
184749	//     },
184750	//     "returnPartialSuccess": {
184751	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
184752	//       "location": "query",
184753	//       "type": "boolean"
184754	//     },
184755	//     "zone": {
184756	//       "description": "Name of the zone for request.",
184757	//       "location": "path",
184758	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
184759	//       "required": true,
184760	//       "type": "string"
184761	//     }
184762	//   },
184763	//   "path": "projects/{project}/zones/{zone}/operations",
184764	//   "response": {
184765	//     "$ref": "OperationList"
184766	//   },
184767	//   "scopes": [
184768	//     "https://www.googleapis.com/auth/cloud-platform",
184769	//     "https://www.googleapis.com/auth/compute",
184770	//     "https://www.googleapis.com/auth/compute.readonly"
184771	//   ]
184772	// }
184773
184774}
184775
184776// Pages invokes f for each page of results.
184777// A non-nil error returned from f will halt the iteration.
184778// The provided context supersedes any context provided to the Context method.
184779func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
184780	c.ctx_ = ctx
184781	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
184782	for {
184783		x, err := c.Do()
184784		if err != nil {
184785			return err
184786		}
184787		if err := f(x); err != nil {
184788			return err
184789		}
184790		if x.NextPageToken == "" {
184791			return nil
184792		}
184793		c.PageToken(x.NextPageToken)
184794	}
184795}
184796
184797// method id "compute.zoneOperations.wait":
184798
184799type ZoneOperationsWaitCall struct {
184800	s          *Service
184801	project    string
184802	zone       string
184803	operation  string
184804	urlParams_ gensupport.URLParams
184805	ctx_       context.Context
184806	header_    http.Header
184807}
184808
184809// Wait: Waits for the specified Operation resource to return as `DONE`
184810// or for the request to approach the 2 minute deadline, and retrieves
184811// the specified Operation resource. This method differs from the `GET`
184812// method in that it waits for no more than the default deadline (2
184813// minutes) and then returns the current state of the operation, which
184814// might be `DONE` or still in progress.
184815//
184816// This method is called on a best-effort basis. Specifically:
184817// - In uncommon cases, when the server is overloaded, the request might
184818// return before the default deadline is reached, or might return after
184819// zero seconds.
184820// - If the default deadline is reached, there is no guarantee that the
184821// operation is actually done when the method returns. Be prepared to
184822// retry if the operation is not `DONE`.
184823//
184824// - operation: Name of the Operations resource to return.
184825// - project: Project ID for this request.
184826// - zone: Name of the zone for this request.
184827func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
184828	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
184829	c.project = project
184830	c.zone = zone
184831	c.operation = operation
184832	return c
184833}
184834
184835// Fields allows partial responses to be retrieved. See
184836// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
184837// for more information.
184838func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
184839	c.urlParams_.Set("fields", googleapi.CombineFields(s))
184840	return c
184841}
184842
184843// Context sets the context to be used in this call's Do method. Any
184844// pending HTTP request will be aborted if the provided context is
184845// canceled.
184846func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
184847	c.ctx_ = ctx
184848	return c
184849}
184850
184851// Header returns an http.Header that can be modified by the caller to
184852// add HTTP headers to the request.
184853func (c *ZoneOperationsWaitCall) Header() http.Header {
184854	if c.header_ == nil {
184855		c.header_ = make(http.Header)
184856	}
184857	return c.header_
184858}
184859
184860func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
184861	reqHeaders := make(http.Header)
184862	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
184863	for k, v := range c.header_ {
184864		reqHeaders[k] = v
184865	}
184866	reqHeaders.Set("User-Agent", c.s.userAgent())
184867	var body io.Reader = nil
184868	c.urlParams_.Set("alt", alt)
184869	c.urlParams_.Set("prettyPrint", "false")
184870	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}/wait")
184871	urls += "?" + c.urlParams_.Encode()
184872	req, err := http.NewRequest("POST", urls, body)
184873	if err != nil {
184874		return nil, err
184875	}
184876	req.Header = reqHeaders
184877	googleapi.Expand(req.URL, map[string]string{
184878		"project":   c.project,
184879		"zone":      c.zone,
184880		"operation": c.operation,
184881	})
184882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
184883}
184884
184885// Do executes the "compute.zoneOperations.wait" call.
184886// Exactly one of *Operation or error will be non-nil. Any non-2xx
184887// status code is an error. Response headers are in either
184888// *Operation.ServerResponse.Header or (if a response was returned at
184889// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
184890// to check whether the returned error was because
184891// http.StatusNotModified was returned.
184892func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
184893	gensupport.SetOptions(c.urlParams_, opts...)
184894	res, err := c.doRequest("json")
184895	if res != nil && res.StatusCode == http.StatusNotModified {
184896		if res.Body != nil {
184897			res.Body.Close()
184898		}
184899		return nil, &googleapi.Error{
184900			Code:   res.StatusCode,
184901			Header: res.Header,
184902		}
184903	}
184904	if err != nil {
184905		return nil, err
184906	}
184907	defer googleapi.CloseBody(res)
184908	if err := googleapi.CheckResponse(res); err != nil {
184909		return nil, err
184910	}
184911	ret := &Operation{
184912		ServerResponse: googleapi.ServerResponse{
184913			Header:         res.Header,
184914			HTTPStatusCode: res.StatusCode,
184915		},
184916	}
184917	target := &ret
184918	if err := gensupport.DecodeResponse(target, res); err != nil {
184919		return nil, err
184920	}
184921	return ret, nil
184922	// {
184923	//   "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`.",
184924	//   "httpMethod": "POST",
184925	//   "id": "compute.zoneOperations.wait",
184926	//   "parameterOrder": [
184927	//     "project",
184928	//     "zone",
184929	//     "operation"
184930	//   ],
184931	//   "parameters": {
184932	//     "operation": {
184933	//       "description": "Name of the Operations resource to return.",
184934	//       "location": "path",
184935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
184936	//       "required": true,
184937	//       "type": "string"
184938	//     },
184939	//     "project": {
184940	//       "description": "Project ID for this request.",
184941	//       "location": "path",
184942	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
184943	//       "required": true,
184944	//       "type": "string"
184945	//     },
184946	//     "zone": {
184947	//       "description": "Name of the zone for this request.",
184948	//       "location": "path",
184949	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
184950	//       "required": true,
184951	//       "type": "string"
184952	//     }
184953	//   },
184954	//   "path": "projects/{project}/zones/{zone}/operations/{operation}/wait",
184955	//   "response": {
184956	//     "$ref": "Operation"
184957	//   },
184958	//   "scopes": [
184959	//     "https://www.googleapis.com/auth/cloud-platform",
184960	//     "https://www.googleapis.com/auth/compute",
184961	//     "https://www.googleapis.com/auth/compute.readonly"
184962	//   ]
184963	// }
184964
184965}
184966
184967// method id "compute.zones.get":
184968
184969type ZonesGetCall struct {
184970	s            *Service
184971	project      string
184972	zone         string
184973	urlParams_   gensupport.URLParams
184974	ifNoneMatch_ string
184975	ctx_         context.Context
184976	header_      http.Header
184977}
184978
184979// Get: Returns the specified Zone resource. Gets a list of available
184980// zones by making a list() request.
184981//
184982// - project: Project ID for this request.
184983// - zone: Name of the zone resource to return.
184984// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
184985func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
184986	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
184987	c.project = project
184988	c.zone = zone
184989	return c
184990}
184991
184992// Fields allows partial responses to be retrieved. See
184993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
184994// for more information.
184995func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
184996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
184997	return c
184998}
184999
185000// IfNoneMatch sets the optional parameter which makes the operation
185001// fail if the object's ETag matches the given value. This is useful for
185002// getting updates only after the object has changed since the last
185003// request. Use googleapi.IsNotModified to check whether the response
185004// error from Do is the result of In-None-Match.
185005func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
185006	c.ifNoneMatch_ = entityTag
185007	return c
185008}
185009
185010// Context sets the context to be used in this call's Do method. Any
185011// pending HTTP request will be aborted if the provided context is
185012// canceled.
185013func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
185014	c.ctx_ = ctx
185015	return c
185016}
185017
185018// Header returns an http.Header that can be modified by the caller to
185019// add HTTP headers to the request.
185020func (c *ZonesGetCall) Header() http.Header {
185021	if c.header_ == nil {
185022		c.header_ = make(http.Header)
185023	}
185024	return c.header_
185025}
185026
185027func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
185028	reqHeaders := make(http.Header)
185029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
185030	for k, v := range c.header_ {
185031		reqHeaders[k] = v
185032	}
185033	reqHeaders.Set("User-Agent", c.s.userAgent())
185034	if c.ifNoneMatch_ != "" {
185035		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
185036	}
185037	var body io.Reader = nil
185038	c.urlParams_.Set("alt", alt)
185039	c.urlParams_.Set("prettyPrint", "false")
185040	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}")
185041	urls += "?" + c.urlParams_.Encode()
185042	req, err := http.NewRequest("GET", urls, body)
185043	if err != nil {
185044		return nil, err
185045	}
185046	req.Header = reqHeaders
185047	googleapi.Expand(req.URL, map[string]string{
185048		"project": c.project,
185049		"zone":    c.zone,
185050	})
185051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
185052}
185053
185054// Do executes the "compute.zones.get" call.
185055// Exactly one of *Zone or error will be non-nil. Any non-2xx status
185056// code is an error. Response headers are in either
185057// *Zone.ServerResponse.Header or (if a response was returned at all) in
185058// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
185059// whether the returned error was because http.StatusNotModified was
185060// returned.
185061func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
185062	gensupport.SetOptions(c.urlParams_, opts...)
185063	res, err := c.doRequest("json")
185064	if res != nil && res.StatusCode == http.StatusNotModified {
185065		if res.Body != nil {
185066			res.Body.Close()
185067		}
185068		return nil, &googleapi.Error{
185069			Code:   res.StatusCode,
185070			Header: res.Header,
185071		}
185072	}
185073	if err != nil {
185074		return nil, err
185075	}
185076	defer googleapi.CloseBody(res)
185077	if err := googleapi.CheckResponse(res); err != nil {
185078		return nil, err
185079	}
185080	ret := &Zone{
185081		ServerResponse: googleapi.ServerResponse{
185082			Header:         res.Header,
185083			HTTPStatusCode: res.StatusCode,
185084		},
185085	}
185086	target := &ret
185087	if err := gensupport.DecodeResponse(target, res); err != nil {
185088		return nil, err
185089	}
185090	return ret, nil
185091	// {
185092	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
185093	//   "httpMethod": "GET",
185094	//   "id": "compute.zones.get",
185095	//   "parameterOrder": [
185096	//     "project",
185097	//     "zone"
185098	//   ],
185099	//   "parameters": {
185100	//     "project": {
185101	//       "description": "Project ID for this request.",
185102	//       "location": "path",
185103	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
185104	//       "required": true,
185105	//       "type": "string"
185106	//     },
185107	//     "zone": {
185108	//       "description": "Name of the zone resource to return.",
185109	//       "location": "path",
185110	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
185111	//       "required": true,
185112	//       "type": "string"
185113	//     }
185114	//   },
185115	//   "path": "projects/{project}/zones/{zone}",
185116	//   "response": {
185117	//     "$ref": "Zone"
185118	//   },
185119	//   "scopes": [
185120	//     "https://www.googleapis.com/auth/cloud-platform",
185121	//     "https://www.googleapis.com/auth/compute",
185122	//     "https://www.googleapis.com/auth/compute.readonly"
185123	//   ]
185124	// }
185125
185126}
185127
185128// method id "compute.zones.list":
185129
185130type ZonesListCall struct {
185131	s            *Service
185132	project      string
185133	urlParams_   gensupport.URLParams
185134	ifNoneMatch_ string
185135	ctx_         context.Context
185136	header_      http.Header
185137}
185138
185139// List: Retrieves the list of Zone resources available to the specified
185140// project.
185141//
185142// - project: Project ID for this request.
185143// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
185144func (r *ZonesService) List(project string) *ZonesListCall {
185145	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
185146	c.project = project
185147	return c
185148}
185149
185150// Filter sets the optional parameter "filter": A filter expression that
185151// filters resources listed in the response. The expression must specify
185152// the field name, a comparison operator, and the value that you want to
185153// use for filtering. The value must be a string, a number, or a
185154// boolean. The comparison operator must be either `=`, `!=`, `>`, or
185155// `<`.
185156//
185157// For example, if you are filtering Compute Engine instances, you can
185158// exclude instances named `example-instance` by specifying `name !=
185159// example-instance`.
185160//
185161// You can also filter nested fields. For example, you could specify
185162// `scheduling.automaticRestart = false` to include instances only if
185163// they are not scheduled for automatic restarts. You can use filtering
185164// on nested fields to filter based on resource labels.
185165//
185166// To filter on multiple expressions, provide each separate expression
185167// within parentheses. For example: ``` (scheduling.automaticRestart =
185168// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
185169// is an `AND` expression. However, you can include `AND` and `OR`
185170// expressions explicitly. For example: ``` (cpuPlatform = "Intel
185171// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
185172// (scheduling.automaticRestart = true) ```
185173func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
185174	c.urlParams_.Set("filter", filter)
185175	return c
185176}
185177
185178// MaxResults sets the optional parameter "maxResults": The maximum
185179// number of results per page that should be returned. If the number of
185180// available results is larger than `maxResults`, Compute Engine returns
185181// a `nextPageToken` that can be used to get the next page of results in
185182// subsequent list requests. Acceptable values are `0` to `500`,
185183// inclusive. (Default: `500`)
185184func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
185185	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
185186	return c
185187}
185188
185189// OrderBy sets the optional parameter "orderBy": Sorts list results by
185190// a certain order. By default, results are returned in alphanumerical
185191// order based on the resource name.
185192//
185193// You can also sort results in descending order based on the creation
185194// timestamp using `orderBy="creationTimestamp desc". This sorts
185195// results based on the `creationTimestamp` field in reverse
185196// chronological order (newest result first). Use this to sort resources
185197// like operations so that the newest operation is returned
185198// first.
185199//
185200// Currently, only sorting by `name` or `creationTimestamp desc` is
185201// supported.
185202func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
185203	c.urlParams_.Set("orderBy", orderBy)
185204	return c
185205}
185206
185207// PageToken sets the optional parameter "pageToken": Specifies a page
185208// token to use. Set `pageToken` to the `nextPageToken` returned by a
185209// previous list request to get the next page of results.
185210func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
185211	c.urlParams_.Set("pageToken", pageToken)
185212	return c
185213}
185214
185215// ReturnPartialSuccess sets the optional parameter
185216// "returnPartialSuccess": Opt-in for partial success behavior which
185217// provides partial results in case of failure. The default value is
185218// false.
185219func (c *ZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZonesListCall {
185220	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
185221	return c
185222}
185223
185224// Fields allows partial responses to be retrieved. See
185225// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
185226// for more information.
185227func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
185228	c.urlParams_.Set("fields", googleapi.CombineFields(s))
185229	return c
185230}
185231
185232// IfNoneMatch sets the optional parameter which makes the operation
185233// fail if the object's ETag matches the given value. This is useful for
185234// getting updates only after the object has changed since the last
185235// request. Use googleapi.IsNotModified to check whether the response
185236// error from Do is the result of In-None-Match.
185237func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
185238	c.ifNoneMatch_ = entityTag
185239	return c
185240}
185241
185242// Context sets the context to be used in this call's Do method. Any
185243// pending HTTP request will be aborted if the provided context is
185244// canceled.
185245func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
185246	c.ctx_ = ctx
185247	return c
185248}
185249
185250// Header returns an http.Header that can be modified by the caller to
185251// add HTTP headers to the request.
185252func (c *ZonesListCall) Header() http.Header {
185253	if c.header_ == nil {
185254		c.header_ = make(http.Header)
185255	}
185256	return c.header_
185257}
185258
185259func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
185260	reqHeaders := make(http.Header)
185261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
185262	for k, v := range c.header_ {
185263		reqHeaders[k] = v
185264	}
185265	reqHeaders.Set("User-Agent", c.s.userAgent())
185266	if c.ifNoneMatch_ != "" {
185267		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
185268	}
185269	var body io.Reader = nil
185270	c.urlParams_.Set("alt", alt)
185271	c.urlParams_.Set("prettyPrint", "false")
185272	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones")
185273	urls += "?" + c.urlParams_.Encode()
185274	req, err := http.NewRequest("GET", urls, body)
185275	if err != nil {
185276		return nil, err
185277	}
185278	req.Header = reqHeaders
185279	googleapi.Expand(req.URL, map[string]string{
185280		"project": c.project,
185281	})
185282	return gensupport.SendRequest(c.ctx_, c.s.client, req)
185283}
185284
185285// Do executes the "compute.zones.list" call.
185286// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
185287// code is an error. Response headers are in either
185288// *ZoneList.ServerResponse.Header or (if a response was returned at
185289// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
185290// to check whether the returned error was because
185291// http.StatusNotModified was returned.
185292func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
185293	gensupport.SetOptions(c.urlParams_, opts...)
185294	res, err := c.doRequest("json")
185295	if res != nil && res.StatusCode == http.StatusNotModified {
185296		if res.Body != nil {
185297			res.Body.Close()
185298		}
185299		return nil, &googleapi.Error{
185300			Code:   res.StatusCode,
185301			Header: res.Header,
185302		}
185303	}
185304	if err != nil {
185305		return nil, err
185306	}
185307	defer googleapi.CloseBody(res)
185308	if err := googleapi.CheckResponse(res); err != nil {
185309		return nil, err
185310	}
185311	ret := &ZoneList{
185312		ServerResponse: googleapi.ServerResponse{
185313			Header:         res.Header,
185314			HTTPStatusCode: res.StatusCode,
185315		},
185316	}
185317	target := &ret
185318	if err := gensupport.DecodeResponse(target, res); err != nil {
185319		return nil, err
185320	}
185321	return ret, nil
185322	// {
185323	//   "description": "Retrieves the list of Zone resources available to the specified project.",
185324	//   "httpMethod": "GET",
185325	//   "id": "compute.zones.list",
185326	//   "parameterOrder": [
185327	//     "project"
185328	//   ],
185329	//   "parameters": {
185330	//     "filter": {
185331	//       "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) ```",
185332	//       "location": "query",
185333	//       "type": "string"
185334	//     },
185335	//     "maxResults": {
185336	//       "default": "500",
185337	//       "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`)",
185338	//       "format": "uint32",
185339	//       "location": "query",
185340	//       "minimum": "0",
185341	//       "type": "integer"
185342	//     },
185343	//     "orderBy": {
185344	//       "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.",
185345	//       "location": "query",
185346	//       "type": "string"
185347	//     },
185348	//     "pageToken": {
185349	//       "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.",
185350	//       "location": "query",
185351	//       "type": "string"
185352	//     },
185353	//     "project": {
185354	//       "description": "Project ID for this request.",
185355	//       "location": "path",
185356	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
185357	//       "required": true,
185358	//       "type": "string"
185359	//     },
185360	//     "returnPartialSuccess": {
185361	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
185362	//       "location": "query",
185363	//       "type": "boolean"
185364	//     }
185365	//   },
185366	//   "path": "projects/{project}/zones",
185367	//   "response": {
185368	//     "$ref": "ZoneList"
185369	//   },
185370	//   "scopes": [
185371	//     "https://www.googleapis.com/auth/cloud-platform",
185372	//     "https://www.googleapis.com/auth/compute",
185373	//     "https://www.googleapis.com/auth/compute.readonly"
185374	//   ]
185375	// }
185376
185377}
185378
185379// Pages invokes f for each page of results.
185380// A non-nil error returned from f will halt the iteration.
185381// The provided context supersedes any context provided to the Context method.
185382func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
185383	c.ctx_ = ctx
185384	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
185385	for {
185386		x, err := c.Do()
185387		if err != nil {
185388			return err
185389		}
185390		if err := f(x); err != nil {
185391			return err
185392		}
185393		if x.NextPageToken == "" {
185394			return nil
185395		}
185396		c.PageToken(x.NextPageToken)
185397	}
185398}
185399